You are not logged in.

  • "Biki3" started this thread

Posts: 655

Location: here and there

  • Send private message

1

Tuesday, December 17th 2013, 9:20pm

Scripte auf der Box per Fernbedienung ausführen -> PPanel

Hi,

In vielen Images gibt es out of the box die Möglichkeit Scripte per Fernbedienung anzustossen - im OpenATV z.b: gibts dazu das InfoPanel
darin ist der ScriptLoader oder ScriptRunner (weiss jetzt grad nicht wie der genau heisst) zu finden und mit diesem ist es möglich Scripts auszuführen
wobei die Scripts da in /usr/scripts erwartet werden.

Im PLI gibts da auch ne Möglichkeit nämlich die Verwendung von ppanel welches eigentlich out of the box installiert sein sollte, und um dieses gehts hier
im folgenden da mir dieses am besten gefällt um Scripts auszuführen.
Damit kann man nämlich da eine .xml dazwischengeschalten wird den Menüeintrag zu den Scripts erstens viel schöner gestalten und zweitens
kann man auch sehr viel einfacher die Reihenfolge in der die Scripts im Menü angezeigt werden beeinflussen - insgesamt sieht dies alles
(speziell bei vielen Scripts) aufgeräumter und aussagekräftiger aus als die integrierten Lösungen in diversen Images wie z.b: oben zu OpenATV erklärt.

An dieser Stelle ein Hinweis !
Egal ob es in nem Image ne out of the box integrierte Lösung gibt um Scripts auszuführen man sollte auch in so nem Image das ppanel
nachinstallieren können sofern es nicht eh schon bereits vorinstalliert ist
.


Kommen wir nun also zum ppanel !

Erst noch ein wichtiger Hinweis - egal ob man sich ein Script schreibt oder ne .xml, das ist immer mit nem LinuxEditor z.b: mit Notepad++ zu tun !

Ob das ppanel installiert ist kann man daran erkennen wenn man sich z.b: per FTP (Filezilla) zur Box verbindet und nachsieht ob das Verzeichnis;
/usr/lib/enigm@2/python/Plugins/Extensions/PPanel
auf der Box vorhanden ist.
Sollte es nicht vorhanden sein, kann man es entweder auf der Box über den Feed, oder per telnet mit folgenden Befehlen nachinstallieren;

Source code

1
2
opkg update
opkg install enigma2-plugin-extensions-ppanel

Nun sollte man sich erstmal eine .xml anlegen, denn man kann einfache Befehle auch gleich direkt in die .xml schreiben und muss so nicht zwingend
für alles immer gleich extra ein Script schreiben.
Die .xml (oder wenn man später mal mehrere davon hat) wird/werden immer in /etc/ppanels erwartet - sollte das Verzeichis /etc/ppanels
nicht vorhanden sein, dann entweder per FTP (Filezilla) erstellen oder per telnet mit folgendem Befehl;

Source code

1
mkdir /etc/ppanels

Soweit so gut - nun also mal ein Beispiel für nen einfachen Befehl in ner .xml wobei die .xml beliebig benannt werden kann
(aber bitte keine Leerzeichen) wichtig ist nur die Endung .xml ich hab meine in diesem Beispiel einfach mal my.xml benannt
und sie sieht wie folgt aus;

Source code

1
2
3
<directory name="My PPanel">
    	<execute name="CPU Auslastung" target="top | head -n 2 | grep CPU:" quit="exit"/>
    	</directory>

Wenn wir uns den Code oben ansehen wie ist also der Aufbau dieser .xml ?
Die erste Zeile also;
<directory name="My PPanel"> - steht für das was wir im Menü dann sehen -> in dem Fall sehen wir da My PPanel

Die zweite Zeile stellt den Befehl dar der ausgeführt werden soll und ist wie folgt aufgebaut;
<execute name="CPU Auslastung" - steht wieder für das was wir im Menü sehen -> wir sehen hier dann CPU Auslastung
target="top | head -n 2 | grep CPU:" - ist der eigentliche Befehl der aufgerufen wird.
quit="exit"/> - damit sollte das ppanel geschlossen werden (bin gar nicht sicher ob das funktioniert aber es stört jedenfalls auch nicht).

Die letzte Zeile also das;
</directory> - dient sozusagen dem ordnungsgemässen Abschluss der .xml.

So man nun möchte kann man das bis hierher mal testen - das ppanel wird normal über das Erweiterte Menü aufgerufen, man kann
es sich aber genauso gut per MultiQuickButton mit Hinzufügen auf eine beliebige Taste legen (ich hab es auf der Taste search liegen) !



Wenn Befehle aber zu komplex sind ist es besser nicht den/die Befehl/e direkt sondern stattdessen ein Shellscript
welches den/die Befehl/e enthält in der .xml aufzurufen.
Dazu wieder ein Beispiel;

Source code

1
2
3
4
5
6
7
8
9
<directory name="My PPanel">
	<execute name="Festplatten Temperatur" target="sh /usr/script/hddtemp.sh" quit="exit"/>
	<execute name="Speicherplatz Anzeige" target="sh /usr/script/memory_capacity.sh" quit="exit"/>
	<execute name="Arbeitsspeicher Nutzung" target="/usr/script/raminfo.sh" quit="exit"/>
	<execute name="CPU Info" target="/usr/script/cpuinfo.sh" quit="exit"/>
	<execute name="CPU Auslastung" target="top | head -n 2 | grep CPU:" quit="exit"/>
	<execute name="Module (geladen) anzeigen" target="lsmod" quit="exit"/>
	<execute name="Kernel Version anzeigen " target="uname -a" quit="exit"/>
	</directory>

Wie wir hier im Code oben sehen können stehen nun ein paar Zeilen mehr in meiner .xml !
Nun ja, zunächst mal gilt es zu erwähnen das man beliebig viele Befehle in eine .xml eintragen kann
wenn man das möchte bzw. braucht.
Wenn man sich den Code oben nun genauer ansieht wird man bemerken das bei den reinen Befehlen
in manchen Zeilen also nach;
target=
gar keine Befehle stehen sondern der Pfad zu nem Shellscript, man kann das sehr leicht erkennen
da das Verzeichnis wo die Shellscripts dann liegen müssen /usr/script lautet.

also in jeder Befehlszeile wo nach;
target=
der Anfang
/usr/script
bzw. auch sh /usr/script
zu sehen ist wird ein oder mehrere Befehl/e nicht direkt aufgerufen sondern über ein Shellscript welches die Befehle
seinerseits enthält und letztlich ausführt.


Zu den Shellscripts ist noch zu sagen -> die muss man sich natürlich selbst erstellen und wie schon erwähnt sollten die
in das Verzeichnis /usr/script gelegt werden, der Name der Shellscripts ist frei wählbar (aber bitte keine Leerzeichen).
Weiters benötigen die Shellscripts ausführbare Rechte also Rechte 755.

Man kann die Rechte gleich wenn man die Shellscripts per FTP (Filezilla) auf die Box kopiert
mit Filezilla setzen oder aber man setzt nachdem man alle Shellscripts per FTP auf die Box kopiert hat
folgenden Befehl in telnet ab;

Source code

1
chmod 755 /usr/script/*.sh

Man arbeitet also mit wildcards (geht also in diesem Fall gezielt nur auf die Endung der
Dateien los, alles was vor dem Stern also dem * steht ist nicht relevant)
so werden alle Scripts mit der Endung .sh in /usr/script auf einmal ausführbar gemacht.


Tja, was gibts jetzt noch zu sagen, ja man kann in die .xml auch noch nen Seperator einbauen
zwischen den Befehlszeilen das ist dazu da um zwischen den Zeilen mal ne Leerzeile sehen zu können.
Das macht es bei vielen Befehlen dann etwas übersichtlicher im Menü -> mehr nicht.
Dazu abschliessend noch mal ein Beispiel;

Source code

1
2
3
4
5
6
7
8
9
10
11
<directory name="My PPanel">
	<execute name="Movies sichtbar/unsichtbar machen" target="sh /usr/script/movie_hide.sh" quit="exit"/>
	<separator/>
	<execute name="Festplatten Temperatur" target="sh /usr/script/hddtemp.sh" quit="exit"/>
	<execute name="Speicherplatz Anzeige" target="sh /usr/script/memory_capacity.sh" quit="exit"/>
	<execute name="Arbeitsspeicher Nutzung" target="/usr/script/raminfo.sh" quit="exit"/>
	<execute name="CPU Info" target="/usr/script/cpuinfo.sh" quit="exit"/>
	<execute name="CPU Auslastung" target="top | head -n 2 | grep CPU:" quit="exit"/>
	<execute name="Module (geladen) anzeigen" target="lsmod" quit="exit"/>
	<execute name="Kernel Version anzeigen " target="uname -a" quit="exit"/>
	</directory>

Wie oben im Code zu sehen steht nach der ersten Zeile mit nem Befehl das;

<separator/>
eingetragen -> hier ist dann also ne Leerzeile vor dem nächsten Befehl im Menü zu sehen.

Es gäbe zum PPanel mit eigener .xml und Shellcripts noch vieles zu sagen aber für den Hausgebrauch sollte
das doch voll ausreichen.


Jetzt noch ein paar Bilder (Screens) wie das aussehen könnte mit Scripts aber auch mit nur direkten Befehlen in der .xml;

index.php?page=Attachment&attachmentID=3390 index.php?page=Attachment&attachmentID=3391 index.php?page=Attachment&attachmentID=3392

index.php?page=Attachment&attachmentID=3393 index.php?page=Attachment&attachmentID=3394


DA ICH DIE 10000 ZEICHEN PRO POST ÜBERSCHRITTEN HABE GEHTS IM NÄCHSTEN POST WEITER !


Grüsse
Biki3
ET9000, Mutant HD 2400, VU Ultimo 4k + PLI, und OpenATV

This post has been edited 27 times, last edit by "Biki3" (Dec 18th 2013, 5:38pm)


  • "Biki3" started this thread

Posts: 655

Location: here and there

  • Send private message

2

Wednesday, December 18th 2013, 5:32pm

Scripte auf der Box per Fernbedienung ausführen -> PPanel -> Teil 2

Hi,

Noch ein abschliessender Hinweis !

Die Schrift wie das in den Menüs angezeigt wird (also Grösse, Fett usw...) hängt sehr vom verwendeten Skin ab, ne Schriftgrösse 16 is da
eindeutig zu klein, ab Schriftgrösse 18 - 20 sieht das dann sehr gut aus ( Im aktuellen OpenATV mit dem Standardskin passt das), aber im
PLI-4.0 is das zu klein, deshalb sollte man sich bei Verwendung von nem PLI-4.0 ne skin_user.xml unter /etc/enigm@2 mit folgender section anlegen;

Source code

1
2
3
4
5
6
7
8
<!-- ppanel -->	
	<screen flags="wfNoBorder" name="Execute" position="fill" title="PPanel Entry">
		<panel name="PigTemplate"/>
		<panel name="ButtonTemplate_YB"/>
		<widget name="linelist" font="Regular;18" position="560,110" size="655,500" transparent="1" scrollbarMode="showOnDemand" selectionPixmap="PLi-HD/buttons/sel.png" />
	</screen>	
  
</skin>


Is jedoch bereits ne skin_user.xml unter /etc/enigm@2 vorhanden dann die section eben da zusätzlich eintragen.


Und nun noch ein Komplettpaket mit Installscript (nennt sich ppanel_install.zip) welches das Ganze automatisiert
(heisst soviel wer das Installscript anwendet der braucht sich um nix weiter wie in Post #1 beschrieben zu kümmern);


Anwendung:
1.) Man entpackt das zip File Namens ppanel_install.zip am PC.
Danach hat man zwei weitere Files, ein Paket mit Namen ppanel_complete.tar.gz und das Installscript Namens ppanel_install.sh am PC vorliegen.

2.) Das Paket ppanel_complete.tar.gz und das Installscript Namens ppanel_install.sh nun am Besten per FTP (Filezilla) auf der Box nach /tmp kopieren.

3.) Nun verbindet man sich per telnet zur Box, und tippt die folgenden zwei Befehle einzeln jeweils gefolgt von nem Druck auf die Enter Taste ein.

Source code

1
2
chmod 755 /tmp/ppanel_install.sh
sh /tmp/ppanel_install.sh

Jetzt einfach die Ausgaben in telnet beobachten bzw. den Anweisungen folgen.
Das wars dann schon !

Erklärung dazu:
Alles weitere erledigt das Installscript, kurz gesagt es installiert falls noch nicht vorhanden das ppanel, und
kopiert dann alle benötigten Files wie die Scripts usw.. an die korrekten Plätze, setzt die Rechte usw...

Zum Schluss dann wirds etwas interaktiv, man kann dann auswählen ob die Box nen Neustart macht oder nicht falls grade Aufnahmen laufen.
Man kriegt aber die entsprechenden Meldungen (was zu tun ist usw..) alles in telnet angezeigt, deshalb einfach das befolgen was telnet sagt.
Da man eh alle Ausgaben in telnet mit verfolgen kann hab ich diesmal auf Logging verzichtet.

Wenn das Installscript erfolgreich durchgelaufen ist und die Box dann neugestartet wurde (egal ob mittels Installscript oder später per
Fernbedienung)kann man das PPanel standardmässig mittels der blauen Taste (Erweitertes Menü) erreichen um die Scripts ausführen. Besser aber ist es
wenn man sich das PPanel danach noch in Multiquickbutton auf ne Taste legt (ich hab es hier z.b: auf die Tate search gelegt), das verkürzt den Zugriff.

Grüsse
Biki3
Biki3 has attached the following file:
ET9000, Mutant HD 2400, VU Ultimo 4k + PLI, und OpenATV

This post has been edited 9 times, last edit by "Biki3" (Dec 18th 2013, 6:44pm)


Pedro_Newbie

Unregistered

3

Wednesday, December 18th 2013, 5:47pm

Nice piece of work Biki3!

Schönes Stück Arbeit Biki3!

  • "Biki3" started this thread

Posts: 655

Location: here and there

  • Send private message

4

Wednesday, December 18th 2013, 6:52pm

Hi Pedro_Newbie,

thanks a lot :)
yes it was a bit of work - admittedly it's basically the same as i postet in et-view.net forum a long time ago
but i wrote the most of them new, however now it's ready.

regards
Biki3
ET9000, Mutant HD 2400, VU Ultimo 4k + PLI, und OpenATV

This post has been edited 1 times, last edit by "Biki3" (Dec 18th 2013, 8:30pm)