Frage zu DOIF oder schalten in Abhängigkeit von Temeratur

Begonnen von Hausierer, 09 Februar 2019, 14:24:23

Vorheriges Thema - Nächstes Thema

Hausierer

Hallo Leute,
ich glaube ich sehe gerade den Wald vor lauter Bäumen nicht. Bisher habe ich mich nur wenig mit DOIF beschäftigt und merke gerade auch warum  ;). Um bevor jemand schreibt, ja ich habe die Modulbeschreibung gelesen, aber nicht komplett verstanden.

Aufgabe: Ich möchte einen Schalter in Abhängigkeit von einer Temperatur auslösen (ab 20°).
Versuch: define Kino.Heizung.Ven.doif DOIF ([Kino_Klima:desired-temp]<20) (set Sonoff.Kino.Heizung on) DOELSE (set Sonoff.Kino.Heizung off)
Frage: Nicht nur das es nicht bei einer Temperatur ab 20° ein schaltet, ich finde auch keinen Ansatz wie ich die Funktion überprüfen kann.

Gibt es jemanden der mir einen kleinen Schupser in die richtige Richtung geben kann?
Lieben Dank

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

Hausierer

gerne...
Internals:
   CFGFN     
   DEF        ([Kino_Klima:desired-temp]<20) (set Sonoff.Kino.Heizung on) DOELSE (set Sonoff.Kino.Heizung off)
   FUUID      5c5db600-f33f-4782-3524-838ddc9b0891f159
   MODEL      FHEM
   NAME       Kino.Heizung.Ven.doif
   NR         99374
   NTFY_ORDER 50-Kino.Heizung.Ven.doif
   STATE      cmd_1
   TYPE       DOIF
   READINGS:
     2019-02-09 15:17:34   Device          Kino_Klima
     2019-02-08 19:32:37   cmd             1
     2019-02-08 19:32:37   cmd_event       Kino_Klima
     2019-02-08 19:32:37   cmd_nr          1
     2019-02-09 15:17:34   e_Kino_Klima_desired-temp 19.0
     2019-02-08 19:23:50   mode            enabled
     2019-02-08 19:32:37   state           cmd_1
   Regex:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'Kino_Klima','desired-temp')<20
   devices:
     0           Kino_Klima
     all         Kino_Klima
   do:
     0:
       0          set Sonoff.Kino.Heizung on
     1:
       0          set Sonoff.Kino.Heizung off
   helper:
     event      ValvePosition: 14,desired-temp: 19.0,measured-temp: 20.0
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   Kino_Klima
     timerevent ValvePosition: 14,desired-temp: 19.0,measured-temp: 20.0
     triggerDev Kino_Klima
     DOIF_eventas:
       cmd_nr: 1
       cmd: 1
       cmd_event: Kino_Klima
       state: cmd_1
     timerevents:
       ValvePosition: 14
       desired-temp: 19.0
       measured-temp: 20.0
     timereventsState:
       ValvePosition: 14
       desired-temp: 19.0
       measured-temp: 20.0
     triggerEvents:
       ValvePosition: 14
       desired-temp: 19.0
       measured-temp: 20.0
     triggerEventsState:
       ValvePosition: 14
       desired-temp: 19.0
       measured-temp: 20.0
   internals:
   itimer:
   readings:
     0           Kino_Klima:desired-temp
     all         Kino_Klima:desired-temp
   trigger:
   uiState:
   uiTable:
Attributes:
   room       1 - Kino


