diff options
Diffstat (limited to 'services/device-manager.js')
| -rw-r--r-- | services/device-manager.js | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/services/device-manager.js b/services/device-manager.js index 451734e..926c164 100644 --- a/services/device-manager.js +++ b/services/device-manager.js @@ -1,13 +1,25 @@ const { Client } = require('tplink-smarthome-api'); const dataLogger = require('./data-logger'); +const interfaces = require('os').networkInterfaces(); -const client = new Client(); var devices = []; -client.startDiscovery({ +function startDiscovery(bindAddress) { + console.log('Starting discovery on interface: ' + bindAddress); + var client = new Client(); + client.startDiscovery({ deviceTypes: ['plug'], + address: bindAddress, discoveryTimeout: 20000 - }).on('plug-new', registerPlug); + }).on('plug-new', registerPlug); +} + +Object.keys(interfaces) + .reduce((results, name) => results.concat(interfaces[name]), []) + .filter((iface) => iface.family === 'IPv4' && !iface.internal) + .map((iface) => iface.address) + .map(startDiscovery); + function registerPlug(plug) { |