UPGRADE IP 9 verfügbar!
Timberwolf VISU jetzt mit NEUEM Layout Editor
Freie Anordnung, Reihenfolge und Größe der Widgets - viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/06SeuHRJ

NEU! Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Damit kann nun jeder das Upgrade vornehmen und VISU & IFTTT testen. Alle Info hier: viewtopic.php?f=8&t=5074

[TIPP] Luxtronik 2 - Wärmepumpen über Node Red und KNX lesen und steuern

Alles rund um Node Red im Allgemeinen und den entsprechenden Docker-Container für den Timberwolf Server im Speziellen.
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln
Antworten

Ersteller
oli171
Reactions:
Beiträge: 22
Registriert: Mi Jan 09, 2019 8:58 pm
Hat sich bedankt: 7 Mal
Danksagung erhalten: 68 Mal

Luxtronik 2 - Wärmepumpen über Node Red und KNX lesen und steuern

#1

Beitrag von oli171 »

Die Wärmepumpen-Steuerung Luxtronik 2 der Firma Alpha Innotec ist in vielen Wärmepumpen verbaut u.a. in Alpha Innotec, Buderus, Siemens Novelan, Wolf, Nibe, CTA Allinone Wärmepumpen...

Hiermit ein kleines How-To, wie wir die Luxtronik 2 auf den KNX-Bus bringen, auslesen und sogar steuern können.

Wir benötigen folgendes:

Luxtronik 2 mit konfigurierter LAN-Schnittstelle

Timberwolf Server mit Node Red Container (Anleitung siehe app.php/kb/viewarticle?a=124 bei Reg-TWS-Geräten bitte noch viewtopic.php?f=71&p=25952#p25952 beachten)

Wenn euer Node Red Container läuft, benötig ihr noch die Anbindung von Node Red zu KNX, was auch in der obigen Anleitung zu finden ist.

Sobald ihr eure KNX Anbindung eingerichtet habt, benötigen wir noch die passenden Node Red Nodes für die Luxtronik. Mit dem Hamburger Menü rechts oben auf "Manage Palette" klicken und und unter Install einfach Luxtronik eintippen. Euer Node Red findet dann 3 Nodes.

Bild

Für die Luxtronik 2 gibt es zwei verschiedene Nodes. Einer basiert auf Java Abfragen, der andere auf die neue Websockets Anbindung (Ab einer bestimmten Firmware hat der Hersteller Websockets implementiert um damit vermutlich die Java Sache ablösen will.)
Link zum Java Node: https://flows.nodered.org/node/node-re ... luxtronik2
Link zum neueren Websocket Node: https://flows.nodered.org/node/node-red ... ronik2-ws
Bei mir funktionieren beide Nodes. Wobei ich ein steuern der WP nur mit dem alten Java Node hinbekomme. Falls jemand herausfindet wie wir mit dem WS-Node steuern können, wäre das großes Kino! :-) Ich würde liebend gerne Dinge wie die Pumpenoptimierung über den Bus steuern können.

Wenn ihr die Nodes installiert habt, können wir uns den Luxtronik Node in ein neues Flow Fenster ziehen und konfigurieren:
Bild

Ihr müsst eure Luxtronik-IP und das PW angeben. Dann benötigt ihr noch ein Inject Node und als Ausgabe einen Debug Node. Das ganze via Deploy rechts oben scharf schalten und schon haben wir alle Daten ausgelesen, die das Webinterface der Luxtronik 2 liefern kann :-)

Code für NR-Import:
► Text zeigen
Bild

Alle Werte die rechts im Debug zu sehen sind, können wir gezielt einzeln abfragen und dann weiter auf den KNX-Bus senden.

Um gezielt einzelne Werte aus den Daten zu holen auf den KNX Bus zu bringen, benutze ich einfach einen Change Node der den Pfad des Wertes vorgibt, entferne noch Einheiten wie h, K,°C usw., damit wir blanke Zahlen an KNX liefern. Siehe:
Bild

Auch dazu nochmal ein Beispiel Flow zum Import:
► Text zeigen
Ihr könnt den Flow über das Hamburger Menü oben rechts importieren. Weitere Infos: https://nodered.org/docs/user-guide/edi ... rt-export Schaut euch den Change Node an, dann sollte jedem klar sein, was wir tun müssen um einzelne Pfade auszuwerten. Natürlich benötigt ihr noch entsprechende Gruppen-Adressen in eurem KNX-Projekt, welche ihr dann mit dem KNX-Node verbindet. Die GA´s auch immer gleich mit an den Timberwolf Server verbinden und das KNX Projekt dann wieder in TWS laden.

In dem Beispiel holen wir uns die Aussentemperatur via Luxtronik2WS-Node ab und sende diese auf den KNX-Bus. Damit können wir auch gleich den Temperaturfühler der WP in KNX nutzen ;-)

Als Tip: Über den Inject Node kann man via Timestamp die Werte in Intervallen abfragen. Z.B. alle 10 Sekunden. Damit wir aber den KNX Bus nicht fluten, wollen wir nur geänderte Werte an KNX übertragen. Das bekommen wir mit einem RBE-Filter auf dem KNX-Node hin:
Bild

Baut euch dann einfach alles so zusammen wie ihr es gerne hättet. Wenn Ihr erst einmal einen Wert in KNX habt, ist der Weg eigentlich klar.

Das coole an der Sache, also Node Red auf dem TWS ist, dass wir alles immer gleich in die Time-Series-DB schreiben, ohne weiteres zu tun. Somit habt ihr eine Langzeitüberwachung der WP mit der Luxtronik 2. Als Bespiel könnt ihr euch einen DTA-Viewer mit Grafana bauen. Hier noch ein Beispiel:
Bild

