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?
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
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.
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?
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.
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
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
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.
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.