FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Christian72D am 18 April 2020, 10:33:21

Titel: DOIF WAIT wartet nicht
Beitrag von: Christian72D am 18 April 2020, 10:33:21
Ich habe ein Dummy erzeugt, um per Alexa mein 5 GHz WLAN abzuschalten, um "dumme" Smarthome Geräte ins WLAN zu bekommen.

Auf dieses Dummy hin soll ein DOIF reagieren, um das WLAN nach 30 Minuten automatisch wieder einzuschalten.

Eigentlich dachte ich, daß ich das mit dem wait Attribut richtig gesetzt hätte, aber das Dummy ändert seinen Status dann überhaupt nicht mehr.

DEF        ([5ghzwlan] eq "off") (set Fritz7490 wlan5 off, set Fritz4040 wlan5 off, set Fritz1750 wlan5 off,set Fritz7490 wlan5 on, set Fritz4040 wlan5 on, set Fritz1750 wlan5 on, set 5ghzwlan on)
   FUUID      5e6e76e3-f33f-23c8-3890-a92f58f2fb2032a7
   MODEL      FHEM
   NAME       di_5ghzwlan
   NOTIFYDEV  global,5ghzwlan
   NR         500
   NTFY_ORDER 50-di_5ghzwlan
   STATE      disabled
   TYPE       DOIF
   VERSION    21224 2020-02-18 18:45:49
   Helper:
     DBLOG:
       state:
         logdb:
           TIME       1587198514.89792
           VALUE      disabled
   READINGS:
     2020-04-18 10:27:21   Device          5ghzwlan
     2020-04-18 10:27:21   cmd             1
     2020-04-18 10:27:21   cmd_event       5ghzwlan
     2020-04-18 10:27:21   cmd_nr          1
     2020-04-18 10:27:21   e_5ghzwlan_STATE off
     2020-04-18 10:28:34   last_cmd        cmd_1
     2020-04-18 10:28:34   mode            disabled
     2020-04-18 10:28:34   state           disabled
   Regex:
     accu:
     cond:
       5ghzwlan:
         0:
           &STATE     ^5ghzwlan$
   attr:
     cmdState:
     wait:
       0:
         0
         1
         1
         1800
         5
         5
         1
     waitdel:
   condition:
     0          ::InternalDoIf($hash,'5ghzwlan','STATE') eq "off"
   do:
     0:
       0          set Fritz7490 wlan5 off, set Fritz4040 wlan5 off, set Fritz1750 wlan5 off,set Fritz7490 wlan5 on, set Fritz4040 wlan5 on, set Fritz1750 wlan5 on, set 5ghzwlan on
     1:
   helper:
     DEVFILTER  ^global$|^5ghzwlan$
     NOTIFYDEV  global|5ghzwlan
     event      off
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   5ghzwlan
     timerevent off
     triggerDev 5ghzwlan
     timerevents:
       off
       on
     timereventsState:
       state: off
     triggerEvents:
       off
       on
     triggerEventsState:
       state: off
   internals:
     all         5ghzwlan:STATE
   readings:
   trigger:
   uiState:
   uiTable:
Attributes:
   do         always
   event-on-change-reading .*
   room       Steuerung->DOIF,Arbeitszimmer
   wait       0,1,1,1800,5,5,1
Titel: Antw:DOIF WAIT wartet nicht
Beitrag von: Otto123 am 18 April 2020, 12:16:38
Hi,

das wait attribute funktioniert auf Befehlsblöcke (befehl1)(befehl2) nicht auf Befehlsequenzen (befehl1,befehl2)

Was Du willst geht nur so:
(set Fritz7490 wlan5 off)( set Fritz4040 wlan5 off)( set Fritz1750 wlan5 off)(set Fritz7490 wlan5 on)( set Fritz4040 wlan5 on)( set Fritz1750 wlan5 on)( set 5ghzwlan on)
Sieh auch https://fhem.de/commandref_DE.html#DOIF_wait

Gruß Otto
Titel: Antw:DOIF WAIT wartet nicht
Beitrag von: Nobbynews am 18 April 2020, 12:24:16
Könnte man die Befehlssequenz nicht ggf. durch
set Fritz.* wlan5 off
bzw.
set Fritz.* wlan5 on
ersetzen?
Titel: Antw:DOIF WAIT wartet nicht
Beitrag von: amenomade am 18 April 2020, 18:02:05
Nicht wenn man zwischen jedem Befehl warten will. Sonst ja