NEWS
Bild unter vis.0 aktualisiert nicht
-
@coyote
Soll ja jeder machen wie er meint.
Wäre mir zu aufwendig.
Hab mir einen 2 ten Pi gegönnt auf dem Motioneye läuft.
Bilder oder Http Stream abholen ist dann kein Problem mehr.
Zumal das leidige Thema RTSP Stream damit auch erledigt ist.Dann brauchste das Bild nicht zwischen speichern sondern holst das direkt von der Cam
ab wenn getriggert wird. -
@Glasfaser danke, habe erst im falschen Script geschaut, funktioniert tatsächlich. Habe es noch schnell an meine Bedürfnisse angepasst, brauche ja nur ein Bild.
@Ralla66 bei mir läuft alles über einen bzw. zwei Nuc's somit wäre das, das geringste Problem, ich bin da aber noch an Zoneminder testen.
Aber habe ich es richtig verstanden, du zeigst direkt ab trigger, dann den Snapshot Pfad der Cam an, korrekt?
Welches Widget? Iframe? -
@apollon77 was mich jetzt aber interessieren würde ist, warum ein direktes fs.writeFile nach vis.0 nicht geht, sondern erst nach /tmp dann ein fs.readFileSync des temporären Bildes von /tmp und dann writeFile nach vis.0
-
Bitteschön
-
@coyote
In meiner Vis läuft immer die Live Cam.
Bei Alarm schaltet die Visu auf Kamera View um.Wenn Alarmanlage ist ein und ein Fenster / Tür Kontakt wird aktiviert,
wird vom IO / Blockly das MotionEye Live Bild geholt und dierkt per E-Mail Adapter versandt.Zwischenspeichern des Bildes benötige ich nicht.
So als Anregung das es auch anders geht. -
@Ralla66 achso ok, darum ging es mir ja nicht, dass mache ich über telegram und in der Visu läuft auch der Stream. Ich will ja zb beim klingeln oder Posteinwurf den letzten Snapshot in der Visu anzeigen, wenn ich auf ein Icon klicke. Aber funktioniert ja jetzt.
-
ehrlich gesagt komm ich nicht mehr ganz mit. was genau hast du jetzt getan damit es wieder geht?
-
@Glasfaser sagte in [Frage BLOCKLY ] Klingel Bild per Telegram versenden / Snapshot von Cam per Telegram versenden:
Ich habe das hier so bei mir angepasst (Vorlage von Chaot) :
Es werde 4 Screenshot´s erstellt , per Telegramm versendet und in vis.0/klingelbild zur weiteren Verwendung hinterlegt .
Datenpunkt in const idklingel und die vier URL anpassen .
-
@saeft_2003 habe das Script aus dem Link von Glasfaser benutzt, damit geht es. Kann ich morgen Mal hochladen, habe es für mich soweit gekürzt, da ich nur ein Bild benötige.
-
und du kannst jetzt das bild im vis datei manager direkt auswählen? Ja wäre nett wenn du das machst. Könnte man das auch in blockly nachbauen? weil da kenn ich mich ein wenig aus, direkt mit js leider nicht wirklich...
-
@coyote Bitte liess die Erklärungen im js.controller 2.1 Thread .. da steht alles genau drin
und da ist auch ein Thread verlinkt mit weiteren Details und Skripten.
Ein kopieren in das files/vis.0 macht das File nicht im ioBroker Storage bekannt ... und damit existiert es für den ioBroker nicht. Erst mit writeFile machst Du das
-
Danke für die Erklärung weißt du ob das writefile auch mit blockly möglich ist?
Wäre nett wenn du heute im laufe des Tages mal dein script zu Verfügung stellen könntest.
-
@apollon77 ich wusste doch, dass ich da irgendwo mal was gelesen hatte, habe es gestern nur nicht mehr gefunden. Ich werde nochmal im js-controller thread suchen.
Aber wieso kopieren? wie oben in meinem ersten Script, schreibe ich doch damit die Datei in vis oder nicht?
fs.writeFile(dest_path + 'Postbild.jpeg', body, 'binary', function(err) {
aber so geht es ja nicht.
@saeft_2003 hier:
var source_url = 'http://192.168.XX.XX:2000/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=XXXX&pwd=XXXX', dest_path = '/opt/iobroker/iobroker-data/files/vis.0/'; var request = require("request"); var fs = require('fs'); // Speichert das erste Bild function saveImage(){ request.get({url: source_url, encoding: 'binary'}, function (err, response, body) { fs.writeFile('/tmp/' + 'Postbild.jpg', body, 'binary', function(err) { if (err) { log('Fehler beim Bild speichern: ' + err, 'warn'); } else { log('Webcam Bild gespeichert'); } }) }) // Bilder werden nach vis gespeichert const bild1 = fs.readFileSync('/tmp/Postbild.jpg'); writeFile('vis.0','/Postbild.jpg', bild1); };
EDIT; @apollon77 habs gefunden, auch die Links dazu, wo es besprochen wurde. Danke
-
Danke fürs skript werde ich heute Abend testen. Aber wie gesagt da ich in js nicht wirklich fitt bin könnte es sein das ich noch die ein oder andere Frage habe...
-
@saeft_2003 Klar, kein Thema sag Bescheid
-
Die erste Frage habe ich schon
was ist in dem Skript der trigger? Wie löst du dieses aus?
-
@saeft_2003 sorry, ich hab nicht mitbekommen, dass du hier geantwortet hast, muss Mal schauen warum ich keine Benachrichtigungen mehr bekomme.
Ausgelöst wird es in einem anderen Teil des Scripts, mein Trigger ist hier der Posteinwurf, den hatte ich jetzt hier nicht mit drin, kannst aber ja nehmen was du möchtest. Ansonsten kann ich dir nachher auch den restlichen Teil hochladen
-
Ich bräuchte es so das wenn der Datenpunkt (meine-datenpunkte.0.xyz) aktualisiert wird, wird das skript einmal ausgeführt.
Kannst du das in das skript noch mit rein machen?
-
@saeft_2003 Guten morgen,
da ich jetzt nicht weiß, was für ein Typ dein Datenpunkt ist, versuche es einfach mal so.var source_url = 'http://192.168.XX.XX:2000/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=XXXX&pwd=XXXX', dest_path = '/opt/iobroker/iobroker-data/files/vis.0/'; var request = require("request"); var fs = require('fs'); on({id: 'dein-Datenpunkt.0.XYZ', change: "any"}, function (obj) { request.get({url: source_url, encoding: 'binary'}, function (err, response, body) { fs.writeFile('/tmp/' + 'Postbild.jpg', body, 'binary', function(err) { if (err) { log('Fehler beim Bild speichern: ' + err, 'warn'); } else { log('Webcam Bild gespeichert'); } }) }) // Bilder werden nach vis gespeichert const bild1 = fs.readFileSync('/tmp/Postbild.jpg'); writeFile('vis.0','/Postbild.jpg', bild1); });
Bei diesem Beispiel ist es jetzt aber so, dass egal wie sich dein Datenpunkt ändert, wird das Bild aktualisiert.
"change: any"Hast du einen true/false Datenpunkt, kannst du auch statt "any" z.B. "ne" schreiben, dann wird nur getriggert wenn der Datenpunkt sich von "true" auf "false" oder umgekehrt ändert.
-
Vielen Dank ich werde es testen! Der Datenpunkt ist ein Logikwert mit true false. Das mit dem aktualisiert sollte schon so passen, falls nicht kann ich any ja einfach ändern.
Ich melde mich dann nochmal spätestens heute Abend...