HM-SEC-SD: Reading recentAlarm im sdTeam fehlt!?

Begonnen von Omega, 22 September 2014, 10:46:28

Vorheriges Thema - Nächstes Thema

Omega

Ich habe 6 Rauchmelder und einen virtuellen Rauchmelder_Team definiert.
Auf meinem HM-OU-LED16 -Display habe ich pro physischem RM eine Led, die mir im Falle eines Falles anzeigen soll, welcher RM einen Alarm ausgelöst hat (neulich nachts um 2:00 hatte ich einen Fehlalarm). Ein Hochfahren des PCs, um dann nachzusehen, wer ausgelöst hat, dauert a) zu lange und b) rausgerissen aus dem Schlaf und bei dem Getröte kann man eh keinen klaren Gedanken fassen. Aber auf das Display schauen und eine rote Led erkennen sollte auch im Halbschlaf gelingen.

Im Filelog habe ich gesehen, dass smoke_detect nicht immer den auslösenden RM als Inhalt hat (01:57:42 RM_Flur_Keller; 01:58:19 -). Daher glaube ich nicht, dass dieses Reading verwendet werden sollte.
2014-08-02_01:57:42 RM_Flur_Keller trig_Rauchmelder_Btn1: 200
2014-08-02_01:57:42 RM_Flur_Keller trigLast: Rauchmelder_Btn1 :200
2014-08-02_01:57:42 RM_Flur_Keller smoke-Alarm_03
2014-08-02_01:57:42 RM_Flur_Keller smoke_detect: RM_Flur_Keller
2014-08-02_01:57:42 RM_Flur_Keller trig_Rauchmelder_Btn1: 200
2014-08-02_01:57:42 RM_Flur_Keller trigLast: Rauchmelder_Btn1 :200
2014-08-02_01:57:43 RM_Flur_Keller trig_Rauchmelder_Btn1: 200
2014-08-02_01:57:43 RM_Flur_Keller trigLast: Rauchmelder_Btn1 :200
2014-08-02_01:58:19 RM_Flur_Keller trig_Rauchmelder_Btn1: 1
2014-08-02_01:58:19 RM_Flur_Keller trigLast: Rauchmelder_Btn1 :1
2014-08-02_01:58:19 RM_Flur_Keller off
2014-08-02_01:58:19 RM_Flur_Keller smoke_detect: -
2014-08-02_01:58:20 RM_Flur_Keller trig_Rauchmelder_Btn1: 1
2014-08-02_01:58:20 RM_Flur_Keller trigLast: Rauchmelder_Btn1 :1
2014-08-02_01:58:21 RM_Flur_Keller trig_Rauchmelder_Btn1: 1
2014-08-02_01:58:21 RM_Flur_Keller trigLast: Rauchmelder_Btn1 :1
2014-08-02_01:59:18 RM_Flur_Keller trig_Rauchmelder_Btn1: 200
2014-08-02_01:59:18 RM_Flur_Keller trigLast: Rauchmelder_Btn1 :200
2014-08-02_01:59:18 RM_Flur_Keller smoke-Alarm_05
2014-08-02_01:59:18 RM_Flur_Keller smoke_detect: RM_Flur_Keller
2014-08-02_01:59:19 RM_Flur_Keller trig_Rauchmelder_Btn1: 200
2014-08-02_01:59:19 RM_Flur_Keller trigLast: Rauchmelder_Btn1 :200
2014-08-02_01:59:20 RM_Flur_Keller trig_Rauchmelder_Btn1: 200
2014-08-02_01:59:20 RM_Flur_Keller trigLast: Rauchmelder_Btn1 :200
2014-08-02_01:59:55 RM_Flur_Keller trig_Rauchmelder_Btn1: 1
2014-08-02_01:59:55 RM_Flur_Keller trigLast: Rauchmelder_Btn1 :1
2014-08-02_01:59:55 RM_Flur_Keller off
2014-08-02_01:59:55 RM_Flur_Keller smoke_detect: -


Lt. Wiki wäre wohl das Reading recentAlarm das richtige, allerdings scheitere ich schon daran, dass mein Teamlead dieses Reading anscheinend nicht kennt. Ein List Rauchmelder_Team liefert mir:
Internals:
   DEF        11000001
   NAME       Rauchmelder_Team
   NR         60
   STATE      off
   TESTNR     1
   TYPE       CUL_HM
   chanNo     01
   device     Rauchmelder
   peerList   RM_Flur_OG,RM_Dachboden,RM_Werkzeugkeller,RM_Heizungskeller,RM_Flur_Keller,RM_Flur_Schlafzimmer,
   sdTeam     sdLead
   Readings:
     2014-09-21 15:22:38   peerList        RM_Flur_OG,RM_Dachboden,RM_Werkzeugkeller,RM_Heizungskeller,RM_Flur_Keller,RM_Flur_Schlafzimmer,
     2014-09-21 16:33:08   state           off
     2014-09-21 16:04:59   teamCall        from Rauchmelder:1
   Helper:
     fkt        sdLead
     Role:
       chn        1
       vrt        1
Attributes:
   expert     2_full
   icon       secur_smoke_detector
   model      virtual_1
   peerIDs    22D47801,22D69601,22D6AB01,22F37701,22F60401,22F61201,
   room       Rauchmelder
   webCmd     teamCall:alarmOn:alarmOff



Ich habe trotzdem mal folgendes Notify versucht (mein Ziel: wenn recentAlarm den Inhalt RM_Dachboden hat, soll die Led rot werden ansonsten grün)
define Led_01.n1 notify { if (ReadingsVal("Rauchmelder_Team","recentAlarm","") eq "RM_Dachboden") { fhem("set Led_01 led red") } else { fhem("set Led_01 led green") } }

Die Anzeige bleibt allerdings aus (bei einem händischen set Led_01 led red wird die Led eingeschaltet; das funktioniert also soweit), d.h. auf das Reading wird anscheinend überhaupt nicht reagiert (hätte jetzt eigentlich eine grüne Led erwartet).

Meine Fragen:
Wie komme ich an das Reading "recentAlarm"?
Was passt bei meinem notify nicht? Oder geht der nur nicht, solange "recentAlarm" fehlt?
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

frank

2014-08-02_01:57:42 RM_Flur_Keller trigLast: Rauchmelder_Btn1 :200
wer ist Rauchmelder_Btn1? hier sollte dein teamlead stehen. ist dein peering komplett? wieviele teamlead existieren? poste ein list vom RM_Flur_Keller. was ergibt configcheck und peerxref von hminfo?

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Omega

Gut beobachtet: Rauchmelder_Btn1 steht im Log mit Datum 02.08.2014
Am 03.08. habe ich "Rauchmelder_Btn1" umbenannt in "Rauchmelder_Team" (manchmal sind Aufzeichnungen wirklich hilfreich  ;))
Daher habe ich jetzt in meinem notify "Rauchmelder_Team" stehen.

M.E. habe ich wirklich nur einen teamlead.



List RM_Flur_Keller ergibt:
Internals:
   DEF        22F604
   HMLAN1_MSGCNT 1
   HMLAN1_RAWMSG E22F604,0000,0037D836,FF,FFB7,33A41022F604272E5706010100
   HMLAN1_RSSI -73
   HMLAN1_TIME 2014-09-22 08:35:31
   IODev      HMLAN1
   LASTInputDev HMLAN1
   MSGCNT     1
   NAME       RM_Flur_Keller
   NR         57
   STATE      off
   TYPE       CUL_HM
   lastMsg    No:33 - t:10 s:22F604 d:272E57 06010100
   peerList   Rauchmelder_Team,
   protCmdDel 1
   protLastRcv 2014-09-22 08:35:31
   protResnd  1 last_at:2014-09-21 17:19:33
   protResndFail 1 last_at:2014-09-21 17:19:37
   protSnd    2 last_at:2014-09-22 08:35:31
   protState  CMDs_done
   rssi_at_HMLAN1 avg:-73 min:-73 max:-73 lst:-73 cnt:1
   Readings:
     2014-09-21 17:19:18   Activity        alive
     2014-09-16 10:37:12   D-firmware      1.0
     2014-09-16 10:37:12   D-serialNr      KEQ0743893
     2014-09-16 10:37:42   PairedTo        0x272E57
     2014-09-16 10:37:42   R-pairCentral   0x272E57
     2014-09-16 10:37:42   RegL_00:        02:01 0A:27 0B:2E 0C:57 00:00
     2014-09-22 08:35:31   battery         ok
     2014-09-22 08:35:31   level           1
     2014-09-21 17:19:18   peerList        Rauchmelder_Team,
     2014-09-22 08:35:31   recentStateType info
     2014-09-22 08:35:31   state           off
     2014-09-21 16:04:59   teamCall        from Rauchmelder:1
   Helper:
     cSnd       01272E5722F604010E
     mId        0042
     rxType     2
     Io:
       newChn     +22F604,00,01,00
       nextSend   1411367731.6608
       prefIO
       rxt        0
       vccu
       p:
         22F604
         00
         01
         00
     Mrssi:
       mNo        33
       Io:
         HMLAN1     -71
     Prt:
       bErr       0
       sProc      0
       Rspwait:
     Q:
       qReqConf
       qReqStat
     Role:
       chn        1
       dev        1
     Rpt:
       IO         HMLAN1
       flg        A
       ts         1411367731.59238
       ack:
         HASH(0xe1ee18)
         338002272E5722F60400
     Rssi:
       At_hmlan1:
         avg        -73
         cnt        1
         lst        -73
         max        -73
         min        -73
Attributes:
   IODev      HMLAN1
   actCycle   099:00
   actStatus  alive
   autoReadReg 4_reqStatus
   expert     2_full
   firmware   1.0
   icon       secur_smoke_detector
   model      HM-SEC-SD
   msgRepeat  1
   peerIDs    00000000,11000001,
   room       Rauchmelder
   serialNr   KEQ0743893
   subType    smokeDetector
   webCmd     statusRequest




Ich habe zwar Fehler/Warnings in meiner Konfiguration, die ich noch überarbeiten ,,darf" aber nichts zu meinen Rauchmeldern.

configCheck
configCheck done:

missing register list
    Bad.Fenster: RegL_00:
    Garagentor: RegL_00:
    Wz.Fenster_Drehgriff: RegL_00:

trigger sent to unpeered device
    triggerUnpeered: Bad.Fenster:272E57
    triggerUnpeered: Garagentor:272E57

trigger sent to undefined device
    triggerUndefined: Bad.Fenster:272E57
    triggerUndefined: Garagentor:272E57

peerNeedsBurst cannot be determined
    Bad.Fenster
    Wz.Fenster_Drehgriff
    Wz.Fenster_Drehgriff

PairedTo missing/unknown
    Bad.Fenster
    Garagentor
    Wz.Fenster_Drehgriff

templist mismatch
    Wz.Thermostat_Essecke_Clima: file: ./tempList.cfg for Wz.Thermostat_Essecke_Clima does not exist
    Wz.Thermostat_TV_Clima: file: ./tempList.cfg for Wz.Thermostat_TV_Clima does not exist
    Wandthermostat_1_Climate: file: ./tempList.cfg for Wandthermostat_1_Climate does not exist
    Wandthermostat_2_Climate: file: ./tempList.cfg for Wandthermostat_2_Climate does not exist



peerXref
peerXref done:
x-ref list
    Bad.Fenster => Wandthermostat_1_WindowRec
    RM_Dachboden => Rauchmelder_Team
    RM_Flur_Keller => Rauchmelder_Team
    RM_Flur_OG => Rauchmelder_Team
    RM_Flur_Schlafzimmer => Rauchmelder_Team
    RM_Heizungskeller => Rauchmelder_Team
    RM_Werkzeugkeller => Rauchmelder_Team
    Rauchmelder_Team => RM_Dachboden RM_Flur_Keller RM_Flur_OG RM_Flur_Schlafzimmer RM_Heizungskeller RM_Werkzeugkeller
    Wandthermostat_1_SwitchTr => Zw_Stecker_LM_1_Sw
    Wandthermostat_1_WindowRec => Bad.Fenster
    Wz.Fenster_Drehgriff => Wz.Thermostat_Essecke_WindowRec Wz.Thermostat_TV_WindowRec
    Wz.Thermostat_Essecke_WindowRec => Wz.Fenster_Drehgriff
    Wz.Thermostat_TV_WindowRec => Wz.Fenster_Drehgriff
    Zw_Stecker_LM_1_Sw => Wandthermostat_1_SwitchTr

warning: sensor triggers but no config found
    Bad.Fenster triggers 272E57
    Garagentor triggers 272E57



Auf der Suche nach weiteren Informationen bin ich eben auch über diesen Threat gestolpert: http://forum.fhem.de/index.php?topic=26411.0
Da geht es auch um das fehlende Reading recentAlarm. Wenn ich die Aussagen da richtig interpretiere, hätte jetzt aber mein Rauchmelder_Team dieses Reading haben sollen, da es ja tatsächlich einen Alarm gegeben hatte.

Komplizierte Materie. Wird aber im Wiki explizit ausgewiesen und würde genau das liefern, was ich haben möchte.

Gruß
Holger

P.S. Meine FHEM-Version ist ziemlich aktuell (31.08.2014)
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

frank

ZitatAm 03.08. habe ich "Rauchmelder_Btn1" umbenannt in "Rauchmelder_Team"
ZitatWenn ich die Aussagen da richtig interpretiere, hätte jetzt aber mein Rauchmelder_Team dieses Reading haben sollen, da es ja tatsächlich einen Alarm gegeben hatte.
wenn ich dich richtig verstehe, handelt es sich um den fehlalarm vom 2.8.
damals wurde, wenn alles funktioniert hat, dann ein reading recentalarm bei deinem "alten" teamlead hinterlegt. sollte dann in den zugehörigen logs vom damaligen teamlead zu finden sein. wenn nach dem umbenennen noch kein alarm stattgefunden hat, wird wohl noch kein reading beim "neuen" teamlead angelegt worden sein. cul_hm legt readings normalerweise erst an, wenn es einen grund (wert) dazu gibt. auch nach einem set clear readings, werden die readings erst nach und nach wieder neu angelegt, wenn die entsprechenden daten neu reinkommen.

also erzeuge einen alarm und schaue dann die readings deines teamlead an. vielleicht lässt sich mit trigger auch einer simulieren. musst du probieren.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Omega

Ja, tatsächlich. Nach Auslösen eines Alarms am Rauchmelder_Team (am einzelnen SD geht es m.W. nicht) hatte dieser das Reading recentAlarm (mit Inhalt Rauchmelder). Ich hätte nicht erwartet, dass durch ein Rename "Daten" verloren gehen.

Um jetzt meinen Notify zu testen, habe ich ihn etwas abgeändert
define Led_04.n1 notify { if (ReadingsVal("Rauchmelder_Team","recentAlarm","") eq "Rauchmelder") { fhem("set Led_04 led red") } else { fhem("set Led_04 led green") } }
und den Alarm erneut ausgelöst.
Erwartet hätte ich, dass jetzt die Led angeht. Leider passiert nichts, die Led bleibt aus.
Ein {ReadingsVal("Rauchmelder_Team", "recentAlarm", "")}
im Frontend eingegeben liefert mir die Ausgabe Rauchmelder

Vielleicht hast du ja hier auch eine Idee, was ich da falsch habe.

Danke
Holger
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

frank

bei deinem notify fehlt die regex, die beschreibt, bei welchem event das notify triggern soll.

also zb

define Led_04.n1 notify Rauchmelder_Team:recentAlarm.* { if ($EVENT1 eq "Rauchmelder") { fhem("set Led_04 led red") } else { fhem("set Led_04 led green") } }
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html