Permanentes Anfragen von Geräten reduzieren?

Begonnen von stefan123, 28 Februar 2016, 17:19:54

Vorheriges Thema - Nächstes Thema

stefan123

Hallo zusammen,

seit einigen Tagen läuft FHEM auf meinem Raspi.
Gaszähler, Stromzähler, Temperaturfühler, Samsung TV und auch die Fritzbox sind angeschlossen, die gewünschten Events werden in eine DB geschrieben -> alles super.

Gestern habe ich über eine serielle Schnittstelle meine Zehner-Lüftungsanlage angeschlossen, sowohl das Auslesen der Werte und auch das Steuern der Anlage über FHEM funktionieren.
Derzeit lassen ich mir alle 15 Minuten die aktuellen Temperaturdaten in die DB schreiben, falls sich diese geändert haben. Die Events sind entsprechend eingestellt:
event-min-interval -> Temp_Aussen:900,Temp_Zuluft:900,Temp_Abluft:900,Temp_Fortluft:900,Stufe:900
event-on-change-reading -> Temp_Aussen,Temp_Zuluft,Temp_Abluft,Temp_Fortluft,Stufe
event-on-update-reading -> Temp_Aussen,Temp_Zuluft,Temp_Abluft,Temp_Fortluft,Stufe


Aber:
Mir ist dabei aufgefallen, dass FHEM im Hintergrund kontinuierlich die Lüftungsanlage abfragt und Daten einholt (also wirklich permanent ohne Unterbrechung laufen Statusabfragen).
Im Prinzip würde es ja reichen, wenn die Anlage alle 15 Minuten 1x angefragt wird.

Kann man das irgendwo konfigurieren?

Viele Grüße

Stefan
Raspi mit FHEM 5.7, Gas- + Stromzähler, Temperaturfühler,  SamsungTV, Fritzbox, Zehnder ComfoAir 350

kaktus567

define Lüftung ComfoAir /dev/ttyUSB0@9600 900

... alle 900s  ;)

stefan123

Hmmm, mein erster Gedanke: Wer lesen kann, ist klar im Vorteil, ich hatte den Parameter tatsächlich auf 30 gesetzt...

Aber auch nach dem Hochsetzen (habe jetzt mal 300 sek. eingestellt), gehen weiterhin massenhaft Requests über die Leitung...
Habe im Modul 98_ComfoAir.pm einige Logzeilen ergänzt, man sieht, das etwa 20 Anfragen pro Sek an die Lüftungsanlage gestellt werden, die entsprechenden Frames mit Daten kommen zurück und werden durch die Funktionen im Modul analysiert.

Ideen?
Raspi mit FHEM 5.7, Gas- + Stromzähler, Temperaturfühler,  SamsungTV, Fritzbox, Zehnder ComfoAir 350

stefan123

Die Erklärung:
Die Lüftung sendet, unabhängig von dem Sekundenwert im define, immer einen Standard-Satz an Infos über die serielle Schnittstelle.
Dieses Senden wird pro Wert etwa alle 3 Sek. durchgeführt.  Ob sich das abstellen lässt, konnte ich nicht herausfinden.

Nebenbei konnte ich feststellen, dass vereinzelt falsche Werte zu Temperatur und Lüftungsstufe an FHEM übermittelt wurden (Ausreißer kann man in Plot wunderbar sehen...).
Aber warum? die Lüftungsanlage arbeitet beim senden der Daten doch mit Checksummen.

Grund: Die Checksummenprüfung im Modul 98_ComfoAir.pm ist leider auskommentiert.
Die Fehler werden zwar erkannt, aber trotzdem an FHEM weitergegeben. Siehe ab Zeile 548:
    # Länge prüfen
    if (unpack ('C', $len) != length($data)) {
        Log3 $name, 4, "$name: read: wrong length: " . length($data) .
            " (calculated) != " . unpack ('C', $len) . " (header)" .
            " cmd=$hexcmd, data=$hexdata, chk=$chk";
        #return;
    }


Entfernt man das Kommentarzeichen, so werden die fehlerhaften Daten ignoriert.

Könnte für andere Nutzer des Moduls auch interessant sein...

Viele Grüße
Stefan
Raspi mit FHEM 5.7, Gas- + Stromzähler, Temperaturfühler,  SamsungTV, Fritzbox, Zehnder ComfoAir 350