Skript zum Neustart der aktuellen CAM

  • Dieses Skript startet die aktuell über Bluepanel eingestellte CAM durch wenn keine Aufnahme aktiv ist.
    Über den cronmanager, der ab Gemini 4.20 autom. onboard ist, kann das dann auch automatisiert zeitgesteuert werden.


    Bitte zwecks Konfiguration/Installation einen Blick in das Skript werfen...

  • hi,
    jauu danach war ich auch nun auf der suche nach dem ich auf gemini 4.2 update gemacht habe. habe es gerade getestet und es läuft einwandfrei danke.

    DREAMBOX 7080HD : MERLIN 4 / GP 3.3
    DREAMBOX 7020HD : MERLIN 3 / GP 3.2 | 2x BCM4505 (DVB-S2)
    DREAMBOX 7020si :Gemini 4.6 | CF 2GB San Disk
    Synology DS 114 3TB Western Red

  • Ich hab das Rad auch nicht neu erfunden. Als Skript-Neebie habe ich das epg-refresh-Skript als Anregung genommen und modifiziert.
    Die Herausforderung war dann wie man die übers Bluepanel eingestellte CAM durchstartet. Ich wollte nicht, daß die CAM hart codiert im Skript steht, sondern aus der gerade aktiven Config ausgelesen wird, so daß die CAM nach wie vor übers BP geändert werden kann.
    Glücklicherweise liefert das Gemini-Image eine Webpage, in der die aktuell gültige CAM sowie alle installierten CAMs aufgeführt sind.
    Die Daten mit awk und sed so zu zerlegen, daß man sie auch im Skript gebrauchen kann war dann doch Neuland für mich.


    Was ich vergessen habe zu erwähnen:
    Im Skript ist der User root und als Paßwort dreambox eingestellt. Bitte bei Bedarf anpassen... Die Anmeldung wird benötigt um die Webpages mit wget herunterzuladen.



    # Dieses Skript startet die aktuell eingestellte CAM durch wenn keine
    # Aufnahme aktiv ist.

    # Installation
    # ============
    #
    # refreshcamd.sh auf Dreambox nach /var/script kopieren
    # chmod 755 /var/script/refreshcamd.sh per ssh/telnet
    # oder im FTP-Client Execute-Recht (rwx fuer root) setzen
    #
    # autom. zeitgesteuerter Start des Skripts ueber cron:
    # ab Gemini 4.20 ist der cronmanager automatisch enthalten
    # bei Gemini <= 4.10 cronmanager installieren
    # im cronmanager (per Bluepanel oder Shell) das Skript refreshcamd.sh einplanen
    # Download Gemini-Image:
    # http://www.i-have-a-dreambox.com/wbb2/database.php?sid=
    # Download cronmanager:
    # Cronmanager für enigma 1 - bitte TESTEN


    # Konfiguration
    DREAMBOXIP="http://root:dreambox@127.0.0.1"
    >> In der obigen Zeile also ggf. die eigenen Logon-Daten eintragen...


    Für Anregungen bin ich aufgeschlossen.

  • bei mir manchmal stop cam selber und ich brauche dass die script kontrolliert ob scam gestartet ist wenn nicht dann starten sh /var/script/scam_cam.sh start

  • nils_st01: Es soll zwischendurch vorkommen, daß sich ne CAM aufhängt. So kann man per cron einen Neustart der CAM z.B. 1x/Tag erzwingen. Dabei werden ggf. aktualisierte k**s auch gleich neu eingelesen.

  • Aha,


    OK Danke für die Aufklärung. So etwas fange ich durch einen Box Neustart ab oder durch das Blue Panel per cam Neustart.


    Gruß
    ns

  • ich habe da mal ein verbesserungsvorschlag, wenn ich das mit diesem script die cam neugestartet habe. kann ich auch eine meldung auf dem bildschirm bekommen oder so die script umschreiben das ich beim neustart des cams eine meldung auf dem fernseher bekomme, ist das möglich?

    DREAMBOX 7080HD : MERLIN 4 / GP 3.3
    DREAMBOX 7020HD : MERLIN 3 / GP 3.2 | 2x BCM4505 (DVB-S2)
    DREAMBOX 7020si :Gemini 4.6 | CF 2GB San Disk
    Synology DS 114 3TB Western Red

  • machen kann man viel :winking_face:
    nachdem andere Skripte von erfahreneren Programmierern hier eine Ausgabe am Fernseher zustande bringen sollte das prinzipiell kein Problem sein. Da ich noch Skript-Newbie bin, muß ich mich da aber schlau machen.


    Auf der Shell wäre das ein einfaches echo "dies ist ein text" an passender Stelle im Skript.

  • würde mich auf so eine arbeite von dir sehr sehr viel freuen.

    DREAMBOX 7080HD : MERLIN 4 / GP 3.3
    DREAMBOX 7020HD : MERLIN 3 / GP 3.2 | 2x BCM4505 (DVB-S2)
    DREAMBOX 7020si :Gemini 4.6 | CF 2GB San Disk
    Synology DS 114 3TB Western Red

  • nach dem Starten der cam folgenden Befehl einfügen:
    msgbox msg="Die CAM wurde durchgestartet." size=26 title="refreshcamd.sh"
    Ich denke die Parameter sind selbsterklärend. Das ging einfacher als gedacht :winking_face:
    Servus, Otmanix

  • hi,
    ähm wo genau soll ich das genau einfügen? :face_with_rolling_eyes:

    DREAMBOX 7080HD : MERLIN 4 / GP 3.3
    DREAMBOX 7020HD : MERLIN 3 / GP 3.2 | 2x BCM4505 (DVB-S2)
    DREAMBOX 7020si :Gemini 4.6 | CF 2GB San Disk
    Synology DS 114 3TB Western Red

  • ...
    # CAMD durchstarten
    $CAMD stop
    $CAMD start
    msgbox msg="Die CAM wurde durchgestartet." size=26 title="refreshcamd.sh"
    ...


    Hier z.B. (siehe oben)

  • übrigens, zur Info:
    die IP-Adresse hättest du nicht abändern müssen. Die IP 127.0.0.1 ist die Adresse des sog. local loopback devices und zeigt immer auf den lokalen Rechner, selbiges gilt für den Rechnernamen localhost.
    D.h. wenn du im Skript mit wget vom Webserver mit der IP 127.0.0.1 ein Webseite aufrufst, dann kommt der Inhalt von der Dreambox selbst auf der gerade das Skript läuft.


    Soweit der Exkurs zu TCP/IP auf Linux...

  • ich habe das mal jetzt so gemacht, ist ja richtig oder nur eine meldung auf dem fernseher bekomme ich immer noch nicht?


    DREAMBOX 7080HD : MERLIN 4 / GP 3.3
    DREAMBOX 7020HD : MERLIN 3 / GP 3.2 | 2x BCM4505 (DVB-S2)
    DREAMBOX 7020si :Gemini 4.6 | CF 2GB San Disk
    Synology DS 114 3TB Western Red

    Einmal editiert, zuletzt von atsiz77 ()

  • Also bei mir funktioniert das. Was passiert denn wenn du direkt auf der Shell das Kommando eingibst?


    root@dreambox:/proc> msgbox msg="Die CAM wurde durchgestartet." size=26 title="refreshcamd.sh"


    msgbox Message-Box Version 1.52
    ...


    Also bei mir kommt obige Meldung und am Fernseher erscheint das Fenster, das mit OK bestätigt werden will. Nach dem Drücken von OK ist auch der Prompt der Shell wieder da.

  • hallo,
    also wenn ich im dcc programm im telnet menü:
    root@dreambox:/proc> msgbox msg="Die CAM wurde durchgestartet." size=26 title="refreshcamd.sh" eingebe bekomme ich die fehlermeldung
    -sh: cannot create msgbox: Read-only file system

    DREAMBOX 7080HD : MERLIN 4 / GP 3.3
    DREAMBOX 7020HD : MERLIN 3 / GP 3.2 | 2x BCM4505 (DVB-S2)
    DREAMBOX 7020si :Gemini 4.6 | CF 2GB San Disk
    Synology DS 114 3TB Western Red

    Einmal editiert, zuletzt von atsiz77 ()

  • das hast du falsch verstanden, die Zeile gehört doch ins script und nicht über telnet direkt ausgegeben.

    In meinen Beiträgen gehe ich grundsätzlich davon aus, dass ein unixoides Betriebssystem genutzt wird und alles, was ich zur Funktion von Boxen sage, bezieht sich stets auf die DM 7000 und gibt nur meinen derzeitigen Wissenstand wieder!

  • Ich hatte vor einiger Zeit aus anderen Gründen einen ähnlichen Ansatz gesucht. Die Information des Webif zu nutzen, ist eine gute Idee. Meine Bemühungen scheiterten damals daran, dass in meinen IMG awk nicht lief! Du hast ebenfalls awk genutzt und das machte mich stutzen. Im 4.2er Gemini fand ich awk vor und habe nun direkt dafür gesorgt, dass dieses busybox auch bei mir drauf kommt und zunächst wenigstens mal den awk erledigt.


    Die Diskussion sollte hier noch zu finden sein und hczim hatte den entscheidenden Vorschlag, wie so oft, beigesteuert. Irgendwie ging es so:
    ~ > ps | grep cam
    247 root 312 S /var/bin/camd3
    248 root 312 S /var/bin/camd3
    255 root 312 S /var/bin/camd3
    256 root 312 S /var/bin/camd3
    257 root 312 S /var/bin/camd3
    258 root 312 S /var/bin/camd3
    11796 root 388 S grep cam
    ~ > pidof camd3
    247 248 255 256 257 258


    Was natürlich allzu leicht wäre. Ich setzte einfach voraus, dass es keine cams gibt die nicht cam im Namen haben und wertete dann im script diese Infos aus, merkte mir dann den Namen der cam und killte alle pids dieser cam, danach wartete ich etwas, um sie neu zu starten. Also, ein ganz ähnliches Problem, wie das nun von dir gelöste.
    Ich selbst halte es für besser, die benötigte Information direkt aus den laufenden Prozessen zu ziehen, doch das kann ich tatsächlich nicht mal wirklich begründen.


    Die Seite mit den Webif-Aufrufen, die ich kenne:
    http://wiki.tuxbox.org/Ehttp_api_doku

    In meinen Beiträgen gehe ich grundsätzlich davon aus, dass ein unixoides Betriebssystem genutzt wird und alles, was ich zur Funktion von Boxen sage, bezieht sich stets auf die DM 7000 und gibt nur meinen derzeitigen Wissenstand wieder!