node-red-contrib-xiaomi-miio
Version:
miIO device library for node red
54 lines (41 loc) • 1.49 kB
JavaScript
const miio = require('./../common/devices.js');
module.exports = function(RED) {
function miioMagnet(config) {
console.log('----> Init magnet! ');
RED.nodes.createNode(this, config);
var _node = this;
//var globalContext = this.context().global;
// hook device events
var deviceId = config.deviceId;
if (deviceId) {
miio.registerPropertyListener(deviceId, function(e) {
// Check if current instance is still enabled, this avoid running old callback when the node is re-loaded
if (_node._enabled) {
var msg = {
payload: {
action: e.value ? 'open' : 'close',
prop: e.key,
newValue: e.value,
oldValue: 'deprecated'
}
};
_node.send(msg);
}
});
} else {
console.log('Device identifier not specified.');
}
_node._enabled = true;
_node.on('close',function() {
_node._enabled = false;
});
}
RED.nodes.registerType("miio-magnet", miioMagnet, {
settings: {
miioMagnetDevices: {
value: miio.optionDevices,
exportable: true
}
}
});
}