• Ich brauchte über die Jahre kein Lirc, jetzt wollte ich es mal wieder mit einer Harmony Elite und dem stm32 Empfänger von jrie versuchen.
    Der Empfänger scheint auch zu funktionieren, die Harmony ist auf Microsoft mce, flirc + kodi und cadsoft vdr eingestellt.

    Bei allen Dreien wird auch fleissig über stm32IRconfig_gui der Tastendruck empfangen.
    Jetzt zum eigentlichen Problem, drücke ich z.B. OK dann erkennt es den ersten Tastendruck als OK, den zweiten als z.B. Menu welcher vorher eigentlich durch eine andere Taste definiert wurde und beim dritten Mal wieder was Anderes. Und das leider bei den meisten Tasten, egal welches Einstellung ich bei der Harmony getestet habe.


    Ich steh da grade aufm Schlauch...... :/

  • das war bei gedrückter Taste.....

    das hier bei mehrfach (5x) hintereinander gedrückter gleicher Taste (OK):


    auch gut möglich, dass es an der Harmony liegt. Mit meiner Sony TV Fernbedienung passiert das nicht. Seltsam

  • Das geht ja wüst durcheinander. Da wechseln Protokoll und Adresse und Code.


    Teste mal einen anderen Empfänger, damit man weiß, ob die Harmony spinnt oder der Empfänger. Oder teste eine andere Fernbedienung.

  • Ist das nicht zufälligerweise im wakeup stm32-iralarm Paket von seahawk1986 drin?

    Das Shutdown-Skript in dem Paket enthält die Abfrage bislang nicht und die Systemd-Unit für irmpexec fehlt auch (bei yaVDR-Ansible kommt standardmäßig irexec innerhalb der Systemd User Session zum Einsatz).


    Wenn ich das richtig verstehe, braucht mal irmpexec auch nicht zwingend, sondern muss nur auf die Taste KEY_REFRESH reagieren und dann die Status-Datei anfassen.


    Die Beispiel-Skripte könnte man noch etwas vereinfachen, die Bash kennt den Test-Operator -ot (older than) und -nt (newer than), mit dem man das Alter von zwei Dateien vergleichen kann, so dass man sich die stat-Aufrufe sparen kann.


    Edit: wo kommt denn /var/log/boot.msg her? Das gibt es weder bei Ubuntu noch unter Arch Linux...


    Ansonsten weiß ich nicht, ob man da mit einer Harmony nicht einfacher davon kommt:

    Wenn man die Power-Taste drückt, hat man ja ca. 15 Sekunden Zeit einen etwaigen Shutdown abzubrechen, d.h. wenn man die Harmony beim Einschalten nach der Power-Taste z.B. die Taste für ein KEY_OK senden lässt, kommt es durch den VDR nicht zu einem Shutdown.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

    The post was edited 1 time, last by seahawk1986 ().

  • danke seahawk1986


    Quote

    d.h. wenn man die Harmony beim Einschalten nach der Power-Taste z.B. die Taste für ein KEY_OK senden lässt, kommt es durch den VDR nicht zu einem Shutdown.

    witzig.
    Das ist zu einfach! :mua
    Ich muss das alles mal in Ruhe morgen testen. Hab noch Nachtdienst wehwechen und keine "Kraft" das gleich umzusetzen. Aber die Variante mit der KEY_OK Taste sollte dafür ja völlig ausreichend sein. Danke!

  • Die Beispiel-Skripte könnte man noch etwas vereinfachen, die Bash kennt den Test-Operator -ot (older than) und -nt (newer than), mit dem man das Alter von zwei Dateien vergleichen kann, so dass man sich die stat-Aufrufe sparen kann.

    Danke für den Hinweis, das schau ich mir gelegentlich mal an.

    wo kommt denn /var/log/boot.msg her? Das gibt es weder bei Ubuntu noch unter Arch Linux...

    Gibt es in openSuse. Man kann jede Datei nehmen, in die nur beim Booten geschrieben wird. Der Zweck ist, den Boot-Zeitpunkt zu bestimmen, um zu wissen, ob es die speziellen Signale vom Empfänger nach dem Booten gab oder nicht. Dann weiß man, ob der VDR vom IR-Empfänger gestartet wurde, oder von einem Timer oder von Hand oder sonstwie.

  • ich wollte das mal mit dem "KEY_REFRESH" versuchen.


    dazu hab ich in /var/lib/vdr/.lircrc diesen Eintrag ergänzt

    Code
    1. begin
    2. prog = irexec
    3. button = KEY_REFRESH
    4. config = /usr/local/bin/started_by_IRMP_STM32_test
    5. end


    /usr/local/bin/started_by_IRMP_STM32_test sieht so aus:



    Shell-Script
    1. #!/bin/sh
    2. if [ "$(stat -c %Y /var/log/started_by_IRMP_STM32)" -lt "$(stat -c %Y /var/log/boot.log)" ];
    3. then date >> /var/log/started_by_IRMP_STM32; fi;



    jetzt hab ich das getestet mit einem Timer und

    /etc/vdr/shutdown-hooks/S90.custom



    leider wird der shutdown nicht abgebrochen.
    Wo liegt mein Fehler?

    Auf der Konsole getestet funktioniert es:


    Code
    1. if [ "$(stat -c %Y /var/log/started_by_IRMP_STM32)" -lt "$(stat -c %Y /var/log/boot.log)" ];then echo VDR; fi;
    2. VDR
  • Schau dir mal die Abbruch-Bedingungen für Shutdown-Hooks bei den Skripten aus dem Debian- bzw. yaVDR-Paket an: https://github.com/yavdr/vdr/b…debian/README.Debian#L145 ff.


    Wenn ein Shutdown-Hook den Shutdown abbrechen soll, muss der Exit-Code ungleich 0 sein, deine /etc/vdr/shutdown-hooks/S90.custom beendet sich im Fall, dass der Shutdown geskipped werden soll aber mit exit 0.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ansonsten weiß ich nicht, ob man da mit einer Harmony nicht einfacher davon kommt:

    Wenn man die Power-Taste drückt, hat man ja ca. 15 Sekunden Zeit einen etwaigen Shutdown abzubrechen, d.h. wenn man die Harmony beim Einschalten nach der Power-Taste z.B. die Taste für ein KEY_OK senden lässt, kommt es durch den VDR nicht zu einem Shutdown.

    Wenn man mit der Power-Taste ein- und ausschalten können will, würde das dann aber auch zum Abbruch des Ausschaltens führen.

    Mit derselben Taste ein- und ausschalten zu können ist für viele ein wichtiges Feature:

    Quote


    If the PC is powered on, only the key is send to the PC (so you can use the same button for power on and power off).