node-red-contrib-yale-alarm
Version:
Integration to Yale Alarm System. This (1st) release just does basic get/set but planning to provide richer set in next version
34 lines (30 loc) • 1.12 kB
JavaScript
module.exports = function (RED) {
const yalealarm = require('yalealarmsystem');
function setStatusNode(config) {
RED.nodes.createNode(this, config);
this.yaleConfig = RED.nodes.getNode(config.yaleConfig);
if (this.yaleConfig) {
const node = this;
node.on('input', async (msg, send, done) => {
yalealarm.setStatus(node.yaleConfig.access_token, msg.payload.state)
.then(alarmStatus => {
let msg = {
topic: "device",
payload: {
deviceId: this.device,
deviceType: "alarm",
state: alarmStatus
}
};
this.send(msg);
})
.catch(err => {
node.warn(`yalealarmsystem.setStatus returned err:`, err);
})
})
} else {
node.warn('No config defined');
}
}
RED.nodes.registerType("set-state", setStatusNode);
};