FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: Razor am 10 Mai 2019, 16:51:47

Titel: Homematic Schalter zusätzliche Funktion über Tastverhalten
Beitrag von: Razor am 10 Mai 2019, 16:51:47
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
Titel: Antw:Homematic Schalter zusätzliche Funktion über Tastverhalten
Beitrag von: Otto123 am 10 Mai 2019, 18:33:26
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
Titel: Antw:Homematic Schalter zusätzliche Funktion über Tastverhalten
Beitrag von: Razor am 10 Mai 2019, 19:06:25
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
Titel: Antw:Homematic Schalter zusätzliche Funktion über Tastverhalten
Beitrag von: amenomade am 10 Mai 2019, 19:10:43
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.
Titel: Antw:Homematic Schalter zusätzliche Funktion über Tastverhalten
Beitrag von: Otto123 am 10 Mai 2019, 21:52:44
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
Titel: Antw:Homematic Schalter zusätzliche Funktion über Tastverhalten
Beitrag von: Razor am 13 Mai 2019, 20:07:20
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])

Titel: Antw:Homematic Schalter zusätzliche Funktion über Tastverhalten
Beitrag von: Otto123 am 13 Mai 2019, 21:09:42
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
Titel: Antw:Homematic Schalter zusätzliche Funktion über Tastverhalten
Beitrag von: Razor am 13 Mai 2019, 22:29:47
 :)
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 :)