Hallo Zusammen,
ich habe bei einigen meiner DOIF's festgestellt das cmdState keine Auswirkungen auf state hat.
Hier ein List von einem betreffenden DOIF:
Internals:
DEF ([NN.xx.XX.SonneSonnenseite.dum] eq "Sonne" or [OG.te.WE.Outdoor:temperature] > [OG.wz.WE.Indoor:temperature]-2 and [NN.xx.XX.AutomatikRolladenSonnenseite.dum] eq "an")
(set OG.wz.RO.FensterLinks pct [OG.wz.RO.FensterLinks.dum.Oeffnungsgrad])
(set OG.wz.RO.FensterRechts pct [OG.wz.RO.FensterRechts.dum.Oeffnungsgrad])
DOELSEIF ##2
([NN.xx.XX.SonneSonnenseite.dum] eq "Schatten" and [NN.xx.XX.AutomatikRolladenSonnenseite.dum] eq "an")
(set OG.wz.RO.FensterLinks up)
(set OG.wz.RO.FensterRechts up)
NAME di.OG.wz.RO.Sonnenseite
NR 181
NTFY_ORDER 50-di.OG.wz.RO.Sonnenseite
STATE cmd_1
TYPE DOIF
Readings:
2016-09-14 11:58:00 Device OG.wz.WE.Indoor
2016-09-14 11:54:54 cmd 1.2
2016-09-14 11:54:54 cmd_event NN.xx.XX.AutomatikRolladenSonnenseite.dum
2016-09-14 11:54:54 cmd_nr 1
2016-09-14 11:54:54 cmd_seqnr 2
2016-09-14 11:55:03 e_NN.xx.XX.AutomatikRolladenSonnenseite.dum_STATE an
2016-09-14 11:57:59 e_OG.te.WE.Outdoor_temperature 27.1
2016-09-14 11:58:00 e_OG.wz.WE.Indoor_temperature 24.9
2016-09-14 11:54:54 state cmd_1
Condition:
0 InternalDoIf($hash,'NN.xx.XX.SonneSonnenseite.dum','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "Sonne" or ReadingValDoIf($hash,'OG.te.WE.Outdoor','temperature','','',AttrVal($hash->{NAME},'notexist',undef)) > ReadingValDoIf($hash,'OG.wz.WE.Indoor','temperature','','',AttrVal($hash->{NAME},'notexist',undef))-2 and InternalDoIf($hash,'NN.xx.XX.AutomatikRolladenSonnenseite.dum','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "an"
1 InternalDoIf($hash,'NN.xx.XX.SonneSonnenseite.dum','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "Schatten" and InternalDoIf($hash,'NN.xx.XX.AutomatikRolladenSonnenseite.dum','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "an"
Devices:
0 NN.xx.XX.SonneSonnenseite.dum OG.te.WE.Outdoor OG.wz.WE.Indoor NN.xx.XX.AutomatikRolladenSonnenseite.dum
1 NN.xx.XX.SonneSonnenseite.dum NN.xx.XX.AutomatikRolladenSonnenseite.dum
all NN.xx.XX.SonneSonnenseite.dum OG.te.WE.Outdoor OG.wz.WE.Indoor NN.xx.XX.AutomatikRolladenSonnenseite.dum
Do:
0:
0 set OG.wz.RO.FensterLinks pct [OG.wz.RO.FensterLinks.dum.Oeffnungsgrad]
1 set OG.wz.RO.FensterRechts pct [OG.wz.RO.FensterRechts.dum.Oeffnungsgrad]
1:
0 set OG.wz.RO.FensterLinks up
1 set OG.wz.RO.FensterRechts up
Helper:
event pressure: 1016.4
globalinit 1
last_timer 0
sleeptimer -1
timerdev OG.wz.WE.Indoor
timerevent pressure: 1016.4
triggerDev OG.wz.WE.Indoor
timerevents:
pressure: 1016.4
timereventsState:
pressure: 1016.4
triggerEvents:
pressure: 1016.4
triggerEventsState:
pressure: 1016.4
Internals:
0 NN.xx.XX.SonneSonnenseite.dum:STATE NN.xx.XX.AutomatikRolladenSonnenseite.dum:STATE
1 NN.xx.XX.SonneSonnenseite.dum:STATE NN.xx.XX.AutomatikRolladenSonnenseite.dum:STATE
all NN.xx.XX.SonneSonnenseite.dum:STATE NN.xx.XX.AutomatikRolladenSonnenseite.dum:STATE
Itimer:
Readings:
0 OG.te.WE.Outdoor:temperature OG.wz.WE.Indoor:temperature
all OG.te.WE.Outdoor:temperature OG.wz.WE.Indoor:temperature
Regexp:
0:
All:
State:
Trigger:
Attributes:
cmdState rolladenrunter | rolladenhoch
Wo kann ich noch nach dem Fehler suchen?
Es bringt auch keinen Unterschied ob ich zwischen der Pipe ein Leerzeichen habe oder nicht.
Warum verwendest Du Befehlssequenzen? Ohne wait, hat das keinen Nutzen.
Entweder Du verzichtest auf Sequenzen oder Du spendierst jeder Sequenz einen cmdState.
Gute Frage,
habe immer gedacht es wäre richtig so. Habe aber jetzt erst durch mehrmaliges durchlesen der Commandref und deinem Hinweis gesehen das eigentlich ein Komma als Trennzeichen reicht.
Nun klappt es natürlich 8)
Danke.