FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Schuetze5 am 26 September 2019, 09:29:43

Titel: DOIF Wochentag und Wochenende
Beitrag von: Schuetze5 am 26 September 2019, 09:29:43
Hallo ich habe meinen FHEM Server neu aufgesetzt und seitdem funktioniert folgendes DOIF nicht mehr:
([+{sunrise_rel(0,"06:45","10:00")}|8] or [+{sunrise_rel(0,"07:45","10:00")}|7])
Die Rollladen sind so bei meiner alten installation um 6:45 hochgefahren, jetzt fahren sie immer erst um 7:45 hoch.
{$we} gibt eine 0 aus.
Meine Holiday-Datei gibt auch None aus:
defmod nw holiday
attr nw alias NRW Feiertage
attr nw group Urlaub
attr nw room Logik->Kalender
attr nw stateFormat Heute state <br>\
Morgen tomorrow <br>\
Gestern yesterday

setstate nw Heute none <br>\
Morgen none <br>\
Gestern none
setstate nw 2019-09-26 04:30:00 state none
setstate nw 2019-09-26 04:30:00 tomorrow none
setstate nw 2019-09-26 04:30:00 yesterday none


Bin über jede Hilfe dankbar
Titel: Antw:DOIF Wochentag und Wochenende
Beitrag von: Frank_Huber am 26 September 2019, 09:32:33
attr global holiday2we nw
Titel: Antw:DOIF Wochentag und Wochenende
Beitrag von: Schuetze5 am 26 September 2019, 09:42:18
attr global holiday2we nw
ist auch gesetzt.
Sorry vergessen eben mit anzugeben.
Titel: Antw:DOIF Wochentag und Wochenende
Beitrag von: Frank_Huber am 26 September 2019, 09:45:53
dann poste mal ein komplettes List vom DOIF bitte.
Titel: Antw:DOIF Wochentag und Wochenende
Beitrag von: Schuetze5 am 26 September 2019, 09:54:26

   DEF        (
([?Rollladensteuerung] eq "Automatik" or [?Rollladensteuerung] eq "Beschattung") and
[?FG_WC] ne "open" and
([+{sunrise_rel(0,"06:45","10:00")}|8] or [+{sunrise_rel(0,"07:45","10:00")}|7])
)
(set Ro_WC 100)
DOELSEIF
(([?Rollladensteuerung] eq "Automatik" or [?Rollladensteuerung] eq "Beschattung") and [?FG_WC] eq "closed" and [?Party] eq "aus" and [+{sunset_rel(0,"16:00","23:00")}])
(set Ro_WC 1)
DOELSEIF
(([?Rollladensteuerung] eq "Automatik" or [?Rollladensteuerung] eq "Beschattung") and [?FG_WC] ne "closed" and [?Party] eq "aus" and [+{sunset_rel(0,"16:00","23:00")}])
(set Ro_WC 12)
DOELSEIF
(([?Rollladensteuerung] eq "Automatik" or [?Rollladensteuerung] eq "Beschattung") and [?Party] eq "ein" and [+{sunset_rel(0,"16:00","23:00")}])
(set Ro_WC 12)
   FUUID      5d823126-f33f-d66a-eeac-82f8df12766a987e
   FVERSION   98_DOIF.pm:0.197860/2019-07-05
   MODEL      FHEM
   NAME       RO_WCdoif
   NR         293
   NTFY_ORDER 50-RO_WCdoif
   STATE      cmd_1
   TYPE       DOIF
   VERSION    19786 2019-07-05 21:47:08
   READINGS:
     2019-09-26 07:45:00   cmd             1
     2019-09-26 07:45:00   cmd_event       timer_2
     2019-09-26 07:45:00   cmd_nr          1
     2019-09-18 15:29:10   mode            enabled
     2019-09-26 07:45:00   state           cmd_1
     2019-09-26 06:47:18   timer_01_c01    27.09.2019 06:48:59|8
     2019-09-26 07:45:00   timer_02_c01    27.09.2019 07:45:00|7
     2019-09-25 19:57:15   timer_03_c02    26.09.2019 19:54:53
     2019-09-25 19:57:15   timer_04_c03    26.09.2019 19:54:53
     2019-09-25 19:57:15   timer_05_c04    26.09.2019 19:54:53
   Regex:
     accu:
   attr:
     cmdState:
     waitdel:
   condition:
     0           (::InternalDoIf($hash,'Rollladensteuerung','STATE') eq "Automatik" or ::InternalDoIf($hash,'Rollladensteuerung','STATE') eq "Beschattung") and ::InternalDoIf($hash,'FG_WC','STATE') ne "open" and (::DOIF_time_once($hash,0,$wday,"8") or ::DOIF_time_once($hash,1,$wday,"7"))
     1          (::InternalDoIf($hash,'Rollladensteuerung','STATE') eq "Automatik" or ::InternalDoIf($hash,'Rollladensteuerung','STATE') eq "Beschattung") and ::InternalDoIf($hash,'FG_WC','STATE') eq "closed" and ::InternalDoIf($hash,'Party','STATE') eq "aus" and ::DOIF_time_once($hash,2,$wday)
     2          (::InternalDoIf($hash,'Rollladensteuerung','STATE') eq "Automatik" or ::InternalDoIf($hash,'Rollladensteuerung','STATE') eq "Beschattung") and ::InternalDoIf($hash,'FG_WC','STATE') ne "closed" and ::InternalDoIf($hash,'Party','STATE') eq "aus" and ::DOIF_time_once($hash,3,$wday)
     3          (::InternalDoIf($hash,'Rollladensteuerung','STATE') eq "Automatik" or ::InternalDoIf($hash,'Rollladensteuerung','STATE') eq "Beschattung") and ::InternalDoIf($hash,'Party','STATE') eq "ein" and ::DOIF_time_once($hash,4,$wday)
   days:
     0          8
     1          7
   devices:
   do:
     0:
       0          set Ro_WC 100
     1:
       0          set Ro_WC 1
     2:
       0          set Ro_WC 12
     3:
       0          set Ro_WC 12
     4:
   helper:
     event      timer_2
     globalinit 1
     last_timer 5
     sleeptimer -1
     timerdev   
     timerevent timer_2
     timereventsState
     triggerDev
     DOIF_eventas:
       cmd_nr: 1
       cmd: 1
       cmd_event: timer_2
       state: cmd_1
     timerevents:
       timer_2
     triggerEvents:
       timer_2
   internals:
     0           Rollladensteuerung:STATE FG_WC:STATE
     1           Rollladensteuerung:STATE FG_WC:STATE Party:STATE
     2           Rollladensteuerung:STATE FG_WC:STATE Party:STATE
     3           Rollladensteuerung:STATE Party:STATE
     all         Rollladensteuerung:STATE FG_WC:STATE Party:STATE
   interval:
   intervalfunc:
   itimer:
   localtime:
     0          1569559739
     1          1569563100
     2          1569520493
     3          1569520493
     4          1569520493
   perlblock:
   readings:
   realtime:
     0          06:48:59
     1          07:45:00
     2          19:54:53
     3          19:54:53
     4          19:54:53
   time:
     0          +{sunrise_rel(0,"06:45","10:00")}
     1          +{sunrise_rel(0,"07:45","10:00")}
     2          +{sunset_rel(0,"16:00","23:00")}
     3          +{sunset_rel(0,"16:00","23:00")}
     4          +{sunset_rel(0,"16:00","23:00")}
   timeCond:
     0          0
     1          0
     2          1
     3          2
     4          3
   timer:
     0          0
     1          0
     2          0
     3          0
     4          0
   timers:
     0           0  1
     1           2
     2           3
     3           4
   triggertime:
     1569520493:
       localtime  1569520493
       hash:
     1569559739:
       localtime  1569559739
       hash:
     1569563100:
       localtime  1569563100
       hash:
   uiState:
   uiTable:
Attributes:
   alias      RO_WCdoif
   do         always
   room       Logik->WC
Titel: Antw:DOIF Wochentag und Wochenende
Beitrag von: Frank_Huber am 26 September 2019, 09:58:28
seh ich gerade keinen Fehler.
GPS Koordinagen im Global sind gesetzt?
Titel: Antw:DOIF Wochentag und Wochenende
Beitrag von: Schuetze5 am 26 September 2019, 10:03:27
Ja die Zeiten passen:  06:48:59|8
Titel: Antw:DOIF Wochentag und Wochenende
Beitrag von: Bartimaus am 26 September 2019, 10:48:59
Setze mal die Statis der Dummys "Rolladensteuerung" und "Party" neu.
Danach führst Du mal ein checkall aus
Titel: Antw:DOIF Wochentag und Wochenende
Beitrag von: Damian am 26 September 2019, 11:48:31
Du kannst ja mal $we zum Triggerzeitpunkt ausgeben. Die ganze Wochentagsteuerung in DOIF basiert auf dieser Variablen.

Zum Testen einfach mal definieren:

define di_we DOIF {[07:45];set_Reading ("we",$we)}

Dann kannst du im nachhinein im Reading we sehen, was DOIF für einen Wert zu diesem Zeitpunkt bekommt.

DOIF wertet inzwischen auch mehrere holiday-Dateien aus, die in global unter holiday2we definiert sind, das scheint bei dir aber nicht das Problem zu sein.

Titel: Antw:DOIF Wochentag und Wochenende
Beitrag von: Schuetze5 am 26 September 2019, 12:40:21
define di_we DOIF {[07:45];set_Reading ("we",$we)}
funktioniert nicht.

Fehlermeldung:
di_we DOIF: no right bracket: {[07:45]
Unknown command set_Reading, try help.

Ich habe es mal nach bestem wissen umgebaut:
define di_we DOIF ([07:45])(setrReading di_we we {$we})
dann steht aber nur {$we} im reading we.

define di_we DOIF ([07:45])(setrReading di_we we [{$we}] )
gibt ein reading [{$we}]
Titel: Antw:DOIF Wochentag und Wochenende
Beitrag von: Damian am 26 September 2019, 12:58:11
Zitat von: Schuetze5 am 26 September 2019, 12:40:21
define di_we DOIF {[07:45];set_Reading ("we",$we)}
funktioniert nicht.

Fehlermeldung:
di_we DOIF: no right bracket: {[07:45]
Unknown command set_Reading, try help.

Ich habe es mal nach bestem wissen umgebaut:
define di_we DOIF ([07:45])(setrReading di_we we {$we})
dann steht aber nur {$we} im reading we.

Wenn du es nicht über den Webeditor eingibst, dann musst du, wie immer, Semikolons doppeln. Deine Lösung funktioniert so nicht, weil im FHEM-Ausführungteil $we nicht definiert ist, auch wenn du es korrekterweise mit {($we)} angegeben hättest ;)
Titel: Antw:DOIF Wochentag und Wochenende
Beitrag von: Schuetze5 am 26 September 2019, 13:10:32
OK Danke mit doppel Simikolon funktioniert es.
Er gibt mir als we reading eine 1 aus, also muss ich mal schauen wo die jetzt wegkommt.
Titel: Antw:DOIF Wochentag und Wochenende
Beitrag von: Morgennebel am 26 September 2019, 13:12:28
Zitat von: Schuetze5 am 26 September 2019, 09:29:43
Die Rollladen sind so bei meiner alten installation um 6:45 hochgefahren, jetzt fahren sie immer erst um 7:45 hoch.

Ist Dein Rechner in der falschen Zeitzone? Was sagt /etc/timezone?

Ciao, -MN
Titel: Antw:DOIF Wochentag und Wochenende
Beitrag von: Schuetze5 am 26 September 2019, 13:18:18
Die Uhrzeit und das Datum stimmt, kann ich ja in den readings sehen wenn ich z.B. eine Lampe einschalte.