WeekdayTimer und Perlfunktion für time

Begonnen von ToKa, 09 Dezember 2016, 20:28:44

Vorheriges Thema - Nächstes Thema

Dietmar63

Starte das System mal mit hohem log Level. Nach dem Start sofort log Level auf einen normalen Wert zurück setzen.
Dann kannst du vielleicht erkennen ob die Reihenfolge oder sonst etwas stört.

Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

ToKa

Hallo Dietmar,

habe mir mal über die Feiertage die Zeit genommen und beim Neustart von fhem verbose 5 aktiviert. Nachfolgend die Ausschnitte aus der Logdatei und man sieht m.E. gut, dass das setstate für meinen "Urlaubsdummy" viel später kommt, nachdem bereits der WDT abgearbeitet wurde:

2016.12.25 17:21:03.462 5: Cmd: >get BW 12-31<
2016.12.25 17:21:03.465 4: myWeekdayTimerTimeTable - Wochenende: 1
2016.12.25 17:21:03.465 4: myWeekdayTimerTimeTable - Device: KG.hz.ZS.Zirkulationspumpe
2016.12.25 17:21:03.465 4: myWeekdayTimerTimeTable - Event: on
2016.12.25 17:21:03.465 4: myWeekdayTimerTimeTable - Index: 1
2016.12.25 17:21:03.466 4: myWeekdayTimerTimeTable - Urlaub: nein
2016.12.25 17:21:03.466 3: myWeekdayTimerTimeTable - Return: 06:30
2016.12.25 17:21:03.467 4: myWeekdayTimerTimeTable - Wochenende: 1
2016.12.25 17:21:03.467 4: myWeekdayTimerTimeTable - Device: KG.hz.ZS.Zirkulationspumpe
2016.12.25 17:21:03.467 4: myWeekdayTimerTimeTable - Event: on
2016.12.25 17:21:03.467 4: myWeekdayTimerTimeTable - Index: 1
2016.12.25 17:21:03.468 4: myWeekdayTimerTimeTable - Urlaub: nein
2016.12.25 17:21:03.468 3: myWeekdayTimerTimeTable - Return: 06:30
2016.12.25 17:21:03.469 4: myWeekdayTimerTimeTable - Wochenende: 1
2016.12.25 17:21:03.469 4: myWeekdayTimerTimeTable - Device: KG.hz.ZS.Zirkulationspumpe
2016.12.25 17:21:03.469 4: myWeekdayTimerTimeTable - Event: on
2016.12.25 17:21:03.469 4: myWeekdayTimerTimeTable - Index: 1
2016.12.25 17:21:03.469 4: myWeekdayTimerTimeTable - Urlaub: nein
2016.12.25 17:21:03.470 3: myWeekdayTimerTimeTable - Return: 06:30
2016.12.25 17:21:03.470 4: myWeekdayTimerTimeTable - Wochenende: 1
2016.12.25 17:21:03.471 4: myWeekdayTimerTimeTable - Device: KG.hz.ZS.Zirkulationspumpe
2016.12.25 17:21:03.471 4: myWeekdayTimerTimeTable - Event: on
2016.12.25 17:21:03.471 4: myWeekdayTimerTimeTable - Index: 1
2016.12.25 17:21:03.471 4: myWeekdayTimerTimeTable - Urlaub: nein
2016.12.25 17:21:03.472 3: myWeekdayTimerTimeTable - Return: 06:30
2016.12.25 17:21:03.473 5: Cmd: >get BW 12-25<
...
2016.12.25 17:21:04.986 5: Cmd: >setstate T_L_Kalender_Start active<
2016.12.25 17:21:04.987 5: Cmd: >setstate T_L_Kalender_Start 2016-12-25 17:19:00 state active<
2016.12.25 17:21:04.987 5: Cmd: >setstate Tischleuchten off<
2016.12.25 17:21:04.988 5: Cmd: >setstate Tischleuchten 2016-12-25 17:14:06 LastDevice E1.wz.ZS.Tischleuchte<
2016.12.25 17:21:04.988 5: Cmd: >setstate Tischleuchten 2016-12-25 17:14:06 LastDevice_Abs E1.wz.ZS.Tischleuchte<
2016.12.25 17:21:04.989 5: Cmd: >setstate Tischleuchten 2016-12-25 17:14:06 state off<
2016.12.25 17:21:04.989 5: Cmd: >setstate Urlaub.ZS.dum atHome<
2016.12.25 17:21:04.990 5: Cmd: >setstate Urlaub.ZS.dum 2016-12-25 17:18:40 state atHome<
2016.12.25 17:21:04.991 5: Cmd: >setstate WeatherAtHome <strong>Schwetzingen (Yahoo)</strong></br>Temperatur: 8 °C</br>Feuchtigkeit: 81 %</br>Luftdruck: 1013 hPa</br>Konditionen: wolkig</br>Wind: Wind: SW 14 km/h</br>Stand: 2016-12-25 17:20:22<


