FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: AndyMu am 16 September 2017, 18:18:08

Titel: Frage zu DOIF und WAIT / Anwesenheitserkennung über Türkontakt und Bewegungsmeld
Beitrag von: AndyMu am 16 September 2017, 18:18:08
Hallo,

ich hänge hier mit einem eigentlich ganz einfachen DOIF, aber irgendwie löst es einfach nicht aus...
Internals:
   CFGFN
   DEF        ([HomeStatus_test:"undefined"])(
set HomeStatus_test KurzWeg
)
DOELSE
   NAME       Abwesend
   NR         645
   NTFY_ORDER 50-Abwesenheit
   STATE      initialize
   TYPE       DOIF
   READINGS:
     2017-09-16 18:14:58   mode            enable
     2017-09-16 18:14:35   state           initialize
   condition:
     0          EventDoIf('HomeStatus_test',$hash,'undefined',1)
   devices:
     0           HomeStatus_test
     all         HomeStatus_test
   do:
     0:
       0            set HomeStatus_test KurzWeg
     1:
       0
   helper:
     globalinit 1
     last_timer 0
     sleeptimer -1
     bm:
       DOIF_Attr:
         cnt        1
         dmx        0
         mAr
         mTS
         max        0
         tot        0
       DOIF_Notify:
         cnt        171
         dmx        0
         mAr
         mTS
         max        0
         tot        0
       DOIF_Set:
         cnt        31
         dmx        0
         mTS        16.09. 18:14:35
         max        12
         tot        23
         mAr:
           HASH(0x36fb090)
           Abwesend
           initialize
   itimer:
   regexp:
     all:
   state:
     STATE:
   trigger:
     all         HomeStatus_test
Attributes:
   do         always
   room       Anwesenheit
   wait       900


Wenn ich HomeStatus_test händisch von nem anderen Wert auf "undefined" stelle, sollte doch eigentlich der WAIT mit 900 loslaufen und dann irgendwann das HomeStatus_test auf "Zuhause" setzen... passiert nur leider gar nicht.

Das HomeStatus_test sieht so aus:
Internals:
   CHANGED
   NAME       HomeStatus_test
   NR         364
   STATE      undefined
   TYPE       dummy
   READINGS:
     2017-09-16 18:15:12   state           undefined
   helper:
     bm:
       dummy_Set:
         cnt        126
         dmx        0
         mTS        16.09. 17:30:03
         max        26
         tot        284
         mAr:
           HASH(0x2cd7dc0)
           HomeStatus_test
           undefined
Attributes:
   event-on-change-reading STATE
   room       Anwesenheit
   setList    Zuhause KurzWeg LangWeg Party undefined


Irgendwie stehe ich gerade aufm Schlauch, wer kann mir helfen?

Danke!
Titel: Antw:Frage zu DOIF und WAIT
Beitrag von: Ellert am 16 September 2017, 18:22:35
Wie sieht das Event aus, das zu Deiner Aktion erzeugt wird?

Übrigens, STATE ist kein Reading sondern ein Internal.
Titel: Antw:Frage zu DOIF und WAIT
Beitrag von: AndyMu am 16 September 2017, 18:24:21
Blöde Frage... was meinst Du? ;)
Titel: Antw:Frage zu DOIF und WAIT
Beitrag von: Ellert am 16 September 2017, 18:25:36
Was genau hast Du an meiner Frage nicht verstanden?
Titel: Antw:Frage zu DOIF und WAIT
Beitrag von: AndyMu am 16 September 2017, 19:06:36
Vorab: Nicht dass Du das "Blöde Frage..." auf Dich gesehen hast, es war auf mich als Anfänger gesehen.

