Guten Morgen,
heute morgen ist meine Fussbodenheizung ausgefallen:
Internals:
DEF ([+0:01] and
([?OG.Flur.Fussboden.Links_Sw_FBInekeArbeitszimmer] eq "on" or
[?OG.Flur.Fussboden.Links_Sw_FBInekeSchlafzimmer] eq "on" or
[?OG.Flur.Fussboden.Links_Sw_FBLennartLinks] eq "on" or
[?OG.Flur.Fussboden.Links_Sw_FBLennartRechts] eq "on" or
[?OG.Flur.Fussboden.Rechts_Sw_FBBadLinks] eq "on" or
[?OG.Flur.Fussboden.Rechts_Sw_FBBadRechts] eq "on" or
[?OG.Flur.Fussboden.Rechts_Sw_FBFlur] eq "on"))
(set D_EG.HWR.FussbodenAnforderung on)
DOELSE
(set D_EG.HWR.FussbodenAnforderung off)
NAME DI_EG.HWR.FussbodenpumpeAnforderung
NR 974
NTFY_ORDER 50-DI_EG.HWR.FussbodenpumpeAnforderung
STATE cmd_2
TYPE DOIF
Readings:
2016-03-26 10:30:34 cmd_event timer_1
2016-03-26 10:30:34 cmd_nr 2
2016-03-26 10:30:34 state cmd_2
2016-03-27 01:59:18 timer_1_c1 back to the past ist not allowed
2016-03-21 17:04:23 wait_timer no timer
Condition:
0 DOIF_time_once($hash,$hash->{timer}{0},$wday,"") and (InternalDoIf($hash,'OG.Flur.Fussboden.Links_Sw_FBInekeArbeitszimmer','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "on" or InternalDoIf($hash,'OG.Flur.Fussboden.Links_Sw_FBInekeSchlafzimmer','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "on" or InternalDoIf($hash,'OG.Flur.Fussboden.Links_Sw_FBLennartLinks','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "on" or InternalDoIf($hash,'OG.Flur.Fussboden.Links_Sw_FBLennartRechts','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "on" or InternalDoIf($hash,'OG.Flur.Fussboden.Rechts_Sw_FBBadLinks','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "on" or InternalDoIf($hash,'OG.Flur.Fussboden.Rechts_Sw_FBBadRechts','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "on" or InternalDoIf($hash,'OG.Flur.Fussboden.Rechts_Sw_FBFlur','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "on")
Days:
Devices:
Do:
0:
0 set D_EG.HWR.FussbodenAnforderung on
1:
0 set D_EG.HWR.FussbodenAnforderung off
Helper:
event timer_1
globalinit 1
last_timer 1
sleeptimer -1
timerdev
timerevent timer_1
triggerDev
timerevents:
timer_1
triggerEvents:
timer_1
Internals:
0 OG.Flur.Fussboden.Links_Sw_FBInekeArbeitszimmer:STATE OG.Flur.Fussboden.Links_Sw_FBInekeSchlafzimmer:STATE OG.Flur.Fussboden.Links_Sw_FBLennartLinks:STATE OG.Flur.Fussboden.Links_Sw_FBLennartRechts:STATE OG.Flur.Fussboden.Rechts_Sw_FBBadLinks:STATE OG.Flur.Fussboden.Rechts_Sw_FBBadRechts:STATE OG.Flur.Fussboden.Rechts_Sw_FBFlur:STATE
all OG.Flur.Fussboden.Links_Sw_FBInekeArbeitszimmer:STATE OG.Flur.Fussboden.Links_Sw_FBInekeSchlafzimmer:STATE OG.Flur.Fussboden.Links_Sw_FBLennartLinks:STATE OG.Flur.Fussboden.Links_Sw_FBLennartRechts:STATE OG.Flur.Fussboden.Rechts_Sw_FBBadLinks:STATE OG.Flur.Fussboden.Rechts_Sw_FBBadRechts:STATE OG.Flur.Fussboden.Rechts_Sw_FBFlur:STATE
Interval:
Itimer:
Localtime:
0 1459040357
Readings:
Realtime:
0 01:59:17
Regexp:
State:
Time:
0 +0:01
Timecond:
0 0
Timer:
0 0
Timers:
0 0
Triggertime:
Attributes:
room EG.HWR
wait 300,1800
Dieses DOIF steuert die Anforderung von Fußbodenwärme und meldet den Fehler:
cmd_event timer_1 2016-03-26 10:30:34
cmd_nr 2 2016-03-26 10:30:34
state cmd_2 2016-03-26 10:30:34
timer_1_c1 back to the past ist not allowed 2016-03-27 01:59:18
wait_timer no timer 2016-03-21 17:04:23
Die Zeitumstellung erfolgte um 2:00 Uhr und hat DOIF verwirrt...
Ciao, -MN
Dito. Davon war ich auch mehrfach betroffen. U.a. meine Zirkulation blieb aus. :-)
Ja. Muss ich mir mal anschauen. Eigentlich müsste er sich nach einer Stunde wieder gefangen haben.
Gruß
Damian
Danke, Damian,
die nächste Umstellung ist in sechs Monaten - also nicht so kritisch.
Bei mir half nur ein "shutdown restart".
Ciao, -MN
Zitat von: Morgennebel am 27 März 2016, 08:55:03
Danke, Damian,
die nächste Umstellung ist in sechs Monaten - also nicht so kritisch.
Bei mir half nur ein "shutdown restart".
Ciao, -MN
"back to the past" gibt´s erst in einem Jahr ;)
Habe es gefixed.
Dann warten wir die nächste Zeitumstellung ab :)
Gruß
Damian
Danke dir, Damian.
Hi,
wieso eigentlich "back to the past"?
Die Uhr wurde doch eine Stunde vorgestellt. Es gab diese Nacht die Zeiten zwischen 2:00 und 2:59 einfach nicht, weil nach 1:59 direkt 3:00 Uhr folgte. Das lag doch alles in der Zukunft...
Bei der Winterzeit wird es die Stunde doppelt geben... das ist für solche Planaufgaben doch viel schlimmer, oder?
Da besteht doch die Gefahr der Doppeltausführung solcher Codeschnipsel :)
Grüße
Reinerlein
Zitat von: Reinerlein am 27 März 2016, 12:07:11
Hi,
wieso eigentlich "back to the past"?
Die Uhr wurde doch eine Stunde vorgestellt. Es gab diese Nacht die Zeiten zwischen 2:00 und 2:59 einfach nicht, weil nach 1:59 direkt 3:00 Uhr folgte. Das lag doch alles in der Zukunft...
Bei der Winterzeit wird es die Stunde doppelt geben... das ist für solche Planaufgaben doch viel schlimmer, oder?
Da besteht doch die Gefahr der Doppeltausführung solcher Codeschnipsel :)
Grüße
Reinerlein
Das hängt ja davon ab, wie man die Zeitumstellung in seinem Programm berücksichtigt hat, die kritische Stelle in DOIF sah so aus:
if ($isdst_now != $isdst) {
if ($isdst_now == 1) {
$next_time+=3600 if ($isdst == 0);
} else {
$next_time-=3600 if ($isdst == 1);
}
}
if ($next_time < $now) {
readingsSingleUpdate ($hash,"timer_".($nr+1)."_c".($cond+1),"back to the past ist not allowed",AttrVal($hash->{NAME},"timerevent","")?1:0);
return("timer_".($nr+1)."_c".($cond+1),"back to the past ist not allowed");
}
nun sieht sie anders aus ;)
Gruß
Damian
Zitat von: Morgennebel am 27 März 2016, 08:27:53
Internals:
DEF ([+0:01] and...
Darf man fragen, warum du diesen prozessorlastigen Modus verwendest?
Hi Per,
ein Aufruf je Minute "prozessorlastig"...? :)
Ganz ehrlich ist die Installation eher "Proof-of-Concept" zur Behebung der meisten Probleme mit meiner Heizung, bis die neue Heizung da ist und genügend Geld für einen Aufbau als Feldverteiler mit Klemmblöcken auf Hutschienen usw. Solange der ODROID nicht ächzt und stöhnt, kümmere ich mich erstmal um andere Dinge...
Ciao, -MN