From db863d8fcbe12009155db4bbd20875b747f09a2d Mon Sep 17 00:00:00 2001 From: Harald Rietman Date: Sun, 2 Jul 2017 18:11:19 +0200 Subject: [PATCH] Added motion, updated icons --- .../xiaomi-configurator.html | 1 + .../icons/outlet-icon.png | Bin 16281 -> 0 bytes .../xiaomi-magnet.html | 4 +- .../icons/motion-icon.png | Bin 0 -> 5812 bytes .../xiaomi-motion.html | 89 ++++++++++++++++++ .../xiaomi-motion.js | 86 +++++++++++++++++ .../xiaomi-socket.js | 4 +- 7 files changed, 180 insertions(+), 4 deletions(-) delete mode 100644 node-red-contrib-xiaomi-magnet/icons/outlet-icon.png create mode 100644 node-red-contrib-xiaomi-motion/icons/motion-icon.png create mode 100644 node-red-contrib-xiaomi-motion/xiaomi-motion.html create mode 100644 node-red-contrib-xiaomi-motion/xiaomi-motion.js diff --git a/node-red-contrib-xiaomi-configurator/xiaomi-configurator.html b/node-red-contrib-xiaomi-configurator/xiaomi-configurator.html index 8afcb04..418bd2a 100644 --- a/node-red-contrib-xiaomi-configurator/xiaomi-configurator.html +++ b/node-red-contrib-xiaomi-configurator/xiaomi-configurator.html @@ -31,6 +31,7 @@ model.append($("").val("plug").text("plug")); model.append($("").val("gateway").text("gateway")); model.append($("").val("switch").text("switch")); + model.append($("").val("motion").text("motion")); sid.val(device.sid); desc.val(device.desc); diff --git a/node-red-contrib-xiaomi-magnet/icons/outlet-icon.png b/node-red-contrib-xiaomi-magnet/icons/outlet-icon.png deleted file mode 100644 index f9c7e4a777c5222c001acce9b89c4d18a2a9690f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16281 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
- +
- +
diff --git a/node-red-contrib-xiaomi-motion/icons/motion-icon.png b/node-red-contrib-xiaomi-motion/icons/motion-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..86c7e68cb92a3f4db84652d95b8deb7a51314fc7 GIT binary patch literal 5812 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 + RED.nodes.registerType('xiaomi-motion', { + category: 'xiaomi', + color: '#3FADB5', + defaults: { + gateway: {value:"", type:"xiaomi-configurator"}, + name: {value: ""}, + sid: {value: "", required: true}, + motionmsg: {value: ""}, + nomotionmsg: {value: ""}, + output: {value: "0"} + }, + inputs: 1, + outputs: 2, + outputLabels: ["Status"], + paletteLabel: "motion", + icon: "motion-icon.png", + label: function () { + return this.name || "xiaomi-motion"; + }, + oneditprepare: function() { + var node = this; + + // Get the config node id from the select box: + var configNodeID = $('#node-input-gateway').val(); + // Get the config node using the ID: + var configNode = RED.nodes.node(configNodeID); + + $("#node-input-output").change(function () { + if ($(this).val() == "2") { + $(".node-input-msg").show(); + } else { + $(".node-input-msg").hide(); + } + }); + + $("#node-input-gateway").change(function () { + + }); + + for (key in configNode.deviceList) { + var device = configNode.deviceList[key]; + if (device.model === "motion") { + $('#node-input-sid').append(''); + } + } + $('#node-input-sid').val(node.sid); + }, + oneditsave: function() { + var node = this; + node.sid = $("#node-input-sid").val(); + } + }); + + + + + diff --git a/node-red-contrib-xiaomi-motion/xiaomi-motion.js b/node-red-contrib-xiaomi-motion/xiaomi-motion.js new file mode 100644 index 0000000..10ea602 --- /dev/null +++ b/node-red-contrib-xiaomi-motion/xiaomi-motion.js @@ -0,0 +1,86 @@ +module.exports = function(RED) { + "use strict"; + var mustache = require("mustache"); + + function XiaomiMotionNode(config) { + RED.nodes.createNode(this, config); + this.gateway = RED.nodes.getNode(config.gateway); + this.sid = config.sid; + this.output = config.output; + this.motionmsg = config.motionmsg; + this.nomotionmsg = config.nomotionmsg; + + var node = this; + var state = ""; + + // node.status({fill:"yellow", shape:"dot", text:"unknown state"}); + node.status({fill:"grey",shape:"ring",text:"battery"}); + + if (this.gateway) { + node.on('input', function(msg) { + // var payload = JSON.parse(msg); + var payload = msg.payload; + + if (payload.sid == node.sid && payload.model == "motion") { + var data = JSON.parse(payload.data) + + // if (data.status && data.status == "open") { + // node.status({fill:"green", shape:"dot", text:"open"}); + // state = "open"; + // } else if (data.status && data.status == "close") { + // node.status({fill:"red", shape:"dot", text:"closed"}); + // state = "closed"; + // } + + if (data.voltage) { + if (data.voltage < 2500) { + node.status({fill:"red",shape:"dot",text:"battery"}); + } else if (data.voltage < 2900) { + node.status({fill:"yellow",shape:"dot",text:"battery"}); + } else { + node.status({fill:"green",shape:"dot",text:"battery"}); + } + } + + + if (node.output == "0") { + msg.payload = payload; + node.send([msg]); + } else if (node.output == "1") { + var status = null; + var duration = null; + + if (data.status) { + status = {"payload": data.status}; + } + if (data.no_motion) { + status = {"payload": "no_motion"}; + duration = {"payload": {"no_motion": data.no_motion}}; + } + + node.send([[status], [duration]]); + } else if (node.output == "2") { + var status = null; + + if (data.status === 'motion') { + status = {"payload": mustache.render(node.motionmsg, data)} + } else { + status = {"payload": mustache.render(node.nomotionmsg, data)} + } + node.send([status]); + } + } + }); + + node.on("close", function() { + }); + + } else { + // no gateway configured + } + + } + + RED.nodes.registerType("xiaomi-motion", XiaomiMotionNode); + +} diff --git a/node-red-contrib-xiaomi-socket/xiaomi-socket.js b/node-red-contrib-xiaomi-socket/xiaomi-socket.js index 0cd59bf..77e7ee7 100644 --- a/node-red-contrib-xiaomi-socket/xiaomi-socket.js +++ b/node-red-contrib-xiaomi-socket/xiaomi-socket.js @@ -16,7 +16,7 @@ module.exports = function(RED) { var currentToken = ""; var state = ""; - node.status({fill:"yellow", shape:"ring", text:"no key"}); + node.status({fill:"yellow", shape:"ring", text:"waiting for key"}); if (this.gateway) { node.on('input', function(msg) { @@ -61,7 +61,7 @@ module.exports = function(RED) { var data = JSON.parse(payload.data) if (currentToken == "") { - node.status({fill:"yellow", shape:"dot", text:"no key"}); + node.status({fill:"yellow", shape:"ring", text:"waiting for key"}); } else if (data.status && data.status == "on") { node.status({fill:"green", shape:"dot", text:"on"}); state = "on";