Modul zur Anbindung Viessmann Heizung (Vitotronic 200 KW1)

Begonnen von Adam, 15 Februar 2014, 18:17:35

Vorheriges Thema - Nächstes Thema

ska-

Danke, klappt gut!

Bei Brennerstarts pro Tag steht bei mir Null, mal sehen.

srxp

#1066
Hallo Adam,
ich habe gestern das VControl Modul auf die schnellere Abfrage des KW-Protokolls umgestellt. Somit geht nun alles um einigis flotter von statten, da nicht auf 0x05 gewartet wird.
Hab einen weiteren Parameter <protocol> bei der Definition hinzugefügt. Wird nichts angegeben, wird kw als Standard gewählt. Bei der Angabe von "gwg" eben das gwg Protokoll.

define <name> VCONTROL <port> <command_config> [<interval>] [<protocol>]

Leider hab ich erst jetzt gesehen, dass du da auch schon etwas gemacht hattest, und zwar im Config File.
Ich persönlich finds ja irgendwie schöner wenn man das Protokoll gleich beim define string angibt und das im cfg file nur die polls und sets stehen, aber ist halt Geschmackssache.
Vielleicht können wir ja unsere 2 Änderungen irgendwie mergen.
Anbei mal mein File.

lg

stephan

srxp

#1067
Anbei nochmal das File....hatte noch nen Fehler drinnen. welches protocol verwendet wird muss natürlich vor dem commandfile gelesen werden. :-)

lg

PS: achja...mit dem neuen Modul kann ich meine so ca. 40 Werte innerhalb von ca. 2 Sekunden abfragen....das ist denk ich eine vertretbare Zeit in der Fhem blockiert ist und somit sonst nichts ausführt. Ich rufe die Werte alle 60 Sekunden ab, sprich Fhem hat dann wieder 58 Sekunden frei zur Verfügung um andere Sachen zu erledigen.

mmi

Hi,

Zitat von: srxp am 15 Dezember 2016, 12:53:29
PS: achja...mit dem neuen Modul kann ich meine so ca. 40 Werte innerhalb von ca. 2 Sekunden abfragen....das ist denk ich eine vertretbare Zeit in der Fhem blockiert ist und somit sonst nichts ausführt. Ich rufe die Werte alle 60 Sekunden ab, sprich Fhem hat dann wieder 58 Sekunden frei zur Verfügung um andere Sachen zu erledigen.

ich möchte Feedback geben: der Geschwindigkeitszuwachs ist genial. :)

Nach ein paar Lesezyklen, kombiniert mit dem Setzen von ein paar Änderungen, kam es dann aber zu Fehlern beim Auslesen. Das Logfile ist angehängt; ich hatte das Modul gegen 19:09 getauscht, fhem neu gestartet und angefangen zu testen.

Um 19:26 trat der Fehler erstmalig auf, das Kennlinien Niveau wurde fälschlicherweise mit 5 eingelesen, die darauffolgenden Werte sind ebenfalls mit 5 eingelesen worden. Dass dies gerade kurz vorm Auslesen des Fehlerspeichers passiert, ist Zufall. Die Heizung war nicht gestört, der Wert 5 scheint eine race condition beim Auslesen/im Timing zu sein. Ich hab dann wieder auf die originale Version gewechselt. Interessant ist, dass nach dem ersten Auftreten des Fehlers die darauffolgenden Werte im 12s Takt eingelesen werden.

Im fhem Log kamen zusätzlich noch diese Meldungen:


2016.12.15 19:11:05 0: VCONTROL: 28a0ffffffffffff
2016.12.15 19:11:05 0: VCONTROL: 28a0ffffffffffff
2016.12.15 19:11:05 0: VCONTROL: 28a0ffffffffffff
2016.12.15 19:11:05 0: VCONTROL: 28a0ffffffffffff
2016.12.15 19:11:05 0: VCONTROL: 28a0ffffffffffff
2016.12.15 19:11:06 0: VCONTROL: 28a0ffffffffffff
2016.12.15 19:11:06 0: VCONTROL: 28a0ffffffffffff
2016.12.15 19:11:06 0: VCONTROL: 23b0ffffffffffff
2016.12.15 19:11:06 0: VCONTROL: 23b0ffffffffffff
2016.12.15 19:11:06 0: VCONTROL: 23b0ffffffffffff
2016.12.15 19:11:06 0: VCONTROL: 23b0ffffffffffff
2016.12.15 19:11:06 0: VCONTROL: 23b0ffffffffffff
2016.12.15 19:11:06 0: VCONTROL: 23b0ffffffffffff
2016.12.15 19:11:06 0: VCONTROL: 23b0ffffffffffff

srxp

Hi mmi,
Danke fürs Testen und das Log :-). Werde mir das ansehen. Ich hatte bis jetzt noch keine solcher Phänomene bzw wäre mir nix aufgefallen. Melde mich wieder wenn ich mehr weiß.

Lg

srxp

Sodalle....probier mal das File hier.
Nun sollte der Fehler nicht mehr auftreten wenns wahr ist :-).

lg

stephan

mmi

Hi,

Zitat von: srxp am 16 Dezember 2016, 00:21:30
Nun sollte der Fehler nicht mehr auftreten wenns wahr ist :-).

Vielen Dank - ich hab die neue Version seit ca. 1 Stunde laufen. Am Anfang gabs nochmals einen Fehler - 05 Werte in einigen aufeinanderfolgenden Readings, wieder am Ende eines Poll Intervalls.

Im Gegensatz zu gestern Abend wurde  der nächste Poll Zyklus aber regulär nach 90s gestartet, und hier wurden dann wieder alle Werte zügig und korrekt eingelesen. Ich lasse alles mal weiterlaufen und werde heute Abend nochmal berichten. Verbose habe ich auf 5 hochgesetzt, um im Fehlerfall bessere Informationen zu liefern.

srxp

Hi,
mmh wurde als die 05 Werte in die Readings geschrieben wurde dazwischen irgendwelche sets?

also du meinst die 05 werte wurden erst am schluss des intervalls in die readings geschrieben?
welche readings waren es denn?


lg

srxp

Achja noch eine Frage....welche Heizungssteuerung hast du eigentlich? :-)


mmi

Hi,

der Fehler trat gerade wieder auf, diesmal hab ich es verbose mitloggen können. Sets gab es währenddessen nicht, ich hatte alles in Ruhe gelassen und nur beobachtet.

Soweit ich das sehen kann, tritt das Problem immer am Ende eines Poll-Zyklus auf. Man sieht das sehr schön, da am Ende alle zehn Fehlerregister der Therme eingelesen werden, und dort normalerweise immer 00 drinsteht. Weiterhin weiss ich seitdem, dass meine Alarmierung bei Fehlerzuständen funktioniert. ;)

Hier mal die beiden Fehler von heute:


2016-12-16_12:59:09 Heizung Fehler01: 00
2016-12-16_12:59:09 Heizung Fehler02: 00
2016-12-16_12:59:09 Heizung Fehler03: 00
2016-12-16_12:59:09 Heizung Fehler04: 00
2016-12-16_12:59:09 Heizung Fehler05: 00
2016-12-16_12:59:10 Heizung Fehler06: 00
2016-12-16_12:59:10 Heizung Fehler07: 00
2016-12-16_12:59:11 Heizung Fehler08: 00
2016-12-16_12:59:23 Heizung Fehler09: 05
2016-12-16_12:59:35 Heizung Fehler10: 05

2016-12-16_14:37:25 Heizung Fehler01: 00
2016-12-16_14:37:25 Heizung Fehler02: 00
2016-12-16_14:37:25 Heizung Fehler03: 00
2016-12-16_14:37:25 Heizung Fehler04: 00
2016-12-16_14:37:37 Heizung Fehler05: 05
2016-12-16_14:37:50 Heizung Fehler06: 05
2016-12-16_14:38:02 Heizung Fehler07: 05
2016-12-16_14:38:14 Heizung Fehler08: 05
2016-12-16_14:38:26 Heizung Fehler09: 05
2016-12-16_14:38:38 Heizung Fehler10: 05


Für das letzte Auftreten des Problems um 14:38 habe ich fhem.log und das Log mit den Readings angehängt. Zum Vergleich ist jeweils ein erfolgreicher Poll davor und danach noch mit drin. Es werden noch ein paar Userreadings gesetzt/geschrieben, davon bitte nicht irritieren lassen.

Die Therme ist eine Vitodens 300-W mit Vitocontrol 200 (schwarze Version mit Touchscreen); die vcontrol.cfg ist ebenfalls anbei.

qlaus

Hallo,

vielleicht sollte man mal über die Reduzierung der Anzahl hinternannter gelesener Datensätze nachdenken, bzw. dies mal probieren. Ich habe eine Vitodens 300 Bj. 2000 mit GWG-Protocol. Da habe ich auch mit einem C#-Programm experimentiert und versucht die 256 Speicherplätze in einem Rutsch auszulesen. Dabei stellte sich heraus, dass nur ca. 40 richtige Werte kamen danach kam nur noch Schrott oder Abbruch.
Die Heizungssteuerung soll ja auch primär dafür sorgen, dass es schön warm ist und nicht nur der Welt erzählen welche Speicherzellen sich gerade geändert haben. Daher vielleicht mal 20, dann 30 usw. bis die Grenze erkennbar ist. Oder halt jeweils 10/20 unterschiedliche Werte lesen und dann wieder die 05 abwarten um der Steuerung auch Zeit zum eigentlich arbeiten zu geben.

Viel Erfolg
qlaus
Raspberry Pi 3, , Sonoff, Shelly
Raspberry Pi 3, , 1-Wire
Raspberry Pi 3, , 1-Wire, Sonoff, Shelly

mmi

Hi,
Zitat von: qlaus am 16 Dezember 2016, 17:21:30
vielleicht sollte man mal über die Reduzierung der Anzahl hinternannter gelesener Datensätze nachdenken, bzw. dies mal probieren.

Ein paar Readings kann ich wegnehmen, die machen auch jetzt trotz Einschwingphase schon keinen Sinn mehr (Heizung ist neu). Allzuviel weniger werden es aber nicht - so ca. 25 Readings sind essentiell. Da sind dann aber auch Readings darunter, die primär zur Steuerung benötigt werden.

Zitat
Die Heizungssteuerung soll ja auch primär dafür sorgen, dass es schön warm ist und nicht nur der Welt erzählen welche Speicherzellen sich gerade geändert haben.

Klar soll die Heizung in erster Linie heizen; Readings für bunte Graphen bekomme ich auch von anderen Geräten. ;D Ich fürchte, Sinn und Umfang der Heizungskontrolle und -steuerung definiert aber jeder anders. Ich will zumindest das erste Betriebsjahr die Heizung genauer kontrollieren, um Probleme erkennen zu können. Wahrscheinlich kühlt bei mir der WW Speicher durch falsche Ventilstellung/fehlende Schwerkraftbremsen zu schnell aus. Um das genauer einzugrenzen, braucht es eine Handvoll Readings, die man vielleicht sonst nicht immer abfragt/anschaut. Schön warm ist gut, aber Effizient solls schon sein. :)

Zitat
Daher vielleicht mal 20, dann 30 usw. bis die Grenze erkennbar ist.

In meinem Fall funktioniert das Auslesen von ~40 Readings in einem Rutsch in den allermeisten Fällen (einen Fehler in 5 Stunden, Intervall 90s). Bei der Fehlerrate würde ich vermuten, dass da noch keine systematische Grenze erreicht/erkennbar ist, oder?
 
Zitat
Oder halt jeweils 10/20 unterschiedliche Werte lesen und dann wieder die 05 abwarten um der Steuerung auch Zeit zum eigentlich arbeiten zu geben.

Meinst Du damit, dass die Steuerung in der Heizung ihre internen Regelungsfunktionen blockiert, sobald Daten über Optolink abgefragt werden? Das würde bedeuten, dass für das gesamte Abfrageintervall (hier so 3-5s) die Heizung "blind" weiterrennt, wenn man nicht ab und zu auf ein sync byte warten würde?

Mit dem sync byte hängt es aber in jedem Fall zusammen. Für mich sieht es so aus, als ob die Heizung irgendwann auf eine Anfrage statt der eigentlich erwarteten Antwort ein 05 sendet. Der Code zum Auswerten in der Routine VCONTROL_ReadAnswer scheint damit auf die Nase zu fallen, da diese Variante momentan nicht berücksichtigt wird.

Der Abschnitt für die Auswertung von 05 versucht den Betriebszustand (temp_mode) mit zu ermitteln; bei 05 marschiert er bis zum Ende ($temp_mode == 5) und beendet das Abfragen. Sollte für diesen speziellen Fall auf den einzelnen 05 mit 01 geantwortet werden, damit weitere Anfragen möglich sind?

srxp

Hi,
so hier nochmals eine neue Version.
bitte schau mal ob jetzt noch immer der Fehler kommt.
Hab den Retry etwas umprogrammiert.

lg

Dieter1

Hallo,
habe eine Viessmann V150KB1 und frage 14 Werte ab, derzeit alle 60s. Die Abfrage dauert jetzt 2s, vorher dauerte es 50s. Funktioniert super, bisher keine Probleme.
Mit deiner VControl Version von gestern hatte ich immer wieder "ZwischenPolls" zwischen den 60s Intervallen:
2016.12.17 15:40:16 4: VCONTROL: Start of Poll !
2016.12.17 15:41:16 4: VCONTROL: Start of Poll !
2016.12.17 15:42:00 4: VCONTROL: Start of Poll !  ???
2016.12.17 15:42:16 4: VCONTROL: Start of Poll !

In der Version von heute habe ich das nicht mehr. Sieht gut aus, kein "ZwischenPolls" mehr, Werte stimmen. Läuft aber erst seit 1h:
2016.12.17 16:29:36 4: VCONTROL: Start of Poll !
2016.12.17 16:30:36 4: VCONTROL: Start of Poll !
2016.12.17 16:31:36 4: VCONTROL: Start of Poll !
2016.12.17 16:32:36 4: VCONTROL: Start of Poll !
2016.12.17 16:33:36 4: VCONTROL: Start of Poll !
2016.12.17 16:34:36 4: VCONTROL: Start of Poll !

Danke, LG
FHEM V5.6 auf Raspberry Pi, HMLAN, div. Homematic Komponenten, SDM630 über Modbus/LAN/RS485

Adam

Hallo Stephan,

Toll !!! Ich bin begeistert!!

Habe Deine Version gerade mal eingespielt, auch bei mir dauert der Poll nun 4 Sekunden statt 80 Sekunden.
Ich hatte von dieser Variante mit dem Weglassen der 01 zu Beginn und direktem Senden noch nichts gelesen.

Ich lasse die Version auch mal bei mir ein paar Tage laufen.

Ich hatte auch schon an das Protocol im Define gedacht, wollte nur vorhandene Installationen nach einem Update nicht dazu zwingen dort was zu ändern.
Aber das können wir machen!

Ich lass es bei mir ein paar Tage laufen, wenn es bei mir oder anderen Keine Probleme gibt kann ich diese Version dann auch als offizielle Version einchecken.
(Wobei ich persönlich noch nicht sicher bin, ob eine 4 Sekündige Blockade in FHEM Nebeneffekte mit meinen anderen Modulen haben wird!?)

Gruß Adam