dyndnsAutoLogin

  • Habe nun eine einfache Ausgabe einer Messagebox auf dem TV über das Webif hinbekommen. Einfach in die dyndnsAutoLogin_script.sh unten folgendes einfügen. Die Pfade müsst ihr jedoch anpassen! Bei mir liegt das log in /media/usb/dyndnsAutoLogin/.



    Somit wird bei Ausführung des Scripts eine Meldung auf dem TV ausgegeben.
    Siehe Screenshot. Diese muss per OK bestätigt werden. Das log muss leider noch kontrolliert werden.
    Ich habe versucht das log auslesen zu lassen und in der Box darzustellen. Habe das leider nicht hinbekommen.
    Versucht habe ich das so:


    Code
    file="/tmp/dyndnsLogin.log" 
    wget -O- "http://localhost/web/message?text=$file&type=$TYPE&timeout=$TIMEOUT"


    Nur funzt das so nicht. Das wird nicht ausgelesen. Es wird nur der Pfad ausgegeben.


    Code
    /tmp/dyndnsLogin.log


    Viell. schafft es einer das anzupassen, oder das in eine Messagebox in die py zu packen, so dass das log ausgelesen und auf dem TV ausgegeben wird. Hab mich daran versucht. Habe es aber leider nicht hinbekommen, da ich auch nicht so der Scripter bin. Wem die einfache Ausgabe reicht, der kann das obige Script verwenden.


    Gruss Ufoo

  • in python kannst du dafür relativ einfach "Screens.Console" importieren und damit das Log anzeigen, aber dazu müsstest du eben ein echtes plugin im e2 initieren, damit du eine session hast.

  • Aha. Könntest du das bitte, wenn es nicht zu viel Arbeit macht in ein Beispiel coden?
    Hab sowas ähnliches schon versucht und auch das schöne pdf, welches im Forum zu finden ist (da wird die msgbox erklärt) gelesen. Hab auch versucht in anderen Scripten abzugucken, komme jedoch nicht weiter. Ich weis, du hast mir schon versucht zu helfen etwas weiter vorn. Bin jedoch nicht weitergekommen. Geht denn die Messagbox nur in py zu machen oder auch per sh ? Weil mit dem Shellscript bekomme ich die Datei nicht ausgelesen. Hab mich fast totgegoogelt auf der Suche nach Infos.


    Der TS wäre bestimmt auch dankbar dafür und würde es bestimmt in sein Script mit einbauen.


    Danke im Voraus.


    Gruss Ufoo

    2x VU+ Solo², Samsung SPF-105P + SPF-107H, DM 800S PVR HD + TS-219P II TurboNAS + Trekstor USB Stick 4Gb
    Dbox 2 SAT + 2 Gb SD

    Einmal editiert, zuletzt von Ufoo ()

  • Zitat

    Nur funzt das so nicht. Das wird nicht ausgelesen. Es wird nur der Pfad ausgegeben.


    Teste mal


    Code
    file=$(cat /tmp/dyndnsLogin.log)

    -->
    openwrt + minicom + screen = 24/7 Bootlog

    Einmal editiert, zuletzt von Schnello ()

  • Danke.


    Aber im Telnet bekomme ich nur einen 400 Fehler zurück.


    Code
    wget: server returned error: HTTP/1.1 400 Bad Request


    So etwas hatte ich schon mal. Ich glaube der server kommt mit in so einem Fall nicht mit Leerzeichen zurecht. Auch ein %20 funzt nicht. Also so:


    Code
    file=$(cat%20/tmp/dyndnsLogin.log)


    Weitere Ideen?


    Gruss Ufoo

    2x VU+ Solo², Samsung SPF-105P + SPF-107H, DM 800S PVR HD + TS-219P II TurboNAS + Trekstor USB Stick 4Gb
    Dbox 2 SAT + 2 Gb SD


  • Ich habe es selber noch nicht gebraucht, aber es sieht recht simple aus.


    Wenn du einen screen hast (also ein Plugin initialisiert hast):

    Python
    from Screens.Console import Console
    def showLog(self):
    	self.session.open(Console, title = "Console", cmdlist = ["cat /tmp/dyndnsLogin.log"], finishedCallback = None, closeOnSuccess = False)


    Wer ist TS?
    Aber wenn du die Erlaubnis hast das hier gepostete Plugin zu überarbeiten, hast du ja schon einen Rumpf. Dann müsstest du eben nur noch in der main Methode eine Screen-Klasse öffnen und die oben angeführte Methode aufrufen.


  • Das Problem liegt dann aber nicht am Befehl sondern am Inhalt vom Log. Wenn du da drin Leerzeichen hast dann gibts probleme.


    Wenn du das weiterhin auf Script Ebene lösen willst poste mal bitte was das script auswirft mit folgenden Zeilen:


    Code
    file=$(cat /tmp/dyndnsLogin.log)
    echo $file

    -->
    openwrt + minicom + screen = 24/7 Bootlog

  • @ joe128


    Danke werde ich mal heute Abend testen :winking_face:
    Viell. könntest du das Script bitte etwas zusammenfassen :winking_face: ?


    TS = Threadstarter
    Obwohl ich eigentlich cepheus meine. Er hats ja gemacht.
    Und ja, er hat nix dagegen das ich die Messagebox mache. Hatte das mal weiter vorn mit ihm besprochen.


    @ Schnello


    Als Antwort kommt im Telnet:


    Code
    2013/12/13 17:53:04 - INFO - We have succesfully logged into DynDNS. 2013/12/24 09:53:44 - INFO - We have succesfully logged into DynDNS. 2013/12/27 17:53:04 - INFO - We have succesfully logged into DynDNS.


    Im log sind derzeit 3 Zeilen drin. Hab mal irgendwo im Board gelesen das es Probleme bei mehr als 5 Zeilen geben soll. Das könnte man mit tail ausgeben lassen, also zb. nur die letzten Zeilen.
    Das jetzt als Ausgabe auf dem TV? Wie?
    Werde das später weitertesten. Hab iMo zu tun. Trotzdem vielen Dank für die Hilfe.
    Schaue etwas später nochmal rein :winking_face:


    Gruss Ufoo

    2x VU+ Solo², Samsung SPF-105P + SPF-107H, DM 800S PVR HD + TS-219P II TurboNAS + Trekstor USB Stick 4Gb
    Dbox 2 SAT + 2 Gb SD

    Einmal editiert, zuletzt von Ufoo ()

  • Zitat

    Das jetzt als Ausgabe auf dem TV? Wie


    In dem das du mit "tail" "grep" "cut" "sed (leerzeichen ersetzen)" die Ausgabe konform machst mit dem was das Webif verarbeiten kann.


    Oder so zb:

    Code
    if [ $(cat log | tail -n 1 | grep -c "succesfully") = 1 ];
    then
           wget -O- "http://localhost/web/message?text=DYNDNS%20login%20succesfully&type=$TYPE&timeout=$TIMEOUT"
    else
            wget -O- "http://localhost/web/message?text=DYNDNS%20login%20FAILED&type=$TYPE&timeout=$TIMEOUT"
    fi

    -->
    openwrt + minicom + screen = 24/7 Bootlog

    7 Mal editiert, zuletzt von Schnello ()

  • Prima.


    Das war es :hurra: Vielen Dank :winking_face:
    Hier nun das Script. Eines von beiden (deutsch oder englisch) einfach unten in die dyndnsAutoLogin_script.sh einfügen. Wenn der Pfad zum log anders ist einfach anpassen. Bei mir ist der Pfad in /media/usb/dyndnsAutoLogin/.




    @ cepheus
    Es funktioniert.
    Wenn du magst "baue" es mit in dein Script ein ;).


    Im Anhang 2 Screens.
    Viel Spass damit und vielen dank für die Hilfe :winking_face:


    Gruss Ufoo

  • also bei mir läuft es auch.
    Aktuelles enigma2-plugin-extensions-dyndnsautologin_0.1-r6_all.ipk installiert, in /usr/script/dyndnsAutoLogin_script.sh mit login Daten versehen und cronjob mit cronjob -e angelegt:

    Code
    0 7 * * 6 /usr/script/dyndnsAutoLogin_script.sh


    Damit läuft es nun einmal in der Woche am Samstag morgen. Getestet und für spitze befunden :hurra:


    Allerdings habe ich im Syslog folgende Info gesehen. Muss man da an irgendeiner Stelle seinen Mailaccount eintragen oder ist das noch irgendein betatest in deinem aktuellen Release?

    Code
    CRON: (root) MAIL (mailed 40 bytes of output but got status 0x0001)


    PS: Zusammen mit dem DynDNS Plugin aus dem Feed geht jetzt alles was ich will :winking_face:

    ######################################
    the good old times will never come back - but we salute them
    ######################################

  • Zitat

    Originally posted by lavemetoo
    Allerdings habe ich im Syslog folgende Info gesehen. Muss man da an irgendeiner Stelle seinen Mailaccount eintragen oder ist das noch irgendein betatest in deinem aktuellen Release?

    Code
    CRON: (root) MAIL (mailed 40 bytes of output but got status 0x0001)


    Wenn ein Cron-Job irgendwelche Ausgaben macht (auf stdout oder stderr), dann stellt sich die Frage, wo die hin sollen. Klassisch löst Cron das, indem er die gesamten Ausgaben in eine Mail an den User verpackt, unter dessen UID der Job läuft. Nun gibt es auf der Dream aber weder einen MTA noch ein lokales Mail-Delivery-System. Am besten sorgt man daher in dem Script das unter Cron läuft dafür, dass keine Ausgaben passieren. Wenn man das nicht verhindern kann, dann vielleicht sowas wie

    Code
    exec >/tmp/myjob.log 2>&1


    in eine der ersten Zeilen des Scripts setzen. Man kann dann immer noch bei Bedarf in das Log gucken, es wird aber beim nächsten Lauf überschrieben. Lässt sich natürlich alles auf den eigenen Bedarf anpassen. Und sowas (Umleitung auf festen Namen unter /tmp) bitte niemals auf einem Multiuser-System machen, es schreit nach einer Symlink-Attacke. Unter DOS, ähm, dem run-everything-as-root-System der Dream ist das Wurst.


    HTH,
    Andre.

    • Offizieller Beitrag

    Danke an alle beteiligte!


    Im erste Post ist die Version 0.2-r0 vorhanden :)


    Ein message box wird jetzt eingeblendet bei erfolgreiche einlogen oder bei fehler.
    Dieses würde direkt im python teil eingesetzt, dank emanuel! So braucht es nicht extra im script eingefügt werden.


    E2 Box: TWO ~ ONE ~ DM8000 ~ DM7080 ~ DM7020HD~ DM9x0 ~ DM820 ~ DM800(SE(v2))~ DM52x ~ DM500HD(v2)~ DM7025(+)
    E1 Box: DM7020 ~ DM7000 ~ DM 5620 ~ DM600 ~ DM500+ ~ DM500 ~ TRIAX 272-S
    Image: OE2.5/OE2.6 Unst./GP4.2 ~ OE2.5 Unst./GP3.3 ~ OE2.2 Unst./GP3.3 ~ OE2.0 Exp./GP3.2 ~ iCVS/GP3 ~ Gemini 4.70
    Sonstiges: Logitech K600 ~ DM Tastatur ~ Box: DM100 ~ Router: Fritz!Box 7590 ~ Wlan Stick: Dream Multimedia ~ Server: ALIX.3D3 ~ BananaPI
    Satelliten: WaveFrontier T90
    23,5°E | 19,2°E | 16.0°E | 13,0°E | 10,0°E | 9,0°E | 7,0°E | 4,9°E | 3.0°E | 1.9°E | 0,8°W | 4,0°W | 5,0°W | 8,0°W | 12,5°W | 15,0°W | 22,0°W | 24,5°W | 30.0°W


    Hilfe gesucht ? schau mal ins Gemini Project WIKI, auch unsere Video Tutorial sind für den Einstieg sehr empfehlenswert

  • Ist beim update der letzten bestehenden Version irgendetwas zu beachten (Deinstallation)?
    Oder kann man das neue Paket einfach "drüber" installieren?

    ######################################
    the good old times will never come back - but we salute them
    ######################################

    • Offizieller Beitrag

    Einfach drüber installieren.
    Das vorhandene /usr/script/dyndnsAutoLogin_script.sh sollte nicht gelöscht oder überschrieben werden. Eine Sicherung zur machen, ist aber nie verkehrt.


    Das Script Erweiterung von Ufoo ist nicht nötig.


    E2 Box: TWO ~ ONE ~ DM8000 ~ DM7080 ~ DM7020HD~ DM9x0 ~ DM820 ~ DM800(SE(v2))~ DM52x ~ DM500HD(v2)~ DM7025(+)
    E1 Box: DM7020 ~ DM7000 ~ DM 5620 ~ DM600 ~ DM500+ ~ DM500 ~ TRIAX 272-S
    Image: OE2.5/OE2.6 Unst./GP4.2 ~ OE2.5 Unst./GP3.3 ~ OE2.2 Unst./GP3.3 ~ OE2.0 Exp./GP3.2 ~ iCVS/GP3 ~ Gemini 4.70
    Sonstiges: Logitech K600 ~ DM Tastatur ~ Box: DM100 ~ Router: Fritz!Box 7590 ~ Wlan Stick: Dream Multimedia ~ Server: ALIX.3D3 ~ BananaPI
    Satelliten: WaveFrontier T90
    23,5°E | 19,2°E | 16.0°E | 13,0°E | 10,0°E | 9,0°E | 7,0°E | 4,9°E | 3.0°E | 1.9°E | 0,8°W | 4,0°W | 5,0°W | 8,0°W | 12,5°W | 15,0°W | 22,0°W | 24,5°W | 30.0°W


    Hilfe gesucht ? schau mal ins Gemini Project WIKI, auch unsere Video Tutorial sind für den Einstieg sehr empfehlenswert

  • Hallo,


    zwei wochen hat das Plugin funktioniert, nach dem letzten Update ist der Logfile
    dyndnsAutoLogin in /var/volatile/log/ immer 0 Byte.

    • Offizieller Beitrag

    Standardmäßig wird im log alle 14 tage geschrieben. Testen kannst du durch Aufruf über Telnet mit:

    Zitat

    /usr/script/dyndnsAutoLogin_script.sh


    Damit wird es ein 30 sekundiges Erfolg oder ein fixe Error Meldung am Bildschirm und am Display* angezeigt. (*Wenn vorhanden)
    In /var/log entsteht weiterhin das dyndnsAutoLogin.log.


    E2 Box: TWO ~ ONE ~ DM8000 ~ DM7080 ~ DM7020HD~ DM9x0 ~ DM820 ~ DM800(SE(v2))~ DM52x ~ DM500HD(v2)~ DM7025(+)
    E1 Box: DM7020 ~ DM7000 ~ DM 5620 ~ DM600 ~ DM500+ ~ DM500 ~ TRIAX 272-S
    Image: OE2.5/OE2.6 Unst./GP4.2 ~ OE2.5 Unst./GP3.3 ~ OE2.2 Unst./GP3.3 ~ OE2.0 Exp./GP3.2 ~ iCVS/GP3 ~ Gemini 4.70
    Sonstiges: Logitech K600 ~ DM Tastatur ~ Box: DM100 ~ Router: Fritz!Box 7590 ~ Wlan Stick: Dream Multimedia ~ Server: ALIX.3D3 ~ BananaPI
    Satelliten: WaveFrontier T90
    23,5°E | 19,2°E | 16.0°E | 13,0°E | 10,0°E | 9,0°E | 7,0°E | 4,9°E | 3.0°E | 1.9°E | 0,8°W | 4,0°W | 5,0°W | 8,0°W | 12,5°W | 15,0°W | 22,0°W | 24,5°W | 30.0°W


    Hilfe gesucht ? schau mal ins Gemini Project WIKI, auch unsere Video Tutorial sind für den Einstieg sehr empfehlenswert

  • Hallo,


    in Telnet wird erfolgreiches einloggen gemeldet,
    aber irgendeine Meldung auf Bildschirm, Display oder in der Logdatei erfolgt nicht.

  • Wenn Ihr ne Fritzbox habt, nehmt doch einfach MyFritz statt DynDns.
    Ist kostenlos und supereinfach. :winking_face:
    Dann könnt Ihr euch das ganze Theater sparen.


    Gruß
    Newdreamie