[gelöst] Rolladensteuerung über DOIF unzuverlässig / funktioniert nur ...

Begonnen von heiko.ne, 30 Juli 2017, 08:14:01

Vorheriges Thema - Nächstes Thema

heiko.ne

Guten Morgen,

ich habe eine Frage dem DOIF, dass ich zur Steuerung von drei Rolladen verwende. Dabei handelt es sich um folgenden Devices:

  • Wohnzimmer_Rolladen_Fenster
  • Wohnzimmer_Rolladen_Tuer_links
  • Wohnzimmer_Rolladen_Tuer_rechts

Die Definitionen der Devices finden sich Anhang.

Dabei sollen per DOIF das Fenster Rollo mittels "twilight" jeden Abend runter gefahren werden und jeden Morgen hochgefahren werden.
Die Türen-Rollos sollen dagegen nur automatisch runter fahren, wenn die Außentemperatur kleiner 10°C ist, aber in jedem Fall auch morgens wieder hochfahren.

Das Problem ist nun, dass es merkwürdigerweise nur bei dem Fenster-Rollo wundebar funktioniert.
Die Rolladen der Türen fahren hingegen am Morgen nicht hoch. Nur einmal konnte ich bisher beobachten, dass es funktioniert hat.

Verstehe ich leider gar nicht, da ich ja bis auf die Temperaturgrenze die gleichen DOIF-Definitionen verwende.

Dazu habe ich die folgenden DOIFs angelegt:
Wohnzimmer_Rolladen_Fenster:

Internals:
   DEF        ([{twilight("Tageslicht","sr_indoor","6:00","9:00")}])
   (set Wohnzimmer_Rolladen_Fenster off)
DOELSEIF ([{twilight("Tageslicht","ss_indoor","19:00","22:30")}] and [TH_Sensor_1:temperature] < 99) (set Wohnzimmer_Rolladen_Fenster on)
   NAME       DOIF_Wohnzimmer_Rolladen_Fenster
   NR         206
   NTFY_ORDER 50-Rolladen_Wohnzimmer_Fenster
   STATE      cmd_1
   TYPE       DOIF
   READINGS:
     2017-07-30 08:02:49   Device          TH_Sensor_1
     2017-07-30 06:00:00   cmd             1
     2017-07-30 06:00:00   cmd_event       timer_1
     2017-07-30 06:00:00   cmd_nr          1
     2017-07-30 08:02:49   e_TH_Sensor_1_temperature 22.1
     2017-07-27 06:47:17   mode            enable
     2017-07-30 06:00:00   state           cmd_1
     2017-07-30 06:00:00   timer_01_c01    31.07.2017 06:00:00
     2017-07-29 21:40:54   timer_02_c02    30.07.2017 21:40:54
   condition:
     0          DOIF_time_once($hash,0,$wday)
     1          DOIF_time_once($hash,1,$wday) and ReadingValDoIf($hash,'TH_Sensor_1','temperature') < 99
   days:
   devices:
     1           TH_Sensor_1
     all         TH_Sensor_1
   do:
     0:
       0          set Wohnzimmer_Rolladen_Fenster off
     1:
       0          set Wohnzimmer_Rolladen_Fenster on
     2:
   helper:
     event      battery: ok,humidity: 73,T: 22.1 H: 73,temperature: 22.1,statTemperatureDayMin: 21.4,statTemperatureDayAvg: 21.9,statTemperatureDayMax: 22.7,statTemperatureMonthMin: 7.8,statTemperatureMonthAvg: 19.6,statTemperatureMonthMax: 35.7,statTemperatureYearMin: -3.3,statTemperatureYearAvg: 15.0,statTemperatureYearMax: 37.0,dewpoint: 17.0
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev
     timerevent timer_1
     triggerDev TH_Sensor_1
     timerevents:
       timer_1
     timereventsState:
       battery: ok
       humidity: 74
       state: T: 21.7 H: 74
       temperature: 21.7
       statTemperatureDayMin: 21.5
       statTemperatureDayAvg: 22.1
       statTemperatureDayMax: 22.7
       statTemperatureMonthMin: 7.8
       statTemperatureMonthAvg: 19.6
       statTemperatureMonthMax: 35.7
       statTemperatureYearMin: -3.3
       statTemperatureYearAvg: 15.0
       statTemperatureYearMax: 37.0
       dewpoint: 16.9
     triggerEvents:
       battery: ok
       humidity: 73
       T: 22.1 H: 73
       temperature: 22.1
       statTemperatureDayMin: 21.4
       statTemperatureDayAvg: 21.9
       statTemperatureDayMax: 22.7
       statTemperatureMonthMin: 7.8
       statTemperatureMonthAvg: 19.6
       statTemperatureMonthMax: 35.7
       statTemperatureYearMin: -3.3
       statTemperatureYearAvg: 15.0
       statTemperatureYearMax: 37.0
       dewpoint: 17.0
     triggerEventsState:
       battery: ok
       humidity: 73
       state: T: 22.1 H: 73
       temperature: 22.1
       statTemperatureDayMin: 21.4
       statTemperatureDayAvg: 21.9
       statTemperatureDayMax: 22.7
       statTemperatureMonthMin: 7.8
       statTemperatureMonthAvg: 19.6
       statTemperatureMonthMax: 35.7
       statTemperatureYearMin: -3.3
       statTemperatureYearAvg: 15.0
       statTemperatureYearMax: 37.0
       dewpoint: 17.0
   internals:
   interval:
   itimer:
   localtime:
     0          1501473600
     1          1501443654
   readings:
     1           TH_Sensor_1:temperature
     all         TH_Sensor_1:temperature
   realtime:
     0          06:00:00
     1          21:40:54
   regexp:
     0:
     1:
     all:
   state:
     STATE:
   time:
     0          {twilight("Tageslicht","sr_indoor","6:00","9:00")}
     1          {twilight("Tageslicht","ss_indoor","19:00","22:30")}
   timeCond:
     0          0
     1          1
   timer:
     0          0
     1          0
   timers:
     0           0
     1           1
   trigger:
   triggertime:
     1501443654:
       localtime  1501443654
       hash:
     1501473600:
       localtime  1501473600
       hash:
Attributes:
   group      Rolladen
   room       TEST


Wohnzimmer_Rolladen_Tuer_links:

Internals:
   DEF        ([{twilight("Tageslicht","sr_indoor","6:00","9:00")}])
   (set Wohnzimmer_Rolladen_Tuer_links off)
DOELSEIF ([{twilight("Tageslicht","ss_indoor","19:00","22:30")}] and [TH_Sensor_1:temperature] < 10) (set Wohnzimmer_Rolladen_Tuer_links on)
   NAME       DOIF_Wohnzimmer_Rolladen_Tuer_links
   NR         211
   NTFY_ORDER 50-Rolladen_Wohnzimmer_Tuer_links
   STATE      cmd_1
   TYPE       DOIF
   READINGS:
     2017-07-30 08:02:49   Device          TH_Sensor_1
     2017-07-27 06:46:20   cmd             1
     2017-07-27 06:46:20   cmd_event       set_cmd_1
     2017-07-27 06:46:20   cmd_nr          1
     2017-07-30 08:02:49   e_TH_Sensor_1_temperature 22.1
     2017-07-27 06:46:57   mode            enable
     2017-07-27 06:46:20   state           cmd_1
     2017-07-30 06:00:00   timer_01_c01    31.07.2017 06:00:00
     2017-07-29 21:40:54   timer_02_c02    30.07.2017 21:40:54
   condition:
     0          DOIF_time_once($hash,0,$wday)
     1          DOIF_time_once($hash,1,$wday) and ReadingValDoIf($hash,'TH_Sensor_1','temperature') < 10
   days:
   devices:
     1           TH_Sensor_1
     all         TH_Sensor_1
   do:
     0:
       0          set Wohnzimmer_Rolladen_Tuer_links off
     1:
       0          set Wohnzimmer_Rolladen_Tuer_links on
     2:
   helper:
     event      battery: ok,humidity: 73,T: 22.1 H: 73,temperature: 22.1,statTemperatureDayMin: 21.4,statTemperatureDayAvg: 21.9,statTemperatureDayMax: 22.7,statTemperatureMonthMin: 7.8,statTemperatureMonthAvg: 19.6,statTemperatureMonthMax: 35.7,statTemperatureYearMin: -3.3,statTemperatureYearAvg: 15.0,statTemperatureYearMax: 37.0,dewpoint: 17.0
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev
     timerevent timer_1
     triggerDev TH_Sensor_1
     timerevents:
       timer_1
     timereventsState:
       battery: ok
       humidity: 74
       state: T: 21.7 H: 74
       temperature: 21.7
       statTemperatureDayMin: 21.5
       statTemperatureDayAvg: 22.1
       statTemperatureDayMax: 22.7
       statTemperatureMonthMin: 7.8
       statTemperatureMonthAvg: 19.6
       statTemperatureMonthMax: 35.7
       statTemperatureYearMin: -3.3
       statTemperatureYearAvg: 15.0
       statTemperatureYearMax: 37.0
       dewpoint: 16.9
     triggerEvents:
       battery: ok
       humidity: 73
       T: 22.1 H: 73
       temperature: 22.1
       statTemperatureDayMin: 21.4
       statTemperatureDayAvg: 21.9
       statTemperatureDayMax: 22.7
       statTemperatureMonthMin: 7.8
       statTemperatureMonthAvg: 19.6
       statTemperatureMonthMax: 35.7
       statTemperatureYearMin: -3.3
       statTemperatureYearAvg: 15.0
       statTemperatureYearMax: 37.0
       dewpoint: 17.0
     triggerEventsState:
       battery: ok
       humidity: 73
       state: T: 22.1 H: 73
       temperature: 22.1
       statTemperatureDayMin: 21.4
       statTemperatureDayAvg: 21.9
       statTemperatureDayMax: 22.7
       statTemperatureMonthMin: 7.8
       statTemperatureMonthAvg: 19.6
       statTemperatureMonthMax: 35.7
       statTemperatureYearMin: -3.3
       statTemperatureYearAvg: 15.0
       statTemperatureYearMax: 37.0
       dewpoint: 17.0
   internals:
   interval:
   itimer:
   localtime:
     0          1501473600
     1          1501443654
   readings:
     1           TH_Sensor_1:temperature
     all         TH_Sensor_1:temperature
   realtime:
     0          06:00:00
     1          21:40:54
   regexp:
     0:
     1:
     all:
   state:
     STATE:
   time:
     0          {twilight("Tageslicht","sr_indoor","6:00","9:00")}
     1          {twilight("Tageslicht","ss_indoor","19:00","22:30")}
   timeCond:
     0          0
     1          1
   timer:
     0          0
     1          0
   timers:
     0           0
     1           1
   trigger:
   triggertime:
     1501443654:
       localtime  1501443654
       hash:
     1501473600:
       localtime  1501473600
       hash:
Attributes:
   group      Rolladen
   room       TEST
   verbose    5


Wohnzimmer_Rolladen_Tuer_rechts

Internals:
   DEF        ([{twilight("Tageslicht","sr_indoor","6:00","9:00")}])
   (set Wohnzimmer_Rolladen_Tuer_rechts off)
DOELSEIF ([{twilight("Tageslicht","ss_indoor","19:00","22:30")}] and [TH_Sensor_1:temperature] < 10) (set Wohnzimmer_Rolladen_Tuer_rechts on)
   NAME       DOIF_Wohnzimmer_Rolladen_Tuer_rechts
   NR         212
   NTFY_ORDER 50-Rolladen_Wohnzimmer_Tuer_rechts
   STATE      cmd_1
   TYPE       DOIF
   READINGS:
     2017-07-30 08:02:49   Device          TH_Sensor_1
     2017-07-27 06:00:00   cmd             1
     2017-07-27 06:00:00   cmd_event       timer_1
     2017-07-27 06:00:00   cmd_nr          1
     2017-07-30 08:02:49   e_TH_Sensor_1_temperature 22.1
     2017-07-27 06:00:00   state           cmd_1
     2017-07-30 06:00:00   timer_01_c01    31.07.2017 06:00:00
     2017-07-29 21:40:54   timer_02_c02    30.07.2017 21:40:54
     2017-07-29 06:39:43   wait_timer      no timer
   condition:
     0          DOIF_time_once($hash,0,$wday)
     1          DOIF_time_once($hash,1,$wday) and ReadingValDoIf($hash,'TH_Sensor_1','temperature') < 10
   days:
   devices:
     1           TH_Sensor_1
     all         TH_Sensor_1
   do:
     0:
       0          set Wohnzimmer_Rolladen_Tuer_rechts off
     1:
       0          set Wohnzimmer_Rolladen_Tuer_rechts on
     2:
   helper:
     event      battery: ok,humidity: 73,T: 22.1 H: 73,temperature: 22.1,statTemperatureDayMin: 21.4,statTemperatureDayAvg: 21.9,statTemperatureDayMax: 22.7,statTemperatureMonthMin: 7.8,statTemperatureMonthAvg: 19.6,statTemperatureMonthMax: 35.7,statTemperatureYearMin: -3.3,statTemperatureYearAvg: 15.0,statTemperatureYearMax: 37.0,dewpoint: 17.0
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev
     timerevent timer_1
     triggerDev TH_Sensor_1
     timerevents:
       timer_1
     timereventsState:
       battery: ok
       humidity: 74
       state: T: 21.7 H: 74
       temperature: 21.7
       statTemperatureDayMin: 21.5
       statTemperatureDayAvg: 22.1
       statTemperatureDayMax: 22.7
       statTemperatureMonthMin: 7.8
       statTemperatureMonthAvg: 19.6
       statTemperatureMonthMax: 35.7
       statTemperatureYearMin: -3.3
       statTemperatureYearAvg: 15.0
       statTemperatureYearMax: 37.0
       dewpoint: 16.9
     triggerEvents:
       battery: ok
       humidity: 73
       T: 22.1 H: 73
       temperature: 22.1
       statTemperatureDayMin: 21.4
       statTemperatureDayAvg: 21.9
       statTemperatureDayMax: 22.7
       statTemperatureMonthMin: 7.8
       statTemperatureMonthAvg: 19.6
       statTemperatureMonthMax: 35.7
       statTemperatureYearMin: -3.3
       statTemperatureYearAvg: 15.0
       statTemperatureYearMax: 37.0
       dewpoint: 17.0
     triggerEventsState:
       battery: ok
       humidity: 73
       state: T: 22.1 H: 73
       temperature: 22.1
       statTemperatureDayMin: 21.4
       statTemperatureDayAvg: 21.9
       statTemperatureDayMax: 22.7
       statTemperatureMonthMin: 7.8
       statTemperatureMonthAvg: 19.6
       statTemperatureMonthMax: 35.7
       statTemperatureYearMin: -3.3
       statTemperatureYearAvg: 15.0
       statTemperatureYearMax: 37.0
       dewpoint: 17.0
   internals:
   interval:
   itimer:
   localtime:
     0          1501473600
     1          1501443654
   readings:
     1           TH_Sensor_1:temperature
     all         TH_Sensor_1:temperature
   realtime:
     0          06:00:00
     1          21:40:54
   regexp:
     0:
     1:
     all:
   state:
     STATE:
   time:
     0          {twilight("Tageslicht","sr_indoor","6:00","9:00")}
     1          {twilight("Tageslicht","ss_indoor","19:00","22:30")}
   timeCond:
     0          0
     1          1
   timer:
     0          0
     1          0
   timers:
     0           0
     1           1
   trigger:
   triggertime:
     1501443654:
       localtime  1501443654
       hash:
     1501473600:
       localtime  1501473600
       hash:
