Discover available Logitech Harmony Hubs in the current network.
npm install @harmonyhub/discover@harmonyhub/discover is a package which detects available Logitech Harmony hubs in the local network.
It is based upon @swissmanu harmonyhubjs-discover
``bash`
npm install @harmonyhub/discover
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
`javascript
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);
`
There are further examples available within the examples/ directory.
After looking up your Harmony hub, use @harmonyhub/client to control it.
@harmonyhub/discover uses debug for generating traces throughout its execution time. Activate them by setting the DEBUG environment variable:
`bash`
DEBUG=harmonyhub:discover:* node myharmonyjsapp.js
The master branch contains the latest stable release of the application.develop
Development efforts are integrated with the branch first. Changes get then merged into master` as soon as a new release should be published.
Thank you for your contribution!