PushService 0.3.0 OE2.0

  • Hi betonme,


    das Netzwerk ist eigentlich sofort da, also per FTP komme ich sofort drauf nach dem Boot.


    Danke für den Hinweis, ich werde mal den Start etwas verzögern. Melde mich dann.


    Gruß Mike

  • Hi betonme,


    OK, durch etwas nachdenken und eine Menge Tests konnte ich das Problem letztendlich analysieren und „beheben“. :)


    Der PushService lief nicht mehr seitdem ich das FritzCall Plugin testweise deinstalliert hatte (ich habe auf meiner Fritz!Box die neue Firmware drauf und dort wurde die Authentisierung geändert, woraufhin das FritCall Plugin erst nachgezogen werden musste).


    Aus welchen Gründen auch immer braucht mein LAN-Anschluss an der Fritz!Box immer zwei Tritte, bis die Dream vernünftig kommunizieren kann. Kann man schön sehen, wenn das FritzCall Plugin mit der Fritz!Box anfängt sich einzuloggen. Als erstes Resultat kommt immer


    Code
    Verbindung zur Fritz!Box fehlgeschlagen
    (User timeout caused connection failure.)
    neuer Versuch...


    Beim zweiten Mal klappt es dann. Diese Geschichte wird durch das FritzCall Plugin geregelt, da es ein paar Retries macht. Danach ist alles OK. Wenn das Plugin nicht installiert ist, pustet es also nicht die LAN Verbindung frei.


    Dein Plugin scheint es nur einmal zu probieren (KEIN Vorwurf hier!), daher läuft es nach dem Deep Standby nicht.


    Ich muss mal schauen, ob ich da auf der Fritz!Box irgendwas mit dem Eco/Powermode regeln kann.


    Ich hoffe ich konnte die Sache verständlich machen und für andere ein mögliche Problemlösung aufzeigen.


    Also letztendlich alles nicht Dein Problem, nochmal vielen Dank für Deine Unterstützung mit der möglichen Verzögerung beim Startup.


    Gruß Mike

  • Quote

    Original von Mike.R
    Aus welchen Gründen auch immer braucht mein LAN-Anschluss an der Fritz!Box immer zwei Tritte, bis die Dream vernünftig kommunizieren kann.
    Gruß Mike


    Hi Mike,


    hast Du mal das Fritz-PlugIn deaktiviert und dann geschaut wie die IP-Konfiguration der Box nach dem Booten aussieht?
    Da sie keine IP hat musst Du Putty vermutlich per USB/COM anstöpseln und wenn eine Anmeldung an der Box möglich ist, IFCONFIG
    Ich würde dann erwarten, dass Du keine IP-Adresse auf dem ETH0 hast.


    Außerdem würde ich erwarten, dass Dein Boot-Log irgendwelche Einträge zu fehlgeschlagener IP-Configuration hat.


    Grüße
    Frallo

    verwende aktuell OE 2.0 Exp.

    Edited once, last by Frallo ().

  • Hallo.


    Ich bin gerade dabei einen cronjob einzurichten der alle Aufnahmen im Ordner X in den Ordner Y verschiebt wenn diese Dateien älter als 7 Tage sind bzw nach 8 Tagen dann automatisch löscht.


    Da ich aber gerne vor dem Löschvorgang nochmal ne Benachrichtigung bekommen würde was genau gelöscht wird... ist mir in den Sinn gekommen das könnte ich mit PushService machen.


    Da mir jetzt aber das Wissen fehlt einen eigenen Service zu schreiben würde ich nun einfach den CrashLog Service „missbrauchen“.


    Quote

    CrashLog:
    Angelehnt an die DMM Funktion. Ihr seid außer Haus und es tritt ein GS auf, die Dreambox startet automatisch neu und sendet euch eine Benachrichtigung mit dem CrashLog im Anhang.
    -Delete crashlog(s) after successful transmission = False (On False PS will rename them to .pushed)



    Die Idee dahinter:
    Per script wird die Ausgabe von „ls –l /data/media/Y“ in eine Datei geschrieben...


    Meine Frage nun: Auf was reagiert nun dieser Service? Auf alle Dateien mit der Endung .log? Oder wird der Service nur gestartet wenn auch wirklich ein crash war?


    Grüße

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

    Edited once, last by Schnello ().

  • Hi,


    du kannst Dir die Sourcen hier anschauen:
    https://github.com/betonme/e2o…rc/Controller/CrashLog.py


    Code
    CRASHLOG_DIR = '/media/hdd'
    ...
    for file in os.listdir( CRASHLOG_DIR ):
    if file.startswith("enigma2_crash_") and file.endswith(".log"):


    Du kannst den Controller aber auch einfach kopieren, die Datei und den Class Namen anpassen, muss aber gleich geschrieben sein.


    Die eine Code Stelle anpassen - Bsp:

    Code
    if file.startswith("enigma2_cleanup_") and file.endswith(".log"):


    Und noch den eMail Titel und Beschreibung kurz anpassen.


    Gruß

  • Vielen Dank


    Funktioniert...


    Ich hab noch etwas mit dem Code gespielt und bin auf die Idee gekommen nicht das Log aufzulisten sondern gleich die *.ts files. Das würde das öffnen des txt Files ersparen.
    Das funktioniert auch aber zwei Fragen finde ich keine Antwort.




    Code
    for file in os.listdir( CRASHLOG_DIR ):
    if file.endswith(".ts"):
    crashlog = os.path.join( CRASHLOG_DIR, file )
    self.crashlogs.append(crashlog)


    Welcher Ausdruck kommt in die Zeile um die Auflistung der files (crashlog) in den Body der Mail zu bekommen?


    Ich habe keine Stelle identifizieren können wo der Anhang der Mail hinzugefügt wird. In dem Fall wären es ja dann die *.ts Files (etwas groß :) ). Kann man das Anhängen auch „unterdrücken“?


    Danke nochmal für deine Inputs.


    Grüße

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

    Edited once, last by Schnello ().

  • Das wird über die Callback gemacht:

    Code
    callback( SUBJECT, BODY, self.crashlogs )

    Titel als String, Textinhalt als String, Liste mit Pfadangaben für die Anhänge


    Da du vermutlich keine Anhänge brauchst sondern, eine Text list direkt in der Mail willst, kannst du die Anhänge einfach weglassen:

    Code
    callback( SUBJECT, BODY )

    Und nur noch die 2 Strings übergeben.


    Jetzt noch die Textliste:

    Code
    movielist = []
    for file in os.listdir( "Pfad zu den Filmen" ):
    if file.startswith("was du willst") and file.endswith(".ts"):
    movielist.append (file )
    body = "Meine Filme: \n" + movielist.join("\n")
    callback( SUBJECT, body)

    Poste dein Ergebnis doch bitte, dann können andere das auch verwenden

  • Guten Morgen,


    ich habe gestern das File noch angepasst und (ich hoffe es war nicht zuviel) den überflüssigen Code gelöscht. Wenn du vielleicht noch einen schnellen Blick rauf werfen könntest.


    movielist hab ich mit self. ergänzt weil ich am Anfang nicht wuste ob vielleicht hier der Fehler kommt.
    Pfad hab ich mit einer config (kopiert aus einem anderen Controller) versehen.


    Bekomme aber nun immer folgende Fehlermeldung (Anhang)
    Sobald ich folgende Zeile aus dem Script nehme läuft es durch:

    Code
    body = "Meine Filme: \n" + self.movielist.join("\n")

    bzw. wenn ich body definiere mit einer fixen Variable wird auch die Mail verschickt.


    Das gesamte Script:
    http://pastebin.com/WF30KCAF


    Quote

    Poste dein Ergebnis doch bitte, dann können andere das auch verwenden


    Mach ich natürlich gerne sobald alles an der richtigen Stelle ist.


    Grüße

    Files

    • screenshot.png

      (26.52 kB, downloaded 319 times, last: )

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

  • Hallo zusammen!


    Ich habe das Problem, dass ich die Mails für "Records start/finished" meistens mehrfach erhalte. Ist dieser Bug bekannt?
    Im Übrigen erhalte ich auch öfter, wenn eine Aufnahme startet die zugehörige Record finished Mail, obwohldie Aufnahme ja gerade erst gestartet ist.
    mfg


    Jojo

  • Ich hatte bisher (verwende die Aufnahme-Startsequenz seit ca. fünf Monaten mit dem jeweils aktuellen OE 2.0 Merlin Image) zweimal, dass beim Starten der Aufnahme mehrfach Mails generiert wurden. Dies geschah jeweils bei Aufnahmen mit VPS (--> VPSPlugin). Bei normalen Aufnahmen war dies noch nie der Fall.

  • Mhhh, bei mir handelt es sich um Aufnahmen mit dem Autotimer Plugin. Diese werden aber ja "ganz normal" in die Timerliste eingetragen.

  • OK, hatte ich falsch ausgedrückt. Ich hatte in den letzten fünf Monaten keine doppelten E-Mails, weder mit manuellen Timereinträgen, noch bei Autotimer-Einträgen. Timer werden bei mir zu 99% per Autotimer gesetzt. Also da war nix, lediglich bei zwei einzelnen Timereinträgen, wo VPS aktiv war kamen einmal drei und einmal gar zehn(!) E-Mails, dass die Aufnahme startet :rolleyes: War jetzt aber nicht wirklich dramatisch und ich sehe das eher als "einmal ist keinmal". Ich mache so ca. 60 Aufnahmen pro Woche und der PushService ist stabil, läuft alles so wie es soll.


    Wenn das Problem reprofähig ist, dann solltest Du einen Enigma2 Logfile anfertigen, dann könnte betonme mal reinschauen, vielleicht sieht man was.

  • Wirklich reproduzieren lässt es sich glaube ich nicht. Aber gerade eben beispielsweise habe ich beim beginn einer Aufnahme sowohl die mal für record Start, als auch die für record finished bekommen. Die Aufnahme läuft aber korrekt weiter...

  • Mal kurz zusammen fassen:


    Die Record Start scheint richtig zu kommen?
    (Außer VPS funkt dazwischen und ändert den Timer)


    Verwendest du zufällig auch IBTS, da sollten die Falschmeldungen dann auch sichtbar sein, da die gleichen Events verwendet werden.


    Tausche die angehängte Datei bei Dir mal aus, sichere die alte aber mal vorsichtshalber.
    In der Version ist das timer finished Handling restriktiver.

  • Danke dafür! Ich habe die Datei soeben ersetzt und werde mich melden, sobald ich Ergebnisse habe!
    mfg


    Jojo

  • Also bisher scheint es zu klappen, ich habe keine "Finished-Mail" zu früh bekommen :)
    mfg


    Jojo