Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parameterliste wird nicht ausgewertet #1

Open
hko123 opened this issue Feb 21, 2020 · 10 comments
Open

Parameterliste wird nicht ausgewertet #1

hko123 opened this issue Feb 21, 2020 · 10 comments

Comments

@hko123
Copy link

hko123 commented Feb 21, 2020

Nach dem Clonen und dem Flash des ESP funktioniert so weit erst mal alles. Nur musste ich feststellen das die Parameterliste nicht zur Abfrage der Heizung benutzt wird sondern nur alle Parameter hochgezählt werden.

@haniham
Copy link
Owner

haniham commented Feb 22, 2020

Sorry, da hast du leider recht - seitdem ich den code hochgeladen habe bin ich nicht mehr zum entwickeln gekommen - ich hab mir nur mit espeasy ein Telnet gateway gebastelt, mit dem ich aktuell in node red die werte auslese. aber noch nichts sinnvolles damit anstelle

Es war echt schade, dass VAillant wir keine Infos zur Schnittstelle bereit stellen kann, oder möchte. So ist viel reverse engineering vonnöten

@hko123
Copy link
Author

hko123 commented Feb 24, 2020

Hast Du noch vor das Projekt so weit vorranzubringen das die grundsätzliche Funktion gegeben ist. Die Parameter muss wahrscheinlich je nach Heizungstyp und Zusatzgeräten von jedem einzeln angepasst werden. Aber ein bisschen Forschungsarbeit ist ja auch Sinnvoll. Der Node-Red code würde mich interessieren. Hast Du vor den offen zulegen ?.VG

@smueller99au
Copy link

Hi.
I used your esp8266 code very successfully with my Vaillant EC126/2. I had to modify a few things but it’s running now for 2 years without issue. I send a selected few items (about 20) to OpenHAB via the MQTT broker.
Thanks for posting your code! If you want the adjusted code for my boiler then just let me know.

Cheers. Stephen.

@haniham
Copy link
Owner

haniham commented Feb 24, 2020

@smueller99au Sure - feel free to share your code / changes so far i missed enough time to get it running

@hko123 Code was commited in the node-red folder dd60911

@haniham
Copy link
Owner

haniham commented Mar 1, 2020

@smueller99au btw - have you figured out the parameter for a currrent error / the current sate. Our heater has (again - like the last years) failed and halted in an error while we were out of the house. And the big surprise ist that avter returnung today evening it doesn't even restart, so it's getting chilly inside. A monitoring would be greatly anticipated.

@Oberchefe
Copy link

Hallo zusammen,
ich habe mich auch schon eine ganze Weile mit der X6 beschäftigt und möchte meine Erkenntnisse nicht vorenthalten.

Die meisten Informationen lassen sich aus der Datenbank ziehen, die im Programmordner der Vaillant Software liegt. Die Anfragen der Software an die Geräte unterscheiden sich nach Gerätetyp, welcher zuerst mit 07 02 00 00 00 04 c4 abgefragt wird. Zum Regler wird mit der Abfrage des Reglertyps gewechselt: 07 0a 00 00 00 04 44. Dann kann es noch Unterschiede trotz gleichem Gerätetyp geben, da antwortet die Therme aber im Zweifelsfall mit 03 03 05 wenn es keinen entsprechenden Parameter hat. Beispielantwort für eine Therme bei der Abfrage des Gerätetyps: 08 00 00 97 05 62 c5 fb
Die 05/62 ist die Version, die 97 (also 151 dezimal) steht für den Gerätetyp und findet sich in der Datenbanktabelle "geraete". Die Tabellen "Einstelldaten", "Diagnosedaten" und "Mitschnittdaten" enthalten die Info, ob der jeweilige Parameter vom entsprechenden Gerät unterstützt und damit angezeigt und abgefragt wird. In der Tabelle "ComuInfos" finden sich die meisten der Parameter(inclusive Datentyp), in der Tabelle "SymbolNames" dann noch die Übersetzung und die Tabelle "SymbolHints" die "MouseOver" Beschreibung der Parameter. Generell gilt: das zweite gesendete Byte enthält Bits mit entsprechender Funktion, die teilweise kombiniert werden können. Das LSB (Bit 0) schaltet auf Absolutadressen um, ohne Vaillant interne Informationen ist das aber nutzlos. Das nächste Bit (Bit 1) wird bei Kommandos gesetzt (wie bei der Geräteabfrage). Bit 3 adressiert den Regler anstatt des Gerätes(Hex 8). Davor muss aber per Geräteabfrage zum Regler gewechselt werden. Und das MSB (Bit 7) wird gesetzt beim Schreiben von Parametern. Beispiel: Wert "A" adressiert den Regler mit einem Kommando. Die, nach bisherigen im Netz zu findenden Informationen, unbekannten Bytes 2 und 3 gehören ganz einfach zu Byte 4 dazu, manche Parameter haben entsprechend hohe Nummern zur Adressierung.
Reglerparameter finden sich auch in der Datenbank unter "Reglerdaten". Die sind also zuständig wenn im Byte 1 das Bit 3 gesetzt ist.

Leider gibt es einige Parameter, die sich nicht in der Datenbank finden(aber deshalb Geräteunabhängig sein sollten)
Beispiele:
07 00 00 00 a2 00 bd
07 00 00 00 7c 00 18

ein paar davon konnte ich entschlüsseln wie z.B:
07 00 00 00 26 0a a6 für die Abfrage des Fehlerspeichers und
07 00 01 00 06 0e ea für den Status beim letzten Fehler, wobei das auch schon wieder etwas seltsam ist, da die Software auf diese Adresse beim Starten einmalig erst schreibt:
14 80 01 00 06 01 00 00 00 00 00 00 00 00 00 00 00 00 00 52
Ich habe das aber an meiner Therme erfolgreich ohne dieses Schreiben getestet.

Beispielantwort Fehlerspeicher:
0d 00 64 64 64 64 64 64 64 64 64 64 a2

Die "64" bedeutet kein Fehler, bei einem Fehler steht da anstelle die Fehlernummer drin, der letzte Fehler wird mit Hex 80 verodert. Da es sich hier um einen Ringspeicher handelt, kann der letzte Fehler irgendwo innerhalb der 10 Fehler stehen. Das Byte, welches das oberste Bit gesetzt hat enthält den letzten Fehler. Der zweiteneueste Fehler kommt dann im Byte davor usw., wenn man am ersten dieser 10 Bytes angekommen ist, geht es mit dem Zehnten weiter...

Beispielantwort Status beim letzten Fehler:
12 00 00 00 00 21 ff 00 00 00 00 00 00 00 00 00 64 45

Antwort Status beim letzten Fehler:
Byte 0: Länge der Antwort
Byte 1: ??
Byte 2: Vorlauftemperatur
Byte 3: Warmwassertemperatur
Byte 4: Speichertemperatur
Byte 5: Abgas außen
Byte 6: Abgas innen
Byte 7: ?
Byte 8: ?
Byte 9: ?
Byte 10.0: Pumpe
Byte 10.1: VUV Warmwasser
Byte 10.2: externe Pumpe
Byte 10.3: Warmwasseranforderung
Byte 10.4: Raumthermostat Kl3/4/5
Byte 10.5: Flammsignal
Byte 10.6: ?
Byte 10.7: GFA Freigabe
Byte 11.0: ?
Byte 11.1: ?
Byte 11.2: ?
Byte 11.3: Luftwächter
Byte 11.4: Gasventil
Byte 11.5: ?
Byte 11.6: ?
Byte 11.7: ?
Byte 12+13: Gebläseistwert
Byte 14+15: Gebläsesollwert
Byte 16: Aktuelle Fehlernummer (wie in Fehlerabfrage)

Beispiel für Anfrage eines Reglerparameter:
07 08 01 00 00 06 6e
Adresse ist hier 01 00 00, also dezimal 65536, das sind somit für den Heizkreis 1 die Schaltzeiten für Montag, ein Bit hat hierbei die Wertigkeit von 10 Minuten.

07 08 01 03 e8 01 ac also dezimal 66536 ist die Programmart für den Heizkreis 1, Bit 0 ist hier gesetzt, wenn die Schaltzeiten Montag bis Freitag gleich sind, Bit 1 wenn die Schaltzeiten Samstag und Sonntag gleich sind und Bit 2 wenn die Schaltzeiten von Montag bis Sonntag gleich sind. Hat das Byte den Wert 3 bedeutet das, das die Zeiten von Montag bis Freitag gleich sind und die Zeiten von Samstag und Sonntag gleich sind, Samstag und Sonntag aber verschieden zu den Werktagsdaten sind.

Wo ich auch noch etwas im Dunklen tappe: die kurzen Antworten.

Bei Ethersex sind drei Möglichkeiten aufgelistet:
03 00 06 Bestätigung Parameteränderung
03 01 07 Checksummenfehler?
03 03 05 Nicht unterstützt, nicht vorhanden?

die erste und dritte kann ich soweit bestätigen, die zweite habe ich nicht gesehen.

Ich habe aber die
03 56 50 nach dem ominösen Ablöschen des letzten Fehlerstatus
03 98 9e einmalig bei einer Abfrage, die aber sonst x-mal korrekt beantwortet wurde.

Ich hoffe, damit etwas Licht ins Dunkel gebracht zu haben und vielleicht kann ja jemand die restlichen Geheimnisse lüften.

@martin3000
Copy link

wow, danke! wo findet man denn diese Software?

@Oberchefe
Copy link

Die Software gibt es schon einige Zeit nicht mehr und ist bestenfalls noch irgendwo gebraucht zu bekommen wie z.B. hier:
https://www.willhaben.at/iad/kaufen-und-verkaufen/d/gebraucht-0020023370-vrdialog-2-und-vrdialog-810-2-diagnose-und-konfigurationssoftware-567628542/
oder hier:
https://www.ebay.de/itm/154847911879?hash=item240da79fc7:g:hTcAAOSwgNxh59lg

Allerdings scheint beim zweiten Angebot kein Kabel (mit integrierter Elektronik) dabei zu sein, das war im Original dabei.

Für die X6 Schnittstelle wird die vrdialog/2 benötigt, die vrdialog810 ist für die (neueren) eBus Geräte, ist aber mittlerweile wohl auch ersetzt durch die "servicedialog"
https://www.vaillant-group.com/news-center/vaillant-auf-der-shk-2018/neueservicetoolsfuerdasfachhandwerk-1168099.html

@Oberchefe
Copy link

Zu früh gefreut: Auch wenn die Parameter nicht in der Datenbank stehen, sind sie Geräteabhängig. Fehlerhistory auslesen wie oben beschrieben funktioniert für Geräte mit der ID 93,97,98,99,9E,A0,A1 (alles Hex). Geräte mit der ID 8E und 90 werden abgefragt mit 07 02 00 00 6B 0A 1C
Der Zustand beim letzten Fehler scheint für fast alle Geräte wie oben beschrieben zu funktionieren, nur das mit der ID A0 macht da eine Ausnahme. Da wird mit 07 00 01 00 06 01 E5 nur ein Byte abgefragt, und das ist die Vorlauftemperatur.

Fehlerhistory zurücksetzen geht übrigens bei den Geräten mit der ID 93,97,98,99,9E,A0,A1 per Schreiben von 07 82 00 00 68 00 D8, bei den Geräte 8E und 90 per Schreiben von 10 82 00 00 6B 64 00 00 00 00 00 00 00 00 00 B3

Der aktuell anstehende Fehler geht soweit ich weiß nicht per Software zu resetten, sondern nur am Gerät selber.

Zum Gerät mit der ID 88 kann ich im Moment noch nichts sagen, da stresst die Software gerade mit der seriellen Schnittstelle, vielleicht brauche ich da auch mal ein Update.

@Oberchefe
Copy link

Der aktuelle Status lässt sich mit Status 07 00 00 00 AB 01 AE auslesen. Bedeutung ist (zumindest ungefähr) so:

			Heizbetrieb:
			
			S.0 kein Wärmebedarf
			S.1 Heizung Pumpenvorlauf
			S.2 Heizung Gebläseanlauf
			S.3 Heizung Zündung
			S.4 Heizung Brenner an
			S.5 Heizung Gebläse- und Pumpennachlauf
			S.6 Heizung Gebläsenachlauf
			S.7 Heizung Pumpennachlauf
			S.8 Restsperrzeit Heizung
			
			Warmwasserbetrieb (nur VCW):
			
			S.10 Warmwasser Anforderung
			S.11 Warmwasser Gebläseanlauf
			S.13 Warmwasser Zündung
			S.14 Warmwasser Brenner an
			S.15 Warmwasser Gebläse- und Pumpennachlauf
			S.16 Warmwasser Gebläsenachlauf
			S.17 Warmwasser Pumpennachlauf
			
			Warmstartbetrieb (nur VCW)/Warmwasserpeicher laden (nur VC):
			
			S.20 Warmwasser Taktbetrieb
			S.21 Warmwasser Gebläseanlauf
			S.22 -
			S.23 Warmwasser Zündung
			S.24 Warmwasser Brenner an
			S.25 Warmwasser Gebläse- und Pumpennachlauf
			S.26 Warmwasser Gebläsenachlauf
			S.27 Warmwasser Pumpennachlauf
			S.28 Warmwasser Sperrzeit
			
			sonstige:
			
			S.30 kein Wärmebedarf Regler (2-Punkt-Regler)
			S.31 Sommerbetrieb
			S.32 Wartezeit Gebläse
			S.34 Heizung Frostschutz
			S.36 kein Wärmebedarf Regler (Stetigregler)
			S.37 Wartezeit Gebläse
			S.39 Anlegethermostat Kontakt offen
			S.42 Abgasklappe keine Rückmeldung
			S.53 Wartezeit Wassermangel
			S.54 Wartezeit Wassermangel (nach viermaliger Störung Fehlermeldung F24)

Kann auch wieder etwas Geräteabhängig sein, im Zweifelsfall gilt die Liste aus dem Installationshandbuch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants