PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [spark] Sender-/Kanalliste aktualisieren



Mumpitz23
08.12.2012, 20:11
Nabend.

Ich habe mir ein Script gebaut damit die Kanalliste über ein ipk upgedated wird, nur gibt es leider ein Problem. Nach dem neustart der Benutzeroberfläche wir im ordner /etc/enigma2 immer die original lamedb wiederhergestellt. Aber wenn ich die nicht ändern kann, dann müsste man jedesmal erst eine Kanalsuche durchführen und dem will ich aus dem Weg gehen. Kann mir vielleicht jemand sagen, was ich ändern muss, damit man eine andere lamedb reinbekommt?

mfg Mumpitz

santa
08.12.2012, 20:13
killall rcS
killall enigma2
cp lamedb
init 6

Mumpitz23
08.12.2012, 20:16
Bevor oder nachdem die lamedb ausgetauscht wurde?
Und danach kann ich neustarten oder was?

mfg Mumpitz

santa
08.12.2012, 20:19
was bedeutet denn cp?
du beendest mit der reihenfolge e2, dann kopierst du, mit init 6 macht die Box nen reboot

Mumpitz23
08.12.2012, 20:23
Wenn ich das richtig verstehe, dann lass ich das ipk installieren und die lamedb in etc/enigma austauschen. Danach dann:
killall rcS
killall enigma2
cp lamedb
init 6
dann bleibt die getauschte lamedb drin.
Und dafür muss man vollständig rebooten?

mfg Mumpitz

santa
08.12.2012, 20:27
mit ipks kenn ich mich nicht aus, ob man das da anders machen kann.
probier es mal ohne das cp.
Wenn e2 heruntergefahren wird, dann wird immer settings und lamedb neu geschrieben.
Deswegen muss man beim manuellen tauschen e2 killen, damit es das eben nicht machen kann.

bonkel
08.12.2012, 20:29
ich würd mit tar.gz arbeiten...


dann killall rcS
killall enigma2
tar xzvf tarfile.tar.gz
init 6

Mumpitz23
08.12.2012, 20:37
Ich will mich ja nicht dumm stellen aber iwie begreif ich das grad nicht^^
Also das mit der ipk ist im Grunde alles billig. Im Grunde werden die *.tv Dateien überschrieben und eben die lamedb mit korrekten attributen. Danach wird die Benutzeroberfäche automatisch via script neugestartet. Da passt auch an sich alles, nur wie gesagt die lamedb wird zurückgesetzt.
Nur versteh ich grad nicht wie das dann weiterlaufen soll. Es wird ja enigma2 beendet und cp dient zum kopieren der lamedb, nur von wo nach wo?
Das einzige was ich mir grad noch vorstellen kann wäre, das erst enigma2 gekillt wird und man danach die lamedb nach etc/enigma2 kopiert.
Tut mir leid, wenn ich grad auf dem Schlauch stehe ;)

Edit:
@bonkel: Würde das so auch mit ipk gehen?
Hab von tar.gz bauen gar keinen Plan^^

mfg Mumpitz

bonkel
08.12.2012, 20:40
weiss ich nich, mit tar.gz aber sicherer und es falllen keine extra daten an

Mumpitz23
08.12.2012, 20:50
Hmmm. Ich teste erstmal mit ipk, wegen fehlender Ahnung und weil das ipk, soweit ich weiß, kleiner ist^^
Ansonsten kannste mir mal sagen wie ich ein tar.gz baue? Den mist mit 7-zip unter Win7 krieg ich nicht aufe Reihe gebacken.

Mumpitz23
08.12.2012, 21:15
Also großes Danke erstmal an euch beide für die schnelle Hilfe!
Soweit ich es gerade vom Kumpel gehört habe geht es. Werde das morgen nochmal am Receiver unten testen.

mfg Mumpitz

Mumpitz23
11.12.2012, 19:14
Nabend.

Ich bräuchte noch ein paar infos:
Ist es möglich eine Keyabfrage in ein Script einzubauen alá, drücke "OK" um fortzufahren. Ich denke mal das es geht und ich kenn sowas von Matlab, aber irgendwie krieg ich nicht auf die Reihe^^
Ich hängs mal an vielleicht hat ja jemand mehr Ahnung als ich, jedenfalls komm ich nicht wirklich weiter.


if [ -e /tmp/****.ipk ]; then
echo ""
echo ""
echo "Drücken sie 'OK' zum fortsetzen oder 'EXIT' um die Installation abzubrechen"
echo "Achtung, wenn sie die Installation fortsetzen, wird der Receiver automatisch neugestartet!!!"
if key == "KEY_OK":
then
echo "Alte Dateien werden entfernt..."
rm **************
rm **************
rm **************
rm **************
rm **************
rm **************
rm **************
rm **************
rm **************
rm **************
rm **************
echo "Neue Kanalliste wird installiert..."
echo ""
echo "Der Receiver startet nach der Installation automatisch neu"
sleep 5
killall rcS
killall enigma2
opkg install /tmp/****.ipk
rm /tmp/****.ipk
rm /tmp/changelog.txt
init 6
elif key == "KEY_EXIT":
then
rm /tmp/*****.ipk
rm /tmp/changelog.txt
break
fi
else
echo ""
echo "Die Kanalliste konnte nicht aktualisiert werden"
echo "Bitte versuchen sie es später erneut oder überprüfen sie die Internetverbindung."
echo ""
fi


Fehlermeldung:
line 53: key: not found
line 53: key: not found

Das ist die letzte line mit "fi"
Statt anzuhalten und auf den Tastendruck zu warten, steht immer Ausführung beendet.

mfg Mumpitz

bonkel
11.12.2012, 21:04
da fehlt ja uch ne eingabge am anfang für infput

key=$1


bin aber nich sicher ob man die fb so leicht in shell nutzen kann

Mumpitz23
11.12.2012, 21:49
Ich bin grad schon am rumschauen. Ist nicht wirklich einfach gelöst. Man muss ja das script an der Stelle for der if clause pausen, und das machts wohl nicht von alleine. Für bash gibts wohl den befehl read, aber den scheint der resi nicht zu mögen, da er dann einfach nicht mehr weiter macht^^
Eigentlich wollt ich nur pausen und auf OK oder Exit warten.

Edit:
Sagen wirs mal so, aufm Receiver passiert nichts, aber bei telnet gehts weiter wenn ich das so mit read mache wie es auf einigen Seiten vorgeschlagen wird. Also entweder ich weise die key falsch zu oder die FB wird in Shell nicht erkannt.

mfg Mumpitz

bonkel
11.12.2012, 22:25
lös das doch mit python, ist doch viel einfacher ^^

Mumpitz23
11.12.2012, 22:30
Ja genau, da ich von Plugins ja noch mehr Ahnung habe :D
Oder bastelst/gibts mir ein Plugin das auf Anfrage erst eine changelog lädt, diese dem Benutzer zeigt und ihn dann fragt, ob er die Kanalliste updaten will? Für den ersten Teil könnte man das Plugin nehmen, die Installation könnte dann das Script machen.
Oder das Plugin startet automatisch ein Script das die changelog lädt und anzeigt und fragt danach wie es weitergeht. Aber dann müsste man wohl wieder den Key-Press im Script abfragen.
Aber wie das genau geht, hehe kein Plan :D

mfg Mumpitz

bonkel
11.12.2012, 22:33
dann braucht man garkein script mehr
aber ich hab dafür grad keine zeit (schule)

madie
11.12.2012, 22:46
Na das sollte doch nicht schwer sein:

http://www.espend.de/sites/default/files/266/dreambox_enigma2_plugin-tutorial.pdf

Mumpitz23
12.12.2012, 01:33
Ja hab ich auch schon gesehen. Werd mich da morgen mal reinlesen und ein bisl rumprobieren. Man gut, dass alles was ich an Programmieren gelernt hab, rudimentäres c++ ist^^

mfg Mumpitz

Mumpitz23
15.12.2012, 00:41
So, hab mal ein paar Stunden dran rumgemacht, alles in allem vergebene Liebesmüh^^ Das Tutorial mag ja gut sein hilft mir aber nicht wirklich weiter. Ich kann zwar das Plugin einlisten, aber nicht aufrufen weil ich irgendwie zu taub bin. Eigentlich will ich ja nur ein plugin haben und wenn ich das aufmache, soll dort das ganz normale Fenster bleiben wo ich dann die Funktionen einlisten.
Siehe:
2524
Der Quelltext könnte mir zwar helfen, aber da es *.pyo ist, komm ich da schlecht ran^^

mfg Mumpitz

bonkel
15.12.2012, 00:42
weiss zwar nich was du genau suchst, aber hier gibts py:
http://openpli.git.sourceforge.net/git/gitweb.cgi?p=openpli/enigma2;a=summary

Mumpitz23
15.12.2012, 01:00
Na ich denke mal das wird mir kaum gelfen, da das hier ein Tool vom VTi Team ist ;)
Mir gehts halt nur um den Aufbau, Plugin aufmachen und dann soll der Bildschirm dementsprechend aussehen, wie im Bild aussehen, nur halt mit meinen Einträgen.

Edit:
Ich werd mal im git rumstöbern.

mfg Mumpitz

bonkel
15.12.2012, 01:03
hilft dir das lokale installieren menu nich im software manager?

Mumpitz23
15.12.2012, 01:09
Also das versteh ich grad nicht^^
Ich sag ja, ich bin zu taub. Mich würds ja schon freuen wenn ich erstmal die Grundoberfläche fertig kriegen würde. Ich hab das Plugin zwar drinne, aber aufmachen is nicht, weil ich ja nur zu ca. 50% weiß was ich da tue :D
Ach ja, ich mach das auf meiner VU+, is das gleiche python.

bonkel
15.12.2012, 13:24
wenn du ein pli image hast menu->erweiterungen/pluigins->softwareverwaltung
da steht was von lokale installation

Mumpitz23
15.12.2012, 13:45
Nope hab das VTi drauf, daher ja auch der Screen. Da kann man im Blue Panel ipk und tar.gz von Hand installieren, aber ich weiß grad nicht, was ich da jetzt installieren soll. Das Tool vom Screen ist da schon fest eingebaut, aber da ist eben nur eine pyo und keine py.

mfg Mumpitz

Mumpitz23
16.12.2012, 17:49
Nabend.

So ich könnte, wenn möglich, mal Hilfe gebrauchen :o
2547

Ausschnitt des Crashlogs:


action -> InfobarExtensions vtipanel
action -> SetupActions right
unknown action SetupActions/right! typo in keymap?
action -> SetupActions ok
No skin to read...
action -> WizardActions ok
Screen <class 'Plugins.Extensions.UpdatePanel.plugin.UpdatePanel '>((), {}): <type 'exceptions.AttributeError'>
Traceback (most recent call last):
File "/usr/lib/enigma2/python/mytest.py", line 239, in create
return screen(self, *arguments, **kwargs)
File "/usr/lib/enigma2/python/Plugins/Extensions/UpdatePanel/plugin.py", line 54, in __init__
"ok": self.showDetails,
AttributeError: 'UpdatePanel' object has no attribute 'showDetails'
Traceback (most recent call last):
File "/usr/lib/enigma2/python/Components/ActionMap.py", line 46, in action
res = self.actions[action]()
File "/usr/lib/enigma2/python/Screens/PluginBrowser.py", line 98, in save
self.run()
File "/usr/lib/enigma2/python/Screens/PluginBrowser.py", line 102, in run
plugin(session=self.session)
File "/usr/lib/enigma2/python/Plugins/Extensions/UpdatePanel/plugin.py", line 69, in main
session.open(UpdatePanel)
File "/usr/lib/enigma2/python/mytest.py", line 313, in open
dlg.isTmp = True
AttributeError: 'NoneType' object has no attribute 'isTmp'
(PyObject_CallObject(<bound method ActionMap.action of <Components.ActionMap.ActionMap instance at 0x1bc5288>>,('WizardActions', 'ok')) failed)
]]>
</dvbapp2crashlog>
</crashlogs>
</stbcrashlog>


mfg Mumpitz

bonkel
16.12.2012, 18:40
naja der fehler steht ja da, die ok taste wird zu einer funktion gelinkt (eine def ) die es nicht gibt

Mumpitz23
16.12.2012, 20:15
Ja klar, das hab ich ja auch noch verstanden^^ Nur frag ich mich warum


def __init__(self, session):
Screen.__init__(self, session)


self["actions"] = ActionMap(["OkCancelActions", "ColorActions", "MovieSelectionActions", "DirectionActions"],
{
"ok": self.ok,
"cancel": self.cancel,
"down": self.down,
"up": self.up,
"red": self.cancel,
"green": self.ok
}, -1)

Und wenn ich "ok" dann so definiere:


def ok(self):
cursel = self["list"].l.getCurrentSelection()



mfg Mumpitz

Mumpitz23
11.03.2013, 19:32
Mahlzeit.

Ich weiß das Thema ist schon etwas älter, aber ich schreibe mal hier rein, anstatt einen neuen Thread zu öffenen.
Wollte mal wissen ob es möglich ist, den "reboot" durchzuführen, nachdem ich die Console (MyScripts) geschlossen habe? Soll heißen, die Console bleibt solange offen, bis der user sie schließt und danach startet der resi automatisch neu. Angedacht ist das Zwecks lesens im Consolenfenster. Kenne so etwas sonst nur vom VTi, wenn ich Plugins installier/aktualisiere, wo er mich nach der Installation fragt ob ich restarten will.
Ich hoffe jemand kann mir da mal helfen.

mfg Mumpitz

Mumpitz23
12.03.2013, 18:26
Niemand eine Idee?

bonkel
12.03.2013, 18:35
beim installieren der settings, werden die setttings nach dem install, reloaded über python

Mumpitz23
12.03.2013, 18:59
Jetzt hab ich einen Knoten im Kopf^^
Und gibts eine Möglichkeit, direkt nach dem Schließen des Konsolenfensters von MyScript einen "reboot" durchzuführen? Wär schick wenn das innerhalb des Shell Scripts ginge ;) Denke mal man könnte auch an MyScripts rumfummeln und es so einstellen, dass automatisch ein "reboot" erfolgt, nachdem ein bestimmtes Script beendet wurde. Aber dafür habe ich weder genug Zeit, noch genug Wissen :D Einziger Behelf ist momentan ein "sleep 30" nur bin ich davon nicht vollkommen überzeugt. Hatte ansonsten noch die Idee, den reboot zu machen wenn der Dienst für die Konsole geschlossen wird, aber keine Ahnung ob das ginge.

mfg Mumpitz