LinuxHid: Unterschied zwischen den Versionen
Krikan (Diskussion | Beiträge) K (eigenen Tippfehler beseitigt) |
|||
(Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt) | |||
Zeile 15: | Zeile 15: | ||
== Human Interface Devices (HID) == | == Human Interface Devices (HID) == | ||
Dies ist die erste Version eines | Dies ist die erste Version eines FHEM Moduls um unter Linux Events von USB hid Geräten in fhem zu integrieren. | ||
===mögliche Anwendungen=== | ===mögliche Anwendungen=== | ||
* mit den Tasten einer Harmony Fernbedienung Events in | * mit den Tasten einer Harmony Fernbedienung Events in FHEM auslösen | ||
* entweder per Bluetooth oder per Windows MCE IR Empfänger | * entweder per Bluetooth oder per Windows MCE IR Empfänger | ||
hier kommt auch die ursprüngliche Idee Markus her. siehe: http://forum.fhem.de/index.php/topic,14163.msg284851.html#msg284851 | hier kommt auch die ursprüngliche Idee Markus her. siehe: http://forum.fhem.de/index.php/topic,14163.msg284851.html#msg284851 | ||
* eine Bluetooth Zehner Tastatur als Fernbedienung für | * eine Bluetooth Zehner Tastatur als Fernbedienung für FHEM verwenden | ||
oder alles andere das sich wie eine USB Tastatur verhält. z.b. Präsentations-Fernbedienungen | oder alles andere das sich wie eine USB Tastatur verhält. z.b. Präsentations-Fernbedienungen | ||
* die Encoder einer alten Maus oder eines alten Joysticks als Steuerung oder Rückmeldung in | * die Encoder einer alten Maus oder eines alten Joysticks als Steuerung oder Rückmeldung in FHEM verwenden | ||
* ... | * ... | ||
Zeile 45: | Zeile 45: | ||
der eventX Eintrag in der H: Zeile des gewünschten Geräts ist relevant. | der eventX Eintrag in der H: Zeile des gewünschten Geräts ist relevant. | ||
* prüfen ob der zugehörige Device Eintrag in /dev/input/eventX für den User unter dem | * prüfen ob der zugehörige Device Eintrag in /dev/input/eventX für den User unter dem FHEM läuft lesbar ist. | ||
ls -l /dev/input/event* | ls -l /dev/input/event* | ||
* wenn das nicht der Fall ist ensprechende udev Regel anlegen, | * wenn das nicht der Fall ist ensprechende udev Regel anlegen, FHEM mit in die nötige Gruppe aufnehmen oder (nur wenn es gar nicht anders geht) FHEM als root laufen lassen. | ||
* mit define hid linuxHid eventX das device in fhem.cfg anlegen. | * mit define hid linuxHid eventX das device in fhem.cfg anlegen. | ||
* sobald | * sobald Tastendrücke erkannt werden sollte im event monitor die zugehörigen events sichtbar sein. | ||
Es gibt events beim drücken, beim los lassen und beim autorepeat einer taste. | Es gibt events beim drücken, beim los lassen und beim autorepeat einer taste. | ||
Zeile 71: | Zeile 71: | ||
wenn das device über die usb ids angelegt wird sollte es auch nach abziehen und wieder anstecken automatisch wieder gefunden werden. wenn es über eventX angelegt wurde kann sich beim abziehen und wieder anstecken der bezeichner ändern. | wenn das device über die usb ids angelegt wird sollte es auch nach abziehen und wieder anstecken automatisch wieder gefunden werden. wenn es über eventX angelegt wurde kann sich beim abziehen und wieder anstecken der bezeichner ändern. | ||
===was fehlt noch=== | ===was fehlt noch=== |
Aktuelle Version vom 27. März 2018, 10:40 Uhr
linuxHid | |
---|---|
Zweck / Funktion | |
Einbinden von HID Devices | |
Allgemein | |
Typ | Inoffiziell |
Details | |
Dokumentation | Thema |
Support (Forum) | Sonstige Systeme |
Modulname | 37_linuxHid.pm |
Ersteller | Andre (Forum / Wiki) |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
Todo: Rechtschreibung, Wikifizierung |
Human Interface Devices (HID)
Dies ist die erste Version eines FHEM Moduls um unter Linux Events von USB hid Geräten in fhem zu integrieren.
mögliche Anwendungen
- mit den Tasten einer Harmony Fernbedienung Events in FHEM auslösen
- entweder per Bluetooth oder per Windows MCE IR Empfänger
hier kommt auch die ursprüngliche Idee Markus her. siehe: http://forum.fhem.de/index.php/topic,14163.msg284851.html#msg284851
- eine Bluetooth Zehner Tastatur als Fernbedienung für FHEM verwenden
oder alles andere das sich wie eine USB Tastatur verhält. z.b. Präsentations-Fernbedienungen
- die Encoder einer alten Maus oder eines alten Joysticks als Steuerung oder Rückmeldung in FHEM verwenden
- ...
ignoreTypes
- Bei einem neu angelegten hid Device wird ignoredTypes automatisch auf EV_SYN,EV_MSC gesetzt
ignoreValues
- Ignoriert Werte vom Type KEY_UP, KEY_DOWN,KEY_REPEAT
wie funktioniert das ganze
- mit cat /proc/bus/input/devices auf der Kommandozeile rausfinden welche hid Devices im System bekannt sind.
der eventX Eintrag in der H: Zeile des gewünschten Geräts ist relevant.
- prüfen ob der zugehörige Device Eintrag in /dev/input/eventX für den User unter dem FHEM läuft lesbar ist.
ls -l /dev/input/event*
- wenn das nicht der Fall ist ensprechende udev Regel anlegen, FHEM mit in die nötige Gruppe aufnehmen oder (nur wenn es gar nicht anders geht) FHEM als root laufen lassen.
- mit define hid linuxHid eventX das device in fhem.cfg anlegen.
- sobald Tastendrücke erkannt werden sollte im event monitor die zugehörigen events sichtbar sein.
Es gibt events beim drücken, beim los lassen und beim autorepeat einer taste.
- diese events lassen sich ganz normal mit fhem notifys weiter verarbeiten
- alternativ zum cat kann man mit define hid linuxHid xxx erst mal ein hid device anlegen und mit get devices die vorhanden devices auflisten. mit modify kann man dann auf ein echtes device umändern
- statt eventX kann man auch den device namen angeben (als regex, leerzeichen durch . ersetzt) oder als bus:vendor:device:version:eventTypes string (nicht relevante teile leer lassen)
z.b.:
define hid linuxHid :0x04f2:0x0402 oder define hid linuxHid .*keyboard.*
- wenn vorhanden kann auch die mac adresse des device im define angegeben werden: define hid linuxHid 00:04:20:eb:f6:b7
ein physikalisches device kann mehrfach in der device liste auftauchen. 'moderne' Tastaturen mit multimedia tasten erscheinen meist als gerät für die 'normalen' tasten und als gerät für die multimedia tasten. man kann so z.b. der normalen system Tastatur die Multimedia tasten klauen und exclusiv in fhem verfügbar machen und alle anderen tasten weiter auf Systemebene und der konsole verwenden.
das hid device kann entweder exklusiv events an fhem liefern. das ist der default. oder die events landen zusätzlich auch noch ganz normal im betriebsystem.
wenn das device über die usb ids angelegt wird sollte es auch nach abziehen und wieder anstecken automatisch wieder gefunden werden. wenn es über eventX angelegt wurde kann sich beim abziehen und wieder anstecken der bezeichner ändern.
was fehlt noch
- Zur zeit werden nur Tastatur Events verarbeitet. d.h. die oben angesprochenen Maus und Joystick events gehen noch nicht.
- Fast alle fhem events haben noch keine symbolischen tasten Namen sondern nur key codes
- symbolische Namen für press, release und repeat
- Konfiguration ob release events erzeugt werden sollen
- standardisieren der in fhem ausgelösten events
was ist noch denkbar
Im exclusiv modus events die nicht für fhem gedacht sind wieder ans system zurück weiterreichen