Hauptmenü

cmdState hat keine Funktion

Begonnen von ThiemoSt, 14 September 2016, 12:09:28

Vorheriges Thema - Nächstes Thema

ThiemoSt

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.
FHEM, Ubuntu unter Proxmox (NUCi7)
FHT80B; CUL_FHTTK; HMUARTLGW; HUE; Netatmo; ENIGMA2; FRITZBOX; S7 und viele weitere.

Ellert

Warum verwendest Du Befehlssequenzen? Ohne wait, hat das keinen Nutzen.

Entweder Du verzichtest auf Sequenzen oder Du spendierst jeder Sequenz einen cmdState.

ThiemoSt

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.
FHEM, Ubuntu unter Proxmox (NUCi7)
FHT80B; CUL_FHTTK; HMUARTLGW; HUE; Netatmo; ENIGMA2; FRITZBOX; S7 und viele weitere.