var ssdp = require('node-upnp-ssdp'); var UPnPDeviceClient = require('upnp-device-client'); var mqtt = require('mqtt'); var mqttClient = mqtt.connect('mqtt://beam.soracom.io'); var publish = function(udn, device){ var event = { reported: { devices: {} } }; event.reported.devices[udn] = device; mqtt.publish('$aws/things/kenta-upnp-gateway/shadow/update', JSON.stringify(device)); }; ssdp.on('DeviceFound', function(info){ var client = new UPnPDeviceClient(info.location); client.getDeviceDescription(function(err, device){ if (!err){ device.online = true; publish(device.UDN, device); } else { console.error('UPnP: ' + err); } }); }); ssdp.mSearch('upnp:rootdevice');