Hauptmenü

Eingrenzung der Set-Befehle

Begonnen von Superposchi, 11 Juli 2021, 11:07:05

Vorheriges Thema - Nächstes Thema

Superposchi

Hallo, ich habe ein Problem, dass ich nicht ganz verstehe.

Ich erstelle ein DOIF. Dies funktioniert auch korrekt. Doch sobald ich es über den Room aufrufe kann ich mit dem Set-Befehl lediglich noch enable und disable auswählen.
Es fehlen alle anderen Set-Befehle wie Checkall oder cmd_1 etc.

Ich habe das DOIF schon neu erstellet um eventuell einen Namenskonflikt auszuschließen, doch das brachte auch keine Besserung.
Das DOIF funktioniert offenbar auch nicht, da die darin befindliche DEF nicht aufgeführt wird und es dauerhaft auf "Inizialized" steht.

Hier das List dazu:
Internals:
   .AttrList  disable:0,1 loglevel:0,1,2,3,4,5,6 notexist checkReadingEvent:0,1 addStateEvent:1,0 weekdays setList:textField-long readingList DOIF_Readings:textField-long event_Readings:textField-long uiTable:textField-long event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading
   CFGFN     
   DEF        [05:00|1]
(set ku_licht_schranklicht rgb 3EFF3E : off)
DOELSEIF [05:00|2]
(set ku_licht_schranklicht rgb FF00E2 : off)
DOELSEIF [05:00|3]
(set ku_licht_schranklicht rgb 0021FF : off)
DOELSEIF [05:00|4]
(set ku_licht_schranklicht rgb 3EFF3E : off)
DOELSEIF [05:00|5]
(set ku_licht_schranklicht rgb FF00E2 : off)
DOELSEIF [05:00|6]
(set ku_licht_schranklicht rgb 0021FF : off)
DOELSEIF [05:00|0]
(set ku_licht_schranklicht rgb FFD300 : off)
   FUUID      60eab267-f33f-793a-c1c1-c34de33a3f4877c2
   MODEL      Perl
   NAME       kuechenschrank_controls2
   NOTIFYDEV  global
   NR         248848
   NTFY_ORDER 50-kuechenschrank_controls2
   STATE      initialized
   TYPE       DOIF
   VERSION    24330 2021-04-24 21:09:16
   .attraggr:
   .attrminint:
   READINGS:
     2021-07-11 10:58:19   mode            enabled
     2021-07-11 10:58:19   state           initialized
   Regex:
     accu:
     collect:
   condition:
   helper:
     DEVFILTER  ^global$
     NOTIFYDEV  global
     globalinit 1
     last_timer 0
     sleeptimer -1
   perlblock:
   uiTable:
Attributes:
   alias      Einstellung Schranklicht
   group      Lampen
   room       Steuerung->Licht->Küche

Otto123

Syntax DOIF -> (Bedingung)(Ausführung)
Dein Syntax -> Bedingung (Ausführung)
ergo: Syntax grob - aber konsequent - falsch.
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

Superposchi

Also muss die Bedingung doch in Klammern geschrieben sein, so wie ich es sonst immer gemacht habe.

Habe sie nur weggelassen weil mir an anderer Stelle geantwortet wurde, dass bei Zeitangaben die Klammern entfallen könnten. Habe damals sogar extra noch deshalb nachgehakt gehabt weil es mir so unglaubwürdig vorkam.

Otto123

Ich würde immer zuerst der Doku vertrauen, da steht es so drin.
https://fhem.de/commandref_modular_DE.html#DOIF
Ob es davon abweichend anderen Syntax gibt oder ob es sich bei deinem Bezug um ein kommunikatives Missverständnis handelt weiß ich nicht.
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

Superposchi

geändert und funktioniert, Danke.

Damian

Zitat von: Superposchi am 11 Juli 2021, 12:50:57
geändert und funktioniert, Danke.

Es gibt verschiedene arten von Klammern, die je nach Anwendung unterschiedliche Bedeutung haben. Wer was wo gesagt hat, kann jetzt nicht nachvollziehen. Aber eins steht fest: eine Bedingung ohne Klammern gibt es im DOIF nicht.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Superposchi

War eine Fehlinterpretation von mir.
Ursprünglich hatte ich in einem anderen DOIF eine Bedingung mit doppelter Abfrage als (([Zeit]) and (Bedingung2)) wobei der erste Wert eine Zeit war.
Keine Ahnung wann und wer jedenfalls meinte jemand das die runden Klammern um die Zeit nicht nötig seien, es also besser ([Zeit] and (Bedingung2)) lauten sollte.
Daraus ist dann bei Wegfall der 2. Bedingung lediglich das [Zeit] als Bedingung des DOIFs geworden.
Hätte ich es in erster Schreibweise - die ja auch funktioniert - gelassen wäre beim Wegfall der zweiten Bedingung kein Problem aufgetreten.

Superposchi

Also mit den Klammern schaltet das DOIF jetzt so wie es soll. So ist es jedenfalls am STATE zu erkennen.
Leider wird das Command offenbar nicht ausgeführt, da die Farbanpassung die erfolgen soll nicht gesetzt wird.