Im Vergleich zur klassischen DTA-GUI:
Bild

Baut euch ein Dashboard in Grafana oder in eurer Visu - wenn ihr die Daten auf den Bus habt ja kein Problem. Hier noch ein paar Beispiele:

WW-Takt:
Bild

Bild

Bild



Die Steuerung der Luxtronik, mache aktuell über den alten Java-Node. Da wird ein "Send-Node" mitgeliefert, welche vordefinierte Vorgänge ausführen kann. Hier ein Beispiel für die Steuerung der Betriebsart Heizen. Die KNX Telegramme (true & False) können dann einfach umgewandelt werden.
Bild

Auch hierzu ein Flow zum importieren:
► Text zeigen
Wir können dann die Betriebsart für WW und Heizen steuern, die Hysterese für WW und Heizung vorgeben und wer es hat kann auch die Kühlfunktion der WP nutzen.

So sieht das jetzt in meiner mobilen Visu aus:
Bild

Zusammenfassend geht "lesend" eigentlich alles. Zum Senden / Steuern nutze ich die vordefinierten Zustände des Luxtronik-Send-Nodes. Aber das ist schon mal besser als nichts :-)

Vielleicht gibt es hier jemanden der mit Websockets auch Befehle schreiben kann und das hier mit ergänzt. :?:

Viel Spaß bei der Umsetzung - wenn man erst mal drin ist, geht das alles schnell und einfach :-)
Zuletzt geändert von oli171 am So Aug 09, 2020 8:35 pm, insgesamt 1-mal geändert.
"TWS 35Q ID:412 , VPN offen, Reboot erlaubt" :handgestures-thumbupright:

DeLaDope
Reactions:
Beiträge: 245
Registriert: Mo Sep 03, 2018 2:26 pm
Hat sich bedankt: 122 Mal
Danksagung erhalten: 97 Mal

#2

Beitrag von DeLaDope »

Wow... Cool! Vielen Dank!

Evtl kann Elabnet hier mit proaktiv unterstützen! Die Luxtronik 2 ist sehr sehr weit verbreitet!

Herzlichen Dank!
VG
TWS 2500 ID:134 + 2 x PBM ID:833/789, VPN offen, Reboot nach Rücksprache

danik
Reactions:
Beiträge: 391
Registriert: Mo Sep 10, 2018 8:40 pm
Hat sich bedankt: 256 Mal
Danksagung erhalten: 266 Mal

#3

Beitrag von danik »

Vielen danke für die tolle Anleitung. Probiere ich aus. Im Moment lese ich die Werte noch mit einem Edomi Baustein.

Gruss
Dani
TW 3500L (#882) + TW 950Q (#321, im Moment inaktiv), VPN offen, Reboot nach Rücksprache

MoseP
Reactions:
Beiträge: 5
Registriert: Di Mär 07, 2023 8:15 am
Hat sich bedankt: 18 Mal

#4

Beitrag von MoseP »

Vielen Dank, ich habe es hinbekommen, so die Werte auszulesen und auf den Bus zu schreiben.

In meinem Fall gab es allerdings Fehlermeldungen des KNX-Bausteins: "PM Send write TypeError: value.toFixed is not a function". Grund dafür war, dass die Werte aus dem Change-Node als String übergeben wurden, im KNX-Baustein aber als DataPoint beispielsweise "9.001 Temperature (°C)" eingestellt war (wie auch in den Datenpunktdefinitionen im Timberwolf).

Ich habe drei mögliche Lösungen gefunden:
1) Im Change-Node eine weitere Funktion eintragen: Set --> JSONata --> $number(payload)
► Text zeigen
2) Einen zusätzlichen Function-Node zwischen Change-Node und KNX-Node anlegen und die Funktion "parseFloat()" nutzen:
► Text zeigen
Das geht in den meisten Fällen sogar ohne das vorherige Entfernen der Einheiten.

3) Noch einfacher, sofern die Ausgabe des Luxtronik2-Nodes zum Datenpunkt passt:
Im Change-Node nicht wie oben vorgeschlagen mittels "Ändern" nach Einheiten suchen und diese entfernen, sondern die Einheiten dran lassen. Dann schreibt sie der KNX-Node einfach als entsprechenden Datapoint.
Das funktioniert bei mir z. B. mit °C, kW, l/h, Hz.
Für kWh (DPT 13.013) ging es nicht, da habe ich mit der Option 2 (Function-Node) gearbeitet.

Grüsse
André
Zuletzt geändert von MoseP am So Feb 18, 2024 7:02 pm, insgesamt 2-mal geändert.
TWS 3500M ID:947, VPN offen, Reboot erlaubt

MoseP
Reactions:
Beiträge: 5
Registriert: Di Mär 07, 2023 8:15 am
Hat sich bedankt: 18 Mal

#5

Beitrag von MoseP »

Jetzt muss ich mich selber korrigieren: Der KNX-Node zeigt zwar bei den originalen Eingangswerten inklusive Einheit keine Fehlermeldung, sondern OK. Aber: Auf dem Bus landet für alle numerischen Werte immer "0" - habe ich erst nach Durchsicht des Busmonitors und der Grafana-Charts bemerkt.
Deshalb musste ich doch für alle Zahlenwerte (ausser für die Ablaufzeiten) den Function-Node "parseFloat" einfügen.
TWS 3500M ID:947, VPN offen, Reboot erlaubt
Antworten

Zurück zu „Docker Container: Node Red“