• This repository has been archived on 20/Sep/2021
  • Stars
    star
    155
  • Rank 240,864 (Top 5 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created about 11 years ago
  • Updated almost 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A Node.JS library which allows you to interact with your Logitech Harmony Hub.

harmonyhubjs-client

Build Status js-standard-style Commitizen friendly npm version semantic-release Analytics

harmonyhubjs-client is a Node.JS library which allows you to interact with your Logitech Harmony Hub.

It was based upon @jterraces awesome Harmony protocol guide. harmonyhubjs-client provides an extended protocol guide for the interested ones.

Installation

npm install harmonyhubjs-client --save

## Usage

var harmony = require('harmonyhubjs-client');

harmony('192.168.1.200')
  .then(function(harmonyClient) {
    harmonyClient.isOff()
      .then(function(off) {
        if(off) {
          console.log('Currently off. Turning TV on.')

          harmonyClient.getActivities()
            .then(function(activities) {
              activities.some(function(activity) {
                if(activity.label === 'Watch TV') {
                  var id = activity.id
                  harmonyClient.startActivity(id)
                  harmonyClient.end()
                  return true
                }
                return false
              })
            })
        } else {
          console.log('Currently on. Turning TV off')
          harmonyClient.turnOff()
          harmonyClient.end()
        }
      })
  })

This example connects to a Harmony hub available on the IP 192.168.1.200. As soon as the the connection is established, isOff() checks if the equipment is turned off. If off, the activity with the name Watch TV is started. If on, all devices are turned off.

Debug Traces

harmonyhubjs-client uses debug for generating traces throughout its execution time. Activate them by setting the DEBUG environment variable:

$ DEBUG=harmonyhubjs:client* node myharmonyjsapp.js

Contribution

The master branch contains the latest stable release of the application. Development efforts are integrated with the develop branch first. Changes get then merged into master as soon as a new release should be published.

When opening a new Pull Request make sure you point them to develop. Further ensure that your code follows standard-js style guidelines and you make use of proper commit messages. harmonyhubjs-client loves Commitizen, so take a look there and use git cz for the most simple workflow :-)

Thank you for your contribution!

Ecosystem Overview

Various libraries, modules and applications grew around harmonyhubjs-*. Feel free to open a Pull Request if you want to list your addition to the ecosystem here.

Application / Module Author Description
harmonyhubjs-client @swissmanu A Node.JS library which allows you to interact with your Logitech Harmony Hub.
harmonyhubjs-discover @swissmanu A Node.JS library which lookups available Logitech Harmony hubs in the local network.
orchestra-jsapi @swissmanu Vanilla JavaScript interface layer for harmonyhubjs-* libraries to make usage a breeze.
orchestra @swissmanu A desktop application to control your Logitech Harmony Hubs.

## License

Copyright (c) 2013 Manuel Alabor

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

More Repositories

1

rxjs-debugging-for-vscode

Add non-intrusive debugging capabilities for RxJS applications to Visual Studio Code.
TypeScript
113
star
2

pattern-matching-with-typescript

TypeScript does not have any pattern matching functionality built in. This article shows several ways how you can replicate the core of a simple pattern matcher using a few simple structures and functions within TypeScript. Resulting code will have improved maintainability and better runtime type safety when done right.
JavaScript
72
star
3

protractor-screenshot-reporter

Reporter for Protractor. Asks Selenium for a screenshot after every test case and stores it along with test case details.
JavaScript
65
star
4

MACircleProgressIndicator

A circular progress indicator for iOS.
Objective-C
59
star
5

spicery

Runtime type safety for JSON/untyped data.
TypeScript
36
star
6

primus-responder

Request-Response ortiented communication for websockets with Primus.
JavaScript
26
star
7

MACachedImageView

An iOS UIView for displaying images on demand from the web. Spiced up with a caching functionality and a fancy load progress indicator.
Objective-C
24
star
8

harmonyhubjs-discover

A Node.JS library which lookups available Logitech Harmony hubs in the local network.
JavaScript
23
star
9

orchestra

A desktop application to control your Logitech Harmony Hubs.
JavaScript
23
star
10

TrailDevilsSync

Objective-C
17
star
11

barefoot

Barefoot makes code sharing between browser and server reality. Write your application once and run it on both ends of the wire.
JavaScript
10
star
12

InstallationWizard

These handy classes help to create simple setup scripts for PHP web applications. First invented during the HTML5Wiki project, this framework is now available as standalone project.
PHP
7
star
13

