Langen Tastendruck bei HM-PBI-4-FM (Tasterschnittstelle 4fach) auswerten

Begonnen von Zorin, 13 Januar 2013, 23:50:01

Vorheriges Thema - Nächstes Thema

snoop

Hallo Martin (der andere) ;o)

ok, deine (im nachhinein auch die von dem original :o) Martin) Erklärung macht für mich nun absolut sinn und ist soweit nachvollziehbar.

Ich hab das ganze ausprobiert es funktioniert so wie ich es brauche.
Mein Fehler bzw. was ich nicht wusste war:
Zitatsh steht für sort.
lg für long!
und die Tatsache das der Aktor per default auf beide events short/long reagiert. Ich dachte der Aktor reagiert auf short obwohl er auf long reagiert hat. Das hat aber (der original? ;o) Martin ja schon geschrieben - ich habe es irgendwie verdrängt.

Super, danke euch für eure Geduld jetzt bin ich 10 Schritte weiter.
Aber eine Frage ist noch nicht beantwortet:
"Wie kommt man an die Register und deren Bedeutung/Funktion?!" Andere Komponenten würden mich auch interessieren - für den HM-SEC-MDIR habe ich mir das auch mühsellig aus den google groups herausgefischt - ich meine man kann es auch mal ausprobieren, dafür muss man aber auch Zeit haben ;o).

Danke und Viele Grüße
Arthur

martinp876

Die Daten stehen in einem XML file.
in HM bekommest du eine erklaerung mir

get <device> regList - siehe Unten

a) zu beachten ist, dass die Register für die Entity ausgegeben werden. Also ein Device hat andere als ein Channel.Und die von Channels koennen unterschiedlich sein.
 Beispiel: ein 2-fach schalter hat ein device und 2 channels. Die Register der Channel sind identisch, die vom Device sind andere
 Bei einem TC sind alle 3 Channels unterschiedlich.
 Ob Channels andere Register haben kann man in der Regel an deren Unterscheidlichen Aufgaben sehen (rc19 mit 16 Buttons und einem Display...)

b) die Beschreibung ist kurz - und die Bedeutung ist auch in XML nicht beschrieben. Hier ist man auf externe Docu und sein Gefühl angewiesen.

c) Du kannst nur registerListen von devices ausgeben, die du definiert hast. Das ist aber kein Problem, definiere es einfach, lese aus und lösche wieder
define tst CUL_HM 333333
attr tst model HM-SEC-MDIR
attr tst subType motionDetector
get tst regList
define tst1 CUL_HM 33333301
get tst1 regList
define tst2 CUL_HM 33333302
get tst2 regList
delete tst  # alles wieder weg

d) zu beachten ist, das die register die aktuell dekodierten sind. Ich bemühe mich, viel einzubauen. Bei manchen kann aber auch etwas fehlen... MDIR sollte komplett sein

e) einige Register sind "literals" - man muss also den Inhalt als Namen angeben - die möglichkeiten stehen in options in der Beschreibung

f) die aktuellen Register werden mit
get device reg all
ausgegeben und muessen vorher mit
set device getConfig
dem device entlockt werden

Viel Spass


hier ein Beispiel eines Switch-Aktor channels - device hat andere Register



list:         register | range              | peer     |exp| description
   3: lgActionType     |   - to -           | required |   |  options:toggleToCntInv,off,toggleToCnt,jmpToTarget
   3: lgCtDlyOff       |   - to -           | required |exp| Jmp on condition from delayOff options:geLo,between,outside,ltLo,geHi,ltHi
   3: lgCtDlyOn        |   - to -           | required |exp| Jmp on condition from delayOn options:geLo,between,outside,ltLo,geHi,ltHi
   3: lgCtOff          |   - to -           | required |exp| Jmp on condition from Off options:geLo,between,outside,ltLo,geHi,ltHi
   3: lgCtOn           |   - to -           | required |exp| Jmp on condition from On options:geLo,between,outside,ltLo,geHi,ltHi
   3: lgCtValHi        |   0 to 255         | required |exp| Condition value high for CT table
   3: lgCtValLo        |   0 to 255         | required |exp| Condition value low for CT table
   3: lgMultiExec      |   - to -           | required |   | multiple execution per repeat of long trigger options:on,off
   3: lgOffDly         |   0 to 111600s     | required |exp| off delay
   3: lgOffTime        |   0 to 111600s     | required |exp| off time
   3: lgOffTimeMode    |   - to -           | required |exp| off time mode options:minimal,absolut
   3: lgOnDly          |   0 to 111600s     | required |exp| on delay
   3: lgOnTime         |   0 to 111600s     | required |exp| on time
   3: lgOnTimeMode     |   - to -           | required |exp| on time mode options:minimal,absolut
   3: lgSwJtDlyOff     |   - to -           | required |exp| Jump from delayOff options:on,off,dlyOn,no,dlyOff
   3: lgSwJtDlyOn      |   - to -           | required |exp| Jump from delayOn options:on,off,dlyOn,no,dlyOff
   3: lgSwJtOff        |   - to -           | required |exp| Jump from Off options:on,off,dlyOn,no,dlyOff
   3: lgSwJtOn         |   - to -           | required |exp| Jump from On options:on,off,dlyOn,no,dlyOff
   3: shActionType     |   - to -           | required |   |  options:toggleToCntInv,off,toggleToCnt,jmpToTarget
   3: shCtDlyOff       |   - to -           | required |exp| Jmp on condition from delayOff options:geLo,between,outside,ltLo,geHi,ltHi
   3: shCtDlyOn        |   - to -           | required |exp| Jmp on condition from delayOn options:geLo,between,outside,ltLo,geHi,ltHi
   3: shCtOff          |   - to -           | required |exp| Jmp on condition from Off options:geLo,between,outside,ltLo,geHi,ltHi
   3: shCtOn           |   - to -           | required |exp| Jmp on condition from On options:geLo,between,outside,ltLo,geHi,ltHi
   3: shCtValHi        |   0 to 255         | required |exp| Condition value high for CT table
   3: shCtValLo        |   0 to 255         | required |exp| Condition value low for CT table
   3: shOffDly         |   0 to 111600s     | required |exp| off delay
   3: shOffTime        |   0 to 111600s     | required |exp| off time
   3: shOffTimeMode    |   - to -           | required |exp| off time mode options:minimal,absolut
   3: shOnDly          |   0 to 111600s     | required |exp| on delay
   3: shOnTime         |   0 to 111600s     | required |exp| on time
   3: shOnTimeMode     |   - to -           | required |exp| on time mode options:minimal,absolut
   3: shSwJtDlyOff     |   - to -           | required |exp| Jump from delayOff options:on,off,dlyOn,no,dlyOff
   3: shSwJtDlyOn      |   - to -           | required |exp| Jump from delayOn options:on,off,dlyOn,no,dlyOff
   3: shSwJtOff        |   - to -           | required |exp| Jump from Off options:on,off,dlyOn,no,dlyOff
   3: shSwJtOn         |   - to -           | required |exp| Jump from On options:on,off,dlyOn,no,dlyOff

Martin Thomas Schrott

Hi auch nochmal,

am besten immer im wiki zuerst nachsehen, oft hat sich schon jemand die Mühe gemacht und alles verdeutscht.
Beim mdir bin ich miten im Testen aberdie Zeit arbeitet gegen mich. Daher ist dort noch nicht alles richtig erklärt - auch in der regList nicht.
Du hast gemeint du hast dir das erarbeitet / gesucht, kannst du mir deine Erkenntnisse und Erklärungen senden? Ev. spar ich mir dann ein paar zusätzliche Tests.Wäre super.

lG
Martin

snoop

Hallo zusammen,

