Lösung: Klingel erzeugt Bild von Foscam und sendet per Mail

WebUIs (DashUI, yahui, ...), Adapter (Hue, IRTrans, Sonos, ...), Logging, Scripting

Moderator: Co-Administratoren

Benutzeravatar
blackhole
Beiträge: 3718
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 184 Mal
Danksagung erhalten: 586 Mal

Re: Email Versand über CCU2, Fehler ohne Änderung am Program

Beitrag von blackhole » 15.11.2016, 16:48

Für den SMTP-Server (smtp.strato.de) mit TLS solltest Du Port 465 verwenden.
Teste auch, ob deine CCU2 ins Internet kann/darf.

ralalla
Beiträge: 705
Registriert: 13.02.2012, 08:21

Re: Email Versand über CCU2, Fehler ohne Änderung am Program

Beitrag von ralalla » 15.11.2016, 16:57

Fragt sich nur wo ich den Port eintragen muss bei o.g. Script ?

In den Email Einstellungen des Add on ist bei Auth: Plain und Port 587 eingtragen.

Versende ich eine Testmail über denHilfe Button im Email Add on funktioniert das auch und die mail kommt an.
Scheint also wohl an dem Script zu liegen, da finde ich aber den Fehler nicht, irgend etwas muss sich ja geändert haben ?
Mein Homematicsystem
1xpiVCCu auf RPi3, 4x HMW-IO-12-Sw7-DR, 5x HM-Sec-RHS, 5x HM-Sec-SC, 8x HM-CC-TC, 10x HM-CC-VD, 2x HM-Sec-Key, 1x HMW-Sys-OP-DR, 5x HMW-LC-Dim1L-DR, 3x HM-RC-Key3-B, 9x HM-Sec-SD, 10x HMW-LC-Bl1-DR
, 1x HMW-IO-12-Sw14-DR[/size], iobroker

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: Lösung: Klingel erzeugt Bild von Foscam und sendet per M

Beitrag von alchy » 15.11.2016, 21:44

ralalla hat geschrieben:In den Email Einstellungen des Add on ist bei Auth: Plain und Port 587 eingtragen.
Versende ich eine Testmail über denHilfe Button im Email Add on funktioniert das auch und die mail kommt an.
Scheint also wohl an dem Script zu liegen, da finde ich aber den Fehler nicht, irgend etwas muss sich ja geändert haben ?

Wieder hier hin verschoben
Das Mail addon hat so gut wie gar nichts mit dem von dir benutztem Script zu tun.
Und wenn du noch einen Thread mit dem selben Thema eröffnest, wirst du verwarnt. :!:

Du hast fast 700 Beiträge, Welpenschutz ist nicht zu erwarten.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

runaway
Beiträge: 9
Registriert: 20.04.2016, 11:51

Re: Lösung: Klingel erzeugt Bild von Foscam und sendet per M

Beitrag von runaway » 08.12.2016, 17:47

Ich weiß nicht, ob das noch in diesen Thread gehört (ansonsten bitte verschieben):

Wenn die "Türsprechanlage" über die Fritzbox die Fritz Fons anruft (inkl. Bild), wird das Klingeln immer nach 15 Sekunden abgebrochen, egal wie ich das Script aufrufe, z. B. mit 60 Sekunden (FB-fon.sh call **799 60"). Hat da jemand eine Idee, ob man die Rufdauer irgendwie erhöhen kann?

Viele Grüße
runaway

PS. alchy.. Du gibst hier aber wirklich alles. Das Durchhaltevermögen beim Beantworten einiger "sehr speziellen" Fragen hätte ich nicht ;-)

Benutzeravatar
Jonnydreambox
Beiträge: 157
Registriert: 29.04.2013, 21:08
Hat sich bedankt: 7 Mal
Danksagung erhalten: 1 Mal

Re: Lösung: Klingel erzeugt Bild von Foscam und sendet per M

Beitrag von Jonnydreambox » 29.12.2016, 12:11

Moin!

Wollte euch nur sagen das das noch immer perfekt klappt!
Danke :D

Habe endlich auch eine Cam gefunden die Snapshots mit Homematic liefert und rtsp Streams die Dreambox / Vu+ Kompatibel sind (CamoFs und Bouquet)und LCD4Linux

