UNPKG

node-red-contrib-mi-sensors

Version:

A set of nodes to control some of the popular Xiaomi sensors which are connected to the Xiaomi Gateway, and the Gateway itself.

52 lines (47 loc) 1.9 kB
const miDevicesUtils = require('../src/utils'); module.exports = (RED) => { // wleak function XiaomiWleakNode(config) { RED.nodes.createNode(this, config); this.gateway = RED.nodes.getNode(config.gateway); this.sid = config.sid; this.status({fill:"grey", shape:"ring", text:"battery - na"}); var node = this if (this.gateway) { this.on('input', (msg) => { let payload = msg.payload; //过滤掉心跳 if (payload.cmd == 'heartbeat') { return null; } // Input from gateway if (payload.sid) { if (payload.sid == this.sid) { miDevicesUtils.setStatus(this, payload.data); let data = miDevicesUtils.get(node) if (payload.data.status && payload.data.status == 'leak') { data['state'] = 'on' } // no_leak if (payload.data.status && payload.data.status == 'no_leak') { data['state'] = 'off' } miDevicesUtils.set(node, data) payload.data = data } else { msg = null; } } // Prepare for request else { miDevicesUtils.prepareForGatewayRequest(this, msg); let data = miDevicesUtils.get(node) msg.payload.data = data } this.send(msg); }); } } RED.nodes.registerType("xiaomi-wleak", XiaomiWleakNode); };