linux usb hid input modul

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

Vorheriges Thema - Nächstes Thema

justme1968

auf harmony seite legst du einen pc an und fügst eine bluetooth tastatur hinzu. das geht nur mit der app.

auf cubie seite musst du das gleiche tun das du zum pairen einer normalen bluetooth tastatur tun würdest.

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

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

Firetic

Das ist leider der Punkt wo ich hänge :-(

Habe es mit "bluez-simple-agent" probiert aber leider scheint es das auf meinen Cubietruck nicht zu geben (Jessie Image). Befürchte das ich mein System wohl mit einem aktuellerem Image neu aufsetzen muss...

Oder es hätte noch jemand einen Vorschlag der zufällig die gleichen Probleme hatte ;-)

Gary

Hi Firetic,

hier die Infos zur Verbindung über Shell, die ich mir aus verschiedenen Beiträgen zusammengeschrieben haben (wie gesagt, ich habe einen Raspberry).

Bluetooth & HID Module Installation
----------------------

Erst mal das System aktualisieren und das bluetooth Package mit ein paar Tools installieren:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get autoremove
sudo apt-get install bluetooth bluez-utils blueman


Bluetooth starten und Harmony pairen:
hcitool dev
hcitool scan

sudo bluez-simple-agent hci0 00:04:20:EB:F6:B7


However, this command failed for me with a cryptic error message ('Creating device failed: org.bluez.Error.AuthenticationRejected: Authentication Rejected').
I changed the one occurrence of 'KeyboardDisplay' with 'DisplayYesNo'

sudo vi /usr/bin/bluez-simple-agent

sudo bluez-simple-agent hci0 00:04:20:EB:F6:B7

sudo bluez-test-device trusted 00:04:20:EB:F6:B7 yes


Pairing mit Harmony aus der Mobile App heraus, und während Pairingprozess als Inputdevice verbinden:

sudo bluez-test-input connect 00:04:20:EB:F6:B7 yes

mrbreil

Hallo, erstmal möchte ich sagen das dieses Modul genau das ist was ich benötige um endlich meine Abschaltung beim einschlafen zu realisieren, leider bekomme ich das nicht hin.

Meine Hardware:

Harmony Hub
Fire Box (Bluetooth)
Fernseher (IR)
Fhem  (debian wheezy)

Habe mir jetzt die von #Wzut "beworbene" X10 Medion Fernbedienung bei Pollin bestellt, da ich ja Bluetooth nicht nutzen kann, da Bluetooth ja mit der Firebox belegt ist, wenn ich das richtig verstanden habe.

Als ersten ist mir nicht klar welche Version des Moduls nun die Aktuelle ist, die aus Post #1 oder #34?
Habe es mit beiden probiert.

Konnte am Anfang fhem nicht der Gruppe input zuweisen, weil diese nicht existierte, also habe ich sie erstellt und folgendes ergoogelt.

mkdir -p /etc/udev/rules.d
nano /etc/udev/rules.d/85-pure-data.rules


85-pure-data.rules mit folgenden Inhalt füllen
#
# pure data udev rules
#
# Put me in "/etc/udev/rules.d", I am named based on the debian udev rules format
#
# "add" actions are device insertions and device attributes are used to match the device
#
# "remove" actions are matched using ENV variables since the SYSFS node for the device is gone
# and thus the attributes have been deleted
#
# rules built using:
# - udevadm info -a -p $(udevadm info -q path -n /dev/*device*) : attributes
# - sudo udevadm monitor --env /dev/*device* : events and env vars
#
# Documentation is your friend: http://reactivated.net/writing_udev_rules.html
#
################################################################################################


# input devices
#
SUBSYSTEM=="input", GROUP="input", MODE="660"
 


rebootet.

Jetzt habe ich unter anderem folgende input devices
{
            'keys' => '108fcf32 ac1004300000000 0 802008000 1018080002801 9e968000000000 ffc',
            'handler' => 'event3',
            'name' => 'X10 Wireless Technology Inc USB Receiver',
            'id' => {
                      'bus' => '0x0003',
                      'version' => '0x0100',
                      'product' => '0x0006',
                      'vendor' => '0x0bc7'
                    },
            'eventTypesStr' => 'EV_SYN,EV_KEY,EV_MSC,EV_REP',
            'eventTypes' => '0x100013'
          },