http://www.ebay.de/itm/POE-HD-720P-1MP- ... 1154265319

HJT-IPC6100-B1

Gruß
JonnyDreambox
CCU3 Raspberrymatic PI4 ,Dualbeam Antennen & diverse Aktoren,
homee & Alexa
Hausautomatisierung weil es spass macht! 8)

Accuracy
Beiträge: 746
Registriert: 22.05.2013, 16:37
Hat sich bedankt: 1 Mal

Re: Lösung: Klingel erzeugt Bild von Foscam und sendet per M

Beitrag von Accuracy » 11.01.2017, 17:20

Hi Leute,

ich habe plötzlich Probleme Bilder meiner Foscam (FI9805W) per Email zu übermitteln.
Bis vor einigen Wochen funktionierte alles fehlerfrei. Jetzt kommt einfach nix mehr per mail durch.
Hat jemand zufällig eine Idee woran es liegen könnte?

Kann es daran liegen, dass ich das Mail-add-on geupdated habe oder an den Berechtigungen?

Im Email Add-on der HM WebUI taucht folgender Fehler plötzlich auf:

Code: Alles auswählen

"cannot create socket: Address family not supported by protocol' exitcode=EX_OSERR"
Weiß jemand was dieser Fehler zu bedeuten hat?

Ich rufe das Script so auf:

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("cd /usr/local/addons/sendCamShot/ && tclsh sendKlingel.tcl");
Der Weblink der Kamera gibt mir erfolgreich ein Bild zurück:

Code: Alles auswählen

http://192.168.1.6:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=asdf&pwd=meinPW
Im Script schaut es so aus:

Code: Alles auswählen

package require base64

set SNAPSHOT_URL "http://192.168.1.6:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=CamGH&pwd=meinPW"
set EMAIL_SUBJECT "Türklingel"
set EMAIL_BODY "siehe Anhang"
set SEND_TO "meine mailaddy"
set SEND_FROM "meine mailaddy"
set SMTP_HOST "smtp.googlemail.com"
set SMTP_USER "ameine mailaddy"
set SMTP_PASSWD "meinMailPW"
set SMTP_DOMAIN "gmail.com"


# 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.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
Zuletzt geändert von alchy am 12.01.2017, 08:39, insgesamt 2-mal geändert.
Grund: Code in Codetags posten :-(

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: Lösung: Klingel erzeugt Bild von Foscam und sendet per M

Beitrag von alchy » 12.01.2017, 09:05

Auch wenn ich es bereuen werde.
Accuracy hat geschrieben:Hi Leute,
Jetzt kommt einfach nix mehr per mail durch.
Hat jemand zufällig eine Idee woran es liegen könnte?
Deine CCU kommt nicht vollumfänglich ins Internet. Auch wenn du es nicht wahrhaben willst. :twisted:
Accuracy hat geschrieben: Kann es daran liegen, dass ich das Mail-add-on geupdated habe oder an den Berechtigungen?
Addon nein - Das hat mit dem Script (so wie eingestellt) auch gar nichts zu tun.
Berechtigung ja - die CCU Berechtigung auf das Internet.

Accuracy hat geschrieben: Weiß jemand was dieser Fehler zu bedeuten hat?
Ja, weiß ich.
Deine CCU kommt nicht vollumfänglich ins Internet.
Accuracy hat geschrieben: Ich rufe das Script so auf:
Der Scriptaufruf UND das Script sind bei Eingabe der richtigen Daten handlungsfähig.
Soll ich es noch mal wiederholen?
Deine CCU kommt nicht vollumfänglich ins Internet.

erster Ansatz. Ausführen des Scriptes:

Code: Alles auswählen

string stderr;
string stdout;
integer Auslese;
system.Exec("ping -c 1 www.google.de",&stdout, &stderr);
Auslese = stdout.Find("ms");
if ( Auslese == -1 )
{
WriteLine("CCU ist NICHT mit der Welt verbunden");
}
if ( Auslese > 0)
{
WriteLine('CCU ist mit der Welt verbunden');
}
Selbst wenn da "CCU ist mit der Welt verbunden" kommt - kommt die CCU immer noch nicht VOLLUMFÄNGLICH ins Netz.
Also CCU Netzwerkeinstellungen checken - Routereinstellungen für die CCU (z.B. Heimnetz Sperre?) checken usw.

Script auf der Kommandozeile starten. Ausgabe posten.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: Lösung: Klingel erzeugt Bild von Foscam und sendet per M

Beitrag von alchy » 12.01.2017, 10:59

Du kannst aber auch einen anderen Mailaccount für den Versand benutzen und testen.

*IMHO* bringt nur gmail bei einer gestörten Internetverbindung:

Code: Alles auswählen

cannot create socket: Address family not supported by protocol
andere bringen erwartungsgemäß:

Code: Alles auswählen

cannot connect to smtp.XXX.XX, port XX: Connection refused
Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

falke69
Beiträge: 61
Registriert: 05.11.2016, 19:51

Re: Lösung: Klingel erzeugt Bild von Foscam und sendet per M

Beitrag von falke69 » 17.02.2017, 13:38

Hallo,

Vielleicht kann mir ja einer von Euch helfen.
Meine CAM erstellt mir beim Klingeln zwei Snapshots ( über CUxD).
2017-02-12_122023.jpg
Diese werden auf der CCU im Verzeichnis "tmp/snapshots/CUX9104001/" abgelegt.
Die Snapshots hole ich mit dem TLC Script direkt aus dem Verzeichnis und möchte diese per Mail versenden lassen.
Das Script von der ersten Seite musste ich leider etwas abändern, da bei mir immer nur irgendwelche Buchstaben und Zahlen in der Mail angekommen waren.

Code: Alles auswählen

package require base64

set SNAPSHOT_URL "http://192.168.xxx.xxx/addons/cuxd/index.ccc?file=%2ftmp%2fsnapshots%2fCUX9104001%2fCUX9104001_000.jpg"
set SNAPSHOT_URL1 "http://192.168.xxx.xxx/addons/cuxd/index.ccc?file=%2ftmp%2fsnapshots%2fCUX9104001%2fCUX9104001_001.jpg"
set EMAIL_SUBJECT "es hat an der Haustuer geklingelt"
set EMAIL_BODY "siehe Anhang"
set SEND_TO "meine_Mail_Adresse@gmail.com"
set SEND_FROM "Absender@blub.de"
set SMTP_HOST "smtp.gmail.com"
set SMTP_USER "meine_Mail_Adresse@gmail.com"
set SMTP_PASSWD "geheimes Passwort"
set SMTP_DOMAIN "smtp.gmail.com"


# 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
Content-Type: application/octet-stream; name=\"photo1.jpg\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"photo1.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.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
Jetzt funktioniert es wenigstens, dass ich Bilder angezeigt bekomme, wenn ich diese zu Google schicke. Dasselbe Script an eine andere Mailadresse zeigt mir hier
zwar beim Eingang der Mail an, dass diese einen Anhang hat, aber beim Öffnen der Mail ist dann doch nichts angehangen.

Meine Vermutung:

Code: Alles auswählen

--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk
Content-Type: text/plain; charset=\"iso-8859-1\"
Content-Transfer-Encoding: 8bit
... ist an dem Zahlen und Buchstaben durcheinander schuld.

Die Veränderungen zum Original:

Code: Alles auswählen

$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
Content-Type: application/octet-stream; name=\"photo1.jpg\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"photo1.jpg\"
{IMGDATA1}
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk--"
Ziel sollte sein, dass das Versenden der Anhänge mit jeden E-Mail Provider funktionieren und nicht nur bei gmail.

Benutzeravatar
HMside
Beiträge: 625
Registriert: 22.10.2012, 18:14
Danksagung erhalten: 7 Mal

Lösung: Klingel erzeugt Bild von Foscam und sendet per Mail

Beitrag von HMside » 17.02.2017, 14:10

falke69 hat geschrieben:Vielleicht kann mir ja einer von Euch helfen.
Nur zur Information: Mit der in den kommenden Tagen erscheinenden Email Addon Version 1.6.7 wird es bezüglich Kamera Snapshots einige Änderungen/Optimierungen geben. Hiermit sollte das Versenden von Snapshots dann problemlos möglich sein. Verschiedenste Foscam Modell wurden bereits erfolgreich mit der neuen Version getestet.

Antworten

Zurück zu „CCU.IO“