eine kurze Zusammenfassung um den Thread abzuschließen und falls jemand lußt hat das nachzubauen:

Meine Idee ist es/war es die 4 Tasten Fernbedienung mit möglichst vielen Funktionen auszustatten (Es geht noch mehr aber es soll natürlich noch nutzbar sein).

#########################################
## Genutzte Komponenten:
#########################################
- 2 x Aktoren (HM-LC-SW2-FM) je 2 Kanal
- 1 x Fernbedienung (HM-RC-4)

#########################################
## Belegung der Tasten: Soll Zustand
#########################################
# Wird über Direkt pairing realsiert
Btn1 (short) = Fassadenbeleuchtung Strasse toggel
Btn2 (short) = Fassadenbeleuchtung Eingang toggel
Btn3 (short) = Fassadenbeleuchtung Terrasse toggel
Btn4 (short) = Fassadenbeleuchtung Garten toggel

# Wird mit FHEM Boardmitteln realisiert
Btn3 (long) = Gesamte Fassadenbeleuchtung aus
Btn4 (long) = Gesamte Fassadenbeleuchtung an

#########################################################################
##
## HIER NUN DER CODE
##
#########################################################################

#########################################################################
##  
##  Zweck.........: 1. Aktor für Fassadenbeleuchtung (Strassenseite -S- und Terasse -T-)
##  Standort......: Dachgeschoss
##  Typ...........:  
##  Installation..: 30.12.2012
##  Besonderheiten:
##                  
#########################################################################
define FD_ST_Beleuchtung_1 CUL_HM XXXXXX
attr FD_ST_Beleuchtung_1 devInfo 020100
attr FD_ST_Beleuchtung_1 firmware 1.9
attr FD_ST_Beleuchtung_1 hmClass receiver
attr FD_ST_Beleuchtung_1 model HM-LC-SW2-FM
attr FD_ST_Beleuchtung_1 room Aussenbeleuchtung
attr FD_ST_Beleuchtung_1 serialNr XXXXXXXXX
attr FD_ST_Beleuchtung_1 subType switch
#########################################################################
##  eigenes Log
#########################################################################
define FileLog_FD_ST_Beleuchtung_1 FileLog ./log/FD_ST_Beleuchtung_1-%Y.log FD_ST_Beleuchtung_1
attr FileLog_FD_ST_Beleuchtung_1 logtype text
attr FileLog_FD_ST_Beleuchtung_1 room Server

#########################################################################
##  Channel 01
#########################################################################
define FD_S_Beleuchtung_1_Sw_01 CUL_HM XXXXXX01
attr FD_S_Beleuchtung_1_Sw_01 eventMap on:An off:Aus
attr FD_S_Beleuchtung_1_Sw_01 model HM-LC-SW2-FM
attr FD_S_Beleuchtung_1_Sw_01 peerIDs YYYXXX01,XXXYYY01,
attr FD_S_Beleuchtung_1_Sw_01 room Aussenbeleuchtung
attr FD_S_Beleuchtung_1_Sw_01 subType switch
#########################################################################
##  eigenes Log
#########################################################################
define FileLog_FD_S_Beleuchtung_1_Sw_01 FileLog ./log/FD_S_Beleuchtung_1_Sw_01-%Y.log FD_S_Beleuchtung_1_Sw_01
attr FileLog_FD_S_Beleuchtung_1_Sw_01 logtype text
attr FileLog_FD_S_Beleuchtung_1_Sw_01 room Server

