Neue Module MSG, MSGFile, MSGMail

Begonnen von Guest, 04 Juli 2012, 16:25:28

Vorheriges Thema - Nächstes Thema

Guest

Originally posted by: <email address deleted>

Hallo,

da sich niemand erbarmt hat auf meine Iniative (Neues, zentrales Device um
Meldungen zu verschicken<https://groups.google.com/forum/?fromgroups#%21searchin/fhem-users/Ruebezahl/fhem-users/zjWTtG0SwAk/pHYNEIosUA8J>)
mal tätig zu werden ;-), musste ich wohl selber in die Tasten greifen.

Herausgekommen sind 3 neue Module.
Konzept:
Ein zentrales Device verschickt alle Meldungen. Das hat den Vorteil, das
FHEM nicht nur durch Messaging übermässig belastet wird und ich eine
zentrale Stelle habe, die zum Verschicken benötigt wird.
Dieses Device ist sozusagen wie ein Backend tätig. Auf der Frontendseite
sind dann entsprechend des jeweiligen Messagedienstes Devices vorhanden,
die die jeweiligen zu sendenden Daten verwalten/bearbeiten/???. Derzeit ist
das ein Modul, um Daten für das Filesystem zu halten und ein Modul, um
Mails via SSL-Provider zu verschicken.
Ich kann mir vorstellen, das Interessierte z.B. ein Frontend für Twitter
schreiben oder eines für Facebook (sofern man FB wirklich braucht) oder
eines zum Verschicken von SMS oder oder oder....

Die einzelnen Devices

*Device MSG
*Um überhaupt Daten zu schreiben oder verschicken, muss mindestens ein MSG
Device vorhanden sein.
Ein MSG Device kennt beim set nur die Parameter send oder write, welche
gleichwertig sind, aber beim Schreiben in eine Datei
klingt write halt besser. Bei einem set xxx send erwartet MSG immer das
Device, dessen Daten es senden/schreiben soll.
Dieses Device muss dementsprechend vorhanden und definiert sein.

*Device MSGFile*
Dient zum Schreiben von Daten in eine Datei, beim definieren kann/sollte
der Dateiname angegeben werden.
FHEM muss die Rechte im Dateisystem besitzen, um an diesen Ort auch eine
Datei anlegen/beschreiben zu können.
Rechtevergabe findet im Betriebssystem statt!
MSGFile kann eine Datei neu anlegen und dann in diese Datei Daten schreiben
oder kann Daten an eine vorhandene
Datei anfügen. Dazu dient das Attribute *filemode* welches die Werte *new*(für Neu) und
*append* (für anfügen) haben kann.
Standard ist hier *new*. Vorhandene Dateien werden dadurch gelöscht, daher
bitte vor Gebrauch prüfen, ob das so gewünscht ist!
Um am Zeilenende jeweils ein Zeilenvorschub einzufügen, kann das Attribut *
CR* verwendet werden. attr myFile CR 1 fügt hinter jeder
Zeile ein Zeilenvorschub ein.
Beispiel:
define myMsg MSG
define myFile MSGFile /data/fhem/status.txt  
attr myFile filemode append    *(Daten werden angefügt)*
attr myFile CR 1                    *(Zeilenvorschub einschalten)*
set myFile add Dies ist Zeile 1 des Devices myFile
set myFile add Dies ist Zeile 2 des Devices myFile
set myFile add Dies ist Zeile 3 des Devices myFile  *(drei Zeile in myFile
einfügen, dadurch werden die Daten noch NICHT auf die Festplatte
geschrieben!)*
set myMsg write myFile     *(nun werden die Daten auf die Festplatte
geschrieben, wenn fhem die Rechte dazu besitzt, der Puffer in myFile wird
dadurch nicht gelöscht)*
set myFile clear    *(der Puffer in myFile wird gelöscht)*

*Device MSGMail
*all das oben unter MSGFile genannte gilt auch für MSGMail mit den
spezifischen Änderungen, die EMail nun mal verlangt. MSGMail ist derzeit
für Mailprovider verfügbar,
die als Zugang SSL unterstützen. Googlemail, GMX, 1und1 und Yahoo
unterstützen SSL, die notwendigen Zugangsdaten sind leicht im Web
auffindbar.
MSGMail benötigt auch Module von CPAN, weil das SMTP-Protokoll nicht
trivial zu benutzen ist, habe ich mich dazu entschieden. Von CPAN werden
MAIL::LITE und NET:SMTP:SSL benötigt
um Mails zu verschicken.
Und natürlich brauche ich die Zugangsdaten zu meinem Mailprovider wie
Userid und Passwort. Userid und Passwort müssen in einer Datei hinterlegt
werden, auf die fhem Zugriff hat. Bei Linuxsystemen bietet sich das
Configverzeichnis von FHEM dazu an. Mittels chown sollten die
Zugriffsrechte auf diese Datei eingeschränkt werden, weil die Daten im
Klartext dort liegen. Die Datei enthält in Zeile 1 die Userid und in Zeile
2 das Passwort, mehr nicht. Den smtphostnamen kann man ohne Probleme im Web
finden, für Googlemail z.B. ist es smtp.googlemail.com oder für GMX ist es
mail.gmx.net.
Dann brauchen wir noch unsere EMailadresse und einen Empfänger und wir
können ein MSGMaildevice definieren. Und natürlich Zugang zum Internet,
sonst wird es etwas schwierig :-)
Beispiel:
define myMsg MSG
define myMail MSGMail from@gmx.de to@googlemail.com smtp.googlemail.com
/etc/mailauthfile
attr myMail subject Dies ist ein Testmail    *(Betreff des Mails)*
attr myMail CR 1                    *(Zeilenvorschub einschalten)*
set myMaile add Dies ist Zeile 1 des Mails
set myMail add Dies ist Zeile 2 des Mails
set myMail add Dies ist Zeile 3 des Mails  *(drei Zeile in myMail einfügen,
dadurch werden die Daten noch NICHT abgeschickt!)*
set myMsg send myMail     *(nun werden die Daten verschickt, das kann etwas
dauern, weil der Server ja mit dem smtphost Verbindung aufnehmen muss, der
Puffer in myMail wird dadurch nicht gelöscht)*
set myMail clear    *(der Puffer in myFile wird gelöscht)*

bei MSGMail gibt es noch weitere Attribute, die sind in der commandref.html
näher erläutert.

Ich habe alle drei Devices bei mir über einen längeren Zeitraum laufen
lassen, auch per   at  mir z.B. alle 5 Minuten eine Mail schicken lassen
und habe bisher unter meinem Linux Ubuntu 11 keine Probleme gehabt. Mehr
kann ich leider selber nicht testen, daher bin ich bei Interessierten auf
Mithilfe angewiesen und werden, so weit möglich Hilfestellung geben.
Die Devices und Beschreibung sind im SVN und können via updatefhem geladen
werden, die einzelnen Modulname lauten 75_MSG.pm, 76_MSGFile.pm und
76_MSGMail.pm

Viele Grüße,

R.



**


--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Tobias

                                                   

Die Idee mit SMS finde ich zb gut....
Ich nutze da bereits schon Clickatell.com

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

borsti67

                                                 

> Die Idee mit SMS finde ich zb gut....
> Ich nutze da bereits schon Clickatell.com

mit FHEM? Hast Du da mal eine Code-Auszug? Klingt interessant...

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
cu/2
Borsti
---
FHEM 5.8 auf Synology DS211j (bis 11/17) | FHEM 6.0 auf Raspi Zero W (bis 11/20) | FHEM 6.2 als VM in Synology DS1815+ (ab 11/20)

Tobias

                                                   

nein, nicht mit fhem... aber der Aufruf ist ein ganz normaler HTTP
aufruf....

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter