Hauptmenü

DOIF WAIT wartet nicht

Begonnen von Christian72D, 18 April 2020, 10:33:21

Vorheriges Thema - Nächstes Thema

Christian72D

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

Otto123

#1
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
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

Nobbynews

Könnte man die Befehlssequenz nicht ggf. durch
set Fritz.* wlan5 off
bzw.
set Fritz.* wlan5 on
ersetzen?

amenomade

Nicht wenn man zwischen jedem Befehl warten will. Sonst ja
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus