Nachdem ich mehrere Tage gebraucht habe um den Regensensor meiner Velux Fenster auszulesen wollte ich als Dankeschön mal eine Step-by-Step Anleitung schreiben.
Vielen Dank an
bergstermann für das Teilen der Infos.
Node-Red Quellcode von bergstermann
Code: Alles auswählen
[{"id":"1d8f215f.0cc12f","type":"tab","label":"Flow 2","disabled":false,"info":""},{"id":"27bd2f91.f461d","type":"inject","z":"1d8f215f.0cc12f","name":"Trigger 10min","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"600","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"apiText\":\"GW_GET_LIMITATION_STATUS_REQ\",\"sessionID\":123,\"indexArrayCount\":1,\"indexArray\":[0],\"parameterID\":0,\"limitationType\":0}","payloadType":"json","x":140,"y":160,"wires":[["1a56678.2d45e99"]]},{"id":"1a56678.2d45e99","type":"Velux Api","z":"1d8f215f.0cc12f","name":"Begrenzung Dachfenster","datasource":"c262d2de.40cae8","api":"786","ntf":"788","topic":"Begrenzung","x":370,"y":160,"wires":[["b8cd16c9.d4c368","72775506.485f0c"]]},{"id":"b8cd16c9.d4c368","type":"debug","z":"1d8f215f.0cc12f","name":"","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":610,"y":220,"wires":[]},{"id":"27f07cc5.2a0c74","type":"ccu-sysvar","z":"1d8f215f.0cc12f","name":"Regen","ccuConfig":"38263145.35ea0e","topic":"ReGaHSS/${Name}","change":true,"cache":true,"x":850,"y":160,"wires":[[]]},{"id":"d75a3a90.f6e3d8","type":"comment","z":"1d8f215f.0cc12f","name":"Öffnungsbegrenzung Dachfenster","info":"","x":170,"y":80,"wires":[]},{"id":"72775506.485f0c","type":"function","z":"1d8f215f.0cc12f","name":"max 7% öffnen","func":"if (msg.payload.api == 788 && msg.payload.minValue.value == 93) {\n msg.payload = true;\n} else {\n msg.payload = false;\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":640,"y":160,"wires":[["27f07cc5.2a0c74"]]},{"id":"c262d2de.40cae8","type":"velux-connection","host":"192.168.10.xx","password":"test","monitor":"MONITOR"},{"id":"38263145.35ea0e","type":"ccu-connection","name":"CCU3","host":"localhost","regaEnabled":true,"bcrfEnabled":true,"iprfEnabled":true,"virtEnabled":true,"bcwiEnabled":true,"cuxdEnabled":true,"regaPoll":true,"regaInterval":"30","rpcPingTimeout":"60","rpcInitAddress":"127.0.0.1","rpcServerHost":"127.0.0.1","rpcBinPort":"2047","rpcXmlPort":"2048","queueTimeout":"5000","queuePause":"250","contextStore":""}]
Auslesen des Velux Regensensor mit Hilfe der KLF200:
Dazu müsst ihr drei (zwei) Dateien aus dem Node-Red Plugin "node-red-contrib-velux" umschreiben.
Eine elegante Lösung dazu ist das ganze per WinSCP (
https://winscp.net/eng/download.php) zu erledigen.
Bugfixes:
https://github.com/PLCHome/velux-klf200-api/issues/12
https://github.com/PLCHome/node-red-con ... /issues/11
https://github.com/PLCHome/node-red-con ... /issues/12
1:
klf.js zu finden unter:
/usr/local/addons/redmatic/var/node_modules/node-red-contrib-velux/node_modules/velux-klf200-api/lib/
- Bild4.jpg (18.2 KiB) 570 mal betrachtet
Mit Rechtsklick bearbeiten und zur Zeile 2002 scrollen.
Dort muss in der Zeile in Klammern die 25 stehen (War bei mir schon gefixed).
2:
velux-api.html zu finden unter:
/usr/local/addons/redmatic/var/node_modules/node-red-contrib-velux/
- Bild5.jpg (19.2 KiB) 570 mal betrachtet
Mit Rechtsklick bearbeiten und Zeile 13 ersetzen mit:
Code: Alles auswählen
<input type="text" id="node-input-api" style="width:70%;">
sowie Zeile 18 mit:
Code: Alles auswählen
<input type="text" id="node-input-ntf" style="width:70%;" >
3:
velux-api.js zu finden unter:
/usr/local/addons/redmatic/var/node_modules/node-red-contrib-velux/
- Bild6.jpg (17.68 KiB) 570 mal betrachtet
Mit Rechtsklick bearbeiten und Zeile 38-51 ersetzen mit
Code: Alles auswählen
node.onNTF = function(data) {
if (config.ntf) {
debug('apiNTF:',config.ntf.indexOf(data.api),data)
if (config.ntf == data.api) {
var outmsg = {payload : data}
if (node.hasTopic) {
outmsg.topic = config.topic
}
node.send(outmsg)
}
}
}
Jetzt muss Node-Red einmal neu gestartet werden. Dazu die Node-Red Seite in der Homematic GUI unter Einstellungen -> Redmatic aufrufen und dort neu starten
- Bild7.jpg (7.11 KiB) 570 mal betrachtet
Jetzt müsst ihr in den Einstellungen der Velux Api folgendes eintragen
Und nun funktioniert die Abfrage des Status auch wie gewünscht.
kleiner Nachtrag:
Hiermit könnt ihr eure KLF200 nach Bedarf automatisiert neu starten lassen
Code: Alles auswählen
[{"id":"881f10e3.49078","type":"inject","z":"fbd03679.403448","name":"Reboot Daily","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"00 03 * * *","once":false,"onceDelay":0.1,"topic":"","payload":"{\"apiText\":\"GW_REBOOT_REQ\"}","payloadType":"json","x":120,"y":680,"wires":[["5bff506f.1e94e"]]}]
Einfach an die Velux API hängen
- Bild3.jpg (24.23 KiB) 566 mal betrachtet