Raspberry Pi

Raspberry Pi: Infrarot Empfänger und Fernbedienung einrichten

Raspberry Pi Infrarot Empfänger TSOP4838

Die Steuerung des Raspberry mittels Infrarot durch eine Infrarot-Fernbedienung oder einen anderen Infrarot-Sender ist für viele Anwendungen sehr nützlich. Besonders wer den Raspberry Pi als Mediacenter mit beispielsweise OpenELEC (Kodi) verwendet, kann dieses mit einem Infrarot Empfänger ausrüsten und komfortabel mit einer Fernbedienung steuern. Aber auch die Steuerung von anderen eigenen Projekten bis hin zur reinen Datenübertragung ist möglich. Im Folgenden wird gezeigt, wie man am Raspberry Pi mit Hilfe der Software LIRC einen Infrarot Empfänger ansteuern und eine Fernbedienung, für beispielsweise ein Mediacenter-System wie OpenELEC, einrichten kann. In diesem Beitrag wird die Einrichtung eines Infrarot Empfängers unter OpenELEC und Raspbian fokusiert.

Raspberry Pi: Infrarot Empfänger TSOP4838 installieren

Der Infrarot Empfänger TSOP4838 ist ein gängiger und zuverlässiger IR-Receiver. Der TSOP4838 benötigt keinen Sichtkontakt mit der Fernbedienung und empfängt Signale sehr genau. Dadurch kann der Raspberry Pi Infrarot Empfänger hinter dem Fernseher oder einer anderen Ecke verschwinden. Weiterhin ist der Empfänger wenig störanfällig und unempfindlich gegenüber Tageslicht. Neben dem Raspberry Pi selbst benötigt man lediglich ein paar GPIO-Kabel. Als Fernbedienung kann man auf die Fernbedienung eines Fernseher, eine Universalfernbedienung oder beispielsweise die Xbox One Fernbedienung zurückgreifen.

Schaltungsaufbau

Der Infrarot Empfänger TSOP4838 verfügt insgesamt über 3 Pins. Dabei wird zur Spannungsversorgung des TSOP4838 Pin 3 mit den 3,3 Volt des Raspberry Pi und Pin 2 mit einer Masse (GND) verbunden. Pin 1 bildet den Datenpin und wir standardmäßig an Pin 12 (GPIO 18) des Raspberry Pi angeschlossen. Ist dieser Pin bei euch bereits belegt, kann auch ein anderer genutzt werden. Der genutzte Pin kann softwareseitig ausgewählt werden.

TSOP4838

TSOP4838

Insgesamt ergibt sich der folgende Aufbau, um am Raspberry Pi den Infrarot Empfänger TSOP4838 anzuschließen.

  • Pin 1 (Daten) an GPIO18 (Pin 12)
  • Pin 2 (Masse) an Masse (Pin 6)
  • Pin 3 (VCC) an 3,3 Volt (Pin 1)
Infrarot Empfänger TSOP4838

Infrarot Empfänger TSOP4838

Lirc installieren

Um den Raspberry Pi Infrarot Empfänger softwareseitig auszulesen und Signale weiterverarbeiten zu können, nutzen wir das Programm Lirc (Linux Infrared Remote Control). Das Programm Lirc läuft als Daemon und dekodiert die Infrarot Signale welche durch den Infrarot Treiber empfangen werden. Die dekodierten Signale werden anschließend von Lirc über ein Socket bereitgestellt. Zum installieren von Lirc und der notwendigen Bibliothek unter Raspbian wird folgender Befehl genutzt. OpenELEC bringt Lirc standardmäßig mit.

sudo apt-get install lirc

Damit wir Lirc am Raspberry Pi verwenden können, muss das entsprechende Kernel-Modul noch aktiviert werden. Dafür ist der Entrag dtoverlay=lirc-rpi in der config.txt notwendig. Die config.txt liegt auf der Boot-Partition, welche zunächst noch gemountet werden muss, damit wir auf diese zugreifen können. Anschließend können wir die Konfigurationsdatei bearbeiten.


Lirc unter Raspbian oder einer vergleichbaren Distribution
mount -o remount,rw /boot
nano /boot/config.txt

Lirc unter OpenELEC
sudo mount -o remount,rw /flash
sudo nano /flash/config.txt


Am Ende der Datei fügen wir die folgende Zeile ein. Damit wird das Lirc-Modul unter Verwendung der Standard-Pins GPIO 18 für den Empfänger und GPIO 17 für den Sender (hier nicht relevant) beim Systemstart geladen.

dtoverlay=lirc-rpi

Möchte man andere GPIO-Pins nutzen, kann die Zeile folgendermaßen erweitert werden. Die Angabe gpio_out_pin=17 ist für einen Infrarot-Sender bestimmt und folglich für diese Anleitung nicht relevant. Mit der Angabe gpio_in_pin=18 kann ein individueller GPIO-Pin für den Raspberry Pi Infrarot Empfänger festgelegt werden.

dtoverlay=lirc-rpi,gpio_out_pin=17,gpio_in_pin=18

Nachdem diese Zeile eingetragen wurde, kann die config.txt mit der Tastenkombination Strg+X, Y und Enter gespeichert und geschlossen werden. Mit diesem Eintrag wird das Lirc-Modul nun beim Systemstart autmatisch geladen. Damit die Einstellungen aktiv werden starten wir den Raspberry Pi neu.

reboot

Alternativ kann das Kernel-Modul auch mitteld modprobe geladen werden. Dieses ist dann aber nur bis zum nächsten Neustart geladen.

modprobe lirc_rpi

Lirc anpassen (Raspbian)

Nachdem Lirc installiert wurde, passen wir die Konfigurationsdatei mit dem Editor nano an. Für OpenELEC (Kodi) ist dieser Schritt nicht notwendig.

nano /etc/lirc/hardware.conf

Den Inhalt der Datei passen wir so an, dass die folgenden Zeilen resultieren. Anschließend kann die Datei gespeichert und geschlossen werden.

# /etc/lirc/hardware.conf
#
# Arguments which will be used when launching lircd
LIRCD_ARGS="--uinput"</code>

# Don't start lircmd even if there seems to be a good config file
# START_LIRCMD=false

# Don't start irexec, even if a good config file seems to exist.
# START_IREXEC=false

# Try to load appropriate kernel modules
LOAD_MODULES=true

# Run "lircd --driver=help" for a list of supported drivers.
DRIVER="default"
# usually /dev/lirc0 is the correct setting for systems using udev
DEVICE="/dev/lirc0"
MODULES="lirc_rpi"

# Default configuration files for your hardware if any
LIRCD_CONF=""
LIRCMD_CONF=""

Damit die Einstellungen wirksam werden, wird der Raspberry Pi erneut neu gestartet.

sudo reboot

Lirc testen

Um zu Prüfen, ob Lirc richtig konfiguriert ist und funktioniert, beenden wir den Lirc Daemon und schauen mittels mode2, ob wir Signale empfangen. Das Tool mode2 gibt dabei die Pulselänge der Infrarot-Signale aus.


Raspbian
sudo /etc/init.d/lirc stop
mode2 -d /dev/lirc0

OpenELEC

killall lircd
mode2 -d /dev/lirc0


Drücken wir nun einige Tasten auf der Fernbedienung sollte eine Ausgabe dieser Art ersichtlich werden.

pulse 536
space 1270
pulse 532
space 672
pulse 528
space 672
pulse 532
space 1269
pulse 529
space 671
...

Raspberry Pi Fernbedienung einrichten

Die im vorherigen Test empfangenen Infrarot-Signale sind in dieser Form schwer zu unterscheiden und dementsprechend schlecht zu verarbeiten. In diesem Zusammenhang ist es mit Lirc möglich Tasten aufzuzeichnen und zu jeder Taste einen Key zu hinterlegen. Dazu muss der Lirc Daemon, insofern dieser wieder aktiv ist, wieder gestoppt werden.


Raspbian
sudo /etc/init.d/lirc stop

OpenELEC

killall lircd


Das Aufzeichnen von Tasten erfolgt mit dem Tool irrecord. Die zu vergebenden Keys sind durch das Programm vorgegeben. Die verfügbaren Keys können wir zunächst mit folgendem Befehl abfragen. Es ist ratsam diesen Befehl einmal auszuführen damit die Liste der Keys im Terminal steht und man somit durch hochscrollen im Terminal immer wieder nachschauen kann.

irrecord --list-namespace

Anschließend starten wir das Aufzeichnen unserer Tasten der Fernbedienung und dem Vergeben von einem Key je Taste. Dies machen wir ebenfalls mit dem Tool irrecord. Nachdem wir den Aufzeichnungsassistenten durchlaufen haben, erhalten wir eine Konfigurationsdatei – in diesem Fall lautet diese lircd.conf. Ein anderer Name für die Konfigurationsdatei ist auch möglich. Damit wir diese dann aber auch verwenden können muss diese in lircd.conf umbenannt werden. Verschiedene Konfigurationen zu erstellen bietet sich aber an, um verschiedene Fernbedienungen zu testen.


Raspbian
irrecord -d /dev/lirc0 ~/lircd.conf

OpenELEC

irrecord /storage/.config/lircd.conf


Beim Start des Programms fahren wir zunächst mit der Eingabe von 2 mal Enter fort, bis die eigentliche Aufzeichnung beginnt. Anschließend definieren wir den ersten Key, welchen wir aufzeichen wollen. Im Anschluss drücken wir die entsprechende Taste auf der Fernbedienung, solange bis das Tool das Signal erkannt und aufgezeichnet hat. Beispielsweise gebe ich den Key “KEY_0” an und drücke die Taste “0”. Wichtig ist, dass man nur die vordefinierten Keys verwendet. Nachdem die erste Taste angelegt ist fragt das Tool immer nach der nächsten im gleichen Muster. Sind alle gewünschten Tasten konfiguriert kann die Aufzeichnung beendet werden. Dazu fährt man einfach mit Enter ohne eine Eingabe fort.

irrecord

irrecord


Lirc unter OpenELEC (Kodi)

Richtet man Lirc und damit die Konfigurationsdatei unter OpenELEC (Kodi) ein, sollte die lircd.conf im Configfiles-Ordner abgelegt sein. Damit Lirc mit der neuen Konfigurationsdatei arbeitet, starten wir den Raspberry Pi neu.

Lirc unter Raspbian oder einer vergleichbaren Distribution

Nutzt man Lirc nicht auf einer Multimedia-Center Distribution, sondern auf Raspbian mit dem Standardbenutzer pi, dann ist die erstellte bzw. aufgezeichnete Lirc-Konfiguration zunächst im Home-Verzeichnis des Nutzers pi (wenn man nicht voher in ein anderes Verzeichnis gewechselt hat) abgelegt. Im Falle von Raspbian muss die lircd.conf noch nach /etc/lirc/ kopiert werden. Dabei überschreiben wir die Standardkonfigurationsdatei von Lirc. Diese ist in der Regel leer.

sudo cp lircd.conf /etc/lirc/lircd.conf

Anschließend starten wir Lirc neu, damit die Konfigurationsdatei eingelesen wird.

sudo /etc/init.d/lirc restart


Lirc Konfiguration testen

Um die aufgezeichnete Raspberry Pi Infrarot Lirc Konfiguration zu testen, nutzen wir das Tool irw.

irw

Drückt man jetzt einige Tasten auf der Fernbedienung, werden anstatt der kryptischen Infrarot Signale die dazu definierten Keys ausgegeben. Mit der Tastenkombination Strg+C kann irw wieder beendet werden. Damit ist Lirc eingerichtet und jede Taste hat einen Namen zugeordnet.