Internals:
   DEF        33AFD304
   FUUID      5c59bde3-f33f-4782-a6c0-57de863da1b8a796
   NAME       Kino_Klima
   NOTIFYDEV  global
   NR         390
   NTFY_ORDER 50-Kino_Klima
   STATE      T: 19.9 desired: 19.0 valve: 14
   TYPE       CUL_HM
   chanNo     04
   device     Kino.Heizung.HM
   READINGS:
     2019-02-09 14:01:27   CommandAccepted yes
     2019-01-08 18:03:12   R-boostPos      80 %
     2019-01-08 18:03:12   R-btnNoBckLight off
     2019-01-08 18:03:12   R-dayTemp       21 C
     2019-01-08 18:03:12   R-daylightSaveTime on
     2019-01-08 18:03:12   R-modePrioManu  all
     2019-01-08 18:03:12   R-modePrioParty all
     2019-01-08 18:03:12   R-nightTemp     17 C
     2019-01-08 18:03:12   R-noMinMax4Manu off
     2019-01-08 18:03:12   R-regAdaptive   on
     2019-01-08 18:03:12   R-showInfo      time
     2019-01-08 18:00:30   R-sign          off
     2019-01-08 18:03:12   R-tempOffset    -1.0K
     2019-01-08 18:03:12   R-valveOffsetRt 0 %
     2019-01-08 18:03:12   R-winOpnBoost   off
     2019-02-08 19:27:53   R_0_tempListSat  08:00 17.0 14:00 19.0 19:30 20.0 24:00 17.0
     2019-02-08 19:27:53   R_1_tempListSun  08:00 17.0 12:00 19.0 19:30 20.0 24:00 17.0
     2019-02-08 19:27:53   R_2_tempListMon  15:00 17.0 15:00 18.0 21:00 18.0 24:00 17.0
     2019-02-08 19:27:53   R_3_tempListTue  15:00 17.0 15:00 18.0 19:00 18.0 24:00 17.0
     2019-02-08 19:27:53   R_4_tempListWed  15:00 17.0 19:00 20.0 22:30 21.0 24:00 17.0
     2019-02-08 19:27:53   R_5_tempListThu  15:00 17.0 18:00 17.0 21:00 19.0 24:00 17.0
     2019-02-08 19:27:53   R_6_tempListFri  15:00 17.0 18:00 17.0 21:00 19.0 24:00 17.0
     2019-02-08 19:27:53   R_tempList_State verified
     2019-02-09 15:20:20   ValvePosition   14
     2019-02-09 15:20:20   boostTime       -
     2019-02-09 15:20:20   controlMode     manual
     2019-02-09 15:20:20   desired-temp    19.0
     2019-02-09 15:20:20   measured-temp   19.9
     2019-02-09 15:20:20   partyEnd        -
     2019-02-09 15:20:20   partyStart      -
     2019-02-09 15:20:20   partyTemp       -
     2019-02-09 14:01:27   recentStateType ack
     2019-02-09 15:20:20   state           T: 19.9 desired: 19.0 valve: 14
   helper:
     peerIDsRaw ,00000000
     regLst     ,1,7
     expert:
       def        1
       det        0
       raw        0
       tpl        1
     regCollect:
     role:
       chn        1
     shRegR:
       07         00
     shadowReg:
     tmpl:
Attributes:
   event-on-update-reading desired-temp,measured-temp,ValvePosition
   fm_type    temp,desiredtemp,tempbutton,actuators
   group      Heizung
   model      HM-CC-RT-DN
   peerIDs    00000000,
   room       1 - Kino

Otto123

#3
Also ich denke, es läuft alles gut:
ZitatREADINGS:
     2019-02-09 15:17:34   Device          Kino_Klima
     2019-02-08 19:32:37   cmd             1
     2019-02-08 19:32:37   cmd_event       Kino_Klima
     2019-02-08 19:32:37   cmd_nr          1
     2019-02-09 15:17:34   e_Kino_Klima_desired-temp 19.0
     2019-02-08 19:23:50   mode            enabled
     2019-02-08 19:32:37   state           cmd_1
Er hat gestern 19:32 gemerkt das Du 19.0 gesetzt hast (kleiner 20) und reagiert -> cmd_1

Was findest Du läuft falsch?
Ich verstehe nicht ganz was Du erreichen willst: Du steuerst einen Sonoff Schalter in Abhängigkeit der Solltemperatur eines (unbeteilgten dritten?) Thermostaten?
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

amenomade

Da seit gestern 19:32 Uhr das DOIF schon auf cmd_1 ist, hat das letzte Event mit desired-temp 19 dann nicht geschaltet, das ist normal.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Hausierer

ja schon, wenn ich aber auf 21° schalte passiert auch nichts....
Internals:
   CFGFN     
   DEF        ([Kino_Klima:desired-temp]<20) (set Sonoff.Kino.Heizung on) DOELSE (set Sonoff.Kino.Heizung off)
   FUUID      5c5db600-f33f-4782-3524-838ddc9b0891f159
   MODEL      FHEM
   NAME       Kino.Heizung.Ven.doif
   NR         99374
   NTFY_ORDER 50-Kino.Heizung.Ven.doif
   STATE      cmd_2
   TYPE       DOIF
   READINGS:
     2019-02-09 18:49:12   Device          Kino_Klima
     2019-02-09 18:49:12   cmd             2
     2019-02-09 18:49:12   cmd_event       Kino_Klima
     2019-02-09 18:49:12   cmd_nr          2
     2019-02-09 18:49:12   e_Kino_Klima_desired-temp 21.0
     2019-02-08 19:23:50   mode            enabled
     2019-02-09 18:49:12   state           cmd_2
   Regex:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'Kino_Klima','desired-temp')<20
   devices:
     0           Kino_Klima
     all         Kino_Klima
   do:
     0:
       0          set Sonoff.Kino.Heizung on
     1:
       0          set Sonoff.Kino.Heizung off
   helper:
     event      desired-temp: 21.0
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   Kino_Klima
     timerevent desired-temp: 21.0
     triggerDev Kino_Klima
     DOIF_eventas:
       cmd_nr: 2
       cmd: 2
       cmd_event: Kino_Klima
       state: cmd_2
     timerevents:
       desired-temp: 21.0
     timereventsState:
       desired-temp: 21.0
     triggerEvents:
       desired-temp: 21.0
     triggerEventsState:
       desired-temp: 21.0
   internals:
   itimer:
   readings:
     0           Kino_Klima:desired-temp
     all         Kino_Klima:desired-temp
   trigger:
   uiState:
   uiTable:
Attributes:
   room       1 - Kino


Internals:
   DEF        33AFD304
   FUUID      5c59bde3-f33f-4782-a6c0-57de863da1b8a796
   NAME       Kino_Klima
   NOTIFYDEV  global
   NR         390
   NTFY_ORDER 50-Kino_Klima
   STATE      T: 18.9 desired: 21.0 valve: 35
   TYPE       CUL_HM
   chanNo     04
   device     Kino.Heizung.HM
   READINGS:
     2019-02-09 18:49:12   CommandAccepted yes
     2019-01-08 18:03:12   R-boostPos      80 %
     2019-01-08 18:03:12   R-btnNoBckLight off
     2019-01-08 18:03:12   R-dayTemp       21 C
     2019-01-08 18:03:12   R-daylightSaveTime on
     2019-01-08 18:03:12   R-modePrioManu  all
     2019-01-08 18:03:12   R-modePrioParty all
     2019-01-08 18:03:12   R-nightTemp     17 C
     2019-01-08 18:03:12   R-noMinMax4Manu off
     2019-01-08 18:03:12   R-regAdaptive   on
     2019-01-08 18:03:12   R-showInfo      time
     2019-01-08 18:00:30   R-sign          off
     2019-01-08 18:03:12   R-tempOffset    -1.0K
     2019-01-08 18:03:12   R-valveOffsetRt 0 %
     2019-01-08 18:03:12   R-winOpnBoost   off
     2019-02-08 19:27:53   R_0_tempListSat  08:00 17.0 14:00 19.0 19:30 20.0 24:00 17.0
     2019-02-08 19:27:53   R_1_tempListSun  08:00 17.0 12:00 19.0 19:30 20.0 24:00 17.0
     2019-02-08 19:27:53   R_2_tempListMon  15:00 17.0 15:00 18.0 21:00 18.0 24:00 17.0
     2019-02-08 19:27:53   R_3_tempListTue  15:00 17.0 15:00 18.0 19:00 18.0 24:00 17.0
     2019-02-08 19:27:53   R_4_tempListWed  15:00 17.0 19:00 20.0 22:30 21.0 24:00 17.0
     2019-02-08 19:27:53   R_5_tempListThu  15:00 17.0 18:00 17.0 21:00 19.0 24:00 17.0
     2019-02-08 19:27:53   R_6_tempListFri  15:00 17.0 18:00 17.0 21:00 19.0 24:00 17.0
     2019-02-08 19:27:53   R_tempList_State verified
     2019-02-09 18:49:11   ValvePosition   35
     2019-02-09 18:49:12   boostTime       -
     2019-02-09 18:49:12   controlMode     manual
     2019-02-09 18:49:12   desired-temp    21.0
     2019-02-09 18:49:11   measured-temp   18.9
     2019-02-09 18:49:12   partyEnd        -
     2019-02-09 18:49:12   partyStart      -
     2019-02-09 18:49:12   partyTemp       -
     2019-02-09 18:49:12   recentStateType ack
     2019-02-09 18:49:12   state           T: 18.9 desired: 21.0 valve: 35
   helper:
     peerIDsRaw ,00000000
     regLst     ,1,7
     expert:
       def        1
       det        0
       raw        0
       tpl        1
     regCollect:
     role:
       chn        1
     shRegR:
       07         00
     shadowReg:
     tmpl:
Attributes:
   event-on-update-reading desired-temp,measured-temp,ValvePosition
   fm_type    temp,desiredtemp,tempbutton,actuators
   group      Heizung
   model      HM-CC-RT-DN
   peerIDs    00000000,
   room       1 - Kino


Otto123

finde ich nicht:
Zitat2019-02-09 18:49:12   cmd             2
     2019-02-09 18:49:12   cmd_event       Kino_Klima
     2019-02-09 18:49:12   cmd_nr          2
     2019-02-09 18:49:12   e_Kino_Klima_desired-temp 21.0
er schaltet gleichzeitig.

Vielleicht funktioniert einfach Sonoff.Kino.Heizung nicht wie Du denkst?

Was passiert denn bei set Sonoff.Kino.Heizung on oder off ?
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

Hausierer

ich schäme mich gerade. set Sonoff.Kino.Heizung on oder off hatte ich natürlich schon vorher probiert.
Ich habe einfach nur ">" und "<" verwechselt. wie kann man so blöd sein....
Immerhin habe ich bei der Fehlersuche gelernt wie DOIF funktioniert bzw. das ich mit cmd 1 oder CMD 2 ablesen kann in welchem Zustand es sich befindet. Und damit natürlich auch sehen kann das es arbeitet.
@ Otto123: Trotzdem vielen Dank für Deine Mühe