NEWS
Kamera erzeugter Schnappschuss als jpg oder png in VIS
-
So einfach funktioniert das nicht mehr.
Aber die Suche hätte dich @LaBamba schon ein wenig weitergebracht ;)
Gibt haufenweise Scripte, die dein "Problem" lösen.https://forum.iobroker.net/topic/29461/aufruf-welche-guten-javascripts-setzt-ihr-ein/25 (ziemlich in der Mitte von Chaot, Skript musste anpassen)
https://forum.iobroker.net/topic/32652/externes-bild-in-vis?page=1
https://forum.iobroker.net/topic/26875/gelöst-bildanzeige-veraltet
Seit JS Controller 2 ist fs.read und write.file die Vorgabe
Beispiel:
const bild1 = fs.readFileSync(folder,'snap01.jpg');
writeFile('0_userdata.0','alarm1.jpg', bild1);
@haselchen Stimmt da war was.
Danke -
@haselchen Stimmt da war was.
DankeHab mir selber ewig lange die Zähne dran ausgebissen.
Eine Gefrickel ohne Ende bis das mal ging.
@Glasfaser sei Dank 😊 -
Hab mir selber ewig lange die Zähne dran ausgebissen.
Eine Gefrickel ohne Ende bis das mal ging.
@Glasfaser sei Dank 😊@haselchen
Ich glaube, dann lasse ich die finger mal davon. Leider sind meine Kenntnisse da nicht überragend. -
@haselchen
Ich glaube, dann lasse ich die finger mal davon. Leider sind meine Kenntnisse da nicht überragend.@haselchen
Gibt es das Skript auch als Blockly? -
@haselchen
Gibt es das Skript auch als Blockly?Meine ja. Bin gerade nur am Handy.
Wenn @Glasfaser nicht schneller ist, könnte ich nachher gegen 23Uhr in meine Blockly Sammlung mal gucken. -
Meine ja. Bin gerade nur am Handy.
Wenn @Glasfaser nicht schneller ist, könnte ich nachher gegen 23Uhr in meine Blockly Sammlung mal gucken.@haselchen
Wäre super! Damit komme ich besser zurecht als mit js -
@haselchen
Wäre super! Damit komme ich besser zurecht als mit js -
@haselchen
So wie ich das Skript lese werden die Dateien im tmp Verzeichnis zwischengespeichert und dann ins VIS Verzeichnis verschoben.
... und dann mit Basic-image in VIS gebracht. -
@haselchen
So wie ich das Skript lese werden die Dateien im tmp Verzeichnis zwischengespeichert und dann ins VIS Verzeichnis verschoben.
... und dann mit Basic-image in VIS gebracht. -
Oder den Adapter https://github.com/ioBroker/ioBroker.cameras/blob/master/README.md verwenden und die URL vom Adapter in der Vis verwenden.
-
So im Groben dürfte das stimmen.
Wichtig sind die Abstände in Sekunden vom Holen des Bildes von der Kamera bis zum Zwischenspeichern und dann weiterleiten.@haselchen
Den ersten Teil habe ich schon hinbekommen. Die Bilder werden sauber abgelegt.

Übrigens der empfohlene Adapter geht bei mir nicht.

-
@haselchen
Den ersten Teil habe ich schon hinbekommen. Die Bilder werden sauber abgelegt.

Übrigens der empfohlene Adapter geht bei mir nicht.

So , bin am Rechner und schau mal.
Im Prinzip musste , wenn es bei dir fast die gleichen Geräte sind, nur paar Daten austauschen. Das Bild wird mir per Telegram dann geschickt.var timeout, timeout1, timeout2; var fs = require('fs'); on({id: 'hm-rpc.1.XXXXXXX.1.PRESS_SHORT', change: "any"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; timeout = setTimeout(function () { exec('wget --output-document /opt/iobroker/iobroker-data/tmp/alarm.jpg \'http://192.XXX.XXX.XXX/picture/1/current/\''); }, 2000); timeout1 = setTimeout(function () { const bild = fs.readFileSync('/opt/iobroker/iobroker-data/tmp/alarm.jpg'); writeFile('vis.0','alarm.jpg', bild); }, 4000); timeout2 = setTimeout(function () { sendTo("telegram.1", "send", { text: '/opt/iobroker/iobroker-data/files/vis.0/alarm.jpg' }); }, 6000); // ab hier so oft wiederholen wie man es möchte }); -
So , bin am Rechner und schau mal.
Im Prinzip musste , wenn es bei dir fast die gleichen Geräte sind, nur paar Daten austauschen. Das Bild wird mir per Telegram dann geschickt.var timeout, timeout1, timeout2; var fs = require('fs'); on({id: 'hm-rpc.1.XXXXXXX.1.PRESS_SHORT', change: "any"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; timeout = setTimeout(function () { exec('wget --output-document /opt/iobroker/iobroker-data/tmp/alarm.jpg \'http://192.XXX.XXX.XXX/picture/1/current/\''); }, 2000); timeout1 = setTimeout(function () { const bild = fs.readFileSync('/opt/iobroker/iobroker-data/tmp/alarm.jpg'); writeFile('vis.0','alarm.jpg', bild); }, 4000); timeout2 = setTimeout(function () { sendTo("telegram.1", "send", { text: '/opt/iobroker/iobroker-data/files/vis.0/alarm.jpg' }); }, 6000); // ab hier so oft wiederholen wie man es möchte });@haselchen
gibt es das sent to usw. in blockly -
@haselchen
gibt es das sent to usw. in blockly -
Doch, von tmp nach vis.0
read file , write fileIch hab es nur so hinbekommen.
Klappt perfekt.In VIS dann basic-image als Widget.

@haselchen
wie es ausschaut geht der erste teil bei mir nicht.
Ich habe einen Datenpunkt angelegt, klingelt jemand, geht der Datenpunkt auf true.Wüsste nicht wie man diesen hier integriert!
-
@haselchen
wie es ausschaut geht der erste teil bei mir nicht.
Ich habe einen Datenpunkt angelegt, klingelt jemand, geht der Datenpunkt auf true.Wüsste nicht wie man diesen hier integriert!
-
var timeout, timeout1, timeout2; var fs = require('fs'); on({id: '0_userdata.0.Aussen.ALP600_klingel', change: "any"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; timeout = setTimeout(function () { exec('wget --output-document /tmp/klingel/klingel1.jpg \'http://192.168.xxx.xx/cgi-bin/images_cgi?channel=0&user=xxxx&pwd=xxxx''); }, 2000); timeout1 = setTimeout(function () { const bild = fs.readFileSync('/tmp/klingel/klingel1.jpg'); writeFile('vis.0','/klingel/klingel.jpg', bild); }, 4000); timeout2 = setTimeout(function () { sendTo("telegram.1", "send", { text: '/opt/iobroker/iobroker-data/files/vis.0/klingel/klingel.jpg' }); }, 6000); // ab hier so oft wiederholen wie man es möchte });
Bin ratlos!
-
var timeout, timeout1, timeout2; var fs = require('fs'); on({id: '0_userdata.0.Aussen.ALP600_klingel', change: "any"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; timeout = setTimeout(function () { exec('wget --output-document /tmp/klingel/klingel1.jpg \'http://192.168.xxx.xx/cgi-bin/images_cgi?channel=0&user=xxxx&pwd=xxxx''); }, 2000); timeout1 = setTimeout(function () { const bild = fs.readFileSync('/tmp/klingel/klingel1.jpg'); writeFile('vis.0','/klingel/klingel.jpg', bild); }, 4000); timeout2 = setTimeout(function () { sendTo("telegram.1", "send", { text: '/opt/iobroker/iobroker-data/files/vis.0/klingel/klingel.jpg' }); }, 6000); // ab hier so oft wiederholen wie man es möchte });
Bin ratlos!
-
@haselchen
Ist der von github direkt? -
@haselchen
Ist der von github direkt?Du musst nur fs hinschreiben in die Zeile Zusätzliche NPM Module.
Und die Haken setzen wie ich sie habe.Und dann kontrollier deine Zeile 12. Auf dem ersten Blick muss es da klingel1.jpg heissen.
Zeile 16 dann wohl auch.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden
