Hi,
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.
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.

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.

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?
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?