DOIF nur einmal ausführen und warten

Begonnen von dennis_n, 28 August 2017, 22:30:00

Vorheriges Thema - Nächstes Thema

Otto123

Moin Dennis,

Du hast Die beiden Schalter or verknüpft und das or geklammert. Und du hast zwei Zeitbereiche mit or geklammert.

Aus meiner Sicht: Wenn einer der beiden Zeitbereiche wahr ist und einer der beiden Schalter "gedrückt" ist brüllt er Einsatz.  ;D

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

dennis_n

OK dann müsste das ja passen.

Ich möchte dass der Alarm auslöst, wenn entweder der Melder in der entsprechenden Zeit in der Ladeschale steht oder wenn in der gleichen Zeit der Button gedrückt wird.

Gruss
Dennis

Steffen

Guten Morgen!

Ich habe ein DOIF wo ich gerne die ersten zwei Doif nur max. mal zwei Mal in der Zeit "05:00-09:00" ausführen lassen möchte habe schon alles möglich versucht aber komme nicht so recht weiter...


(([Sensor_Bad:state] eq "open") and ([05:00-09:00]) and ([WetterProplanta:fc0_chOfRainDay] > 30))
(set TabletWohnzimmer screen on) (set TabletWohnzimmer screenBrightness 255) (set TabletWohnzimmer ttsMsg Guten Morgen. heute haben wir eine höchst Temperatur von [Wetter:fc1_high_c] grad. und eine Tiefstemperatur von [Wetter:fc1_low_c] grad. Regenschirm bitte einpacken denn wir haben eine regen verscheinlichkeit von [WetterProplanta:fc0_chOfRainDay] prozent. Ich schalte gleich noch Radio ein) (set EchoBadezimmer tunein s25166)
DOELSEIF (([Sensor_Bad:state] eq "open") and ([05:00-09:00]))
(set TabletWohnzimmer screenBrightness 255) (set TabletWohnzimmer ttsMsg Guten Morgen. heute haben wir eine höchst Temperatur von [Wetter:fc1_high_c] grad. und eine Tiefstemperatur von [Wetter:fc1_low_c] grad. die prognose für den Tag ist. [WetterProplanta:weather].)
DOELSEIF ([Sensor_Bad:state] eq "open")
(set TabletWohnzimmer screen on) (set TabletWohnzimmer screenBrightness 255)
DOELSEIF ([Sensor_Bad:state] eq "closed")
(set TabletWohnzimmer screenBrightness 1)
   NAME       GutenMoergen
   NR         165
   NTFY_ORDER 50-GutenMoergen
   STATE      initialized
   TYPE       DOIF
Attributes:
   repeatsame 1:1
   room       Logik
   wait       0,3,5,15


Gibt es diese Möglichkeit überhaupt oder ist das Doif dafür zu sehr verschachtelt?!?

Mfg Steffen

Per

Zitat von: Steffen am 27 Oktober 2017, 07:01:32nur max. mal zwei Mal in der Zeit "05:00-09:00" ausführen lassen
Je nachdem ob je oder zusammen max 2x entsprechende Variable(n) (Dummy, UserReading, DOIFReading o.ä.) setzen und diese zwischen 5 und 9 mit abfragen.
DOELSEIF (xxxx and ([?05:00-09:00] and [?Zähler < 2]) (set Zähler ([Zähler] + 1))
bzw.
DOELSEIF (xxxx and ([?09:00-05:00] or [?Zähler < 2])) (set Zähler ([Zähler] + 1))
je nachdem, ob was außerhalb von 5 bis 9 passieren soll.

Zwischen 9 und 5 wird/werden diese wieder resetet in einem extra Zweig
DOELSEIF ([0:00]) (set Zähler 0)
.

Otto123

Ich dachte das bekommt man mit der Kombination von repeat attributen hin?
https://fhem.de/commandref_DE.html#DOIF_repeatcmd

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