Hallo, kann mir jemand bitte helfen? Ich habe eine Vaillant Geotherm Erdwärme Heizung (Geotherm exclusive VWS 6/8/11E). Die ist schon seit 2004 verbaut und funktioniert immer noch super. Ich möchte die Heizung und deren Parameter gerne auch von meinem Computer aus überwachen. Es gibt eine Schnittstelle auf der Steuerungsplatine (siehe Foto), die mit (5V, Data, Clk, GND) belegt ist. Kennt jemand die Schnittstelle? Gibt es irgendwo mehr Infos zum Protokoll? Ich habe mal einen Oszi rangehangen. Da kommt immer nur dasselbe Telegramm mit dem ich nichts anfangen kann...siehe Anhang. Ich habe auch noch weitere Infos zur Geotherm & Schaltplan angehangen. Bitte um Hilfe & Info. Ich konnte im Internet trotz langer Suche leider nichts finden. Besten Dank im Voraus HES
HES schrieb: > die Heizung und deren Parameter gerne auch von meinem > Computer aus überwachen. Dann mach doch unabhängig ein paar Sensoren dran und werte sie aus. Bei meiner WW-Heizung kontrolliere ich z.B. den Rücklauf und sehe ganz deutlich wenn sie wieder heizt. Somit war kein Eingriff nötig. Das kostet mir wenige µA. Dein PC braucht zur ständigen Überwachung 365*24h*0,10kW*0,30€=262,80€ im Jahr.
oszi40 schrieb: > 365*24h*0,10kW*0,30€=262,80€ im Jahr. 365*24h*0,0002*0,18€ = 0,31 €/Jahr (ESP32 200mA in Wifi Mode, meine Stadtwerke 0,18€/kWh) Ansonsten Gute Idee. Daran hatte ich auch schon mal gedacht. Das ist auf jedenfall mehr Aufwand einige extra Sensoren zu verbauen als das Interface anzuzapfen und die Sensoren auszulesen. LG HES
HES schrieb: > 365*24h*0,0002*0,18€ = 0,31 €/Jahr > (ESP32 200mA in Wifi Mode, meine Stadtwerke 0,18€/kWh) oops, Ich war zu schnell beim tippen > 365*24h*3,3V*0,2A/1000*0,18€ = 1,04 €/Jahr
oszi40 schrieb: > Dein PC braucht zur ständigen Überwachung Ein PC, der 100 Watt im Dauerbetrieb verballert?
HES schrieb: > jedenfalls mehr Aufwand einige extra Sensoren zu verbauen als das > Interface anzuzapfen und die Sensoren auszulesen. Frage ist ja, was DU wirklich brauchst. Für mich war nur wichtig zu wissen WANN die Heizung heizt und wieviel Grad der Rücklauf hat. Da reichte ein Sensor und ein µA-Meter+ Batterie Jahre.
oszi40 schrieb: > Frage ist ja, was DU wirklich brauchst. Für mich war nur wichtig zu > wissen WANN die Heizung heizt und wieviel Grad der Rücklauf hat. Da > reichte ein Sensor und ein µA-Meter+ Batterie Jahre. Ja. Das ist Plan B wenn wirklich niemand hier Infos zum besagten Interface & Protokoll hat. Eigenes reverse Engineering würde sicherlich viel länger dauern & mehr Kosten. *Also, hat denn nun jemand Infos zum Interface & Protokoll?* Besten Dank im voraus! LG HES
9 Bits klingen irgendwie nach einem I2C-Look-Alike. Passt auch dazu, dass das vorletzte Bit 1 ist (=Read) und mit der 1 beim letzten keiner antwortet (ACK fehlt). Häng mal DATA hochomig auf VCC/2 (10k gegen GND und 10k gegen VCC). Wenn das letzte Bit dann auch deutlich auf Halbmast ist, ist es recht sicher I2C.
Georg A. schrieb: > 9 Bits klingen irgendwie nach einem I2C-Look-Alike. Passt auch > dazu, > dass das vorletzte Bit 1 ist (=Read) und mit der 1 beim letzten keiner > antwortet (ACK fehlt). Häng mal DATA hochomig auf VCC/2 (10k gegen GND > und 10k gegen VCC). Wenn das letzte Bit dann auch deutlich auf Halbmast > ist, ist es recht sicher I2C. Danke, das scheint wirklich I2C zu sein. Daran hatte ich gar nicht gedacht, da die Steuerung ja schon mind. 15 Jahre alt ist. Ich wusste gar nicht das I2C schon so alt ist. Hab gleich mal in die Wiki geschaut. Demnach müsste die Adresse (010 1110 0 1) 0x2E sein, 8te bit LOW = empfange mehr Master Daten und 9te bit = ACK: "Das Start-Signal ist eine fallende Flanke auf SDA, während SCL high ist, das Stop-Signal ist eine steigende Flanke auf SDA, während SCL high ist. Repeated-Start sieht genauso aus wie das Start-Signal. Eine Dateneinheit besteht aus 8 Datenbits = 1 Oktett (welche protokollbedingt entweder als Wert oder als Adresse interpretiert werden) und einem ACK-Bit. .... Eine Standard-I²C-Adresse ist das erste vom Master gesendete Byte, wobei die ersten sieben Bit die eigentliche Adresse darstellen und das achte Bit (R/W-Bit) dem Slave mitteilt, ob er Daten vom Master empfangen soll (LOW) oder Daten an den Master zu übertragen hat (HIGH). " ALSO, ich werde dann am Wochenende mal einen Level-Shifter an den ESP32 I2C ranhängen und schauen ob der I2C noch mehr Daten sendet. LG
Deine Heizungssteuerung sucht nach einem Slave. https://rn-wissen.de/wiki/index.php/I2C_Chip-%c3%9cbersicht#Adressen_g.C3.A4ngiger_I2C_Chips
hinz schrieb: > Deine Heizungssteuerung sucht nach einem Slave. > > https://rn-wissen.de/wiki/index.php/I2C_Chip-%c3%9cbersicht#Adressen_g.C3.A4ngiger_I2C_Chips Was heisst das jetzt? Ist das Interface gar nicht zur Kommunikation mit der Steuerung gedacht sondern der Heizungscontroller wartet nur auf einen dummen Sensor, der extern angebunden wird? Lg
HES schrieb: > hinz schrieb: >> Deine Heizungssteuerung sucht nach einem Slave. >> >> > https://rn-wissen.de/wiki/index.php/I2C_Chip-%c3%9cbersicht#Adressen_g.C3.A4ngiger_I2C_Chips > > Was heisst das jetzt? Ist das Interface gar nicht zur Kommunikation mit > der Steuerung gedacht sondern der Heizungscontroller wartet nur auf > einen dummen Sensor, der extern angebunden wird? Das muss doch kein Sensor sein.
HES schrieb: > Ich wusste gar nicht das I2C schon so alt ist. Mindestens Anfang der 80er ;) Es ist halt ein totales Low-Level-Interface, d.h. ausser der Adresse und R/W weiss man nicht, was der Master eigentlich erwartet. Es kann sein, dass das zB. eine Art Shared-Memory-Kommnunikation über einen virtuellen Speicher ist. Wenn man da die Handshake-Strukturen nicht hat/weiss, wird es schwer. Oder es ist einfach nur eine Art "Pipe", d.h, Read liest einen Stream (ala RS232), Write schreibt. Aber auch da brauchts zumindest beim Read eigentlich ein Handshake, wenn nicht jedes Byte ineffizient einzeln gelesen werden soll. Also: Ohne eine Gegenstelle zum Abschnorcheln einer Kommunikation ist das eher aussichtslos.
Georg A. schrieb: > Also: Ohne eine Gegenstelle zum Abschnorcheln einer Kommunikation ist > das eher aussichtslos. Ja. Leider. Hab auch erst am WE Zeit den I2C zu bestätigen. Bzgl. Kommunikation: Wenn ich Glück habe ist es vielleicht ein frühes/abgewandeltes eBus Protokoll. Hier steht https://ebus-wiki.org/doku.php/start https://ebus-wiki.org/doku.php/ebus/serviceb5vaillant "Leider musste ich feststellen, dass die Firma Vaillant (fast) ausschließlich eigene, nicht dokumentierte Befehle verwendet. "
HES schrieb: > Bzgl. Kommunikation: Wenn ich Glück habe ist es vielleicht ein > frühes/abgewandeltes eBus Protokoll. Kaum, eBus ist asynchron.
Hallo, Ich habe das Wochenende die I2C test HW (level shifter) und SW (M5Stack und Micropython) fertig bekommen und einige Tests durchgeführt. Ich habe alles mit dem Scope verifiziert. Nur mit den Daten kann ich wirklich nichts anfangen :-( Hat irgendwer eine Idee wie ich das nun interpretieren soll?
1 | [I2C] Data received from master: addr=0, len=1, ovf=0, data: [b'\x14'] |
2 | [I2C] Data received from master: addr=1, len=1, ovf=0, data: [b'\x04'] |
3 | [I2C] Data received from master: addr=2, len=1, ovf=0, data: [b'\x10'] |
4 | [I2C] Data received from master: addr=3, len=1, ovf=0, data: [b'\x1c'] |
5 | [I2C] Data received from master: addr=4, len=1, ovf=0, data: [b'\x04'] |
6 | [I2C] Data received from master: addr=5, len=1, ovf=0, data: [b'\x02'] |
7 | [I2C] Data received from master: addr=6, len=1, ovf=0, data: [b'\x12'] |
8 | [I2C] Data received from master: addr=7, len=1, ovf=0, data: [b'('] |
9 | [I2C] Data received from master: addr=8, len=1, ovf=0, data: [b'\x19'] |
10 | [I2C] Data received from master: addr=9, len=1, ovf=0, data: [b'<'] |
11 | [I2C] Data received from master: addr=12, len=1, ovf=0, data: [b','] |
12 | [I2C] Data received from master: addr=18, len=1, ovf=0, data: [b'\x0f'] |
13 | [I2C] Data received from master: addr=23, len=1, ovf=0, data: [b'\x01'] |
14 | [I2C] Data received from master: addr=29, len=1, ovf=0, data: [b'\x05'] |
15 | [I2C] Data received from master: addr=35, len=1, ovf=0, data: [b'\x00'] |
16 | [I2C] Data received from master: addr=40, len=1, ovf=0, data: [b','] |
17 | [I2C] Data received from master: addr=46, len=1, ovf=0, data: [b'\x14'] |
18 | [I2C] Data received from master: addr=51, len=1, ovf=0, data: [b'\x10'] |
19 | [I2C] Data received from master: addr=56, len=1, ovf=0, data: [b'\x18'] |
... Und hier nochmal nach einigen Stunden:
1 | [I2C] Data received from master: addr=0, len=1, ovf=0, data: [b'\x10'] |
2 | [I2C] Data received from master: addr=1, len=1, ovf=0, data: [b'\x03'] |
3 | [I2C] Data received from master: addr=2, len=1, ovf=0, data: [b'\x10'] |
4 | [I2C] Data received from master: addr=3, len=1, ovf=0, data: [b'\x16'] |
5 | [I2C] Data received from master: addr=4, len=1, ovf=0, data: [b'\x03'] |
6 | [I2C] Data received from master: addr=5, len=1, ovf=0, data: [b'\x03'] |
7 | [I2C] Data received from master: addr=6, len=1, ovf=0, data: [b'\n'] |
8 | [I2C] Data received from master: addr=7, len=1, ovf=0, data: [b'('] |
9 | [I2C] Data received from master: addr=8, len=1, ovf=0, data: [b'\x19'] |
10 | [I2C] Data received from master: addr=9, len=1, ovf=0, data: [b'\x05'] |
11 | [I2C] Data received from master: addr=11, len=1, ovf=0, data: [b'\x1e'] |
12 | [I2C] Data received from master: addr=16, len=1, ovf=0, data: [b'\x14'] |
13 | [I2C] Data received from master: addr=22, len=1, ovf=0, data: [b'\x0e'] |
14 | [I2C] Data received from master: addr=27, len=1, ovf=0, data: [b'\x05'] |
15 | [I2C] Data received from master: addr=32, len=1, ovf=0, data: [b'\x0b'] |
16 | [I2C] Data received from master: addr=37, len=1, ovf=0, data: [b')'] |
17 | [I2C] Data received from master: addr=41, len=1, ovf=0, data: [b'$'] |
18 | [I2C] Data received from master: addr=46, len=1, ovf=0, data: [b'\x14'] |
19 | [I2C] Data received from master: addr=51, len=1, ovf=0, data: [b' '] |
20 | [I2C] Data received from master: addr=55, len=1, ovf=0, data: [b'\x00'] |
21 | [I2C] Data received from master: addr=60, len=1, ovf=0, data: [b'`'] |
Der Vollständigkeit halber anbei die Auflösung der einzelnen Bytes from I2C, falls mal wieder jemand braucht. Reverse Eng. war doch gar nicht so schwer. Nur ein kleines Prägrammchen und 2h Drücken am Bedienfeld LG [00] – Raum Temp [°C] [01] – Mode: Aus, Auto, nur WW,… [02] – Val02 0x10 (16) ?? [03] – Kurve [04] – Val04 0x00 (0) ?? [05] – Absenkung [°C] [06] – Min Heizkurve [°C] [07] – Max Heizkurve [°C] [08] – Kälteträger Min – 40 [°C] [09] – Integral WP [°/min] [0A] – Integral Zusatz [°/min] [0B] – RL Temp SOLL [°C] [0C] - WW Temp SOLL [°C] [0D] – WW Zeit [min] [0E] – Heiz Zeit [min] [0F] – Heiz Stop [°C] [10] – WP Intervall [min] [11] – Hysterese WP [°C] [12] – Hysterese ZH [°C] [13] – WWZH VL Temp [°C] [14] – WWZH SOLL Temp [°C] [15] – Legio Stop Temp [°C] [16] – Legio Intervall [days] [17] – Zusatz (1=6,2=36,3=45) [18] - Mischvent [19] – KalRaum -5 [K] [1A] – KalRaum FL -5 [K] [1B] – KalAussenfühler -5 [K] [1C] – KalRücklauffühler -5 [K] [1D] – KalWWfühler -5 [K] [1E] – KalKTVLfühler -5 [K] [1F] – KalKTRLfühler -5 [K] [20] – BZ WP (Low) [h] [21] – BZ WP (High) [h] [22] – BZ ZH (Low) [h] [23] – BZ ZH (High) [h] [24] – BZ WP WW (low) [h] [25] – BZ WP WW (high) [h] [26] – Sprache [27] – Adresse [28] – VL Temp IST [°C] [29] – RL Temp. IST [°C] [2A] – Val2A 0x8e (142) ?? [2B] – WW Temp IST [°C] [2C] – Kälteträger VL Temp -40 [°C] [2D] – Kälteträger RL Temp -40 [°C] [2E] – Val2E 0x14 (20) ?? [2F] – Val2F 0x00 (0) ?? [30] – Aussen Temp – 40 [°C] [31] – Raum Temp2 [°C] [32] – VLTemp SOLL [°C] [33] – Aktuator Ctrl: WW, WP, HZ, ZH, ST [34] – Parameter Mode [35] – Val35 0x00 (0) ?? [36] – Val36 0x81 (129) ?? [37] – Val37 0x00 (0) (event. Error Code) [38] - Sekunden [39] – Minuten [3A] – Integral diff to 100 (Low) [°/min] [3B] – Integral diff to 100 (High) [°/min] [3C] – Counter (max. 250) Mode: 0 = AUS 1 = AUTO 2 = nur WP 3 = nur Zusatz 4 = nur WW Aktuator Ctrl (bit codiert): Wärmepumpe (WP) 0x02 Warmwasser (WW) 0x10 Heizungspumpe (HP) 0x20 Zusatzheizung (ZH) 0x8c Störung (ST) 0x01
Hallo, habe die selbe Heizung, interessiere mich ebenfalls für das Thema. Für mich wäre es von Interesse gewesen ob man diese W. P. über die Interface Schnittstelle eigentlich smart machen kann um sie eventuell vom Handy aus zu steuern.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.