irw

irw

Lirc mit Kodi verbinden

Mittels Lirc haben wir jetzt eine Fernbedienung eingerichtet, sodass jede Taste einen Namen zugeordnet hat. Dennoch kann Kodi damit noch nicht arbeiten. Mit der Datei Lircmap.xml werden die Tasten-Keys von Lirc mit den Steuerfunktionen von Kodi verbunden und aufeinander gemappt.

Die Datei Lircmap.xml muss neu erstellt werden und im Ordner Userdata von Kodi abgelegt werden. Legen wir keine Lircmap.xml an, greift Kodi auf seine globale Lircmap zurück. Grundsätzlich sollten dabei Standardtasten von Haus aus funktionieren. Jedoch bringt ja jede Fernbedienung einige Tasten, insbesondere Sondertasten, mit die Kodi somit einer falschen Konfiguration zuordnet. Dadurch kann es zu anderen Bedienaktionen kommen, als man erwartet.

Um die eigene Lircmap unter Kodi auf dem Raspberry Pi abzulegen, können wir mit dem Explorer im Netzwerk zum OpenELEC-System navigieren und die Lircmap im Ordner Userdata ablegen. Ist OpenELEC nicht im Netzwerk sichtbar, kann auch unter Verwendung der IP-Adresse von Kodi die Ordnerstruktur aufgerufen werden. Dazu gibt man einfach die IP-Adresse von Kodi in der Form \\192.168.178.100\ in den Dateiexplorer ein.

OpenELEC (Kodi) Userdata

OpenELEC (Kodi) Userdata

Zum Erstellen dir Lircmap kann grundlegend jeder Editor deiner Wahl genutzt werden. Ich empfehle Notepad++ oder Atom. Die Lircmap mit einigen Grundfunktionen kann beispielsweise wie folgt aussehen. Damit ist jetzt Lirc mit Kodi verbunden und kann genutzt werden.

Lircmap

Lircmap

Hinterlasse eine Antwort

