FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: tfriedrich85 am 04 November 2020, 10:12:59

Titel: [gelöst] - DOIF reagiert nicht auf Dummy!
Beitrag von: tfriedrich85 am 04 November 2020, 10:12:59
Hallo zusammen,

ich habe die Herausforderung das ich mittels des THRESHOLD moduls eine Heizung steuern will.
Das THRESHOLD Modul arbeitet auch. Jetzt möchte ich mittels eines Dummy-Sliders und einem DoIF das THRESHOLD Modul mit Eingabe-Werten versorgen.
Jetzt das Problem: Wenn ich den Slider bewege, reagiert das Doif nicht auf die Veränderung und die Heizung wird nicht An/ Aus geschaltet.
Wie bringe ich dem Doif bei auf den Dummy zu "hören"? (always do klappt nicht?)

List Doif

nternals:
   CFGFN     
   DEF        ([10:01-23:00|12345] and [Temp_Heizung_Kueche]) (set Heizung_Schwellwert desired [Temp_Heizung_Kueche:state])
DOELSEIF ([08:01-23:59|67] and [Temp_Heizung_Kueche]) (set Heizung_Schwellwert desired [Temp_Heizung_Kueche:state])
DOELSEIF ([23:01-10:00|12345] and [Temp_Heizung_Kueche_Nacht]) (set Heizung_Schwellwert desired [Temp_Heizung_Kueche_Nacht:state]) 
DOELSEIF ([00:01-08:00|67] and [Temp_Heizung_Kueche_Nacht]) (set Heizung_Schwellwert desired [Temp_Heizung_Kueche_Nacht:state])
DOELSE ()
   FUUID      5fa1b3bb-f33f-aed9-9fdf-11a4d2354d1fdbcf
   MODEL      FHEM
   NAME       Heizung_schalten
   NOTIFYDEV  Temp_Heizung_Kueche,global,Temp_Heizung_Kueche_Nacht
   NR         22894
   NTFY_ORDER 50-Heizung_schalten_neu
   STATE      initialize
   TYPE       DOIF
   VERSION    22913 2020-10-04 21:46:02
   Helper:
     DBLOG:
       cmd:
         logdb:
           TIME       1604432827.26204
           VALUE      0
       mode:
         logdb:
           TIME       1604432827.26204
           VALUE      enabled
       state:
         logdb:
           TIME       1604432827.26204
           VALUE      initialized
   READINGS:
     2020-11-06 09:17:19   Device          Temp_Heizung_Kueche_Nacht
     2020-11-06 09:17:19   e_Temp_Heizung_Kueche_Nacht_STATE Temperatur: 18 °C
     2020-11-06 09:17:30   mode            enabled
     2020-11-06 09:17:30   state           initialize
     2020-11-06 09:15:50   timer_01_c01    06.11.2020 10:01:00|12345
     2020-11-06 09:15:50   timer_02_c01    06.11.2020 23:00:00|12345
     2020-11-06 09:15:50   timer_03_c02    07.11.2020 08:01:00|67
     2020-11-06 09:15:50   timer_04_c02    06.11.2020 23:59:00|67
     2020-11-06 09:15:50   timer_05_c03    06.11.2020 23:01:00|12345
     2020-11-06 09:15:50   timer_06_c03    06.11.2020 10:00:00|12345
     2020-11-06 09:15:50   timer_07_c04    07.11.2020 00:01:00|67
     2020-11-06 09:15:50   timer_08_c04    07.11.2020 08:00:00|67
   Regex:
     accu:
     cond:
       Temp_Heizung_Kueche:
         0:
           &STATE     ^Temp_Heizung_Kueche$
         1:
           &STATE     ^Temp_Heizung_Kueche$
       Temp_Heizung_Kueche_Nacht:
         0:
         1:
         2:
           &STATE     ^Temp_Heizung_Kueche_Nacht$
         3:
           &STATE     ^Temp_Heizung_Kueche_Nacht$
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::DOIF_time($hash,0,1,$wday,$hms,"12345") and ::InternalDoIf($hash,'Temp_Heizung_Kueche','STATE')
     1          ::DOIF_time($hash,2,3,$wday,$hms,"67") and ::InternalDoIf($hash,'Temp_Heizung_Kueche','STATE')
     2          ::DOIF_time($hash,4,5,$wday,$hms,"12345") and ::InternalDoIf($hash,'Temp_Heizung_Kueche_Nacht','STATE')
     3          ::DOIF_time($hash,6,7,$wday,$hms,"67") and ::InternalDoIf($hash,'Temp_Heizung_Kueche_Nacht','STATE')
   days:
     0          12345
     1          12345
     2          67
     3          67
     4          12345
     5          12345
     6          67
     7          67
   do:
     0:
       0          set Heizung_Schwellwert desired [Temp_Heizung_Kueche:state]
     1:
       0          set Heizung_Schwellwert desired [Temp_Heizung_Kueche:state]
     2:
       0          set Heizung_Schwellwert desired [Temp_Heizung_Kueche_Nacht:state]
     3:
       0          set Heizung_Schwellwert desired [Temp_Heizung_Kueche_Nacht:state]
     4:
       0         
   helper:
     DEVFILTER  ^global$|^Temp_Heizung_Kueche$|^Temp_Heizung_Kueche_Nacht$
     NOTIFYDEV  global|Temp_Heizung_Kueche|Temp_Heizung_Kueche_Nacht
     event      18
     globalinit 1
     last_timer 8
     sleeptimer -1
     timerdev   Temp_Heizung_Kueche_Nacht
     timerevent 18
     triggerDev Temp_Heizung_Kueche_Nacht
     timerevents:
       18
     timereventsState:
       state: 18
     triggerEvents:
       18
     triggerEventsState:
       state: 18
   internals:
     all         Temp_Heizung_Kueche:STATE Temp_Heizung_Kueche_Nacht:STATE
   interval:
     0          -1
     1          0
     2          -1
     3          2
     4          -1
     5          4
     6          -1
     7          6
   intervalfunc:
   localtime:
     0          1604653260
     1          1604700000
     2          1604732460
     3          1604703540
     4          1604700060
     5          1604653200
     6          1604703660
     7          1604732400
   readings:
   realtime:
     0          10:01:00
     1          23:00:00
     2          08:01:00
     3          23:59:00
     4          23:01:00
     5          10:00:00
     6          00:01:00
     7          08:00:00
   time:
     0          10:01:00
     1          23:00:00
     2          08:01:00
     3          23:59:00
     4          23:01:00
     5          10:00:00
     6          00:01:00
     7          08:00:00
   timeCond:
     0          0
     1          0
     2          1
     3          1
     4          2
     5          2
     6          3
     7          3
   timer:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
     6          0
     7          0
   timers:
     0           0  1
     1           2  3
     2           4  5
     3           6  7
   trigger:
   triggertime:
     1604653200:
       localtime  1604653200
       hash:
     1604653260:
       localtime  1604653260
       hash:
     1604700000:
       localtime  1604700000
       hash:
     1604700060:
       localtime  1604700060
       hash:
     1604703540:
       localtime  1604703540
       hash:
     1604703660:
       localtime  1604703660
       hash:
     1604732400:
       localtime  1604732400
       hash:
     1604732460:
       localtime  1604732460
       hash:
   uiState:
   uiTable:
Attributes:
   DbLogExclude .*
   do         always
   room       Küche

List Dummy Slider

Internals:
   FUUID      5d850acb-f33f-aed9-d08a-496c2dcf7aca60b7
   NAME       Temp_Heizung_Kueche
   NR         1043
   STATE      18.0
   TYPE       dummy
   Helper:
     DBLOG:
       state:
         logdb:
           TIME       1604480464.24504
           VALUE      18.0
   READINGS:
     2019-09-20 19:26:40   State           25
     2019-09-20 19:26:10   Temp            30
     2020-11-04 09:51:46   state           18.0
Attributes:
   DbLogExclude .*
   DbLogInclude state
   alias      Heizungsregeler Tag
   event-min-interval state:600
   event-on-change-reading state
   group      Küche
   readingList state
   room       Heizung,Küche
   setList    state:slider,15,0.5,30,1
   webCmd     state

Wo liegt der Fehler?
Titel: Antw:DOIF reagiert nicht auf Dummy!
Beitrag von: rabehd am 04 November 2020, 11:29:13
([06:01-23:00] and [Temp_Heizung_Kueche]) (set Heizung_Schwellwert desired [Temp_Heizung_Kueche])
Titel: Antw:DOIF reagiert nicht auf Dummy!
Beitrag von: tfriedrich85 am 04 November 2020, 12:05:11
Oh man war das einfach. Sorry
Titel: Antw:[gelöst] DOIF reagiert nicht auf Dummy!
Beitrag von: tfriedrich85 am 06 November 2020, 08:43:21
So richtig korrekt funktioniert es doch noch nicht.
Wenn es von der Tages zur Nachttemperatur umschalten soll fehlt auch hier der Impuls der das DoIf auslöst.
Nur das erreichen der Schaltzeit, hier im Beispiel Wochentags 23 Uhr reicht nicht damit das DOIF auf die Nachttemperatur umschaltet.

