PRESENCE Initialwert

Begonnen von acw81, 21 März 2017, 17:03:01

Vorheriges Thema - Nächstes Thema

acw81

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

DeeSPe

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).
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

acw81

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 ...

DeeSPe

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
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

roedert

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.

Markus Bloch

Ich werde das demnächst ändern, sodass bei PRESENCE-Mode "event" das Internal STATE beim Start von FHEM nicht geändert wird.

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Markus Bloch

Habe ich soeben gefixt. Gibts ab morgen via update.

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)