Doif und Twillight funktoniert nicht.

Begonnen von Wasserwerk33, 15 September 2021, 20:51:16

Vorheriges Thema - Nächstes Thema

Wasserwerk33

Hallo Leute,

ich bin nun seit ca 2 Wochen dabei mein DOIF wieder ans laufen zu bekommen. Es hat mal Funktoniert aber leider nach einem komplett Ausfall im Winter ohne passendes Backup (wird mir nie wieder passieren) bekomme ich es leider nicht mehr ans laufen.
Wenn ich die zeit bis 23:59 uhr einstelle klappt es aber wenn ich bis 6:50 einstelle klappt es nicht.

in diesem Thema hatte ich es wie in dem #2 beitrag am laufen. Aber nicht wirklich gut.
https://forum.fhem.de/index.php/topic,119801.0.html

In diesem Thema war mein letzter Beitrag das ich es mit Fragezeichen geklärt hatte, Aber habe schon alles Probiert. Es klappt nicht.
https://forum.fhem.de/index.php/topic,114172.0.html

In dieser List ist bis 1:00 uhr schon funktoniert es nicht.
Internals:
   DEF        ([LaCrosse_16:temperature] < 20 and ([{twilight("myTwilight","ss_indoor","16:00","00:01")}]))
(set Kueche_ganz_runter trigger)
   FUUID      6135279e-f33f-5e7b-7967-18e93c87eefb1945
   MODEL      FHEM
   NAME       KuecheJalousie
   NOTIFYDEV  LaCrosse_16,global
   NR         157
   NTFY_ORDER 50-KuecheJalousie
   STATE      initialized
   TYPE       DOIF
   VERSION    24755 2021-07-15 16:40:59
   READINGS:
     2021-09-15 20:43:51   cmd             0
     2021-09-15 20:43:51   mode            enabled
     2021-09-15 20:43:51   state           initialized
     2021-09-15 20:43:51   timer_01_c01    16.09.2021 00:01:00
   Regex:
     accu:
     collect:
     cond:
       LaCrosse_16:
         0:
           temperature ^LaCrosse_16$:^temperature:
   condition:
     0          ::ReadingValDoIf($hash,'LaCrosse_16','temperature') < 20 and (::DOIF_time_once($hash,0,$wday))
   days:
   do:
     0:
       0          set Kueche_ganz_runter trigger
     1:
   helper:
     DEVFILTER  ^global$|^LaCrosse_16$
     NOTIFYDEV  global|LaCrosse_16
     globalinit 1
     last_timer 1
     sleeptimer -1
     triggerDev
   intervalfunc:
   localtime:
     0          1631743260
   readings:
     all         LaCrosse_16:temperature
   realtime:
     0          00:01:00
   time:
     0          {twilight("myTwilight","ss_indoor","16:00","00:01")}
   timeCond:
     0          0
   timer:
     0          0
   timers:
     0           0
   triggertime:
     1631743260:
       localtime  1631743260
       hash:
   uiState:
   uiTable:
Attributes:
   do         always
   room       Logo


In dieser Bis 23:59 und es funktoniert. Man sieht das sie eigentlich um 20:06 schaltet.
Internals:
   DEF        ([LaCrosse_16:temperature] < 20 and ([{twilight("myTwilight","ss_indoor","16:00","23:59")}]))
(set Kueche_ganz_runter trigger)
   FUUID      6135279e-f33f-5e7b-7967-18e93c87eefb1945
   MODEL      FHEM
   NAME       KuecheJalousie
   NOTIFYDEV  LaCrosse_16,global
   NR         157
   NTFY_ORDER 50-KuecheJalousie
   STATE      initialized
   TYPE       DOIF
   VERSION    24755 2021-07-15 16:40:59
   READINGS:
     2021-09-15 20:48:29   cmd             0
     2021-09-15 20:48:29   mode            enabled
     2021-09-15 20:48:29   state           initialized
     2021-09-15 20:48:29   timer_01_c01    16.09.2021 20:06:03
   Regex:
     accu:
     collect:
     cond:
       LaCrosse_16:
         0:
           temperature ^LaCrosse_16$:^temperature:
   condition:
     0          ::ReadingValDoIf($hash,'LaCrosse_16','temperature') < 20 and (::DOIF_time_once($hash,0,$wday))
   days:
   do:
     0:
       0          set Kueche_ganz_runter trigger
     1:
   helper:
     DEVFILTER  ^global$|^LaCrosse_16$
     NOTIFYDEV  global|LaCrosse_16
     globalinit 1
     last_timer 1
     sleeptimer -1
     triggerDev
   intervalfunc:
   localtime:
     0          1631815563
   readings:
     all         LaCrosse_16:temperature
   realtime:
     0          20:06:03
   time:
     0          {twilight("myTwilight","ss_indoor","16:00","23:59")}
   timeCond:
     0          0
   timer:
     0          0
   timers:
     0           0
   triggertime:
     1631815563:
       localtime  1631815563
       hash:
   uiState:
   uiTable:
