@harmonyhub/discover

Discover available Logitech Harmony Hubs in the current network.

Stats

stars 🌟issues ⚠️updated 🛠created 🐣size 🏋️‍♀️
@harmonyhub/discover
Minified + gzip package size for @harmonyhub/discover in KB

Readme

Discover package

@harmonyhub/discover is a package which detects available Logitech Harmony hubs in the local network.

It is based upon @swissmanu harmonyhubjs-discover

Installation

npm install @harmonyhub/discover

Enhancements

Enhancements over the harmonyhubjs-discover package are the following

  • rewrite to class style
  • replacement of Q library with native nodejs Promises (dep reduction)
  • update of dependencies to newer packages (0 security issues by npm audit)
  • fix of issue of non closing socket
  • fix the issue of multiple clients

Usage

const Explorer = require('@harmonyhub/discover').Explorer;
const discover = new Explorer(61991);

discover.on('online', function(hub) {
    // Triggered when a new hub was found
    console.log('discovered ' + hub.ip);
});

discover.on('offline', function(hub) {
    // Triggered when a hub disappeared
    console.log('lost ' + hub.ip);
});

discover.on('update', function(hubs) {
    // Combines the online & update events by returning an array with all known
    // hubs for ease of use.
    const knownHubIps = hubs.reduce(function(prev, hub) {
        return prev + (prev.length > 0 ? ', ' : '') + hub.ip;
    }, '');

    console.log('known ips: ' + knownHubIps);
});

// Look for hubs:
discover.start();

// Stop looking for hubs again and close the app:
setTimeout(discover.stop, 5000);

Further Examples

There are further examples available within the examples/ directory.

Control your hub

After looking up your Harmony hub, use @harmonyhub/client to control it.

Debug Traces

@harmonyhub/discover uses debug for generating traces throughout its execution time. Activate them by setting the DEBUG environment variable:

DEBUG=harmonyhub:discover:* 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.

Thank you for your contribution!

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.