SmartHomeNG - Mail


Das Mail-Plugin ist insofern recht nützlich, da man die verschiedensten Informationen (Alarm-, Statusmeldungen etc.) je nach Bedarf versenden kann. Hier nun 2 Beispiel für die Verwendung des Mail-Plugins.
Im ersten Beispiel lassen wir uns täglich den Tagesstromverbrauch und die damit verbundenen Kosten schicken (s.Verbrauchsdatenermittlung). Im zweiten Beispiel soll eine Aktion ausgelöst werden, sofern eine Mail mit einem ganz bestimmten Betreff eingeht. Los gehts.

1. Mail über täglichen Energieverbrauch

Grundlage für beide Besipiele ist die Einrichtung des Mail-Plugins.
Wie wir mittlerweile wissen, erfolgt die Eibindung von Plugins in der
/usr/smarthome/etc/plugin.yaml

Laut Doku von SmartHomeNG schreiben wir z.B. für einen gmail.com-Account folgendes in die plugin.yaml Die Daten für den Mailaccount sind natürlich entsprechend anzupassen.

Als Werte lassen wir uns nun täglich um 23:59 Uhr die Werte aus dem Beispiel der Energieverbrauchsermittlung zusenden.
Hiezu brauchen wir jetzt 2 Dinge. Erstens ein Item, was den Mailversand täglich zur gleichen Zeit auslöst und zweitens eine Logik, in der die Ausgabe der Mail definiert ist. Das Erste erreichen wir einfach mit crontab. Hier wird jetzt das Item "energieverbrauchsmail.senden" täglich um 23:59 auf TRUE oder 1 gesetzt.

Als nächstes folgt die Logik für die Mail und dessen Inhalt. Hierzu erstellen wir eine Logikdatei mit dem Namen verbrauchsmail.py in
/usr/smarthome/logics/
Der Inhalt dieser verbrauchsmail.py sieht beispielsweise wie folgt aus
textverbrauch = 'gestriger Stromverbrauch: {} kWh'.format(sh.EZaehler.variable3.Tagesverbrauch())
textkosten = 'gestriger Kosten: {} Euro'.format(sh.Kosten.Gestern())
text = textverbrauch + "\n" + textkosten + "\n"
sh.mail('mailadresse@empfaenger.de', 'gestriger Stromverbrauch', text.encode('utf-8'))

Als letztes müssen wir nur noch die Logik mit dem Item zur Auslösung der Mail "verbinden". Dies erfolgt, indem wir in der
/usr/smarthome/etc/logic.yaml
folgenden Eintrag hinzufügen. In der Betreff-Zeile der eingehenden Mail steht dann: gestriger Stromverbrauch
Der Inhalt der empfangenen Mail sieht hierbei dann beispielsweise wie folgt aus:
gestriger Stromverbrauch: 11.0 kWh
gestriger Kosten: 2.97 Euro

2. Aktion auslösen bei Maileingang

In diesem Beispiel wollen wir beim Eingang einer Mail mit einem ganz bestimmten Betreff (Betreff = TagesEnergieverbrauchszahlen) die obige Logik auslösen, welche uns dann die aktuellen Verbrauchsdaten aus dem obigen Beispiel zurück mailt. Hier ist auch als erstes die Pluginfunktion einzubinden. Laut Doku von SmartHomeNG schreiben wir z.B. für einen gmail.com-Account folgendes in die plugin.yaml Die Daten für den Mailaccount sind natürlich entsprechend anzupassen.
Hinweis: Wer eine anderes Abfrageintervall beim Imap-Server benötig als den Standart, kann das # vor cycle entfernen und einen eigenen Wert vorgeben (Wert in Sekunden).

Nun brauchen wir wieder eine Logik, die dafür sorgt, dass beim Eingang der entsprechenden Mail unser oben genanntes Item "energieverbrauchsmail.senden" die Logik zum Mailversand triggert. Hierzu erstellen wir eine neue Datei mit dem Namen inmail.py in
/usr/smarthome/logics/
Der Inhalt dieser inmail.py sieht beispielsweise wie folgt aus
Als letztes müssen wir nur noch die logic.yaml um folgenden Eintrag erweitern Da wir im oberen ersten Beispiel den Mailversand für die Tagesverbrauchsdaten bereits eingerichtet haben, erfolgt nun der Versand der Mail bei entsprechenden Maileingang mit der vorgegebenen Betreff-Zeile.



Weitere Infos zum Mail-Plugin gibt es in der Dokumentation zu SmartHomeNG