Ausgelöst werden soll das DOIF, wenn folgendes DOIF den Status von HomeStatus_test ändert:
Internals:
   CFGFN
   DEF        ([th_ug_bm_Motion:"motion"])(
set HomeStatus_test Zuhause
)
DOELSEIF
([ug_eb_fk:"closed"])(
set HomeStatus_test undefined
)
   NAME       Anwesend
   NR         382
   NTFY_ORDER 50-Anwesenheit
   STATE      cmd_1
   TYPE       DOIF
   READINGS:
     2017-09-16 19:02:44   Device          th_ug_bm_Motion
     2017-09-16 19:01:55   cmd             1
     2017-09-16 19:01:55   cmd_event       th_ug_bm_Motion
     2017-09-16 19:01:55   cmd_nr          1
     2017-09-16 19:02:44   e_th_ug_bm_Motion_events motion: off,motionDuration: 65,noMotion
     2017-09-16 19:01:47   e_ug_eb_fk_events battery: ok,contact: closed (to vccu),closed,trigger_cnt: 240
     2017-09-16 19:01:55   state           cmd_1
   condition:
     0          EventDoIf('th_ug_bm_Motion',$hash,'motion',1)
     1          EventDoIf('ug_eb_fk',$hash,'closed',1)
   devices:
     0           th_ug_bm_Motion
     1           ug_eb_fk
     all         th_ug_bm_Motion ug_eb_fk
   do:
     0:
       0            set HomeStatus_test Zuhause
     1:
       0            set HomeStatus_test undefined
     2:
   helper:
     event      motion: off
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   th_ug_bm_Motion
     timerevent motion: off
     triggerDev th_ug_bm_Motion
     bm:
       DOIF_Attr:
         cnt        3
         dmx        0
         mAr
         mTS
         max        0
         tot        0
       DOIF_Notify:
         cnt        2248
         dmx        0
         mTS        16.09. 19:01:55
         max        51
         tot        570
         mAr:
           HASH(0x2565b38)
           HASH(0x2e22938)
       DOIF_Set:
         cnt        64
         dmx        0
         mAr
         mTS
         max        0
         tot        0
     timerevents:
       motion: off
       motionDuration: 65
       noMotion
     timereventsState:
       motion: off
       motionDuration: 65
       state: noMotion
     triggerEvents:
       motion: off
       motionDuration: 65
       noMotion
     triggerEventsState:
       motion: off
       motionDuration: 65
       state: noMotion
   internals:
   itimer:
   readings:
   regexp:
     0:
     1:
     all:
   state:
     STATE:
   trigger:
     all         th_ug_bm_Motion ug_eb_fk
Attributes:
   room       Anwesenheit
   selftrigger all
Titel: Antw:Frage zu DOIF und WAIT
Beitrag von: AndyMu am 16 September 2017, 19:09:56
Das event-on-change-reading habe ich wieder rausgenommen, dann nochmal in der Commandline
set HomeStatus_test undefined
eingegeben, jetzt hat komischerweise das DOIF gezogen.

Ich beobachte mal...
Titel: Antw:Frage zu DOIF und WAIT
Beitrag von: AndyMu am 16 September 2017, 19:24:09
Was ich eigentlich möchte:

Ich habe einen Bewegungsmelder sowie einen Türkontakt an der Haustüre.
Wenn jetzt die Haustüre auf- und wieder zugemacht wird, soll ein timer von 900 sec loslaufen, der sollte er durch eine Motion über den Bewegungsmelder nicht unterbrochen werden, den HomeStatus auf "KurzWeg" stellen soll.
Der BWM stellt jedesmal, wenn er ausgelöst wird, den HomStatus auf "Zuhause".
Titel: Antw:Frage zu DOIF und WAIT
Beitrag von: Ellert am 16 September 2017, 20:02:42
Habe ich das richtig verstanden?

Haustür auf, dann Haustür zu, Timer startet, nach Ablauf des Timers soll der set-Befehl "KurzWeg" ausgeführt werden.

Wenn "KurzWeg" gesetzt ist, soll bei erkannter Bewegung "Zuhause" gesetzt werden.
Titel: Antw:Frage zu DOIF und WAIT
Beitrag von: AndyMu am 16 September 2017, 20:10:32
Fast... wenn während des Timers eine Bewegung erkannt wird, soll der Timer beendet und HomeStatus auf "Zuhause" gesetzt bleiben.
Das "Tür auf" braucht nicht berücksichtigt werden, ein "closed" reicht natürlich.

