Am Montag, 26. November 2012 18:06:17 UTC+1 schrieb Rudolf Koenig:
Eigentlich duerften Module wie dewpoint von diesem Attribut nicht betroffen
sein (am besten einstellbar), ich habe aber keine gute Idee, wie man das ohne
alles auf dem Kopf zu stellen realisiert
Hallo Rudi,
was meist Du mit Attribut? event-on-change-reading?
Wenn event-on-change-reading nicht gesetzt ist, läuft alles ohne Probleme, weil für jede Änderung eines Readings die entsprechende Events generiert werden. Dann bekommt dewpoint jede Änderung mit.
Ist allerdings event-on-change-reading gesetzt, werden nur noch Events für die angegebenen Reading generiert, deren Werte sich ändern. Damit bekommt dewpoint nur noch Events für die Änderungen mit. Wenn sich also nur die Temperatur ändert, gibt es kein Event für Humitity und dewpoint wird nicht angeliefert.
Daher habe ich jetzt (im Test) dies so geändert, dass dann das entsprechende Reading verwendet wird (natürlich nur wenn aktuell).
Eine Sonderbehandlung braucht man bei STATE. Bevor Du den Patch eingecheckt hast, hat das Reading state STATE überschrieben. Da STATE vorher mittels dewpoint manipuliert wurde, fehlt dann der Taupunkt, wenn STATE auch überschrieben wird, wenn sich das Reading state nicht ändert (denn dann bekommt das dewpoint ja nicht mit).
Das Reading state kann ich mittels dewpoint nicht manipulieren, weil die übrigen Module keinen Taupunkt schreiben und sich so die Werte jedesmal ändern würden. In diesem Fall würde für STATE jedesmal ein Event ausgelöst und jedesmal im Filelog geloggt, was ja so nicht gewünscht ist.
Es ist etwas blöd, dass sich dadurch das Reading state und STATE unterscheiden müssen, aber das geht bei der bisherigen Logik nicht anders.
Das ist leider der Nebeneffekt davon, dass dewpoint optional STATE manipulieren kann, damit dort der Taupunkt erscheint.
-> Hab Dein Patch eingecheckt.
Danke. Damit läuft dann alles mit dewpoint korrekt auch bei Manipulation von STATE und gesetztem event-on-change-reading.
Meine neue Version von dewpoint, die ich am Wochenende zum Test per PM an Chris gegeben habe und selbst teste, greift auch auf die jeweils fehlenden Werte (Temp oder Hum) durch Zugriff auf die entsprechenden Readings zu (sofern aktuell genug, was parametrisierbar ist). Damit funktioniert jetzt dewpoint mit event-on-change-reading sowie mit den Techno Sensoren TX3TH.
Ich möchte das noch ein paar Tage testen. Wenn alles wie bisher problemlos läuft, ändere ich dewpoint in einigen Tagen im SVN. Die Änderungen sind aufwärtskompatibel, so dass es keine Probleme geben sollte.
MfG Willi