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
Syntax DOIF -> (Bedingung)(Ausführung)
Dein Syntax -> Bedingung (Ausführung)
ergo: Syntax grob - aber konsequent - falsch.
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.
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.
geändert und funktioniert, Danke.
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.
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.
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