Kommentare

  • Hey,

    ich habe an meinem pi eine ws2801 led meiste hängen und eine “normale” led leiste. Die ws2801 werden mit Hyperion angesteuert, die andere mit pigpiod. Könntest du vllt zeigen wie es möglich ist bash befehle auf Knopfdruck ausführen zu lassen um ( zB in meinem Fall ) die Farben der Led leisten zu ändern?

    • Hallo,

      ich vermute du hast vor die LED Leisten mittels Infrarot Fernbedienung zu steuern? Eine Anleitung, wie man den Infrarot-Empfänger für sein eigenes Projekt, beispielsweise in C oder Python, nutzen kann kommt die Tage. Das sollte der richtige Anstoß für dein Vorhaben sein :)

      Gruß,
      Tony

  • Hi, ich bin ein absoluter Radperry-Newbie. Habe einen Typ B und ein aktuelles Kodi am Laufen. Der Raspi ist mit einem Hdmi 1.4 (Amazon Basics) Kabel mit meinem Sony TV verbunden. Ich bediene meinen Raspi ausschliesslich mit der Sony-Fernbedienung. Gruß flo

  • Hi,

    super Anleitung, herzlichen Dank dafür. Es funktioniert soweit alles bis auf “irw”. Wenn ich an diesen Punkt kommt heisst es bei mir “Datei oder Verzeichnis nicht gefunden”. Muss ich “irw” erst irgendwie mit apt-get install runterladen oder sollte das schon da sein? Sorry, bin absoluter Neuling mit Linux, Raspi und der ganzen Welt :-)

    Danke, Mirko

    • Hallo und danke für dein Feedback :)

      irw ist zu diesem Zeitpunkt schon da. Bei dir scheint keine Lirc-Konfig im entsprechendem Verzeichnis vorhanden zu sein. Verwendest du den IR Empfänger unter OpenELEC oder Raspbian?

      • Hi, ich hatte dasselbe Problem. Auf https://klenzel.de/3588 stand, dass man in /etc/modules noch etwas eintragen solle. Nach kurzer recherche habe ich herausgefunden, dass es folgendes sein muss:

        lirc_dev
        lirc_rpi gpio_out_pin=18

        Anmerkung: Die Anleitung des angegebenen Links hat “in” und “out” vertauscht. Sollte etwas nicht direkt funktionieren, könnte ein reboot helfen.

  • Hallo, ich habe ein kleines Problem.
    Bin auch absoluter Anfänger mit Linux und Raspberry.
    Ich habe einen Pi 3 und versuche gerade die Tasten mit irrecord aufzuzeichnen.
    Nachdem ich aber irrecord –list-namespace getippt habe und die ganzen Befehle kommen, kommt beim nächsten Befehl irrecord -d /dev/lirc0 -/lircd.conf folgende Fehlermeldung: irrecord: invalid Option — “/”
    Die Datei lircd.conf gibt es unter /etc/lirc
    Ich weiß leider nicht mehr weiter.

    • Hallo,

      du hast einen Schreibfehler in deinem Befehl: irrecord -d /dev/lirc0 -/lircd.conf

      Muss so aussehen: irrecord -d /dev/lirc0 ~/lircd.conf

      Gibt mal Bescheid ob das schon der Fehler war oder ob es noch an einer anderen Stelle hängt :)

  • Hallo Tony,

    erstmal Danke für die Anleitung… :-)
    Ich versuche mit der Anleitung eine IR-Fernbedienung für KODI einzurichten, das auf meinem “RetroPie” System läuft (also aufgesetzt auf Rasbian).
    Ich komme bis zum testen der Konfiguration. Das kopieren der Config Datei, also der Befehl:

    sudo cp lircd.conf /etc/lirc/lircd.conf

    funktioniert noch.
    Beim Neustarten (sudo /etc/init.d/lirc restart) bekommt ich die Fehlermeldung:

    “Restarting lirc (via systemctl): lirc.serviceJob for lirc.service failed.”

    Ich hab versucht weiterzumachen, aber “irw” wird dann nicht gefunden….

    Was kann ich tun?

    • Hier noch etwas mehr input zum Fehler:

      pi@retropie:~ $ sudo /etc/init.d/lirc restart
      [….] Restarting lirc (via systemctl): lirc.serviceJob for lirc.service failed. See ‘systemctl status lirc.service’ and ‘journalctl -xn’ for details.
      failed!
      pi@retropie:~ $ systemctl lirc.service
      Unknown operation ‘lirc.service’.
      pi@retropie:~ $ systemctl status lirc.service
      ● lirc.service – LSB: Starts LIRC daemon.
      Loaded: loaded (/etc/init.d/lirc)
      Active: failed (Result: exit-code) since Sat 2016-09-03 15:09:47 UTC; 33s ago
      Process: 1388 ExecStart=/etc/init.d/lirc start (code=exited, status=2)
      pi@retropie:~ $ sudo /etc/init.d/lirc start
      [….] Starting lirc (via systemctl): lirc.serviceJob for lirc.service failed. See ‘systemctl status lirc.service’ and ‘journalctl -xn’ for details.
      failed!
      pi@retropie:~ $ sudo /etc/init.d/lirc stop
      [ ok ] Stopping lirc (via systemctl): lirc.service.
      pi@retropie:~ $ sudo /etc/init.d/lirc start
      [….] Starting lirc (via systemctl): lirc.serviceJob for lirc.service failed. See ‘systemctl status lirc.service’ and ‘journalctl -xn’ for details.
      failed!
      pi@retropie:~ $ journalctl -xn
      No journal files were found.
      pi@retropie:~ $ sudo journalctl -xn
      — Logs begin at Sat 2016-09-03 15:03:52 UTC, end at Sat 2016-09-03 15:11:26 UTC. —
      Sep 03 15:10:57 retropie sudo[1506]: pi : TTY=pts/0 ; PWD=/home/pi ; USER=root ; COMMAND=/etc/init.d/lirc start
      Sep 03 15:10:57 retropie sudo[1506]: pam_unix(sudo:session): session opened for user root by pi(uid=0)
      Sep 03 15:10:57 retropie lirc[1519]: Error opening terminal: unknown.
      Sep 03 15:10:57 retropie lirc[1519]: /etc/init.d/lirc: 5: /etc/lirc/hardware.conf: Syntax error: newline unexpected
      Sep 03 15:10:57 retropie systemd[1]: lirc.service: control process exited, code=exited status=2
      Sep 03 15:10:57 retropie systemd[1]: Failed to start LSB: Starts LIRC daemon..
      — Subject: Unit lirc.service has failed
      — Defined-By: systemd
      — Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel

      — Unit lirc.service has failed.

      — The result is failed.
      Sep 03 15:10:57 retropie systemd[1]: Unit lirc.service entered failed state.
      Sep 03 15:10:57 retropie sudo[1506]: pam_unix(sudo:session): session closed for user root
      Sep 03 15:11:26 retropie sudo[1556]: pi : TTY=pts/0 ; PWD=/home/pi ; USER=root ; COMMAND=/bin/journalctl -xn
      Sep 03 15:11:26 retropie sudo[1556]: pam_unix(sudo:session): session opened for user root by pi(uid=0)
      pi@retropie:~ $

      • OK, es war alles mein Fehler.
        Ich bin noch etwa unsicher mit dem Texteditor deshalb hab ich deine “Hardware.conf” oben quasi 1:1 übernommen, inkl. dem string ““,
        was den Fehler verursacht hat. Jetzt läuft alles ;)

  • Hallo,

    hast du villeicht eine Idee woran kann es liegen dass bei mir der IR Receiver beim testen mittels “mode2 -d /dev/lirc0” wahllos Signale in die Konsole schreibt? Ich habe einen Raspi 3, diesen LinkerKit IR Receiver (https://www.conrad.de/de/linker-kit-erweiterungs-platine-infrarot-receiver-lk-irrecei-pcduino-raspberry-pi-a-b-b-arduino-1267844.html) und die passende Erweiterungsplatine (https://www.conrad.de/de/raspberry-pi-erweiterungs-platine-lk-base-rb-raspberry-pi-a-b-b-1267835.html). Stelle ich bei dieser auf 3.3V wird kein Signal empfangen und bei 5V empfange ich scheinbar konstant welche ohne das ich die Fernbedienungen nutze. LIRC erkennt auch das ein Receiver angeschlossen ist (“dmesg | grep lirc_rpi”). Hab auch mehrere verschiedene PINs getestet…

    Hast du / jmd eine Idee?

    Danke im Vorraus!

  • Hallo

    Habe ein Openelec und Apple Remote Silvera an Gipo
    mit
    OpenELEC

    killall lircd
    mode2 -d /dev/lirc0

    antwortet die fernbedienung
    aber nicht auf “irw” !!

    wo ist der wurm begraben??

    • Wenn dein Empfänger auf einer anderen Frequenz arbeitet kann das durchaus die Ursache sein. Manche Empfänger (z.B. TSOP4838 auf 38kHz) erkennen zwar auch noch einige Frequenzen daneben – jedoch wird hier die Abweichung zu groß sein von 38 KHz zu 36,7 KHz. Prüfe zunächst ob du alles richtig angeschlossen hast (Pindreher etc.). Eventuell hilft auch ein Aufbau auf einem Breadboard. Dort kannst du an den Datenausgang testweise mal eine LED mit Vorwiderstand anschließen. Wenn dann Signale von einer Fernbedienung kommen, blinkt die LED verrückt, da diese die Rohdaten des Empfängers visualisiert.

      • Wie kann ich prüfen welche Frequenz meine Fernbedienung vom Samsung TV Gerät hat.
        Haben nämlich den oben genannten IR empfänger bestellt, ohne vorher zu prüfen welche Frequenz die Fernbedienung (Samsung bn59-01178b) hat.

        btw. Tolle Anleitung, kann´s kaum erwarten das die Teile da sind um zu basteln :D

        Danke,
        mfg

        • Danke für das Feedback! Ohne aufwendige Messtechnik zu organisieren würde ich Google bemühen oder nachsehen, ob dazu Angaben im Datenblatt / der Betriebsanleitung zu finden sind.

  • Hallo,

    vielen Dank für die sehr ausführliche Anleitung. Nutze bei mir auch den Empfänger TSOP4838 an dem Pi3 mit vollem Jessie Image. Habe das Ganze auch gut durcharbeiten können bis zum restart von Lirc (sudo /etc/init.d/lirc restart) nachdem ich die Lirc.conf durch Zuweisen und Anlernen der Tasten mit Leben gefüllt habe. Also im Testmodus läuft alles wie beschrieben. Möchte ich jedoch Lirc starten bzw. restarten um anschließend irw auszuführen kommt der Fehler:

    Starting lirc (via systemctl): lirc.serviceJob for lirc.service failed. See ‘systemctl status lirc.service’ and ‘journalctl -xn’ for details.

    gehe ich dem Tipp nach kommt:
    root@raspberrypi:~# systemctl status lirc.service
    ● lirc.service – LSB: Starts LIRC daemon.
    Loaded: loaded (/etc/init.d/lirc)
    Active: failed (Result: exit-code) since Do 2017-05-18 23:21:34 CEST; 37s ago
    Process: 868 ExecStart=/etc/init.d/lirc start (code=exited, status=2)

    Mai 18 23:21:34 raspberrypi lirc[868]: /etc/init.d/lirc: 5: /etc/lirc/hardware.conf: Syntax error: newline unexpected
    Mai 18 23:21:34 raspberrypi systemd[1]: lirc.service: control process exited, code=exited status=2
    Mai 18 23:21:34 raspberrypi systemd[1]: Failed to start LSB: Starts LIRC daemon..
    Mai 18 23:21:34 raspberrypi systemd[1]: Unit lirc.service entered failed state.

    Hier die hardware.conf

    # /etc/lirc/hardware.conf
    #
    # Arguments which will be used when launching lircd
    LIRCD_ARGS=”–uinput”

    # Don’t start lircmd even if there seems to be a good config file
    # START_LIRCMD=false

    # Don’t start irexec, even if a good config file seems to exist.
    # START_IREXEC=false

    # Try to load appropriate kernel modules
    LOAD_MODULES=true

    # Run “lircd –driver=help” for a list of supported drivers.
    DRIVER=”default”
    # usually /dev/lirc0 is the correct setting for systems using udev
    DEVICE=”/dev/lirc0″
    MODULES=”lirc_rpi”

    # Default configuration files for your hardware if any
    LIRCD_CONF=””
    LIRCMD_CONF=””

    Hat vielleicht einer eine Idee woran es liegen könnte. Bin langsam echt am verzweifeln.
    Wäre super.

    Vielen lieben Dank

    Gruß
    Arthur

    • Kurzer Nachtrag zur hardware.conf bei LIRCD_ARGS. Ich weiß nicht warum er mir das vorhin nicht richtig kopiert hat.

      # /etc/lirc/hardware.conf
      #
      # Arguments which will be used when launching lircd
      LIRCD_ARGS=”–uinput”

      # Don’t start lircmd even if there seems to be a good config file
      # START_LIRCMD=false

      # Don’t start irexec, even if a good config file seems to exist.
      # START_IREXEC=false

      # Try to load appropriate kernel modules
      LOAD_MODULES=true

      # Run “lircd –driver=help” for a list of supported drivers.
      DRIVER=”default”
      # usually /dev/lirc0 is the correct setting for systems using udev
      DEVICE=”/dev/lirc0″
      MODULES=”lirc_rpi”

      # Default configuration files for your hardware if any
      LIRCD_CONF=””
      LIRCMD_CONF=””

      Gruß
      Arthur

  • Hallo, danke für die Anleitung!
    ich habe openelec 7 mit TSOP4838 installiert.
    Beim anlernen der Fernbedienung habe ich die Tasten KEY_UP, KEY_DOWN, KEY_LEFT und KEY_RIGHT eingerichtet.
    Wenn ich jetzt irw eingebe, erhalte ich bei allen vier Tasten die gleiche Ausgabe:
    69 0 KEY_LEFT devinput
    69 0 KEY_LEFT_UP devinput
    Sollte zu diesem Zeitpunkt bei irw nicht jede Taste erkannt werden?

      • Hallo,
        mit einer anderen Fernbedienung habe ich es (fast) hinbekommen.
        Das Problem hier ist, dass ich jede Taste 2 mal drücken muss.
        Gibt es einen Trick um dieses Problem zu lösen?

        • Ich würde zunächst davon ausgehen, dass es weniger ein Softwareproblem ist: Viel mehr ein Hardwareproblem. Hast du noch einen weiteren Empfänger zum testen da? Wie weit ist die Reichweite der Fernbedienungen am dazugehörigen Gerät?

  • Hallo Tony,
    ich hätte eine Frage zu LIRC. Geht das auch in die andere Richtung? Ich möchte aus der Ferne ein Klimagerät damit steuern, wenn ich nicht im Gebäude bin. Geht das? Kann man den Raspi so nutzen, dass er Sender ist? Kann man mit LIRC die Befehle der Fernbidienung auslesen und die dann mit dem RASPI senden?
    Über eine Rückmeldung würde ich mich freuen.
    Gruß Roland

    • Natürlich geht das! Grundlegend brauchst du dazu einen Transistor mit Basisvorwiderstand, sowie eine Infrarot LED mit passendem Vorwiderstand. Über Lirc kannst du dann den Transistor steuern – der wiederum die LED schaltet. Wichtig ist, das du eine Infrarot LED mit etwa passender Wellenlänge wählst, wie das Gerät das du steuern möchtest :)

  • Danke für die Step-by-Step Anleitung. Hat auch wunderbar geklappt, nur in der im Beitrag gezeigten hardware.conf steckt in Zeile 4 ein Fehler: der Zusatz „“ am Ende der Zeile muss weg.

  • Ersteinmal vielen Dank für diese mühevolle Anleitung.

    Hat vielleicht jemand Erfahrung mit Retropie 4.2 und KODi 17.3?

    Was ich wissen möchte, klappt die hier beschriebene Anleitung auch unter Retropie 4.2 mit KODi 17.3??

    und wenn “ja” wonach muss ich mich orientieren, Rasbian od. Openelec ?

    Ich bedanke mich schon einmal Herzlich für die Hilfe

  • Ich versuche seit geraumer Zeit mit Hilfe dieser Anleitung die Fernbedienung an meinem P1 mit Raspian zu realisieren. So langsam verzweifle ich. Wenn ich Lirc stoppen will, kommt folgende Fehlermeldung: “sudo: /etc/init.d/lirc: Befehl nicht gefunden”. Gebe ich den Befehl mit lircd ein, funktioniert der stop-Befehl. Beim anschliessenden mode2….Befehl kommt folgende Meldung: “Using driver devinput on device /dev/lirc0
    Trying device: /dev/lirc0
    Using device: /dev/lirc0
    Betätige ich die Fernbedienung kommt folgende Meldung: “Partial read 8 bytes on /dev/lirc0” gefolgt von der Eingabeaufforderung. Vielleicht ist noch wichtig zu wissen, dass ich den ir Empfänger auf Pin 22 und den Sender auf 27 programmiert habe.