FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: rallye am 19 April 2021, 16:56:59

Titel: [gelöst] DOIF mit Aggregat
Beitrag von: rallye am 19 April 2021, 16:56:59
Ich probiere seit Tagen erfolglos und komme einfach nicht dahinter was ich falsch mache.
Ich habe ein DOIF so definiert:
defmod Anz_Fenster_Offen DOIF ([#]) ()
attr Anz_Fenster_Offen alias Anzahl der offenen Fenster im Haus
attr Anz_Fenster_Offen comment attr Anz_Fenster_Offen state [#"^Fenster[.].|^Tuere[.]."::$STATE eq "open"]
attr Anz_Fenster_Offen do always
attr Anz_Fenster_Offen room Sensoren
attr Anz_Fenster_Offen state [#"^Fenster[.].|^Tuere[.].":state:"open"]

setstate Anz_Fenster_Offen 3
setstate Anz_Fenster_Offen 2021-04-19 16:42:59 cmd 1
setstate Anz_Fenster_Offen 2021-04-19 16:42:59 cmd_event set_cmd_1
setstate Anz_Fenster_Offen 2021-04-19 16:42:59 cmd_nr 1
setstate Anz_Fenster_Offen 2021-04-19 16:37:44 mode enabled
setstate Anz_Fenster_Offen 2021-04-19 16:42:59 state 3
setstate Anz_Fenster_Offen 2021-04-19 16:37:44 timer_01_c01 error: Wrong timespec #: either HH:MM:SS or {perlcode}

Abgesehen von der Fehlermeldung
setstate Anz_Fenster_Offen 2021-04-19 16:37:44 timer_01_c01 error: Wrong timespec #: either HH:MM:SS or {perlcode}

die ich nicht wegbekomme habe ich das essentielle Problem, dass ich die offenenen Türen und Fenster anzeigen möchte. Wenn ein Raum mehrere Fenster hat heissen die Fenster "Fenster.Li.WZ", "Fenster.Re.WZ" und sind zu einer structure "Fenster.WZ" aggregiert.
Ich habe die Fenster und Türen in einer Gruppe "Sensoren" und die Structures in einer Gruppe "structures". O.a Definition zeigt mir bei einem offenen WZ-Fenster 3 offene Fenster an. Das Fenster selbst, die Structure Fenster.WZ und die Structure Fenster. EG. Wenn ich das attr state dahingehend ändere (vgl.: [@"rooms$"::$STATE eq "on" and $group eq "windows"] in der commandref
attr Anz_Fenster_Offen state [#"^Fenster[.].|^Tuere[.].":state:"open" and $group eq "Sensoren"] wird mir kein offenes Fenster mehr angezeigt. Wahrscheinlich ein Brett vor dem Kopf.
Titel: Antw:DOIF mit Aggregat
Beitrag von: Damian am 19 April 2021, 22:39:33
Was soll hier open sein?

attr Anz_Fenster_Offen state [#"^Fenster[.].|^Tuere[.].":state:"open" and $group eq "Sensoren"]


vermutlich meinst du so etwas:

attr Anz_Fenster_Offen state [#"^Fenster..|^Tuere..":state:$_ eq "open" and $group eq "Sensoren"]


Warum setzt du den Punkt in eckige Klammern?
Titel: Antw:DOIF mit Aggregat
Beitrag von: rallye am 21 April 2021, 08:58:33
Zitat von: Damian am 19 April 2021, 22:39:33
Was soll hier open sein?

attr Anz_Fenster_Offen state [#"^Fenster[.].|^Tuere[.].":state:"open" and $group eq "Sensoren"]


vermutlich meinst du so etwas:

attr Anz_Fenster_Offen state [#"^Fenster..|^Tuere..":state:$_ eq "open" and $group eq "Sensoren"]


Warum setzt du den Punkt in eckige Klammern?

Danke, dein Vorschlag funktioniert einwandfrei ! Um die Fragen zu beantworten:
1. ein oder mehrere Fenstrer/Türen sollen offen sein
2. die eckigen Klammern stammen aus meinen Tests mit dem RexEx Tester. Bin später drauf gekommen, dass sie unnötig sind, hab sie aber vergessen zu entfernen. Das hab ich nun nachgeholt.

Nochmals Danke !