(ERLEDIGT)DOIF mit sunset-sunrise...

Begonnen von misux, 05 Januar 2022, 23:51:50

Vorheriges Thema - Nächstes Thema

misux

HI!

Ich checke es grad nicht... Habe mir ein MiniDOIF erstellt der einen Dummy auf Tag oder Nacht schalten soll..

Von SonnenAUFgang bis SonnenUNTERgang soll der dummy auf Tag stehen
und
von sunnenUNTERgang bis sonnenAUFgang soll der dummy auf Nacht stehen.

Eigentlich dachte ich das kann ja nicht so schwer sein.... Leider macht er es bei mir grade wenn ich checkall durchführe aberandersrum...

Hier mein DOIF:
([{sunset("HORIZON=-2.5")}]-[{sunrise("HORIZON=-1.0")}]) (set Tageslicht Nacht)
DOELSEIF
([{sunrise("HORIZON=-1.0")}]-[{sunset("HORIZON=-2.5")}]) (set Tageslicht Tag)


Und das List:
Internals:
   CFGFN     
   DEF        ([{sunset("HORIZON=-2.5")}]-[{sunrise("HORIZON=-1.0")}]) (set Tageslicht Nacht)
DOELSEIF
([{sunrise("HORIZON=-1.0")}]-[{sunset("HORIZON=-2.5")}]) (set Tageslicht Tag)
   FUUID      61d61a67-f33f-e7ed-6082-b93301342ae4ad90
   MODEL      FHEM
   NAME       DOIFTageslicht
   NOTIFYDEV  global
   NR         107839
   NTFY_ORDER 50-DOIFTageslicht
   STATE      initialized
   TYPE       DOIF
   VERSION    25295 2021-12-04 18:13:39
   Helper:
     DBLOG:
       cmd:
         logdb:
           TIME       1641423020.27976
           VALUE      0
       cmd_event:
         logdb:
           TIME       1641422767.6222
           VALUE      DOIFTageslicht
       cmd_nr:
         logdb:
           TIME       1641422767.6222
           VALUE      2
       cmd_seqnr:
         logdb:
           TIME       1641422767.6222
           VALUE      2
       error:
         logdb:
           TIME       1641422767.59238
           VALUE      [{sunrise("HORIZON=-1.0")}]-[{sunset("HORIZON=-2.5")}]: Unknown command [{sunrise("HORIZON=-1.0")}]-[{sunset("HORIZON=-2.5")}], try help.
       mode:
         logdb:
           TIME       1641423020.27976
           VALUE      enabled
       state:
         logdb:
           TIME       1641423021.40314
           VALUE      checkall
   READINGS:
     2022-01-05 23:50:20   cmd             0
     2022-01-05 23:50:20   mode            enabled
     2022-01-05 23:50:20   state           initialized
     2022-01-05 23:50:20   timer_01_c01    06.01.2022 16:39:06
     2022-01-05 23:50:20   timer_02_c01    06.01.2022 08:30:23
     2022-01-05 23:50:20   timer_03_c02    06.01.2022 08:30:23
     2022-01-05 23:50:20   timer_04_c02    06.01.2022 16:39:06
   Regex:
     accu:
     collect:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::DOIF_time_once($hash,0,$wday)-::DOIF_time_once($hash,1,$wday)
     1          ::DOIF_time_once($hash,2,$wday)-::DOIF_time_once($hash,3,$wday)
   days:
   do:
     0:
       0          set Tageslicht Nacht
     1:
       0          set Tageslicht Tag
     2:
   helper:
     DEVFILTER  ^global$
     NOTIFYDEV  global
     globalinit 1
     last_timer 4
     sleeptimer -1
     triggerDev
   hmccu:
   intervalfunc:
   localtime:
     0          1641483546
     1          1641454223
     2          1641454223
     3          1641483546
   realtime:
     0          16:39:06
     1          08:30:23
     2          08:30:23
     3          16:39:06
   time:
     0          {sunset("HORIZON=-2.5")}
     1          {sunrise("HORIZON=-1.0")}
     2          {sunrise("HORIZON=-1.0")}
     3          {sunset("HORIZON=-2.5")}
   timeCond:
     0          0
     1          0
     2          1
     3          1
   timer:
     0          0
     1          0
     2          0
     3          0
   timers:
     0           0  1
     1           2  3
   triggertime:
     1641454223:
       localtime  1641454223
       hash:
     1641483546:
       localtime  1641483546
       hash:
   uiState:
   uiTable:
Attributes:
   checkall   all
   do         always


Wo ist denn nu schonwieder mein Hirnfurtz...? Hat einer eine Idee?


Damian

Falsche Klammersetzung.

korrekt:

([{sunset("HORIZON=-2.5")}-{sunrise("HORIZON=-1.0")}]) (set Tageslicht Nacht)
DOELSEIF
([{sunrise("HORIZON=-1.0")}-{sunset("HORIZON=-2.5")}]) (set Tageslicht Tag)


Abgesehen davon ist dein DOELSEIF-Fall das Gegenteil vom ersten, also reicht:

([{sunset("HORIZON=-2.5")}-{sunrise("HORIZON=-1.0")}]) (set Tageslicht Nacht) DOELSE (set Tageslicht Tag)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

misux

 ::) Oh Mist... War wohl schon spät gestern...

Dankeschön!