linux usb hid input modul

Begonnen von justme1968, 13 April 2015, 23:00:21

Vorheriges Thema - Nächstes Thema

Markus M.

disable ist permanent, disconnect für's UI gedacht, zwecks Debugging etc.
Ich hab mich grade noch zurückhalten können, dem Ding auch noch ein connect als Alias zu reconnect zu verpassen ;)
Melde den Hub gerade als "Windows PC" an FHEM an, mal sehen was da so alles ankommt.
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

Markus M.

Mehr Keys (alles was Win,Mac,PS3 und iPhone ausgespuckt haben) und ein paar Erkenntnisse:
- Hardwaretasten von Netbooks und Touchscreens lassen sich wunderbar nutzen
- Wer auch immer sich den Befehlssatz der PS3 Fernbedienung ausgedacht hat, war dabei betrunken
- Windows und Mac senden bei den meisten Tasten der FB (bizarre) Tastenkombinationen
- Harmony Wii auf FHEM klappt nicht (da scheinvar kein HID), anschliessend konnte ich allerdings die Taststur nicht mehr anmelden und hatte stattdessen 3 Wii Geräte in der Events Liste, darunter einen Gyrosensor: Morgen wird die Wiimote ausgepackt :)

tl;dr:
FHEM als Rechner mit "Other OS" anzumelden ist wahrscheinlich die beste Option, da dabei alle Tasten nur einfach belegt sind und die Anzahl auch locker ausreichen sollte.

M.
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

justme1968

ich habe die version im ersten post aktualisiert.

da sind deine erweiterungen mit drin und ein neue attribut ignoredTypes zum konfigurieren der event typen die ignoriert werden sollen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Markus M.

Hat jemand nen Touchscreen?
Falls ja, bitte mal die Version im Anhang testen :)
Habe zusätzlich noch den Code optimiert (EV_SYN raus, etc.).

Ich schlage vor dass wir das Modul so umbauen dass es in einer Schleife die Readings für Keys und andere Werte (ABS_X, ABS_Y, ...) erzeugt und dann beim passenden EV_SYN erst Events ausgibt.
Andre, was hältst du davon?
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

justme1968

EV_SYN sollte automatisch durch ein passend gesetztes ignoredTypes attribut raus fliegen. bei einem neu angelegten hid device wird ignoredTypes automatisch auf EV_SYN,EV_MSC gesetzt. hat das bei dir nicht funktioniert ?

ich bin mir nicht sicher ob EV_SYN wirklich kommt. bei meinen ersten tests mit einem recht alten system sind die key events ohne syn gekommen.

ich würde die events lieber ohne verzögerung direkt ausliefern. im normal fall sollte es keinen unterschied machen und im fehler fall ist es robuster.

bei koordinaten und ähnlichem ist es eventuell sinnvoll diese zusammen zu fassen. ich hab mir noch nicht angeschaut wie maus oder touch events aussehen. da sollten wir vielleicht erst mal warten ob es dafür eine anwendung gibt und dann drüber nachdenken wie man das am besten umsetzt.

zusätzlich zu den ignored types würde ich gerne noch ein ignoredValues und ein allowedValues einbauen um zu konfigurieren ob nur key press oder auch repeat und release gemeldet werden soll. für volume up & down ist es schlecht nur die press events zu haben.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Markus M.

EV_SYN brauchen wir erst wenn wir Werte zusammenfassen. Deshalb spare ich den Aufruf ein ;)
Für die anderen Key Events sehe ich aktuell keinen Einsatzzweck. Harmony kennt kein Repeat.
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

justme1968

eine taste erzeugt meist drei events. syn, msc und key. bei msc und key hast du jetzt zwei if statt einem. ich weiß nicht ob das unterm strich wirsch spart.

aber andere keyboard kennen repeat.  die ir empfänger zum beispiel.

sendet die harmony auch für volume keine repeat?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Markus M.

Bei Key kommt tatsächlich ein Vergleich gegen EV_SYN dazu, den ich aber nicht nur weiter unten doppelt und dreifach eingespart habe sondern der auch den kompletten Code eine Zeile darauf verhindert :)
Die Häufigkeit und Reihenfolge der Checks spielt auch noch mit rein - der kürzeste Weg zum Return ist der beste ;)
Ist aber auch noch ein Copy/Paste Fehler drin.

