Moin,
ich habe Probleme beim Triggern eines userReadings innerhalb eines Dummy, wenn state 0 (Null) ist.
Internals:
FUUID 5c4b88ab-f33f-5817-3861-60a6302baca27292
NAME Sommer_Winterzeit
NR 1187
STATE auto
TYPE dummy
READINGS:
2020-10-25 17:44:49 por_state updated
2020-10-25 17:44:49 state auto
Attributes:
POR active
comment Umschalter fuer Sommerzeit und Winterzeit
gesetzt per Sommerzeit_01 aus localtime
0 = Winterzeit
1 = Sommerzeit
devStateIcon 0:weather_frost@blue 1:weather_sun@orange
event-on-update-reading state
group Uhrzeit
room -System->time
setList auto 0 1
userReadings por_state:(0|1|auto) {POR_file($name, "update", $name, ReadingsVal($name,"state","unreachable"))}
userattr POR:active,inactive
verbose 4
Die Events werden richtig erzeugt
2020-10-25 17:41:20.256 dummy Sommer_Winterzeit auto
2020-10-25 17:41:33.201 dummy Sommer_Winterzeit 1
2020-10-25 17:41:39.094 dummy Sommer_Winterzeit 0
aber nur bei einem Wert von 0 im state triggert das userReading nicht !
Log:
2020.10.25 17:43:29.256 4: dummy set Sommer_Winterzeit 1
2020.10.25 17:43:29.259 4: Sommer_Winterzeit POR_file: start
2020.10.25 17:43:29.260 4: Sommer_Winterzeit POR_file: timestamp = 2020-10-25 17:43:29
2020.10.25 17:43:29.265 3: Sommer_Winterzeit POR_file: Sommer_Winterzeit value in POR-file unchanged
2020.10.25 17:43:29.266 4: Sommer_Winterzeit POR_file: end
2020.10.25 17:43:56.268 4: dummy set Sommer_Winterzeit 0
2020.10.25 17:44:49.087 4: dummy set Sommer_Winterzeit auto
2020.10.25 17:44:49.089 4: Sommer_Winterzeit POR_file: start
2020.10.25 17:44:49.090 4: Sommer_Winterzeit POR_file: timestamp = 2020-10-25 17:44:49
2020.10.25 17:44:49.095 3: Sommer_Winterzeit POR_file: Sommer_Winterzeit updated to auto
2020.10.25 17:44:49.106 4: Sommer_Winterzeit POR_file: end
userReadings por_state:(.*) {POR_file($name, "update", $name, ReadingsVal($name,"state","unreachable"))}
geht auch nicht.
userReadings por_state {POR_file($name, "update", $name, ReadingsVal($name,"state","unreachable"))}
funktioniert. Ist irgendwie komisch, mach ich etwas falsch ?
Moin
Bernd
Das kann ich reproduzieren. Ich würde entweder dein Thread im "Sonstiges" Forum (laut MAINTAINER.txt für fhem.pl) verschieben, oder Rudi direkt kontaktieren.
Ich tippe auf diesen Code in der fhem.pl (http://svn.fhem.de/trac/browser/trunk/fhem/fhem.pl) als Ursache:
4735 if(defined($trigger)) {
4736 map { $event = $_ if($_ && $_ =~ m/^$trigger$/);
4737 $ownRead = 1 if($_ && $_ =~ m/^$reading:/); } @{$hash->{CHANGED}};
4738 next if(!$event || $ownRead);
4739 ($eventName, $eventValue) = ($1, $2) if($event =~ m/^([^:]*): (.*)$/);
4740 }
Das $_ && bewirkt, dass nicht nur überprüft wird, ob das Event zum Trigger passt, sondern auch der Wahrheitswert des Events selbst. 0 ist nicht wahr, wird also übergangen. Wenn kein Trigger definiert ist, wird dieser Test übersprungen.
Habs gefixt, bitte um Feedback.
Moin,
ja, alles ok. :)
Vielen Dank !
Bernd