FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: AnonymousHolger am 30 November 2024, 16:00:31

Titel: Problem mit userReadings trigger
Beitrag von: AnonymousHolger am 30 November 2024, 16:00:31
Hallo, ich sehe mal wieder das Problem nicht.

Versuche mich gerade mit den userReadings um ein paar Dinge zu vereinfachen.

Leider bekomme ich den Trigger nicht hin .... selbst nach undenlcihem Googlen und mehrfachen lesen der Comandref und Wiki Eintrag.

Folgende userReadings für meinen Fensterkontakt (HM-Sec-SCO) Definition funktioniert:

attr Fenster.Schlafz userReadings DateTimeLastOpened {if (ReadingsVal("Fenster.Schlafz","state","") eq "open") {ReadingsTimestamp("Fenster.Schlafz","state","")} else { ReadingsVal("Fenster.Schlafz","DateTimeLastOpened","") }}

Ich schaffe es aber nicht, einen trigger zu setzen der auf eine Änderung des State funktioniert und ich verstehe nicht warum

Mein letzter Versuch, von dem ich hoffte er würde funktionieren anbei auch mit "state.*" anstatt ":state.*" funktioniert es nicht ...

attr Fenster.Schlafz userReadings DateTimeLastOpened :state.* {if (ReadingsVal("Fenster.Schlafz","state","") eq "open") {ReadingsTimestamp("Fenster.Schlafz","state","")} else { ReadingsVal("Fenster.Schlafz","DateTimeLastOpened","") }}

Ich bin schon seit Stunden am rumändern aber finde irgendwie den Fehler nicht.
Titel: Aw: Problem mit userReadings trigger
Beitrag von: Prof. Dr. Peter Henning am 30 November 2024, 18:05:39
Zitat von: AnonymousHolger am 30 November 2024, 16:00:31DateTimeLastOpened:state.*

Leerzeichen raus.

pah
Titel: Gelöst: Problem mit userReadings trigger
Beitrag von: AnonymousHolger am 01 Dezember 2024, 13:32:17
Vielen Dank, jetzt funktioniert es.
Ich habe es noch einmal etwas umgeändert auf Fenster_Bad ohne "." und den Event auf trigger_cnt umgestellt.

Jetzt habe ich saubere UserReadings, mit denen ich max 3 Reminder realisiere wenn Fenster offen ist.

attr Fenster_Schlafz userReadings DateTimeLastOpened:trigger_cnt.* {if (ReadingsVal("Fenster_Schlafz","state","") eq "open") {ReadingsTimestamp("Fenster_Schlafz","state","")} else { ReadingsVal("Fenster_Schlafz","DateTimeLastOpened","") }}, \
     DateLastOpened:trigger_cnt.*  {my ($DateO,$TimeO) = split(" ",ReadingsVal("Fenster_Schlafz","DateTimeLastOpened",""));; $DateO}, \
     TimeLastOpened:trigger_cnt.*  {my ($DateO,$TimeO) = split(" ",ReadingsVal("Fenster_Schlafz","DateTimeLastOpened",""));; $TimeO}, \
     Reminder1TimeOpened:trigger_cnt.*  {my $DateTimeStamp = ReadingsTimestamp("Fenster_Schlafz","state","");; time_str2num($DateTimeStamp) +1200}, \
    Reminder2TimeOpened:trigger_cnt.*  {my $DateTimeStamp = ReadingsTimestamp("Fenster_Schlafz","state","");; time_str2num($DateTimeStamp) +1800}, \
     Reminder3TimeOpened:trigger_cnt.*  {my $DateTimeStamp = ReadingsTimestamp("Fenster_Schlafz","state","");; time_str2num($DateTimeStamp) +2400}
Titel: Aw: Problem mit userReadings trigger
Beitrag von: Prof. Dr. Peter Henning am 01 Dezember 2024, 13:51:33
Irre kompliziert. Eigentlich rate ich nicht zu DOIF - aber die Anzahl der Alarmierungen lässt sich damit sehr komfortabel einstellen.

LG

pah