NEWS
Rotex HPSU / Daikin Altherma Wärmepumpe über ioBroker.canbus
-
@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. -
@crycode
Hallo.
Habe einen candump bei gemacht, die Leseanforderung geht nicht raus.Multihost System Master und Slave auf aktuellem Stable Stand.
Canbus Interface ist am Slave.Gruß
ag -
@ag Danke für deine Tests. Leider kann ich das bei mir absolut nicht nachstellen
-
Hi,
nur mal so als Idee.
die Stiebel Eltron verwendet ja auch einen CANBus.
In folgenden Artikel ist das beschrieben wie man mit einem ESP32 und einem CAN Adapter an die Daten kommt.
Das läuft auch recht stabil:
Can2MQTT
Das Skript bringt zwar Fehlermeldungen (ich vermute mal da sind Parameter in der Tabelle nicht definiert) aber die vorhandenen Datenpunkte werden laut Tabelle in den Objekten aufgebaut und befüllt.
Ich bin mir nicht sicher, aber ich wäre nicht überrascht wenn es einen Standard in der Heizechnik gibt und die HEX-Codes der Parameter immer gleich sind.
Wäre mal interessant zu sehen ob man damit auch eine Daikin ansprechen bzw. auslesen kann.