Frage zum Zeitraster: DOIF wird auch zur vollen Stunde ausgeführt

Begonnen von FunkOdyssey, 09 April 2016, 21:22:53

Vorheriges Thema - Nächstes Thema

FunkOdyssey

Hallo,

hat jemand eine Idee, wieso bei folgendem DOIF-(Auszug), die Zirkulationspumpe nicht alle 45min für 3min angeht, sondern auch zur vollen Stunde (siehe Log). Das DOIF verbleibt den kompletten Zeitraum in (hier) cmd_5.

DOELSEIF
(
([23:00-06:00|8] or [23:00-07:00|7]) and
[+:45]
)
(
set zirkulation on-for-timer 180
)


Log:

2016-04-09_00:00:00 zirkulation level: 100
2016-04-09_00:03:02 zirkulation level: 0
2016-04-09_00:45:00 zirkulation level: 100
2016-04-09_00:48:02 zirkulation level: 0
2016-04-09_01:00:00 zirkulation level: 100
2016-04-09_01:03:02 zirkulation level: 0
2016-04-09_01:45:00 zirkulation level: 100
2016-04-09_01:48:02 zirkulation level: 0
2016-04-09_02:00:00 zirkulation level: 100
2016-04-09_02:03:02 zirkulation level: 0
2016-04-09_02:45:00 zirkulation level: 100
2016-04-09_02:48:02 zirkulation level: 0
2016-04-09_03:00:00 zirkulation level: 100
2016-04-09_03:03:03 zirkulation level: 0
2016-04-09_03:45:00 zirkulation level: 100
2016-04-09_03:48:02 zirkulation level: 0
2016-04-09_04:00:00 zirkulation level: 100
2016-04-09_04:03:02 zirkulation level: 0
2016-04-09_04:45:00 zirkulation level: 100
2016-04-09_04:48:02 zirkulation level: 0
2016-04-09_05:00:00 zirkulation level: 100
2016-04-09_05:03:02 zirkulation level: 0
2016-04-09_05:45:00 zirkulation level: 100
2016-04-09_05:48:03 zirkulation level: 0
2016-04-09_07:00:00 zirkulation level: 100
2016-04-09_07:05:03 zirkulation level: 0
2016-04-09_07:15:00 zirkulation level: 100
2016-04-09_07:20:02 zirkulation level: 0
2016-04-09_07:30:00 zirkulation level: 100
2016-04-09_07:35:02 zirkulation level: 0
2016-04-09_07:45:00 zirkulation level: 100
2016-04-09_07:50:02 zirkulation level: 0
2016-04-09_08:00:00 zirkulation level: 100
2016-04-09_08:05:02 zirkulation level: 0
2016-04-09_08:15:00 zirkulation level: 100
2016-04-09_08:20:02 zirkulation level: 0
2016-04-09_08:30:00 zirkulation level: 100
2016-04-09_08:35:02 zirkulation level: 0
2016-04-09_08:45:00 zirkulation level: 100
2016-04-09_08:50:02 zirkulation level: 0

Damian

Zitat von: FunkOdyssey am 09 April 2016, 21:22:53
Hallo,

hat jemand eine Idee, wieso bei folgendem DOIF-(Auszug), die Zirkulationspumpe nicht alle 45min für 3min angeht, sondern auch zur vollen Stunde (siehe Log). Das DOIF verbleibt den kompletten Zeitraum in (hier) cmd_5.

DOELSEIF
(
([23:00-06:00|8] or [23:00-07:00|7]) and
[+:45]
)
(
set zirkulation on-for-timer 180
)


Log:

2016-04-09_00:00:00 zirkulation level: 100
2016-04-09_00:03:02 zirkulation level: 0
2016-04-09_00:45:00 zirkulation level: 100
2016-04-09_00:48:02 zirkulation level: 0
2016-04-09_01:00:00 zirkulation level: 100
2016-04-09_01:03:02 zirkulation level: 0
2016-04-09_01:45:00 zirkulation level: 100
2016-04-09_01:48:02 zirkulation level: 0
2016-04-09_02:00:00 zirkulation level: 100
2016-04-09_02:03:02 zirkulation level: 0
2016-04-09_02:45:00 zirkulation level: 100
2016-04-09_02:48:02 zirkulation level: 0
2016-04-09_03:00:00 zirkulation level: 100
2016-04-09_03:03:03 zirkulation level: 0
2016-04-09_03:45:00 zirkulation level: 100
2016-04-09_03:48:02 zirkulation level: 0
2016-04-09_04:00:00 zirkulation level: 100
2016-04-09_04:03:02 zirkulation level: 0
2016-04-09_04:45:00 zirkulation level: 100
2016-04-09_04:48:02 zirkulation level: 0
2016-04-09_05:00:00 zirkulation level: 100
2016-04-09_05:03:02 zirkulation level: 0
2016-04-09_05:45:00 zirkulation level: 100
2016-04-09_05:48:03 zirkulation level: 0
2016-04-09_07:00:00 zirkulation level: 100
2016-04-09_07:05:03 zirkulation level: 0
2016-04-09_07:15:00 zirkulation level: 100
2016-04-09_07:20:02 zirkulation level: 0
2016-04-09_07:30:00 zirkulation level: 100
2016-04-09_07:35:02 zirkulation level: 0
2016-04-09_07:45:00 zirkulation level: 100
2016-04-09_07:50:02 zirkulation level: 0
2016-04-09_08:00:00 zirkulation level: 100
2016-04-09_08:05:02 zirkulation level: 0
2016-04-09_08:15:00 zirkulation level: 100
2016-04-09_08:20:02 zirkulation level: 0
2016-04-09_08:30:00 zirkulation level: 100
2016-04-09_08:35:02 zirkulation level: 0
2016-04-09_08:45:00 zirkulation level: 100
2016-04-09_08:50:02 zirkulation level: 0


Es fehlt in der Doku, dass logischerweise nur Teiler von 60  bei einem ausgerichteten Zeitraster sinnvoll sein können.

Alle 45 Minuten wäre [+00:45].

Gruß

Damian


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

FunkOdyssey

Ach, was liebe ich den Support hier im Forum.
Und das ist jetzt kein Sarkasmus. :-)

Danke für deinen Hinweis, Damian.

Könntest du das evtl. der in der Doku aufnehmen?



Damian

Zitat von: FunkOdyssey am 10 April 2016, 01:01:08
Ach, was liebe ich den Support hier im Forum.
Und das ist jetzt kein Sarkasmus. :-)

Danke für deinen Hinweis, Damian.

Könntest du das evtl. der in der Doku aufnehmen?

ja.

Eine Alternative wäre:

define di DOIF ([23:00]) (set zirkulation on-for-timer 180)
DOELSEIF ([06:00|8] or [07:00|7])
attr di repeatcmd 2700


Damit wird der erste Schaltzeitpunkt genau festgelegt und es wird kein einziges mal unnötig getriggert. Das ist in deiner Definition nicht der Fall.

Gruß

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

FunkOdyssey

Stimmt. Aber mein Zirkulations-DOIF besteht aus insgesamt fünf Bedingungen. Ich würde ein wenig den Überblick verlieren. Vor allem habe ich auch das Problem, dass einige deiner neueren Features (noch) nicht für Mehrfachsequenzen funktionieren. Hierzu hatte ich bereits ein Thread geöffnet.

Ich meine:
repeatcmd 2700,2500,2200:300,200,100:1000,500,250
Ist nur ein Beispiel.