erledigt - HM-LC-SW4-DR-2 kein notify auf statusRequest

Begonnen von eddie1104, 06 Mai 2019, 22:29:39

Vorheriges Thema - Nächstes Thema

eddie1104

Kann es sein, dass bei einem Kanal eines HM-LC-SW4-DR-2 kein notify auf statusRequest möglich  ist? Ich würde gerne ein Perl-Script per notify starten. Bei allen HomeMatic Geräten ist das kein Problem aber offensichtlich funktioniert das bei dem 4-fach Switch für Hutschienenmontage nicht.

Mein Hauptdevice:

Zitat
Internals:
   CFGFN      ./FHEM/fhem-5-server.cfg
   DEF        666FED
   FUUID      5ccd5589-f33f-cba4-dfc7-2a99d4dbd9c2cced
   HMLAN1_MSGCNT 58
   HMLAN1_RAWMSG R8EB7A7EC,0001,004B5300,FF,FFAC,2EA410666FED272E470601C80051
   HMLAN1_RSSI -84
   HMLAN1_TIME 2019-05-06 21:56:01
   HMLANGW_MSGCNT 34
   HMLANGW_RAWMSG 0501001E2EA410666FED272E470601C80051
   HMLANGW_RSSI -30
   HMLANGW_TIME 2019-05-06 21:56:01
   IODev      HMLAN1
   LASTInputDev HMLAN1
   MSGCNT     92
   NAME       Switch_Hutschiene
   NOTIFYDEV  global
   NR         77
   NTFY_ORDER 50-Switch_Hutschiene
   STATE      CMDs_done
   TYPE       CUL_HM
   channel_01 Switch_Hutschiene_Sw_01
   channel_02 Switch_Hutschiene_Sw_02
   channel_03 Switch_Hutschiene_Sw_03
   channel_04 Switch_Hutschiene_Sw_04
   lastMsg    No:2E - t:10 s:666FED d:272E47 0601C80051
   protLastRcv 2019-05-06 21:56:01
   protRcv    34 last_at:2019-05-06 21:56:01
   protSnd    61 last_at:2019-05-06 21:56:01
   protState  CMDs_done
   rssi_HMLAN1 cnt:25 min:-83 max:-80 avg:-81.11 lst:-81
   rssi_at_HMLAN1 cnt:58 min:-84 max:-79 avg:-81.6 lst:-84
   rssi_at_HMLANGW cnt:34 min:-30 max:-25 avg:-26.11 lst:-30
   READINGS:
     2019-05-06 08:47:57   D-firmware      2.4
     2019-05-06 08:47:57   D-serialNr      PEQ0085027
     2019-05-04 11:18:04   PairedTo        0x272E47
     2019-05-04 11:18:04   R-pairCentral   0x272E47
     2019-05-04 11:18:04   RegL_00.        00:00 02:81 0A:27 0B:2E 0C:47 15:FF 18:00
     2019-05-04 11:18:37   sabotageAttack_ErrIoAttack cnt 2
     2019-05-06 21:56:01   state           CMDs_done
   helper:
     HM_CMDNR   46
     cSnd       01272E47666FED010E,01272E47666FED010E
     mId        0003
     peerFriend
     peerOpt    -:switch
     regLst     0
     rxType     1
     supp_Pair_Rep 0
     ack:
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     io:
       newChn     +666FED,00,00,00
       nextSend   1557172561.78918
       prefIO     
       rxt        0
       vccu       VCCU
       p:
         666FED
         00
         00
         00
     mRssi:
       mNo        2E
       io:
         HMLAN1:
           -82
           -82
         HMLANGW:
           -30
           -30
     prt:
       bErr       0
       sProc      0
       rspWait:
     q:
       qReqConf   
       qReqStat   
     role:
       dev        1
       prs        1
     rpt:
       IO         HMLANGW
       flg        A
       ts         1557172561.6958
       ack:
         HASH(0x446c718)
         2E8002272E47666FED00
     rssi:
       HMLAN1:
         avg        -81.12
         cnt        25
         lst        -81
         max        -80
         min        -83
       at_HMLAN1:
         avg        -81.603448275862
         cnt        58
         lst        -84
         max        -79
         min        -84
       at_HMLANGW:
         avg        -26.1176470588235
         cnt        34
         lst        -30
         max        -25
         min        -30
     tmpl:
Attributes:
   IODev      HMLANGW
   IOgrp      VCCU
   autoReadReg 4_reqStatus
   expert     2_defReg+raw
   firmware   2.4
   model      HM-LC-SW4-DR-2
   room       9c HomeMatic
   serialNr   PEQ0085027
   subType    switch
   webCmd     getConfig:clear msgEvents

Mein Kanal, den ich mit notify handeln will:

Zitat
Internals:
   CFGFN      ./FHEM/fhem-5-server.cfg
   DEF        666FED01
   FUUID      5ccd5589-f33f-cba4-cd1c-7e299ecec18b3e57
   NAME       Switch_Hutschiene_Sw_01
   NOTIFYDEV  global
   NR         85
   NTFY_ORDER 50-Switch_Hutschiene_Sw_01
   STATE      on
   TYPE       CUL_HM
   chanNo     01
   device     Switch_Hutschiene
   peerList   self01,
   READINGS:
     2019-05-06 21:00:15   CommandAccepted yes
     2019-05-06 15:55:38   R-self01-lgActionType jmpToTarget
     2019-05-06 15:55:38   R-self01-shActionType jmpToTarget
     2019-05-06 15:55:33   R-sign          off
     2019-05-06 15:55:33   RegL_01.         00:00 08:00 30:06 56:00 57:24
     2019-05-06 15:55:38   RegL_03.self01   00:00 02:00 03:00 04:32 05:64 06:00 07:FF 08:00 09:FF 0A:01 0B:14 0C:63 82:00 83:00 84:32 85:64 86:00 87:FF 88:00 89:FF 8A:21 8B:14 8C:63
     2019-05-06 21:56:01   deviceMsg       on (to VCCU)
     2019-05-06 21:56:01   level           100
     2019-05-06 21:56:01   pct             100
     2019-05-06 15:55:34   peerList        self01,
     2019-05-06 21:56:01   recentStateType info
     2019-05-06 21:56:01   state           on
     2019-05-06 21:56:01   timedOn         off
     2019-05-06 21:00:15   trigLast        fhem:02
   helper:
     count      2
     dlvlCmd    ++A011272E47666FED0201C80000
     peerFriend peerSens,peerVirt
     peerIDsRaw ,666FED01,00000000
     peerOpt    3:switch
     regLst     1,3p
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     regCollect:
     role:
       chn        1
     shadowReg:
     tmpl:
Attributes:
   alias      Schütz für Cumulus
   cmdIcon    on:message_socket_on2@yellow off:message_socket_off2@white statusRequest:rc_INFO toggle:toggle
   devStateIcon on:message_socket_on2@yellow off:message_socket_off2@white unreachable:set_off set_toggle:toggleattr Switch_Hutschiene_Sw_01 group 4 Sicherungskasten
   group      4 Sicherungskasten
   icon       message_socket_ch_3
   model      HM-LC-SW4-DR-2
   peerIDs    00000000,666FED01,
   room       3 Schalter für Steckdosen
   sortby     1
   userReadings cumulus_handling_done
   webCmd     toggle:on:off:statusRequest

Und mein Notify:


define do_Switch_Hutschiene_Sw_01_statusRequest notify Switch_Hutschiene_Sw_01:statusRequest {cumulus_handling('nodebug')}


Im Filelog finde ich nichts zu dem statusRequest. Wenn ich auf statusRequest drücke kommt folgendes im Logfile:

Zitat
2019-05-06_22:25:01 Switch_Hutschiene_Sw_01 deviceMsg: on (to VCCU)
2019-05-06_22:25:01 Switch_Hutschiene_Sw_01 level: 100
2019-05-06_22:25:01 Switch_Hutschiene_Sw_01 pct: 100
2019-05-06_22:25:01 Switch_Hutschiene_Sw_01 on
2019-05-06_22:25:01 Switch_Hutschiene_Sw_01 timedOn: off

Alles sieht richtig aus und alles funktioniert einwandfrei. Nur dieses notify will einfach nicht. Mache ich da jetzt noch einen Denkfehler oder funktioniert das einfach nicht?

Otto123

Hi,

Ob das, was Du machen willst geht, weiß ich nicht. Aber FileLog hilft Dir nicht, Du musst im Eventmonitor schauen.
https://wiki.fhem.de/wiki/Notify#Mein_notify_geht_nicht_-_wie_kann_ich_mir_selbst_helfen:_Debugging

Und bitte Codetags und keine Zitate für Listings nutzen!
https://forum.fhem.de/index.php/topic,71806.0.html

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

eddie1104

Hallo Otto, im Eventlog steht das Event statusRequest drin. Das tut aber nichts.


2019-05-07 18:36:45 CUL_HM Switch_Hutschiene CMDs_pending
2019.05.07 18:36:45 3 : CUL_HM set Switch_Hutschiene_Sw_01 statusRequest2019-05-07 18:36:45 CUL_HM Switch_Hutschiene CMDs_done
2019-05-07 18:36:45 CUL_HM Switch_Hutschiene_Sw_01 deviceMsg: off (to VCCU)
2019-05-07 18:36:45 CUL_HM Switch_Hutschiene_Sw_01 level: 0
2019-05-07 18:36:45 CUL_HM Switch_Hutschiene_Sw_01 pct: 0
2019-05-07 18:36:45 CUL_HM Switch_Hutschiene_Sw_01 off
2019-05-07 18:36:45 CUL_HM Switch_Hutschiene_Sw_01 timedOn: off


Wenn ich anstatt auf statusRequest auf * triggere, dann macht mein Notify beim einschalten oder ausschalten was er soll. Sogar 2 mal ausschalten hintereinander funktioniert. Beim Drücken von statusRequest passiert dann aber nichts. Für mich sieht das so aus, als wenn der notify-Befehl grundsätzlich richtig arbeitet.

frank

die statusrequest-message kommt aber aus fhem.log und ist kein event. ich kann mich auch nicht erinnern, jemals ein event mit statusrequest irgendwo gesehen zu haben.

was willst du eigentlich genau erreichen?
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

eddie1104

#4
Ich habe nochmal nachgesehen und FHEM.log ausgeschaltet. Das Ergebnis ist vergleichbar:

2019-05-07 19:33:43 CUL_HM Switch_Hutschiene CMDs_pending
2019-05-07 19:33:43 CUL_HM Switch_Hutschiene CMDs_done
2019-05-07 19:33:43 CUL_HM Switch_Hutschiene_Sw_01 deviceMsg: off (to VCCU)
2019-05-07 19:33:43 CUL_HM Switch_Hutschiene_Sw_01 level: 0
2019-05-07 19:33:43 CUL_HM Switch_Hutschiene_Sw_01 pct: 0
2019-05-07 19:33:43 CUL_HM Switch_Hutschiene_Sw_01 off
2019-05-07 19:33:43 CUL_HM Switch_Hutschiene_Sw_01 timedOn: off


Ich habe viele Anwendungsfälle wo ich auf statusRequest triggere. Z.B. um irgendwelche Dummy-Devices zu aktualisieren in Abhängigkeit vom Status eines Homematik-Devices. In diesem konkreten Fall möchte ich ein User-Reading mit einem Wert füllen, der normalerweise zeitgesteuert periodisch gefüllt wird. Somit kann ich auch zwischendurch mir einen aktuellen Status ansehen.


Ein manuelles

trigger Switch_Hutschiene_Sw_01 statusRequest

funktioniert übrigens einwandfrei.

Otto123

#5
naja mit dem trigger Kommando kannst Du alles erzeugen, das hat immer noch nichts mit einem echten Event von einem Gerät zu tun?!
Zeig doch mal einen "echten" statusRequest Event aus Deinem System.

Ich habe das mal mit verschiedenen HM Geräten probiert: Ein statusRequest (in der Weboberfläche) erzeugt immer so etwas wie Du schon gezeigt hast.
2019-05-07 22:06:16 CUL_HM HzgWz deviceMsg: on (to VCCU)
2019-05-07 22:06:16 CUL_HM HzgWz level: 100
2019-05-07 22:06:16 CUL_HM HzgWz pct: 100
2019-05-07 22:06:16 CUL_HM HzgWz on
2019-05-07 22:06:16 CUL_HM HzgWz timedOn: off


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

MadMax-FHEM

Vielleicht hilft ja "readLog" beim Notify, wenn der Eintrag statusRequest nur im Log auftaucht:

Zitat von: commandref - notify
readLog
Das notify wird für Meldungen, die im FHEM-Log erscheinen, ausgegeführt. Das "Event-Generierende-Gerät" wird auf dem notify selbst gesetzt. Z.Bsp. kann man mit folgendem notify auf die Startup Meldung reagieren:

    define n notify n:.*Server.started.* { Log 1, "Wirklich" }
    attr n readLog

Wobei ich das mit dem Aktualisieren und statusRequest (noch) nicht verstanden habe...
...aber muss ich auch nicht. ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

eddie1104

Tja, manchmal bin ich auch ein kleines Dummerle. Ich habe beim Nachsehen kein Beispiel mit einem HomeMatic Gerät gefunden. (Ich hätte schwören können.. aber gut....) Daraufhin habe ich auch mal Tests mit anderen HomeMatic Komponenten gemacht und es ist so wie Otto sagt, bei HomeMatic funktioniert das nicht.

Bei Dummy Devices geht das aber hervorragend. Ich habe z.B. zwei Dummy-Device angelegt, wo ich den Mittelwert aller Innen-, bzw. Außentemperaturen anzeige. Normalerweise wird das zeitgesteuert einmal die Stunde aktualisiert. Manchmal will ich aber sofort aktualisieren und da hilft mir das notify auf den statusRequest. Wenn ich jetzt den Info-Button drücke, dann wird die Temperatur sofort aktualisiert.

Ich denke, ich werde mein aktuelles Problem auch über ein Dummy-Device lösen.

Danke euch allen.

frank

ausserdem ist ein "set statusrequest" bei homematic in der regel unnötig, da die readings immer aktuell sein sollten.
somit belasten solche statusrequests zusätzlich den funk und damit auch die batterie, wenn vorhanden.
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