[gelöst]Zeitgesteuerte DOIFs werden nach FhemNeustart nicht ausgeführt.

Begonnen von maa1, 20 März 2022, 11:45:25

Vorheriges Thema - Nächstes Thema

Damian

Zitat von: maa1 am 30 Mai 2022, 07:59:59
Hallo,

gestern hat sich Fhem von selbst neu gestartet (ohne Fehlermeldung im Log) und danach wurden wiedereinmal die zeitgesteuerten DOIFs nicht ausgeführt. Ich musste alle händisch anstossen.

Hier ein Beispiel das seit Jahren funktioniert, aber eben nach einem Neustart werden die Timer nicht aktualisiert.
defmod TagNacht DOIF ([06:00-22:00]) (setReading TagNacht Nacht 0)\
DOELSE (setReading TagNacht Nacht 1)
attr TagNacht cmdState Tag|Nacht
attr TagNacht do always
attr TagNacht room Technik
attr TagNacht userReadings Nacht

setstate TagNacht Nacht
setstate TagNacht 2022-05-30 06:48:28 Nacht 1
setstate TagNacht 2022-05-30 06:48:28 cmd 2
setstate TagNacht 2022-05-30 06:48:28 cmd_event TagNacht
setstate TagNacht 2022-05-30 06:48:28 cmd_nr 2
setstate TagNacht 2022-05-30 06:45:07 mode enabled
setstate TagNacht 2022-05-30 06:48:28 state Nacht
setstate TagNacht 2022-05-28 22:00:00 timer_01_c01 29.05.2022 06:00:00
setstate TagNacht 2022-05-28 22:00:00 timer_02_c01 29.05.2022 22:00:00

Ebenfalls ist mir aufgefallen, das ein notify für eine automatische Verständigung nach einem Neustart nicht funktionierte . Hier ist noch der letzte Neustart vom März gespeichert.

defmod Fhemneustart notify global:INITIALIZED set TelegramBot message @xxxxxxxxxx Fhem wurde neu gestartet!
attr Fhemneustart room Technik

setstate Fhemneustart 2022-03-26 13:52:59
setstate Fhemneustart 2022-05-30 06:38:46 state active
setstate Fhemneustart 2022-03-26 13:52:59 triggeredByDev global
setstate Fhemneustart 2022-03-26 13:52:59 triggeredByEvent INITIALIZED

Bitte um Unterstützung.

Dann muss bei dir im FHEM-System etwas stark im Argen liegen, denn nach einem Neustart werden alle Timer in der Bedingung im DOIF neu gesetzt, es sei denn das Device wäre per Attribut disable deaktiviert.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

maa1

Bin schon am verzweifeln. Habe den Raspberry mit Bullseyes Lite komplett neu aufgesetzt und auch Fhem neu installiert. Einzig die fhem.cfg habe ich vom Altsystem übernommen und habe das gleiche Problem nach dem Neustart. Die Timer werden nach dem Neustart nicht aktualisiert und auch die anderen Doifs müssen teilweise händisch angestossen werden. Danach läuft alles ohne Probleme - bis halt zum nächsten Neustart von Fhem. Alle Doifs zu löschen und neue anlegen bringt - glaube ich, da teilweise schon durchgeführt - auch nicht den gewünschten Erfolg. Gibt es noch andere Möglichkeiten?

Damian

Zitat von: maa1 am 09 Juni 2022, 10:04:10
Bin schon am verzweifeln. Habe den Raspberry mit Bullseyes Lite komplett neu aufgesetzt und auch Fhem neu installiert. Einzig die fhem.cfg habe ich vom Altsystem übernommen und habe das gleiche Problem nach dem Neustart. Die Timer werden nach dem Neustart nicht aktualisiert und auch die anderen Doifs müssen teilweise händisch angestossen werden. Danach läuft alles ohne Probleme - bis halt zum nächsten Neustart von Fhem. Alle Doifs zu löschen und neue anlegen bringt - glaube ich, da teilweise schon durchgeführt - auch nicht den gewünschten Erfolg. Gibt es noch andere Möglichkeiten?


Die Timer werden aufgesetzt, wenn das FHEM-System das Event INITIALIZED sendet. Offenbar kommt das Event bei den Modulen nicht an.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

maa1

Danke, daran habe ich auch schon gedacht, da auch ein einfaches Start-AT nur sporadisch ausgeführt wird, obwohl ich seit 6.7. schon mindestens 10 x neu gestartet habe.
defmod Fhemneustart notify global:INITIALIZED set TelegramBot message @xxxxxxxxx Fhem wurde neu gestartet!
attr Fhemneustart room Technik

setstate Fhemneustart 2022-06-07 16:57:53
setstate Fhemneustart 2022-06-09 14:59:47 state active
setstate Fhemneustart 2022-06-07 16:57:53 triggeredByDev global
setstate Fhemneustart 2022-06-07 16:57:53 triggeredByEvent INITIALIZED


Wie kann ich das Problem lösen/finden?

Damian

Zitat von: maa1 am 09 Juni 2022, 16:42:30
Danke, daran habe ich auch schon gedacht, da auch ein einfaches Start-AT nur sporadisch ausgeführt wird, obwohl ich seit 6.7. schon mindestens 10 x neu gestartet habe.
defmod Fhemneustart notify global:INITIALIZED set TelegramBot message @xxxxxxxxx Fhem wurde neu gestartet!
attr Fhemneustart room Technik

setstate Fhemneustart 2022-06-07 16:57:53
setstate Fhemneustart 2022-06-09 14:59:47 state active
setstate Fhemneustart 2022-06-07 16:57:53 triggeredByDev global
setstate Fhemneustart 2022-06-07 16:57:53 triggeredByEvent INITIALIZED


Wie kann ich das Problem lösen/finden?

Du musst herausfinden, warum das Event nicht kommt. Womöglich blockiert ein Modul beim Start die normal Startsequenz.

Ich würde nacheinander einzelne Module deaktivieren, um das Problem einzukreisen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

maa1

Danke für Deine Rückmeldung. Habe tatsächlich das Probleme einkreisen können. Bei einem DOIF_Readings hatte ich (HUE:[@a"e":reachable:$_ == 0) definiert um möglichst alle Sensoren zu erfassen. Nachdem ich nun die Bedingung auf (HUE:[@a"Sensor":reachable:$_ == 0) geändert habe funktionieren wieder alle DOIFs beim Neustart vom Fhem. Warum es aber bei POWER mit nur einem "o" funktioniert, ist mir ein Rätsel.

attr Aktuelles DOIF_Readings windows:[@a"^Sensor":state:"open","keine"],bewegung:[@a"^Sensor":state:"^motion","keine"],batterien:[@a"Sensor":battery:$_ < 10,"ok"],Licht:[@a"^HUEDevice":onoff:$_ eq "1" and $room ne "HUEDevice","keine"],Power:[@a"o":POWER:$_ eq "on" and $room ne "MQTT2_Device","keine"],water:[@a"Sensor":water:$_ eq "1","ok"],HUE:[@a"Sensor":reachable:$_ == 0 and $room ne "HUEDevice","alle"]

Danke nochmals.