[gelöst] doif bei reading update

Begonnen von onkel-tobi, 15 Juni 2019, 10:21:28

Vorheriges Thema - Nächstes Thema

onkel-tobi

Hi zusammen,

stehe irgendwie auf dem Schlauch bei der Einrichtung eines doifs.

Ich habe 3 Bewegungsmelder:
- og_fl_mo1
- og_fl_mo2
- dg_fl_mo1

Diese 3 devices sind via mqtt2 eingebunden, der status ist immer on, bei auslösen wird das reading state aber dann aktualisiert.

Sprich ich möchte auslösen, wenn das reading state aktualisiert wird. Hier habe ich jetzt einiges ausprobier (event-on-update-reading usw) und njtze aktuell:

Internals:
   CFGFN      FHEM/anwesenheit_neu.cfg
   DEF        ([19:15-06:59] and (["^og_fl_mo_:state"] or [dg_sz_mo1:state])) (set dg_sz_led on) (set dg_sz_led off)
   FUUID      5c5dae9d-f33f-d748-dd54-e016520fa994abd3
   MODEL      FHEM
   NAME       di_og_fl_li
   NR         901
   NTFY_ORDER 50-di_og_fl_li
   STATE      initialized
   TYPE       DOIF
   VERSION    19303 2019-05-01 08:47:16
   READINGS:
     2019-06-14 23:19:05   cmd             0
     2019-06-14 23:19:05   mode            enabled
     2019-06-14 23:19:05   state           initialized
     2019-06-15 09:32:47   timer_01_c01    15.06.2019 19:15:00
     2019-06-15 09:32:47   timer_02_c01    16.06.2019 06:59:00
   Regex:
     accu:
     cond:
       :
         0:
           "^og_fl_mo_:state" ^og_fl_mo_:state
   attr:
     wait:
       0:
         0
         112
   condition:
     0          ::DOIF_time($hash,0,1,$wday,$hms) and (::EventDoIf('^og_fl_mo_',$hash,'state',0) or ::ReadingValDoIf($hash,'dg_sz_mo1','state'))
   days:
   devices:
     0           dg_sz_mo1
     all         dg_sz_mo1
   do:
     0:
       0          set dg_sz_led on
       1          set dg_sz_led off
     1:
   helper:
     globalinit 1
     last_timer 2
     sleeptimer -1
   interval:
     0          -1
     1          0
   intervalfunc:
   itimer:
   localtime:
     0          1560618900
     1          1560661140
   perlblock:
   readings:
     0           dg_sz_mo1:state
     all         dg_sz_mo1:state
   realtime:
     0          19:15:00
     1          06:59:00
   time:
     0          19:15:00
     1          06:59:00
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
     0           0  1
   triggertime:
     1560618900:
       localtime  1560618900
       hash:
     1560661140:
       localtime  1560661140
       hash:
   uiState:
   uiTable:
Attributes:
   do         always
   event-on-update-reading state
   wait       0,112


Hat jemand von eich noch einen Tipp für mich?

Danke & Gruß,
Tobi

mBielemeier

Hallo Tobi,

ohne dass ich es getestet habe: muss nicht zwischen (set dg_sz_led on) (set dg_sz_led off) ein DOELSE ?

Und in ["^og_fl_mo_:state"] ist der letzte Unterstrich zu viel, da deine Devices auf mo1 und mo2 enden.

Viele Grüße
Manfred
FHEM 6.1 Raspberry 4, CUL868+CUL433 auf ESP8266-Basis, FS20, IT-Steckdosen, ESP8266-MQTT, Zigbee, Shelly

Otto123

Moin,
da fehlt kein DOELSE ganz unten steht ja  wait       0,112. Also das Licht geht für 112 Sekunden an :)

Aber mit dem Rest hast Du Recht es muss wenn dann ["^og_fl_mo:state"] heißen.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

onkel-tobi

Danke eich beiden, peinlich...
Immerhin scheine  ich es in der Theorie verstanden zu haben  :)