#########################################################################
##  Channel 02
#########################################################################
define FD_T_Beleuchtung_1_Sw_02 CUL_HM XXXXXX02
attr FD_T_Beleuchtung_1_Sw_02 eventMap on:An off:Aus
attr FD_T_Beleuchtung_1_Sw_02 model HM-LC-SW2-FM
attr FD_T_Beleuchtung_1_Sw_02 peerIDs YYYXXX03,XXXYYY03,
attr FD_T_Beleuchtung_1_Sw_02 room Aussenbeleuchtung
attr FD_T_Beleuchtung_1_Sw_02 subType switch
#########################################################################
##  eigenes Log
#########################################################################
define FileLog_FD_T_Beleuchtung_1_Sw_02 FileLog ./log/FD_T_Beleuchtung_1_Sw_02-%Y.log FD_T_Beleuchtung_1_Sw_02
attr FileLog_FD_T_Beleuchtung_1_Sw_02 logtype text
attr FileLog_FD_T_Beleuchtung_1_Sw_02 room Server

#########################################################################
##  
##  Zweck.........: 2. Aktor für Fassadenbeleuchtung (Eingangsbereich -E- und Garten -G-)
##  Standort......: Dachgeschoss
##  Typ...........:  
##  Installation..: 30.12.2012
##  Besonderheiten:
##                  
#########################################################################
define FD_EG_Beleuchtung_1 CUL_HM YYYYYY
attr FD_EG_Beleuchtung_1 devInfo 020100
attr FD_EG_Beleuchtung_1 firmware 1.9
attr FD_EG_Beleuchtung_1 hmClass receiver
attr FD_EG_Beleuchtung_1 model HM-LC-SW2-FM
attr FD_EG_Beleuchtung_1 room Aussenbeleuchtung
attr FD_EG_Beleuchtung_1 serialNr XXXXXXXXX
attr FD_EG_Beleuchtung_1 subType switch
#########################################################################
##  eigenes Log
#########################################################################
define FileLog_FD_EG_Beleuchtung_1 FileLog ./log/FD_EG_Beleuchtung_1-%Y.log FD_EG_Beleuchtung_1
attr FileLog_FD_EG_Beleuchtung_1 logtype text
attr FileLog_FD_EG_Beleuchtung_1 room Server

#########################################################################
##  Channel 01
#########################################################################
define FD_E_Beleuchtung_1_Sw_01 CUL_HM YYYYYY01
attr FD_E_Beleuchtung_1_Sw_01 eventMap on:An off:Aus
attr FD_E_Beleuchtung_1_Sw_01 model HM-LC-SW2-FM
attr FD_E_Beleuchtung_1_Sw_01 peerIDs YYYXXX02,XXXYYY02,
attr FD_E_Beleuchtung_1_Sw_01 room Aussenbeleuchtung
attr FD_E_Beleuchtung_1_Sw_01 subType switch
#########################################################################
##  eigenes Log
#########################################################################
define FileLog_FD_E_Beleuchtung_1_Sw_01 FileLog ./log/FD_E_Beleuchtung_1_Sw_01-%Y.log FD_E_Beleuchtung_1_Sw_01
attr FileLog_FD_E_Beleuchtung_1_Sw_01 logtype text
attr FileLog_FD_E_Beleuchtung_1_Sw_01 room Server

#########################################################################
##  Channel 02
#########################################################################
define FD_G_Beleuchtung_1_Sw_02 CUL_HM YYYYYY02
attr FD_G_Beleuchtung_1_Sw_02 eventMap on:An off:Aus
attr FD_G_Beleuchtung_1_Sw_02 model HM-LC-SW2-FM
attr FD_G_Beleuchtung_1_Sw_02 peerIDs YYYXXX04,XXXYYY04,
attr FD_G_Beleuchtung_1_Sw_02 room Aussenbeleuchtung
attr FD_G_Beleuchtung_1_Sw_02 subType switch
#########################################################################
##  eigenes Log
#########################################################################
define FileLog_FD_G_Beleuchtung_1_Sw_02 FileLog ./log/FD_G_Beleuchtung_1_Sw_02-%Y.log FD_G_Beleuchtung_1_Sw_02
attr FileLog_FD_G_Beleuchtung_1_Sw_02 logtype text
attr FileLog_FD_G_Beleuchtung_1_Sw_02 room Server

