Hauptmenü

[gelöst] DOIF mit Aggregat

Begonnen von rallye, 19 April 2021, 16:56:59

Vorheriges Thema - Nächstes Thema

rallye

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.
RaspiPi v4, HM-LGW, 6x HM-TC-IT-WM-W-EU, 11x HM-CC-RT-DN, 1x HUE Bridge, 4x HUE-RC, 5x HUE White&Color, 15xHUE White, 3xHM-LC-SW1-FM, 1xHM-LC-SW2-FM, 1x ConBeeII, 15x Shelly1, 5xShellyplug, Aquara: 2x Temp-Sensor, 1x Vibrationssensor, 2x Lichtsensor, 19x Tür/Fenstersensor

Damian

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?
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

rallye

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 !
RaspiPi v4, HM-LGW, 6x HM-TC-IT-WM-W-EU, 11x HM-CC-RT-DN, 1x HUE Bridge, 4x HUE-RC, 5x HUE White&Color, 15xHUE White, 3xHM-LC-SW1-FM, 1xHM-LC-SW2-FM, 1x ConBeeII, 15x Shelly1, 5xShellyplug, Aquara: 2x Temp-Sensor, 1x Vibrationssensor, 2x Lichtsensor, 19x Tür/Fenstersensor