Intelligentes Shutdown in XBMC

  • Hallo,


    dank wirklich umfangreicher Hilfe in diesem Threat , hab ich das Wakeup mit XBMC nach langer Zeit und viel Rumprobiererei nun endlich an's Laufen bekommen. Jetzt brauche ich allerdings noch die Gegenfunktion dazu, ein intelligentes Shutdown.


    Ich hab das tolle Plugin von BJ1 aus diesem Forum zwar schon gefunden. Leider löst das aber auch nicht mein Problem: Wenn man in XBMC die Leerlaufzeit auf 10 Minuten stellt, fährt der Rechner runter sobald zehn Minuten lang keine Aktivität registriert wurde. Das ist zwar eine wirklich tolle und sinnvolle Funktion. Leider versagt sie aber bei der Nutzung externer Programme. Wenn man zum Beispiel mit Firefox im Web surft, wird nach zehn Minuten einfach der Rechner ausgeknipst, weil XBMC unbenutzt im Hintergrund läuft.
    Dagegen würde zwar ein systemweiter Auto-Shutdown helfen. Das Runterfahren muss aber von XBMC erledigt werden, damit die nächste Aufwachzeit für die kommende TV-Aufnahme in's Bios geschrieben wird. Das erledigt XBMC nämlich wenn man in XBMC auf Shutdown drückt. Außerdem bin ich mir nicht sicher, ob eine Film- oder Musikwiedergabe in XBMC umgekehrt von Ubuntu nicht ebenfalls als Inaktivität gedeutet würde, weil ja ggf mehrere Stunden lang keine Eingabe erfolgt.


    Ich denke, das Problem hab ich hiermit ganz gut erklärt. Vermutlich besteht es mit allen Programmen, die per Advanced Launcher gestartet werden. Hat also jemand eine Idee für einen intelligenten Shutdown?

  • Hi,


    wenn du xbmc beim starten von anderen Programmen schlafen legst (z.B. per script) sollte sich das Problem eigentlich erledigt haben. Es sei denn die Shutdownfunktion schaut auf die Systemzeit und faährt dann nach dem Wecken von xbmc den Rechner einfach runter :). Ein Versuch ist es Wert.


    Gruß
    Atech

    HTPC:
    Softtware: Archlinux mit VDR aus Archvdr repo (1.7.31 mit softhddevice) und xbmc 12.2 Frodo stable
    Hardware: Coolermaster 260 mit Core I3 540, 4 GB Kingst. Ram, GA.H55M-D2H, PCIe 16X RiserCard, NVIDIA 430GT, TT3600USB, TT3650-CI USB, Samsung SSD 640, WD Blue 1TB (WD10TP), IR Einschalter, imon Display, mce FB und 12 Kanal Atmolight (4 Led Streifen) über DFatmo und Boblight

  • Wie geht denn das, ein Programm schlafen legen? Kann man das irgendwie in ein Skript packen, dass man dann per Advanced-Launcher aufruft? Das müsste dann das XBMC einfrieren und außerdem das Zielprogramm aufrufen und solange warten bis es wieder geschlossen ist. Ich glaubeden letzten Schritt würde ich hinkriegen. Das geht per PID. Bei dem Rest bin ich mir nicht so sicher...

  • Ich hoffe das das so auf die schnelle aus meinem Kopf korrekt ist:



    Gruß
    Atech

    HTPC:
    Softtware: Archlinux mit VDR aus Archvdr repo (1.7.31 mit softhddevice) und xbmc 12.2 Frodo stable
    Hardware: Coolermaster 260 mit Core I3 540, 4 GB Kingst. Ram, GA.H55M-D2H, PCIe 16X RiserCard, NVIDIA 430GT, TT3600USB, TT3650-CI USB, Samsung SSD 640, WD Blue 1TB (WD10TP), IR Einschalter, imon Display, mce FB und 12 Kanal Atmolight (4 Led Streifen) über DFatmo und Boblight

  • Ich werd das Skript - oder ein ähnliches - ausprobieren, sobald Zeit ist. Ich denke, ich hab die Methode Verstanden. Da das Backend für TV-Aufnahmen ja eigenständig läuft, sollte die Methode nichtmal geplante Aufzeichnungen stören. Werd es auf jeden Fall testen.


    Einen Zusatz hab ich jetzt nur grad noch auf die Schnelle: Mir ist aufgefallen, dass hier im Haus gerne mal jemand auf den Power-Knopf drückt, wenn er am Wohnzimmer-Rechner vorbeikommt, ohne zu wissen, dass der grade was aufnimmt. Gibt's dagegen vielleicht auch ein Mittel? Ich meine ein vorübergehendes Deaktivieren der Powertaste für die Dauer einer Aufnahme.


    Ich bedanke mich aber auf jeden Fall schonmal für das Schnell-Skript von letztem mal und melde mich, sobald ausprobiert.

  • Gibt's dagegen vielleicht auch ein Mittel? Ich meine ein vorübergehendes Deaktivieren der Powertaste für die Dauer einer Aufnahme.


    Du kannst in der /etc/acpi/powerbtn.sh festlegen, was passieren soll, wenn der Power-Button gedrückt wird - da muss halt noch ein entsprechendes Kriterium rein, dass abfragt ob da gerade eine Aufnahme aktiv ist.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ich glaub das mit dem Einfrieren von XBMC funktioniert so nicht. Ich hab's mal manuell ausprobiert mit


    Code
    ps -e | grep xbmc


    und danach mit


    Code
    kill -s stop 2400


    Die Prozess-Nummer kannte ich ja von der Ausgabe des ersten Befehls. Später, so nach ner dreiviertel Stunde wollte ich dann mit


    Code
    kill -s cont 2400


    das XBMC wieder auftauen und weiter benutzen. Der PC schaltete sich aber praktisch im Moment des Enter-Tastendrucks aus. Der Shutdown-Timer lief also während des XBMC-Freeze vermutlich weiter. X(


    ...dumme Sache...

  • Ich glaube ich habe was Weiterführendes gefunden: Laut dieser Seite gibt es im XBMC das Kommando


    Code
    InhibitIdleShutdown


    ,das den Shutdown-Timer deaktiviert. Der Gegenbefehl heißt


    Code
    AllowIdleShutdown


    und schaltet den Countdown wieder ein. Jetzt muss ich nur noch rausfinden, wie man diese Befehle dem XBMC per Bash-Script einimpft. Die sind ja normalerweise für Python-Programmierer von Addons.


    Wen es interessiert: Hier gibt's die aktuelle und vollständige Liste der Builtin-Befehle. Sie sind im Programmtext rot markiert.


    Wäre für Hinweise zur Bash-Verwendung der Befehle sehr dankbar.

  • Ich hab irgendwo ein Skript gefunden wo jemand xbmc-Befehle an einen Client sendet, um ein Library-Update ferngesteuert durchführern zu lassen. Ich weiß beim besten Willen nicht mehr wo ich's her hab, aber vielleicht lässt sich daraus ja lernen:



    Ich glaube der Autor sendet den Befehl per wget an Xbmc. Ich blick da trotzdem nicht ganz durch. Weiß jemand wie man da wohl den Syntax für einen XBMC-Befehl draus ableitet?


    Ich nehme an, dass wohl das Addon XBMC-Commands installiert sein muss - weil der begriff im pfad vorkommt:

    Zitat

    NOTIFYSTRING="/xbmcCmds/xbmcHttp?command=ExecBuiltIn(Notification(Auto+Media+Updater,$MSG+being+added))"

    Diesen Link aus dem vorigen Post hatte ich auch aus der Beschreibung des Addons.


    Ich denke, ich bin schon nah dran, aber wie genau, mein Skript aussehen müsste und was ich mit den relativen Pfaden mache ist mir irgendwie noch nicht klar.

  • Google: xbmc-send bzw. xbmc-eventclients

    Grüße


    Hannemann

  • Hi,


    habe ein ähnliches Problem mal mit sleepd gelöst. um bei der Musik-Wiedergabe nicht runter zu fahren hab eich den IRQ der Soundkarte überwachht...


    Gruß


    Toxic

    Registrierter VDR-User #1275


    VDR-Server: Proxmox 7.1 - LXC Container - Debian 11.5 - eTobi-VDR 2.6.0

    DVB-Hardware: Digital Devices - Cine S2 V5.5 und V6

    VDR-Clients: FireTV Sticks 2 bis 4K Max und Kodi 19.4

  • Hannemann, hab diesen Wiki-Eintrag gefunden. Das sieht interessant aus, scheint aber auf bestimmte Eingabegereäte beschränkt zu sein:


    Zitat

    EventServer accepts commands from event clients such as LIRC, joysticks, PDAs, and iPhones.

    Besonders interessant finde ich hier - obwohl es nicht zum Thema passt - Joystick, weil das bei mir leider nicht funuktioniert. Hab schon einen entsprechenden Eintrag in der keymap.xml. XBMC reagiert aber einfach nicht auf Eingaben. Verwirrend finde ich zudem:


    Das klingt kompliziert und nicht nach Skripting-freundlichem.


    Trotzdem sieht das mit dem Eventclient schonmal alles sehr interessant aus. Zu xbmc-send hab ich aber leider nichts gefunden - nur irgendwelche Paket-Beschreibungen von ubuntu und Debian. Nichts Wiki- oder blogmäßiges. Es wäre schon nett, wenn Du was ausführlicher antworten könntest.


    @Mreimer: Ich sag's Dir nur wenn Du mir sagst, wie Du drauf kommst und warum überhaupt. Hab es nämlich bislang extra nicht erwähnt...denke ich.

  • Mit xbmc-send, was ein eventclient ist, kannst du Befehle an xbmc senden. Dazu gehören auch die builtin Funktionen.


    xbmc-send --action="stop"


    Muss natürlich vorher installiert werden.

    Grüße


    Hannemann

  • Hi,


    ich habe das Script mal korrigiert, falls es jemand mal brauch:


    HTPC:
    Softtware: Archlinux mit VDR aus Archvdr repo (1.7.31 mit softhddevice) und xbmc 12.2 Frodo stable
    Hardware: Coolermaster 260 mit Core I3 540, 4 GB Kingst. Ram, GA.H55M-D2H, PCIe 16X RiserCard, NVIDIA 430GT, TT3600USB, TT3650-CI USB, Samsung SSD 640, WD Blue 1TB (WD10TP), IR Einschalter, imon Display, mce FB und 12 Kanal Atmolight (4 Led Streifen) über DFatmo und Boblight

  • Müsste das Skript dann nicht ungefähr so aussehen?:




    Ich weiß halt nicht ob es die Aktion resume im XBMC überhaupt gibt. Sie steht halt nicht in den beiden Listen. Stop jedoch auch nicht - und das geht trotzdem. Hatte bisher keine Gelegenheit das Skripten weiter auszuprobieren. Eigentlich schwebte mir was in der Art wie das hier vor:



    Problem: Startet man so ein Skript mehrmals wird das erste Skript beim Beenden den Auto-Shutdown wieder einschalten, obwohl die andern Skripte noch nicht fertig sind. Dagegen müsste noch irgendeine Bedingung rein.


    Eine zusätzliche Schwierigkeit habe ich in letzter Zeit auch noch bemerkt: Wenn XBMC abstürzt - was leider häufiger vorkam - gibt's gar keinen Auto-Shutdown. Eine Art Daemon-Skript, das im Hintergrund laufen würde und XBMC bei Bedarf neu startet, verdächtige ich einen echten Shutdown nicht erkennen zu können.

  • Ich habe mich da etwas falsch ausgedrückt. Das Script wie ich es dir ursprünglich gepostet habe müsste so aussehen wie ich es korrigiert habe. Es legt xbmc schlafen und führt halt ein anderes Programm aus. Ich wollte die Korrektur nur der Volständigkeit halber hier kundtun falls jemand anderes mal auf diesen Thread stösst und meine Variante nutzen möchte.


    Die andere Variante mit "xbmc-send --action=" ist sehr Interessant und das werde ich mir bei Gelegenheit mal anschauen. Ich muss etwas in der Art auch noch einbauen wenn ich aus xbmc externe Programme starte.


    Gruß
    Atech

    HTPC:
    Softtware: Archlinux mit VDR aus Archvdr repo (1.7.31 mit softhddevice) und xbmc 12.2 Frodo stable
    Hardware: Coolermaster 260 mit Core I3 540, 4 GB Kingst. Ram, GA.H55M-D2H, PCIe 16X RiserCard, NVIDIA 430GT, TT3600USB, TT3650-CI USB, Samsung SSD 640, WD Blue 1TB (WD10TP), IR Einschalter, imon Display, mce FB und 12 Kanal Atmolight (4 Led Streifen) über DFatmo und Boblight

  • OK, ich habe den Thread nur überflogen und hatte das übersehen. Also mittels "xbmc-send --action="stop" " funktioniert es dann? Dann würde ich mal gerne Wissen wie der Timer funktioniert. Wenn er auf die Systemzeit schaut (wovon ich eigentlich ausgehe) sollte er auch beim erwecken entsprechend auch herunterfahren.


    Gruß
    Atech

    HTPC:
    Softtware: Archlinux mit VDR aus Archvdr repo (1.7.31 mit softhddevice) und xbmc 12.2 Frodo stable
    Hardware: Coolermaster 260 mit Core I3 540, 4 GB Kingst. Ram, GA.H55M-D2H, PCIe 16X RiserCard, NVIDIA 430GT, TT3600USB, TT3650-CI USB, Samsung SSD 640, WD Blue 1TB (WD10TP), IR Einschalter, imon Display, mce FB und 12 Kanal Atmolight (4 Led Streifen) über DFatmo und Boblight

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!