#########################################################################
#########################################################################
##  4-Tasten Fernbedienung
##  Zweck.........: Aussenbeläuchtung
##
##  Standort......: Wohnzimmer
##  Typ...........: HM-RC-4 (Weiß)
##  Installation..: 07.01.2013 4-Tasten-Fernbedienung
##  Besonderheiten:
#########################################################################

define FB_4_3 CUL_HM XXXXXX
attr FB_4_3 devInfo 040000
attr FB_4_3 firmware 1.3
attr FB_4_3 hmClass sender
attr FB_4_3 model HM-RC-4
attr FB_4_3 room Fernbedienungen
attr FB_4_3 serialNr XXXXXXXXXXX
attr FB_4_3 subType remote

#########################################################################
##  eigenes Log
#########################################################################
define FileLog_FB_4_3 FileLog ./log/FB_4_3-%Y.log FB_4_3
attr FileLog_FB_4_3 logtype text
attr FileLog_FB_4_3 room Server

#########################################################################
## rechter Button Reihe 1 OFF/LINKS
## Funktion......: Rollladen hoch im Wohnzimmer
## Besonderheiten: ACHTUNG, on und off sind im Wohnzimmer vertauscht
##                 wegen der Tasten auf dem Taster an dem Aktuator
#########################################################################
define FB_4_3_Btn_01 CUL_HM XXXXXX01
attr FB_4_3_Btn_01 model HM-RC-4
attr FB_4_3_Btn_01 peerIDs
attr FB_4_3_Btn_01 room Fernbedienungen

#########################################################################
## rechter Button Reihe 1 ON/RECHTS
## Funktion......: Rollladen hoch im Wohnzimmer
## Besonderheiten: ACHTUNG, on und off sind im Wohnzimmer vertauscht
##                 wegen der Tasten auf dem Taster an dem Aktuator
#########################################################################
define FB_4_3_Btn_02 CUL_HM 1C08F402
attr FB_4_3_Btn_02 model HM-RC-4
attr FB_4_3_Btn_02 peerIDs
attr FB_4_3_Btn_02 room Fernbedienungen

#########################################################################
## rechter Button Reihe 2 OFF/LINKS
## Funktion......: Rollladen hoch im Gästezimmer
## Besonderheiten: on=runter off=hoch
#########################################################################
define FB_4_3_Btn_03 CUL_HM 1C08F403
attr FB_4_3_Btn_03 model HM-RC-4
attr FB_4_3_Btn_03 room Fernbedienungen

define FB_4_3_Btn_03_offLong notify FB_4_3:FB_4_3_Btn_03.LongRelease.* set FD_S_Beleuchtung_1_Sw_01,FD_E_Beleuchtung_1_Sw_01,FD_T_Beleuchtung_1_Sw_02,FD_G_Beleuchtung_1_Sw_02 off
attr FB_4_3_Btn_03_offLong room Fernbedienungen

#########################################################################
## rechter Button Reihe 2 ON/RECHTS
## Funktion......: Rollladen hoch im Gästezimmer
## Besonderheiten: on=runter off=hoch
#########################################################################
define FB_4_3_Btn_04 CUL_HM 1C08F404
attr FB_4_3_Btn_04 model HM-RC-4
attr FB_4_3_Btn_04 room Fernbedienungen

define FB_4_3_Btn_04_onLong notify FB_4_3:FB_4_3_Btn_04.LongRelease.* set FD_S_Beleuchtung_1_Sw_01,FD_E_Beleuchtung_1_Sw_01,FD_T_Beleuchtung_1_Sw_02,FD_G_Beleuchtung_1_Sw_02 on
attr FB_4_3_Btn_04_onLong room Fernbedienungen

