FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: acw81 am 21 März 2017, 17:03:01

Titel: PRESENCE Initialwert
Beitrag von: acw81 am 21 März 2017, 17:03:01
Hallo zusammen,

nach einem FHEM oder Raspberry Reboot stehen meine Presence Geräte erst einmal im STATE "Initialized". Ist das Gerät nicht im Haus ändert sich dieser Wert auch nicht, da ich auf Basis von Events von meinem Unify AccessPoint den Status ändere. Die Readings (state und presence) zeigen zwar "absent" an, aber der STATE ist leider "Initialized". Mit StateFormat zu arbeiten bringt in diesem Fall leider auch nichts. Erst wenn das Gerät sich ins WLAN einbucht ändert sich der STATE. Gibt es eine Möglichkeit oder einen Workaround wie ich den Initialwert auf absent setzen kann? Ansonsten muss ich in den Zustand "Initialized" zusätzlich in meinen Skripten berücksichtigen.

Grüße
Andreas
Titel: Antw:PRESENCE Initialwert
Beitrag von: DeeSPe am 21 März 2017, 17:13:32
Wenn Du stateFormat richtig benutzt, dann sollte es aber das Richtige anzeigen.

attr <name> stateFormat presence
Sollte Dir immer den Wert des Readings presence in STATE anzeigen.

Gruß
Dan

P.S. Aber warum triggerst Du überhaupt auf STATE wenn Du weißt dass es evtl. nicht benötigte Werte enthält. Trigger doch gleich auf das Reading presence (und Du brauchst auch kein stateFormat).
Titel: Antw:PRESENCE Initialwert
Beitrag von: acw81 am 21 März 2017, 17:42:07
Zitat von: DeeSPe am 21 März 2017, 17:13:32
attr <name> stateFormat presence
Sollte Dir immer den Wert des Readings presence in STATE anzeigen.

Genau so habe ich das Attribut gesetzt. Nach einem Reboot ändert sichdas Reading aber anscheinend nicht und damit wird das StateFormat auch nicht ausgeführt :-(. Wenn ich anschließend das Attribut noch einmal setzte dann wird STATE richtig gesetzt.

Aber direkt über das Reading presence kann ich natürlich auch gehen (hätte ich auch selber drauf kommen können). Einziger Nachteil ist das ich dann nicht mit Value arbeiten kann ...
Titel: Antw:PRESENCE Initialwert
Beitrag von: DeeSPe am 21 März 2017, 17:59:59
Ob nun Value oder ReadingsVal, spielt das so eine große Rolle?
Nach eigenen Erfahrungen kann ReadingsVal($name,"state","") auch durchaus mal aktueller sein als Value($name).
Das liegt daran weil STATE als Letztes aktualisiert wird.

Gruß
Dan
Titel: Antw:PRESENCE Initialwert
Beitrag von: roedert am 17 Oktober 2017, 03:03:06
Thema ist zwar schon älter, aber anbei für alle die auch dieses kleine "Problem" haben hier eine Lösung bzw. Workaround.

def StartINIT notify global:INITIALIZED {fhem('setstate xyz '.ReadingsVal('xyz','presence','?'))}

Damit wird der STATE von xyz bei jedem Neustart von FHEM korrekt gesetzt. Hat man mehrere PRESENCE, muss man alle in diesem notify setzen oder eine Schleife über alle PRESENCE's laufen lassen.
Titel: Antw:PRESENCE Initialwert
Beitrag von: Markus Bloch am 17 Oktober 2017, 09:03:22
Ich werde das demnächst ändern, sodass bei PRESENCE-Mode "event" das Internal STATE beim Start von FHEM nicht geändert wird.

Gruß
Markus
Titel: Antw:PRESENCE Initialwert
Beitrag von: Markus Bloch am 22 Oktober 2017, 13:32:33
Habe ich soeben gefixt. Gibts ab morgen via update.

Gruß
Markus