NEWS
Bei Klingeln cam Photo speichern
-
Ich wollte gerne das wenn jemand klingelt unten das von einer Cam ein Photo gespeichert wird
Will ich benutzen
nuki-extended.0.openers.haustür_unten.state.ringState
und
motionEye http://192.168.178.62:8765/picture/2/current/da ich keine ahnung von blockly hab brauch ich eure hilfe
-
This post is deleted! -
-
Bei mir wird, wenn es klingelt ein Bild gemacht und mir über Telegramm zugeschickt bei Abwesendheit
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable type="timeout" id="KameraEingangTimeout">KameraEingangTimeout</variable> <variable type="timeout" id="KameraEingangTimeout2">KameraEingangTimeout2</variable> <variable type="timeout" id="KameraEingangTimeout3">KameraEingangTimeout3</variable> </variables> <block type="comment" id="kGX98j}5F(2C~L@4|E^~" x="-522" y="-310"> <field name="COMMENT">Kamerabild Eingang beim Klingeln auf Telegram</field> <next> <block type="on_ext" id="2j@b2{0;E6VEv|ca0_[n"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">true</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="aTcl(uOpOdE_Y#5vVEHp"> <field name="oid">hm-rega.0.61837</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="0XNBi(O3.yg%Ir~V$SY,"> <value name="IF0"> <block type="logic_compare" id="7[NU7lbQHV~kfz={(jZ8"> <field name="OP">EQ</field> <value name="A"> <block type="get_value_var" id="9_TH]^Esm*JqmJPia1^Q"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text"> <field name="TEXT"></field> </shadow> <block type="field_oid" id="Frfa(olkKN!U2GB9=5~*"> <field name="oid">hm-rega.0.2289</field> </block> </value> </block> </value> <value name="B"> <block type="logic_boolean" id="j`jygyLN}_qK-9B@]*#J"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="telegram" id="+66$1v]jFR5]agD;#yt%"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="/?e[,dEssN6Scjp?`lG3"> <field name="TEXT">Es klingelt, jemand steht vor der Haustür</field> </shadow> </value> <next> <block type="exec" id="n{4xKX-pif:/7K{.H0|."> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="COMMAND"> <shadow type="text" id="kJVTb*_6Tth4c-y;t::M"> <field name="TEXT">wget --output-document /opt/iobroker/Kamerabilder/Eingang.jpg "http://xxx.xxx.xxx.xxx/snap.jpeg"</field> </shadow> </value> <next> <block type="timeouts_settimeout" id="p?2]Bqf-u/)/bqWv3ggN"> <field name="NAME">KameraEingangTimeout</field> <field name="DELAY">2</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="telegram" id="FL]N=e$Mq#yD4_SpnHw5"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="D`he76{stPJv5$?^?Snw"> <field name="TEXT">/opt/iobroker/Kamerabilder/Eingang.jpg</field> </shadow> </value> </block> </statement> <next> <block type="timeouts_wait" id="!h7)`WNsTG0GZ:O7/~?5"> <field name="DELAY">10</field> <field name="UNIT">sec</field> <next> <block type="exec" id="-yySkn%FMD?!o-L/34jz"> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="COMMAND"> <shadow type="text" id="qDnzLwMns2yscdO[M~uL"> <field name="TEXT">wget --output-document /opt/iobroker/Kamerabilder/Eingang.jpg "http://xxx.xxx.xxx.xxx/snap.jpeg"</field> </shadow> </value> <next> <block type="timeouts_settimeout" id="2yHR=|D-4_pE6B8kQSi,"> <field name="NAME">KameraEingangTimeout2</field> <field name="DELAY">2</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="telegram" id="@{_JSYTF-9}o}4*?XUf-"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="q~Q9oG;$K?`Nz~@7$HWe"> <field name="TEXT">/opt/iobroker/Kamerabilder/Eingang.jpg</field> </shadow> </value> </block> </statement> <next> <block type="timeouts_wait" id="!JzTB`=+eA7Iq++;1pfm"> <field name="DELAY">10</field> <field name="UNIT">sec</field> <next> <block type="exec" id="=mn_(D.|[kLxLIobc@7p"> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="COMMAND"> <shadow type="text" id="K}(n|DLPpdy:O9@x0_.$"> <field name="TEXT">wget --output-document /opt/iobroker/Kamerabilder/Eingang.jpg "http://xxx.xxx.xxx.xxx/snap.jpeg"</field> </shadow> </value> <next> <block type="timeouts_settimeout" id="no|t|MGlaRRRJul+Dd?Z"> <field name="NAME">KameraEingangTimeout3</field> <field name="DELAY">2</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="telegram" id="tzL[Jk[A{,Y]tHoc}Z+N"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="1(Dan1nqsiZ4!Z#4k.#G"> <field name="TEXT">/opt/iobroker/Kamerabilder/Eingang.jpg</field> </shadow> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </xml>
dazu habe ich unter "/opt/iobroker" einen Ordner "Kamerabilder" angelegt. Wo alle Bilder gespeichert werden die ich so mache
Nutze teilweise auch motionEye dazu
In dem Blockly bekomme ich 3 Bilder in vorgegebener Zeit geschickt
-
@Horst-Böttcher das "Uhula-Script" geht gut. Hier auch mit motion eye Bild:
// ------------------------------------------------------------------------- // Dieses Script überwaht den Zustand eines Bewegungsmelders und speichert bei // Aktivierung ein Bild einer Überwachnungskamera in einem Vereichnis und sendet // dieses via Telegram.0-Adapter. Nach 10 Sek wird ein weiteres Bild erstellt und // gesendet. // Die Speicherung der Bilder erfolgt als "Stack", d.h. das aktuellste Bild bekommt // immer den Suffix "0" und es werden n Bilder mit den Suffixen 1..n-1 vorgehalten // Uhula 2017.11 // ------------------------------------------------------------------------- // ------------------------------------------------------------------------- // Konfiguration // ------------------------------------------------------------------------- //Edimax Detection Variable anlegen: //createState('javascript.0.Variablen.Edimax-detection2', false, //Edimax-detection für VIS-Darstellung //{type: 'boolean', name: 'Edimax-detection', min: false, max: true, read: true, write: true, role: 'javascript' }); // Objekt-ID des Bewegungsmelders const oidLichtBewmelderTuer = '0_userdata.0.Cam.tapo_C200.motion_detected_extern'/*motion detected extern*/; // URL zur Kamera umn ein Image (jpg) zu erhalten const cam_url = "http://192.168.1.25:8765/picture/2/current/"; // Pfadangabe für die Speicherung der Bilder, der Pfad muss existieren const dest_path = '/opt/iobroker/iobroker-data/files/vis.0/cams/edimax/'; // Anzahl der Bilder, die vorgehalten werden sollen const imageCountMax = 8; // Prefix für die Bildnamen const imageNamePre = "tapo_"; // ------------------------------------------------------------------------- // Scriptteil // ------------------------------------------------------------------------- var request = require('request'); var fs = require('fs'); // Bild an telegram schicken function sendImage (path) { try { var stats = fs.statSync(path); var msg = formatDate(stats.birthtime,"DD.MM.YYYY hh:mm:ss") + " " + path.substring(path.lastIndexOf('/')+1); sendTo('telegram.1', { text: path, caption: msg, disable_notification: true }); } catch(err) { if (err.code != "ENOENT") log(err); } } // löscht eine Datei synchron (wartet auf das Ergebnis) function fsUnlinkSync(path) { try { var stats = fs.statSync(path); try { fs.unlinkSync(path); } catch(err) { if (err.code != "ENOENT") log(err); } } catch(err) { if (err.code != "ENOENT") log(err); } } // benennt eine Datei synchron um (wartet auf das Ergebnis) function fsRenameSync(oldPath, newPath) { try { var stats = fs.statSync(oldPath); try { fs.renameSync(oldPath, newPath); } catch(err) { if (err.code != "ENOENT") log(err); } } catch(err) { if (err.code != "ENOENT") log(err); } } // Bild speichern und senden function saveImage() { // Bild imageCountMax-1 löschen fsUnlinkSync( dest_path + imageNamePre + (imageCountMax-1) + ".jpg" ); // Bilder 0..imageCountMax-2 umbenennen for (var i=imageCountMax-2; i >= 0; i-- ) { fsRenameSync(dest_path + imageNamePre + i + ".jpg", dest_path + imageNamePre + (i+1) + ".jpg"); } // Bild 0 löschen var fname = imageNamePre + "0.jpg"; fsUnlinkSync( fname ); // Bild holen und speichern request.get({url: cam_url, encoding: 'binary'}, function (err, response, body) { fs.writeFile(dest_path + fname, body, 'binary', function(err) { if (err) { log('Fehler beim Bild speichern: ' + err, 'warn'); } else { // dem Filesystem 2 Sek Zeit zum Speichern lassen setTimeout(function() { sendImage(dest_path + fname); }, 2000); } }); }); } // sofort ein Bild senden und nach 4 Sek erneut function onEvent() { saveImage(); setTimeout(function() { saveImage(); }, 4 * 1000); // setTimeout(function() { saveImage(); }, 9 * 1000); } // Ereignisroutine on({id: oidLichtBewmelderTuer, val: true}, function (obj) { onEvent( obj ); }); // manuelle Ausführung (Test) onEvent();