From c7076ab5f93ae501511bb33d9dd957f354129864 Mon Sep 17 00:00:00 2001 From: Pierre CLEMENT Date: Mon, 1 Jan 2018 21:33:06 +0100 Subject: [PATCH] feat(gateway): add play/stop sounds --- .../xiaomi-actions.html | 130 ++++++++++++++++++ .../xiaomi-actions.js | 50 +++++++ 2 files changed, 180 insertions(+) diff --git a/node-red-contrib-xiaomi-actions/xiaomi-actions.html b/node-red-contrib-xiaomi-actions/xiaomi-actions.html index ad8a517..1dbe8c6 100644 --- a/node-red-contrib-xiaomi-actions/xiaomi-actions.html +++ b/node-red-contrib-xiaomi-actions/xiaomi-actions.html @@ -241,3 +241,133 @@
  • Message to connect to a gateway out node.
  • + + + + + + + + + + + + + + + diff --git a/node-red-contrib-xiaomi-actions/xiaomi-actions.js b/node-red-contrib-xiaomi-actions/xiaomi-actions.js index 445ea2b..f64e882 100644 --- a/node-red-contrib-xiaomi-actions/xiaomi-actions.js +++ b/node-red-contrib-xiaomi-actions/xiaomi-actions.js @@ -98,4 +98,54 @@ module.exports = function(RED) { }); } RED.nodes.registerType("xiaomi-actions gateway_light", XiaomiActionGatewayLight); + + + + + function XiaomiActionGatewaySound(config) { + RED.nodes.createNode(this, config); + this.gateway = RED.nodes.getNode(config.gateway); + this.mid = config.mid; + this.volume = config.volume; + var node = this; + + node.on('input', function(msg) { + if(node.gateway && node.gateway.sid && node.gateway.key && node.gateway.lastToken) { + msg.payload = { + cmd: "write", + data: { + mid: parseInt(msg.mid || node.mid), + volume: parseInt(msg.volume || node.volume), + sid: node.gateway.sid, + key: miDevicesUtils.getGatewayKey(node.gateway.key, node.gateway.lastToken) + } + }; + node.send(msg); + } + }); + } + RED.nodes.registerType("xiaomi-actions gateway_sound", XiaomiActionGatewaySound); + + + + function XiaomiActionGatewayStopSound(config) { + RED.nodes.createNode(this, config); + this.gateway = RED.nodes.getNode(config.gateway); + var node = this; + + node.on('input', function(msg) { + if(node.gateway && node.gateway.sid && node.gateway.key && node.gateway.lastToken) { + msg.payload = { + cmd: "write", + data: { + mid: 1000, + sid: node.gateway.sid, + key: miDevicesUtils.getGatewayKey(node.gateway.key, node.gateway.lastToken) + } + }; + node.send(msg); + } + }); + } + RED.nodes.registerType("xiaomi-actions gateway_stop_sound", XiaomiActionGatewayStopSound); }