Wie kann ich erreichen, dass der Zustand eines Geraetes nach einem Neustart richtig angezeigt wird ?
z. B. bei einem Fenster- oder Tuersensor mit Batterie ?
Die sind ja nur aktiv, wenn sich was tut.
Alle Readings werden in einer Datei gespeichert welche beim laden wieder eingelesen wird.
Aber vielleicht beschränkst Du Deine Frage einfach mal auf eine bestimmte Devicegruppe.
Gleiches Problem habe ich aktuell auch. Das die meisten/fast alle Devices behalten durch das state-file auch nach einem Neustart ihren Status.
Nicht so allerdings bei einem PRESENCE - dieser stehen nach einem Neustart auf "initialized"
Internals:
DEF event UniFi:iPhonevonXXX:.disconnected UniFi:iPhonevonXXX:.connected
EVENT_ABSENT UniFi:iPhonevonXXX:.disconnected
EVENT_PRESENT UniFi:iPhonevonXXX:.connected
MODE event
NAME iPhone.XXX
NOTIFYDEV UniFi,global
NR 505
NTFY_ORDER 50-iPhone.XXX
STATE initialized
TYPE PRESENCE
Vielleicht hilft das hier :
Diese Fenster wurde nach dem Neustart von fhem geoeffnet :
Internals:
DEF cfba8db6 27
IODev ZWAVE2
LASTInputDev ZWAVE2
MSGCNT 2
NAME GaesteWC
NR 137
STATE offen
TYPE ZWave
ZWAVE2_MSGCNT 2
ZWAVE2_RAWMSG 0004001b0a710507ff00ff07020000
ZWAVE2_TIME 2017-10-13 07:33:13
ZWaveSubDevice no
homeId cfba8db6
isWakeUp 1
nodeIdHex 1b
READINGS:
2017-10-13 07:33:13 alarm HomeSecurity: Intrusion - Unknown Location, arg 0000
2017-10-13 07:33:13 basicSet 255
2017-10-12 11:49:04 timeToAck 0.048
2017-10-12 11:49:04 transmit OK
2017-10-12 11:49:02 wakeup notification
Attributes:
IODev ZWAVE2
classes ALARM ASSOCIATION BATTERY MANUFACTURER_SPECIFIC SENSOR_BINARY VERSION WAKE_UP
devStateIcon .*offen:fts_window_1w_tilt .*geschlossen:fts_window_1w
group Security
icon fts_window_1w
room Fenster,GaesteWC,Security,ZWave
stateFormat {
if (ReadingsVal("GaesteWC","alarm","") eq "HomeSecurity: Event cleared: Intrusion - Unknown Location, arg 0000") {
return "geschlossen" }
elsif (ReadingsVal("GaesteWC","alarm","") eq "HomeSecurity: Intrusion - Unknown Location, arg 0000") {
return "offen" }
}
vclasses ALARM:2 ASSOCIATION:1 BATTERY:1 MANUFACTURER_SPECIFIC:1 SENSOR_BINARY:1 VERSION:1 WAKE_UP:2
Und hier ein Fenster, das nach dem Neustart noch nicht angefasst wurde :
Internals:
DEF cfba8db6 24
IODev ZWAVE2
NAME Kellerfenster
NR 127
STATE ???
TYPE ZWave
ZWaveSubDevice no
homeId cfba8db6
nodeIdHex 18
READINGS:
2017-10-12 11:29:19 timeToAck 0.026
2017-10-12 11:29:19 transmit OK
2017-10-12 11:29:17 wakeup notification
Attributes:
IODev ZWAVE2
classes ALARM ASSOCIATION BATTERY MANUFACTURER_SPECIFIC SENSOR_BINARY VERSION WAKE_UP
devStateIcon .*offen:fts_window_1w_tilt .*geschlossen:fts_window_1w
group Security
icon fts_window_1w
room Fenster,Keller,Security,ZWave
stateFormat {
if (ReadingsVal("Kellerfenster","alarm","") eq "HomeSecurity: Event cleared: Intrusion - Unknown Location, arg 0000") {
return "geschlossen" }
elsif (ReadingsVal("Kellerfenster","alarm","") eq "HomeSecurity: Intrusion - Unknown Location, arg 0000") {
return "offen" }
}
vclasses ALARM:2 ASSOCIATION:1 BATTERY:1 MANUFACTURER_SPECIFIC:1 SENSOR_BINARY:1 VERSION:1 WAKE_UP:2
Bei beiden Fenster Device fehlt mir das state Reading. Scheint wohl so gar nicht da zu sein.
Das stimmt, es gibt kein state Reading.
Was sich aendert , ist nur das alarm Reading.
Das gibt es aber erst nach einer Aktion.
Dann mal bitte entweder die Frage noch einmal speziell für die Fenster im ZWave Forum fragen, oder gleich diesen Thread dahin verschieben.
Sind die setstate Einträge die man in der Raw Def sieht vom Modul abhängig?
Diese Einträge wären doch die, die beim shutdown in der fhem.save gesichert würden?
Grundsätzlich gibt es beim ZWave-Modul nicht bei allen Device ein state-Reading und damit bei diesen betroffenen Devices kein STATE; zum Problem: https://wiki.fhem.de/wiki/Z-Wave#Warum_bleibt_der_Status_.28STATE.29_des_neu_inkludierten_Ger.C3.A4tes_dauerhaft_auf_.22associationAdd_.3CassociationGroup.3E_.3CCtrlNodeId.3E.22_stehen.3F
Wenn man STATE bei den betroffenen Devices mit stateFormat belegt, wird STATE damit gesetzt; aber eben nicht state.
Sowohl STATE als auch state werden im saveFile (standardmäßig fhem.save) gespeichert und wiederhergestellt. Habe gerade noch einmal getestet und kann kein Problem feststellen.
Vielleicht verstehe ich die Frage aber auch nicht.
Gruß, Christian
Hallo Christian,
ich glaube, ich habe es verstanden ;)
Zur Ursprungsfrage (zweiter Fall) wäre zu klären: warum wird das reading alarm denn nicht wieder hergestellt? dann würde doch auch über stateFormat { } der STATE wiederhergestellt werden - oder?
Gruß Otto
ZitatZur Ursprungsfrage (zweiter Fall) wäre zu klären: warum wird das reading alarm denn nicht wieder hergestellt? dann würde doch auch über stateFormat { } der STATE wiederhergestellt werden - oder?
Befürchte ich habe mich undeutlich ausgedrückt oder etwas noch nicht begriffen. :-[ Deshalb versuche ich es mal anders:
Alles was als Readings im ZWave-Device sichtbar ist und STATE werden in fhem.save gespeichert und wiederhergestellt.
Dazu gehört auch "alarm".
Selbst wenn es kein Reading state gibt, aber STATE, dann wird STATE korrekt gespeichert und wiederhergestellt.
Das gesetzte stateFormat ist beim Wiederherstellen von fhem.sav mWn unwichtig.
Kann mir momentan ein fehlendes STATE bei Wiederherstellung und gesetztem stateFormat nur vorstellen, wenn vor Abspeichern von fhem.sav der Event der für stateFormat relevant war, noch nie aufgetreten ist.
Gruß, Christian
Muss mich korrigieren, das stimmt. Alle Readings werden wieder hergestellt.
Mich hat das verwundert:
ZitatREADINGS:
2017-10-12 11:29:19 timeToAck 0.026
2017-10-12 11:29:19 transmit OK
2017-10-12 11:29:17 wakeup notification
Das list war fake? Da ist doch kein reading alarm!?
Oder dort war vor dem Neustart auch schon kein reading alarm und deswegen hat STATE den Wert 3x? ?
Meine Erkenntnis: Wenn man wissen will was nach dem Neustart aus der fhem.save wieder hergestellt wird braucht man nur in die Raw Def gucken - richtig Christian?
Gruß Otto
Zitat von: Otto123 am 13 Oktober 2017, 21:37:05
Mich hat das verwundert:Das list war fake? Da ist doch kein reading alarm!?
Wenn es noch nicht aufgetreten ist, kann alarm ja fehlen, aber es fehlen auch diverse andere Readings, die das Modul normalerweise automatisch anlegt.
Zitat
Oder dort war vor dem Neustart auch schon kein reading alarm und deswegen hat STATE den Wert 3x? ?
Ja.
Klarheit kann uns nur howi42 verschaffen.
@howi42: könntest Du bitte erklären, was das Problem war? Das hilft anderen und uns. :)
Zitat
Wenn man wissen will was nach dem Neustart aus der fhem.save wieder hergestellt wird braucht man nur in die Raw Def gucken
Indirektes Indiz.
Kann mVn durch Modulautor auch beeinflußt werden, bspw. https://wiki.fhem.de/wiki/DevelopmentModuleIntro#X_State.
Will das daher nicht bejahen.
Gruß, Christian