Möchte hier mal meine Lösung vorstellen nach der ich sehr lange gesucht habe und die der ein oder andere vielleicht gebrauchen kann. Weiterhin musste ich feststellen, dass die Unterstützung hier doch sehr nachgelassen hat. Manche die es wissen, wollen ihr Wissen bewusst nicht preisgeben.
Aber ich muss das ja nicht so handhaben.
Folgendes habe ich installiert:
- ccu2 mit Zusatzsoftware: email, cuxd, xml-api
- ssh ist auf der ccu2 aktiv
- Mit winscp greife ich auf die ccu2 zu
- ccu.io und alle verfügbare addon; insbesondere dashui und scriptgui
- Tasterschnittstelle 4-fach (HM-PBI-4-Fm) an unserer Klingel, Taster 1 wird aktiviert wenn jemand klingelt
- Foscam HD Camera 9803
Aufgabe:
Wenn geklingelt wird soll ein Bild der Foscam HD Camera per Mail an mein Handy gesendet werden. Zeitgleich soll bei dashui die View gewechselt werden und das Bild der Camera angezeigt werden.
1. snapshot erzeugen und Datei speichern
Hier habe ich sehr lange gesucht. Die meisten Beispiele funktionierten bei den neuen HD cameras nicht.
Letztendlich funktioniert es mit wget.
Folgender Aufruf klappt (dazu hatte ich mir eine bat.datei geschrieben um dies auszuprobieren).
c:\programme\gnuwin32\bin\wget -q -O c:\bild.jpg "http://192.xxx.xxx.xx:88//cgi-bin/CGIPr ... d&pwd=abcd"
2. Bild per Mail versenden
Hierzu habe ich folgenden Link gefunden:
http://homestatus.de/tcl-script-snapsho ... versenden/
Den habe ich dann angepasst auf meine Bedürfnisse:
- host, mailadresse, etc. ändern
- url von 1. entsprechend eintragen
3. Programm in ccu schreiben Beschreibung:
Wenn bei der Tasterschnittstelle kurz oder lang getätigt wird, dann schalte die Systemvariable Klingel (hatte ich vorher natürlich angelegt) auf ein und führe das Script aus.
In dem Script steht nur die eine Zeile aus dem Link unter 2.
4. Per Scriptgui Programm schreiben um View zu wechseln
Folgendes Programm: Das Programm reagiert auf sie Systemvariable Klingel. Wenn die Variable ist ein, dann wird die View "Haustür" aktiviert.
Nach 30 Sek. wird wieder die View "Titel" aktiviert.
Fazit:
Wenn geklingelt wird, wird auf der ccu ein Bild erzeugt das dann per Mail an mein Handy versendet wird. Weiterhin wird in Dashui die View gewechselt.
Klappt wunderbar.
Wenn jemand Probleme oder Fragen hat, dann Rückinfo.
Auch das handhabe ich nicht so wie andere. Ihr bekommt sicher eine Antwort.
mfg
bahnuhr
Ergänzung 23.04.2016:
Anbei mal die endgültigen tcl-Scripte die ich mit Hilfe von alchy zum Laufen gebracht habe.
Ich stelle mal 3 Scripte ein:
sendCamShot.tcl - für 1 Kamera Bild an Mail
Code: Alles auswählen
package require base64
set SNAPSHOT_URL "http://192.xxx.xxx.66:88//cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=abc&pwd=abc"
set EMAIL_SUBJECT "Es hat an der Haustuer geklingelt !"
set EMAIL_BODY "\nsiehe Bild\n\nmfg\nHM Zentrale"
set SEND_TO "abc@test.de"
set SEND_FROM "def@test.de"
set SMTP_HOST "smtp.1und1.de"
set SMTP_USER "def@test.de"
set SMTP_PASSWD "yyy"
set SMTP_DOMAIN "smtp.1und1.de"
# DEFINE EMAIL TEMPLATE
set tmpl "To: $SEND_TO
From: $SEND_FROM
Subject: $EMAIL_SUBJECT
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=\"=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk\"
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk
Content-Type: text/plain; charset=\"iso-8859-1\"
Content-Transfer-Encoding: 8bit
$EMAIL_BODY
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk
Content-Type: application/octet-stream; name=\"photo.jpg\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"photo.jpg\"
{IMGDATA}
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk--"
# DOWNLOAD THE SNAPSHOT
exec wget -q -O /tmp/snapshot.jpg $SNAPSHOT_URL
# READ SNAPSHOT INTO VARIABLE & BASE64 ENCODE
set fp [open "/tmp/snapshot.jpg" r]
fconfigure $fp -translation binary
set imgdata [read $fp]
set encodeddata [::base64::encode $imgdata]
close $fp
# REPLACE IMG DATA WITH REAL IMAGE DATA
regsub -all "{IMGDATA}" $tmpl $encodeddata tmpl
# WRITE READY EMAIL TO A TMP FILE
set fp [open "/tmp/ready.eml" w]
puts $fp $tmpl
close $fp
set config "
defaults
tls on
tls_certcheck off
logfile /var/log/email_sendcamshot.log
account provider
host $SMTP_HOST
from $SEND_FROM
domain $SMTP_DOMAIN
auth login
user $SMTP_USER
password $SMTP_PASSWD
account default: provider
"
set fp [open "/tmp/msmtp.conf" w]
puts $fp $config
close $fp
exec chmod 0600 /tmp/msmtp.conf
# SEND EMAIL USING MSMTP
exec cat /tmp/ready.eml | msmtp -C /tmp/msmtp.conf $SEND_TO
# CLEAN UP
exec rm -f /tmp/msmtp.conf
exec rm -f /tmp/ready.eml
exec rm -f /tmp/snapshot.jpg
sendCamShot_2.tcl - für 2 Kamera Bild an Mail
Code: Alles auswählen
package require base64
set SNAPSHOT_URL "http://192.xxx.xxx.66:88//cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=abc&pwd=abc"
set SNAPSHOT_URL1 "http://192.xxx.xxx.67:88//cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=abc&pwd=abc"
set EMAIL_SUBJECT "Es hat an der Haustuer geklingelt !"
set EMAIL_BODY "\nsiehe Bild\n\nmfg\nHM Zentrale"
set SEND_TO "abc@test.de"
set SEND_FROM "def@test.de"
set SMTP_HOST "smtp.1und1.de"
set SMTP_USER "def@test.de"
set SMTP_PASSWD "yyy"
set SMTP_DOMAIN "smtp.1und1.de"
# DEFINE EMAIL TEMPLATE
set tmpl "To: $SEND_TO
From: $SEND_FROM
Subject: $EMAIL_SUBJECT
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=\"=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk\"
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk
Content-Type: text/plain; charset=\"iso-8859-1\"
Content-Transfer-Encoding: 8bit
$EMAIL_BODY
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk
Content-Type: application/octet-stream; name=\"Haustuer.jpg\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"Haustuer.jpg\"
{IMGDATA}
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk
Content-Type: application/octet-stream; name=\"Terrasse.jpg\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"Terrasse.jpg\"
{IMGDATA1}
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk--"
# DOWNLOAD THE SNAPSHOT
exec wget -q -O /tmp/snapshot.jpg $SNAPSHOT_URL
exec wget -q -O /tmp/snapshot1.jpg $SNAPSHOT_URL1
# READ SNAPSHOT INTO VARIABLE & BASE64 ENCODE
set fp [open "/tmp/snapshot.jpg" r]
fconfigure $fp -translation binary
set imgdata [read $fp]
set encodeddata [::base64::encode $imgdata]
set fp [open "/tmp/snapshot1.jpg" r]
fconfigure $fp -translation binary
set imgdata1 [read $fp]
set encodeddata1 [::base64::encode $imgdata1]
close $fp
# REPLACE IMG DATA WITH REAL IMAGE DATA
regsub -all "{IMGDATA}" $tmpl $encodeddata tmpl
regsub -all "{IMGDATA1}" $tmpl $encodeddata1 tmpl
# WRITE READY EMAIL TO A TMP FILE
set fp [open "/tmp/ready.eml" w]
puts $fp $tmpl
close $fp
set config "
defaults
tls on
tls_certcheck off
logfile /var/log/email_sendcamshot.log
account provider
host $SMTP_HOST
from $SEND_FROM
domain $SMTP_DOMAIN
auth login
user $SMTP_USER
password $SMTP_PASSWD
account default: provider
"
set fp [open "/tmp/msmtp.conf" w]
puts $fp $config
close $fp
exec chmod 0600 /tmp/msmtp.conf
# SEND EMAIL USING MSMTP
exec cat /tmp/ready.eml | msmtp -C /tmp/msmtp.conf $SEND_TO
# CLEAN UP
exec rm -f /tmp/msmtp.conf
exec rm -f /tmp/ready.eml
exec rm -f /tmp/snapshot.jpg
exec rm -f /tmp/snapshot1.jpg
sendCamShot_7.tcl - für 7 Kamera Bild an Mail
Code: Alles auswählen
package require base64
set SNAPSHOT_URL "http://192.xxx.xxx.61:88//cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=abc&pwd=abc"
set SNAPSHOT_URL1 "http://192.xxx.xxx.62:88//cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=abc&pwd=abc"
set SNAPSHOT_URL2 "http://192.xxx.xxx.63:88//cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=abc&pwd=abc"
set SNAPSHOT_URL3 "http://192.xxx.xxx.64:88//cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=abc&pwd=abc"
set SNAPSHOT_URL4 "http://192.xxx.xxx.65:88//cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=abc&pwd=abc"
set SNAPSHOT_URL5 "http://192.xxx.xxx.66:88//cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=abc&pwd=abc"
set SNAPSHOT_URL6 "http://192.xxx.xxx.67:88//cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=abc&pwd=abc"
set EMAIL_SUBJECT "Es hat an der Haustuer geklingelt !"
set EMAIL_BODY "\nsiehe Bild\n\nmfg\nHM Zentrale"
set SEND_TO "abc@test.de"
set SEND_FROM "def@test.de"
set SMTP_HOST "smtp.1und1.de"
set SMTP_USER "def@test.de"
set SMTP_PASSWD "yyy"
set SMTP_DOMAIN "smtp.1und1.de"
# DEFINE EMAIL TEMPLATE
set tmpl "To: $SEND_TO
From: $SEND_FROM
Subject: $EMAIL_SUBJECT
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=\"=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk\"
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk
Content-Type: text/plain; charset=\"iso-8859-1\"
Content-Transfer-Encoding: 8bit
$EMAIL_BODY
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk
Content-Type: application/octet-stream; name=\"Haustuer.jpg\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"Haustuer.jpg\"
{IMGDATA}
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk
Content-Type: application/octet-stream; name=\"Terrasse.jpg\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"Terrasse.jpg\"
{IMGDATA1}
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk
Content-Type: application/octet-stream; name=\"Garten.jpg\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"Garten.jpg\"
{IMGDATA2}
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk
Content-Type: application/octet-stream; name=\"Hobbyraum.jpg\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"Hobbyraum.jpg\"
{IMGDATA3}
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk
Content-Type: application/octet-stream; name=\"Werkstatt.jpg\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"Werkstatt.jpg\"
{IMGDATA4}
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk
Content-Type: application/octet-stream; name=\"unten.jpg\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"unten.jpg\"
{IMGDATA5}
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk
Content-Type: application/octet-stream; name=\"Treppe.jpg\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"Treppe.jpg\"
{IMGDATA6}
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk--"
# DOWNLOAD THE SNAPSHOT
exec wget -q -O /tmp/snapshot.jpg $SNAPSHOT_URL
exec wget -q -O /tmp/snapshot1.jpg $SNAPSHOT_URL1
exec wget -q -O /tmp/snapshot2.jpg $SNAPSHOT_URL2
exec wget -q -O /tmp/snapshot3.jpg $SNAPSHOT_URL3
exec wget -q -O /tmp/snapshot4.jpg $SNAPSHOT_URL4
exec wget -q -O /tmp/snapshot5.jpg $SNAPSHOT_URL5
exec wget -q -O /tmp/snapshot6.jpg $SNAPSHOT_URL6
# READ SNAPSHOT INTO VARIABLE & BASE64 ENCODE
set fp [open "/tmp/snapshot.jpg" r]
fconfigure $fp -translation binary
set imgdata [read $fp]
set encodeddata [::base64::encode $imgdata]
set fp [open "/tmp/snapshot1.jpg" r]
fconfigure $fp -translation binary
set imgdata1 [read $fp]
set encodeddata1 [::base64::encode $imgdata1]
set fp [open "/tmp/snapshot2.jpg" r]
fconfigure $fp -translation binary
set imgdata2 [read $fp]
set encodeddata2 [::base64::encode $imgdata2]
set fp [open "/tmp/snapshot3.jpg" r]
fconfigure $fp -translation binary
set imgdata3 [read $fp]
set encodeddata3 [::base64::encode $imgdata3]
set fp [open "/tmp/snapshot4.jpg" r]
fconfigure $fp -translation binary
set imgdata4 [read $fp]
set encodeddata4 [::base64::encode $imgdata4]
set fp [open "/tmp/snapshot5.jpg" r]
fconfigure $fp -translation binary
set imgdata5 [read $fp]
set encodeddata5 [::base64::encode $imgdata5]
set fp [open "/tmp/snapshot6.jpg" r]
fconfigure $fp -translation binary
set imgdata6 [read $fp]
set encodeddata6 [::base64::encode $imgdata6]
close $fp
# REPLACE IMG DATA WITH REAL IMAGE DATA
regsub -all "{IMGDATA}" $tmpl $encodeddata tmpl
regsub -all "{IMGDATA1}" $tmpl $encodeddata1 tmpl
regsub -all "{IMGDATA2}" $tmpl $encodeddata2 tmpl
regsub -all "{IMGDATA3}" $tmpl $encodeddata3 tmpl
regsub -all "{IMGDATA4}" $tmpl $encodeddata4 tmpl
regsub -all "{IMGDATA5}" $tmpl $encodeddata5 tmpl
regsub -all "{IMGDATA6}" $tmpl $encodeddata6 tmpl
# WRITE READY EMAIL TO A TMP FILE
set fp [open "/tmp/ready.eml" w]
puts $fp $tmpl
close $fp
set config "
defaults
tls on
tls_certcheck off
logfile /var/log/email_sendcamshot.log
account provider
host $SMTP_HOST
from $SEND_FROM
domain $SMTP_DOMAIN
auth login
user $SMTP_USER
password $SMTP_PASSWD
account default: provider
"
set fp [open "/tmp/msmtp.conf" w]
puts $fp $config
close $fp
exec chmod 0600 /tmp/msmtp.conf
# SEND EMAIL USING MSMTP
exec cat /tmp/ready.eml | msmtp -C /tmp/msmtp.conf $SEND_TO
# CLEAN UP
exec rm -f /tmp/msmtp.conf
exec rm -f /tmp/ready.eml
exec rm -f /tmp/snapshot.jpg
exec rm -f /tmp/snapshot1.jpg
exec rm -f /tmp/snapshot2.jpg
exec rm -f /tmp/snapshot3.jpg
exec rm -f /tmp/snapshot4.jpg
exec rm -f /tmp/snapshot5.jpg
exec rm -f /tmp/snapshot6.jpg
Viel Spaß damit.
Die Dateien müssen natürlich mit euren individuellen Daten angeglichen werden.
mfg
bahnuhr