Das DOIF zur Überprüfung von Motion im BWM hab ich so abgeändert, dass es nicht bei jedem motion den HomeStatus auf "Zuhause" setzt, sondern nur wenn er ungleich "Zuhause" ist.
Titel: Antw:Frage zu DOIF und WAIT
Beitrag von: AndyMu am 16 September 2017, 20:16:52
Ich glaub, darüber hab ich es jetzt hinbekommen:
Internals:
   DEF        ([th_ug_bm_Motion:"motion"] and [HomeStatus_test] ne "Zuhause")(
set HomeStatus_test Zuhause
)
DOELSEIF
([ug_eb_fk:"closed"])(
set HomeStatus_test undefined
)
   NAME       Anwesend
   NR         365
   NTFY_ORDER 50-Anwesend
   STATE      cmd_1
   TYPE       DOIF
   READINGS:
     2017-09-16 20:14:14   Device          HomeStatus_test
     2017-09-16 20:14:14   cmd             1
     2017-09-16 20:14:14   cmd_event       th_ug_bm_Motion
     2017-09-16 20:14:14   cmd_nr          1
     2017-09-16 20:14:14   e_HomeStatus_test_STATE Zuhause
     2017-09-16 20:14:14   e_HomeStatus_test_events Zuhause
     2017-09-16 20:14:14   e_th_ug_bm_Motion_events brightness: 0,motion: on (to vccu),motionCount: 5_next:240s,motion,trigger_cnt: 5
     2017-09-16 20:13:38   e_ug_eb_fk_events closed
     2017-09-16 20:14:14   state           cmd_1
   condition:
     0          EventDoIf('th_ug_bm_Motion',$hash,'motion',1) and InternalDoIf($hash,'HomeStatus_test','STATE') ne "Zuhause"
     1          EventDoIf('ug_eb_fk',$hash,'closed',1)
   devices:
     0           th_ug_bm_Motion HomeStatus_test
     1           ug_eb_fk
     all         th_ug_bm_Motion HomeStatus_test ug_eb_fk
   do:
     0:
       0            set HomeStatus_test Zuhause
     1:
       0            set HomeStatus_test undefined
     2:
   helper:
     event      Zuhause
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   th_ug_bm_Motion
     timerevent motion: on (to vccu)
     triggerDev HomeStatus_test
     bm:
       DOIF_Notify:
         cnt        317
         dmx        0
         mTS        16.09. 20:05:52
         max        50
         tot        149
         mAr:
           HASH(0x29b4ed0)
           HASH(0x29acf90)
       DOIF_Set:
         cnt        17
         dmx        0
         mAr
         mTS
         max        0
         tot        0
     timerevents:
       brightness: 0
       motion: on (to vccu)
       motionCount: 5_next:240s
       motion
       trigger_cnt: 5
     timereventsState:
       brightness: 0
       motion: on (to vccu)
       motionCount: 5_next:240s
       state: motion
       trigger_cnt: 5
     triggerEvents:
       Zuhause
     triggerEventsState:
       state: Zuhause
   internals:
     0           HomeStatus_test:STATE
     all         HomeStatus_test:STATE
   itimer:
   readings:
   regexp:
     0:
     1:
     all:
   state:
     STATE:
   trigger:
     all         th_ug_bm_Motion ug_eb_fk
Attributes:
   do         always
   room       Anwesenheit
   selftrigger all