und
{
            'keys' => '1b0000 0 0 0 0',
            'handler' => 'event4',
            'name' => 'X10 Wireless Technology Inc USB Receiver mouse',
            'id' => {
                      'bus' => '0x0003',
                      'version' => '0x0100',
                      'product' => '0x0006',
                      'vendor' => '0x0bc7'
                    },
            'eventTypesStr' => 'EV_SYN,EV_KEY,EV_REL',
            'eventTypes' => '0x7'
          },


Wähle ich das Mouse Ding wir mir nur angezeigt wenn ich nach unten drehe 2015-09-16 21:48:32 linuxHid hid EV_REL: 0 sonst nix.

Wähle ich den Receiver wurde mir gar nichts angezeigt, bis ich das Attribut ignoredTypes gelöscht habe. Dann wurde mir bei jeder Taste irgendwas mit EV_MSC: MSC_SCAN angezeigt, was mittlerweile auch nicht mehr funktioniert.

Außerdem ist mir nicht bewusst wie ich Fernbedienung im Harmony Hub asl Gerät hinzufüge.

Ich habe ja wirklick probiert mein Problem selber zu lösen,komme aber nicht weiter nd bin auf eure Hilfe angewiesen.

mrbreil

Diese Hardware wird doch, so wie ich es gelesen habe, genutzt. Kann mir bitte jemand einen Tip geben wie ihr das angebunden habt.

DC

Hallo ! Bin gerade frustriert - ich bekomme es nicht zusammen...

fhem läuft bei mir auf nem Cubieboard 2 (hat nen IR Empfänger eingebaut).

Nach ein paar Anläufen funktioniert der Sensor mit Fernbedienung unter lirc, wie hier beschrieben:
https://github.com/cubieplayer/Cubian/issues/75#issuecomment-23358111

evTest spuckt einen Key aus, wenn eine Taste gedrückt wird. Input ist Event1.

Unter FHEM ist der HID sichtbar, unter get devices erscheint auch was und der Status ist connected.
Nur kommen leider keine Tasten-Events in FHEM an. Der Event-Monitor zeigt auch nichts. Dafür sagt
das LOG-File

2015.10.04 00:04:05 3: hid: error opening /dev/input/event1

Was läuft falsch ?
----------
FHEM auf rPi, HMLAN, HM
Mac, iPad, iPhone

hexenmeister

Zitat von: DC am 04 Oktober 2015, 00:05:42
2015.10.04 00:04:05 3: hid: error opening /dev/input/event1

Ja, so ohne Glaskugel (ist gerade zum Polieren)... Wie sehen die Zugriffrechte aus?

ls -l /dev/input/event1

DC

#112
crw------- 1 root root 13, 65 Oct  3 23:33 /dev/input/event1

Da hab ich auch schon dran gedacht, bin aber nicht schlau geworden aus den udev Anleitungen
----------
FHEM auf rPi, HMLAN, HM
Mac, iPad, iPhone

hexenmeister

Wenn FHEM nicht gerade als root läuft (was keine gute Idee wäre), dann ist das Problem klar.
zum Probieren kannst Du chmod verwenden. Dauerhaft kommst Du nicht wirklich um udev herum. Ist aber weniger kompliziert, als es sich anhört.
Ich habe das bei mir schon mal gemacht und hier beschrieben: http://s6z.de/cms/index.php/homeautomation/fhem/94-x10-funkfernbedienung-mit-fhem-nutzen
Die vorgeschlagen udev-Regel müsstest Du an Dein Gerät natürlich anpassen, steht aber eigentlich alles dafür nötiges drin. Melde Dich wieder, falls etwas nicht klar ist.

DC

Sodele - das war es erst mal... Danke, läuft  :)

Der Text ist gut geschrieben und leicht nachvollziehbar...

Habe aber doch noch eine Frage:

Du sprichst davon, dass man nicht über die Event Queue beim Anlegen vom Device in FHEM gehen soll, sondern über die Device ID. Dummerweise haben meine beiden Devices (weil auf dem selben Chip - einmal IR, einmal GIO) die selbe ID:
I: Bus=0019 Vendor=0001 Product=0001 Version=0100
N: Name="axp20-supplyer"
P: Phys=m1kbd/input2
S: Sysfs=/devices/platform/sunxi-i2c.0/i2c-0/0-0034/axp20-supplyer.28/input/input0
U: Uniq=
H: Handlers=kbd event0
B: PROP=0
B: EV=7
B: KEY=100000 0 0 0
B: REL=0

