Montag, 27. Februar 2012

Dreambox PushService

PushService (kurz PS) hält euch immer auf dem aktuellen Stand was auf eurer Dreambox passiert.

Dazu wird PS in konfigurierbaren, regelmäßigen Abständen oder zu bestimmten Events ausgeführt, prüft Eure Dreambox nach Euren Vorgaben und benachrichtigt euch per eMail über Vorgänge/Unstimmigkeiten.

Hier ein Beispiel für eine EMail-Benachrichtigung:
Subject: DM8000 PushService: Free space warning
Free disk space limit has been reached:
Path:  /media/hdd/movie
Limit: 100 GB
Left:  88 GB
Provided by Dreambox Plugin PushService 0.1
C 2012 by betonme @ IHAD

Tastenbelegung im Setup:
  • Grün: Speichern und schließen
  • Rot/Exit: Beenden ohne zu speichern
  • Blau: Neues Plugin hinzufügen
  • Gelb: Plugin entfernen
  • Text: Aktuelle nicht gespeicherte eMail Konfiguration testen
  • Info: Testlauf ohne eine eMail zu versenden

Die Grundkonfiguration von PS wird in der E2 Config abgespeichert.
Alle Plugin-Einstellungen werden in einer XML-Datei abgelegt (Default = /etc/enigma2/pushservice.xml).

PS Grundkonfiguration:
  • Enable PushService = True
  • Dreambox name (Mail Subject) = Dreambox
  • Config file = /etc/enigma2/pushservice.xml
  • Start time (HH:MM) = 1:00 Uhr
  • Period in hours (0=disabled) = 24
  • Run on boot = True
  • SMTP Server = smtp.server.com
  • SMTP Port = 587
  • SMTP SSL = True
  • User name
  • Password
  • Mail from = [EMAIL]abc@provider.com[/EMAIL]
  • Mail to or leave empty

Aktuelle Plugins mit Beispielen und Optionen:
  • FreeSpace:
Ihr gebt einen Pfad vor und den gewünschten freien Speicher, liegt der ermittelte freie Speicherplatz darunter, bekommt Ihr eine eMail.
Kann mehrfach hinzugefügt werden, damit verschiedene Speicher geprüft werden können.
-Allow HDD wake up = False
-Where to check free space = /media/hdd/movie
-Free space limit in GB = 100GB
  • DeactivatedTimers:
Der AutoTimer trifft auf einen Timerkonflikt und kann eine Sendung nicht aufnehmen und erstellt deswegen einen deaktivierten Timer (muss aktiviert werden). PS würde euch in dem Fall direkt eine eMail mit dem betreffenden Timer zuschicken.
- Remove deactivated timer(s) after successful transmission = False (On False PS will tag them as DeactivatedTimerPushed)
  • 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)
  • RecordSummary:
Eine Liste aller getätigten Aufnahmen wird euch zugeschickt.
-Remove finished timer(s) only after = False  (On False PS will tag them as FinishedTimerPushed)
  • RecordNotification:
Ihr bekommt eine sofortige Benachrichtigung, wenn eine Aufnahme startet oder beendet wird.
-Send notification on record start = False
-Send notification on record end = True
  • IPKGUpdateNotification:
Wenn Updates bereitstehen bekommt Ihr eine Liste aller Plugins mit der aktuell installierter Version und der Version des Updates.
-Start update check if not done yet = False

Weitere Plugin-Module können sehr einfach zur Laufzeit ohne Neustart hinzugefügt werden.
Wenn das Setup geöffnet wird, werden die Einstellungen und Module neu eingelesen.
Jedes Modul kann weitere Einstellungen bereitstellen, die dann automatisch in der Config eingebunden werden.
(Erklärung für Entwickler folgt)

Roadmap:
Konfiguration / Optionen übersetzen
Öffentlicher Beta-Test
Schwerkraft GIT -> Feed
Lokalisierung ist vorbereitet, somit kann jeder dazu beisteuern.

Installation:
Zip entpacken und nach /usr/lib/enigma2/python/Plugins/Extensions/PushService kopieren

Dependancies:
  • python-twisted-core
  • python-twisted-mail
  • python-twisted-names
  • python-twisted-protocols
  • python-twisted-web  
  • python-pyopenssl
Anleitung zum Erstellen eines Plugin-Moduls:
Es gibt ein Paar Rahmenbedingungen für die Module:
  • Die py-Datei und der class-Namen müssen übereinstimmen
  • Die class muss eine subclass der PluginBase sein
Alles weitere ist optional und hängt von Eurem Modul ab:
  • init: Sollte die Optionen behinhalten (self.setOptions ...) Das Speichern/Laden/Setup-Eintrag wird alles von der PluginBase erledigt.
  • run: Führt eure Prüfungen durch und gebt Subject, Body(optional), Attachments(optional) zurück. Wenn ihr None, False oder "" zurückgebt, wird keine eMail versendet.
  • success: Callback bei erfolgreichem Versand
  • error: Callback wenn ein Fehler beim Versenden auftritt
  • begin: Wird aufgerufen, wenn PS gestartet wird
  • end: Wird aufgerufen, wenn PS gestoppt wird
Die Bedingungen werden Beim Laden der Module auch geprüft, Fehler werden auf der Konsole ausgegeben.

Link

Keine Kommentare:

Kommentar veröffentlichen