doif - Definition mehrere Bedingungen und einem Toggle

Begonnen von Fabiango, 03 Januar 2022, 16:48:51

Vorheriges Thema - Nächstes Thema

Pfriemler

Ich denke so. Versuch macht kluch.
Wie ich schon schrieb: Als Attribut beim DOIF einsetzen. Dafür gibt es direkt Auswahllisten in der Detail-Seite im unteren Bereich
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

Damian

ZitatEinzige Ausnahme: Hat das DOIF nur einen Trigger und Ausführungszweig, wird automatisch "do always" intern benutzt.

Das ist nicht korrekt. Wenn es nur einen Ausführungszweig gibt, dann wird auch nicht wiederholt, allerdings wird intern DOELSE-Fall gesetzt, für den Fall, dass die Bedingung nicht wahr wird, wird in cmd_2 gewechselt, danach ist wieder cmd_1 möglich.

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Fabiango

Hallo zusammen,

mithile der Definition von Otto und dem Hinweis zum Attribut von Pfriemler geht es nun wie gewünscht ohne den Status toggle bei der Steckdose zu bekommen. Vielen DANK an euch beiden.

Falls es noch jemanden weiterhelfen sollte hier das fertige DOIF

Internals:
   CFGFN     
   DEF        ([duTasterTC06:"Aktivieren"] and [?weihAllesAus] eq "Aus") (set weihAllesAus:FILTER=state!=on on)
DOELSEIF
([duTasterTC06:"Aktivieren"] and [?weihAllesAus] eq "Ein") (set weihAllesAus:FILTER=state!=off off)
   FUUID      61d46615-f33f-c1dd-3625-8750740502364eb8
   MODEL      FHEM
   NAME       di_FunktionTC06
   NOTIFYDEV  duTasterTC06,global
   NR         2428
   NTFY_ORDER 50-di_FunktionTC06
   STATE      cmd_2
   TYPE       DOIF
   VERSION    25386 2021-12-28 22:19:25
   READINGS:
     2022-01-04 16:27:07   Device          duTasterTC06
     2022-01-04 16:27:07   cmd             2
     2022-01-04 16:27:07   cmd_event       duTasterTC06
     2022-01-04 16:27:07   cmd_nr          2
     2022-01-04 16:27:07   e_duTasterTC06_events Aktivieren
     2022-01-04 16:22:12   mode            enabled
     2022-01-04 16:27:07   state           cmd_2
   Regex:
     accu:
     collect:
     cond:
       duTasterTC06:
         0:
           &STATE     ^duTasterTC06$
         1:
           &STATE     ^duTasterTC06$
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::EventDoIf('duTasterTC06',$hash,'Aktivieren',1) and ::InternalDoIf($hash,'weihAllesAus','STATE') eq "Aus"
     1          ::EventDoIf('duTasterTC06',$hash,'Aktivieren',1) and ::InternalDoIf($hash,'weihAllesAus','STATE') eq "Ein"
   do:
     0:
       0          set weihAllesAus:FILTER=state!=on on
     1:
       0          set weihAllesAus:FILTER=state!=off off
     2:
   helper:
     DEVFILTER  ^global$|^duTasterTC06$
     NOTIFYDEV  global|duTasterTC06
     event      Aktivieren
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   duTasterTC06
     timerevent Aktivieren
     triggerDev duTasterTC06
     timerevents:
       Aktivieren
     timereventsState:
       state: toggle
     triggerEvents:
       Aktivieren
     triggerEventsState:
       state: toggle
   hmccu:
   internals:
     all         weihAllesAus:STATE
   readings:
   trigger:
     all         duTasterTC06
   uiState:
   uiTable:
Attributes:
   do         always

Otto123

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

Damian

Zitat von: Otto123 am 04 Januar 2022, 16:41:42
do always ist ein Attribute des DOIF  ::)

wo denn sonst   ::)

Wer sich nicht mit do always rumschlagen will, der kann hier https://wiki.fhem.de/wiki/DOIF/Perl-Modus#F.C3.BCr_Umsteiger_vom_DOIF-FHEM-Modus nachlesen, was er tun kann. Dafür muss man aber anderen Kenntnisse mitbringen. Das Leben ist halt kein Zuckerschlecken :)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Pfriemler

Zitat von: Damian am 04 Januar 2022, 16:08:01
wenn es nur einen Ausführungszweig gibt, dann wird auch nicht wiederholt, allerdings wird intern DOELSE-Fall gesetzt, ...
Ach SO war das. Danke für die Hinweis, habe es oben korrigiert damit es nicht falsch irgendwo herumsteht.
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

Otto123

Zitat von: Damian am 04 Januar 2022, 17:05:14
wo denn sonst   ::)
Ich bin in die Falle getappt: Habe einfach auf antworten gedrückt und nicht gesehen, dass da schon noch ein paar Antworten waren  :-[ sorry
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

Pfriemler

Zitat von: Otto123 am 04 Januar 2022, 18:06:10
Ich bin in die Falle getappt: Habe einfach auf antworten gedrückt und nicht gesehen, dass da schon noch ein paar Antworten waren  :-[ sorry
Hmmm... passiert mir auch gelegentlich, wenn ich auf den letzten Post der Seite antworten will und übersehe, dass es noch Folgeseiten gibt ...  ;D
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."