Small Node.js app for autocontrolling Wemo Insight Switch devices. Subscribes an event to get live updates from a group of Wemo devices defined as controllers. Binary state changes on controllers (enter standby, exit standby) switches on/off another group of controlled Wemo devices.
E.g. when the microwave turns on, turn off the AC. And, when the microwave turns back off, turn on the AC.
nodejs
and npm
are required to install and use this service.
$ npm install -g wemo-insight-auto
$ wemo-insight-auto -c /path/to/config.json
The script takes it's configuration from a JSON object following this format:
{
"devControlled": [
{
"wid": 762
}
],
"devController": [
{
"wid": 766
},
{
"wid": 708
}
]
}
A config.json.sample
file is provided in this package as a template. Feel free to copy and save it as .json
on any location, just make sure to point out the full path to this file when running the script with the -c | --config
command option (-c /path/to/config.json).
Controlled vs Controller
The devControlled
property sets the Wemo devices that are going to be auto-managed by those defined in the devController
property. Meaning, when a binary state changes on Wemo devices set under the devController
key, it will trigger a signal to turn on/off the devices set under the devControlled
key.
Binary State on devController Devices |
Action on devControlled Devices |
---|---|
enter standby mode | turn ON Wemo switch |
exit standby mode | turn OFF Wemo switch |
Wemo switch turned OFF | turn ON Wemo switch |
Wemo Device ID
The "wid"
key stands for Wemo ID. The value for this key are the last three alphanumeric characters of the Wemo ID, (e.g. WeMo.Insight.xxx). This can be found at the back of the Wemo unit, or from the app at the edit device screen.
It might happen the main app script to get stuck on error code EHOSTUNREACH
after several hours running (maybe due to poor network performace). To get around this the app can also be run in forever-monitor mode. The app will restart itself everytime an instance of this error occurs.
$ wemo-insight-auto-forever -c /path/to/config.json