Was und wie sendet IR denn? Keys?
Ich habe leider keinen Empfänger.

Die Harmony teste ich zur Sicherheit noch mal mit einer Taste doppelt auf den selben Key.
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

Hans Franz

Hallo,
wollte das auch 'mal mit einer just erstandenen IR-Fernbedienung(identisch mit Hama MCE Remote Control PC-Fernbedienung) ausprobieren.

Erhalte aber nur EV_MSC- und EV_SYN-events.

Internals:
   CFGFN
   CONNECTS   21
   DEF        event15
   FD         5
   LAST_DISCONNECT 2015-04-16 19:00:24
   NAME       hid
   NR         342
   NTFY_ORDER 50-hid
   STATE      Connected
   TYPE       linuxHid
   device     event15
   eventSize  24
   devices:
     HASH(0x4e57eb8)
     HASH(0x4c65af0)
     HASH(0x4e47990)
     HASH(0x2d41808)
     HASH(0x4cd5368)
     HASH(0x4cd4cc0)
     HASH(0x4e4d500)
     HASH(0x4e6a550)
     HASH(0x4e52e88)
     HASH(0x455b610)
     HASH(0x4bd5fa8)
     HASH(0x4ccf2a0)
     HASH(0x3d06ea0)
     HASH(0x4e5aa30)
     HASH(0x4e3daa0)
     HASH(0x3d05be8)
     HASH(0x4cd53c8)
   Helper:
Attributes:
   exclusive  1
   ignoredTypes 1
   room       test


ll  /dev/input/event15
crw-r----- 1 fhem dialout 13, 79 Apr 16 18:50 /dev/input/event15


lsusb
ID 05a4:9881 Ortek Technology, Inc. IR receiver [VRC-1100 Vista MCE Remote Control]


Mach' ich etwas falsch?

Gruß
Hans
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

justme1968

ist event15 wirklich das richtige device? meine hama fb taucht wie oben beschrieben zwei mal auf.

zeig mal bitte die ausgabe von get hid devices

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

der-Lolo

Hat mal jemand versucht die schnuckelige Fernbedienung vom Apple TV zu pairen...?

Hans Franz

$VAR1 = [
          {
            'eventTypes' => '0x3',
            'eventTypesStr' => 'EV_SYN,EV_KEY',
            'handler' => 'event0',
            'id' => {
                      'bus' => '0x0019',
                      'product' => '0x0001',
                      'vendor' => '0x0000',
                      'version' => '0x0000'
                    },
            'keys' => '10000000000000 0',
            'name' => 'Power Button'
          },
          {
            'eventTypes' => '0x3',
            'eventTypesStr' => 'EV_SYN,EV_KEY',
            'handler' => 'event1',
            'id' => {
                      'bus' => '0x0019',
                      'product' => '0x0001',
                      'vendor' => '0x0000',
                      'version' => '0x0000'
                    },
            'keys' => '10000000000000 0',
            'name' => 'Power Button'
          },
          {
            'eventTypes' => '0x120013',
            'eventTypesStr' => 'EV_SYN,EV_KEY,EV_MSC,EV_LED,EV_REP',
            'handler' => 'event2',
            'id' => {
                      'bus' => '0x0011',
                      'product' => '0x0001',
                      'vendor' => '0x0001',
                      'version' => '0xab41'
                    },
            'keys' => '402000000 3803078f800d001 feffffdfffefffff fffffffffffffffe',
            'name' => 'AT Translated Set 2 keyboard'
          },
          {
            'eventTypes' => '0x120013',
            'eventTypesStr' => 'EV_SYN,EV_KEY,EV_MSC,EV_LED,EV_REP',
            'handler' => 'event3',
            'id' => {
                      'bus' => '0x0003',
                      'product' => '0x4101',
                      'vendor' => '0x062a',
                      'version' => '0x0110'
                    },
            'keys' => '1000000000007 ff9f207ac14057ff febeffdfffefffff fffffffffffffffe',
            'name' => 'MOSART Semi. 2.4G Keyboard Mouse'
          },
          {
            'eventTypes' => '0x1f',
            'eventTypesStr' => 'EV_SYN,EV_KEY,EV_REL,EV_ABS,EV_MSC',
            'handler' => 'event4',
            'id' => {
                      'bus' => '0x0003',
                      'product' => '0x4101',
                      'vendor' => '0x062a',
                      'version' => '0x0110'
                    },
            'keys' => '4837fff072ff32d bf54444600000000 1f0001 20f908b17c000 677bfad941dfed 9ed68000004400 10000002',
            'name' => 'MOSART Semi. 2.4G Keyboard Mouse'
          },
          {
            'eventTypes' => '0x13',
            'eventTypesStr' => 'EV_SYN,EV_KEY,EV_MSC',
            'handler' => 'event5',
            'id' => {
                      'bus' => '0x0003',
                      'product' => '0x000c',
                      'vendor' => '0x0d8c',
                      'version' => '0x0100'
                    },
            'keys' => 'e000000000000 0',
            'name' => 'C-Media USB Headphone Set  '
          },
          {
            'eventTypes' => '0x21',
            'eventTypesStr' => 'EV_SYN,EV_SW',
            'handler' => 'event6',
            'id' => {
                      'bus' => '0x0000',
                      'product' => '0x0000',
                      'vendor' => '0x0000',
                      'version' => '0x0000'
                    },
            'name' => 'HDA Intel PCH Front Headphone'
          },
          {
            'eventTypes' => '0x21',
            'eventTypesStr' => 'EV_SYN,EV_SW',
            'handler' => 'event7',
            'id' => {
                      'bus' => '0x0000',
                      'product' => '0x0000',
                      'vendor' => '0x0000',
                      'version' => '0x0000'
                    },
            'name' => 'HDA Intel PCH Line Out'
          },
          {
            'eventTypes' => '0x21',
            'eventTypesStr' => 'EV_SYN,EV_SW',
            'handler' => 'event8',
            'id' => {
                      'bus' => '0x0000',
                      'product' => '0x0000',
                      'vendor' => '0x0000',
                      'version' => '0x0000'
                    },
            'name' => 'HDA Intel PCH Line'
          },
          {
            'eventTypes' => '0x21',
            'eventTypesStr' => 'EV_SYN,EV_SW',
            'handler' => 'event9',
            'id' => {
                      'bus' => '0x0000',
                      'product' => '0x0000',
                      'vendor' => '0x0000',
                      'version' => '0x0000'
                    },
            'name' => 'HDA Intel PCH Front Mic'
          },
          {
            'eventTypes' => '0x21',
            'eventTypesStr' => 'EV_SYN,EV_SW',
            'handler' => 'event10',
            'id' => {
                      'bus' => '0x0000',
                      'product' => '0x0000',
                      'vendor' => '0x0000',
                      'version' => '0x0000'
                    },
            'name' => 'HDA Intel PCH Rear Mic'
          },
          {
            'eventTypes' => '0x100013',
            'eventTypesStr' => 'EV_SYN,EV_KEY,EV_MSC,EV_REP',
            'handler' => 'event11',
            'id' => {
                      'bus' => '0x0019',
                      'product' => '0x0000',
                      'vendor' => '0x0000',
                      'version' => '0x0000'
                    },
            'keys' => '7e40000 0 800000000000 0 0 1400b00100000 300180001100800 e000000000000 2',
            'name' => 'Eee PC WMI hotkeys'
          },
          {
            'eventTypes' => '0x21',
            'eventTypesStr' => 'EV_SYN,EV_SW',
            'handler' => 'event12',
            'id' => {
                      'bus' => '0x0000',
                      'product' => '0x0000',
                      'vendor' => '0x0000',
                      'version' => '0x0000'
                    },
            'name' => 'HDA NVidia HDMI/DP,pcm=8'
          },
          {
            'eventTypes' => '0x21',
            'eventTypesStr' => 'EV_SYN,EV_SW',
            'handler' => 'event13',
            'id' => {
                      'bus' => '0x0000',
                      'product' => '0x0000',
                      'vendor' => '0x0000',
                      'version' => '0x0000'
                    },
            'name' => 'HDA NVidia HDMI/DP,pcm=7'
          },
          {
            'eventTypes' => '0x21',
            'eventTypesStr' => 'EV_SYN,EV_SW',
            'handler' => 'event14',
            'id' => {
                      'bus' => '0x0000',
                      'product' => '0x0000',
                      'vendor' => '0x0000',
                      'version' => '0x0000'
                    },
            'name' => 'HDA NVidia HDMI/DP,pcm=3'
          },
          {
            'eventTypes' => '0x120013',
            'eventTypesStr' => 'EV_SYN,EV_KEY,EV_MSC,EV_LED,EV_REP',
            'handler' => 'event15',
            'id' => {
                      'bus' => '0x0003',
                      'product' => '0x9881',
                      'vendor' => '0x05a4',
                      'version' => '0x0110'
                    },
            'keys' => 'e080ffdf01cfffff fffffffffffffffe',
            'name' => 'HID 05a4:9881'
          },
          {
            'eventTypes' => '0x17',
            'eventTypesStr' => 'EV_SYN,EV_KEY,EV_REL,EV_MSC',
            'handler' => 'event16',
            'id' => {
                      'bus' => '0x0003',
                      'product' => '0x9881',
                      'vendor' => '0x05a4',
                      'version' => '0x0110'
                    },
            'keys' => '1f0000 2020000 3878d801d001 1e000000000000 0',
            'name' => 'HID 05a4:9881'
          }
        ];