I: Bus=0019 Vendor=0001 Product=0001 Version=0100
N: Name="sunxi-ir"
P: Phys=RemoteIR/input1
S: Sysfs=/devices/virtual/input/input1
U: Uniq=
H: Handlers=sysrq rfkill kbd event1
B: PROP=0
B: EV=3
B: KEY=ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe


Hier müsste ich über Zeile N: Name="sunxi-ir" gehen, damit es eindeutig ist. Wie mache ich das in FHEM ?
----------
FHEM auf rPi, HMLAN, HM
Mac, iPad, iPhone

hexenmeister

Dein Fall ist etwas anders gelagert als meiner...

Wenn ich mir das Modul näher ansehe...
foreach my $d ( @{$devices}) {
    return $d if( $d->{handler} eq $device );
    return $d if( $d->{name} =~ m/^$device$/ );

    next if( $bus && $d->{id}{bus} ne $bus );
    next if( $vendor && $d->{id}{vendor} ne $vendor );
    next if( $product && $d->{id}{product} ne $product );
    next if( $version && $d->{id}{version} ne $version );
    next if( $eventTypes && $d->{eventTypes} ne $eventTypes );

    return $d;
  }

und wie Devices eingelesenwerden...
if( $line =~ m/I: Bus=(\S*) Vendor=(\S*) Product=(\S*) Version=(\S*)/ ) {
        $device{id}{bus} = "0x$1";
        $device{id}{vendor} = "0x$2";
        $device{id}{product} = "0x$3";
        $device{id}{version} = "0x$4";

      } elsif( $line =~ m/N: .*"(.*)"/ ) {
        $device{name} = $1;

      } elsif( $line =~ m/H: .*(event\d*)/ ) {
        $device{handler} = $1;

      } elsif( $line =~ m/B: EV=(\S*)/ ) {
        $device{eventTypes} = "0x$1";

      } elsif( $line =~ m/B: KEY=(.*)/ ) {
        $device{keys} = $1;

      }


dann sehe ich, dass neben der anderen Möglichkeiten auch der Name verwendet wird. Probiere einfach den Namen sunxi-ir im define zu verwenden.

justme1968

#116
ja genau. es wird explizit auch der name unterstützt weil z.b bei vielen tastaturen die 'normalen' tasten und die multimedia tasten mit der gleichen id aber mit unterschiedlichen namen eingebunden werden.

oder du nimmst die event types als zusätzliches Unterscheidungsmerkmal mit in die definition rein: bus:vendor:device:version:eventTypes.

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

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

DC

----------
FHEM auf rPi, HMLAN, HM
Mac, iPad, iPhone

DC

@Hexenmeister:
Du hast auch nen Cubie, vielleicht hast Du noch nen Tipp. Das Cubieboard 2 unter Cubian mag nur wenige irRemotes. Ich hab jetzt noch das Problem, meinem Harmony Hub die richtige Fernbedienung für FHEM beizubringen. Hast Du ein Setting, das funktioniert ?

Wenn nein, auf Github hab ich das hier gefunden
wknightbor commented on Jul 15, 2014
It's hard to find a remote control that works with Cubieboard. I've tried 9 remotes and only 2 are working :-(
Please, check https://github.com/wknightbor/CirSunxi/. It helps to use a little bit more remotes.


Leider überschreitet das meine Kenntnisse. Mein Cubian kam von einem fertigen Image. An Kernel bauen/modifizieren traue ich mich nicht, und ohne ein zweites System als Backup ist mir das zu gewagt...

Außerdem hab ich auch ein Problem mit apt-get update. Hatte irgendwann in grauer Vorzeit FHEM via apt-get installiert. Das wird aber nicht mehr gepflegt. Ich hab es auf Hold gesetzt, "apt-get update && apt-get upgrade" bricht aber immer an dieser Stelle ab. Gibt es eine Möglichkeit, FHEM aus dem Verzeichnis zu entfernen,
ohne dass FHEM entfernt wird ?

--
Hach man, was für ein Act - dabei wollte ich doch nur an der TV Fernbedienung mit einer Taste das Licht ausmachen ;)
----------
FHEM auf rPi, HMLAN, HM
Mac, iPad, iPhone

justme1968

versuch mal ob microsoft mce geht.

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

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