Hi an Alle,
falls sich jemand von euch für das FLIRC 2nd Gen USB Infrarot IR Adapter Dongle (siehe Foto) interessiert, hier meine Erfahrungen.
Das Fasziniernde an dem Teil ist, dass es sich im Gegensatz zu den "klassischen" IR-Empfänger im System (PC- oder ARM-Plattform, diverse OS) als ein HID-Device anmeldet und die Knöpfe der IR-Fernbedienung "übersetzt" und als Tastendruck weiter meldet. Das ist zumindest zukunftssicher (zumal irda in neueren Kernelversionen nicht mehr enthalten ist).
Konfiguriert wird der Dongle an einem PC/Raspi und kann danach ohne Installation von Software an jedem beliebigen Gerät als HID eingesetzt werden.
Der "Haken" kann (nicht muss!) bei der Konfiguration lauern, sofern man keine vordefinierte Fernebdienung einsetzt.
Insgesamt ist das Dongle sehr mächtig, da ht der Hersteller eine Menge einfliessen lassen.
Und hier steig ich dann mal mit meinen Erfahrungen (auf eine x64-Laptop mit Ubuntu Mate 20.10 gemacht) ein.
Das Konfigurationstool kann man als ZIP herunter laden - zu finden auf der Webseite des Herstellers unter
https://flirc.tv/support/flirc-usb
von dort gibt es mehrere Wege der Installation der Flirc-Tools
als Paketquelle curl apt.flirc.tv/install.sh | sudo bash
oder die generischen Links für 32bit oder 64bit
Wichtig ist das "Kleingedruckte" ganz unten: es sind evtl. weitere Bibliotheken zu installieren:
libhidapi-hidraw0 libqt5core5a libqt5network5 libqt5xml5 libqt5xmlpatterns5 libhid qt5-qtbase qt5-qtsvg hidapi
interne Notiz: qt5-qtbase qt5-qtsvg sind nicht verfügbar, habe statt dessen qt5-default installiert
bei Installation als Paketquelle ist folgende Regel bereits angelegt - falls nicht - oder bei manueller Installation - kopiere
99-flirc.rules rules
nach
/etc/udev/rules.d/
Note from Website: optionally copy flirc_util and flirc to /usr/local/bin/
Danach sollten die beiden Programme Flirc (grafische Oberfläche) und flirc_util (Kommandozeilen-Tool) auf dem System verfügbar sein.
Mit Flirc kann man Presets für die zu verwendende Fernbedienung auswählen und deren Tasten zuordnen, die Firmware aktualisieren oder im Debug-Mode die gesendeten Codes anzeigen lassen.
Mit flirc-util kann man (Keyboard)Tasten bestimmen, die man in der Konsole händisch zuordnet. Anbei die Befehle, die flirc_util laut Hilfe versteht:
delete | Delete next remote button flirc sees from saved database |
delete_index | Delete button at index displayed in `flirc_util settings` |
device_log | Displays the log on the device |
dfu | Kick in or out of Device Firmware Upgrade mode |
format | Remove all saved buttons from flirc |
help | Show this help. Also try `help <command>` |
interkey_delay | set the interkey delay |
loadconfig | Load configuration file from disk to flirc |
mode | Enable or disable a usb mode |
noise_canceler | Noise canceler to prevent phantom presses |
normal | Put flirc in normal user mode |
profiles | enable or disable built in profiles |
rb | set settings for remote buddy configuration |
record | Record infrared buttons and link them to HID keys |
record_api | Advanced button recording |
record_lp | Record a long pres key |
record_macro | Record a macro key |
rom_table | enable or disable a give rom table |
saveconfig | Save configuration file to disk |
script | run a command script |
sendir | Send a packet over the IR transmitter |
settings | Displays all the devices current settings |
shell | enter into shell mode |
sleep_detect | Turns on sleep/suspend detection |
unit_test | Performs a self test |
upgrade | Uploads new firmware image to flirc hardware |
version | print the version |
wait | Waits for the device to be plugged in (used for scripting) |
Error:
leider verlangt das cmd-Tool flirc_util beim ersten Aufruf eine veraltete Lib, aber das kann über folgenden Sym-Link behoben werden
# bei mir wird libreadline.so.8 vorgefunden - Version kann/wird sich künftig ändern, also evtl. Anpassung erforderlich.
# folgende Befehle ausführen (evtl. nach Kernel-Update neu erforderlich???)
danach hat das Tool bei mir seinen Dienst verrichtet.
cd /lib/x86_64-linux-gnu/
ls librea*
sudo ln -s libreadline.so.8 libreadline.so.6
Aber: die eingebaute Hilfe von flirc_util passte nicht zur aktuellen Firmware...
so brach das Zuordnen der "vor"-Taste der Fernbedienung der Taste Keyboard-Taste "fastforward" über den Befehl
flirc_util record fastforward
mit einem Fehler ab - die Hilfe war nicht aktuell, es hätte
flirc_util record fast_forward
heißen müssen.
Da die Software zum Glück auf github hinterlegt ist, hier eine Quellenangabe, wo man sich die neusten Daten/Infos holt:
### Supportd keywords for Flirc
# https://github.com/flirc/sdk/blob…ds/flirc_cmds.c
Diese Zuordnungen (als Keyboard-Tasten) waren Anfang April 21 möglich:
return
enter
escape
backspace
delete
tab
space
F[1-12]
a-z, 1-0
printscreen
scroll
pause
insert
home
pageup
pagedown
end
right
left
down
up
suspend
wake
eject
vol_up
vol_down
mute
play/pause
stop
fast_forward
rewind
next_track
prev_track
das gibt dann schon eine Reihe an Möglichkeiten...
In der Konsole kann man die Befehle auch als Batch eingeben, die man sich vorher in einem Texteditor zusammen gezimmert hat, um in einem Schwung z.B. eine Auswahl an Tasten zuzuweisen, da das Tool erst den Tastendruck der Fernbedienung abwartet, bevor es den nächsten Befehl abarbeitet.
Nachteil wäre dabei, wenn man sich in der Reihenfolge verhaspelt...
Probleme mit der Fernbedienung:
Reproduzierbar musste ich an der einzurichtenden Fernbedienung zweimal die eine oder andere Taste drücken.
Lauf dem Forum des Herstellers liegt das an der Fernbedienung, nicht am Dongle.
Ich hatte mehrere Fernbedienungen (teilweise 10 Jahre alt), bei denen das auftrat - jede mit anderen Tasten, die nicht auf Anhieb erkannt wurden.
Da das Problem nicht über die Tasten gewandert ist, sondern stets bei einer bestimmten Taste hing, geh ich mal davon aus, dass das nicht falsch ist.
Fazit:
Ich finde den Dongle mächtig, und eine interessante Alternative zur DIY-IR mit LIRC, aber beide Wege verlangen Handarbeit, wenn man für den Flirc keine vordefinierte Fernbedienung sein eigen nennt.
Viele Informationen muss man sich zusammen suchen, deswegen habe ich den Text hier geschrieben.