[gelöst] 73_PRESENCE.pm: inactive nicht mehr gesetzt nach Neustart

Begonnen von DeeSPe, 30 Januar 2024, 23:22:19

Vorheriges Thema - Nächstes Thema

DeeSPe

Moin Jörg,

mich ärgert schon einige Zeit dass beim Neustart von FHEM bei den Presence Instanzen "state" nicht wieder auf "inactive" gesetzt wird wenn dieses vor dem Neustart gesetzt wurde.
Ich benutze "set ... inactive" eigentlich gern weil das im Gegensatz zu "attr ... disable 1" kein Speichern der fhem.cfg erfordert. Leider überlebt dieser Zustand einen Neustart eben nicht.
Wieso es zu diesem Verhalten kommt kann ich mir leider auch nach Studium des Codes nicht erklären.

Eventuell hast du eine Idee an welcher Stelle zu drehen wäre?
Ich würde es sehr begrüßen wenn es für dieses kleine Problem eine Lösung geben würde.

Danke im Voraus.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

betateilchen

#1
"set ... active/inactive" ist eine Krücke, auf die man sich nicht verlassen sollte. (Gilt nicht nur für presence!)

Zitat von: DeeSPe am 30 Januar 2024, 23:22:19weil das im Gegensatz zu "attr ... disable 1" kein Speichern der fhem.cfg erfordert. Leider überlebt dieser Zustand einen Neustart eben nicht.

Auch die Zustandsänderung per set muss irgendwo gepeichert werden, wenn nicht in der fhem.cfg, dann eben im Statefile.

setstate p 2024-01-31 00:04:51 state disabled
Ohne in den Code geschaut zu haben, vermute ich mal, dass das einfach beim Einlesen des statefile im Modul nicht korrekt verarbeitet wird.


Die Verwendung eines der vorgesehenen Attribute ist immer die zuverlässigere Lösung.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

JoWiemann

Hm,

ich bin bisher immer davon ausgegangen, dass Einstellungen über set ... nur temporär zu Laufzeit gültig sind und nicht persistiert werden. Dafür sind ja m.E. Attribute da. Nach einem Neustart wird ein definierter Zustand hergestellt, der dann erst durch set angepasst/verändert werden kann.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

betateilchen

Zitat von: JoWiemann am 31 Januar 2024, 08:27:01ich bin bisher immer davon ausgegangen, dass Einstellungen über set ... nur temporär zu Laufzeit gültig sind und nicht persistiert werden. Dafür sind ja m.E. Attribute da.

Genau so sehe ich das prinzipiell auch.

Dass es - wie immer und überall in FHEM - auch Ausnahmen davon gibt, sollte nicht verwundern. Ein notify persistiert beispielsweise auch active/inactive

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

DeeSPe

Danke für die Info.
Dann werde ich wohl mit diesem Zustand leben müssen!
Schade aber trotzdem.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

betateilchen

Bis jetzt habe ich noch nicht verstanden, welches Problem Du bei der Verwendung des Attributes hast?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

DeeSPe

Zitat von: betateilchen am 31 Januar 2024, 18:29:44Bis jetzt habe ich noch nicht verstanden, welches Problem Du bei der Verwendung des Attributes hast?


Wenn ich den Schlüssel von meinen GUEST Benutzer wieder eingesammelt habe schalte ich den GUEST per HomeKit auf 'none' und dann das dazugehörige PRESENCE Gerät auf "set ... disable" damit das Gerät nicht länger gepollt wird und somit evtl. die Batterie durch das Pollen schneller leer geht (der Schlüssel wird nicht so oft gebraucht). Das auf diesem Wege da es kein Speichern der cfg benötigt.
Updaten und Neustarten von FHEM mache ich öfter als ich den GUEST Schlüssel benötige.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

JoWiemann

Hallo,

habe ich eingebaut. Kommt morgen mit dem Update.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

DeeSPe

Bin schwer begeistert!
Vielen Dank.

Gruß
Dan

P.S. Die Frage bezüglich des Gesinnungswandels stelle ich lieber nicht. ;)
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

betateilchen

Aber mal ganz ehrlich:
Ohne Speichern der Zustandsänderung funktioniert auch diese Änderung nicht.
Die Änderung wird halt nicht nach fhem.cfg geschrieben, sondern nach fhem.save.
Der einzige Unterschied ist: die fhem.save wird bei einem ausgelösten "shutdown [restart]" automatisch gesichert, die fhem.cfg nicht.

Und es funktioniert nicht bei Stromausfall, solange die Änderung noch nicht gespeichert wurde.

8)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

DeeSPe

Zitat von: betateilchen am 01 Februar 2024, 19:17:33Und es funktioniert nicht bei Stromausfall, solange die Änderung noch nicht gespeichert wurde.

Unter anderem wegen unbeabsichtigten Neustarts gibt es bei mir:
defmod at_sf at +*01:00 {WriteStatefile}
Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

DeeSPe

Vielen Dank noch einmal an Jörg für die Änderung am Modul.
Ich habe heute das Update eingespielt und es funktioniert einwandfrei.

Thema gelöst.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe