DOIF Wochentag und Wochenende

Begonnen von Schuetze5, 26 September 2019, 09:29:43

Vorheriges Thema - Nächstes Thema

Schuetze5

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

Frank_Huber


Schuetze5

attr global holiday2we nw
ist auch gesetzt.
Sorry vergessen eben mit anzugeben.

Frank_Huber

dann poste mal ein komplettes List vom DOIF bitte.

Schuetze5


   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

Frank_Huber

seh ich gerade keinen Fehler.
GPS Koordinagen im Global sind gesetzt?

Schuetze5


Bartimaus

Setze mal die Statis der Dummys "Rolladensteuerung" und "Party" neu.
Danach führst Du mal ein checkall aus
LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Damian

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.

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

Schuetze5

#9
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}]

Damian

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 ;)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Schuetze5

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.

Morgennebel

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
Einziger Spender an FHEM e.V. mit Dauerauftrag seit >= 24 Monaten

FHEM: MacMini/ESXi, 2-3 FHEM Instanzen produktiv
In-Use: STELLMOTOR, VALVES, PWM-PWMR, Xiaomi, Allergy, Proplanta, UWZ, MQTT,  Homematic, Luftsensor.info, ESP8266, ESERA

Schuetze5

Die Uhrzeit und das Datum stimmt, kann ich ja in den readings sehen wenn ich z.B. eine Lampe einschalte.