node-red-contrib-magichome-controller

0.1.3 • Public • Published

node-red-contrib-magichome-controller

Maintenance GitHub license Libraries.io for GitHub npm

Description

Use this node contribution to control your Magic Home LED Controller with NodeRED.

Works with MagicHome default firmware.

Installing

Within NodeRED you can sleect 'Manage palette' from the burger menu and install node-red-contrib-magichome-controller

Your 2nd option is to install it via npm to the NodeRED user directory by typing npm install node-red-contrib-magichome-controller on your command line.

Getting started

Properties

Input commands

All properties have to be supplied within msg.payload property as the following properties:

power (boolean|string)

set msg.payload.powerto true or "on" to turn the light on.
set it to false or "off" to turn it off.

brightness (integer: 0..255)

Hint: It doesn't work at the moment and can't be set. Currently it is reflecting the maximum value all colors including white. e.g. if color is

  • red: 120
  • green: 34
  • blue: 200
  • white: 178

the brightness is 200.

white (integer: 0..255)

Set the brightness of the white LED with this property. If your LED controller doesn't support white, this property can just be ignored. The value can only be changed if the light has been turned on.

color (object)

contains of three propoerties red, green and blue. Each can hold a value between 0 and 255. The color can only be changed, if the light has been turned on. Omitting properties is possible.

{ "red":0..255, "green": 0..255, "blue":0..255 }

Output status

Below is an example what the output status object looks like. The values of brightness, color and white are kept even when the light is turned off.

{
    "power":"off",
    "brightness":255,
    "color":
    {
        "red":0,
        "green":111,
        "blue":250
    },
    "white":255
}

Example

Import this example flow into NodeRED to try it out with controls on a dashboard. The dashboads URL is: http[s]://[YOUR NODERED IP]:[1880|CUSTOM PORT]/[NODE ROOT PATH/]ui

Reminder: Please set your lamps IP address (or host name) in the configuration node.

[{"id":"5c9eaefd.2a9c28","type":"MagicHome","z":"1d79652f.07841b","name":"test","server":"8c37aba5.f25cb8","x":510,"y":120,"wires":[["2bdeec9e.c1a1d4","18d8e2c7.08c1bd","a8ac24b7.be8228","bd844efc.ec43c","ef3ac2ca.e4a","f29c59a1.626798","18991924.c1f5f7"]]},{"id":"aeb56122.233f8","type":"ui_slider","z":"1d79652f.07841b","name":"","label":"red","group":"8b836425.a49b88","order":2,"width":0,"height":0,"passthru":false,"outs":"end","topic":"","min":0,"max":"255","step":1,"x":510,"y":360,"wires":[["3b81110a.56ac1e"]]},{"id":"18c8491b.da3f57","type":"ui_slider","z":"1d79652f.07841b","name":"","label":"green","group":"8b836425.a49b88","order":3,"width":0,"height":0,"passthru":false,"outs":"end","topic":"","min":0,"max":"255","step":1,"x":510,"y":420,"wires":[["bd36455c.a367f8"]]},{"id":"12a29235.80a2ce","type":"ui_slider","z":"1d79652f.07841b","name":"","label":"blue","group":"8b836425.a49b88","order":4,"width":0,"height":0,"passthru":false,"outs":"end","topic":"","min":0,"max":"255","step":1,"x":510,"y":480,"wires":[["aaddce9e.82a08"]]},{"id":"865d0746.19c5a","type":"ui_slider","z":"1d79652f.07841b","name":"","label":"white","group":"e1a73554.558bb8","order":2,"width":0,"height":0,"passthru":false,"outs":"end","topic":"","min":0,"max":"255","step":1,"x":510,"y":540,"wires":[["3a6a33f.50ddbcc"]]},{"id":"eae54b5c.e46cb8","type":"ui_colour_picker","z":"1d79652f.07841b","name":"","label":"color","group":"8b836425.a49b88","format":"rgb","outformat":"object","showSwatch":true,"showPicker":false,"showValue":true,"showHue":false,"showAlpha":false,"showLightness":true,"dynOutput":"false","order":1,"width":"4","height":"1","passthru":false,"topic":"","x":510,"y":300,"wires":[["46345e63.77267"]]},{"id":"8fa728f2.21747","type":"ui_switch","z":"1d79652f.07841b","name":"","label":"power","group":"e1a73554.558bb8","order":1,"width":0,"height":0,"passthru":false,"decouple":"true","topic":"","style":"","onvalue":"on","onvalueType":"str","onicon":"","oncolor":"","offvalue":"off","offvalueType":"str","officon":"","offcolor":"","x":510,"y":240,"wires":[["19a5d69a.6eef69"]]},{"id":"2d0e97d7.836578","type":"ui_slider","z":"1d79652f.07841b","name":"","label":"brightness","group":"e1a73554.558bb8","order":3,"width":0,"height":0,"passthru":false,"outs":"end","topic":"","min":0,"max":"255","step":1,"x":530,"y":600,"wires":[["d380eb0d.211608"]]},{"id":"46345e63.77267","type":"change","z":"1d79652f.07841b","name":"","rules":[{"t":"set","p":"payload.color.red","pt":"msg","to":"payload.r","tot":"msg"},{"t":"set","p":"payload.color.green","pt":"msg","to":"payload.g","tot":"msg"},{"t":"set","p":"payload.color.blue","pt":"msg","to":"payload.b","tot":"msg"},{"t":"delete","p":"payload.a","pt":"msg"},{"t":"delete","p":"payload.r","pt":"msg"},{"t":"delete","p":"payload.g","pt":"msg"},{"t":"delete","p":"payload.b","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":700,"y":300,"wires":[["5c9eaefd.2a9c28"]]},{"id":"2bdeec9e.c1a1d4","type":"change","z":"1d79652f.07841b","name":"","rules":[{"t":"move","p":"power","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":330,"y":240,"wires":[["8fa728f2.21747"]]},{"id":"fdb10026.c9d5d","type":"ui_button","z":"1d79652f.07841b","name":"","group":"e1a73554.558bb8","order":4,"width":0,"height":0,"passthru":false,"label":"query status","color":"","bgcolor":"","icon":"","payload":"{\"query\":true}","payloadType":"json","topic":"","x":310,"y":120,"wires":[["5c9eaefd.2a9c28"]]},{"id":"19a5d69a.6eef69","type":"change","z":"1d79652f.07841b","name":"","rules":[{"t":"move","p":"payload","pt":"msg","to":"payload.power","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":710,"y":240,"wires":[["5c9eaefd.2a9c28"]]},{"id":"18d8e2c7.08c1bd","type":"change","z":"1d79652f.07841b","name":"","rules":[{"t":"move","p":"color.red","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":330,"y":360,"wires":[["aeb56122.233f8"]]},{"id":"bd844efc.ec43c","type":"change","z":"1d79652f.07841b","name":"","rules":[{"t":"move","p":"color.blue","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":340,"y":480,"wires":[["12a29235.80a2ce"]]},{"id":"a8ac24b7.be8228","type":"change","z":"1d79652f.07841b","name":"","rules":[{"t":"move","p":"color.green","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":340,"y":420,"wires":[["18c8491b.da3f57"]]},{"id":"ef3ac2ca.e4a","type":"change","z":"1d79652f.07841b","name":"","rules":[{"t":"move","p":"white","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":540,"wires":[["865d0746.19c5a"]]},{"id":"3b81110a.56ac1e","type":"change","z":"1d79652f.07841b","name":"","rules":[{"t":"move","p":"payload","pt":"msg","to":"payload.color.red","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":710,"y":360,"wires":[["5c9eaefd.2a9c28"]]},{"id":"18991924.c1f5f7","type":"change","z":"1d79652f.07841b","name":"","rules":[{"t":"move","p":"color.red","pt":"msg","to":"payload.r","tot":"msg"},{"t":"move","p":"color.green","pt":"msg","to":"payload.g","tot":"msg"},{"t":"move","p":"color.blue","pt":"msg","to":"payload.b","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":300,"wires":[["eae54b5c.e46cb8"]]},{"id":"f29c59a1.626798","type":"change","z":"1d79652f.07841b","name":"","rules":[{"t":"move","p":"brightness","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":340,"y":600,"wires":[["2d0e97d7.836578"]]},{"id":"bd36455c.a367f8","type":"change","z":"1d79652f.07841b","name":"","rules":[{"t":"move","p":"payload","pt":"msg","to":"payload.color.green","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":710,"y":420,"wires":[["5c9eaefd.2a9c28"]]},{"id":"aaddce9e.82a08","type":"change","z":"1d79652f.07841b","name":"","rules":[{"t":"move","p":"payload","pt":"msg","to":"payload.color.blue","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":710,"y":480,"wires":[["5c9eaefd.2a9c28"]]},{"id":"3a6a33f.50ddbcc","type":"change","z":"1d79652f.07841b","name":"","rules":[{"t":"move","p":"payload","pt":"msg","to":"payload.white","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":710,"y":540,"wires":[["5c9eaefd.2a9c28"]]},{"id":"d380eb0d.211608","type":"change","z":"1d79652f.07841b","name":"","rules":[{"t":"move","p":"payload","pt":"msg","to":"payload.brightness","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":710,"y":600,"wires":[["5c9eaefd.2a9c28"]]},{"id":"8c37aba5.f25cb8","type":"MagicHome-config","z":"","name":"Room or lamp name","host":"127.0.0.1","interval":10},{"id":"8b836425.a49b88","type":"ui_group","z":"","name":"Color","tab":"a2d6e827.7acec","order":1,"disp":true,"width":"6","collapse":false},{"id":"e1a73554.558bb8","type":"ui_group","z":"","name":"General","tab":"a2d6e827.7acec","order":2,"disp":true,"width":"6","collapse":false},{"id":"a2d6e827.7acec","type":"ui_tab","z":"","name":"MagicHome","icon":"dashboard","order":1}]

Thanks go to

  • jangxx (https://github.com/jangxx/node-magichome) his magic-home npm package takes care of the heavy lifting inside this contribution.
  • joocer (https://www.npmjs.com/package/node-red-contrib-magichome) for the inspiration. Parts of his work has been used as template for this contribution.

ToDo

See project board

License

This project is licensed under the Apache v2.0 License - see the [LICENSE.md] file for details

Package Sidebar

Install

npm i node-red-contrib-magichome-controller

Weekly Downloads

4

Version

0.1.3

License

Apache-2.0

Unpacked Size

36.8 kB

Total Files

7

Last publish

Collaborators

  • tedstriker