gibt es jemanden, der fhem befehle per email umgesetzt hat?
ich will fhem nicht aus dem internet erreichbar machen, würde aber gerne die heizung von unterwegs an- und ausschaltem können. idee wäre, dass ich fhem eine email schicke und fhem die inbox eines email accounts synchronisiert und fhem bei einem vorkonfiguriertem email inhalt und absender bestimmte steuerungsaufgaben übernimmt.
Zitat von: FhemPiUser am 14 Dezember 2015, 21:24:17
gibt es jemanden, der fhem befehle per email umgesetzt hat?
Ja. Mit dem Modul mailcheck und einem entsprechenden notify geht das völlig problemlos.
define n_mailcheck notify mailcheck.*Subject:.* { n_mailcheck $EVENT }
In der 99_myUtils.pm:
sub n_mailcheck ($) {
my ($e) = @_;
my (undef, $v) = split(/:/,$e);
my ($pin,$cmd) = split(/=/,$v);
fhem $cmd if($pin == 1234);
return;
}
Damit kann ich eine email an den benutzten Mailaccount schicken in dessen Betreff z.B. folgendes steht:
1234=set Licht_Wohnzimmer off
und fhem wird das Licht im Wohnzimmer ausschalten, sobald die Mail eingeht.
Die Zahlenfolge 1234 ist eine einfach "PIN-Abfrage" die natürlich mit der entsprechenden Zahlenfolge in der Ausführungsfunktion n_mailcheck() übereinstimmen muss.
Schau Dir auch das mailcheck Attribut "accept_from" an. Damit kann man die Mails per GPG Signatur schützen. Die PIN Methode ist, speziell wenn man nicht immer eine ende-zu-Ende Verschlüsselung bei der Überragung sicherstellen kann, doch recht unsicher - auch weil eine statische PIN verwendet wird. Mit etwas Perl Code ließe sich der Code aber sicher auch recht einfach auf eine TAN Liste umstricken :)
Zitat von: FhemPiUser am 14 Dezember 2015, 21:24:17
gibt es jemanden, der fhem befehle per email umgesetzt hat?
ich will fhem nicht aus dem internet erreichbar machen, würde aber gerne die heizung von unterwegs an- und ausschaltem können. idee wäre, dass ich fhem eine email schicke und fhem die inbox eines email accounts synchronisiert und fhem bei einem vorkonfiguriertem email inhalt und absender bestimmte steuerungsaufgaben übernimmt.
Wenn es nicht speziell email sein muss, dann kann man das auch über Instantmessaging erreichen z.B. über Telegram (siehe hier http://forum.fhem.de/index.php/topic,38328.0.html (http://forum.fhem.de/index.php/topic,38328.0.html)) mit dem telegramBot-Modul. Eigentlich war das sogar genau der Antrieb das Telegram-Modul zu entwickeln, damit man ohne Loch in der Firewall Kommandos an FHEM schicken kann und Ergebnisse/Benachrichtigungen zurückbekommt.
Vorteil: Keine Verzögerungen, Sehr flexibel und einfach bedienbar, Funktioniert ohne zusätzliche Software
Ähnlich geht das auch mit Whatsapp (yowsup-Modul).
super, vielen Dank, es funktioniert. genial...
hatte in der commandref nach email, aber nicht mail gesucht...
Hallo Betateilchen,
ich habe versucht, Deinen Vorschlag bei mir umzusetzen.
Die Mail kommt im System an, aber es wird nichts geschaltet.
Im Log sind auch für das Schalten keine Einträge vorhanden.
Meine Eintragung in 99_myUtils.pm
sub
n_mailcheck ($)
{
my ($e) = @_;
my (undef, $v) = split(/:/,$e);
my ($pin,$cmd) = split(/=/,$v);
fhem $cmd if($pin == 1234);
return;
}
Definition
define n_mailcheck notify mailcheck.*Subject:.* { n_mailcheck $EVENT }
Log Auszug
2015.12.19 09:17:40 4: from: "xxxxxx" <xxxxxxxx@gmx.de>
2015.12.19 09:17:40 4: subject: 1234=set FL_OG_Deckenlicht_Wechselschalter toggle
Warum kann ich das Licht nicht schalten?
Wie heißt denn das Device, das Du mit mailcheck angelegt hast?
Hallo Betateilchen,
Internals:
BTN 88
DEF 05af 88
IODev CUL_1
NAME FL_OG_Deckenlicht_Wechselschalter
NR 132
STATE toggle
STILLDONETIME 0
TYPE FS20
XMIT 05af
Code:
1 05af 88
Readings:
2015-12-19 09:45:49 state toggle
Attributes:
IODev CUL_1
fp_Obergeschoss 484,469,2,FL_OG_Deckenlicht_Wechselschalter
icon light_pendant_light
model fs20ws1
room Flur_OG
webCmd toggle
Nachtrag:
Internals:
CONNECTS 1
DEF [***]
FD 5
Folder INBOX
HAS_GPG 0
HAS_IDLE 1
HAS_MIME 0
Host secureimap.t-online.de
INTERVAL 60
LAST_CONNECT 2015-12-19 09:07:51
LAST_LOGIN 2015-12-19 09:07:51
LAST_POLL 2015-12-19 13:19:53
NAME FhemMail
NOTIFYDEV global
NR 390
NTFY_ORDER 50-FhemMail
STATE Logged in
TYPE mailcheck
tag 795
Readings:
2015-12-19 12:54:14 From xxxxxxxxxx@gmx.de
2015-12-19 12:54:14 Subject 1234= set WZ_Deckenlicht_Wechselschalter toggle
Helper:
password [***]
user [***]
Attributes:
interval 60
room System
verbose 5
Wenn Dein device "FhemMail" heißt, musst Du natürlich auch diesen Namen in Deinem notify verwenden.
define n_mailcheck notify FhemMail.*Subject:.* { n_mailcheck $EVENT }
Du solltest Dir für Deinen Mailaccount ein neues Passwort anlegen.
Hallo Betateilchen,
Licht wird nicht geschaltet.
Log Eintrag:
2015.12.19 14:16:51 4: from: "Armin Titze" <xxxxxxx@xxxxx.de>
2015.12.19 14:16:51 4: subject: 1234= set WZ_Deckenlicht_Wechselschalter toggle
2015.12.19 14:16:51 5: Triggering n_mailcheck
2015.12.19 14:16:51 4: n_mailcheck exec { n_mailcheck $EVENT }
Könnte eventuell an dem Leerzeichen nach dem = liegen...
Das notify wird jedenfalls ausgelöst.
Ohne Leerzeichen
Es bleibt weiterhin dunkel
...ich frage mich, warum es bei mir kein attr "accept_from" gibt, obwohl es in der commandref steht und ich ein Update all gemacht habe...
weil das attribut nur dann vorhanden ist wenn die MIME::Parser und Mail::GnuPG module installiert sind. das attribut erwartet gpg key ids.
so steht es auch in der commandref.
gruss
andre
Weil Du eines (oder sogar beide) der benötigten perl Pakete MIME::Parser und Mail::GnuPG auf Deinem System nicht installiert hast?
edit: ok da war schon jemand schneller :)
ahh, ja, danke. sorry, mein fehler, wer lesen kann ist im vorteil....
hat schon einmal jemand mailcheck und accept_from mit verschlüsselten GMX-Emails probiert? Bei mir kommt immer die Fehlermeldung "message not signed", obwohl die Email verschlüsselt und signiert ist...