FHEM Forum

FHEM - Hausautomations-Systeme => ZWave => Thema gestartet von: Wolfgang Hochweller am 13 Oktober 2017, 06:49:24

Titel: (Erledigt) Devicezustand merken
Beitrag von: Wolfgang Hochweller am 13 Oktober 2017, 06:49:24
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.
Titel: Antw:Devicezustand merken
Beitrag von: CoolTux am 13 Oktober 2017, 07:04:30
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.
Titel: Antw:Devicezustand merken
Beitrag von: roedert am 13 Oktober 2017, 08:43:04
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
Titel: Antw:Devicezustand merken
Beitrag von: Wolfgang Hochweller am 13 Oktober 2017, 11:03:51
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


Titel: Antw:Devicezustand merken
Beitrag von: CoolTux am 13 Oktober 2017, 11:09:51
Bei beiden Fenster Device fehlt mir das state Reading. Scheint wohl so gar nicht da zu sein.
Titel: Antw:Devicezustand merken
Beitrag von: Wolfgang Hochweller am 13 Oktober 2017, 11:13:31
Das stimmt, es gibt kein state Reading.
Was sich aendert , ist nur das alarm Reading.
Das gibt es aber erst nach einer Aktion.
Titel: Antw:Devicezustand merken
Beitrag von: CoolTux am 13 Oktober 2017, 11:14:40
Dann mal bitte entweder die Frage noch einmal speziell für die Fenster im ZWave Forum fragen, oder gleich diesen Thread dahin verschieben.
Titel: Antw:Devicezustand merken
Beitrag von: Otto123 am 13 Oktober 2017, 11:17:07
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?
Titel: Antw:Devicezustand merken
Beitrag von: krikan am 13 Oktober 2017, 12:32:25
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
Titel: Antw:Devicezustand merken
Beitrag von: Otto123 am 13 Oktober 2017, 13:05:46
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
Titel: Antw:Devicezustand merken
Beitrag von: krikan am 13 Oktober 2017, 13:31:49
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
Titel: Antw:Devicezustand merken
Beitrag von: Wolfgang Hochweller am 13 Oktober 2017, 14:06:02
Muss mich korrigieren, das stimmt. Alle Readings werden wieder hergestellt.






Titel: Antw:Devicezustand merken
Beitrag von: Otto123 am 13 Oktober 2017, 21:37:05
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
Titel: Antw:Devicezustand merken
Beitrag von: krikan am 14 Oktober 2017, 10:39:19
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