Velux KLF200

Node-RED als CCU3/RaspberryMatic Addon, WebApp, HomeKit, ...

Moderator: Co-Administratoren

gklank
Beiträge: 75
Registriert: 26.05.2020, 12:58
System: CCU und Access Point
Hat sich bedankt: 14 Mal
Danksagung erhalten: 2 Mal

Re: Velux KLF200

Beitrag von gklank » 09.07.2021, 22:28

Hallo,

vielen Dank, ich denke ich bin ein deutliches Stück weiter.

Die Änderungen 1 und 2 sind gemacht, jedoch find ich für die Dritte mit den Notifications (nts) die entsprechende Datei "config.ntf.map" nicht.

Ich muss allerdings auch zugeben, dass ich eine Node Red Installation als docker auf eine QNAP laufen habe.
Dennoch meine ich, dass es die gleichen Dateien und Installationen sind.

Bei 1 und 2 konnte ich die Dateien auch finden und ändern.

Ich bekomme aktuell folgende Fehlermeldung, was wahrscheinlich mit dem ntf-Fehler zu tun hat:
Velux API Error: timeout GW_GET_LIMITATION_STATUS_CFM
at Object.<anonymous> (/data/node_modules/velux-klf200-api/lib/net.js:190:19)
at listOnTimeout (internal/timers.js:554:17)
at processTimers (internal/timers.js:497:7)

net.js: Zeile 190 --> var error = new Error('timeout '+apiText)

Kannst Du mir sagen wo die Datei "config.ntf.map" liegen sollte?

Und was für ein "KEY" benötige ich, um einen NTF einzugeben?
Sorry für wahrscheinlich etwas unpassende Ausdrucksweise, ich meine den Parameter zum Vergleich zu "apiText".


Grüße

Gerhard
MfG,

Gerhard
CCU3 mit HM-IP Komponenten
CUxD mit MapleCUNx4_8F per LAN für FS20 Komponenten
Node-Red Docker auf QNAP
MQTT-broker LxD Container
NEO mediola Cloud mit Google Assistant
Home Assistant

gklank
Beiträge: 75
Registriert: 26.05.2020, 12:58
System: CCU und Access Point
Hat sich bedankt: 14 Mal
Danksagung erhalten: 2 Mal

Re: Velux KLF200

Beitrag von gklank » 09.07.2021, 22:52

sorry, hängt an meinem KnowHow.

Ich habe weitere Parameter über die Injection Node reingebracht und bekomme jetzt eine Antwort.

Allerdings die 787 und nicht die 788, obwohl ich im Feld NTF 788 eingegeben habe.

Wie bekomme ich das noch hin?


Grüße

Gerhard
MfG,

Gerhard
CCU3 mit HM-IP Komponenten
CUxD mit MapleCUNx4_8F per LAN für FS20 Komponenten
Node-Red Docker auf QNAP
MQTT-broker LxD Container
NEO mediola Cloud mit Google Assistant
Home Assistant

firefighter9441
Beiträge: 3
Registriert: 16.06.2021, 09:53
System: CCU
Hat sich bedankt: 3 Mal

Re: Velux KLF200

Beitrag von firefighter9441 » 10.07.2021, 11:45

bergstermann hat geschrieben:
09.07.2021, 18:29
Ich habe mir den Code gerade mal kurz angesehen. Im Velux Node muss das Feld "send value" auf "all values" stehen. Bei Dir ist dort "target" ausgewählt. Dann gibt der Node nur die Zielposition und u.a. nicht die Werte state und remainingTime aus, die in den function nodes verarbeitet werden
Wow! Es läuft jetzt alles wie es soll. Kleine Ursache, große Wirkung. Es lag lediglich an "all values".
An dieser Stelle noch mal ein riesen Dankeschön für die sehr kompetente Hilfe! Das hätte ich alleine niemals hinbekommen.
Und gelernt habe ich auch eine Menge.
Dann werde ich jetzt schnell Koffer packen und dann geht es in den Urlaub.
Vielen, vielen Dank!

Liebe Grüße
Michael

gklank
Beiträge: 75
Registriert: 26.05.2020, 12:58
System: CCU und Access Point
Hat sich bedankt: 14 Mal
Danksagung erhalten: 2 Mal

Re: Velux KLF200

Beitrag von gklank » 11.07.2021, 00:07

Hallo,


ich meine, dass ich dank Eurer Hilfe und weiterem Lesen Einiges mehr verstanden habe...
Vielen Dank!!!

Allerdings habe ich immer noch das Problem, dass bei zwei Antworten (eine CFM und eine NTF) ich es nicht schaffe, dass die NTF rauskommt...
Auch wenn ich bei der API "GW_GET_LIMITATION_STATUS_REQ" und im "listen NTF" dann auch "GW_LIMITATION_STATUS_NTF" eintrage.

Es kommt dennoch nur das Acknowledge "GW_GET_LIMITATION_STATUS_CFM" raus...

Was muss ich da noch machen bzw. beachten?

Ich hatte oben auch schonmal gefragt, aber stelle hier die Frage nochmal dazu, da es eben hier wieder dazu passt:
Mit welchem Key / Parameter kann ich ein "Listen NTF" als payload injecten?


Grüße

Gerhard
MfG,

Gerhard
CCU3 mit HM-IP Komponenten
CUxD mit MapleCUNx4_8F per LAN für FS20 Komponenten
Node-Red Docker auf QNAP
MQTT-broker LxD Container
NEO mediola Cloud mit Google Assistant
Home Assistant

gklank
Beiträge: 75
Registriert: 26.05.2020, 12:58
System: CCU und Access Point
Hat sich bedankt: 14 Mal
Danksagung erhalten: 2 Mal

Re: Velux KLF200

Beitrag von gklank » 11.07.2021, 02:49

Hallo,

noch ein kurzes Update, dann doch mal ins Bett.

Die Lösung 3 zu dem im Github beschriebenen Problem in Richtung NTF Ausgaben habe ich gefunden und umgesetzt:
https://github.com/PLCHome/node-red-con ... /issues/12

Unter der Node-Red Installation/node_modules/node-red-contrib-velux die Datei velux-api.js entsprechend geändert.
Leider immer noch nur CFM-Antworten, ich komme an die Ausgaben der _NTF nicht ran!

Da bitte ich nochmals um Tipps und Hilfe?

Grüße

Gerhard
P.S.: Ich meine, dass ich mit dem Parameter apiNTF den listen NTF gefunden habe.
Aber auch damit bekomme ich die Rückmeldungen über die NTF Ausgaben nicht hin...
MfG,

Gerhard
CCU3 mit HM-IP Komponenten
CUxD mit MapleCUNx4_8F per LAN für FS20 Komponenten
Node-Red Docker auf QNAP
MQTT-broker LxD Container
NEO mediola Cloud mit Google Assistant
Home Assistant

bergstermann
Beiträge: 5
Registriert: 30.01.2021, 09:48
System: CCU
Danksagung erhalten: 6 Mal

Re: Velux KLF200

Beitrag von bergstermann » 11.07.2021, 22:49

Bei mir hat die Ausgabe der Notification nach der Änderung der Datei velux-api.js funktioniert. Zwei Schrägstriche bedeuten, dass eine Zeile auskommentiert ist. Ggf. kommt es durch die Formatierung zu Problemen, daher hier der zu ändernde Abschnitt noch mal ohne auskommentierte Zeilen:

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) 
		} 
	} 
}
Wenn ich den Code gerade richtig überblicke, lässt sich die auszugebende NTF nur im Velux API Node festlegen und anders als die API nicht über einen Inject Node übergeben.

Die Nummern der API-Aufrufe kannst Du der Dokumentation ab Seite 111 entnehmen, sind dort allerdings im hexadezimalen Format angegeben.

gklank
Beiträge: 75
Registriert: 26.05.2020, 12:58
System: CCU und Access Point
Hat sich bedankt: 14 Mal
Danksagung erhalten: 2 Mal

Re: Velux KLF200

Beitrag von gklank » 12.07.2021, 19:17

Hallo,


einfach nur Klasse, funktioniert!!!

Ja, über eine Injection Node ist der apiNTF nicht übergebbar.
Muss in der API Node angegeben werden, aber als Dezimalzahl und nicht als String.

Und ja der Source Code im Github war nicht wirklich verständlich, der jetzige Bestens!


Danke


Gerhard
MfG,

Gerhard
CCU3 mit HM-IP Komponenten
CUxD mit MapleCUNx4_8F per LAN für FS20 Komponenten
Node-Red Docker auf QNAP
MQTT-broker LxD Container
NEO mediola Cloud mit Google Assistant
Home Assistant

Benutzeravatar
uwe111
Beiträge: 4819
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 245 Mal
Kontaktdaten:

Re: Velux KLF200

Beitrag von uwe111 » 27.02.2022, 12:26

Nur zur Info und falls es jemanden interessiert...

über CUxD ist seit letzter Woche auch die direkte Integration vom Velux KLF200 Gateway in die HomeMatic CCU möglich.
Ausführliche Infos sind in der CUxD KLF200 Doku zu finden: viewtopic.php?f=37&t=15298

Viele Grüße

Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

Mutilator
Beiträge: 1
Registriert: 21.12.2022, 18:47
System: Alternative CCU (auf Basis OCCU)

Re: Velux KLF200

Beitrag von Mutilator » 21.12.2022, 20:57

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
Bild4.jpg (18.2 KiB) 404 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
Bild5.jpg (19.2 KiB) 404 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
Bild6.jpg (17.68 KiB) 404 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
Bild7.jpg (7.11 KiB) 404 mal betrachtet
Jetzt müsst ihr in den Einstellungen der Velux Api folgendes eintragen
Bild8.jpg


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
Bild3.jpg (24.23 KiB) 400 mal betrachtet

Stefan 2810
Beiträge: 9
Registriert: 20.02.2017, 14:39

Re: Velux KLF200

Beitrag von Stefan 2810 » 07.02.2024, 13:17

Hallo zusammen, ich habe drei Velux Solar-Rolladen. Ich habe, aus meiner Sicht, die KLF200 erfolgreich eingebunden. CUxD alles erkannt und Geräte kreiert. In der CCU 3 alles integriert und eingestellt. In meiner Cloudmatic App habe ich die Geräte integriert und der Status wird auch angezeigt und bei Veränderung über die KLR 200 auch der neue Prozentsatz für die Rollade angezeigt. Allerdings lassen sich die Rolladen nicht durch die App, auch nicht in der CCU, bewegen! Woran kann das liegen? Irgendwelche Einstellungen in KLF200 oder CCU die ich übersehen habe?

Besten Dank

Antworten

Zurück zu „RedMatic“