LIRC: KY-022 IR Empfänger läuft, aber als LIRCD Dienst nicht -> warum?pip

  • Ahoi in die Runde,

    ich drehe mich seit Tagen im Kreis und finde da aktuell einfach keine Lösung :(
    Raspberry Pi Zero2 -> LIRC installiert -> Fernbedienung mit irrecord angelernt.

    Die erstellte Config Datei nach "/etc/lirc/lircd.conf.d" kopiert.

    "lirc_options.conf" angepasst:

    Code
    driver = default
    device = /dev/lirc0

    Dann die "irexec.lircrc" angepasst, z.B. für Key_Power folgendes:

    Code
    begin
       prog   = irexec
       button = KEY_RED
       config = echo "KEY_RED"
    end

    Danach Reboot des System.
    Aber wo kann ich nun z.B. mein "echo KEY_RED" sehen wenn ich eine Taste drücke?

    Nächste Frage:
    EIn "sudo systemctl status irexec.service" bringt mir folgendes:

    Code
    irexec.service - Handle events from IR remotes decoded by lircd(8)
        Loaded: loaded (/lib/systemd/system/irexec.service; disabled; preset: enabled)
        Active: inactive (dead)
          Docs: man:irexec(1)
                http://lirc.org/html/configure.html
                http://lirc.org/html/configure.html#lircrc_format

    Das heißt doch, das der Dienst gar nicht arbeitet und den "echo Key_RED" gar nicht ausführen würde, oder?
    Also fix den Service gestartet:

    Code
    sudo systemctl start irexec.service

    Soweit so gut, bzw auch nicht.
    Es bleiben nun noch ein paar Fragen offen:

    1. Wo sehe ich mein "echo Key_Red" aus der "irexec.lircrc" Datei?
    2. Was ist der Unterschied zwischen "lircd.service" und "lircd.socket" ?
      Beide Dienste laufen. Brauche ich beide?
    3. Muss der Dienst "irexec.service" laufen? Ist dieser Dienst dafür da um ggf. IR Befehle entgegen zu nehmen und dann Commands auszuführen?`

    Fragen über Fragen...
    Vielleicht kann mir hier einer weiterhelfen, bin am verzweifeln :(

    Edited once, last by pcollins (July 18, 2025 at 12:11 PM).

  • LIRC: KY-022 IR Empfänger läuft, aber als LIRCD Dienst nicht -> warum?pip? Schau mal ob du hier fündig wirst!

  • Schreibe die Meldungen in eine Datei:

    Shit! Das kann so einfach sein. Den Wald vor lauter Bäumen nicht gesehen :(

    Was ist der Status von irexec.service nachdem es gestartet wurde?

    Und vielleicht erst einmal die einzelnen Komponenten testen, also zum Beispiel irw starten um zu sehen ob lircd Tastendrücke erkennt.

    Mh, wenn ich "irw" so startet, passiert gar nichts. Er wartet, aber wenn ich eine Taste auf der Fernbedienung drücke, passiert nichts.
    Es wird auch nichts in der irexec Log Datei geschrieben (Siehe oben).

    Ich verstehe das nicht....

    WIe gesagt: "mode2 -d /dev/lirc1" reagiert auf jeden Tastendruck und ich mit "irrecord" konnte ich ja die Fernbedienung anlernen.

  • Ich kenne die Konfiguration so, dass man zwingend den Namen der Fernbedienung, so wie sie in deren Config heißt, angeben muss:

    Code
    begin
        prog   = irexec
        remote = Pinnacle_RC1144201
        button = power
        config = echo "Key_Power" >> ~/keys.log
    end
    Code
    begin remote
    
      name  Pinnacle_RC1144201
      ...
    
          begin codes
              power                    0x6E2D
              menu                     0x6EE7
              ...

    Man könnte ja durchaus mehrere Fernbedienungen in Betrieb haben und irexec sollte die ja individuell erkennen können...

    Edited 2 times, last by simonz (July 19, 2025 at 9:32 AM).

  • Mh, wenn ich "irw" so startet, passiert gar nichts. Er wartet, aber wenn ich eine Taste auf der Fernbedienung drücke, passiert nichts.
    Es wird auch nichts in der irexec Log Datei geschrieben (Siehe oben).

    Ich verstehe das nicht....

    WIe gesagt: "mode2 -d /dev/lirc1" reagiert auf jeden Tastendruck und ich mit "irrecord" konnte ich ja die Fernbedienung anlernen.

    Ich hatte auch so ein Problem, nachdem ich damals auf ein neueres Betriebssystem umgestiegen bin, weiss nicht mehr ob Buster oder so.

    Typisches Problem von kaputt-geupdated.

    Probier doch mal ein altes OS, ob es dort auch auftaucht.

  • pcollins Mal schreibst Du von /dev/lirc0, mal von /dev/lirc1. :denker:

    sorry, mein Fehler: Es ist immer /dev/lir0.

    Hab gerade wieder stunden damit verbracht das zum laufen zu bekommen: aber ich bekomme es nicht hin:

    "mode2" reagiert wunderbar, "irrecord" geht auch, aber dann komme ich einfach nicht weiter. WARUM NICHT?!

  • Laut Beitrag #6 holt sich irexec seine Config aus /etc/lirc/irexec.lircrc:

    Code
        CGroup: /system.slice/irexec.service
                └─2103 /usr/bin/irexec /etc/lirc/irexec.lircrc

    Steht Deine Konfiguration der Fernbedienungsknöpfe in /etc/lirc/irexec.lircrc?

  • In der Datei steht nämlich zu Beginn:

    Bash
    $  cat irexec.lircrc
    #
    # Initial test configuration for systemwide irexec service.
    #
    # Note that the system-wide service is useful only in corner-cases.
    # Most scenarios are better off with a session service as described in the
    # Configuration Guide. However, note that both can also be combined.

    Ich habe dementsprechend bei mir die Konfiguration der Knöpfe in /home/pi/.config/lircrc:

    Bash
       CGroup: /system.slice/irexec.service
               └─462 /usr/bin/irexec /home/pi/.config/lircrc

    Und die Unit-Datei entsprechend angepasst:

    Das ist allerdings ein altes Buster-System...

  • Laut Beitrag #6 holt sich irexec seine Config aus /etc/lirc/irexec.lircrc:

    Also ein "cat /etc/lirc/irexec.lircrc" bringt folgendes:

    Also Datei ist vorhanden und auch der Name der Fernbedienung, wie ich sie beim anlernen genannt habe, ist doch eingetragen.

    Steht Deine Konfiguration der Fernbedienungsknöpfe in /etc/lirc/irexec.lircrc?

    Siehe oben.

  • systemctl cat irexec.service

    Bitte:

    journalctl -b0 /usr/bin/irexec

    Bitte:

    Code
    -- No entries --

    journalctl -u irexec.service

    Bitte:

    Code
    -- No entries --

    journalctl -b -u lircd

    Bitte:

    Ich hoffe das hilft irgendwie.

  • journalctl -u irexec.service

    Bitte:

    Code
    -- No entries --

    Also läuft der irexec.service doch nicht!?

    Bei mir sieht das so aus:

    Bash
    $ journalctl -u irexec.service 
    -- Logs begin at Sat 2025-07-19 19:51:31 CEST, end at Sun 2025-07-20 16:07:52 CEST. -- 
    Jul 19 19:51:34 pi2 systemd[1]: Started irexec service.

    Bitte zeige noch einmal:

    Bash
    systemctl status irexec.service


    PS: Nach welcher Anleitung gehst Du eigentlich vor?

  • Also läuft der irexec.service doch nicht!?

    Shit, du hast recht. Dienst ist nun gestartet:

    systemctl status irexec.service

    Sieht jetzt so aus:

    Code
    journalctl -u irexec.service
    Jul 20 20:46:11 zero2-3 systemd[1]: Started irexec.service - Handle events from IR remotes decoded by lircd(8).

    Ich denke, wir kommen immer schrittweise weiter ...

    irw reagiert immer noch nicht aber nach jedem Tastendruck wirft mir nun "journalctl -b -u lircd" folgendes aus:

    Dh ja, das er irgendwie was erkennt.

    PS: Nach welcher Anleitung gehst Du eigentlich vor?

    Gute Frage. So richtig hab ich eine Anleitung nicht gefunden, bzw die sind alle ewig alt.
    Ich hab mir das "Wissen" selber aus diversen Anleitungen zusammengereimt.

  • Wenn man nach obiger Fehlermeldung im Web sucht, findet man diverse ähnliche Problemberichte.

    Vieles deutet auf eine nicht korrekt gelaufene irrecord-Aufzeichnung hin. Falls in Deiner Fernbedienungs-Definition pro Taste mehr als ein Hex-Wert steht, trifft das wohl zu. Falls der zweite Wert überall gleich ist, lösche ihn in allen Zeilen und teste erneut.

    Oder die Fernbedienung ist nicht wirklich LIRC-kompatibel... Dann mit einer Anderen ausprobieren.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!