Internals:
   DEF        ([HomeStatus_test:"undefined"])(
set HomeStatus_test KurzWeg
)
DOELSE
   NAME       Abwesend
   NR         367
   NTFY_ORDER 50-Abwesend
   STATE      cmd_2
   TYPE       DOIF
   READINGS:
     2017-09-16 20:14:14   Device          HomeStatus_test
     2017-09-16 20:05:52   cmd             2
     2017-09-16 20:05:52   cmd_event       HomeStatus_test
     2017-09-16 20:05:52   cmd_nr          2
     2017-09-16 20:14:14   e_HomeStatus_test_events Zuhause
     2017-09-16 18:14:58   mode            enable
     2017-09-16 20:05:52   state           cmd_2
     2017-09-16 20:14:14   wait_timer      no timer
   condition:
     0          EventDoIf('HomeStatus_test',$hash,'undefined',1)
   devices:
     0           HomeStatus_test
     all         HomeStatus_test
   do:
     0:
       0            set HomeStatus_test KurzWeg
     1:
       0
   helper:
     event      Zuhause
     globalinit 1
     last_timer 0
     sleepdevice HomeStatus_test
     sleepsubtimer 0
     sleeptimer -1
     timerdev   HomeStatus_test
     timerevent Zuhause
     triggerDev HomeStatus_test
     bm:
       DOIF_Attr:
         cnt        1
         dmx        0
         mAr
         mTS
         max        0
         tot        0
       DOIF_Notify:
         cnt        1892
         dmx        0
         mTS        16.09. 20:05:52
         max        18
         tot        127
         mAr:
           HASH(0x27a3ff8)
           HASH(0x27a34e0)
       DOIF_Set:
         cnt        28
         dmx        0
         mAr
         mTS
         max        0
         tot        0
     timerevents:
       Zuhause
     timereventsState:
       state: Zuhause
     triggerEvents:
       Zuhause
     triggerEventsState:
       state: Zuhause
   internals:
   itimer:
   readings:
   regexp:
     0:
     all:
   state:
     STATE:
   trigger:
     all         HomeStatus_test
Attributes:
   room       Anwesenheit
   wait       900


Brauch ich das "selftrigger all" Attribut eigentlich noch?
Titel: Antw:Frage zu DOIF und WAIT
Beitrag von: AndyMu am 16 September 2017, 20:19:15
Ich würde gerne noch den Status "undefined" vom HomeStatus wegbekommen... vielleicht über einen "Zwischen-Dummy"?
Titel: Antw:Frage zu DOIF und WAIT
Beitrag von: Ellert am 17 September 2017, 07:24:51
Eine recht zuvelässige Methode die Anwesendheit festzustellen, ist die Butzung von G-Tag über PRESENCE, das soll sogar Raum/Stockwerk bezogen funktionieren, ohne undefinierte Zustände.
Titel: Antw:Frage zu DOIF und WAIT
Beitrag von: AndyMu am 17 September 2017, 10:23:02
Hatte ich auch schon mal ausprobiert und dann wieder bleiben lassen.
Ich hatte die PebbleBee ausprobiert, aber da ist schon innerhalb des Zimmers der Kontakt zum BT-Dongle am Raspberry hinterm Fernseher abgerissen, wenn der Schlüsselanhänger in einer Tasche auf der anderen Seite des Zimmers war. Und ich bekomme meine Familie einfach nicht dazu, ihre Schlüssel am Schlüsselbrett aufzuhängen.
Titel: Antw:Frage zu DOIF und WAIT
Beitrag von: Rolfg am 17 September 2017, 10:51:01
Hallo,

ich habe mal einen etwas anderen Ansatz gerade ausprobiert. Ich habe auf den Türkontakt ein Watchdog gesetzt. Allerdings auf das open Event. Wenn dann nach x Zeit kein Bewegungsmeder:motion kommt setze Dummy auf abwesend.


Türkontakt:open.* 00:00:15 Bewegung:motion.* set dummy_Anwesend Abwesend;

Als Attribut bei Watchdog autoRestart 1

Und als Notify oder Doif. Wenn Bewegung erkannt und Dummy_Anwesend ungleich Anwesend setzte ihn auf Anwesend. Den Code muß du selber basteln. Ich würde halt auf open Triggern. Vielleicht kannst du ja damit was anfangen.

Gruß Rolf
Titel: Antw:Frage zu DOIF und WAIT
Beitrag von: AndyMu am 17 September 2017, 15:21:48
Ich hab es mir jetzt einfacher gemacht...

Erstmal ein DOIF, das loslegt sobald die Haustüre geschlossen wird:
([ug_eb_fk:"closed"])(
{fhem("delete AbwesendWAIT");
fhem("define AbwesendWAIT at +00:15:00 {fhem('set HomeStatus_test KurzWeg') }");
fhem("attr AbwesendWAIT room Anwesenheit")}
)
DOELSE


Dann, wenn der BWM etwas erkennt, löscht er das at wieder:
([th_ug_bm_Motion:"motion"])(
{fhem ("set HomeStatus_test Zuhause");
fhem ("delete AbwesendWAIT")}
)
DOELSE


Funktioniert grundsätzlich gut, ich bekomme aber Fehlermeldungen ins Log, wenn sowohl beim ersten als zweiten DOIF das AT beim "delete" nicht vorhanden ist.
Da jetzt noch eine Möglichkeit zu erkennen, ob es überhaupt existiert wäre toll.
Und dann noch beim "set HomeStatus..." vorher eine Abfrage, ob der Status nicht evtl. schon auf Zuhause steht.
Ich stehe etwas mit den unterschiedlichen Syntaxen in den Befehlsfolgen auf dem Kriegsfuß, bekomm da ein "if..." nicht zum Laufen.
Titel: Antw:Frage zu DOIF und WAIT / Anwesenheitserkennung über Türkontakt und Bewegungsmeld
Beitrag von: CoolTux am 17 September 2017, 15:34:28
Dein ganzer Ansatz ist großer Käse. Wie kommt man nur auf so ein Konstrukt wo doch die Commandref sowas von ausführlich ist.

([ug_eb_fk:"closed"]) (set HomeStatus_test:FILTER=STATE!=KurzWeg KurzWeg) DOELSEIF ([th_ug_bm_Motion:"motion"]) (set HomeStatus_test:FILTER=STATE!=Zuhause Zuhause)

attr wait 900

Wenn der Türkontakt ein closed liefert läuft ein Timer. Wird binnen 15min keine Bewegung ausgelöst wird HomeStatus auf KurzWeg gesetzt ansonsten wird HomeStatus auf Zuhause gesetzt.
Titel: Antw:Frage zu DOIF und WAIT / Anwesenheitserkennung über Türkontakt und Bewegungsmeld
Beitrag von: AndyMu am 17 September 2017, 15:45:13
Äh... wow.
Das ist es, und sogar ganz einfach zu lesen und zu verstehen!
Ich hab mich da anscheinend echt total verrannt, dazu kommt dann noch zuwenig Erfahrung mit der Optimierung z.B. mit den Filtern

Es kann alles so einfach sein, wenn man weiß was man zu machen hat...

Vielen Dank!
Titel: Antw:Frage zu DOIF und WAIT
Beitrag von: Ellert am 17 September 2017, 16:22:00
Zitat von: AndyMu am 17 September 2017, 15:21:48
Ich hab es mir jetzt einfacher gemacht...

Erstmal ein DOIF, das loslegt sobald die Haustüre geschlossen wird:
([ug_eb_fk:"closed"])(
{fhem("delete AbwesendWAIT");
fhem("define AbwesendWAIT at +00:15:00 {fhem('set HomeStatus_test KurzWeg') }");
fhem("attr AbwesendWAIT room Anwesenheit")}
)
DOELSE


Dann, wenn der BWM etwas erkennt, löscht er das at wieder:
([th_ug_bm_Motion:"motion"])(
{fhem ("set HomeStatus_test Zuhause");
fhem ("delete AbwesendWAIT")}
)
DOELSE


Funktioniert grundsätzlich gut, ich bekomme aber Fehlermeldungen ins Log, wenn sowohl beim ersten als zweiten DOIF das AT beim "delete" nicht vorhanden ist.
Da jetzt noch eine Möglichkeit zu erkennen, ob es überhaupt existiert wäre toll.
Und dann noch beim "set HomeStatus..." vorher eine Abfrage, ob der Status nicht evtl. schon auf Zuhause steht.
Ich stehe etwas mit den unterschiedlichen Syntaxen in den Befehlsfolgen auf dem Kriegsfuß, bekomm da ein "if..." nicht zum Laufen.
Du könntest ein benanntes sleep nehmen, das kannst Du über seinen Namen löschen, auch wenn es nicht mehr existiert, ohne Fehlermeldung, s.

https://fhem.de/commandref_DE.html#sleep
https://fhem.de/commandref_DE.html#DOIF_Ereignissteuerung_ueber_Auswertung_von_Events dort Alternative mit sleep
Titel: Antw:Frage zu DOIF und WAIT / Anwesenheitserkennung über Türkontakt und Bewegungsmeld
Beitrag von: AndyMu am 17 September 2017, 17:15:39
Zitat von: CoolTux am 17 September 2017, 15:34:28
Dein ganzer Ansatz ist großer Käse. Wie kommt man nur auf so ein Konstrukt wo doch die Commandref sowas von ausführlich ist.

