Türklingelbenachrichtigung per E-Mail

Begonnen von sebinger18, 11 Januar 2014, 18:20:13

Vorheriges Thema - Nächstes Thema

sebinger18

Hallo Zusammen,

ich bin gerade an dem Projekt Türklingelbenachrichtigung per E-Mail. Aus dem Buch Hausautomation mit Raspberry Pi. Dazu nutze ich folgende Komponenten:

- Raspberry Pi Modell B
- coc Modull Ver 1.1
- FS20 Klingelsignal Erkennung
- Whezzy Debian Linux
- FS 20 Funksteckdosen
- Fhem 5.5

Alles ist konfiguriert und eingerichtet. Due Funktsteckdosen lassen sich ein und ausschalten per Fhem und es wird auch alles richtig angezeigt. Das Klingelsignal Modul ist richtig angeschlossn und es sendet Signale zum Raspberry Pi ist ebenfalls im Fhem auch eingetragen und benannt. Das Fhem2Mail Script ist richtig erstellt und verschickt auch Mails wenn ich es von der Kommandozeile aufrufe. Folgenden Abschnitt habe ich wie in der Anleitung in die fhem.cfg eingefügt.

--------------------------------------------------------------------------
# -----------------------------------------------------------------------
# FS20 Klingel notify
define KlingelEnable dummy
# -----------------------------------------------------------------------
define Klingel_Notify notify au_KlingelTaste {\
if ( Value ("KlingelEnable") eq "1" ){\
fhem("set KlingelEnable 0");;\
fhem("delete KlingelTimer");;\
rpiPhoto("@");;\
fhem("define KlingelTimer at +00:00:40 set KlingelEnable 1");;\
`/usr/local/bin/fhem2mail MAIL DOORBELL "Haustuere"`;;\
Log 3, "Klingel-Status %, sende Nachricht via E-Mail/SMS";;\
fhem("set au_KlingelTaste off");;\
fhem("set au_KlingelTaste1 off");;\
}\
}
# -----------------------------------------------------------------------
--------------------------------------------------------------------------

Wie gesagt wenn ich das /usr/local/bin/fhem2mail MAIL DOORBELL "Haustuere" an der Konsole ausführen lasse wird eine Mail verschickt. Somit scheint das i.o. zu sein. Das Klingel Modul habe ich wie folgt in der fhem.cfg eingerichtet:


-------------------------------------------------------------------------
define Klingel FS20 5e94 00
attr Klingel room FS20
define FileLog_Klingel FileLog ./log/Klingel-%Y.log Klingel
attr FileLog_Klingel logtype text
attr FileLog_Klingel room FS20
-------------------------------------------------------------------------

Im Logfile steht folgende Fehlermeldung wenn ich die Klingel betätige:


------------------------------------------------------------------------
2014.01.11 14:17:55 3: FS20 set Klingel on
2014.01.11 14:17:55 3: Klingel_Notify return value: Unknown command {\
if, try help.
Unknown command fhem("delete, try help.
Unknown command rpiPhoto("Klingel"), try help.
Unknown command fhem("define, try help.
Unknown command `/opt/fhem/fhem2mail, try help.
Unknown command Log, try help.
Unknown command fhem("set, try help.
2014.01.11 14:17:56 3: FS20 set Klingel off
2014.01.11 14:17:56 3: Klingel_Notify return value: Unknown command {\
if, try help.
Unknown command fhem("delete, try help.
Unknown command rpiPhoto("Klingel"), try help.
Unknown command fhem("define, try help.
Unknown command `/opt/fhem/fhem2mail, try help.
Unknown command Log, try help.
Unknown command fhem("set, try help.
2014.01.11 14:18:26 3: Klingel_Notify return value: Unknown command {\
if, try help.
Unknown command fhem("delete, try help.
Unknown command rpiPhoto("Klingel"), try help.
Unknown command fhem("define, try help.
Unknown command `/opt/fhem/fhem2mail, try help.
Unknown command Log, try help.
Unknown command fhem("set, try help.
2014.01.11 14:19:14 3: Klingel_Notify return value: Unknown command {\
if, try help.
Unknown command fhem("delete, try help.
Unknown command rpiPhoto("Klingel"), try help.
Unknown command fhem("define, try help.
Unknown command `/opt/fhem/fhem2mail, try help.
Unknown command Log, try help.
Unknown command fhem("set, try help.
2014.01.11 14:19:14 3: Klingel_Notify return value: Unknown command {\
if, try help.
Unknown command fhem("delete, try help.
Unknown command rpiPhoto("Klingel"), try help.
Unknown command fhem("define, try help.
Unknown command `/opt/fhem/fhem2mail, try help.
Unknown command Log, try help.
Unknown command fhem("set, try help.
--------------------------------------------------------------------

Ich vermute mal das sich evtl. mit der Syntax zu fhem 5.5 geändert hat. Wer könnte mir ggf. ein Tip geben?

Vielen Dank.

grüße

sebinger






sebinger18

Hat sich erledigt, es funktioniert nun, hatte nur \ vergessen.

Aber eine andere Frage mit welcher Syntax bewirke ich das sich beim Klingeln meine FS20 Steckdose einschaltet?

Vielen Dank.

strauch

kommt drauf an wie die Klingel konfiguriert ist. Bei der Standardeinstellung müsste folgendes gehen:

define Klingel_Licht_Notify notify au_KlingelTaste:on set xx_Licht on

Ein % statt on würde ich nicht verwenden, sonst wirds ja direkt wieder ausgeschaltet, falls das aber gewünscht ist einfach

define Klingel_Licht_Notify notify au_KlingelTaste set xx_Licht %
FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

Maxeddy

Habe es so:

define Esklingelt notify Taster:on set Klingel on
define BesuchMail notify Taster:on {\
debianMail(`name`@@`domain`,`Betreff`,`Text`);;\
}
define Klingeln notify Klingel:on sleep 5;;set Taster off
define KlingelAus notify Taster:off set Klingel off

unter 99_myUtil.pm  sub DebianMail
DebianMail = sendMail auf Raspberry

Taster = FS20 Funk Türtaster
Klingel = z.B. IT Steckdose, die den Trafo und die Klingel ansteuert

gelöst.

Tiefflieger

#4
Hallo

Ich habe fast das selbe Problem wie sebinger18.......
nur bei mir wird es nicht abgearbeitet !!!

# -----------------------------------------------------------------------
# FS20 Klingel notify
define KlingelEnable dummy
# -----------------------------------------------------------------------
define Klingel_Notify notify au_KlingelTaste {\
if ( Value ("KlingelEnable") eq "1" ){\
fhem("set KlingelEnable 0");;\
fhem("delete KlingelTimer");;\
rpiPhoto("@");;\
fhem("define KlingelTimer at +00:00:40 set KlingelEnable 1");;\
`/usr/local/bin/fhem2mail MAIL DOORBELL "Haustuere"`;;\
Log 3, "Klingel-Status %, sende Nachricht via E-Mail/SMS";;\
fhem("set au_KlingelTaste off");;\
fhem("set au_KlingelTaste1 off");;\
}\
}
# -----------------------------------------------------------------------

Fhem info:
  Release  : 5.5
  Branch   : DEVELOPMENT
  OS       : linux
  Arch     : arm-linux-gnueabihf-thread-multi-64int
  Perl     : v5.14.2
  uniqueID : 5c0622f6f22be1f5ed525da7dd317d66

Meine Klingel ist als Klingel definiert und klingelt auch beim betätigen des Klingelknopfes.
Meine FS20KSE ist auch als au_KlingelTaste und au_KlingelTaste1 definiert.
andnothify schickt mir auch nachrichten ans handy, bei manueller eingabe von {rpiPhoto ("@")} wird auch ein Foto erstellt.
Wenn ich /usr/local/bin/fhem2mail MAIL DOORBELL "Haustuere" in putty ausführe bekomme ich auch eine email mit Foto an
meine email adresse....... der den automatische ablauf bekomme ich nicht hin !? Jemand eine Idee ?

MfG
Dennis
FHEM aktuellste Version Raspbarry Pi 512Mb, 1-Wire mit LinkUSBi, FS20 AS4, FS20 ST4, 10x DS18B20, CUL 3.4

Tiefflieger

Niemand ein Tipp für mich ? Bin absoluter Anfänger.....
FHEM aktuellste Version Raspbarry Pi 512Mb, 1-Wire mit LinkUSBi, FS20 AS4, FS20 ST4, 10x DS18B20, CUL 3.4

strauch

#6
Zitat von: Tiefflieger am 27 Januar 2014, 13:39:31
fhem("define KlingelTimer at +00:00:40 set KlingelEnable 1");;\
`/usr/local/bin/fhem2mail MAIL DOORBELL "Haustuere"`;;\
Log 3, "Klingel-Status %, sende Nachricht via E-Mail/SMS";;\


Also das sieht für mich einfach komisch aus, zum einen sind da Apostrophs drin ('), damit denke ich kann weder perl noch fhem etwas anfangen, entweder Zollzeichen " oder Minutenzeichen ' .

Und ich denke in Zeile 2 fehlen die geschweiften Klammern ich denke das müsste so aussehen:

fhem("define KlingelTimer at +00:00:40 set KlingelEnable 1");;\
{/usr/local/bin/fhem2mail MAIL DOORBELL "Haustuere"};;\
Log 3, "Klingel-Status %, sende Nachricht via E-Mail/SMS";;\


Wobei bei mir e-Mails so aussehen (die Funktion eMail liegt dazu in der 99_myUtils)
{eMail('mail@@domain.de','Haustuere','@ %')};;\

Hast du denn irgendwo in fhem eine Funktio rpifoto definiert?
FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

Tiefflieger

Habe alles so eingearbeitet füe den Mailversand :

#!/bin/bash
# -----------------------------------------------------------------------
# Smart-Home mit Raspberry Pi-Projekte
# E.F.Engelhardt, Franzis Verlag, 2013
# -----------------------------------------------------------------------
# Funktion fhem2mail
# – Teile von M. Fischer, www.fischer-net.de
#
BASENAME="$(basename $0)"
DST=$1
TYP=$2
ARG=$3
FILENAME=$(date +"%m-%d-%y|||%H%M%S")
MAILFILE="/var/tmp/mailpic.jpg"
# -----------------------------------------------------------------------
SMTP="smtp.gmx.net:25"
FRM=" MAIL.ADRESSE.DE@gmx.de"
PW="geheimesPasswort"
# -----------------------------------------------------------------------
case $DST in
SMS)
RCP="RUFNUMMER@IHR-SMS-GATEWAY.DE"
;;
MAIL)
RCP="ERSTEMAIL@ADRESSE.DE, ZWEITEMAIL@ADRESSE.DE"
;;
PUSH)
RCP="IPADRESSE1, IPADRESSE2, IPADRESSE3"
;;
*)
;;
esac
case $TYP in
BATTERY)
SUBJ="JHW@HOME: WECHSELN: ${ARG}"
TXT="Batterie schwach: ${ARG}"
;;
FIRE)
SUBJ="JHW@HOME: RAUCHMELDER-ALARM ${ARG}"
TXT="Feuer-Alarm wurde ausgeloest!"
;;
GAS)
SUBJ="JHW@HOME: FEUER AUS! – GASALARM ${ARG}"
TXT="Gas-Alarmwurde ausgeloest!"
;;
DOORBELL)
SUBJ="JHW@HOME: ES HAT EBEN GEKLINGELT: ${ARG}"
TXT="Tuerklingel an ${ARG} wurde ausgeloest!"
;;
LIGHT)
SUBJ="JHW@HOME: LICHT -> ${ARG}"
TXT="Beleuchtung im Raum ${ARG} wurde eingeschaltet!"
;;
MOTION)
SUBJ="JHW@HOME: BEWEGUNG -> ${ARG}"
TXT="Bewegungsmelder im Raum ${ARG} wurde ausgeloest!"
;;
WATER)
SUBJ="JHW@HOME: WASSERALARM: ${ARG}"
TXT="Wasseralarm wurde ausgeloest!"
;;
*)
SUBJ="FHEM: ${ARG}"
TXT="${ARG}"
;;
esac
if [[ ${TYP}=="DOORBELL" ]];then
if [ "$(ls /dev/video0)" ]; then
TXT="${TXT} \nund Videodevice an Raspberry Pi angeschlossen"
cp ${MAILFILE} /var/tmp/${FILENAME}.jpg
else
TXT="${TXT} \nund keinVideodevice an Raspberry Pi angeschlossen"
fi
fi
if [ -f ${MAILFILE} ]; then
/usr/bin/sendemail -f ${FRM} -s ${SMTP} -xu ${FRM} -xp ${PW} -t
${RCP} -o tls=no -u ${SUBJ} -m ${TXT} -q -a ${MAILFILE} -o message-contenttype=text;
rm ${MAILFILE}
else
# ohne kamerabild-anhang
/usr/bin/sendemail -f ${FRM} -s ${SMTP} -xu ${FRM} -xp ${PW} -t
${RCP} -o tls=no -u ${SUBJ} -m ${TXT} -q -omessage-content-type=text
fi
exit 0
# -----------------------------------------------------------------------


und so fürs Foto machen :

# -----------------------------------------------------------------------
# Smart-Home mit Raspberry Pi-Projekte
# E.F.Engelhardt, Franzis Verlag, 2013
# -----------------------------------------------------------------------
# Datei 99_klingelrpi.pm
# Verzeichnis /usr/share/fhem/FHEM
package main;
use strict;
use warnings;
use POSIX;
sub
klingelrpi_Initialize($$)
{
my ($hash) = @_;
}
sub
rpiPhoto($)
{
my $text = "Raspi-Webcam gestartet";
my $ret = "";
system("/bin/echo \"$text\" > /var/tmp/foto_nachricht.txt");
system("/usr/bin/fswebcam -r 320x240 -i 0 -d /dev/video0 -v
/var/tmp/mailpic.jpg");
Log 3, "rpiPhoto (fswebcam): $ret";
}
1;
# -----------------------------------------------------------------------


Wenn ich es in Fhem mit dem Befehl :

{rpiPhoto ("@")}

Teste, ...... geht das auch !!!

und zum Senden, wenn es Klingelt :

# -----------------------------------------------------------------------
# FS20 Klingel notify
define KlingelEnable dummy
# -----------------------------------------------------------------------
define Klingel_Notify notify au_KlingelTaste {\
if ( Value ("KlingelEnable") eq "1" ){\
fhem("set KlingelEnable 0");;\
fhem("delete KlingelTimer");;\
rpiPhoto("@");;\
fhem("define KlingelTimer at +00:00:40 set KlingelEnable 1");;\
{/usr/local/bin/fhem2mail MAIL DOORBELL "Haustuere"};;\
Log 3, "Klingel-Status %, sende Nachricht via E-Mail/SMS";;\
fhem("set au_KlingelTaste off");;\
fhem("set au_KlingelTaste1 off");;\
}\
}
# -----------------------------------------------------------------------


um dieses zu testen den befehl :

trigger au_KlingelTaste on

und Nichts Passiert........

eigentlich sollte :

Zunächst wird die Dummy-Variable KlingelEnabledefiniert. Wird die Klingeltaste
gedrückt (au_KlingelTaste), setzt das Skript die Dummy-Variable und löscht einen
eventuell vorhandenen Timer. Per Aufruf des Perl-Skripts rpiPhoto("@")wird umgehend die angeschlossene Kamera ausgelöst, was einerseits in einem Log-Eintrag vermerkt wird und andererseits die Aufnahme im Verzeichnis /var/tmp/mailpic.jpg
sichert.
Um das Prellen zu verhindern, falls jemand Sturm klingelt, reicht der Versand einer
E-Mail. Der KlingelTimerwurde auf 40Sekunden gesetzt, das eigentliche Mailversandskript startet mit dem Aufruf /usr/local/bin/fhem2mail MAIL DOORBELL "Haustuere".
Zu guter Letzt wird der Log-Eintrag in FHEM geschrieben, und die beiden Flags der
Klingelsignalerkennung werden auf den Wert offgesetzt. Das Skript für den Mailversand prüft seinerseits, ob sich im Verzeichnis /var/tmp/ die
Datei mailpic.jpgbefindet. Ist dies der Fall, wird das Kommando /usr/bin/sendemail
mit dem Anhangparameter gesetzt. Falls nicht, erfolgt die Benachrichtigung eben ohne
angehängtes Bild.

FHEM aktuellste Version Raspbarry Pi 512Mb, 1-Wire mit LinkUSBi, FS20 AS4, FS20 ST4, 10x DS18B20, CUL 3.4

strauch

Was mir noch nicht ganz klar ist, was willst du mit KlingelEanble und dem Klingeltimer bezwecken?

Hast du den FS20KSE so eingestellt, das er nur ein "on" sendet" oder auch ein "off"?

Was mir noch fehlt bei dem notify fehlt der auslöser:
define Klingel_Notify notify au_KlingelTaste

Teste mal
define Klingel_Notify notify au_KlingelTaste:on
FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

Tiefflieger

#9
Jetzt bekomme ich folgendes :

2014.02.10 19:40:05 3: FS20 set Klingel on
Use of /c modifier is meaningless without /g at (eval 3060) line 7.
String found where operator expected at (eval 3060) line 7, near "DOORBELL "Haustuere""
(Do you need to predeclare DOORBELL?)
2014.02.10 19:40:05 3: Klingel_Notify return value: syntax error at (eval 3060) line 2, near "if ["
Regexp modifiers "/l" and "/a" are mutually exclusive at (eval 3060) line 7, at end of line
Regexp modifier "/l" may not appear twice at (eval 3060) line 7, at end of line
syntax error at (eval 3060) line 7, near "DOORBELL "Haustuere""
syntax error at (eval 3060) line 12, near "}
}"


Fa versteh ich ja nur noch Bahnhof  :o
FHEM aktuellste Version Raspbarry Pi 512Mb, 1-Wire mit LinkUSBi, FS20 AS4, FS20 ST4, 10x DS18B20, CUL 3.4

strauch

Immerhin löst er nun aus. Ich denke der Rest sind Syntaxfehler. Aber ein paar meiner Fragen sind noch offen :-) wozu der Timer und KlingeEnable?

Gesendet von meinem Tablet

FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

Tiefflieger

Ist ja gedacht, wenn jemand 2 oder 3 mal den Klingelknopf drückt nicht gleich 2-3 emails kommen....... oder kann man das anders lösen ?

FHEM aktuellste Version Raspbarry Pi 512Mb, 1-Wire mit LinkUSBi, FS20 AS4, FS20 ST4, 10x DS18B20, CUL 3.4

strauch

achso ok, mhh fällt mir spontan keine andere Lösung ein.

Ich denke der Fehler liegt vorallem in dieser Zeile:
{/usr/local/bin/fhem2mail MAIL DOORBELL "Haustuere"};;\

da musste mal schauen wie es richtig heißen muss. ich vermute mal
{/usr/local/bin/fhem2mail MAIL DOORBELL "Haustuere"} direkt oben in die Befehlszeile eingetippt wird ebenfalls eine Fehlermeldung verursachen.

Hast du das von der Seite von Martin Fischer?
FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

Tiefflieger

# Funktion fhem2mail
# – Teile von M. Fischer, www.fischer-net.de 

Der Rest von :  E F Engelhardt aus dem Buch : Hausautomation mit Raspberry
Ich werde noch mal nachforschen...... falls jemand eine Lösung hat, bitte bitte mitteilen !!!
Danke schon mal für eure mithilfe.

MfG
Dennis
FHEM aktuellste Version Raspbarry Pi 512Mb, 1-Wire mit LinkUSBi, FS20 AS4, FS20 ST4, 10x DS18B20, CUL 3.4

festa

Hallo, ich bin auch gerade am Testen an einer Email Benachrichtigung doch leider kappt es hinten und vorne nicht.
Diese 2 Zeilen habe ich in Fhem eingebunden:

define klingeltaster IT F00F0FFF0F FF F0
define klingelpush notify klingeltaster:off set {\FB_mail('adresseadresseadresse@api.pushover.net','Wohnung','Es ist jemand an der Tuer!')}


doch es wird keine email versendet. Bekomme dagegen in der Fritzbox dieses Ereignis angezeigt:

E-Mail-Zustellung gescheitert. SMTP-Server meldet: "501 Syntax error in parameters or arguments".

Wenn ich dagegen nur den email code {\FB_mail('adresseadresseadresse@api.pushover.net','Wohnung','Es ist jemand an der Tuer!')} in Fhem eingebe kommt die email an.
Hänge hier mittlerweile schon über 3 Std daran und hab schon einiges ausprobiert doch leider bleibt es immer das gleiche.

Fhem 5.5 auf einer Fritzbox 7390. Installiert habe ich das Image von Fhem. Also nicht die AVM Labor version.

Wäre nett wenn sich jemand findet der mir dabei ne kleine Hilfe geben könnte.

MFG
Manuel