Attributes:
   do         always
   room       Logo


So klappt es aber ich hätte auch gerne die 16:00 drin.

([LaCrosse_16:temperature] <20 and [[myTwilight:ss_indoor]-06:50])

Hat jemand eine idee wie ich es bis nach Null uhr hinbekomme?

Damian

{twilight("myTwilight","ss_indoor","16:00","00:01")}

Mit dem Befehl, willst du den Zeitpunkt der Dunkelheit einschränken, frühsten um 16:00 spätestens um 00:01.

Offenbar funktioniert es nur bis 23:59, was aber vollkommen ausreichend ist, denn: Wo wird es erst nach 23:59 Uhr dunkel? ;)

All das hat aber nichts mit DOIF zu tun.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Wasserwerk33

Hi
Ja du hast recht. Es wird selten nach 0:00 uhr dunkel. Aber mir geht es ejar um die Temperatur nach dem Sonnenuntergang. Also wenn es mal so wie jetzt in der Übergangszeit Nachts um 3 uhr erst die 20 (eigentlich soll es auf 16 grad Stehen --> testweise 20 grad) auch noch runterfahren.

wohin würdest du es den schieben?? Dann verschiebe ich es

Damian

Zitat von: Wasserwerk33 am 15 September 2021, 21:14:02
Hi
Ja du hast recht. Es wird selten nach 0:00 uhr dunkel. Aber mir geht es ejar um die Temperatur nach dem Sonnenuntergang. Also wenn es mal so wie jetzt in der Übergangszeit Nachts um 3 uhr erst die 20 (eigentlich soll es auf 16 grad Stehen --> testweise 20 grad) auch noch runterfahren.

wohin würdest du es den schieben?? Dann verschiebe ich es

Es handelt sich bei deiner Definition der Zeit um einen Zeitpunkt, dieser ist nur in Augenblick des Triggers wahr, sonst nicht.

Das, was du vorhast, musst du mit einem Zeitintervall realisieren:

  ([LaCrosse_16:temperature] < 20 and [{twilight("myTwilight","ss_indoor","16:00","23:00")}-03:00])

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Wasserwerk33

#4
die -3:00 ist das die letzte Zeit wo es schaltet oder wie muss ich das verstehen?? und was machen die Zeiten davor also die 23:00 uhr? die 16:00 ist mir klar.
Ich hatte ja auch schon zeiten gesetzt nur halt eben nicht an der richtigen stelle.

Das scheint laut. Reading zu funktionieren.  Ich melde mich ob es Schaltet.

Aber erst mal mega dank an dir.

Damian

Zitat von: Wasserwerk33 am 15 September 2021, 21:28:02
die -3:00 ist das die letzte Zeit wo es schaltet oder wie muss ich das verstehen?? und was machen die Zeiten davor also die 23:00 uhr? die 16:00 ist mir klar.
Ich hatte ja auch schon zeiten gesetzt nur halt eben nicht an der richtigen stelle.

Das scheint laut. Reading zu funktionieren.  Ich melde mich ob es Schaltet.

Aber erst mal mega dank an dir.

Hier findest du die Erklärungen zu Twilight: https://wiki.fhem.de/wiki/Twilight

und hier zu Zeitintervallen im DOIF: https://fhem.de/commandref_DE.html#DOIF_Zeitsteuerung_mit_Zeitintervallen
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Wasserwerk33

#6
Habe es jetzt die ganze Zeit in Versuchung und bin die ganze Zeit am machen. Aber irgendwie habe ich wohl ein Brett vor dem Kopf.