([ug_eb_fk:"closed"]) (set HomeStatus_test:FILTER=STATE!=KurzWeg KurzWeg) DOELSEIF ([th_ug_bm_Motion:"motion"]) (set HomeStatus_test:FILTER=STATE!=Zuhause Zuhause)

attr wait 900

Wenn der Türkontakt ein closed liefert läuft ein Timer. Wird binnen 15min keine Bewegung ausgelöst wird HomeStatus auf KurzWeg gesetzt ansonsten wird HomeStatus auf Zuhause gesetzt.
Muss ich da noch das "do always" Attribut setzen?
Titel: Antw:Frage zu DOIF und WAIT
Beitrag von: AndyMu am 17 September 2017, 17:18:13
Zitat von: Ellert am 17 September 2017, 16:22:00
Du könntest ein benanntes sleep nehmen, das kannst Du über seinen Namen löschen, auch wenn es nicht mehr existiert, ohne Fehlermeldung, s.

https://fhem.de/commandref_DE.html#sleep
https://fhem.de/commandref_DE.html#DOIF_Ereignissteuerung_ueber_Auswertung_von_Events dort Alternative mit sleep
Ok, damit hatte ich mich noch nicht beschäftigt, sieht aber auch elegant aus.
Danke!
Titel: Antw:Frage zu DOIF und WAIT / Anwesenheitserkennung über Türkontakt und Bewegungsmeld
Beitrag von: CoolTux am 17 September 2017, 17:32:07
Zitat von: AndyMu am 17 September 2017, 17:15:39
Muss ich da noch das "do always" Attribut setzen?

Ohne jetzt weitere Voraussetzungen zu kennen sage ich mal nein. Wieso?
Du kommst oder gehst ja schließlich nur einmal.
Titel: Antw:Frage zu DOIF und WAIT / Anwesenheitserkennung über Türkontakt und Bewegungsmeld
Beitrag von: AndyMu am 03 Oktober 2017, 10:33:23
So, meine Anwesenheitssteuerung ist (in meinen Augen) sauber komprimiert und bezieht nun div. auslösende Ereignisse im Haus mit ein, um einen möglichst schnellen Wechsel auf "Zuhause" zu erreichen, falls die Haustüre geschlossen wird.
Dazu zählen das Schalten von Licht, Umschalten am Receiver, öffnen einiger Fenster (die ein potentieller Einbrecher nicht erreichen kann) und natürlich auch Bewegungsmelder. Beim Receiver wurde der Zeitraum 18:45 ausgeklammert, weil hier eine automatische Umschaltung des Programms passiert.

([ug_eb_fk] eq "closed")
(set HomeStatus:FILTER=STATE!=KurzWeg KurzWeg,set Marc:FILTER=STATE!=absent absent,set Eltern:FILTER=STATE!=absent absent)
DOELSEIF ((![18:44-18:46] and [SATReceiver:channel])
or [th_eg_bm_Motion] eq "motion"
or [SichereFenster]
or [":Btn"])
(set HomeStatus:FILTER=STATE!=Zuhause Zuhause,set Eltern:FILTER=STATE!=present present)
Titel: Antw:Frage zu DOIF und WAIT / Anwesenheitserkennung über Türkontakt und Bewegungsmeld
Beitrag von: AndyMu am 03 Oktober 2017, 12:10:55
Ich hab hier leider doch noch ein Thema...

Beim Bewegungsmelder ug_marc_bm möchte ich eine Aktion auslösen, sobald eine Bewegung erkannt wird.
Dafür habe ich ein eigenes DOIF erstellt:
([ug_marc_bm_Motion:"motion"])
(set HomeStatus:FILTER=STATE!=Zuhause Zuhause,set Marc:FILTER=STATE!=present present)
DOELSEIF ([ug_marc_bm_Motion:"noMotion"])
(set Marc:FILTER=STATE!=absent absent)

Das funktioniert soweit auch, im zweiten Fall soll, wenn der BM keine Bewegung mehr erkennt, nach x Sekunden der Status auf "absent" gesetzt werden.
Irgendwie aber startet cmd1, wenn der BM auf "noMotion" geht. Was übersehe ich?

Das list vom DOIF:
Internals:
   CFGFN
   DEF        ([ug_marc_bm_Motion:"motion"])
(set HomeStatus:FILTER=STATE!=Zuhause Zuhause,set Marc:FILTER=STATE!=present present)
DOELSEIF ([ug_marc_bm_Motion:"noMotion"])
(set Marc:FILTER=STATE!=absent absent)
   NAME       DOIF_SteuerungAnwesenheitMarc
   NR         813
   NTFY_ORDER 50-DOIF_SteuerungAnwesenheitMarc
   STATE      cmd_1
   TYPE       DOIF
   READINGS:
     2017-10-03 12:07:08   Device          ug_marc_bm_Motion
     2017-10-03 12:07:08   cmd             1
     2017-10-03 12:07:08   cmd_event       ug_marc_bm_Motion
     2017-10-03 12:07:08   cmd_nr          1
     2017-10-03 12:07:08   e_ug_marc_bm_Motion_events motion: off,motionDuration: 242,noMotion
     2017-10-03 12:07:08   state           cmd_1
   condition:
     0          EventDoIf('ug_marc_bm_Motion',$hash,'motion',1)
     1          EventDoIf('ug_marc_bm_Motion',$hash,'noMotion',1)
   devices:
     0           ug_marc_bm_Motion
     1           ug_marc_bm_Motion
     all         ug_marc_bm_Motion
   do:
     0:
       0          set HomeStatus:FILTER=STATE!=Zuhause Zuhause,set Marc:FILTER=STATE!=present present
     1:
       0          set Marc:FILTER=STATE!=absent absent
     2:
   helper:
     event      motion: off
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   ug_marc_bm_Motion
     timerevent motion: off
     triggerDev ug_marc_bm_Motion
     bm:
       DOIF_Attr:
         cnt        1
         dmx        0
         mAr
         mTS
         max        0
         tot        0
       DOIF_Notify:
         cnt        239
         dmx        0
         mTS        03.10. 12:07:08
         max        52
         tot        52
         mAr:
           HASH(0x4c06240)
           HASH(0x3b83fd8)
       DOIF_Set:
         cnt        37
         dmx        0
         mTS        03.10. 12:04:23
         max        337
         tot        337
         mAr:
           HASH(0x4c06240)
           DOIF_SteuerungAnwesenheitMarc
           cmd_1
     timerevents:
       motion: off
       motionDuration: 242
       noMotion
     timereventsState:
       motion: off
       motionDuration: 242
       state: noMotion
     triggerEvents:
       motion: off
       motionDuration: 242
       noMotion
     triggerEventsState:
       motion: off
       motionDuration: 242
       state: noMotion
   internals:
   itimer:
   readings:
   regexp:
     0:
     all:
   state:
     STATE:
   trigger:
     all         ug_marc_bm_Motion
Attributes:
   do         always
   room       Anwesenheit
   wait       0:60
Titel: Frage zu DOIF und WAIT / Anwesenheitserkennung über Türkontakt und Bewegungsmeld
Beitrag von: Rolfg am 03 Oktober 2017, 13:04:58
Hallo,
nur ein Versuch. Bei mir funktioniert das: ([ug_marc_bm_Motion:"motion"]) meistens auch nicht.
Ich schreibe das immer so: ([ug_marc_bm_Motion] eq "motion").
Vielleicht geht's.

Titel: Antw:Frage zu DOIF und WAIT / Anwesenheitserkennung über Türkontakt und Bewegungsmeld
Beitrag von: AndyMu am 03 Oktober 2017, 13:37:57
Ja, so funktioniert es... danke!
([ug_marc_bm_Motion:state] eq "motion")
(set HomeStatus:FILTER=STATE!=Zuhause Zuhause,set Marc:FILTER=STATE!=present present)
DOELSEIF ([ug_marc_bm_Motion] eq "noMotion")
(set Marc:FILTER=STATE!=absent absent)