NEWS
Rotex HPSU / Daikin Altherma Wärmepumpe über ioBroker.canbus
-
Danke für die Info.
Raw States war schon deaktiviert
Ich habe grob 300 Parser.
Gibt es irgendwo eine Beschreibung der ganzen Werte. Wenn ich alle verstehen würde könnte ich viele rauslöschen.
Edit: Wegen den Parsern, ist es egal ob Schreib oder Lesewerte? -
[gelöst: Es war ein Hardware-Defekt!]
Frage in die Runde: Woran kann es liegen, dass wenige Stunden nach Anschluss von iobroker.canbus bzw. des Raspberry am CAN meiner HPSU die Steuerung verrückt spielt? Dann laufen die Ventile nicht mehr und alle Temperaturwerte stehen auf Null. Fehlermeldungen werden nicht erzeugt.Aktuell frage ich nur Temperatur- und Ventilwerte ab. Kann es sein, dass ich hier zwei Häkchen zu viel gesetzt habe?
-
@hg6806 sagte in Rotex HPSU / Daikin Altherma Wärmepumpe über ioBroker.canbus:
Gibt es irgendwo eine Beschreibung der ganzen Werte. Wenn ich alle verstehen würde könnte ich viele rauslöschen.
Glaube nein. Was welcher Wert ist steht meist im Namen des Parsers. Generell kannst du einfach alle raus löschen, die du nicht nutzt.
Edit: Wegen den Parsern, ist es egal ob Schreib oder Lesewerte?
Die zum Schreiben unter Nachrichten-ID 680 dürften nicht stören, da im Normalfall keine Daten mit der ID Empfangen werden. (Außer vielleicht ein Servicetechniker klinkt sich irgendwie direkt per Laptop o.ä. in den Bus ein. die 680 ist soweit ich das Verstanden habe nämlich eigentlich dafür gedacht.)
@kalanaghtd sagte in Rotex HPSU / Daikin Altherma Wärmepumpe über ioBroker.canbus:
Frage in die Runde: Woran kann es liegen, dass wenige Stunden nach Anschluss von iobroker.canbus bzw. des Raspberry am CAN meiner HPSU die Steuerung verrückt spielt? Dann laufen die Ventile nicht mehr und alle Temperaturwerte stehen auf Null. Fehlermeldungen werden nicht erzeugt.
Das passiert (soweit mir bekannt), wenn die Steuerung irgendwelche falschen Nachrichten über den Bus empfangen hat und damit nicht umgehen konnte.
Aktuell frage ich nur Temperatur- und Ventilwerte ab. Kann es sein, dass ich hier zwei Häkchen zu viel gesetzt habe?
Senden sollte (darf?) nur bei Nachrichten-ID 680 aktiv sein. Der Rest wird nur empfangen.
Evlt. kann die Steuerung auch gestört werden, wenn du zu häufig abfragst und die Steuerung dann nicht mehr hinterher kommt. Alle paar Sekunden abfragen sollte aber eigentlich gehen.
-
@crycode
Hallo.
Danke für den sehr nützlichen Adapter.
Ich habe da noch eine Frage zu den Energiewerten.
Beispiel:
da kommt es bei 32767 zum Überlauf.
wie muss der Parser angepasst werden um die Werte korrekt zu empfangen ?Danke
agEdit:
65535 addiere ich dazu weil die WP bereits mehr als 67000
kWh erzeugt hat. -
@ag Hmm... also in der Nachricht kommen ja nur 16 Bit an Daten mit, also kann der gelesene Wert nie größer werden.
Eventuell gibt es dazu noch eine zweite Nachricht mit anderer ID anstelle von fa0930, womit dann zusammen mit diesem der richtige Wert ermittelt werden kann.Kann man den Wert über die originale Steuerung irgendwie aktiv abfragen?
Wenn ja, dann das mal bitte machen und dabei einen candump mitlaufen lassen. Den Dump und den Wert, der in der Steuerung angezeigt wird dann bitte mal posten -
@crycode
Danke für die schnelle Antwort! Dann nehme ich die Häkchen bei „Senden“ raus und teste. -
@crycode
Werde den Candump die Tage mal machen, imo wenig Zeit.
Gruß
ag -
@crycode
Kaum zu glauben, aber es war ein Hardware-Defekt am CAN-HAT meines Pi3.
Nachtrag: Kein Hardware-Defekt! Habe die can-utils neu installiert, und es läuft! -
@crycode
Hallo
Hier der gewünschte candump mit einem Foto dessen was das Display anzeigt.pi@iobroker-slave:~ $ candump can0 can0 10A [7] 31 00 FA C0 B4 00 00 can0 180 [7] 22 0A FA C0 B4 00 22 can0 10A [7] 31 00 FA 09 1C 00 00 can0 180 [7] 22 0A FA 09 1C 00 46 can0 10A [7] 31 00 FA C2 EA 00 00 can0 180 [7] 22 0A FA C2 EA 00 00 can0 10A [7] 31 00 FA 09 20 00 00 can0 180 [7] 22 0A FA 09 20 06 D0 can0 10A [7] 31 00 FA C2 EB 00 00 can0 180 [7] 22 0A FA C2 EB 00 00 can0 10A [7] 31 00 FA 06 A6 00 00 can0 180 [7] 22 0A FA 06 A6 00 00 can0 10A [7] 31 00 FA C2 EC 00 00 can0 180 [7] 22 0A FA C2 EC 00 00 can0 10A [7] 31 00 FA 06 A7 00 00 can0 180 [7] 22 0A FA 06 A7 56 82 can0 10A [7] 31 00 FA C2 ED 00 00 can0 180 [7] 22 0A FA C2 ED 00 01 can0 10A [7] 31 00 FA 09 2C 00 00 can0 180 [7] 22 0A FA 09 2C 2F CF can0 10A [7] 31 00 FA C2 EF 00 00 can0 180 [7] 22 0A FA C2 EF 00 00 can0 10A [7] 31 00 FA 09 30 00 00 can0 180 [7] 22 0A FA 09 30 06 08 can0 10A [7] 31 00 FA C2 EE 00 00 can0 180 [7] 22 0A FA C2 EE 00 02 can0 10A [7] 31 00 FA C2 FA 00 00 can0 180 [7] 22 0A FA C2 FA 64 BD can0 10A [7] 31 00 FA C2 FB 00 00 can0 180 [7] 22 0A FA C2 FB 00 00 can0 10A [7] 31 00 FA 06 A5 00 00 can0 180 [7] 22 0A FA 06 A5 25 85 can0 10A [7] 31 00 FA 06 A4 00 00 can0 180 [7] 22 0A FA 06 A4 31 13 can0 10A [7] 31 00 FA 09 1C 00 00 can0 180 [7] 22 0A FA 09 1C 00 46 can0 10A [7] 31 00 FA C2 EA 00 00 can0 180 [7] 22 0A FA C2 EA 00 00 can0 10A [7] 31 00 FA 09 20 00 00 can0 180 [7] 22 0A FA 09 20 06 D0 can0 10A [7] 31 00 FA C2 EB 00 00 can0 180 [7] 22 0A FA C2 EB 00 00 can0 10A [7] 31 00 FA 06 A6 00 00 can0 180 [7] 22 0A FA 06 A6 00 00 can0 10A [7] 31 00 FA C2 EC 00 00 can0 180 [7] 22 0A FA C2 EC 00 00 can0 10A [7] 31 00 FA 06 A7 00 00 can0 180 [7] 22 0A FA 06 A7 56 82 can0 10A [7] 31 00 FA C2 ED 00 00 can0 180 [7] 22 0A FA C2 ED 00 01 can0 10A [7] 31 00 FA 09 2C 00 00 can0 180 [7] 22 0A FA 09 2C 2F CF can0 10A [7] 31 00 FA C2 EF 00 00 can0 180 [7] 22 0A FA C2 EF 00 00 can0 10A [7] 31 00 FA 09 30 00 00 can0 180 [7] 22 0A FA 09 30 06 08 can0 10A [7] 31 00 FA C2 EE 00 00 can0 180 [7] 22 0A FA C2 EE 00 02 can0 10A [7] 31 00 FA C2 FA 00 00 can0 180 [7] 22 0A FA C2 FA 64 BD can0 10A [7] 31 00 FA C2 FB 00 00 can0 180 [7] 22 0A FA C2 FB 00 00 can0 10A [7] 31 00 FA 06 A5 00 00 can0 180 [7] 22 0A FA 06 A5 25 85 can0 10A [7] 31 00 FA 06 A4 00 00 can0 180 [7] 22 0A FA 06 A4 31 13 can0 10A [7] 31 00 FA 09 1C 00 00 can0 180 [7] 22 0A FA 09 1C 00 46 can0 10A [7] 31 00 FA C2 EA 00 00 can0 180 [7] 22 0A FA C2 EA 00 00 can0 10A [7] 31 00 FA 09 20 00 00 can0 180 [7] 22 0A FA 09 20 06 D0 can0 10A [7] 31 00 FA C2 EB 00 00 can0 180 [7] 22 0A FA C2 EB 00 00 can0 10A [7] 31 00 FA 06 A6 00 00 can0 180 [7] 22 0A FA 06 A6 00 00 can0 10A [7] 31 00 FA C2 EC 00 00 can0 180 [7] 22 0A FA C2 EC 00 00 can0 10A [7] 31 00 FA 06 A7 00 00 can0 180 [7] 22 0A FA 06 A7 56 82 can0 10A [7] 31 00 FA C2 ED 00 00 can0 180 [7] 22 0A FA C2 ED 00 01 can0 10A [7] 31 00 FA 09 2C 00 00 can0 180 [7] 22 0A FA 09 2C 2F CF can0 10A [7] 31 00 FA C2 EF 00 00 can0 180 [7] 22 0A FA C2 EF 00 00 can0 10A [7] 31 00 FA 09 30 00 00 can0 180 [7] 22 0A FA 09 30 06 08 can0 10A [7] 31 00 FA C2 EE 00 00 can0 180 [7] 22 0A FA C2 EE 00 02 can0 10A [7] 31 00 FA C2 FA 00 00 can0 180 [7] 22 0A FA C2 FA 64 BD can0 10A [7] 31 00 FA C2 FB 00 00 can0 180 [7] 22 0A FA C2 FB 00 00 can0 10A [7] 31 00 FA 06 A5 00 00 can0 180 [7] 22 0A FA 06 A5 25 85 can0 10A [7] 31 00 FA 06 A4 00 00 can0 180 [7] 22 0A FA 06 A4 31 13 can0 780 [7] B0 79 FA 01 25 10 00 can0 780 [7] B0 79 FA 01 26 2D 00 can0 780 [7] B0 79 FA 01 24 18 00 can0 780 [7] B0 79 FA 01 23 0A 00 can0 780 [7] B0 79 FA 01 22 09 00 can0 10A [7] 31 00 FA 09 1C 00 00 can0 180 [7] 22 0A FA 09 1C 00 46 can0 10A [7] 31 00 FA C2 EA 00 00 can0 180 [7] 22 0A FA C2 EA 00 00 can0 10A [7] 31 00 FA 09 20 00 00 can0 180 [7] 22 0A FA 09 20 06 D0 can0 10A [7] 31 00 FA C2 EB 00 00 can0 180 [7] 22 0A FA C2 EB 00 00 can0 10A [7] 31 00 FA 06 A6 00 00 can0 180 [7] 22 0A FA 06 A6 00 00 can0 10A [7] 31 00 FA C2 EC 00 00 can0 180 [7] 22 0A FA C2 EC 00 00 can0 10A [7] 31 00 FA 06 A7 00 00 can0 180 [7] 22 0A FA 06 A7 56 82 can0 10A [7] 31 00 FA C2 ED 00 00 can0 180 [7] 22 0A FA C2 ED 00 01 can0 10A [7] 31 00 FA 09 2C 00 00 can0 180 [7] 22 0A FA 09 2C 2F CF can0 10A [7] 31 00 FA C2 EF 00 00 can0 180 [7] 22 0A FA C2 EF 00 00 can0 10A [7] 31 00 FA 09 30 00 00 can0 180 [7] 22 0A FA 09 30 06 08 can0 10A [7] 31 00 FA C2 EE 00 00 can0 180 [7] 22 0A FA C2 EE 00 02 can0 10A [7] 31 00 FA C2 FA 00 00 can0 180 [7] 22 0A FA C2 FA 64 BD can0 10A [7] 31 00 FA C2 FB 00 00 can0 180 [7] 22 0A FA C2 FB 00 00 can0 10A [7] 31 00 FA 06 A5 00 00 can0 180 [7] 22 0A FA 06 A5 25 85 can0 10A [7] 31 00 FA 06 A4 00 00 can0 180 [7] 22 0A FA 06 A4 31 13 ^Cpi@iobroker-slave:~ $
Danke für die Mühe.
Gruß
ag -
@ag sagte in Rotex HPSU / Daikin Altherma Wärmepumpe über ioBroker.canbus:
can0 10A [7] 31 00 FA 09 30 00 00 can0 180 [7] 22 0A FA 09 30 06 08 can0 10A [7] 31 00 FA C2 EE 00 00 can0 180 [7] 22 0A FA C2 EE 00 02
Der angezeigte Wert passt zur 06 08 bei FA0930 + 2 Überläufe der Variable.
Ich würde jetzt vermuten, dass die Überläufe in FAC2EE mit 00 02 gezählt sind.
Kann das irgendwer bestätigen, der einen "Energie WP gesamt" Wert zwischen 32768 und 65534 kWh hat?can0 10A [7] 31 00 FA 06 A7 00 00 can0 180 [7] 22 0A FA 06 A7 56 82 can0 10A [7] 31 00 FA C2 ED 00 00 can0 180 [7] 22 0A FA C2 ED 00 01
Das müsste dann "Energie WP Heizung" sein mit 56 82 = 22146 + 1 Überlauf (32768) = 54914 kWh
can0 10A [7] 31 00 FA 09 2C 00 00 can0 180 [7] 22 0A FA 09 2C 2F CF can0 10A [7] 31 00 FA C2 EF 00 00 can0 180 [7] 22 0A FA C2 EF 00 00
Und das dann "Energie WP Kühlung" mit 2F CF = 12239 + 0 Überläufe = 12239 kWh
Ich baue das die nächsten Tage, sobald ich Zeit dafür finde, mal in die Config ein.
-
@crycode
Danke.
eilt nicht.
Gruß
ag -
@crycode
Ich muss leider nochmal auf die von Dir dankenswerterweise implementierte Steuerung der Heizstäbe zurückkommen. Basis ist ja der von Daikin ab der HPSU-Generation „Ultra“ bereitgestellte Relaistest für den Heizstab.Diese Funktion hat bei mir im ganzen September gut und unauffällig funktioniert, solange meine Heizung im Sommermodus lief (Das Warmwasser wurde dabei ausschließlich per Heizstab gemacht).
Nach Einschalten des Wintermodus (Heizbetrieb) führt die Heizstabsteuerung per iobroker.canbus zur schleichenden Störung und zum Ausfall der Heizungssteuerung (es wird kalt im Haus). Schließlich kommt es zum Einfrieren der can0-Schnittstelle meines Raspberry.
Der Fehler ist reprodzuierbar. Wenn ich die entsprechenden Parser für die Heizstäbe lösche, funktioniert die Heizung tadellos. Wahrscheinlich ist die Steuerung nicht tolerant bzgl. Relaistests im laufenden Betrieb. Schade!
Trotzdem nochmal vielen Dank für Deine Mühe und fachmannische Unterstützung!
Nachtrag: Bitte diese Funktion wieder aus iobroker.canbus rausnehmen!
-
Ab sofort steht vom canbus-Adapter die Version 2.0.0 bereit.
Neben vielen Aktualisierungen wurde auch Art, wie die Skripte der Custom-Parser interpretiert werden geändert.
Da die gesamte Kommunikation mit der Wärmepumpe hier über solche Parser Skripte läuft, wäre es super, wenn einer von euch das mit der neuen Adapterversion testen könnte.Eigentlich sollte alles wie vorher laufen. Fehler sind aber dennoch nicht auszuschließen.
Die aktuelle
latest
Version der Rotex HPSU Compact / Daikin Altherma Config benötigt ab sofort mindestens Adapterversion 2.0.0.
Grund ist, dass für die Funktion Heizstäbe setzen nun eine Prüfung eingebaut ist, die verhindern soll, dass diese Funktion während des Modus Heizen aktiviert wird. (Danke an @KalaNagHTD fürs Melden des Problems) -
@crycode
Hallo.
Neue Adapterversion 2.0.0 ist installiert und läuft seit 30 Minuten problemlosGruß
ag -
Nochmals eine neue Adapterversion 2.1.0.
Neu sind dieses mal nur zusätzliche verfügbare Funktionen in den Skripten der Custom Parser.@ag Ich habe die
latest
-Config für die Wärmepumpe jetzt fürfa0930
(Energie gesamt) angepasst, sodass hier nun im Hintergrund die beiden IDs abgefragt werden sollten und der Überlauf einberechnet wird.
Mit der Adapterversion zusammen kannst du die Config neu von GitHub laden, oder die beiden Scripte in den Parsern wie folgt anpassen:180.fa0930 Lesen (für die Antworten)
// fac2ee lesen und in sharedData für später speichern if ((buffer[0] & 0x0F) === 0x02 && buffer[2] === 0xFA && buffer[3] === 0xC2 && buffer[4] === 0xEE) { sharedData.fac2ee = buffer.readInt16BE(5); } // fa0930 lesen if ((buffer[0] & 0x0F) === 0x02 && buffer[2] === 0xFA && buffer[3] === 0x09 && buffer[4] === 0x30) { value = buffer.readInt16BE(5); // Überläufe aus fac2ee einrechnen, sofern vorhanden if (sharedData.fac2ee) { value += 32768 * sharedData.fac2ee; } }
680.fa0930 Schreiben (für die Abfrage)
// erst fac2ee durch direktes schreiben in den json-State abfragen buffer = Buffer.from([0x31, 0x00, 0xFA, 0xC2, 0xEE, 0x00, 0x00]); await setStateAsync('680.json', JSON.stringify([ ...buffer ]), false); // dann 1 Sekunde später fa0930 normal abfragen await wait(1000); buffer = Buffer.from([0x31, 0x00, 0xFA, 0x09, 0x30, 0x00, 0x00]); // Info: der entsprechende Lesen-Parser 180.fa0930 behandelt das Lesen von beiden IDs
Sofern das so klappt wie gedacht, werde ich nach dem gleichen Muster auch noch die Energien für Heizung und Warmwasser mit einbauen.
-
@crycode
Hallo.
Neuste Adapter Version 2.1.0 installiert.
Soweit gut bis auf folgende Warnung.canbus.1 2024-11-03 21:17:06.376 warn Parser writing data for message ID 680 parser ID fa0930 failed: ReferenceError: setStateAsync is not defined
Wert wird nicht aktualisiert
Gruß
ag -
@ag Sollte mit v2.1.1 jetzt behoben sein.
-
Leider nicht. Adapterversion 2.1.1
canbus.1 2024-11-04 13:13:09.664 warn Parser writing data for message ID 680 parser ID fa0930 failed: ReferenceError: setStateAsync is not defined canbus.1 2024-11-04 13:12:59.665 warn Parser writing data for message ID 680 parser ID fa0930 failed: ReferenceError: setStateAsync is not defined
Gruß
ag -
@ag sagte in Rotex HPSU / Daikin Altherma Wärmepumpe über ioBroker.canbus:
Leider nicht. Adapterversion 2.1.1
Hmm seltsam... habe eben bei mir noch mal die 2.1.1 zum Testen neu installiert. Da klappt es wie gedacht und die beiden Nachrichten werden beim auslösen von 680.fa0930 gesendet:
vcan0 680 [7] 31 00 FA C2 EE 00 00 vcan0 680 [7] 31 00 FA 09 30 00 00
(vcan0, da ich zum Testen ein virtuelles CAN-Interface nutze)
-
@crycode
Ich versuche das morgen mal bei mir zutesten.