Meine Sensoren sind Die von Technoline, diese Triggern ja alle paar Sekunden. Nur ich bekomme es nicht mit meiner Jalousiesteuerung hin. Sie werden bei jeder Temperatur änderung auch getriggert. Eigentlich reicht es mir ja wenn er einmal Triggert wenn die Temperatur und die Uhrzeit war wird.

Was mir noch einfallen würde wäre ein dummy und diese dann abfragen. Aber vielleicht hat ja einer eine andere Idee für mich.

Es soll ja auch triggern aber nicht ständig

Internals:
   DEF        ([LaCrosse_16:temperature] <=18 and [{twilight("myTwilight","ss_indoor","16:30","23:59")}-6:49])

(set Wohnzimmer_ganz_runter trigger)
   FUUID      613528a7-f33f-5e7b-0266-336ebb06f3eec812
   MODEL      FHEM
   NAME       Wohnzimmer_Jalousie
   NOTIFYDEV  LaCrosse_16,global
   NR         158
   NTFY_ORDER 50-Wohnzimmer_Jalousie
   STATE      cmd_1
   TYPE       DOIF
   VERSION    24755 2021-07-15 16:40:59
   READINGS:
     2021-09-25 09:20:42   Device          LaCrosse_16
     2021-09-24 23:16:53   cmd             1
     2021-09-24 23:16:53   cmd_event       LaCrosse_16
     2021-09-24 23:16:53   cmd_nr          1
     2021-09-25 09:20:42   e_LaCrosse_16_temperature 16.8
     2021-09-24 23:04:10   mode            enabled
     2021-09-24 23:16:53   state           cmd_1
     2021-09-25 06:49:00   timer_01_c01    25.09.2021 19:42:17
     2021-09-25 06:49:00   timer_02_c01    26.09.2021 06:49:00
   Regex:
     accu:
     collect:
     cond:
       LaCrosse_16:
         0:
           temperature ^LaCrosse_16$:^temperature:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'LaCrosse_16','temperature') <=18 and ::DOIF_time($hash,0,1,$wday,$hms)
   days:
   do:
     0:
       0          set Wohnzimmer_ganz_runter trigger
     1:
   helper:
     DEVFILTER  ^global$|^LaCrosse_16$
     NOTIFYDEV  global|LaCrosse_16
     event      battery: ok,temperature: 16.8,humidity: 75
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   LaCrosse_16
     timerevent temperature: 17.9
     triggerDev LaCrosse_16
     timerevents:
       temperature: 17.9
     timereventsState:
       temperature: 17.9
     triggerEvents:
       battery: ok
       temperature: 16.8
       humidity: 75
     triggerEventsState:
       battery: ok
       temperature: 16.8
       humidity: 75
   internals:
   interval:
     0          -1
     1          0
   intervalfunc:
   localtime:
     0          1632591737
     1          1632631740
   readings:
     all         LaCrosse_16:temperature
   realtime:
     0          19:42:17
     1          06:49:00
   time:
     0          {twilight("myTwilight","ss_indoor","16:30","23:59")}
     1          6:49
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
     0           0  1
   trigger:
   triggertime:
     1632591737:
       localtime  1632591737
       hash:
     1632631740:
       localtime  1632631740
       hash:
   uiState:
   uiTable:
Attributes:
   do         always


Danke für eure Hilfe

Damian

ZitatEs soll ja auch triggern aber nicht ständig

Warum hast du dann do always genommen?
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Wasserwerk33

Das habe ich genommen damit es am nächsten Tag auch wieder triggert. Auch wenn schon cmd1 steht.

Damian

Zitat von: Wasserwerk33 am 25 September 2021, 09:37:50
Das habe ich genommen damit es am nächsten Tag auch wieder triggert. Auch wenn schon cmd1 steht.

Um 6:49 wird dein Intervall per Trigger beendet, dann wird automatisch in den DOELSE-Fall gewechselt, damit ist es für die nächste Zeitperiode automatisch aktiv.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Wasserwerk33

Stimmt. Ja sag ja hatte ein Brett vor dem Kopf. Nur noch auf die Zeilen geschaut und nicht tiefer.

Ja jetzt wird es funktionieren.