##########################################################
# Muss manuell ausgeführt werden also in der CMD Box
##########################################################
# Button 1
###################
#set FB_4_3_Btn_01 devicepair 0 FD_S_Beleuchtung_1_Sw_01 single set #Device pair single=toggel
#set FD_S_Beleuchtung_1_Sw_01 regSet lgActionType off FB_4_3_Btn_01 #Deaktiviere LongPress
###################
# Button 2
###################
#set FB_4_3_Btn_02 devicepair 0 FD_E_Beleuchtung_1_Sw_01 single set #Device pair single=toggel
#set FD_E_Beleuchtung_1_Sw_01 regSet lgActionType off FB_4_3_Btn_02 #Deaktiviere LongPress
###################
# Button 3
###################
#set FB_4_3_Btn_03 devicepair 0 FD_T_Beleuchtung_1_Sw_02 single set #Device pair single=toggel
#set FD_T_Beleuchtung_1_Sw_02 regSet lgActionType off FB_4_3_Btn_03 #Deaktiviere LongPress
###################
# Button 4
###################
#set FB_4_3_Btn_04 devicepair 0 FD_G_Beleuchtung_1_Sw_02 single set #Device pair single=toggel
#set FD_G_Beleuchtung_1_Sw_02 regSet lgActionType off FB_4_3_Btn_04 #Deaktiviere LongPress
#
#Abschließend:    set FD_ST_Beleuchtung_1 getConfig
#             set FD_EG_Beleuchtung_1 getConfig
##########################################################

#########################################
## Konfiguration der Fernbedienung: Änderung der longPress Werte
#########################################
set FB_4_3_Btn_01 getConfig
set FB_4_3_Btn_01 regSet longPress 1.2
#get FB_4_3_Btn_01 regList (optional)
#get FB_4_3_Btn_01 reg all (optional)

set FB_4_3_Btn_02 getConfig
set FB_4_3_Btn_02 regSet longPress 1.2
#get FB_4_3_Btn_02 regList (optional)
#get FB_4_3_Btn_02 reg all (optional)

set FB_4_3_Btn_03 getConfig
set FB_4_3_Btn_03 regSet longPress 1.2
#get FB_4_3_Btn_03 regList (optional)
#get FB_4_3_Btn_03 reg all (optional)

set FB_4_3_Btn_04 getConfig
set FB_4_3_Btn_04 regSet longPress 1.2
#get FB_4_3_Btn_04 regList (optional)
#get FB_4_3_Btn_04 reg all (optional)

#Jetzt die Anlerntaste(Resettaste auf der Rückseite) betätigen.

martinp876

Hallo Snoop,

super dass es klappt.

ein paar Anmerkungen udn Anregungen - nur damit niemand stolpert:

Attribute der Devices sollte man immer fhem setzen lassen. Damit meine ich
 - model
 - subtype
 - serial
 - firmware
 - devInfo
 - hmClass
das kommt alles beim druecken von Anlernen.

Sonstige attribute:
 - peerIDs  => sollte man immer von FHEM setzen lassen - also mit devicepair
 - subType ist fuer channels nicht notwendig
 - hmClass wird zu (fast) nichts gebraucht - werden ich evtl abschaffen, da es quasi nutzlos ist

Richtig ist natuerlich, dass die attribute in fhem.cfg gespeichert werden und man sie dort bearbeiten koennte.
Wenn du es so schreibst koennte jemand den Eindruck gewinnen, dass man durch setzen des
attr peerIDs
ein peering erstellen koennte. Das ist natuerlich schmarrn, da braucht man devicepair.

Empfehlen kann ich bei deinen switches ein
attr autoRegRead 1
zu setzen. Wie in der Anleitung beschrieben sollte es nur am device stehen, nicht an den Kanaelen

Logfiles solltest du (meine Meinung ) nur die anlegen, die dich auch interessieren. Die kosten Performance und machen nur sinn, wenn du sie auch nutzen willst. Sinnvoll ist m.E. auch, logfiles zusammenzufassen, also Gruppen von Schaltern sinnvoll in ein File zu schreiben. FHEM kann nicht sinnvoll einteilen, daher werden alle entities separat angelegt. Sollte der User ueberdenken.

Gruss
Martin