([06:01-23:00|12345] and [Temp_Heizung_Kueche]) (set Heizung_Schwellwert desired [Temp_Heizung_Kueche:state])
DOELSEIF ([08:01-23:59|67] and [Temp_Heizung_Kueche]) (set Heizung_Schwellwert desired ([Temp_Heizung_Kueche:state]))
DOELSEIF ([23:01-06:00|12345] and [Temp_Heizung_Kueche_Nacht]) (set Heizung_Schwellwert desired ([Temp_Heizung_Kueche_Nacht:state])) 
DOELSEIF ([00:01-08:00|67] and [Temp_Heizung_Kueche_Nacht]) (set Heizung_Schwellwert desired ([Temp_Heizung_Kueche_Nacht:state]))
DOELSE ()

Kann man dem DOif einen zeitlichen Trigger geben, damit es unabhänig vom Trigger des Temperatur-Reglers erneut ausgeführt wird, wenn die Zeit erreicht ist?
Titel: Antw:DOIF reagiert nicht auf Dummy!
Beitrag von: amenomade am 06 November 2020, 08:56:04
attr Heizung_schalten_neu do always fehlt, damit mehrere set Temp_Heizung_Kueche nacheinander alle mitberücksichtigt werden.
Sollte aber nicht direkt dein Zeitproblem verursachen.

Am besten leiferst Du wieder ein vollständiges "list" vom DOIF (bitte in Code Tags - das # Zeichen im Editormenü)
Titel: Antw:DOIF reagiert nicht auf Dummy!
Beitrag von: tfriedrich85 am 06 November 2020, 09:12:43
Zitat von: amenomade am 06 November 2020, 08:56:04
attr Heizung_schalten_neu do always fehlt, damit mehrere set Temp_Heizung_Kueche nacheinander alle mitberücksichtigt werden.
Sollte aber nicht direkt dein Zeitproblem verursachen.

Am besten leiferst Du wieder ein vollständiges "list" vom DOIF (bitte in Code Tags - das # Zeichen im Editormenü)

Das ist eine gute Idee, aber daran hatte ich auch schon gedacht. Hilft aber leider nicht.
Danke trotzdem

Internals:
   CFGFN     
   DEF        ([10:01-23:00|12345] and [Temp_Heizung_Kueche]) (set Heizung_Schwellwert desired [Temp_Heizung_Kueche:state])
DOELSEIF ([08:01-23:59|67] and [Temp_Heizung_Kueche]) (set Heizung_Schwellwert desired ([Temp_Heizung_Kueche:state]))
DOELSEIF ([23:01-10:00|12345] and [Temp_Heizung_Kueche]) (set Heizung_Schwellwert desired ([Temp_Heizung_Kueche_Nacht:state])) 
DOELSEIF ([00:01-08:00|67] and [Temp_Heizung_Kueche]) (set Heizung_Schwellwert desired ([Temp_Heizung_Kueche_Nacht:state]))
DOELSE ()
   FUUID      5fa1b3bb-f33f-aed9-9fdf-11a4d2354d1fdbcf
   MODEL      FHEM
   NAME       Heizung_schalten
   NOTIFYDEV  Temp_Heizung_Kueche,global
   NR         22894
   NTFY_ORDER 50-Heizung_schalten_neu
   STATE      cmd_3
   TYPE       DOIF
   VERSION    22913 2020-10-04 21:46:02
   Helper:
     DBLOG:
       cmd:
         logdb:
           TIME       1604432827.26204
           VALUE      0
       mode:
         logdb:
           TIME       1604432827.26204
           VALUE      enabled
       state:
         logdb:
           TIME       1604432827.26204
           VALUE      initialized
   READINGS:
     2020-11-06 09:10:13   cmd             3
     2020-11-06 09:10:13   cmd_event       Heizung_schalten
     2020-11-06 09:10:13   cmd_nr          3
     2020-11-06 09:10:13   error           set Heizung_Schwellwert desired (17): Heizung_Schwellwert: set desired value:(17), desired value needs a numeric parameter
     2020-11-06 09:10:09   mode            enabled
     2020-11-06 09:10:13   state           cmd_3
     2020-11-06 09:10:09   timer_01_c01    06.11.2020 10:01:00|12345
     2020-11-06 09:10:09   timer_02_c01    06.11.2020 23:00:00|12345
     2020-11-06 09:10:09   timer_03_c02    07.11.2020 08:01:00|67
     2020-11-06 09:10:09   timer_04_c02    06.11.2020 23:59:00|67
     2020-11-06 09:10:09   timer_05_c03    06.11.2020 23:01:00|12345
     2020-11-06 09:10:09   timer_06_c03    06.11.2020 10:00:00|12345
     2020-11-06 09:10:09   timer_07_c04    07.11.2020 00:01:00|67
     2020-11-06 09:10:09   timer_08_c04    07.11.2020 08:00:00|67
   Regex:
     accu:
     cond:
       Temp_Heizung_Kueche:
         0:
           &STATE     ^Temp_Heizung_Kueche$
         1:
           &STATE     ^Temp_Heizung_Kueche$
         2:
           &STATE     ^Temp_Heizung_Kueche$
         3:
           &STATE     ^Temp_Heizung_Kueche$
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::DOIF_time($hash,0,1,$wday,$hms,"12345") and ::InternalDoIf($hash,'Temp_Heizung_Kueche','STATE')
     1          ::DOIF_time($hash,2,3,$wday,$hms,"67") and ::InternalDoIf($hash,'Temp_Heizung_Kueche','STATE')
     2          ::DOIF_time($hash,4,5,$wday,$hms,"12345") and ::InternalDoIf($hash,'Temp_Heizung_Kueche','STATE')
     3          ::DOIF_time($hash,6,7,$wday,$hms,"67") and ::InternalDoIf($hash,'Temp_Heizung_Kueche','STATE')
   days:
     0          12345
     1          12345
     2          67
     3          67
     4          12345
     5          12345
     6          67
     7          67
   do:
     0:
       0          set Heizung_Schwellwert desired [Temp_Heizung_Kueche:state]
     1:
       0          set Heizung_Schwellwert desired ([Temp_Heizung_Kueche:state])
     2:
       0          set Heizung_Schwellwert desired ([Temp_Heizung_Kueche_Nacht:state])
     3:
       0          set Heizung_Schwellwert desired ([Temp_Heizung_Kueche_Nacht:state])
     4:
       0         
   helper:
     DEVFILTER  ^global$|^Temp_Heizung_Kueche$
     NOTIFYDEV  global|Temp_Heizung_Kueche
     globalinit 1
     last_timer 8
     sleeptimer -1
     timerdev   
     timerevent
     timerevents
     timereventsState
     triggerDev
     DOIF_eventa:
       cmd_nr: 3
       cmd: 3
       cmd_event: Heizung_schalten
       error: set Heizung_Schwellwert desired (17): Heizung_Schwellwert: set desired value:(17), desired value needs a numeric parameter
       cmd_3
     DOIF_eventas:
       cmd_nr: 3
       cmd: 3
       cmd_event: Heizung_schalten
       error: set Heizung_Schwellwert desired (17): Heizung_Schwellwert: set desired value:(17), desired value needs a numeric parameter
       state: cmd_3
   internals:
     all         Temp_Heizung_Kueche:STATE
   interval:
     0          -1
     1          0
     2          -1
     3          2
     4          -1
     5          4
     6          -1
     7          6
   intervalfunc:
   localtime:
     0          1604653260
     1          1604700000
     2          1604732460
     3          1604703540
     4          1604700060
     5          1604653200
     6          1604703660
     7          1604732400
   realtime:
     0          10:01:00
     1          23:00:00
     2          08:01:00
     3          23:59:00
     4          23:01:00
     5          10:00:00
     6          00:01:00
     7          08:00:00
   time:
     0          10:01:00
     1          23:00:00
     2          08:01:00
     3          23:59:00
     4          23:01:00
     5          10:00:00
     6          00:01:00
     7          08:00:00
   timeCond:
     0          0
     1          0
     2          1
     3          1
     4          2
     5          2
     6          3
     7          3
   timer:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
     6          0
     7          0
   timers:
     0           0  1
     1           2  3
     2           4  5
     3           6  7
   triggertime:
     1604653200:
       localtime  1604653200
       hash:
     1604653260:
       localtime  1604653260
       hash:
     1604700000:
       localtime  1604700000
       hash:
     1604700060:
       localtime  1604700060
       hash:
     1604703540:
       localtime  1604703540
       hash:
     1604703660:
       localtime  1604703660
       hash:
     1604732400:
       localtime  1604732400
       hash:
     1604732460:
       localtime  1604732460
       hash:
   uiState:
   uiTable:
Attributes:
   DbLogExclude .*
   do         always
   room       Küche
Titel: Antw:DOIF reagiert nicht auf Dummy!
Beitrag von: amenomade am 06 November 2020, 09:30:42
Also, somit kann es natürlich nicht gehen:
    2020-11-06 09:10:13   error           set Heizung_Schwellwert desired (17): Heizung_Schwellwert: set desired value:(17), desired value needs a numeric parameter



([Temp_Heizung_Kueche:state])
Mach die runde Klammern weg in den Befehlen 2,3 und 4 (im 1. ist es ok)
[Temp_Heizung_Kueche:state]

EDIT: jetzt hast Du scheinbar die Code Tags gefunden. Dann kannst Du auch dein erstes Post editieren ;)
Titel: Antw:DOIF reagiert nicht auf Dummy!
Beitrag von: tfriedrich85 am 06 November 2020, 09:51:39
Zitat von: amenomade am 06 November 2020, 09:30:42
Also, somit kann es natürlich nicht gehen:
    2020-11-06 09:10:13   error           set Heizung_Schwellwert desired (17): Heizung_Schwellwert: set desired value:(17), desired value needs a numeric parameter



([Temp_Heizung_Kueche:state])
Mach die runde Klammern weg in den Befehlen 2,3 und 4 (im 1. ist es ok)
[Temp_Heizung_Kueche:state]

EDIT: jetzt hast Du scheinbar die Code Tags gefunden. Dann kannst Du auch dein erstes Post editieren ;)

Hab ich gemacht auch geändert und im ersten Post korrigiert. Leider geht er trotzdem nicht in die einzelnen doelseifs rein ohne das ich es aktiv auswähle.
Titel: Antw:DOIF reagiert nicht auf Dummy!
Beitrag von: tfriedrich85 am 06 November 2020, 10:17:34
Das DOIF bleibt auch nach Veränderungen auf Initialize stehen, obwohl es schalten müsste. Das ist für mich auch ein Indiz das, dass es nicht sauber funktioniert. siehe Screenshot.
Titel: Antw:DOIF reagiert nicht auf Dummy!
Beitrag von: amenomade am 06 November 2020, 10:27:35
Bitte kein Screenshot... insb. Einzeiler Screenshot! Da ist gar nix zu sehen
Sondern wieder ein "list" vom DOIF, wenn Du meinst er hätte schalten müssen, aber hat es nicht gemacht.

Das "Initialized" sieht man genauso in einem "list", aber dazu noch viiieeeeel mehr
Titel: Antw:DOIF reagiert nicht auf Dummy!
Beitrag von: amenomade am 06 November 2020, 10:30:31
Zitat von: tfriedrich85 am 06 November 2020, 10:17:34
Das DOIF bleibt auch nach Veränderungen auf Initialize stehen, obwohl es schalten müsste. Das ist für mich auch ein Indiz das, dass es nicht sauber funktioniert. siehe Screenshot.

Also... nach Veränderung, aber ohne die Zeitbedingung geändert zu haben, und ohne Temp_Heizung_Kueche wieder gesetzt zu haben, ist es normal. Ein Zeitperiode-Bedingung triggert am Anfang und am Ende. Nicht mehr. Die nächste Schalt-/Triggerzeiten siehst Du in den Readings (z.B. aus einem "list" und nicht aus deinem Screenshot)
     2020-11-06 09:15:50   timer_01_c01    06.11.2020 10:01:00|12345
     2020-11-06 09:15:50   timer_02_c01    06.11.2020 23:00:00|12345
     2020-11-06 09:15:50   timer_03_c02    07.11.2020 08:01:00|67
     2020-11-06 09:15:50   timer_04_c02    06.11.2020 23:59:00|67
     2020-11-06 09:15:50   timer_05_c03    06.11.2020 23:01:00|12345
     2020-11-06 09:15:50   timer_06_c03    06.11.2020 10:00:00|12345
     2020-11-06 09:15:50   timer_07_c04    07.11.2020 00:01:00|67
     2020-11-06 09:15:50   timer_08_c04    07.11.2020 08:00:00|67
Titel: Antw:DOIF reagiert nicht auf Dummy!
Beitrag von: Sany am 06 November 2020, 10:31:11
Hallo tfriedrich85,

wenn ich Dich richtig verstehe soll der desired-Wert entweder zu den Zeitpunkten oder wenn Du die slider bewegst an die Heizung geschickt werden. Und bei den Slidern sollte der Wert nur gesendet werden, wenn innerhalb der entsprechenden Zeit. Falls das so richtig ist musst du das auch entsprechend im DOIF einbauen, also Slider triggert innerhalb seiner Zeitspanne oder die Zeitspanne triggert (ein [10:00-23:59|12345) ist ja nichts anderes als 2 Zeitpunkte, die triggern).
Um das ganze noch "einfacher" zu machen geht es auch ohne dummy, denn die Slider kannst Du auch direkt ins DOIF einbauen. Ich hab mal Dein DOIF entsprechend umgebastelt und hänge es als RAW hier dran.
defmod Heizung_schalten DOIF (([?10:01-23:00|12345] and [$SELF:"Tag"]) or [10:08-23:00|12345]) \
    (set Heizung_Schwellwert desired [$SELF:Tag]) \
DOELSEIF \
  (([?08:01-23:59|67] and [$SELF:"Tag"]) or [08:01-23:59|67]) \
    (set Heizung_Schwellwert desired [$SELF:Tag]) \
DOELSEIF\
  (([?23:01-10:09|12345] and [$SELF:"Nacht"]) or [23:01-10:00|12345])\
    (set Heizung_Schwellwert desired [$SELF:Nacht])\
DOELSEIF \
  (([?00:01-08:00|67] and [$SELF:"Nacht"]) or [00:01-08:00|67])\
    (set Heizung_Schwellwert desired [$SELF:Nacht]) \
DOELSE ()
attr Heizung_schalten cmdState Tag_Woche,Tag_WE,Nacht_Woche,Nacht_WE
attr Heizung_schalten do always
attr Heizung_schalten event-on-update-reading Tag,Nacht
attr Heizung_schalten readingList Tag,Nacht
attr Heizung_schalten room Küche
attr Heizung_schalten setList Tag:slider,15,0.5,30,1 Nacht:slider,15,0.5,30,1
attr Heizung_schalten webCmd Tag:Nacht
attr Heizung_schalten webCmdLabel Tag\
:Nacht


Viel Erfolg!

Sany
Titel: Antw:DOIF reagiert nicht auf Dummy!
Beitrag von: tfriedrich85 am 06 November 2020, 15:32:26
Zitat von: Sany am 06 November 2020, 10:31:11

defmod Heizung_schalten DOIF (([?10:01-23:00|12345] and [$SELF:"Tag"]) or [10:08-23:00|12345]) \
    (set Heizung_Schwellwert desired [$SELF:Tag]) \
DOELSEIF \
  (([?08:01-23:59|67] and [$SELF:"Tag"]) or [08:01-23:59|67]) \
    (set Heizung_Schwellwert desired [$SELF:Tag]) \
DOELSEIF\
  (([?23:01-10:09|12345] and [$SELF:"Nacht"]) or [23:01-10:00|12345])\
    (set Heizung_Schwellwert desired [$SELF:Nacht])\
DOELSEIF \
  (([?00:01-08:00|67] and [$SELF:"Nacht"]) or [00:01-08:00|67])\
    (set Heizung_Schwellwert desired [$SELF:Nacht]) \
DOELSE ()
attr Heizung_schalten cmdState Tag_Woche,Tag_WE,Nacht_Woche,Nacht_WE
attr Heizung_schalten do always
attr Heizung_schalten event-on-update-reading Tag,Nacht
attr Heizung_schalten readingList Tag,Nacht
attr Heizung_schalten room Küche
attr Heizung_schalten setList Tag:slider,15,0.5,30,1 Nacht:slider,15,0.5,30,1
attr Heizung_schalten webCmd Tag:Nacht
attr Heizung_schalten webCmdLabel Tag\
:Nacht


Viel Erfolg!

Sany

Diese Lösung finde ich super.Vielen Dank! Hab aber noch 2 Verständnisprobleme:

1. (([?10:01-23:00|12345] and [$SELF:"Tag"]) or [10:08-23:00|12345]) - Warum das or? Wenn ich den Teil "or [10:08-23:00|12345]" entferne funktioniert es nicht mehr.
2. ([?10:01-23:00| - Was bewirkt das ?

Danke dir! Ich muss defmod mal in Ruhe ansehen, das scheint interessant zu sein...
Titel: Antw:DOIF reagiert nicht auf Dummy!
Beitrag von: Sany am 06 November 2020, 16:02:23
Zitat2. ([?10:01-23:00| - Was bewirkt das ?
das ? bewirkt, dass das, was danach steht, in diesem Fall der Zeitraum, nicht triggert. Siehe Trigger verhindern https://fhem.de/commandref_DE.html#DOIF_Zeitintervalle_Readings_und_Status_ohne_Trigger (https://fhem.de/commandref_DE.html#DOIF_Zeitintervalle_Readings_und_Status_ohne_Trigger)

Zitat1. (([?10:01-23:00|12345] and [$SELF:"Tag"]) or [10:08-23:00|12345]) - Warum das or?

Der Teil vor dem or triggert auf eine Änderung des Sliders. Die Abfrage des Zeitraums triggert nicht [?, ist aber wichtig, da sonst, egal welchen slider du verschiebst, das Ergebnis immer an die Heizung geschickt wird.
Der Teil nach dem or triggert quasi am Anfang und am Ende des Zeitraums (wurde hier schon 2 mal beschrieben..), das ist quasi die Automatik für den Wechsel von Tag und Nacht-Werten je nach Wochentag.

Freut mich dass es funktioniert!

Sany
Titel: Antw:DOIF reagiert nicht auf Dummy!
Beitrag von: amenomade am 06 November 2020, 17:36:39
ZitatDOIF (([?10:01-23:00|12345] and [$SELF:"Tag"]) or [10:08-23:00|12345])

Natürlich kann man es immer komplizierter schreiben, aber
DOIF ([10:01-23:00|12345] and [$SELF:Tag]) bewirkt das gleiche (so lange $SELF:Tag nicht gleich 0 ist).
(Dein "or" triggert aber erst um 10:08 statt 10:01 - ist aber nicht relevant, da wahrscheinlich ein Tippfehler)

ZitatUm das ganze noch "einfacher" zu machen geht es auch ohne dummy, denn die Slider kannst Du auch direkt ins DOIF einbauen
Das stimmt.

Titel: Antw:DOIF reagiert nicht auf Dummy!
Beitrag von: Sany am 06 November 2020, 21:22:27
ZitatNatürlich kann man es immer komplizierter schreiben, aber
Code: [Auswählen]
DOIF ([10:01-23:00|12345] and [$SELF:Tag])
bewirkt das gleiche (so lange $SELF:Tag nicht gleich 0 ist).

Da hast Du recht. Ich habe mit dem Slider angefangen und wollte auf den "Event" triggern. Da geht es dann nicht zusammen mit [10:01-23:00|12345], dass auch die Zeitpunkte triggern. Daraus entstand dann die Trennung aus Event innerhalb eines Zeitraums "or" der Zeitraum als Trigger (also Anfang und Ende).
Nun hat tfriedrich85 2 Lösungen und kann sich die Unterschiede klar machen.

Zitat(Dein "or" triggert aber erst um 10:08 statt 10:01 - ist aber nicht relevant, da wahrscheinlich ein Tippfehler)
copy-paste-typo.
War nicht der erste, wird nicht der letzte sein.... ;-)
Titel: Antw:DOIF reagiert nicht auf Dummy!
Beitrag von: tfriedrich85 am 09 November 2020, 14:47:39
Zitat von: tfriedrich85 am 06 November 2020, 15:32:26
Diese Lösung finde ich super.Vielen Dank! Hab aber noch 2 Verständnisprobleme:

1. (([?10:01-23:00|12345] and [$SELF:"Tag"]) or [10:08-23:00|12345]) - Warum das or? Wenn ich den Teil "or [10:08-23:00|12345]" entferne funktioniert es nicht mehr.
2. ([?10:01-23:00| - Was bewirkt das ?

Danke dir! Ich muss defmod mal in Ruhe ansehen, das scheint interessant zu sein...

Danke Sany, ich hab das nach deinem Vorschlag implementiert. Läuft super. - und defmod hab ich mir angeschaut, wieder was gelernt.