Hallo,
da XBMC als alleiniges Frontend in yaVDR schon immer gewisse Probleme gemacht hat, habe ich mal versucht eine Lösung zu schaffen, die sich besser am VDR als wichtigstes Element des Systems orientiert. Vielen Dank an Telperiar, der eine sehr gute Vorlage geliefert hat und an BJ1, dessen Skript für TVheadend mir ebenfalls einige interessante Ideen aufgezeigt hat.
Funktionen des Addons sind:
- XBMC bekommt einen angepassten Inaktivitätstimer, der in Abstimmung mit dem VDR läuft (unter Berücksichtigung von Plugin-Aktivität, laufenden und anstehenden Timern sowie der Shutdown-Hooks des VDR), die vom xvdr-plugin erzeugte Benutzeraktivität am VDR wird ignoriert - dies funktioniert sowohl wenn XBMC nachträglich gestartet wurde als auch wenn es als primäres Frontend läuft. Für XBMC gibt es zwei Aktivitätskriterien: Benutzereingaben und das Abspielen von Medien.
- Bestimmte Einstellungen aus dem Setup-Menü des VDR (und ggf. seiner Plugins) können in XBMC konfiguriert werden (Einstellungen, die das xvdr-Addon setzt, habe ich bewusst ausgelassen)
- Wurde der VDR für eine Aufnahme gestartet (NextWakeupTime in der setup.conf im Bereich von 600s um den Start des VDR), soll er sich - solange keine Benutzeraktion in XBMC erfolgt - nach der Aufnahme zum nächst möglichen Zeitpunkt herunterfahren
- Wird beim Drücken der Power-Taste auf der Fernbedienung das Plugin mit dem Argument "check" aufgerufen (siehe weiter unten) überprüft das Plugin, ob der VDR das Herunterfahren verhindern würde - falls ein Herunterfahren zum aktuellen Zeitpunkt nicht möglich ist, wird es automatisch weiter versucht, bis der Benutzer es durch Aktivität in XBMC unterbricht
- Erweiterter Upstart-Job für das Beenden von XBMC, um feiner differenziert steuern zu können, unter welchen Bedingungen ein sicherer Shutdown erfolgen kann
Bekannte Einschränkungen:
- Das Plugin liest beim Start die Einstellungen aus dem VDR ein und überschreibt damit erst mal die voreingestellten Werte in XBMC - werden diese danach in XBMC verändert, werden diese Einstellungen in den VDR übernommen (was nach dem Schließen des Konfigurationsmenüs ca. 20 Sekunden dauern kann).
- Im Gegensatz zum bekannten Verhalten des VDR wird die Wiedergabe von Live-TV als Aktivität interpretiert - XBMC wird dann also nicht abschalten, solange dieses läuft.
- Das Warten auf die Antwort einer dbus-Abfrage dauert ca. 1 Sekunde - dadurch kann der Shutdown von XBMC bzw. des Systems ein paar Sekunden länger dauern als bislang gewohnt, da die Abfrage z.T. zweizeitig erfolgt (um ggf. XBMC wieder zu starten, wenn ein Shutdown nicht möglich ist), funktioniert aber hoffentlich zuverlässiger als mit der bisherigen Lösung.
TODO:
- Weitere Einstellungen des VDR-Setups (und evtl. der Standard-Plugins von yaVDR) auch über XBMC konfigurierbar machen - hier suche ich noch Vorschläge, welche VDR-Einstellungen da Sinn machen würden
- Lokalisierte Meldungen in XBMC, die Optionen sind schon jetzt auf deutsch und auf englisch verfügbar
Die erste Version richtet sich insbesondere an Tester, die idealerweise auch beim Debuggen helfen können, wenn sie Fehler finden (oder zumindest einen relevanten Auszug aus dem XBMC-Log unter /var/lib/vdr/.xbmc/temp/xbmc.log mit aktivierter Debug-Ausgabe des Plugins liefern können).
Da das Addon einige sehr neue Fähigkeiten des vdr-plugin-dbus2vdr voraussetzt (vielen Dank an mini73 dafür), muss die aktuellste Version verwendet werden. Seit heute morgen ist sie in testing-vdr für yaVDR 0.5alpha1 verfügbar und wird im Zuge eines normalen "sudo apt-get update && sudo apt-get dist-upgrade" installiert.
Insbesondere würde mich interessieren, ob das automatische Herunterfahren funktioniert und auch das Beenden dieses Modus durch Benutzeraktivität klappt, wenn der VDR automatisch für eine Aufnahme gestartet wurde (was ich selbst schlecht testen kann, da ich momentan keinen Test-VDR dafür frei habe)
Systemvoraussetzungen:
- yaVDR 0.5alpha1 mit den aktuellsten Updates (eine Benutzung auf anderen Systemen, auf denen der VDR mit dem aktuellen dbus2vdr-Pluginlaufen ist prinzipiell auch möglich, dann muss die Auswertung der Shutdown-Codes und der vom yaVDR-Tools Addon erzeugten Dateien noch analog zur /etc/init/xbmc-exit.conf und dem neuen XBMC-Shutdown-Hook (https://github.com/seahawk1986…b/master/S92.xbmcactivity) in yaVDR durchgeführt werden und erfordert daher vermutlich etwas Bastelarbeit).
Installationsanleitung:
- XBMC als Option für das Lifeguard-Addon im Webfrontend (siehe http://www.yavdr.org/documenta…e/ch01s05.html#wfe-common) deaktivieren, sonst funktioniert das Plugin nicht wie erwartet...
- Aktuelle Updates einspielen:
- das eigentliche XBMC-Addon installieren:
Das Addon taucht dann in den Addon-Einstellungen unter "Dienste" bzw. "Services" auf. - Andere Energiespar-Funktionen zum Abschalten des Systems wie die von XBMC und z.B. dem xvdr-PVR Addon sollten natürlich (wie auch im Auslieferungszustand von yaVDR eingestellt) deaktiviert bleiben, da sie mit dem Addon kollidieren würden und nicht darauf ausgelegt sind auf den VDR und die in yaVDR verankerten Upstart-Skripte im gleichen Maße Rücksicht zu nehmen wie das hier vorgestellte Addon.
- Falls XBMC als primäres Frontend genutzt werden soll (also im WFE gesetzt ist) sollte man in der /var/lib/vdr/.xbmc/userdata/keymaps/remote.xml die Zeile
durch diesen Aufruf ersetzen:
Wer mag kann diese Funktion auch im Skin entsprechend statt den XBMC-Shutdown-Funktionen eintragen (für Confluence: DialogButtonMenu.xml des Skins, kann aber je nach Skin variieren).
Da XBMC durch die voreingestellte GUI-Aktualisierung im Auslieferungszustand auch bei ruhendem Home-Bildschirm von XBMC eine höhere CPU-Auslastung erzeugt als der VDR mit dem softhddevice-Frontend (liegt nicht an meinem Addon ;)), schlage ich die Nutzung einer advancedsettings.xml vor, die als /var/lib/vdr/.xbmc/userdata/advancedsettings.xml folgendes beinhaltet:
<advancedsettings>
<gui>
<algorithmdirtyregions>1</algorithmdirtyregions>
<nofliptimeout>0</nofliptimeout>
</gui>
<lookandfeel>
<enablerssfeeds>false</enablerssfeeds>
</lookandfeel>
</advancedsettings>
Ich freue mich auf Rückmeldungen, Verbesserungsvorschläge und konstruktive Kritik - viel Spaß damit