Mit cat /dev/input/event15 erscheinen bei Druck auf Zahlentasten kryptische Zeichen. event16 ist der Mausteil der FB.

Gruß
Hans
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

justme1968

event15 schaut richtig aus.

wenn beim cat etwas zu sehen ist solltest du in fhem im log und im event monitor auch etwas sehen. sobald es das device in fhem gibt sollte im cat nichts mehr zu sehen sein. wenn im cat immer noch etwas auftaucht stimmt die berechtigung eventuell nicht und fhem darf das device nicht öffnen.

ignoredTypes sollte auf EV_SYN,EV_MSC stehen.

gehen die anderen beiden tastaturen (event2 und event3) ?

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Markus M.

Ok, die Harmony kann doch REPEAT senden.
Allerdings nur dann wenn die entsprechende Taste bei short/long mit dem selben Kommando belegt ist und mit einer (hohen) Wiederholrate, die die sinnvolle Nutzung in Verbindung mit der Verzögerung wirkungsvoll verhindert.

- EV_KEY REPEAT eingebaut
- EV_MSC Codes eingebaut
- EV_SYN Codes vorbereitet
- Variablennamen etwas aufgeräumt
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

Hans Franz

Im EventMonitor sind nur EV_MSC- und EV_SYN-events, dummerweise auch bei event2 (event3 muss ich erst 'mal finden  :) ).
Im log sehe ich bei Taste: 1
2015.04.16 20:17:43 5: type:4 code:4 value:
2015.04.16 20:17:43 4: type:4 code:4 value:
2015.04.16 20:17:43 4:  (KEY_3)
2015.04.16 20:17:43 5: type:1 code:69 value:
2015.04.16 20:17:43 5: type:0 code:0 value:
2015.04.16 20:17:43 4: type:0 code:0 value:
2015.04.16 20:17:43 4:  (KEY_RESERVED)
2015.04.16 20:17:43 5: type:4 code:4 value:
2015.04.16 20:17:43 4: type:4 code:4 value:
2015.04.16 20:17:43 4:  (KEY_3)
2015.04.16 20:17:43 5: type:1 code:69 value:
2015.04.16 20:17:43 5: type:0 code:0 value:
2015.04.16 20:17:43 4: type:0 code:0 value:
2015.04.16 20:17:43 4:  (KEY_RESERVED)
2015.04.16 20:17:43 5: type:4 code:4 value:
2015.04.16 20:17:43 4: type:4 code:4 value:
2015.04.16 20:17:43 4:  (KEY_3)
2015.04.16 20:17:43 5: type:1 code:79 value:
2015.04.16 20:17:43 5: type:0 code:0 value:
2015.04.16 20:17:43 4: type:0 code:0 value:
2015.04.16 20:17:43 4:  (KEY_RESERVED)
2015.04.16 20:17:43 5: type:4 code:4 value:
2015.04.16 20:17:43 4: type:4 code:4 value:
2015.04.16 20:17:43 4:  (KEY_3)
2015.04.16 20:17:43 5: type:1 code:79 value:
2015.04.16 20:17:43 5: type:4 code:4 value:
2015.04.16 20:17:43 4: type:4 code:4 value:
2015.04.16 20:17:43 4:  (KEY_3)
2015.04.16 20:17:43 5: type:1 code:69 value:
2015.04.16 20:17:43 5: type:0 code:0 value:
2015.04.16 20:17:43 4: type:0 code:0 value:
2015.04.16 20:17:43 4:  (KEY_RESERVED)
2015.04.16 20:17:43 5: type:4 code:4 value:
2015.04.16 20:17:43 4: type:4 code:4 value:
2015.04.16 20:17:43 4:  (KEY_3)
2015.04.16 20:17:43 5: type:1 code:69 value:
2015.04.16 20:17:43 5: type:0 code:0 value:
2015.04.16 20:17:43 4: type:0 code:0 value:
2015.04.16 20:17:43 4:  (KEY_RESERVED)


bei Taste: 2
2015.04.16 20:18:52 5: type:4 code:4 value:
2015.04.16 20:18:52 4: type:4 code:4 value:
2015.04.16 20:18:52 4:  (KEY_3)
2015.04.16 20:18:52 5: type:1 code:69 value:
2015.04.16 20:18:52 5: type:0 code:0 value:
2015.04.16 20:18:52 4: type:0 code:0 value:
2015.04.16 20:18:52 4:  (KEY_RESERVED)
2015.04.16 20:18:52 5: type:4 code:4 value:
2015.04.16 20:18:52 4: type:4 code:4 value:
2015.04.16 20:18:52 4:  (KEY_3)
2015.04.16 20:18:52 5: type:1 code:69 value:
2015.04.16 20:18:52 5: type:0 code:0 value:
2015.04.16 20:18:52 4: type:0 code:0 value:
2015.04.16 20:18:52 4:  (KEY_RESERVED)
2015.04.16 20:18:52 5: type:4 code:4 value:
2015.04.16 20:18:52 4: type:4 code:4 value:
2015.04.16 20:18:52 4:  (KEY_3)
2015.04.16 20:18:52 5: type:1 code:80 value:
2015.04.16 20:18:52 5: type:0 code:0 value:
2015.04.16 20:18:52 4: type:0 code:0 value:
2015.04.16 20:18:52 4:  (KEY_RESERVED)
2015.04.16 20:18:52 5: type:4 code:4 value:
2015.04.16 20:18:52 4: type:4 code:4 value:
2015.04.16 20:18:52 4:  (KEY_3)
2015.04.16 20:18:52 5: type:1 code:80 value:
2015.04.16 20:18:52 5: type:4 code:4 value:
2015.04.16 20:18:52 4: type:4 code:4 value:
2015.04.16 20:18:52 4:  (KEY_3)
2015.04.16 20:18:52 5: type:1 code:69 value:
2015.04.16 20:18:52 5: type:0 code:0 value:
2015.04.16 20:18:52 4: type:0 code:0 value:
2015.04.16 20:18:52 4:  (KEY_RESERVED)
2015.04.16 20:18:52 5: type:4 code:4 value:
2015.04.16 20:18:52 4: type:4 code:4 value:
2015.04.16 20:18:52 4:  (KEY_3)
2015.04.16 20:18:52 5: type:1 code:69 value:
2015.04.16 20:18:52 5: type:0 code:0 value:
2015.04.16 20:18:52 4: type:0 code:0 value:
2015.04.16 20:18:52 4:  (KEY_RESERVED)


cat hatte ich vor dem Umstellen der udev-Regel ausprobiert, bei exclusive=1 tauchen jetzt auch bei cat keine Zeichen mehr auf.

Gruß
Hans
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20