Asksin-4-Kanal-Remote => wie schaltbares Device anlegen ?

Begonnen von cs-online, 28 Oktober 2020, 15:03:01

Vorheriges Thema - Nächstes Thema

cs-online

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
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266/32 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20+S26,Shelly1/2/2.5, Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV+Speicher, alles auf einem RPI und da geht noch mehr

pwlr

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

Pfriemler

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.
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

frank

#3
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?
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

Pfriemler

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...
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

cs-online

#5
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
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266/32 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20+S26,Shelly1/2/2.5, Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV+Speicher, alles auf einem RPI und da geht noch mehr

McShire

#6
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