Attributes:
   group      Rolladen
   room       TEST
   verbose    5
   wait       0:600


Ein angelegte Protokoll zeigt weist auch nur die Aktivität des Fensters aus:

2017-07-30_06:00:00 DOIF_Wohnzimmer_Rolladen_Fenster cmd_nr: 1
2017-07-30_06:00:00 DOIF_Wohnzimmer_Rolladen_Fenster cmd: 1
2017-07-30_06:00:00 DOIF_Wohnzimmer_Rolladen_Fenster cmd_event: timer_1
2017-07-30_06:00:00 DOIF_Wohnzimmer_Rolladen_Fensterr cmd_1
2017-07-30_06:00:00 Wohnzimmer_Rolladen_Fenster deviceMsg: zu (to vccu)
2017-07-30_06:00:00 Wohnzimmer_Rolladen_Fenster level: 100
2017-07-30_06:00:00 Wohnzimmer_Rolladen_Fenster motor: up:zu
2017-07-30_06:00:00 Wohnzimmer_Rolladen_Fenster pct: 100
2017-07-30_06:00:00 Wohnzimmer_Rolladen_Fenster zu
2017-07-30_06:00:00 Wohnzimmer_Rolladen_Fenster timedOn: offen
2017-07-30_06:00:26 Wohnzimmer_Rolladen_Fenster deviceMsg: offen (to vccu)
2017-07-30_06:00:26 Wohnzimmer_Rolladen_Fenster level: 0
2017-07-30_06:00:26 Wohnzimmer_Rolladen_Fenster motor: stop:offen
2017-07-30_06:00:26 Wohnzimmer_Rolladen_Fenster pct: 0
2017-07-30_06:00:26 Wohnzimmer_Rolladen_Fenster offen
2017-07-30_06:00:26 Wohnzimmer_Rolladen_Fenster timedOn: offen


Wer hat den Überblick und kann mir helfen? Vielen Dank schon mal!

Gruß
Heiko

thgorjup

FHEM auf Ubuntu 18.04LTS, 2x nanoCUL, JeeLink, nanoPIR, MQTT, ESP-Easy, HUE.
Sensoren+Aktoren: HM, IT, Lacrosse, Multitrade-PIR, VU+, Somfy

Papaloewe

Beim Wohnzimmer verknüpfst du mit einen and [TH_Sensor_1:temperature] < 99
und bei den beiden anderen mit and [TH_Sensor_1:temperature] < 10.

Ich vermute mal, dass die erste Bedingungung immer zutrifft und die zweite eher mal nur im Winter?

Otto123

Hi,

ich denke ([{twilight("Tageslicht","sr_indoor","6:00","9:00")}]) liefert Dir nur eine Zeit. Damit kommt das DOIF aus diesem Status nicht heraus wenn der DOELSEIF Zweig nicht durchlaufen wird.
Du musst do always setzen nehme ich an. -> https://fhem.de/commandref_DE.html#DOIF_Inhaltsuebersicht

Gruß Otto
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

heiko.ne

Zitat von: Papaloewe am 30 Juli 2017, 10:35:49
Beim Wohnzimmer verknüpfst du mit einen and [TH_Sensor_1:temperature] < 99
und bei den beiden anderen mit and [TH_Sensor_1:temperature] < 10.

Ich vermute mal, dass die erste Bedingungung immer zutrifft und die zweite eher mal nur im Winter?

Genau deshalb mache ich das so.

heiko.ne

Danke für die Hinweise auf "do always". Ich werde dass Attribut setzen und den eventuellen Erfolg hier posten.

Dank und Gruß
Heiko

Otto123

Zitat von: heiko.ne am 30 Juli 2017, 14:06:38
Genau deshalb mache ich das so.
Aber die Abfrage and [TH_Sensor_1:temperature] < 99 kannst Du auch weglassen.  ;D
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

Chris8888

Hallo Heiko,

ich war da, wo du gerade bist, auch mal: 12 Rollos mit je 3 DOifs...nie wieder.

Spar dir den Ärger und nutze diese geniale Modul von Bernd:
https://forum.fhem.de/index.php/topic,73964.0.html

Das Ding läuft und der WAF ist unschlagbar.

VG
Christian
FHEM 6.0 auf einem PI4 mit div. Homematic-Komponenten, Alexa, Tablet-UI und Homebridge...und läuft einfach. Erweitert mit CCU3 und Homematic-IP...und läuft immer noch.

heiko.ne

Also, ich kann bestätigen, dass das Attribut "do always" hier die Lösung war.
Ich sage Danke für den Hinweis darauf und schließe dieses Thema.

Gruß
Heiko

heiko.ne


Beta-User

Zitat von: heiko.ne am 31 Juli 2017, 13:45:56
[gelöst] im Betreff ergänzt.
Du solltest das im ersten Beitrag machen, dann hat es auch Auswirkungen auf den Gesamt-Thread-Titel ;) .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors