Hallo,
ich habe mir mehrere Xiaomi Switches besorgt, die man mehrfach belegen kann.
Beispiele:
Short=toggle
Long=Bewegungsmelder deaktivieren
Hold=Bewegungsmelder aktivieren.
Ist sowas auch mit einen Strom schaltenden Homematic Taster möglich?
Anbei das List des Homematic Schalters
Internals:
CUL0_MSGCNT 27
CUL0_RAWMSG A0D66A4105AE43FF1123406010000::-60:CUL0
CUL0_RSSI -60
CUL0_TIME 2019-05-10 08:26:58
DEF 5AE43F
FUUID 5c7ec6d9-f33f-6e90-adbe-7badc31a1bde7964
IODev CUL0
LASTInputDev CUL0
MSGCNT 27
NAME Kuechendeckenlicht
NOTIFYDEV global
NR 227
NTFY_ORDER 50-Kuechendeckenlicht
STATE off
TYPE CUL_HM
chanNo 01
lastMsg No:66 - t:10 s:5AE43F d:F11234 06010000
peerList self01,self02,
protLastRcv 2019-05-10 08:26:58
protRcv 27 last_at:2019-05-10 08:26:58
protResnd 1 last_at:2019-05-10 08:19:00
protSnd 27 last_at:2019-05-10 08:26:58
protState CMDs_done
rssi_CUL0 cnt:16 min:-65 max:-57 avg:-61.31 lst:-65
rssi_at_CUL0 cnt:27 min:-65.5 max:-58.5 avg:-61.61 lst:-60
READINGS:
2019-05-10 08:25:27 CommandAccepted yes
2019-05-07 22:44:54 D-firmware 2.8
2019-05-07 22:44:54 D-serialNr OEQ0621309
2019-05-10 08:26:58 deviceMsg off (to CUL0)
2019-05-10 08:26:58 level 0
2019-05-10 08:26:58 pct 0
2019-05-09 06:10:33 peerList self01,self02,
2019-05-10 08:26:58 recentStateType info
2019-05-10 08:26:58 state off
2019-05-10 08:26:58 timedOn off
helper:
HM_CMDNR 102
cSnd 11F112345AE43F0201C800007080,11F112345AE43F0201C800007080
mId 0069
peerFriend peerSens,peerVirt
peerOpt 3:switch
regLst 0,1,3p
rxType 1
supp_Pair_Rep 0
expert:
def 1
det 0
raw 1
tpl 0
io:
newChn +5AE43F,00,00,00
nextSend 1557469618.95158
prefIO
rxt 0
vccu
p:
5AE43F
00
00
00
mRssi:
mNo 66
io:
CUL0:
-56
-56
prt:
bErr 0
sProc 0
rspWait:
q:
qReqConf 00
qReqStat
role:
chn 1
dev 1
prs 1
rpt:
IO CUL0
flg A
ts 1557469618.85225
ack:
HASH(0x55c1e8e814b0)
668002F112345AE43F00
rssi:
CUL0:
avg -61.3125
cnt 16
lst -65
max -57
min -65
at_CUL0:
avg -61.6111111111111
cnt 27
lst -60
max -58.5
min -65.5
Attributes:
IODev CUL0
alias Deckenlicht
autoReadReg 4_reqStatus
expert 2_raw
firmware 2.8
group 05_Licht_05_Kueche
icon light_pendant_light
model HM-LC-SW1PBU-FM
peerIDs 00000000,5AE43F01,5AE43F02,
room 05_Kueche,CUL_HM,Licht_Schalter
serialNr OEQ0621309
subType switch
webCmd statusRequest:toggle:on:off
und das Raw
defmod Kuechendeckenlicht CUL_HM 5AE43F
attr Kuechendeckenlicht .mId 0069
attr Kuechendeckenlicht IODev CUL0
attr Kuechendeckenlicht alias Deckenlicht
attr Kuechendeckenlicht autoReadReg 4_reqStatus
attr Kuechendeckenlicht expert 2_raw
attr Kuechendeckenlicht firmware 2.8
attr Kuechendeckenlicht group 05_Licht_05_Kueche
attr Kuechendeckenlicht icon light_pendant_light
attr Kuechendeckenlicht model HM-LC-SW1PBU-FM
attr Kuechendeckenlicht peerIDs 00000000,5AE43F01,5AE43F02,
attr Kuechendeckenlicht room 05_Kueche,CUL_HM,Licht_Schalter
attr Kuechendeckenlicht serialNr OEQ0621309
attr Kuechendeckenlicht subType switch
attr Kuechendeckenlicht webCmd statusRequest:toggle:on:off
Ferner kann man die obige Funktion in einer "Zeile" zusammen fassen?
Vielen Dank
Hi,
verschiebe das mal bitte in den Homematic Bereich, das ist schon etwas speziell.
Das er bei jedem Tastendruck toggelt bekommt man hin. Den Bewegungsmelder deaktivieren - da habe ich momentan keine Idee.
Über FHEM kann man es sicher machen, direkt im Schalter glaub ich nicht. Außerdem hast Du an dem Schalter keinen Bewegungsmelder?!
Die letzte Frage verstehe ich nicht. Was willst Du in einer Zeile zusammenfassen?
Gruß Otto
Hallo Otto123,
togglen kann der Homematic Schalter schon. Der Bewegungsmelder ist nicht im Schalter sondern ein eigenes Device
Zusammenfassen würde ich gerne folgendes.
defmod HUEDevice1MotionAutoOn_Aktiv_2x notify Switch3.(1004) set HUEDevice1MotionAutoON active
defmod HUEDevice1MotionAutoOn_Inactive_Hold notify Switch3.(1003) set HUEDevice1MotionAutoON inactive
defmod HUEDevice1_Toggle1x notify Switch3.(1002) set HUEDevice1 toggle
Togglen kann man durch Register Setzen erreichen. Siehe hier: https://wiki.fhem.de/wiki/HM-LC-Sw1PBU-FM_Unterputz-Schaltaktor_1-fach#Schalter_immer_toggeln_lassen
Mehrere Aktionen short/long kann man direkt nicht. Der Aktor selbst kennt nur on und off. Es gibt kein Event short / long.
Hi,
Dein regExp versteh ich nicht ganz. Aber davon ausgehend irgendwie so als Ansatz. Das wird so nicht funktionieren!
defmod n_HUEDevice1 notify Switch3.100. { my $cmd;;\
if ($EVTPART1 eq 1004) {$cmd = "MotionAutoON active"};;\
if ($EVTPART1 eq 1003) {$cmd = "MotionAutoON inactive"};;\
if ($EVTPART1 eq 1002) {$cmd = " toggle"};;\
fhem("set HUEDevice1".$cmd);;\
}
attr n_HUEDevice1 room Test
Du müsstest mal einen Event posten, erst dann kann man das richtig machen.
Zum Lesen: https://wiki.fhem.de/wiki/Notify
Gruß Otto
Hallo Otto
hier das Event, wenn ich den Schalter drücke
2019-05-13 20:05:30 HUEDevice Switch2 short
2019-05-13 20:05:34 HUEDevice Switch2 long
2019-05-13 20:05:40 HUEDevice Switch2 1001
2019-05-13 20:05:41 HUEDevice Switch2 hold
und das Raw des Schalters
defmod Switch2 HUEDevice sensor 15 IODev=deconz_Hue
attr Switch2 IODev deconz_Hue
attr Switch2 alias Deckenlicht Switch2
attr Switch2 eventMap 1002:short 1003:hold 1004:long
attr Switch2 group 08_Schalter
attr Switch2 icon taster
attr Switch2 room 06_Wohnzimmer,HUEDevice,Licht_Schalter
attr Switch2 stateFormat B%:[$name:battery], Status:[$name:state] ([$name:state:t])
Hallo Razor,
so richtig verstehe ich es nicht:
Warum gibt es kein Eventmap für 1001?
Die Eventfolge ist ein Tastendruck?
Naja egal: Switch2 ist Dein Device, short long hold deine Events.
Erklärung in der Doku: https://commandref.fhem.de/#notify
defmod n_HUEDevice1 notify Switch3:short|hold|long { my $cmd;;\
if ($EVENT eq long) {$cmd = "MotionAutoON active"};;\
if ($EVENT eq hold) {$cmd = "MotionAutoON inactive"};;\
if ($EVENT eq short) {$cmd = " toggle"};;\
fhem("set HUEDevice1".$cmd);;\
}
attr n_HUEDevice1 room Test
Gruß Otto
:)
defmod n_HUEDevice1 notify Switch3:1002|1003|1004 { my $cmd;;\
if ($EVENT eq 1004) {$cmd = "MotionAutoON active"};;\
if ($EVENT eq 1003) {$cmd = "MotionAutoON inactive"};;\
if ($EVENT eq 1002) {$cmd = " toggle"};;\
fhem("set HUEDevice1".$cmd);;\
}
attr n_HUEDevice1 room 07_HWR,Timer_Logik
Vielen lieben Dank, ihr seid Heros :)