NEWS
[Frage] Klingel Bild per Mail versenden / Snapshot von Cam per Email versenden
-
Hallo !
Ich möchte gerne, dass meine Foscam FI 9805 W bei auslösen der Klingeltasters mir das Bild per Mail zusendet.
Geht dies und wenn ja, wie….
Also der Befehl für den SNAP lautet bei meinem Modell :
http://192.168.178.51:88/cgi-bin/CGIPro ... XX&pwd=XXX
meine Klingel hört auf : hm-rpc.0.MEQ0656994.1.PRESS_SHORT
Email Adresse soll an : bild@klingelbild.de gesendet werden.
Reichen die Angaben um was zu basteln oder fehlt noch eine Information ?
Was ich bemerkt habe, das Bild benötigt ca. 5 Sekunden bis es im Browser vollständig angezeigt wird....
Ich hoffe auf Eure Hilfe
CU
SigiMOE
-
anbei mal code wo das Bild per telegram verschickt wird; vielleicht hilfts weiter.
! ````
// Haustür: Bild senden wenn es klingelt.
! //Variablen
var request = require('request');
var fs = require('fs');! function weiter() {
View_change ('Haustuer', 0);
setTimeout(function() {
View_change ('Titel', 0);
}, 30000);
! //Bild senden mit Telegram
request.get({url: 'http://192.168.xxx.xx:88//cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=xxx&pwd=xxx', encoding: 'binary'}, function (err, response, body) {
fs.writeFile("c:/tmp/snap.jpg", body, 'binary', function(err) {
if (err) {
console.error(err);
} else {
console.log('Snapshot sent');
sendTo('telegram.0', {text: 'c:/tmp/snap.jpg', caption: 'Haustür: Es klingelt.'});
}
});
});
}
! /on({id: "hm-rpc.0.LEQ0029078.1.INSTALL_TEST", val: true, ack: true}, function() { // Klingel HM Taster
log("Auslöser Klingel-IT");
weiter ();
});/
! on({id: "hm-rpc.0.LEQ0029078.1.PRESS_SHORT", val: true, ack: true}, function() { // Klingel HM Taster
log("Auslöser Klingel-PS");
weiter ();
});
! on({id: "hm-rpc.0.LEQ0029078.1.PRESS_LONG", val: true, ack: true}, function() { // Klingel HM Taster
log("Auslöser Klingel-PL");
weiter ();
});
! on({id: "hm-rpc.0.KEQ1075351.1.STATE", val: true}, function() { // Haustür wird geöffnet
View_change ('Titel', 2000); // sofort View Titel wieder anzeigen
});
! ````mfg
Dieter
-
Hi,
ich bin es nochmal, leider bin ich immer noch kein schritt weiter gekommen…., habe aber auch eine neue CAM
Ich möchte gerne, dass meine Hikvision DS-2CD2342WD-I bei auslösen der Klingeltasters mir das Bild per Mail zusendet.
Geht dies und wenn ja, wie....
Also der Befehl für den SNAP lautet bei meinem Modell :
http://192.168.178.70/Streaming/channels/101/picture
meine Klingel hört auf : hm-rpc.0.MEQ0656994.1.PRESS_SHORT
Email Adresse soll an : bild@klingelbild.de gesendet werden.
Reichen die Angaben um was zu basteln oder fehlt noch eine Information ?
Was ich bemerkt habe, das Bild benötigt ca. 5 Sekunden bis es im Browser vollständig angezeigt wird....
Ich hoffe auf Eure Hilfe
CU
SigiMOE
-
Hi,
ich bin es nochmal, leider bin ich immer noch kein schritt weiter gekommen…., habe aber auch eine neue CAM
Ich möchte gerne, dass meine Hikvision DS-2CD2342WD-I bei auslösen der Klingeltasters mir das Bild per Mail zusendet.
Geht dies und wenn ja, wie....
Also der Befehl für den SNAP lautet bei meinem Modell :
http://192.168.178.70/Streaming/channels/101/picture
meine Klingel hört auf : hm-rpc.0.MEQ0656994.1.PRESS_SHORT
Email Adresse soll an : bild@klingelbild.de gesendet werden.
Reichen die Angaben um was zu basteln oder fehlt noch eine Information ?
Was ich bemerkt habe, das Bild benötigt ca. 5 Sekunden bis es im Browser vollständig angezeigt wird....
Ich hoffe auf Eure Hilfe
CU
SigiMOE `
Schonmal mit blockly dein Glück versucht ?
Helfen dir lösungs Richtungen oder brauste eine Endlösung?
Greetz
Dutch
Sent from my iPhone using Tapatalk
-
am liebsten eine Endlösung, aber eine Richtung wäre zumindest hilfreich.
Nein Blockly habe ich nur ansatzweise mal versucht, aber richtig schlau werde ich leider nicht.
Bin eben nur ein Kaufmann und Nutzer
, leider kein IT Profi
-
keiner eine Idee, bzw. Hilfe für mich ?
-
Mal eben schnell aus dem eigenen Scripte-Fundus zusammengeschoben:
function sendMailWithAttachment(subject, msg, attachment) { sendTo("email", { to: "empfaenger@email.de", subject: subject, text: msg, html: " " + msg + "  ", attachments: [{path: attachment, cid: "image1"}] }); } function sendPictureByMail(subject, message) { // URL mit der man das Bild bekommt var req = 'http://ip-der-kamera:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=BENUTZER&pwd=PASSWORT'; request.get({url: req, encoding: 'binary'}, function (err, response, body) { fs.writeFile('/tmp/snap.jpg', body, 'binary', function(err) { if (!err) { sendMailWithAttachment(subject, message, '/tmp/snap.jpg'); } }); }); } subscribe({id: "hhm-rpc.0.MEQ0656994.1.PRESS_SHORT" , val: true}, function (obj) { sendPictureByMail('Es hat geklingelt', 'Hier ein aktuelles Bild:'); });
Ich hoffe, dass du damit was anfangen kannst? 8-)
VG
Bastian
-
hi,
ich bekomme folgenden Fehler :
21:06:09.770 [error] javascript.0 script.js.common.Klingel.EmailK compile failed: SyntaxError: Unexpected identifier
Skript :
! ````
function sendMailWithAttachment(subject, msg, attachment) {
sendTo("email", {
to: "iobrokertestxxx@gmail.com",
subject: subject, hallo
text: msg, test
html: "
! " + msg + "
!
! ",
attachments: [{path: attachment, cid: "image1"}]
});
}
! function sendPictureByMail(subject, message) {
// URL mit der man das Bild bekommt
var req = 'http://192.168.178.21/Streaming/channels/102/picture';
request.get({url: req, encoding: 'binary'}, function (err, response, body) {
fs.writeFile('/tmp/snap.jpg', body, 'binary', function(err) {
if (!err) {
sendMailWithAttachment(subject, message, '/tmp/snap.jpg');
}
});
});
}
! subscribe({id: "hhm-rpc.0.MEQ0656994.1.PRESS_SHORT" , val: true}, function (obj) {
sendPictureByMail('Es hat geklingelt', 'Hier ein aktuelles Bild:'); -
hi,
ich bekomme folgenden Fehler :
21:06:09.770 [error] javascript.0 script.js.common.Klingel.EmailK compile failed: SyntaxError: Unexpected identifier
Skript :
function sendMailWithAttachment(to, subject, msg, attachment) { sendTo("email", { to: to, subject: subject, text: msg, html: " " + msg + "  ", attachments: [{path: attachment, cid: "image1"}] }); } function sendPictureByMail(uri, to, subject, message) { request.get({url: uri, encoding: 'binary'}, function (err, response, body) { fs.writeFile('/tmp/snap.jpg', body, 'binary', function(err) { if (!err) { sendMailWithAttachment(to, subject, message, '/tmp/snap.jpg'); } }); }); } subscribe({id: "hhm-rpc.0.MEQ0656994.1.PRESS_SHORT" , val: true}, function (obj) { sendPictureByMail('http://192.168.178.21/Streaming/channels/102/picture', 'iobrokertestxxx@gmail.com', 'Hallo', 'Test'); ```` `
Nimm dein "Hallo" und "Test" wieder raus und setze es unten in den Aufruf der Funktion sendPictureByMail(…) rein. Der Einfachheit halber habe ich die Adresse fürs Bild und die E-Mail-Adresse auch mal in den Aufruf verschoben. Das Schema ist wie folgt:
sendPictureByMail('<adresse fürs/bild="">', '<e-mail-empfänger', '<betreff="">', '<text>');</text></e-mail-empfänger',></adresse>
Mehr als diese eine Zeile solltest du nicht ändern müssen.
VG
Bastian
-
hm habe jetzt genau diese Zeilen als Skript :
function sendMailWithAttachment(to, subject, msg, attachment) { sendTo("email", { to: to, subject: subject, text: msg, html: " " + msg + "  ", attachments: [{path: attachment, cid: "image1"}] }); } function sendPictureByMail(uri, to, subject, message) { request.get({url: uri, encoding: 'binary'}, function (err, response, body) { fs.writeFile('/tmp/snap.jpg', body, 'binary', function(err) { if (!err) { sendMailWithAttachment(to, subject, message, '/tmp/snap.jpg'); } }); }); } subscribe({id: "hhm-rpc.0.MEQ0656994.1.PRESS_SHORT" , val: true}, function (obj) { sendPictureByMail('http://192.168.178.21/Streaming/channels/102/picture', 'iobrokertestxxx@gmail.com', 'Hallo', 'Test');
und es kommt beim Starten immer noch dieser Fehler :
07:41:53.679 [error] javascript.0 script.js.common.Klingel.Email compile failed: SyntaxError: Unexpected end of input
was habe ich falsch gemacht ?
-
Na, auf jeden Fall fehlt da schon mal ein
});
am Ende des Skripts.
-
Ich häng mich hier mal dran da ich auch eine Möglichkeit suche das Kamerabild per Mail zu versenden. Sobald ich das Script aus Post #10 auslöse kommt bei mir folgende Fehlemeldung im Log:
javascript.0 2017-07-02 19:21:40.878 error at Object.change (/volume1/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3045:37) javascript.0 2017-07-02 19:21:40.878 error at Object.stateChange (/volume1/opt/iobroker/node_modules/iobroker.javascript/javascript.js:253:17) javascript.0 2017-07-02 19:21:40.878 error at checkPatterns (/volume1/opt/iobroker/node_modules/iobroker.javascript/javascript.js:581:17) javascript.0 2017-07-02 19:21:40.878 error at getObjectEnums (/volume1/opt/iobroker/node_modules/iobroker.javascript/javascript.js:3229:28) javascript.0 2017-07-02 19:21:40.878 error at getObjectEnums (/volume1/opt/iobroker/node_modules/iobroker.javascript/javascript.js:3229:28) javascript.0 2017-07-02 19:21:40.878 error at getObjectEnums (/volume1/opt/iobroker/node_modules/iobroker.javascript/javascript.js:3210:17) javascript.0 2017-07-02 19:21:40.878 error at /volume1/opt/iobroker/node_modules/iobroker.javascript/javascript.js:585:48 javascript.0 2017-07-02 19:21:40.878 error at Object.callback (/volume1/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1325:48) javascript.0 2017-07-02 19:21:40.878 error at Object. (script.js.common.Klingel_-_Kamerabild:24:9) javascript.0 2017-07-02 19:21:40.878 error at sendPictureByMail (script.js.common.Klingel_-_Kamerabild:14:5) javascript.0 2017-07-02 19:21:40.878 error ReferenceError: request is not defined javascript.0 2017-07-02 19:21:40.877 error message hm-rpc.0.MEQ0045011.1.PRESS_SHORT [object Object] request is not defined javascript.0 2017-07-02 19:21:40.839 error at Object.change (/volume1/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3045:37) javascript.0 2017-07-02 19:21:40.839 error at Object.stateChange (/volume1/opt/iobroker/node_modules/iobroker.javascript/javascript.js:253:17) javascript.0 2017-07-02 19:21:40.839 error at checkPatterns (/volume1/opt/iobroker/node_modules/iobroker.javascript/javascript.js:581:17) javascript.0 2017-07-02 19:21:40.839 error at getObjectEnums (/volume1/opt/iobroker/node_modules/iobroker.javascript/javascript.js:3229:28) javascript.0 2017-07-02 19:21:40.839 error at getObjectEnums (/volume1/opt/iobroker/node_modules/iobroker.javascript/javascript.js:3229:28) javascript.0 2017-07-02 19:21:40.839 error at getObjectEnums (/volume1/opt/iobroker/node_modules/iobroker.javascript/javascript.js:3210:17) javascript.0 2017-07-02 19:21:40.839 error at /volume1/opt/iobroker/node_modules/iobroker.javascript/javascript.js:585:48 javascript.0 2017-07-02 19:21:40.839 error at Object.callback (/volume1/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1325:48) javascript.0 2017-07-02 19:21:40.839 error at Object. (script.js.common.Klingel_-_Kamerabild:24:9) javascript.0 2017-07-02 19:21:40.839 error at sendPictureByMail (script.js.common.Klingel_-_Kamerabild:14:5) javascript.0 2017-07-02 19:21:40.839 error ReferenceError: request is not defined javascript.0 2017-07-02 19:21:40.838 error message hm-rpc.0.MEQ0045011.1.PRESS_SHORT [object Object] request is not defined
Kann damit jemand was anfangen? Ich steh grad auf dem Schlauch was da falsch laufen könnte.
MfG Jan
-
Seit nodejs 4.x ist 'request' ein eigenes modul und muss deshalb mit
var request = require('request');
definiert werden.
Ich bin mir nicht sicher ob nicht auch ein Eintrag in der Javascript-Adapter-Konfig notwendig ist.
-
Danke Dir… Das war's.
Zusätzlich musste ich noch fs definieren, dann lief das Script. Bild wird direkt als Anhang versendet.
var fs = require('fs');
-
HI,
wollte das für mich übernehmen nur bei mir kommt eine andere Fehlermeldung wenn jemand drauf schauen könnte…..
Danke Euch
Tobias
Error 1 at row 1 col 39 near ^ sendMailWithAttachment(subject, msg, attachment) { sendTo("email", { Parse following code failed: function sendMailWithAttachment(subject, msg, attachment) { sendTo("email", { to: "XXX@gmail.com", subject: subject, text: msg, html: " " + msg + "  ", attachments: [{path: attachment, cid: "image1"}] }); } function sendPictureByMail(subject, message) { // URL mit der man das Bild bekommt var req = 'http://192.168.178.48/tmpfs/auto.jpg?user=XXX&pwd=XXX'; request.get({url: req, encoding: 'binary'}, function (err, response, body) { fs.writeFile('/tmp/snap.jpg', body, 'binary', function(err) { if (!err) { sendMailWithAttachment(subject, message, '/tmp/snap.jpg'); } }); }); } subscribe({id: "HM-Sen-DB-PCB NEQ095XXXX:1.PRESS_SHORT" , val: true}, function (obj) { sendPictureByMail('Es hat geklingelt', 'Hier ein aktuelles Bild:'); });
geändert: Code in Code-Tags; Homoran (Mod.)
-
Hallo,
ich habe hierzu eine Nachfrage. Ich benutze die Befehle request.get und fs.writeFile schon erfolgreich in einem Script um meine Kameras bei Bedarf ab zu fragen.
Ich habe nun noch eine weitere Kamera per WLAN hinzugefügt und bekomme leider kein Bild abgespeichert bzw es wird ein jpg abgespeichert, welches aber in der Dateigröße deutlich kleiner ist als alle anderen und auch nicht zu öffnen geht.
Leider meldet der Request auch keine Fehler. Ich bin Ratlos.
Die gleiche Kamera hatte ich vorher im Lan angeschlossen und es war kein Problem ein
Bild zu erzeugen und zu speichern.
Muss man andere Befehle benutzen , wenn die Kamera über WLAN angesprochen wird?
Weiß jemand Rat?? :roll:
Lg Ralf
var url_snapshot3 = "http://192.168.XX.XX/snapshot.cgi?usr=XXXX&pwd=XXXXX";//Auffahrt request.get({url: url_snapshot3, encoding: 'binary'}, function (err, response, body) { if (body) { log('Request - alles ok'); } else { log('Request meldet Fehler!', 'error'); } fs.writeFile("/home/pi/Bilder/AlleKameras/NEU.jpg", body, 'binary', function(err) { if (err) { console.error(err); log("Fehler Foto 5"); } else { console.log('Foto 5 OK'); } }); });
-
Hallo,
ich habe hierzu eine Nachfrage. Ich benutze die Befehle request.get und fs.writeFile schon erfolgreich in einem Script um meine Kameras bei Bedarf ab zu fragen.
Ich habe nun noch eine weitere Kamera per WLAN hinzugefügt und bekomme leider kein Bild abgespeichert bzw es wird ein jpg abgespeichert, welches aber in der Dateigröße deutlich kleiner ist als alle anderen und auch nicht zu öffnen geht.
Leider meldet der Request auch keine Fehler. Ich bin Ratlos.
Die gleiche Kamera hatte ich vorher im Lan angeschlossen und es war kein Problem ein
Bild zu erzeugen und zu speichern.
Muss man andere Befehle benutzen , wenn die Kamera über WLAN angesprochen wird?
Weiß jemand Rat?? :roll:
Lg Ralf `
Hi Ralf,
ich habe keine Ahnung vom Programmieren, aber dafür ein ähnliches Problem in meiner alten FHEM Installation gehabt. Bei mir waren es die deutlich längeren Laufzeiten über WLAN.
Dadurch wurde zwar eine .jpg Datei erzeugt, aber diese war vor ihrer Weiterverarbeitung quasi nicht zuende geschrieben und daher nicht lesbar.
Ich hatte damals eine Zeitverzögerung eingebaut um das Problem zu lösen.
beste Grüße
Chris