For those who use node red I use a openwebnet to mqtt converter. Currently its only possible to use lights (on/off), covers(up/down) en cen commands. I’m thinking of buying a dimmer so I maybe try to add dimmer support in the future unless someone beats me to it. Node red is a lot easier than developing a home assistant plugin, at least for me.
[{"id":"add648bd.b23638","type":"tcp request","z":"3699bdf7.a4a582","server":"192.168.1.11","port":"20000","out":"sit","splitc":" ","name":"","x":650,"y":200,"wires":[["310c0132.ddc146","1e903399.68ad64"]]},{"id":"310c0132.ddc146","type":"function","z":"3699bdf7.a4a582","name":"Convert to string","func":"msg.payload = msg.payload.toString('utf8');\n//msg.payload = String(msg.payload);\nreturn msg;","outputs":1,"noerr":0,"x":910,"y":240,"wires":[["36aa90ad.d16e9","2516bf50.8a4058"]]},{"id":"1e903399.68ad64","type":"trigger","z":"3699bdf7.a4a582","op1":"","op2":"*99*1##","op1type":"nul","op2type":"str","duration":"135","extend":true,"units":"s","reset":"","bytopic":"all","name":"WatchDog","x":650,"y":140,"wires":[["add648bd.b23638"]]},{"id":"3fa34765.e3a668","type":"inject","z":"3699bdf7.a4a582","name":"Activate socked","topic":"","payload":"*99*1##","payloadType":"str","repeat":"135","crontab":"","once":true,"onceDelay":"","x":210,"y":200,"wires":[["add648bd.b23638"]]},{"id":"113dca8c.89db4d","type":"function","z":"3699bdf7.a4a582","name":"Parse MQTT","func":"//*WHO*WHAT*WHERE##\nvar WHO;\nvar WHAT;\nvar WHERE;\nvar array = msg.topic.split('/');\n\nif(array[1]=='l'){\n WHO = '1';\n}else if (array[1]=='c'){\n WHO = '2';\n}\n\nif(msg.payload=='ON' || msg.payload=='UP' ){\n WHAT = '1';\n}else if (msg.payload=='OFF'|| msg.payload=='STOP'){\n WHAT = '0';\n}else if (msg.payload=='DOWN'){\n WHAT = '2';\n}\n\nif(array[2] == 'g'){\n WHERE = array[3]; \n}else{\n WHERE = array[2]+array[3];\n}\nmsg.payload = '*'+WHO+'*'+WHAT+'*'+WHERE+'##';\n\nreturn msg;","outputs":1,"noerr":0,"x":390,"y":240,"wires":[["add648bd.b23638","310c0132.ddc146"]]},{"id":"dde915a0.756368","type":"change","z":"3699bdf7.a4a582","name":"To OWN","rules":[{"t":"set","p":"payload","pt":"msg","to":"*#1*0##","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":380,"y":160,"wires":[["add648bd.b23638"]]},{"id":"36aa90ad.d16e9","type":"function","z":"3699bdf7.a4a582","name":"Parse OWN command","func":"//*WHO*WHAT*WHERE##\nvar WHO;\nvar WHAT;\nvar A;\nvar PL;\nvar array = msg.payload.split('*');\n\nif(array[1]=='1'){\n WHO = 'l';\n}else if (array[1]=='2'){\n WHO = 'c';\n}else if (array[1]=='25'){\n WHO = 'cen';\n}\n\nif(WHO == 'l'){\n if(array[2]=='1'){\n WHAT = 'ON';\n }else if (array[2]=='0'){\n WHAT = 'OFF';\n }\n \n A = array[3][0];\n PL = array[3][1];\n if(A == '#'){\n A = 'g';\n }\n if(PL == '#'){\n A = 'g';\n PL = '0';\n }\n \n}\n\nif(WHO == 'c'){\n if(array[2]=='1'){\n WHAT = 'open';\n }else if (array[2]=='2'){\n WHAT = 'closed';\n }else if (array[2]=='0'){\n WHAT = 'stop';\n }\n \n A = array[3][0];\n PL = array[3][1];\n if(A == '#'){\n A = '0';\n WHO = 'g';\n }\n \n}\n\n\nif(WHO == 'cen'){\n A = array[3][1]+array[3][2];\n PL = array[2][3];\n if(array[2][1]== '1'){\n WHAT = \"SHORT\";\n }else if(array[2][1]== '2'){\n WHAT = \"PRESS\";\n }else if(array[2][1]== '3'){\n WHAT = \"HOLD\";\n }else if(array[2][1]== '4'){\n WHAT = \"RELEASE\";\n }\n}\n\n\nmsg.topic = \"bticino/\"+WHO+\"/\"+A+\"/\"+PL+\"/state\";\n\nmsg.payload = WHAT;\nreturn msg;","outputs":1,"noerr":0,"x":1160,"y":220,"wires":[["1f99f44.2070a8c"]]},{"id":"2516bf50.8a4058","type":"switch","z":"3699bdf7.a4a582","name":"Alles uit?","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"*1*0*0##","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":1120,"y":260,"wires":[["d9a7ac5a.7ed8b"]]},{"id":"2a1e94e5.967fac","type":"mqtt in","z":"3699bdf7.a4a582","name":"","topic":"bticino/+/+/+/power","qos":"2","datatype":"auto","broker":"ea7806fa.760d78","x":210,"y":240,"wires":[["113dca8c.89db4d"]]},{"id":"ccf0fb31.34f4b8","type":"inject","z":"3699bdf7.a4a582","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":200,"y":100,"wires":[["dde915a0.756368"]]},{"id":"1f99f44.2070a8c","type":"mqtt out","z":"3699bdf7.a4a582","name":"Send to mqt","topic":"","qos":"","retain":"","broker":"ea7806fa.760d78","x":1350,"y":220,"wires":[]},{"id":"d9a7ac5a.7ed8b","type":"link out","z":"3699bdf7.a4a582","name":"Alles Uit","links":["c98ef182.8fe57"],"x":1340,"y":260,"wires":[],"l":true},{"id":"ea7806fa.760d78","type":"mqtt-broker","z":"","name":"Mosquito Nuc","broker":"localhost","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthRetain":"false","birthPayload":"","closeTopic":"","closeQos":"0","closeRetain":"false","closePayload":"","willTopic":"","willQos":"0","willRetain":"false","willPayload":""}]
Lights
- platform: mqtt
name: "GEN OFF"
command_topic: "bticino/l/G/0/power"
state_topic: "bticino/l/G/0/state"
- platform: mqtt
name: "light A:1 PL:0"
command_topic: "bticino/l/1/0/power"
state_topic: "bticino/l/1/0/state"
Cover
- platform: mqtt
name: "cover A:9 PL:2"
command_topic: "bticino/c/9/2/power"
payload_open: "UP"
payload_close: "DOWN"
payload_stop: "STOP"
optimistic: true