NEWS
[gelöst]Can-Bus Adapter: keine Verbindung zur Junkers WP
-
@emblitz Auch wenn du nur lesen möchtest, ist "ERROR-PASSIVE" nicht gut und deutet auf Probleme hin.
Überprüfe am besten noch mal alle Verkablungen, Bitrate etc.
Eventuell hilft auch eine Masseverbindung (GND) zwischen der Wärmepumpenelektronik und dem CAN-Hat. -
@crycode
Hallo,
ich bin nun einen Riesenschritt weitergekommen.
Dein Tipp mit der GND-Leitung zwischen einem GND-Pin des Raspberrys und dem GND des Can-Busses der Heizung habe ich befolgt und mit verschiedenen üblichen Can-Bus Geschwindigkeiten experinentiert.
Nachdem ich die Junkers Can-Busgeschwindigkeit im Raspberry auf 125000 Bit eingestellt habe, hat es endlich funktioniert !
Ich hoffe es hilft anderen Lesern.
Die Datenpunkte werden auch in den IOBroker-Objekten angelegt.
Bis hierhin ein dickes Dankeschön für die Hilfe!Der Busmitschnitt sieht nun so aus:
pi@RaspWP:~ $ candump can0 can0 00080060 [1] 00 can0 08074270 [1] 01 can0 00028270 [1] 00 can0 08078270 [1] 00 can0 00080060 [1] 00 can0 00090270 [1] 56 can0 0807C270 [1] 01 can0 09FFC270 [2] 00 8D can0 00054270 [1] 00 can0 00080060 [1] 00 can0 08000270 [2] 01 C9 can0 0004C270 [1] 00 can0 08004270 [2] 02 71 can0 00048270 [1] 00 can0 00080060 [1] 00 can0 08008270 [2] 01 36 can0 00044270 [1] 00 can0 0800C270 [2] 03 FF can0 00080060 [1] 00 can0 08010270 [2] 01 BE can0 00040270 [1] 00 can0 08014270 [2] 01 3B can0 0003C270 [1] 00 can0 00080060 [1] 00 can0 08018270 [2] 01 76 can0 00038270 [1] 01 can0 0801C270 [2] 02 80 can0 00080060 [1] 00 can0 00034270 [1] 00 can0 08020270 [2] 02 6A can0 001D8431 [1] 01 can0 08058270 [1] 01 can0 09FFFFF0 [4] 03 00 06 00 can0 00030270 [1] 01 can0 00080060 [1] 00 can0 0805C270 [1] 01 can0 0002C270 [1] 00 can0 08060270 [1] 00 can0 00028270 [1] 00 can0 00080060 [1] 00 can0 08064270 [1] 00 can0 08010270 [2] 01 BF can0 00090270 [1] 56 can0 08068270 [1] 00 can0 00080060 [1] 00 can0 0806C270 [1] 01 can0 00054270 [1] 00 can0 08070270 [1] 00 can0 0004C270 [1] 00 can0 00080060 [1] 00 can0 08074270 [1] 01 can0 00048270 [1] 00 can0 08078270 [1] 00 can0 00080060 [1] 00 can0 00044270 [1] 00 can0 0807C270 [1] 01 can0 09FFC270 [2] 00 8D can0 00040270 [1] 00 can0 08020270 [2] 02 69 can0 00080060 [1] 00 can0 08000270 [2] 01 C9 can0 0003C270 [1] 00 can0 08004270 [2] 02 71 can0 00038270 [1] 01 can0 00080060 [1] 00 can0 08008270 [2] 01 36 can0 08018270 [2] 01 77 can0 00034270 [1] 00 can0 0800C270 [2] 03 FF can0 0801C270 [2] 02 7F can0 001D8431 [1] 01 can0 00080060 [1] 00 can0 08010270 [2] 01 BF can0 09FFFFF0 [4] 03 00 06 00 can0 00030270 [1] 01 can0 08014270 [2] 01 3B can0 0002C270 [1] 00 can0 00080060 [1] 00 can0 08018270 [2] 01 77 can0 00028270 [1] 00 can0 0801C270 [2] 02 7F can0 00080060 [1] 00 can0 00090270 [1] 56 can0 08020270 [2] 02 69 can0 08058270 [1] 01 can0 00054270 [1] 00 can0 00080060 [1] 00 can0 0805C270 [1] 01 can0 0004C270 [1] 00 can0 08060270 [1] 00 can0 00048270 [1] 00 can0 00080060 [1] 00 can0 08064270 [1] 00 can0 00044270 [1] 00 can0 08068270 [1] 00 can0 00080060 [1] 00 can0 0806C270 [1] 01 can0 00040270 [1] 00 can0 08070270 [1] 00 can0 0003C270 [1] 00 can0 00080060 [1] 00 can0 08074270 [1] 01 can0 00038270 [1] 01 can0 08078270 [1] 00 can0 00034270 [1] 00 can0 00080060 [1] 00 can0 0807C270 [1] 01 can0 001D8431 [1] 01
Kannst du mir kurz mitteilen, ob der Mitschnitt grundsätzlich so plausibel ist?
Hast du einen Tipp für die Vorgehensweise zum Zuordnen der Can-Bus Adressen zu den im Junkers-Heizungsdisplay angezeigten Funktionen bzw. Temperaturen?
LG
emblitz -
@emblitz Ob das plausibel ist, kann ich dir leider nicht sagen, da ich nicht weiß, was für Nachrichten auf dem Bus unterwegs sein müssten. Aber es wird zumindest etwas empfangen mit unterschiedlichen Nachrichten-IDs und -Inhalten. Das sieht gut aus.
Am besten suchst du im Netz, ob du eine Auflistung der Nachrichten und deren Bedeutung findest.
Alternativ bleibt nur einen Dump mitzuloggen und dabei gezielt Aktionen an der Steuerung auszulösen. Über die Zeitpunkte wann man was gemacht hat und dazu die in Frage kommenden Daten aus dem Dump sollte sich schon etwas ableiten lassen.
Die Daten-Bytes im Dump sind in hex-Schreibweise. Vielleicht bekommt man da schon ein paar Temperaturen durch einfaches Umrechnen und vergleichen raus. -
@crycode
Hallo,vielen Dank für die Rückmeldung.
Im Netz habe ich leider keine Zuordnung gefunden und möchte diese daher gern selbst erstellen.
Ich logge hierfür alle möglichen Datenpunkte deines Adapters in der History mit und habe alle Datenpunkte in ein Flot-Diagramm geworfen um überhaupt zu sehen, was wann in Anhängingkeit z.B. der Leistungsmessung der WP über Mod-Bus oder dem Verlauf der Aussentemperatur etc. passiert.Leider werden die Grafen in den Flot-Trends gar nicht dargestellt.
Ich vermute, dass es mit den eckigen Klammern vor und hinter dem Wert der Objektdatenpunkte deines Adapters zusammenhängt.Wie bekomme ich diese eckigen Klammern weg?
Ich habe versucht mit dem Parser zu arbeiten, weil er die Werte ohne eckige Klammern darstellt, allerdings werden dann die Werte auf die Zahl vor dem Komma aufgerundet. Ich kann dann natürlich keine Veränderungen mehr sehen.
Wenn mir gelingt, die Werte im Flot-Trend abzubilden, sollte die Zuordnung der Datenpunkte um einiges einfacher sein.
Bestimmt hast du hierfür auch eine Lösung ?Eine weitere Frage habe ich noch:
Bei der Kontolle der Werte der Datenpunkte deines Adapters ist mir aufgefallen, dass die Werte scheinbar nicht von hex nach dez umgerechent werden?
Z.B. habe ich den Datenpunkt 08004270 mit "candump can0" im Terminal mit 02 4F geloggt. Gem. Windowsrechner müsste das dann 591 ergeben. Im Daptenpunkt wird aber 2,79 eingetragen.
Kannst du mir bitte auch hier auf die Sprüge helfen, welchen Gedankenfehler ich mache?LG
emblitz -
@emblitz Die Werte in den Eckigen Klammern sind auch erst mal nur die Rohdaten, sprich die Werte der einzelnen Bytes aus den Daten der CAN-Nachricht.
Beispiel:[1,6]
heißt in Byte 0 der Nachricht stand eine 1 und in Byte 1 eine 6. Diese musst du in eine Zahl umwandeln.Bei 2 Byte würde ich auf einen 16 Bit Integer Wert tippen (1 Byte = 8 Bit).
Also bleibt für den Parser als Datentypint16 BE
,int16 LE
,uint16 BE
oderuint16 LE
.
int
sind Ganzzahlen mit Vorzeichen (+ oder -),uint
sind vorzeichenlose Ganzzahlen (nur +). Die16
steht in dem Fall für 16 Bit (2 Byte).int16
kann von Werte zwischen -32768 und 32767 annehmen.uint16
von 0 bis 65535.
BE
undLE
geben die Byte-Reihenfolge an. Oftmals wirdBE
genutzt, kann aber auchLE
sein.[1,6]
wäre als...int16BE
262int16LE
1537uint16BE
262uint16LE
1537
Zum Testen kannst du für eine Nachricht auch mehrere Parser mit den verschiedenen Datentypen anlegen und damit gleich mehrfach gucken ob irgendwo was sinnvolles raus kommt.
Kann natürlich auch sein, dass sich die Werte gar nicht so einfach aus den Rohdaten lesen lassen, sondern man ggf. einzelne Bits beachten muss oder so...
@emblitz sagte in Can-Bus Adapter: keine Verbindung zur Junkers Wärmepumpe:
Datenpunkt 08004270 mit "candump can0" im Terminal mit 02 4F geloggt. Gem. Windowsrechner müsste das dann 591 ergeben. Im Daptenpunkt wird aber 2,79 eingetragen.
Das hängt damit zusammen, dass die beiden Bytes einzeln betrachtet werden. Das Komma ist in der Darstellung erst mal nur der "Trenner der Bytes".
02 (hex) = 2 (dez)
4F (hex) = 79 (dez)Die Umrechnung vom Windows-Rechner wäre in dem Fall wie das Lesen als
uint16BE
. -
@crycode
Wow, vielen Dank für die Aufklärung.
Jetzt ist bon ich im einiges schlauer und kenne die Zusammenhänge.
Ich hatte immer die Zahlen in den eckigen Klammern vergeblich in meinem Heizungsdisplay gesucht.
Nochmals tausend Dank für die kompetente Hilfe.
Wenn ich die Codes entschlüsselt habe stelle ich sie gern hier zur Verfügung..LG
emblitz -
@crycode
Hallo crycode,ich habe für jede Can-Nachricht d.h. für jeden Hexwert vier Parser mit int16 BE, int16 LE, uint16 BE und uint16 LE erstellt.
Dies sind die einzigen brauchbaren Datentypen aus denen Dezimalzahlen hervorgehen.
Funktionierendes Beispiel:
Leider komme ich bei keinem der Parser-Dezimalwerte auf einen Wert, welcher in dem Heizungsdisplay angezeigt wird.
Ich habe die Werte halbiert und gezehnelt sowie verdoppelt usw.Frage 1:
Du hattest geschrieben, dass es auch möglich sein kann, dass nur einzelne Bytes in der Heizung verwendet werden.
Wie kann ich im Parser z.B. nur das zweite Byte berechnen lassen?Frage 2:
Bei einigen Hexwerten scheint die Berechnung scheinbar nicht zu funktioniern, obwohl ich alle Can-Nachrichten mit den o.g. Datentypen im Parser ( int16 BE, int16 LE, uint16 BE und uint16 LE) identisch umrechnen lasse.
Nicht funktionierendes Beispiel:
Hast du dafür eine Erklärung?Die Sache gestaltet sich schwerer als gedacht, weil ich trotz intensiver Recherche vermutl. noch immer ein Verständnisproblem habe.
LG
emblitz -
@emblitz sagte in Can-Bus Adapter: keine Verbindung zur Junkers Wärmepumpe:
Du hattest geschrieben, dass es auch möglich sein kann, dass nur einzelne Bytes in der Heizung verwendet werden.
Wie kann ich im Parser z.B. nur das zweite Byte berechnen lassen?Um nur ein Byte auslesen zu lassen, kannst du einen
int8
oderuint8
Parser nutzen. Dazu dann den Offset entsprechend setzen (Offset 0 = 1. Byte, 1 = 2. Byte, etc.). Da bekommst du dann Werte von -128 bis 127 bzw. 0 bis 255 raus.Weiterhin kannst du einzelne Bits mit dem
boolean
Parser auslesen. Dazu musst du dann über die Bitmaske festlegen, welche Bits du auslesen willst. Für alle 8 Bit eines Bytes einzeln bräuchtest du dann also 8 boolean-Parser.@emblitz sagte in Can-Bus Adapter: keine Verbindung zur Junkers Wärmepumpe:
Bei einigen Hexwerten scheint die Berechnung scheinbar nicht zu funktioniern, obwohl ich alle Can-Nachrichten mit den o.g. Datentypen im Parser ( int16 BE, int16 LE, uint16 BE und uint16 LE) identisch umrechnen lasse.
Wurden die entsprechenden Nachrichten vielleicht nach dem Anlegen der Parser noch nicht wieder empfangen? Die Parser arbeiten nur beim Empfangen der Nachricht und nicht im Nachhinein.
Ansonsten mal ins Log schauen, ob dort irgendwelche Fehler gemeldet werden.
Wie bereits geschrieben: Am besten mal versuchen über den Zeitpunkt die Nachrichten zuordnen zu können. Also z.B. beobachten wann sich eine Temperatur in der Anzeige ändert und passend zu dem Zeitpunkt die CAN-Nachricht finden. Dann wüsste man zumindest schon mal, dass in Nachricht xyz in irgendeiner Form diese Temperatur drin stecken muss.
Vielleicht kannst du auch einfach mal (anonym) den Support von Junkers anschreiben und fragen, ob sie Infos zu dem Protokoll preisgeben. Mehr als nein sagen können sie ja nicht.
-
@crycode
Perfekt, wird heute Abend ausprobiert.Das die Datenpunkte von der Heizung nicht aktualisiert werden, hatte ich auch schon vermutet. Ich hatte bislang immer den Raspberry neu gestartet, damit er die bestehenden Werte der Datenpunkte neu berechnet. Das hat aber nicht funktioniert Müsste sich vielleicht ändern, wenn ich die Heizung neu starte,
Wir immer ein dickes Dankeschön für deine Mühe!
LG emblitz
-
@emblitz @crycode, klasse Fred hier da muss ich mich direkt ranhängen, da bei uns gerade eine Bosch Compress 7800i LW in Betrieb gegangen ist und mir Ähnliches vorschwebt. Ich gehe auch davon aus, dass sich die CAN Protokolle von Bosch u Junkers nicht groß unterscheiden, da das ja eh' mittlerweile ein Laden ist und Junkers das evtl, auch schon früher von Bosch dazu gekauft hat
Bei meinen Recherchen bzgl. der Entschlüsselung der Hex-Codes bin ich hierrüber gestolpert:
https://www.mikrocontroller.net/topic/81265?page=single
Ist extrem lang der Fred, aber man findet darin (etwas verteilt) ganz viele Zuordnungen der Hex Codes zu Parametern des Heizsystems und viele entsprechend Beispiele.
Ich bin von Hause aus E-Techniker, allerdings mein Leben lang in der IT unterwegs, muss aber auch sagen, dass wenn man noch nie etwas mit CAN zu tun hatte, dass doch auf jeden Fall einen deutlichen Einarbeitungsaufwand erfordertHowever, der Waveshare RS485 CAN HAT liegt schon hier und ich hoffe in der Weihnachtspause dafür etwas Zeit zu finden.
Spannend bleibt dann aber auch zu schauen, ob sich über das noch zu liefernde Internetmodul (Bosch Prognose: Januar) und dem entsprechenden Adapter hier evtl. auch eine einfachere Lösung realisieren lässt.Ich klinke mich wieder ein, wenn ich hier etwas weiter bin
-
Hallo Pedder007,
schön einen Gleichgesinnten zu treffen.
Hoffentlich können wir uns gegenseitig weiterhelfen.
Ich habe Junkers (Bosch) mit einer Auflistung der Canbus-Adressen angeschrieben. Leider machen die Zuordnung und Umrechnung nicht öffentlich.
Eine Zuordnung habe ich bislang zwar für einige wenige Werte in den Trends aus Flot optisch herstellen können, aber keine passende plausible Umrechnung gefunden.
Die Can-Adressen im verlinkten Mikrocontrollerforum unterscheiden sich leider komplett von den Adressen meiner Heizung. Ansonsten hatte ich keine weiteren brauchbaren Infos im Internet gefunden.
Ich hoffe, dass die Adressen unserer beiden Heizung gleich sind. Einen Mitschnitt meiner Can-Adressen findest du weiter oben. .
Melde dich gern, wenn du soweit bist oder Fragen hast.
LG emblitz -
Hallo crycode,
kann dein Can-Bus Adapter die Hex-Werte direkt mittels einer Formel umrechnen und in das geparste Objekt/Datenpunkt schreiben ?
Ich möchte einen Hex-Wert mittels uint16be nach Dez umrechnen und dann in der folgenden Formel umrechnen. F4 ist dabei das Ergebnis der Wandlung durch den Parser von Hex nach Dez mit uint16be.=105,81916402087-(0,28577699398241F4)+(0,000356191341049951F4F4)-(0,00000020925659550495F4F4F4)
Eventl. funktioniert die Formel in der Custom-Einstellung des Parsers?
Ich weiß nur nicht was ich hier eintragen soll.Ich konnte zwischenzeitlich bereits einige Can-Bus Adressen WP-Funktionen zuordnen und bin mit anderen Wärmepumpenspezis in diesem Forum etwas weitergekommen.
https://www.haustechnikdialog.de/Forum/p/3453047
Die Wandlung der Dez-Werte aus dem Parser mit uint16be scheint sich gut mit der o.g. Formel z.B. bei der Vorlauftemperatur umrechnen zu lassen.
Die Formel stammt aus dem Fhem-Forum
https://forum.fhem.de/index.php/topic,47508.150.htmlLG emblitz
-
@emblitz sagte in Can-Bus Adapter: keine Verbindung zur Junkers Wärmepumpe:
=105,81916402087-(0,28577699398241F4)+(0,000356191341049951F4F4)-(0,00000020925659550495F4F4F4)
Das sollte mit einem Custom-Parser funktionieren.
Dazu musst du erst mal den Wert aus dembuffer
in eine Variable lesen und kannst damit dann rechnen.
Beispiel für das eigene Script zum Lesen:const f4 = buffer.readUInt16BE(0); value = 105,81916402087 - (0,28577699398241 * f4) + (0,000356191341049951 * f4 * f4) - (0,00000020925659550495 * f4 * f4 * f4);
buffer
ist dabei ein Buffer Objekt mit den Daten-Bytes aus der CAN-Nachricht und wird vom Adapter gefüllt.
Invalue
musst du den Wert schreiben, den der Parser zurückgeben soll.
Der Rest ist Standard JavaScript. Diese zwei Zeilen sollten da reichen.Die
0
beimbuffer.readUInt16BE
ist dabei die Stelle im Buffer, von der du lesen willst. Das musst du ggf. anpassen. Bei den vordefinierten Parsern ist das der Offset.Beim eigenen Script zum Schreiben kannst du einfach
//
rein schreiben, wenn du nichts senden möchtest. Dann meckert der Adapter auch nicht, dass das Script fehlen würde.
-
@crycode
Vielen Dank für die turoboschnelle Antwort!Ich habe dein Script so übernommen:
Der Datenpunkt wo jetzt die 105 steht sollte mit ca. 24 nach der Umrechnung geschrieben werden.
Umrechnung mit Calc:
Könntest du bitte nochmal schauen was ich falsch gemacht habe?
Die 105 stehen da noch von vorherigen Versuchen und haben sich nicht verändert.
Wenn ich das Lesescript kompl lösche, ändert sich auch nichts an der 105.LG emblitz
-
@emblitz Ups... ersetz mal in dem Skript alle Kommas in den Zahlen gegen einen Punkt. Hab ich beim Kopieren deiner Formel übersehen.
Da müsste im Log auch ein Fehler dazu aufgetaucht sein. -
@crycode
So, habe die Kommas gegen Punkte ersetzt. Lief dann noch nicht.
Habe dann den Namen verkürzt
und die Funktion "Verwende Raw States" aktivert.
Ist das so richtig?
Jetzt läuft es.
Bis hierhin ein dickes Danke für die kompetente Hilfe!!!LG
emblitz -
@emblitz Die Länge der Namen sollte damit nichts zu tun haben.
Auch die Option "Verwende Raw States" wird für die Parser nicht benötigt. Die Raw States sind für externe Verarbeitungen (z.B. in einem eigenen Skript im JavaScript Adapter) gedacht.
Wenn man die nicht braucht ist es besser die Raw States zu deaktivieren, da diese (besonders bei sehr aktiven Bus-Systemen) zu vielen State-Änderungen führen können.P.S.: Freut mich zu lesen, dass du Fortschritte beim Auswerten der Daten machst.
-
@crycode
Ja, dein Adapter ist flexibel anpassbar und einfach großartig. Respekt vor dieser tollen Arbeit!
Die Raw States werden wieder deaktiviert. Ich hatte das Gefühl, dass erst nach der Aktivierung die Werte umgerechnet wurden. Ich werde es im Auge behalten.Eine Frage hat sich noch ergeben.
Kann ich in den verschiedenen Parsern innerhalb einer Can-Bus Adresse oder auch in verschiedenen Parsern anderer Can-Bus Adressen immer die das identische Script verwenden, d.h. darf in allen Scipts immer F4 stehen oder darf F4 nur einmalig in einem Script verwendet werden?LG emblitz
-
@emblitz Danke für das gute Feedback
In den Skripten kannst du verwenden was du willst und auch z.B. den gleichen Namen für Variablen mehrfach in mehreren Parser-Skripten nutzen. Wichtig ist nur, dass bei einem lesen-Skript der Wert oder
undefined
in die Variablevalue
geschrieben wird und bei einem schreiben-Skript die Variablebuffer
entsprechend gesetzt wird.
Jedes Skript läuft in einem eigenen abgesicherten Kontext und es kann keine Überschneidungen zwischen verschiedenen Parsern geben. (Mit Ausnahme vomsharedData
Objekt, welches speziell für den Austausch zwischen mehreren Skripten gedacht ist.) -
Hallo,
ich wollte meine Erkenntnisse in diesem Forum gerne rückmelden.
Hier nun meine erkannten und zugeordneten Canbus-Adressen für die Junkers Wärmepumpe STM 60-1.
Die Adressen ohne Funktionsbeschreibung konnte ich noch nicht zuordnen.
Viele Adressen werden gar nicht oder nur sehr selten aktuallisiert.Die Umrechnung mittels der u.g. Formel passt bis auf z.T. 0,2-0,3°C Differenz zu den im Display angezeigten Werten.
Energiezählwerte scheinen nicht übertragen zu werden.Wenn jemand einen Tipp hat, wie ich an die Zählerwerte für die erzeugten Heizenergien der Wp komme, wäre ich sehr dankbar.
LG emblitz
msgId msgName parserDataType parserCustomScriptRead
28270 Heizkreispumpe_G1 ein/aus int8
30270
34270
38270 3-Wege_Ventil_Q21_Heizung=0_WW=1 int8
40270
44270 Zirkulationspumpe_WW ein/aus int8
48060
48270 Kompressor ein/aus int8
54270 Solepumpe_G3 ein/aus int8
80060
90270 Wärrmeträgerpumpe_G2_Drehzahl 0-100% int8
388400
388402
388403
388404
388405
388406
3884078000270 Vorlauftemp custom const f4 = buffer.readUInt16BE(0); value = 105.81916402087 - (0.28577699398241 * f4) + (0.000356191341049951 * f4 * f4) - (0.00000020925659550495 * f4 * f4 * f4);
8004270 Aussentemp custom const f4 = buffer.readUInt16BE(0); value = 105.81916402087 - (0.28577699398241 * f4) + (0.000356191341049951 * f4 * f4) - (0.00000020925659550495 * f4 * f4 * f4);
8008270 Warmwassertemp custom const f4 = buffer.readUInt16BE(0); value = 105.81916402087 - (0.28577699398241 * f4) + (0.000356191341049951 * f4 * f4) - (0.00000020925659550495 * f4 * f4 * f4);
8010270 Heizgas custom const f4 = buffer.readUInt16BE(0); value = 105.81916402087 - (0.28577699398241 * f4) + (0.000356191341049951 * f4 * f4) - (0.00000020925659550495 * f4 * f4 * f4);
8014270 Wärmeträgertemp Austritt custom const f4 = buffer.readUInt16BE(0); value = 105.81916402087 - (0.28577699398241 * f4) + (0.000356191341049951 * f4 * f4) - (0.00000020925659550495 * f4 * f4 * f4);
8018270 Wärmeträgertemp Eintritt custom const f4 = buffer.readUInt16BE(0); value = 105.81916402087 - (0.28577699398241 * f4) + (0.000356191341049951 * f4 * f4) - (0.00000020925659550495 * f4 * f4 * f4);
8020270 Solekreistemp Austritt custom const f4 = buffer.readUInt16BE(0); value = 105.81916402087 - (0.28577699398241 * f4) + (0.000356191341049951 * f4 * f4) - (0.00000020925659550495 * f4 * f4 * f4);
8058270
8060270
8064270
8068270
8070270
8074270
8078270
0002C270 Wärmeträgerpumpe_G2 ein/aus int8
0003C270 Elektr_Zuheizer_1 ein/aus int8
0004C270 Elektr_Zuheizer_2 ein/aus int8
000A8402
000A8403
000A8404
000A8405
000A8406
000A8407
000A8408
000A8409
001D8431
0042C402
0042C403
0042C404
0042C405
0042C406
0042C407
0800C2700801C270 Solekreistemp Eintritt custom const f4 = buffer.readUInt16BE(0); value = 105.81916402087 - (0.28577699398241 * f4) + (0.000356191341049951 * f4 * f4) - (0.00000020925659550495 * f4 * f4 * f4);
0805C270
0806C270
0807C270
09FFC270