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:> 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
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/starthttps://ebus-wiki.org/doku.php/ebus/serviceb5vaillant
"Leider musste ich feststellen, dass die Firma Vaillant (fast)
ausschließlich eigene, nicht dokumentierte Befehle verwendet. "
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?
[I2C] Data received from master: addr=0, len=1, ovf=0, data: [b'\x14']
[I2C] Data received from master: addr=1, len=1, ovf=0, data: [b'\x04']
[I2C] Data received from master: addr=2, len=1, ovf=0, data: [b'\x10']
[I2C] Data received from master: addr=3, len=1, ovf=0, data: [b'\x1c']
[I2C] Data received from master: addr=4, len=1, ovf=0, data: [b'\x04']
[I2C] Data received from master: addr=5, len=1, ovf=0, data: [b'\x02']
[I2C] Data received from master: addr=6, len=1, ovf=0, data: [b'\x12']
[I2C] Data received from master: addr=7, len=1, ovf=0, data: [b'(']
[I2C] Data received from master: addr=8, len=1, ovf=0, data: [b'\x19']
[I2C] Data received from master: addr=9, len=1, ovf=0, data: [b'<']
[I2C] Data received from master: addr=12, len=1, ovf=0, data: [b',']
[I2C] Data received from master: addr=18, len=1, ovf=0, data: [b'\x0f']
[I2C] Data received from master: addr=23, len=1, ovf=0, data: [b'\x01']
[I2C] Data received from master: addr=29, len=1, ovf=0, data: [b'\x05']
[I2C] Data received from master: addr=35, len=1, ovf=0, data: [b'\x00']
[I2C] Data received from master: addr=40, len=1, ovf=0, data: [b',']
[I2C] Data received from master: addr=46, len=1, ovf=0, data: [b'\x14']
[I2C] Data received from master: addr=51, len=1, ovf=0, data: [b'\x10']
[I2C] Data received from master: addr=56, len=1, ovf=0, data: [b'\x18']
... Und hier nochmal nach einigen Stunden:
[I2C] Data received from master: addr=0, len=1, ovf=0, data: [b'\x10']
[I2C] Data received from master: addr=1, len=1, ovf=0, data: [b'\x03']
[I2C] Data received from master: addr=2, len=1, ovf=0, data: [b'\x10']
[I2C] Data received from master: addr=3, len=1, ovf=0, data: [b'\x16']
[I2C] Data received from master: addr=4, len=1, ovf=0, data: [b'\x03']
[I2C] Data received from master: addr=5, len=1, ovf=0, data: [b'\x03']
[I2C] Data received from master: addr=6, len=1, ovf=0, data: [b'\n']
[I2C] Data received from master: addr=7, len=1, ovf=0, data: [b'(']
[I2C] Data received from master: addr=8, len=1, ovf=0, data: [b'\x19']
[I2C] Data received from master: addr=9, len=1, ovf=0, data: [b'\x05']
[I2C] Data received from master: addr=11, len=1, ovf=0, data: [b'\x1e']
[I2C] Data received from master: addr=16, len=1, ovf=0, data: [b'\x14']
[I2C] Data received from master: addr=22, len=1, ovf=0, data: [b'\x0e']
[I2C] Data received from master: addr=27, len=1, ovf=0, data: [b'\x05']
[I2C] Data received from master: addr=32, len=1, ovf=0, data: [b'\x0b']
[I2C] Data received from master: addr=37, len=1, ovf=0, data: [b')']
[I2C] Data received from master: addr=41, len=1, ovf=0, data: [b'$']
[I2C] Data received from master: addr=46, len=1, ovf=0, data: [b'\x14']
[I2C] Data received from master: addr=51, len=1, ovf=0, data: [b' ']
[I2C] Data received from master: addr=55, len=1, ovf=0, data: [b'\x00']
[I2C] Data received from master: addr=60, len=1, ovf=0, data: [b'`']
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.
Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
Groß- und Kleinschreibung verwenden
Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang