Hi
anbei ein kurzes HowTo wie ich es bei mir realisiert habe, Ambilight per Tastendruck auf der Fernbedienung zu starten
und zu stoppen. Es sollten eigentlich mit jedem Image auf der Dreambox funktionieren.
Ich möchte noch darauf hinweisen, dass ich kein Profi bin. Ich hab die Dinge alle mühsam zusammengesucht und versucht zu verstehen wie es funktioniert. Sofern jemand nicht weiterkommt versuche ich natürlich zu helfen. Ich kann aber nicht versprechen die richtige Lösung zu finden. Ich möchte euch lediglich zeigen, wie es bei mir funktioniert!
1. Ihr benötigt das Plugin Quickbutton für die Dreambox. Das ermöglicht es eine der farblichen Tasten auf der Fernbedienung
der Dreambox per langem Tastendruck mit einer Funktion zu belegen.
2. Ich habe mir jeweils 2 Plugins gebaut. AmbiStart zum starten von Ambilight und AmbiStop zum beenden.
- Dafür geht ihr per FTP oder Telnet/SSH auf die Dreambox in das Verzeichnis /lib/usr/enigma2/python/Plugin/Extensions
- Dort legt ihr jeweils einen Ordner an für AmbiStart und AmbiStop
- In jeden Ordner legt ihr eine leere Datei an und nennt sie __init__.py
- Dann legt ihr eine weitere Datei an namens plugin.py mit folgendem Inhalt:
Python
Alles anzeigenfrom Plugins.Plugin import PluginDescriptor from Screens.Console import Console cmd = "nohup /usr/script/ambi-start.sh" def main(session, **kwargs): session.open(Console,_("ambi-start.sh"),[cmd]) def Plugins(**kwargs): return [PluginDescriptor(name="Ambilight-Start", description=_("execute /usr/script/ambi-start.sh"), where = PluginDescriptor.WHERE_PLUGINMENU, fnc=main), PluginDescriptor(name="Ambilight-Start", description=_("execute /usr/script/ambi-start.sh"), where = PluginDescriptor.WHERE_EXTENSIONSMENU, fnc=main)]
- Nun solltet ihr zwei Dateien in dem Ordner AmbStart haben. Eine __init__.py und plugin.py mit obrigem Inhalt
- Nun wechseln wir in den Ordner AmbiStop und legen wieder einen leere _init__.py Datei an sowie eine plugin.py Datei mit folgendem Inhalt:
Python
Alles anzeigenfrom Plugins.Plugin import PluginDescriptor from Screens.Console import Console cmd = "/usr/script/ambi-stop.sh" def main(session, **kwargs): session.open(Console,_("ambi-stop.sh"),[cmd]) def Plugins(**kwargs): return [PluginDescriptor(name="Ambilight-Stop", description=_("execute /usr/script/ambi-stop.sh"), where = PluginDescriptor.WHERE_PLUGINMENU, fnc=main), PluginDescriptor(name="Ambilight-Stop", description=_("execute /usr/script/ambi-stop.sh"), where = PluginDescriptor.WHERE_EXTENSIONSMENU, fnc=main)]
- Wenn das soweit alles geklappt hat sind wir mit den Plugins fertig. Wie ihr vielleicht gesehen habt ruft jedes Plugin ein Shell Script auf. Welches sich auf den Pi anmeldet und Ambi startet bzw. stoppt. Diese müssen wir jetzt anlegen. Hierfür gehen wir auf der Dreambox in den Ordner /usr/scripts
- Jetzt wird es etwas tricky! Weil wir den Befehl Ambi zu starten oder stoppen auf dem Pi ausführen, muss sich die Dreambox jedesmal auf den Raspberry per SSH einloggen. Hierfür wäre es doof immerwieder das Passwort eingeben zu müssen. Also habe ich bei mir die Authentifizierung zwischen Dreambox und Raspberry auf zertifikatsbasierende Authentifizierung umgestellt. Hierfür habe ich folgende Anleitung benutzt:
Code
Alles anzeigen# Auf der Dreambox folgendes ausführen # In das Verzeichnis .ssh wechseln root@dm7020hd:~/.ssh# dropbearkey -t rsa -f mykey -s 1024 root@dm7020hd:~/.ssh# dropbearkey -y -f mykey > dmpubkey root@dm7020hd:~/.ssh# scp dmpubkey MYUSERNAME@IP_RASPBERRY_PI:/tmp/ # Auf dem Raspberry PI # In das Verzeichnis /tmp wechseln pi@raspberrypi /tmp $ cat dmpubkey >> authorized_keys pi@raspberrypi /tmp $ sudo cp authorized_keys /home/pi/.ssh/ # Auf der Dreambox # In das Verzeichnis .ssh wechseln root@dm7020hd:~/.ssh# ssh -i mykey pi@IP_RASPBERRY_PI
- So! Wenn das anmelden auf dem Pi nun ohne Passwortabfrage funktioniert sind wir fast am durch! Jetzt müssen wir nur noch die Start- und Stop Scripte anlegen.
- Wir sind immernoch im Ordner /usr/scripts auf der Dreambox
- Hier legen wir eine Datei namens ambi-start.sh an mit folgendem Inhalt
- Zum beenden von benötigen wir das Script ambi-stop.sh mit folgendem Inhalt:
- Beiden Dateien noch per chmod 755 ambi-stop.sh bzw. start.sh die Rechte 755 verpassen.
- Dann wären wir auf der Dreambox fertig!
- Nun nur noch die Dreambox neustarten.
Achtung! Bei mir kam es hier zu einem Greenscreen beim Neustart. Es funktionerte aber alles wie gewünscht.
- Jetzt müssen nur noch ein Start- und Stop-Script auf dem Pi angelegt fertig.
- Dafür gehen wir auf den Pi in das Verzeichnis /home/pi/ambi-tv-master
- Dort legen wir ein Start Script namens ambi-start.sh an mit folgendem Inhalt:
- Im selben Ordner legen wir ein Stop-Script an mit dem Inhalt:
- Das wars!
- Jetzt müsst ihr nur noch auf der Dreambox in dem Modul Quickbutton das Plugin "AmbiStart" auf einen Taste legen z.B. grün und das Plugin "AmbiStop" auf die z.B. rote Taste.
Ich hoffe es funktioniert bei jedem! Ich werde noch versuchen das etwas weiterzuentwickeln. Zum Beispiel möchte ich, dass bei Ausschalten der Dreambox Ambilight auch automatisch ausgeht. Weiter möchte ich die Ausgabe im TV Fenster vermeiden, die erscheint, wenn man Ambilight startet oder beendet.
Für Tipps und Anregungen bin ich sehr dankbar!
Gruß
Holger