NODE-RED to FIBARO HC2

Simple bridge node-red to Fibaro HC2

please. do not forget setup:

  1. NODE-RED MQTT Server
  2. login / password /IP Address HC2

now support only: true / false => HC2 ON / OFF

0..99 int value => dimmer level

#123456 => RGB led strip color

[{"id":"8b08f8c5.13a508","type":"mqtt in","z":"dae260f4.2feda","name":"to HC2","topic":"home/command/#","qos":"2","broker":"50ba17cb.2fbd18","x":90,"y":280,"wires":[["5ea83225.7cb4ec"]]},{"id":"dd514a06.0e6008","type":"debug","z":"dae260f4.2feda","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":550,"y":200,"wires":[]},{"id":"5ea83225.7cb4ec","type":"function","z":"dae260f4.2feda","name":"transform to HC2","func":"function hexToRgb(hex) {\n    // Expand shorthand form (e.g. \"03F\") to full form (e.g. \"0033FF\")\n    var shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n    hex = hex.replace(shorthandRegex, function(m, r, g, b) {\n        return r + r + g + g + b + b;\n    });\n\n    var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n    return result ? {\n        r: parseInt(result[1], 16),\n        g: parseInt(result[2], 16),\n        b: parseInt(result[3], 16)\n    } : null;\n}\n\nvar topic = msg.topic\nvar paths = topic.split(\"/\")\nvar value = msg.payload\nmsg.deviceID=paths[2]\n\nif (value == \"true\") {\n    msg.name=\"turnOn\";\n} else\nif (value == \"false\") {\n    msg.name=\"turnOff\";\n} else\nif (value.startsWith(\"$\")) {\n    var w = value.substr(1);\n    msg.args=\"&arg1=0&arg2=0&arg3=0&arg4=\" + w;\n} else\nif (value.startsWith(\"#\")) {\n    msg.name=\"setColor\";\n        var r = hexToRgb(value).r;\n        var g = hexToRgb(value).g;\n        var b = hexToRgb(value).b;\n        var w = 0;\n    msg.args=\"&arg1=\" + r + \"&arg2=\" + g + \"&arg3=\" + b + \"&arg4=\" + w;\n} else\nif (!isNaN(value)) {\n    msg.name=\"setValue\";\n    msg.args=\"&arg1=\" + value;\n} else {\n    // Ooops!!\n}\n\nreturn msg;","outputs":1,"noerr":0,"x":310,"y":280,"wires":[["d2e73b32.cf9f48","dd514a06.0e6008"]]},{"id":"d2e73b32.cf9f48","type":"http request","z":"dae260f4.2feda","name":"HC2 call","method":"GET","ret":"txt","url":"http://192.168.1.36/api/callAction?deviceID={{{deviceID}}}&name={{{name}}}{{{args}}}","tls":"","x":560,"y":280,"wires":[["95733273.7052f"]]},{"id":"95733273.7052f","type":"debug","z":"dae260f4.2feda","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":750,"y":280,"wires":[]},{"id":"50ba17cb.2fbd18","type":"mqtt-broker","z":"dae260f4.2feda","broker":"192.168.1.29","port":"1883","clientid":"","usetls":false,"verifyservercert":true,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthRetain":null,"birthPayload":"","willTopic":"","willQos":"0","willRetain":null,"willPayload":""}]

Flow Info

Created 7 years, 6 months ago
Rating: not yet rated

Owner

Actions

Rate:

Node Types

Core
  • debug (x2)
  • function (x1)
  • http request (x1)
  • mqtt in (x1)
  • mqtt-broker (x1)

Tags

  • FIBARO
  • HC2
Copy this flow JSON to your clipboard and then import into Node-RED using the Import From > Clipboard (Ctrl-I) menu option