1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

[gelöst] ...wie Hyperion NG bei shutdown beenden ?

Discussion in 'German Talk' started by digital.arts, 3 February 2020.

  1. digital.arts

    digital.arts New Member

    Messages:
    6
    Hardware:
    RPi3
    Hallo,

    ich habe Hyperion NG auf einigen RPis erfolgreich am laufen;
    Plattformen RPI3, RPI4
    OS: Buster --- keinerlei weitere Anwendungen, nur Hyperion NG im Autostart
    LEDs : 2801, 2812, 6812 (alles über SPI) und separater Spannungsversorgung
    Quellen: über Grabber, analog (Fushicai) und auch rein digital über 4k-HDMI-USB

    Nun zu meinem Anliegen:
    Ich möchte gerne, wenn ich die RPIs runterfahre, dass die LEDs abschalten.
    Runterfahren (bzw. "shutdown") löse ich durch Taster aus, mit "dtoverlay=gpio-shutdown".
    Leider bleiben dabei dann die LEDs auf dem letzten Licht stehen, das sie vom daemon zugewiesen hatten.
    Ich muss vorher also z.B. über das Web-Interface von Hyperion NG den Dienst "deaktivieren" - oder was auch immer der Button im Hintergrund genau macht...

    Nun meine Idee und Frage dazu:
    Würde das funktionieren ? :

    in /usr/lib/systemd/system-shutdown/ einen hyperion_stop.service erstellen, mit Inhalt:

    [Unit]
    Description=kill hyperion_ng at shutdown to set the leds off
    Requires=network.target
    DefaultDependencies=no
    Before=shutdown.target reboot.target
    [Service]
    Type=oneshot
    RemainAfterExit=true
    ExecStart=/bin/true
    ExecStop=sudo killall hyperiond
    [Install]
    WantedBy=multi-user.target

    Dann vermutlich noch ein: sudo system-ctl enable hyperion_stop.service

    Kann es leider erst übermorgen testen, ist daher im Moment nur eine "theoretische" Frage...


    VG Karl
     
  2. Lord-Grey

    Lord-Grey Moderator Staff Member Developer

    Messages:
    263
    Hardware:
    RPi3, 32/64bit
    Hi
    Der PR654 sollte das Problem des definierten Abschaltens adressieren.

    Beim Beenden von Hyperion.ng wird dann beim Stoppen des LedDevices einmal schwarz geschrieben und dann das Device abgeschaltet.

    Wenn Dein Problem nach der Integration des PRs noch existiert, müssen wir nochmal schauen....
     
  3. digital.arts

    digital.arts New Member

    Messages:
    6
    Hardware:
    RPi3
    Hallo Lord-Grey,
    das war ja die Fragestellung : wenn ich den RPi über den Taster (= shutdown-Signal) runterfahre... dann wird ja doch afaik der hyperiond nicht "sauber" beendet.
    Also muss ich dieses "Beenden von Hyperion.ng" irgendwie in den normalen shutdown-Prozess mit unterbringen - siehe meine Idee oben...

    wobei "killall hyperiond" ja auch nicht SO sauber ist ;-)
    Vielleicht würde auch ein "sudo hyperion-remote -c black" in dem Script reichen...
     
  4. Lord-Grey

    Lord-Grey Moderator Staff Member Developer

    Messages:
    263
    Hardware:
    RPi3, 32/64bit
    Der Prozess zum Herunterfahren in Hyperion.ng ist aktuell nicht sauber. Darum brauchst Du zuerst die Änderungen aus dem PR.
    Alles andere wird Dir sonst nicht helfen.
    Wenn Hyperion nach einem kill richtig herunterfährt (s.o.), dann sollte Deine Anforderung auch erfüllt sein.
     
  5. digital.arts

    digital.arts New Member

    Messages:
    6
    Hardware:
    RPi3
    Hi,
    ich finde ja prima, dass Ihr an dem Prozess, wie hyperion.ng sich sauber beendet, arbeitet.
    Mein "Problem" bezieht sich aber primär nicht auf hyperiond an sich, sondern war eher als Frage an kundigere Linux- und Buster-Anwender gerichtet (als MICH) - ob ich nämlich über meinen "gedachten" Weg des systemd-services den Raspberry-shutdown-Prozess ergänzen kann. In dem Fall halt mit einem Kill des hyperiond.
    Könnte aber auch beliebig was anderes sein (z.B: dass beim shutdown noch ein Sound abgespielt wird usw usw. )

    VG Karl
     
  6. digital.arts

    digital.arts New Member

    Messages:
    6
    Hardware:
    RPi3
    Hallo,
    nur eine Info zu meiner ursprünglichen Frage ...
    Ja, das script funktioniert genau so - bei einem shutdown-signal wird dadurch auch der hyperion daemon gekillt, die LEDS gehen aus.
    Hinweis zu Buster: den Ordner /usr/lib/systemd/system-shutdown/ gibt es standardmäßig hier nicht, einfach anlegen.
    Dann das script anlegen; muss auch gar nicht als service enabled werden, es reicht wenn es bei shutdown gefunden wird ...

    Wenn dann auch noch für hyperion.ng der "Beenden"-Prozess noch optimiert wird, um so besser... dann könnte der "killall" im script durch eine schönere Routine ersetzt werden.