Hallo,
ich habe mir die Asksin-4-Kanal-Remote nachgebaut und das funktioniert soweit auch, es wurde dieses Device angelegt:
defmod HM_789012 CUL_HM 789012
attr HM_789012 .mId 0008
attr HM_789012 IODev HM_Gateway
attr HM_789012 autoReadReg 4_reqStatus
attr HM_789012 expert rawReg
attr HM_789012 firmware 1.1
attr HM_789012 model HM-RC-4
attr HM_789012 room CUL_HM
attr HM_789012 serialNr RM4KCS0001
attr HM_789012 subType remote
attr HM_789012 webCmd getConfig:clear msgEvents
und ebenso die vier Buttons, hier mal der erste:
defmod HM_789012_Btn_01 CUL_HM 78901201
attr HM_789012_Btn_01 model HM-RC-4
attr HM_789012_Btn_01 peerIDs 78901201,
attr HM_789012_Btn_01 room CUL_HM
und dort sehe ich auch, dass gedrückt wurde, also z.B. state:
Long 4_61 (to broadcast)
Im Wiki zu der "Original-Remote" ist beschrieben, wie man ein virtuelles Device anlegt, leider nicht mehr ganz aktuell und daher funktioniert das wie dort beschrieben nicht mehr. Ich habe aber ein virtuelles Device angelegt:
defmod Virtual_Irgendeinname CUL_HM 654321
attr Virtual_Irgendeinname .mId FFF1
attr Virtual_Irgendeinname IODev HM_Gateway
attr Virtual_Irgendeinname model VIRTUAL
attr Virtual_Irgendeinname modelForce VIRTUAL
attr Virtual_Irgendeinname subType virtual
attr Virtual_Irgendeinname webCmd virtual
setstate Virtual_Irgendeinname CMDs_done
setstate Virtual_Irgendeinname 2020-10-28 14:14:36 commState CMDs_done
setstate Virtual_Irgendeinname 2020-10-28 14:14:36 state CMDs_done
mit den beiden virtuellen Buttons, hier exemplarisch der erste:
defmod Virtual_Irgendeinname_Btn1 CUL_HM 65432101
attr Virtual_Irgendeinname_Btn1 expert allReg
attr Virtual_Irgendeinname_Btn1 model VIRTUAL
attr Virtual_Irgendeinname_Btn1 peerIDs 78901201,
attr Virtual_Irgendeinname_Btn1 room CUL_HM
attr Virtual_Irgendeinname_Btn1 webCmd press short:press long
setstate Virtual_Irgendeinname_Btn1 set_press short all Burst 0 0.25
setstate Virtual_Irgendeinname_Btn1 2020-10-25 21:07:45 .associatedWith Virtual_Irgendeinname,Virtual_Irgendeinname_Btn1,Virtual_Irgendeinname_Btn2,Virtual_Irgendeinname,HM_789012_Btn_01
setstate Virtual_Irgendeinname_Btn1 2020-10-25 21:07:45 peerList HM_789012_Btn_01,
setstate Virtual_Irgendeinname_Btn1 2020-10-28 14:14:36 press_broadcast short cnt: 2
setstate Virtual_Irgendeinname_Btn1 2020-10-28 14:14:36 state set_press short all Burst 0 0.25
Ich habe also den ersten Button der Remote mit dem ersten virtuellen Button gepeert.
Nur beim Tastendruck auf der Remote tut sich hier rein gar nichts und ich steh da grad auf dem Schlauch. Könnt Ihr mir sagen, wie es richtig geht ? Zielbild wäre z.B. bei Longpress Button 1 geht ein Device auf on, bei Longpress Button 2 geht das Device wieder auf off
Grüße Christian
Moin,
der Thread ist zwar schon "abgehangen", hab's aber eben erst gelesen.
Also, mir scheint das ganze peering nicht ok zu sein:
1.
Zitatdefmod HM_789012_Btn_01 CUL_HM 78901201
...
attr HM_789012_Btn_01 peerIDs 78901201,
Der HM_789012_Btn_01 ist mit sich selbst gepeert. Ich hab zwar keinen RC-4 und auch nicht den Nachbau, aber das habe ich so in meiner Installation bei keinem Device.
2.
Zitatdefmod Virtual_Irgendeinname_Btn1 CUL_HM 65432101
...
attr Virtual_Irgendeinname_Btn1 peerIDs 78901201,
Hier taucht als Peer die richtige ID auf, aber (siehe 1.) im Rc-4 nicht die ID 65432101.
Also alle Peers löschen und noch einmal versuchen, siehe commandref:
peerChan <btn_no> <actChan> [single|dual|reverse] [set|unset] [both|actor|remote]
peerChan HM_789012_Btn_01 Virtual_Irgendeinname_Btn1 single set
das sollte dann funtionieren.
Moin
Bernd
Ich verstehe bis heute nicht, warum man reale Fernbedienungen mit virtuellen Buttons peeren will. Die sind keine "Devices" als übliche Zielgeräte und gehen auch nicht on oder off.
a) ist das zu schaltenede Gerät am Ende ein Homematic-Gerät, dann peere den Button mit diesem.
b) in allen anderen Fällen baue Dir notifys/Doifs etc, welches auf das Event des Tasters reagieren.
Der Umweg über einen virtuellen Button ist in der Regel unnötig.
c) Speziallfall kann sein, wenn man einen virtuellen Button so definiert, dass er eine ganze Serie von Homematic-Geräten anspricht - etwa ein General-Aus für alle Geräte, dann kann es sinnvoll sein, reale Fernbedienungen einfach mit diesem virtuellen Button zu peeren. Ein Druck auf die Fernbedienung löst dann die gleichen Aktionen aus als wenn man den virtuellen Button gedrückt hätte,
jm2c.
ZitatIch verstehe bis heute nicht, warum man reale Fernbedienungen mit virtuellen Buttons peeren will.
lazyconfig, grüne-led-bestätigung und/oder zentrale triggern nur bei erfolgreicher aes -signierung?
dann aber besser mit vccu peeren.
edit: braucht longrelease nicht auch ein peering?
Ja, wer Quittung braucht ... dafür habe ich aber auch dir vccu, das bleibt übersichtlicher. Finde ich.
und yep: LongRelease braucht einen peer.
Ob der Fragesteller das braucht, werden wir wohl nie mehr erfahren, oder? Eventauswertung mit Longrelease mache ich aber nicht mehr, triggere lieber auf Long.1.*, das ergibt eine zeitnahe Rückmeldung. Oder Long.5.*, für Aktionen, die man keinesfalls versehentlich triggern will...
Hallo zusammen,
ich hab das ganze schon einige Tage weg gelegt, weil es ja irgendwie nicht so ans Laufen zu bringen war. Schön aber, dass Ihr den Threat wieder "raus gekramt" habt, vielleicht schaffe ich das die nächsten Tage, die Remote wieder ans Laufen zu bringen und Eure Einfälle auszuprobieren. Im Moment liegt das alles in einer Kiste, die meine Frau gut weg gepackt hat ;-)
Ich melde mich, wenn ich das wiedergefunden habe. Bis dahin danke erstmal für Eure Ideen
Grüße Christian
PS: Der Sinn war, z.B. verschiedene Klingeln als Taster am Tor zu realisieren, die dann in FHEM ausgewertet und dann per Notify entsprechende Events auszulösen, die dann auch zeitabhängig sind
Hallo,
ich habe einen 4-fach Taster Selbstbau und einen virtuellen Dummy nach Anweisung programmiert und gepeert.
Läuft alles einwandfrei. Stromaufnahme in Ruhe 4,7 uA (nach Auslöten in der Hardware), ideal für Batteriebetrieb.
Anbei mal die Lists, vielleicht können die weiterhelfen.
der Dummy:
Internals:
DEF 111111
FUUID 5f5a2c57-f33f-f21b-53ea-8db0056d9d00430e
NAME Virtual_HM_Dummy
NOTIFYDEV global
NR 605
NTFY_ORDER 50-Virtual_HM_Dummy
STATE ERR_IOdev_undefined
TYPE CUL_HM
channel_01 Virtual_HM_Dummy_Btn1
channel_02 Virtual_HM_Dummy_Btn2
channel_03 Virtual_HM_Dummy_Btn3
channel_04 Virtual_HM_Dummy_Btn4
channel_05 Virtual_HM_Dummy_Btn5
channel_06 Virtual_HM_Dummy_Btn6
channel_07 Virtual_HM_Dummy_Btn7
channel_08 Virtual_HM_Dummy_Btn8
READINGS:
2020-11-19 02:06:06 commState CMDs_done_Errors:1
2021-02-14 11:26:00 myprevState closed
2021-02-14 11:27:35 myprevTemp 13.0
2020-11-19 02:06:06 state ERR_IOdev_undefined
helper:
HM_CMDNR 190
mId FFF1
peerFriend peerSens,peerAct
peerOpt -:virtual
regLst 0
rxType 1
cmds:
TmplKey
TmplTs
cmdKey
cmdLst:
assignHmKey noArg
clear [(readings|rssi|msgErrors|{msgErrors}|unknownDev)]
deviceRename -newName-
fwUpdate -filename- [-bootTime-]
getDevInfo noArg
peerSmart -peerOpt-
raw -data- [...]
reset noArg
unpair noArg
virtual [(1..50;1|{1})]
lst:
condition slider,0,1,255
peer
peerOpt xxxxxxxxxx
tplDel
rtrvLst:
cmdList [({short}|long)]
list [({normal}|full)]
param -param-
expert:
def 1
det 0
raw 0
tpl 0
io:
prefIO
vccu VCCU
mRssi:
mNo
peerIDsH:
prt:
bErr 0
sProc 0
q:
qReqConf
qReqStat
role:
dev 1
vrt 1
tmpl:
Attributes:
IOgrp VCCU
model VIRTUAL
myAlSteu 0
myAlText FensterHobbyraumfenster
myHzDev HZ_
myHzSteu 0
room Alarm,CUL_HM,HM_devices
subType virtual
userReadings myprevTemp,myprevState
userattr myHzSteu myAlSteu myAlText myHzDev
webCmd virtual
hIer 1 Channel davon:
Internals:
DEF 11111102
FUUID 5f5a2dac-f33f-f21b-e72b-d904b77ad5915e7d
NAME Virtual_HM_Dummy_Btn2
NOTIFYDEV global
NR 607
NTFY_ORDER 50-Virtual_HM_Dummy_Btn2
STATE OFF
TYPE CUL_HM
chanNo 02
device Virtual_HM_Dummy
peerList HM_111112_Btn_02
READINGS:
2021-03-12 00:37:36 peerList HM_111112_Btn_02
2021-03-08 18:12:32 state OFF
2021-03-08 18:12:32 trigLast HM_1111112_Btn_02:long
2021-03-08 18:12:32 trig_HM_111112_Btn_02 Long_1
2021-03-08 18:12:32 virtActState OFF
2021-03-08 18:12:32 virtActTrigNo 1
2021-03-08 18:12:32 virtActTrigRpt 3
2021-03-08 18:12:32 virtActTrigType long_Release
2021-03-08 18:12:32 virtActTrigger HM_111112_Btn_02
helper:
peerFriend peerSens,peerAct
peerIDsState incomplete
peerOpt -:virtual
regLst
cmds:
TmplKey
TmplTs
cmdKey
cmdLst:
peerChan -btnNumber- -actChn- [({single}|dual|reverse)] [({set}|unset)] [(actor|remote|{both})]
peerSmart -peerOpt-
postEvent -condition-
press [(long|{short})] [(-peer-|{all})] [(noBurst|{Burst})] [(-repCount-|{0})] [(-repDelay-|{0.25})]
pressL [(-peer-|{all})]
pressS [(-peer-|{all})]
lst:
condition slider,0,1,255
peer HM_111112_Btn_02
peerOpt xxxxxxxxxxxxxxx
tplDel
rtrvLst:
cmdList [({short}|long)]
list [({normal}|full)]
param -param-
expert:
def 1
det 0
raw 0
tpl 0
peerIDsH:
11111202 HM_111112_Btn_02
role:
chn 1
vrt 1
tmpl:
Attributes:
model VIRTUAL
peerIDs 11111202
room CUL_HM,HM_devices
webCmd press short:press long
Hier der 4-fach-Taster:
Internals:
CUL868T_MSGCNT 5
CUL868T_RAWMSG A0B50A2407890127890134405::-79:CUL868T
CUL868T_RSSI -79
CUL868T_TIME 2021-03-12 14:06:41
DEF 789012
FUUID 5f5a22db-f33f-f21b-9e25-4c95c27bd86a34ab
IODev CUL868T
LASTInputDev CUL868T
MSGCNT 5
NAME HM_111112
NOTIFYDEV global
NR 599
NTFY_ORDER 50-HM_111112
STATE HM_111112_Btn_04 LongRelease
TYPE CUL_HM
channel_01 HM_111112_Btn_01
channel_02 HM_111112_Btn_02
channel_03 HM_111112_Btn_03
channel_04 HM_111112_Btn_04
lastMsg No:50 - t:40 s:111112 d:111111 4405
protLastRcv 2021-03-12 14:06:40
protRcv 5 last_at:2021-03-12 14:06:40
protSnd 2 last_at:2021-03-12 14:06:41
protState CMDs_done
rssi_at_CUL868T cnt:5 min:-79 max:-58.5 avg:-63.9 lst:-79
READINGS:
2020-09-10 15:57:54 CommandAccepted yes
2020-10-20 22:10:36 D-firmware 0.1
2020-10-20 22:10:36 D-serialNr xxxxxxx
2020-09-10 15:04:19 PairedTo 0x000000
2020-09-10 15:04:19 RegL_00. 00:00 02:01 0A:00 0B:00 0C:00
2020-09-10 15:58:03 alive yes
2021-03-12 14:06:41 battery ok
2020-09-10 15:04:19 cfgState updating
2021-03-12 14:06:41 commState CMDs_done
2021-02-14 11:26:00 myprevState closed
2021-02-14 11:27:35 myprevTemp 13.0
2021-03-12 14:06:41 state HM_1111112_Btn_04 LongRelease
helper:
HM_CMDNR 80
mId 0034
peerFriend
peerOpt -:pushButton
regLst 0
rxType 4
supp_Pair_Rep 0
ack:
Virtual_HM_Dummy HM_111112_Btn_04:50
cmds:
TmplKey
TmplTs
cmdKey
cmdLst:
assignHmKey noArg
clear [(readings|trigger|register|oldRegs|rssi|msgEvents|{msgErrors}|attack|all)]
deviceRename -newName-
fwUpdate -filename- [-bootTime-]
getConfig noArg
getDevInfo noArg
getRegRaw (List0|List1|List2|List3|List4|List5|List6) [-peerChn-]
raw -data- [...]
regBulk -list-.-peerChn- -addr1:data1- -addr2:data2-...
regSet [(prep|{exec})] -regName- -value- [-peerChn-]
reset noArg
tplDel -tplDel-
unpair noArg
lst:
condition slider,0,1,255
peer
peerOpt
tplDel
rtrvLst:
cmdList [({short}|long)]
deviceInfo [({short}|long)]
list [({normal}|full)]
param -param-
reg -addr- -list- [-peerChn-]
regList noArg
regTable noArg
regVal -addr- -list- [-peerChn-]
saveConfig [-filename-]
tplInfo noArg
expert:
def 0
det 0
raw 1
tpl 0
io:
newChn +111112,00,00,00
nextSend
prefIO
rxt 0
vccu VCCU
p:
111112
00
00
00
mRssi:
mNo 50
io:
CUL868T:
-77
-77
peerIDsH:
prt:
bErr 0
sProc 0
rspWait:
q:
qReqConf
qReqStat
role:
dev 1
rpt:
IO CUL868T
flg A
ts
ack:
HASH(0x314d6c0)
50800278901378901201040000
rssi:
at_CUL868T:
avg -63.9
cnt 5
lst -79
max -58.5
min -79
tmpl:
Attributes:
IODev CUL868T
IOgrp VCCU
alias 4-Tasten Fernbedienung (HM_111112)
autoReadReg 4_reqStatus
comment Sketchbook\HM-PBI-4-FM-FHEM
expert rawReg
firmware 0.1
model HM-PBI-4-FM
myAlSteu 0
myAlText FernbedienungAlarm
myHzDev HZ_
myHzSteu 0
room Alarm,CUL_HM,HM_devices
serialNr xxxxxxxxx
subType pushButton
userReadings myprevTemp,myprevState
userattr myHzSteu myAlSteu myAlText myHzDev
webCmd getConfig:clear msgEvents
und ein Channel davon:
Internals:
DEF 11111202
FUUID 5f5a22db-f33f-f21b-2deb-8cafed24c2b85181
NAME HM_111112_Btn_02
NOTIFYDEV global
NR 602
NTFY_ORDER 50-HM_111112_Btn_02
STATE LongRelease 2_1 (to Virtual_HM_Dummy)
TYPE CUL_HM
chanNo 02
device HM_111112
peerList Virtual_HM_Dummy_Btn2
READINGS:
2020-09-10 15:52:26 CommandAccepted yes
2020-09-10 15:55:00 RegL_01. 00:00 04:10 08:00 09:00
2020-09-10 15:55:00 RegL_04.Virtual_HM_Dummy_Btn2 00:00 01:00
2020-09-10 15:55:00 cfgState updating
2020-09-10 15:52:26 contact unknown:00 (to CUL868T)
2021-03-12 00:37:35 peerList Virtual_HM_Dummy_Btn2
2020-09-10 15:52:26 recentStateType ack
2021-03-08 18:12:32 state LongRelease 2_1 (to Virtual_HM_Dummy)
2021-03-08 18:12:32 trigger Long_1
2021-03-08 18:12:32 triggerTo_Virtual_HM_Dummy Long_1
2021-03-08 18:12:32 trigger_cnt 1
helper:
peerFriend peerAct,peerVirt
peerIDsState complete
peerOpt 4:pushButton
regLst 1,4p
cmds:
TmplKey
TmplTs
cmdKey
cmdLst:
clear [(readings|trigger|register|oldRegs|rssi|msgEvents|{msgErrors}|attack|all)]
getConfig noArg
getRegRaw (List0|List1|List2|List3|List4|List5|List6) [-peerChn-]
peerBulk -peer1,peer2,...- [({set}|unset)]
peerChan -btnNumber- -actChn- [({single}|dual|reverse)] [({set}|unset)] [(actor|remote|{both})]
peerSmart -peerOpt-
regBulk -list-.-peerChn- -addr1:data1- -addr2:data2-...
regSet [(prep|{exec})] -regName- -value- [-peerChn-]
sign [(on|{off})]
tplDel -tplDel-
trgEventL -peer- -condition-
trgEventS -peer- -condition-
trgPressL [(-peer-|{all})]
trgPressS [(-peer-|{all})]
lst:
condition slider,0,1,255
peer Virtual_HM_Dummy_Btn2
peerOpt xxxxxxxxxxxxx
tplDel
rtrvLst:
cmdList [({short}|long)]
deviceInfo [({short}|long)]
list [({normal}|full)]
param -param-
reg -addr- -list- [-peerChn-]
regList noArg
regTable noArg
regVal -addr- -list- [-peerChn-]
saveConfig [-filename-]
tplInfo noArg
expert:
def 0
det 0
raw 1
tpl 0
peerIDsH:
00000000 broadcast
11111102 Virtual_HM_Dummy_Btn2
role:
chn 1
tmpl:
Attributes:
alias Abw off (HM_111112_Btn02)
model HM-PBI-4-FM
peerIDs 00000000,11111102
room Alarm,HM_devices
Um dann ein device zu schalten, das geht auch ohne Virtuelles device, musst du du ein notify einrichten, dass auf den event vom button getriggert wird. etwa so:
Internals:
DEF HM_111112_Btn_02 set Anwesenheit anwesend
FUUID 5f5e7069-f33f-f21b-9eb0-98c63d12010c7569
NAME Al_set_anw
NOTIFYDEV HM_111112_Btn_02
NR 621
NTFY_ORDER 50-Al_set_anw
REGEXP HM_111112_Btn_02
STATE active
TYPE notify
READINGS:
2021-03-12 00:37:24 state active
Attributes:
comment Schaltet den Alarm für OG, EG und Keller sowie die Schaltuhren zur Simulation von Anwesenheit (Licht, Fernseher, Rolladen) beim Drücken der Taste auf der Fernbedienung aus.
room Alarm
Viel Grüße
Werner