(Erledigt) Devicezustand merken

Begonnen von Wolfgang Hochweller, 13 Oktober 2017, 06:49:24

Vorheriges Thema - Nächstes Thema

Wolfgang Hochweller

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.

CoolTux

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.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

roedert

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

Wolfgang Hochweller

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



CoolTux

Bei beiden Fenster Device fehlt mir das state Reading. Scheint wohl so gar nicht da zu sein.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Wolfgang Hochweller

Das stimmt, es gibt kein state Reading.
Was sich aendert , ist nur das alarm Reading.
Das gibt es aber erst nach einer Aktion.

CoolTux

Dann mal bitte entweder die Frage noch einmal speziell für die Fenster im ZWave Forum fragen, oder gleich diesen Thread dahin verschieben.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Otto123

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?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

krikan

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

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

krikan

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

Wolfgang Hochweller

#11
Muss mich korrigieren, das stimmt. Alle Readings werden wieder hergestellt.







Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

krikan

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