FHEM Forum

FHEM => Automatisierung => Thema gestartet von: FhemPiUser am 14 Dezember 2015, 21:24:17

Titel: commands per email an fhem?
Beitrag 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.
Titel: Antw:commands per email an fhem?
Beitrag von: betateilchen am 14 Dezember 2015, 22:08:23
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.
Titel: Antw:commands per email an fhem?
Beitrag von: reibuehl am 15 Dezember 2015, 12:10:51
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 :)
Titel: Antw:commands per email an fhem?
Beitrag von: viegener am 16 Dezember 2015, 17:21:54
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).



Titel: Antw:commands per email an fhem?
Beitrag von: FhemPiUser am 17 Dezember 2015, 22:18:45
super, vielen Dank, es funktioniert. genial...

hatte in der commandref nach email, aber nicht mail gesucht...
Titel: Antw:commands per email an fhem?
Beitrag von: Sommerfeld am 19 Dezember 2015, 09:45:18
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?
Titel: Antw:commands per email an fhem?
Beitrag von: betateilchen am 19 Dezember 2015, 12:56:34
Wie heißt denn das Device, das Du mit mailcheck angelegt hast?
Titel: Antw:commands per email an fhem?
Beitrag von: Sommerfeld am 19 Dezember 2015, 13:14:06
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
Titel: Antw:commands per email an fhem?
Beitrag von: Sommerfeld am 19 Dezember 2015, 13:21:20
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
Titel: Antw:commands per email an fhem?
Beitrag von: betateilchen am 19 Dezember 2015, 13:35:12
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 }

Titel: Antw:commands per email an fhem?
Beitrag von: betateilchen am 19 Dezember 2015, 13:42:51
Du solltest Dir für Deinen Mailaccount ein neues Passwort anlegen.
Titel: Antw:commands per email an fhem?
Beitrag von: Sommerfeld am 19 Dezember 2015, 14:30:27
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 }
Titel: Antw:commands per email an fhem?
Beitrag von: betateilchen am 19 Dezember 2015, 15:13:33
Könnte eventuell an dem Leerzeichen nach dem = liegen...

Das notify wird jedenfalls ausgelöst.
Titel: Antw:commands per email an fhem?
Beitrag von: Sommerfeld am 19 Dezember 2015, 15:24:54
Ohne Leerzeichen
Es bleibt weiterhin dunkel
Titel: Antw:commands per email an fhem?
Beitrag von: FhemPiUser am 19 Dezember 2015, 17:19:12
...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...
Titel: Antw:commands per email an fhem?
Beitrag von: justme1968 am 19 Dezember 2015, 17:24:34
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
Titel: Antw:commands per email an fhem?
Beitrag von: betateilchen am 19 Dezember 2015, 17:25:18
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 :)
Titel: Antw:commands per email an fhem?
Beitrag von: FhemPiUser am 19 Dezember 2015, 20:32:22
ahh, ja, danke. sorry, mein fehler, wer lesen kann ist im vorteil....
Titel: Antw:commands per email an fhem?
Beitrag von: FhemPiUser am 29 Dezember 2015, 14:33:46
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...