NEWS
Hikam Kameras Snapshot erstellen und verschicken
-
@dslraser said in Hikam Kameras Snapshot erstellen und verschicken:
@ilovegym
ich nutze dieses Script
Benutzer/Passwort und Kamera ID mußt Du anpassen.
IP ind Port natürlich auch.
Wenn Du den ersten Link mit Deinen Daten in den Browser einfügst, dann siehst Du schon mal ob das Login geklappt hat. Wenn ja, dann den dritten Link in das gleiche Browser Fenster einfügen und die Kamera ID ändern. Bei mir ist es die 9 (immer wenn man in der Syno eine Kamera neu anlegt oder verändert, dann wurde wohl fortlaufend nummeriert, deshalb wohl die 9 bei mir.) Die ID kannst Du durchprobieren und einfach wieder den Browser damit aktualisieren, bis Du die passende Cam hast.//Bild Eingang senden //Trigger on({id:"javascript.0.Eigene_Datenpunkte.07Klingel.Klingel_aktiv"/*Klingel aktiv*/, val: true, change: 'ne'}, main); var request = require("request"); var fs = require('fs'); var myJson = {}; var sid = 0; function parseJson(text) { if (text === "") return {}; try { json = JSON.parse(text); } catch (ex) { json = {}; } if(!json) json = {}; return json; } function readJson(url, callback) { request(url, function (err, state, body){ if (body) { var json = parseJson(body); callback(null, json); } else { var error = "(" + err + ") ERROR bei Abfrage von: " + url; log(error, "warn"); callback(error, null); } }); } var url_login ='http://192.168.1.249:5000/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=2&account=Benutzer&passwd=Passwort&session=SurveillanceStation&format=sid'; var url_logout = 'http://192.168.1.249:5000/webapi/auth.cgi?api=SYNO.API.Auth&method=Logout&version=2&session=SurveillanceStation'; var url_snapshot = 'http://192.168.1.249:5000/webapi/entry.cgi?camStm=1&version=8&cameraId=9&api=SYNO.SurveillanceStation.Camera&preview=true&method=GetSnapshot'; function main() { readJson(url_login, function(err,json) { if(!err) { myJson = json; sid = myJson.data.sid; url_snapshot += '&_sid='+sid; url_logout += '&_sid='+sid; request.get({url: url_snapshot, encoding: 'binary'}, function (err, response, body) { fs.writeFile("/tmp/snap.jpg", body, 'binary', function(err) { if (err) { console.error(err); } else { console.log('Snapshot sent'); sendTo('telegram.0', {text: '/tmp/snap.jpg', caption: '🔔Es hat an der Haustür geklingelt !🔔'}); request.get({url: url_logout, encoding: 'binary'}); } }); }); } else { log("Fehler beim Auslesen des JSON. Keine Daten erhalten.","warn"); myJson = {}; } }); }
Verzeih die "blutiger Anfänger" Fragen. Ich habe Dein Skript mal in den Skripteditor kopiert.
Bekomme aber merkwürdige Fehlermeldungen.
Ich habe mal von Hand einen Datenpunkt gehäkelt:
und im Skript habe ich telegram durch email ersetzt, weil ich telegram noch nicht eingerichtet habe.
Dann bekomme ich das im Log zu sehen:
Meine Änderung:
Grummel.ciao
frank
-
@lost-in-translation
ich hatte bisher keinen E-Mail Adapter installiert. Das habe ich jetzt mal gemacht und ein wenig "rumprobiert".
Mir dauert es aber zu lange bis die Mail kommt... Ein Telegram ist quasi ohne Zeitverzug da.So hat es bei mir per E-Mail funktioniert. So wird an alle Instanzen gesendet
console.log('Snapshot sent'); sendTo("email", "send", { to: 'xxx@googlemail.com', subject: '👀Eingangskamera 👀', html: '👀Es hat geklingelt 👀', attachments: {path: '/tmp/snap.jpg'} }); //sendTo('telegram', {user: 'Heiko', text: '/tmp/snap.jpg', caption: '👀Eingangskamera 👀'}); request.get({url: url_logout, encoding: 'binary'}); } }); });
und so an eine bestimmte Instanz (z.B. Instanz 0)
console.log('Snapshot sent'); sendTo("email.0", "send", { to: 'xxx@googlemail.com', subject: '👀Eingangskamera 👀', html: '👀Es hat geklingelt 👀', attachments: {path: '/tmp/snap.jpg'} }); //sendTo('telegram', {user: 'Heiko', text: '/tmp/snap.jpg', caption: '👀Eingangskamera 👀'}); request.get({url: url_logout, encoding: 'binary'}); } }); });
PS: also nur diesen Teil austauschen
-
Hat eigentlich mal jemand die PTZ funktion des Adapters ausprobiert?
-
@Jey-Cee sagte in Hikam Kameras Snapshot erstellen und verschicken:
Hat eigentlich mal jemand die PTZ funktion des Adapters ausprobiert?
Ich habe leider keine Kamera die das unterstützt.
-
@Jey-Cee sagte in Hikam Kameras Snapshot erstellen und verschicken:
Hat eigentlich mal jemand die PTZ funktion des Adapters ausprobiert?
Ich habe 2 mit ptz, die gespeicherten Positionen werden ausgelesen, teste morgen Nachmittag damit Mal..
-
@dslraser said in Hikam Kameras Snapshot erstellen und verschicken:
sendTo("email.0", "send", { to: 'xxx@googlemail.com', subject: 'Eingangskamera ', html: 'Es hat geklingelt ', attachments: {path: '/tmp/snap.jpg'} }); //sendTo('telegram', {user: 'Heiko', text: '/tmp/snap.jpg', caption: 'Eingangskamera '}); request.get({url: url_logout, encoding: 'binary'});
ich habe den Austausch vorgenommen. Bekomme aber woanders im Vorfeld eine Fehlermeldung:
An den Zeilen habe ich aber soweit nix geändert:
Telegram hört sich interessant an, dazu müsste ich es aber zunächst mal auf iphones und ipads einrichten.
Bei email weiss ich wenigstens, dass es generell funktioniert.ciao
frank
-
ich hab das mit phantomjs gelöst
-
@lost-in-translation
Poste mal Dein komplettes verändertes Script. Den Benutzer und das Kennwort und Deine E-Mail kannst Du ja mit xxx überschreiben. -
@Jey-Cee sagte in Hikam Kameras Snapshot erstellen und verschicken:
Hat eigentlich mal jemand die PTZ funktion des Adapters ausprobiert?
Jetzt, ja, funktioniert leider nicht...
hier mal die Datenpunkte, die angelegt werden:
Das Logfile schicke ich dir per Email, wenn du magst, zu Umfangreich und sensibel, um es hier zu posten.
-
@dslraser said in Hikam Kameras Snapshot erstellen und verschicken:
@lost-in-translation
Poste mal Dein komplettes verändertes Script. Den Benutzer und das Kennwort und Deine E-Mail kannst Du ja mit xxx überschreiben.Das hat es gemacht. Tippfehler beim Benutzername Aua. War mir vorher gar nicht aufgefallen. Die Fehlermeldung hatte ich dahingehend nicht deuten können.
Jetzt kann ich morgen mal schauen, wie ich in Blockly das Objekt umschießen kann, um das Skript von meinem Türklingel Blockly aus zu triggern.
Vielen Dank für Deine Hilfe.
frank -
@lost-in-translation
Dann poste hier mal Dein Ergebnis wenn Du fertig bist. -
Servus,
wenn ich den Trigger auslöse (zum Test ein Lichtschalter) kommt es zur folgenden Fehlermeldung:
javascript.0 2019-11-22 21:13:09.006 warn script.js.Sicherheit.Kamerbild.Kamerbild: Fehler beim Auslesen des JSON. Keine Daten erhalten. javascript.0 2019-11-22 21:13:09.006 warn script.js.Sicherheit.Kamerbild.Kamerbild: (Error: unable to verify the first certificate) ERROR bei Abfrage von: https://192.168.188.90:5001/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=2&ac
Hier das Skript:
//Bild Eingang senden //Trigger on({id:"shelly.0.SHSW-1#32C858#1.Relay0.Switch"/*Klingel aktiv*/, val: true, change: 'ne'}, main); var request = require("request"); var fs = require('fs'); var myJson = {}; var sid = 0; function parseJson(text) { if (text === "") return {}; try { json = JSON.parse(text); } catch (ex) { json = {}; } if(!json) json = {}; return json; } function readJson(url, callback) { request(url, function (err, state, body){ if (body) { var json = parseJson(body); callback(null, json); } else { var error = "(" + err + ") ERROR bei Abfrage von: " + url; log(error, "warn"); callback(error, null); } }); } var url_login ='https://192.168.188.xx:5001/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=2&account=admin&passwd=xxx&session=SurveillanceStation&format=sid'; var url_logout = 'https://192.168.188.xx:5001/webapi/auth.cgi?api=SYNO.API.Auth&method=Logout&version=2&session=SurveillanceStation'; var url_snapshot = 'https://192.168.188.xx:5001/webapi/entry.cgi?camStm=1&version=8&cameraId=1&api=SYNO.SurveillanceStation.Camera&preview=true&method=GetSnapshot'; function main() { readJson(url_login, function(err,json) { if(!err) { myJson = json; sid = myJson.data.sid; url_snapshot += '&_sid='+sid; url_logout += '&_sid='+sid; request.get({url: url_snapshot, encoding: 'binary'}, function (err, response, body) { fs.writeFile("/tmp/snap.jpg", body, 'binary', function(err) { if (err) { console.error(err); } else { console.log('Snapshot sent'); sendTo('telegram.0', {text: '/tmp/snap.jpg', caption: '🔔Es hat an der Haustür geklingelt !🔔'}); request.get({url: url_logout, encoding: 'binary'}); } }); }); } else { log("Fehler beim Auslesen des JSON. Keine Daten erhalten.","warn"); myJson = {}; } }); }
Muss ich am URL -PFad was ändern?
Habe ioBroker auf einem WIN10 Rechner laufen.
VG + Danke
-
@nousefor82
ich habe das bei mir am Port 5000 über http laufen . Kann sein das man bei https und 5001 ein Certificat braucht... -
Hallo,
hab ich abgeändert mit folgendem Fehler:
javascript.0 script.js.Sicherheit.Kamerbild.Kamerbild: {'errno':-4058,'code':'ENOENT','syscall':'open','path':'C:\\tmp\\snap.jpg'}
-
@nousefor82 sagte in Hikam Kameras Snapshot erstellen und verschicken:
C:\tmp\snap.jpg'}
C:\\tmp\\snap.jpg'}
wo kommt das her ? Ich habe keine Windows Installation und weiß auch nicht wie das da aussehen müßte.
-
du stellst fragen..!
habe jetzt zewi Punkte davor gesetzt...jetzt sieht der Link zumindest vom Pfad her gut aus, bis auf die verkehrten /...
21:37:04.613 error javascript.0 script.js.Sicherheit.Kamerbild.Kamerbild: {'errno':-4058,'code':'ENOENT','syscall':'open','path':'C:\\Users\\Jörg\\ioBroker\\node_modules\\tmp\\snap.jpg'}
-
@nousefor82
Das Script ist nicht von mir, ich verwende es auch nur....Ich glaube es stammt von hier -
JUHU...habe es hinbekommen mit der Hilfe von google:
zuerst ein:
npm install slash [Link Text](https://github.com/sindresorhus/slash)
dann unter nodemodules den tmp-ordner angelegt
das war's.
Vielen Dank für das Skript; endlich eine Lösung unter Windows
-
Ich habe jetzt den Thread "Test-Adapter" und diesen hier durchgelesen, komme aber leider nicht wirklich weiter.
Mir würde es reichen, wenn in regelmäßigen Abständen ein aktueller Snapshot in meiner VIS angezeigt werden würde - das non plus ultra wäre ein Live-Bild.Eingesetzte Hardware
- Hikam A7 2. Generation mit SD-Karte
- QNAP Surveillance Station - Snapshot funktioniert, Video bei Alarm nicht
Das hier beschriebene Skript funktioniert nicht, da für Synos. Hat jemand vielleicht eine vergleichbare Lösung für QNAP + Hikam?
-
@maloross sagte in Hikam Kameras Snapshot erstellen und verschicken:
Mir würde es reichen, wenn in regelmäßigen Abständen ein aktueller Snapshot in meiner VIS angezeigt werden würde -
So etwas :
( deine URL eintragen vom Snapshot ! )