Hallo,
ich habe bei einem Dummy das Attribut "event-on-change-reading" gesetzt, aber es werden immer noch diesselben Readings-Werte mehrfach ins DbLog geschrieben:
Zitat
"TIMESTAMP";"DEVICE";"TYPE";"EVENT";"READING";"VALUE";"UNIT"
2014-02-16 21:59:10;"HZ_TempAussen";"DUMMY";"Temperatur: 6.10";"Temperatur";"6.10";
2014-02-16 21:49:10;"HZ_TempAussen";"DUMMY";"Temperatur: 6.10";"Temperatur";"6.10";
2014-02-16 21:39:13;"HZ_TempAussen";"DUMMY";"Temperatur: 6.10";"Temperatur";"6.10";
2014-02-16 21:29:10;"HZ_TempAussen";"DUMMY";"Temperatur: 5.90";"Temperatur";"5.90";
2014-02-16 21:19:09;"HZ_TempAussen";"DUMMY";"Temperatur: 5.90";"Temperatur";"5.90";
2014-02-16 21:09:16;"HZ_TempAussen";"DUMMY";"Temperatur: 5.90";"Temperatur";"5.90";
2014-02-16 20:59:10;"HZ_TempAussen";"DUMMY";"Temperatur: 6.10";"Temperatur";"6.10";
2014-02-16 20:49:09;"HZ_TempAussen";"DUMMY";"Temperatur: 6.10";"Temperatur";"6.10";
2014-02-16 20:39:12;"HZ_TempAussen";"DUMMY";"Temperatur: 6.10";"Temperatur";"6.10";
Habe ich etwas falsch verstanden oder gibt es hier einen Bug?
Gruß
Blueberry63
Lies Dir doch bitte in der commandref noch mal die Abhängigkeiten zwischen event-on-change-reading und event-on-update-reading durch.
Gruß, Peter
Ich habe mir die commandref durchgelesen. Da ich aber bei diesem Gerät nur EIN reading habe ("Temperatur"), müßte ich doch mit "event-on-change-reading" richtig liegen? Was verstehe ich hier falsch?
Gruß
Blueberry63
mach mal bitte ein "list HZ_TempAussen" und poste die gesamte Ausgabe hier.
Zitat
Internals:
CFGFN incl_heizung.cfg
NAME HZ_TempAussen
NR 111
STATE 3.40
TYPE dummy
CHANGETIME:
Helper:
Dblog:
Temperatur:
Mydb:
TIME 1392629350.5284
VALUE 3.40
Attributes:
event-on-change-reading Temperatur
fp_Keller 30,780,1,Temp
icon icoTemp
room Heizung
genau das dachte ich mir... Du setzt ein event-on-change-reading für ein reading, das überhaupt nicht existiert.
Oder siehst Du in Deinem Listing irgendwo einen Eintrag "Readings"? Da gibt es nur Internals und Attributes.
Hallo Betateilchen,
da hast Du natürlich Recht, es ist kein Reading zu sehen. Darüber hatte ich mir auch noch keine Gedanken gemacht, weil ich davon ausgegangen bin, daß es immer automatisch ein "Reading" gibt. Das "dummy" habe ich folgendermassen angelegt:
Zitat
define HZ_TempAussen dummy
attr HZ_TempAussen fp_Keller 30,780,1,Temp
attr HZ_TempAussen icon icoTemp
attr HZ_TempAussen room Heizung
attr HZ_TempAussen event-on-update-reading Temperatur
define at_HZ_TempAussen at +*00:10:00 {\
my $a = ReadHeizung('TempAussen');;\
if (($a) >= -25 && ($a) < 45) {\
fhem "setstate HZ_TempAussen $a";;\
fhem "trigger HZ_TempAussen Temperatur: $a";;\
}\
}
Was muß ich anders machen?
Gruß
Blueberry63
Doku lesen.
fhem "setstate
da steht doch setstate also wird da STATE gesetzt (und das funktioniert bei Dir ja auch perfekt)
Kleiner Tipp: such doch mal nach setreading ;)
...und das funktioniert bei einem Dummy, wo doch gar kein Reading definiert ist? Ich werde es gleich probieren.
Vielen Dank für die Hlife.
Gruß
Blueberry63
Sieht gut aus :D
Danke nochmals!!!
Zu früh gefreut >:(
Das Reading wird zwar jetzt beschrieben:
Zitat
Internals:
CFGFN incl_heizung.cfg
NAME HZ_TempAussen
NR 111
STATE 8.20
TYPE dummy
CHANGETIME:
Helper:
Dblog:
Temperatur:
Mydb:
TIME 1392650766.68369
VALUE 8.20
Readings:
2014-02-17 16:26:05 Temperatur 8.20
Attributes:
event-on-change-reading Temperatur
event-on-update-reading Temperatur
fp_Keller 30,780,1,Temp
icon icoTemp
room Heizung
Aber die Messwerte werden immer noch in die DB geschrieben, obwohl sie sich von einem Zeitpunkt zum nächsten nicht ändern. Was mache ich falsch?
Hier noch meine Definition des Dummys:
Zitat
define HZ_TempAussen dummy
attr HZ_TempAussen fp_Keller 30,780,1,Temp
attr HZ_TempAussen icon icoTemp
attr HZ_TempAussen room Heizung
attr HZ_TempAussen event-on-change-reading Temperatur
attr HZ_TempAussen event-on-update-reading Temperatur
#attr HZ_TempAussen webCmd state
define at_HZ_TempAussen at +*00:10:00 {\
my $a = ReadHeizung('TempAussen');;\
if (($a) >= -25 && ($a) < 45) {\
fhem "setstate HZ_TempAussen $a";;\
fhem "setreading HZ_TempAussen Temperatur $a";;\
fhem "trigger HZ_TempAussen Temperatur: $a";;\
}\
}
attr at_HZ_TempAussen room Heizung
Gruß
Blueberry63
Hallo,
ich weiß ja nicht aber kann ein Dummy überhaupt event-on-change-reading?
Bei den FHTTK musste das ja auch erst "nachgerüstet" werden.
Ich kann mich aber auch täuschen und da ist noch irgendwo ein Fehler.
Grüße
nachdenken... da kommst du selber drauf.
Wann willst Du einen Event? bei einem Change oder bei einem Update?
Und wenn Du das beantwortet hast, schau Dir die Attribute an.
ach Puschel...
Sorry, es war ein Fehler von mir, beide "event-on..." Attribute einzutragen. Das kommt vom vielen Testen; eine Zeile sollte eigentllich immer auskommentiert sein. Ich werde jetzt nochmal mit "event-on-change-reading" testen (Event also nur, wenn sich der Temperaturwert im Vergleich zum letzten ändert). und dann berichten.
Gruß
Blueberry63
:-\
Es funktioniert mit "event-on-change-reading" (alleine) leider nicht. Zitate kann ich jetzt als Beweis nicht bieten, das könnte ich aber morgen nachliefern.
Theoretisch müßte es doch so funktionieren, oder?
Gruß
Blueberry63
theoretisch ja. Aber ich habe praktisch fast damit gerechnet, dass es nicht funktioniert.
Das ist das alte Problem, dass es innerhalb eines getriggerten Notify keine weiteren Trigger gibt. Du wirst den Umweg über einen Dummy gehen müssen oder damit leben, dass die Werte eben auch geloggt werden, wenn sie sich nicht verändert haben.
Hier hatten wir am Wochenende exakt das Problem in einem anderen Fall schonmal diskutiert:
http://forum.fhem.de/index.php/topic,20317.0.html
Hallo Betateilchen,
Danke für Deine Antworten. Mit der Siituation kann ich leben, wenn die Ursache klar ist.
Gruß
Blueberry63