Vielleicht fällt jemandem auf wo das Problem liegt. Eventuell hängt es ja mit dem ": off" zusammen.

hier das aktuelle List zum DOIF:
Internals:
   CFGFN     
   DEF        ([05:00|1])
(set ku_licht_schranklicht rgb 3EFF3E : off)
DOELSEIF ([05:00|2])
(set ku_licht_schranklicht rgb FF00E2 : off)
DOELSEIF ([05:00|3])
(set ku_licht_schranklicht rgb 0021FF : off)
DOELSEIF ([05:00|4])
(set ku_licht_schranklicht rgb 3EFF3E : off)
DOELSEIF ([05:00|5])
(set ku_licht_schranklicht rgb FF00E2 : off)
DOELSEIF ([05:00|6])
(set ku_licht_schranklicht rgb 0021FF : off)
DOELSEIF ([05:00|0])
(set ku_licht_schranklicht rgb FFD300 : off)
   FUUID      60eab267-f33f-793a-c1c1-c34de33a3f4877c2
   MODEL      FHEM
   NAME       kuechenschrank_controls
   NOTIFYDEV  global
   NR         248848
   NTFY_ORDER 50-kuechenschrank_controls2
   STATE      cmd_6
   TYPE       DOIF
   VERSION    24330 2021-04-24 21:09:16
   .attraggr:
   .attrminint:
   READINGS:
     2021-07-17 05:00:00   cmd             6
     2021-07-17 05:00:00   cmd_event       timer_6
     2021-07-17 05:00:00   cmd_nr          6
     2021-07-11 12:23:17   mode            enabled
     2021-07-17 05:00:00   state           cmd_6
     2021-07-17 05:00:00   timer_01_c01    18.07.2021 05:00:00|1
     2021-07-17 05:00:00   timer_02_c02    18.07.2021 05:00:00|2
     2021-07-17 05:00:00   timer_03_c03    18.07.2021 05:00:00|3
     2021-07-17 05:00:00   timer_04_c04    18.07.2021 05:00:00|4
     2021-07-17 05:00:00   timer_05_c05    18.07.2021 05:00:00|5
     2021-07-17 05:00:00   timer_06_c06    18.07.2021 05:00:00|6
     2021-07-17 05:00:00   timer_07_c07    18.07.2021 05:00:00
   Regex:
     accu:
     collect:
   attr:
     cmdState:
     waitdel:
   condition:
     0          ::DOIF_time_once($hash,0,$wday,"1")
     1          ::DOIF_time_once($hash,1,$wday,"2")
     2          ::DOIF_time_once($hash,2,$wday,"3")
     3          ::DOIF_time_once($hash,3,$wday,"4")
     4          ::DOIF_time_once($hash,4,$wday,"5")
     5          ::DOIF_time_once($hash,5,$wday,"6")
     6          ::DOIF_time_once($hash,6,$wday,"0")
   days:
     0          1
     1          2
     2          3
     3          4
     4          5
     5          6
   do:
     0:
       0          set ku_licht_schranklicht rgb 3EFF3E : off
     1:
       0          set ku_licht_schranklicht rgb FF00E2 : off
     2:
       0          set ku_licht_schranklicht rgb 0021FF : off
     3:
       0          set ku_licht_schranklicht rgb 3EFF3E : off
     4:
       0          set ku_licht_schranklicht rgb FF00E2 : off
     5:
       0          set ku_licht_schranklicht rgb 0021FF : off
     6:
       0          set ku_licht_schranklicht rgb FFD300 : off
     7:
   helper:
     DEVFILTER  ^global$
     NOTIFYDEV  global
     event      timer_6
     globalinit 1
     last_timer 7
     sleeptimer -1
     timerdev   
     timerevent timer_6
     triggerDev
     DOIF_eventa:
       cmd_nr: 6
       cmd: 6
       cmd_event: timer_6
       cmd_6
     DOIF_eventas:
       cmd_nr: 6
       cmd: 6
       cmd_event: timer_6
       state: cmd_6
     timerevents:
       timer_6
     timereventsState:
       timer_6
     triggerEvents:
       timer_6
     triggerEventsState:
       timer_6
   interval:
   intervalfunc:
   localtime:
     0          1626577200
     1          1626577200
     2          1626577200
     3          1626577200
     4          1626577200
     5          1626577200
     6          1626577200
   realtime:
     0          05:00:00
     1          05:00:00
     2          05:00:00
     3          05:00:00
     4          05:00:00
     5          05:00:00
     6          05:00:00
   time:
     0          05:00:00
     1          05:00:00
     2          05:00:00
     3          05:00:00
     4          05:00:00
     5          05:00:00
     6          05:00:00
   timeCond:
     0          0
     1          1
     2          2
     3          3
     4          4
     5          5
     6          6
   timer:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
     6          0
   timers:
     0           0
     1           1
     2           2
     3           3
     4           4
     5           5
     6           6
   triggertime:
     1626577200:
       localtime  1626577200
       hash:
   uiState:
   uiTable:
Attributes:
   alias      Einstellung Schranklicht
   group      Lampen
   room       Steuerung->Licht->Küche