hsrNspired

TI-nsprie compatible LUA and TI-Basic programs for different courses in computer science. Feel free to contribute and enhance!
Lua
6
star
14

electron-ipc-responder

Provides a Request-Response pattern-based communication using Electrons IPC module.
JavaScript
5
star
15

HSRHelpers

Some Ruby scripts which might be helpful for HSR students :-)
Ruby
4
star
16

hsr-apf-2013

Zusammengetragene Ergebnisse aus den Workshops im Rahmen des Modules Advanced Patterns and Frameworks an der Hochschule für Technik in Rapperswil HSR vom Frühjahressemester 2013.
TeX
4
star
17

flictoggl

Track time on Toggl using a Flic Button
JavaScript
4
star
18

filer

A web application to make filing scanned PDF documents simpler.
Go
4
star
19

DownUnder

DownUnder creates PDF documents from one or more with (multi) markdown formatted text files.
Ruby
4
star
20

traffic-lights

Display Build Status on a USB Traffic Light
JavaScript
3
star
21

playground-rxjs-debugging-for-vscode

A playground to explore the debugging capabilities of the RxJS Debugging for Visual Studio Code extension.
TypeScript
3
star
22

orchestra-jsapi

Vanilla JavaScript interface layer for harmonyhubjs-* libraries to make usage a breeze.
JavaScript
3
star
23

JDBCCopier

A JDBC based database copier
Java
3
star
24

mozaik-ext-bamboo

A collection of Mozaïk widgets to fetch information from Atlassian Bamboo.
JavaScript
2
star
25

trampoline-typescript

Basic Trampolines in TypeScript
TypeScript
2
star
26

ServerTools

A collection of scripts to manage my vserver.
Ruby
2
star
27

lanes

Lanes is a Kanban board maintaining your task cards in plain Markdown files.
TypeScript
1
star
28

wings

A UI library, implemented in javascript, rendered in a canvas DOM element.
JavaScript
1
star
29

blinkstick-teamcity

Simple build status indicator for TeamCity using a BlinkStick.
JavaScript
1
star
30

AudioTagger

Java
1
star
31

ucwajs

Implements very basic functionality to communicate with the Skype for Business Web API (UCWA).
JavaScript
1
star
32

Kaffeekasse

An application for managing the break room billings for my (or probably your?) office.
Java
1
star
33

dotfiles

Keeping them in one place
Lua
1
star
34

kaffeeundkuchen

"Kaffee und Kuchen" is a spotify party player written in JavaScript. The original project is thought to be runned on a Raspberry Pi and supports Apples AirPlay for streaming your music anywhere you want.
CSS
1
star
35

pixelcity

My Three.js playground, inspired by Shamus Young and its original "Pixelcity"
JavaScript
1
star
36

react-rxjs-typescript

An experiment to implement a React user interface using TypeScript that leverages RxJS.
TypeScript
1
star
37

powerbuddy

Schedule starts and shutdowns of your Linux computer.
JavaScript
1
star
38

docker-fava

Docker image to run Fava for Beancount.
Dockerfile
1
star
39

mse-paper-debugging-of-rxjs-based-applications

RxJS is a popular library to implement data-flow-oriented applications with JavaScript using reactive programming principles. This way of programming bears new challenges for traditional debuggers: Their focus on imperative programming limits their applicability to problems originated in the declarative programming paradigm. The goals of this paper are: (i) to understand how software engineers debug RxJS-based applications, what tools do they use, what techniques they apply; (ii) to understand what are the most prevalent challenges they face while doing so; and (iii) to provide a course of action to resolve these challenges in a future iteration on the topic. We learned about the debugging habits of ten professionals using interviews, and hands-on war story reports. Based on this data, we designed and executed an observational study with four subjects to verify that engineers predominantly augment source code with manual trace logs instead of using specialized debugging utilities. In the end, we identified the lack of fully integrated RxJS-specific debugging solutions in existing development environments as the most significant reason why engineers do not make use of such tools. We decided to elaborate on how to resolve this situation in our future work.
TeX
1
star
40

mse-pa1-experiment

This repository is part of my master's study research regarding "Debugging of RxJS-based Applications". It contains the source code for two problems used during the observational study to validate the debugging techniques software engineers apply when debugging RxJS-based programs.
TypeScript
1
star
41

litecom2mqtt

Make Zumtobel Litecom CCD fully accessible through MQTT and discoverable by Home Assistant.
TypeScript
1
star