NEWS
Hikam Kameras Snapshot erstellen und verschicken
-
@Jey-Cee tja, hab ne Glaskugel mit Käsekuchensupport
Laktosefrei und Zuckerfrei, trotzdem süß.. ! -
@lost-in-translation welche Datenpunkte sind denn bei den Kameras angelegt worden?
-
@lost-in-translation
@Jey-Cee
da steht zwar eine Snapshot URL in den Datenpunkten (die ich auch schon von einer App kannte) aber im Browser passiert da mal gar nix. Ich weiß gar nicht ob die HiKam das überhaupt selbst können, jedenfalls finde ich nirgends etwas darüber...?
(Deshalb habe ich die an der Syno)
Können die das überhaupt, oder braucht es dazu eine App oder was anderes ? In den Apps wird quasi immer vom rtsp stream ein Foto gemacht. Ginge das auch hier irgendwie ?
z.B.
http://192.168.1.59:8090/onvif/snapshot -
@ilovegym said in Hikam Kameras Snapshot erstellen und verschicken:
@lost-in-translation welche Datenpunkte sind denn bei den Kameras angelegt worden?
Öhm nicht wirklich was, womit ich auch nur zuordnen könnte, welche welche ist:
Irgendwas muss ich falsch machen.
ciao
frank
-
@lost-in-translation
geh mal ganz oben in der Ordnerstruktur der Kamera auf den Bleistift und trage unter nativ Deine Zugangsdaten ein, dann kommen mehr Daten. -
@dslraser said in Hikam Kameras Snapshot erstellen und verschicken:
@lost-in-translation
geh mal ganz oben in der Ordnerstruktur der Kamera auf den Bleistift und trage unter nativ Deine Zugangsdaten ein, dann kommen mehr Daten.Schon mehr:
Jetzt könnte ich zumindest mal die Namen zuordnen anhand der Daten. Das mache ich dann mal morgen.
Immerhin ein paar Schritte weiter. Vielen Dank.ciao
frank
-
Sieht besser aus. Es gibt sogar URLs:
Allerdings im Browser klappt bei der URL mal gar nix. Wie komme ich denn jetzt mit diesem Status weiter Richtung ich mache ein Bild, dass ich dann verschicken kann?
Bei der Chinacam konnte ich so ein Bild ins Dateisystem holen:
Genau das klappt aber so mit der Hicam nicht. Wie kann ich das machen?
ciao
frank
-
@lost-in-translation es kann sein das die Cam den Snapshot an einen vorher definierten Ort ablegt und die URL nur zur Auslösung dient. Schau dir mal die Einstellungen deiner Cam genau an.
-
@Jey-Cee said in Hikam Kameras Snapshot erstellen und verschicken:
@lost-in-translation es kann sein das die Cam den Snapshot an einen vorher definierten Ort ablegt und die URL nur zur Auslösung dient. Schau dir mal die Einstellungen deiner Cam genau an.
Hmm, ich habe bisher nirgends auch nur einen Hinweis gefunden, dass die Hikams das könnten. Ich dachte bisher, ich müsste mit einem Programm einen Snapshot aus dem rtsp Stream rausknipsen.
So eine Lösung suche ich.
@dslraser
Wie hast Du das mit der Syno gemacht? Dein Login klappt, aber der dritte Link haut einen 401 zurück:{"error":{"code":401},"success":false}
Irgendwie nicht mein Tag. Am liebsten hätte ich es auch ohne Mitwirkung der syno ...
ciao
frank
-
@lost-in-translation sagte in Hikam Kameras Snapshot erstellen und verschicken:
Wie hast Du das mit der Syno gemacht? Dein Login klappt, aber der dritte Link haut einen 401 zurück:
Dann hast Du nicht die richtige camera id im dritten Link. (da steht eine Zahl)
cameraID=9
Da kannst Du einfach mal andere Zahlen durchprobieren, bis die richtige Cam kommt.
-
@lost-in-translation sagte in Hikam Kameras Snapshot erstellen und verschicken:
Wie hast Du das mit der Syno gemacht? Dein Login klappt, aber der dritte Link haut einen 401 zurück:
oder Du schaust auf der Syno nach. Rechtsklick auf die Kamera in der Surveillance Station und Streampfad freigebenn, da steht auch die ID
-
@dslraser
So einfach Bei 1 und 2 kommt tatsächlich was.
Jetzt muss ich mich mal mit Deinem javascript auseinandersetzen, um das in Blockly reinzutüten.ciao
frank
-
@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.