DOIF funktioniert nicht zuverlässig!?

Begonnen von odie13690, 13 Juli 2015, 07:04:16

Vorheriges Thema - Nächstes Thema

odie13690

Hallo,

ich nutze ein DOIF, das nach Initialisierung ein Mal funktioniert, danach nicht mehr. Der Timer wird zwar weiter gesetzt, aber die SET-Anweisungen nicht ausgeführt. Ich hoffe, dass mir jemand die Ursache erklären kann?

odie13690

igami

Hallo odie13690,

wie ist denn der State von AnzahlFilterReset?

Grüße
igami
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

andiw


odie13690

Zitat von: igami am 13 Juli 2015, 09:15:34wie ist denn der State von AnzahlFilterReset?
Z. Z. 0

Zitat von: andiw am 13 Juli 2015, 09:21:42
do always ?
Sollte nach meiner Auffassung nicht notwendig sein, da der Timer täglich um 23:59:55 dafür sorgt, dass das DOIF ausgeführt wird. Dazu führt ein "do Always" an dieser Stelle zu Problemen an anderer Stelle meiner Steuerung...

odie13690

igami

Zitat von: odie13690 am 13 Juli 2015, 09:34:45
Z. Z. 0

Und was soll das DOIF deiner Meinung nach machen?

Grüße
igami
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

odie13690

Zitat von: igami am 13 Juli 2015, 13:03:17Und was soll das DOIF deiner Meinung nach machen?

Täglich um 23.59.55 Uhr wenn der Reset-Wert größer 0 ist (DOIF = Tag mit Reset), soll der aktuelle Zählerstand zum Reset-Wert dazu addiert werden set AnzahlFilterVorschubProTag {([AnzahlFilterVorschub]+[AnzahlFilterReset])} und als Zähler für heute gespeichert (und geloggt) werden. Danach wird der Reset-Wert auf 0 set AnzahlFilterReset 0 sowie der aktuelle Zähler als Zähler des Vortages gesetzt. set AnzahlFilterVortag [AnzahlFilterVorschub]
Ist der Reset-Wert gleich Null (DOELSE = Tag ohne Reset) soll der Zählerstand des Vortages vom aktuellen abgezogen werden, set AnzahlFilterVorschubProTag {([AnzahlFilterVorschub]-[AnzahlFilterVortag])} um ebenso als Zähler für heute gespeichert (und geloggt) zu werden. Danach soll der aktuelle Zähler als Zähler des Vortages gesetzt werden. set AnzahlFilterVortag [AnzahlFilterVorschub]

odie13690

Virsacer

Zitat von: odie13690 am 13 Juli 2015, 09:34:45
Sollte nach meiner Auffassung nicht notwendig sein, da der Timer täglich um 23:59:55 dafür sorgt, dass das DOIF ausgeführt wird. Dazu führt ein "do Always" an dieser Stelle zu Problemen an anderer Stelle meiner Steuerung...
Ohne do always wird aber der gleiche Befehl nicht 2mal hintereinander ausgeführt...
Damit es also funktioniert, muss immer abwechselnd ein Tag mit Reset und ein Tag ohne Reset kommen ;)

Und was soll das do always für Auswirkungen haben :o

odie13690

Zitat von: Virsacer am 13 Juli 2015, 18:39:02Und was soll das do always für Auswirkungen haben :o

Ein DOIF, das für das Reset verantwortlich ist, löst in diesem DOIF ein Event aus, so dass der DOELSE-Teil ausgeführt wird, auch wenn es noch nicht 23:59:55 ist. Das passiert ohne "do always" nicht.

odie13690