Insgesamt wir zwar WDT mehrfach durchlaufen, aber eben leider ohne, dass mein Dummy wieder den richtigen Wert hat.

Gibt es eine Lösung für das Problem?

Gruß
Torsten
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Dietmar63

Du kannst nach dem Ereignis initialized Heating_Control_SetAllTemp () in einem notify aufrufen.
Dann werden die timer erneut geladen
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

ToKa

Hallo Dietmar,

danke für den Tipp, werde dann ein notify dafür nutzen.

Gruß

Torsten
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

ToKa

Hallo Dietmar,

habe ein Notify eingericht, das ausgeführt wird, sobald fhem initialisiert ist.

Der Aufruf von Heating_Control_SetAllTemps() geht aber nur auf alle mit HC definierten Timer:
2016.12.26 12:44:49.897 3: Heating_Control_SetAllTemps() done on: E2.ku.ZS.Heizung.tim ST.bz.HR.Steuerung.tim


Dann habe ich es mit WeekdayTimer_SetAllParms() probiert, mit dem zwar alle WDT angesprochen werden - auch der für die Zirkulationspumpe, aber meine eigene Funktion wird dabei nicht ausgeführt. Es fehlen die Log-Einträge meiner Funktion und für die Werte der Schaltzeiten wird der Urlaubsdummy nicht berücksichtigt.

2016.12.26 12:38:46.032 3: WeekdayTimer_SetAllParms() done on: E1.wz.ZS.Bodenheizung.tim.wt E1.wz.ZS.Heizung.tim E1.wz.ZS.Wandheizung.tim.we E1.wz.ZS.Wandheizung.tim.wt E2.ez.ZS.Bodenheizung.tim.we E2.ez.ZS.Bodenheizung.tim.wt EG.fl.HR.Steuerung.tim KG.hz.ZS.Zirkulationspumpe.tim ST.sz.HR.Steuerung.tim ZS.zs.HR.mainRadiators.tim

Was mache ich falsch?

Gruß
Torsten
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Dietmar63

Es werden nur Devices, die als Heizung erkannt werden, automatisch geschaltet. Zirkulationspumpen gehören nicht dazu.
Man kann das aber mit Switchinthepast erzwingen.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

ToKa

Hallo Dietmar,

ich will ja auch gar nicht, dass etwas geschaltet wird, sondern nur, dass die Schaltzeiten neu berechnet werden, so dass mein "Urlaubsdummy" berücksichtigt wird.

Kann ich nicht die Funktion von WDT aufrufen, die Du um Mitternacht benutzt, um die Schaltzeiten neu zu berechnen? Wenn ja, wie lautet diese?

Gruß

Torsten
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Dietmar63

Ja, das geht, ist aber nicht so einfach.
Bin noch bis morgen Abend im Weihnachtsurlaub. Dann suche ich den Aufruf heraus.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Dietmar63

versuch mal:
WeekdayTimer_SetTimerForMidnightUpdate( { HASH => $defs{WDTNAME}} )
WDTNAME musst du ersetzen, durch deine Bezeichung des WDT.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm