NEWS
[gelöst] Alarmserver für IP Cam - wie realisieren
-
@ dna909: vielen Dank für die Bestätigung, dann mache ich mich heute abend mal ran.
@ kmxak: genau so würde ich das auch machen. Die Kamera muss ja auch eine Art internen Timer haben für "Bewegung erkannt", oder? Könnte man entsprechend timen
-
Die Kamera hat meines Wissens nach keinen internen Timer. Die schickt einfach bei "Bewegung erkannt" ne Meldung.
Ich setzte den Datenpunkt nach Empfang und Auswertung wieder auf false. Das passiert mit folgendem Blockly script:
! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">
! <block type="on" id="w3ZWaira6jV*6%u%4q|" x="52" y="44"><field name="OID">javascript.0.Alarmanlage.Bewegung_GartenCam</field> ! <field name="CONDITION">true</field> ! <statement name="STATEMENT"><block type="controls_if" id=":9w?UETiJW1Unc%R_rqu"><value name="IF0"><block type="logic_compare" id="2+p7mu_LHx5xKLEct.8["><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="D77DRU}%=n^HXh:)!okU"><field name="ATTR">val</field> ! <field name="OID">hm-rpc.0.KEQ1022493.1.STATE</field></block></value> ! <value name="B"><block type="math_number" id="U*|(rmt!#ydC,@,]%)V8"><field name="NUM">0</field></block></value></block></value> ! <statement name="DO0"><block type="control" id="J;)fzB7F}Rki7G+cRb#F"><mutation delay_input="false"></mutation> ! <field name="OID">javascript.0.Alarmanlage.Alarmanzahl_GartenCam</field> ! <field name="WITH_DELAY">FALSE</field> ! <value name="VALUE"><block type="math_arithmetic" id="@H.Yuk.4LuQCCWF=1![M"><field name="OP">ADD</field> ! <value name="A"><shadow type="math_number" id="}uGcqgw%Mdte2-{1?xCf"><field name="NUM">1</field></shadow> ! <block type="get_value" id="}*Oi.lZyy~hs5x;C7)jx"><field name="ATTR">val</field> ! <field name="OID">javascript.0.Alarmanlage.Alarmanzahl_GartenCam</field></block></value> ! <value name="B"><shadow type="math_number" id=":GcS8GQFhp!CNQs+R1u0"><field name="NUM">1</field></shadow></value></block></value> ! <next><block type="controls_if" id="B~Cp5@TC~cE;G~e#X@xh"><value name="IF0"><block type="logic_compare" id="dol;XYou|sG1iB;w4!#5"><field name="OP">GTE</field> ! <value name="A"><block type="get_value" id="1BK|V?KK21rGC^)Mq22K"><field name="ATTR">val</field> ! <field name="OID">javascript.0.Alarmanlage.Alarmanzahl_GartenCam</field></block></value> ! <value name="B"><block type="math_number" id="j9.ol]mSwtVjWg7BB@NC"><field name="NUM">1</field></block></value></block></value> ! <statement name="DO0"><block type="controls_if" id="^aCfBxoem22AeQV,wjtr"><value name="IF0"><block type="logic_operation" id="S|XBibE+}GFVRYhkg?sX"><field name="OP">OR</field> ! <value name="A"><block type="logic_compare" id=":M2|0-~QzEesyoZVfCZ9"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="aGd96SFGWDJhs?tX#VJL"><field name="ATTR">val</field> ! <field name="OID">hm-rega.0.4495</field></block></value> ! <value name="B"><block type="logic_boolean" id="(PFPZj-_8rX~}sIK+tu#"><field name="BOOL">TRUE</field></block></value></block></value> ! <value name="B"><block type="logic_compare" id="IpRQ9|4bI(Yh@}]jL|Pe"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id=")rqi%Y1wQ
ff9++H=RKx"><field name="ATTR">val</field>
! <field name="OID">hm-rega.0.4466</field></block></value>
! <value name="B"><block type="logic_boolean" id="x)R/}GQqb)@(@9#CK9L"><field name="BOOL">TRUE</field></block></value></block></value></block></value> ! <statement name="DO0"><block type="control" id="@tZr(c7yoxhkmivQSb)P"><mutation delay_input="false"></mutation> ! <field name="OID">javascript.0.Alarmanlage.Alarm_GartenCam</field> ! <field name="WITH_DELAY">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="KCl{7Zi,KV,*hi,n_(pn"><field name="BOOL">TRUE</field></block></value> ! <next><block type="telegram" id="S%;;3)N:D^j1e[E%Qn#G"><field name="INSTANCE">.0</field> ! <value name="MESSAGE"><shadow type="text" id="C3!OmQ=~UDZ;I,iM*H5s"><field name="TEXT">Alarm Garten Cam ausgelöst</field></shadow></value> ! <next><block type="control" id="/3:O{zQ
4a7s2|7hz;OF"><mutation delay_input="false"></mutation>
! <field name="OID">javascript.0.Alarmanlage.Alarmanzahl_GartenCam</field>
! <field name="WITH_DELAY">FALSE</field>
! <value name="VALUE"><block type="math_number" id="ovA3?HbFqx^W]hXy|+Uk"><field name="NUM">0</field></block></value></block></next></block></next></block></statement></block></statement>
! <next><block type="timeouts_settimeout" id="{.p]9|!FS5])fz;c9!]Y"><field name="NAME">timeout</field>
! <field name="DELAY">70000</field>
! <field name="UNIT">ms</field>
! <statement name="STATEMENT"><block type="control" id="MTRS6Uc~H%|QI[l?6.=#"><mutation delay_input="false"></mutation>
! <field name="OID">javascript.0.Alarmanlage.Alarmanzahl_GartenCam</field>
! <field name="WITH_DELAY">FALSE</field>
! <value name="VALUE"><block type="math_number" id="pLZ]c^-riRtlkq4qTE+U"><field name="NUM">0</field></block></value></block></statement>
! <next><block type="control" id="Xv7IO-kM~RAE;=u(1hND"><mutation delay_input="false"></mutation>
! <field name="OID">javascript.0.Alarmanlage.Bewegung_GartenCam</field>
! <field name="WITH_DELAY">FALSE</field>
! <value name="VALUE"><block type="logic_boolean" id="1ayWNLyTTf3f3FtPc,a|"><field name="BOOL">FALSE</field></block></value></block></next></block></next></block></next></block></statement></block></statement></block></xml>Anmerkung:
Ich werte die Meldung der Kamera nur aus wenn er nicht regnet, da bei stärkerem Regen die Kamera andauernd auslöst.
Ich setze "Alarm erkannt" erst auf true, wenn innerhalb von 70 Sekunden 2 Meldungen der Kamera kommen. Speziell Nachts werden vorbeifliegende Mücken o.ä. gerne mal "Bewegung erkannt" auslösen.
Die 70 Sekunden sind mir eigentlich zu lang, aber die Kamera kann nur alle 60 sek eine Meldung absetzen.
-
Hallo Linedancer,
die 60 Sekunden meinte ich. Dachte da an die Homematic BWMs, die ja auch nicht im Milisekundentakt Meldungen raushauen können, bloß weil jemand durch den Raum geht.
Bei mir wird die Kamera ohnehin nur bei Abwesenheit und eingeschalteter Alarmanlage angeschaltet. Wenn eine Mücke auslöst, scheint mir die Empfindlichkeit zu hoch zu sein?
-
Hallo Linedancer,
die 60 Sekunden meinte ich. Dachte da an die Homematic BWMs, die ja auch nicht im Milisekundentakt Meldungen raushauen können, bloß weil jemand durch den Raum geht.
Bei mir wird die Kamera ohnehin nur bei Abwesenheit und eingeschalteter Alarmanlage angeschaltet. Wenn eine Mücke auslöst, scheint mir die Empfindlichkeit zu hoch zu sein? `
Ich hab die Bewegungserkennung meiner Outdoorcam auch deaktiviert. Es gibt zu viele Fehlalarme. Die fliegende Mücke ist ein gutes Beispiel, fliegt sie direkt vor der Linse lang wie es Mücken (oder diese Nachtmotten) tun weil sie vom (IR-)Licht angelockt werden, dann sind eben 20 % vom Bildschirm für die Software "in Bewegung" und es wird Alarm ausgelöst. Im Wind wackelnde Laubbäume genauso, oder auch schnelle Wolkenschatten tagsüber. Und wenn man den Alarm so unempfindlich einstellt dass Mücken, Wolken und Laub nicht mehr auslösend sind dann schleicht sich der Einbrecher auch erfolgreich vorbei…
da sind gekoppelte Bewegungsmelder als Auslöser deutliche besser geeignet, weil dann Wind, Laub, Wolken, Insekten schonmal wegfallen weil die vom "Wärme?)Sensor nicht erfasst werden und höchstens die Katze das auslöst.
Für outdoor und Bildauswertung braucht es schon sehr definierte und "ruhige, problemlose" Ecken. Haustürüberwachung bekommt man so noch hin mit Motiondetection, aber den Vorgarten oder Hof eher nicht.
-
Outdoor ist es tatsächlich sehr schwierig. Ich könnte mir hier vorstellen das ein Mix aus Kamera löst alarm aus und BW auch und nun wird erst der Alarm geschaltet ein gutes Ergebnis bringen könnte.
Oder einen Mix aus mehreren Alarmbereichen je nachdem wie die Kamera positioniert ist. Bei mir im Treppenhaus könnte ich gut um eine Ecke herum triggern.
Bei mit wird mir zuerst ein Bild geschickt und wenn dann noch die Tür geöffnet wird geht der Alarm erst los.
Auch habe ich den Alarmbereich sehr klein gehalten und die Sensiblität sehr stark nach unten geschraubt. Bislang (1 Woche) bekomme ich keine Fehlalarme mehr zugeschickt. Und wurde zumindest wie ich es sagen kann alles richtig erkannt.
Mit Wind Schatten usw ist es Outdoor echt schlimm.
Ich hatte das mit einer externen Software (Camspy) gut im Griff aber habe es abgeschaltet macht mir zuviel Last auf meinem Server. Die Mücken/Motten in der Nacht sind bei mir der Hauptauslösegrund.
-
Frage erledigt… Update war nicht installiert
-
Dieses Thema interessiert mich stark.
Ich arbeite mit Mobotix IP Cams welche ich auswerten möchte.
Die Mobotix Cams können ebenfalls Netzwerkmeldungen bei Alarmauslösung verschicken.
Da ich programmiertechnisch ein Laie bin, mache ich in io.broker alles in Blockly - das wiederrum klappt auch sehr gut!
Frage, wie kann ich Blockly auf einen entsprechenden Http Befehl der Netzwerkkamera warten?
Die weiteren Reaktionen sollten dann mit "Falls,…." Bausteinen einfach gelöst sein.
Einen Timer bzw. eine sogenannte "Totzeit" hat die Mobitix Cam übrigens integriert. Hier kann ich sekundengenau einstellen wann eine weitere Bewegung auslösen soll. Ich kann auch einstellen wenn "x Bewegungen innerhalbd X Sekunden" nach dem ersten Alarm erschienen sind, dass dann wieder eine Alarmmeldung geschickt wird.
Empfindlichkeit der Fenster lässt sich ebenfalls gut anpassen um Kleintier Fehlalarme zu unterbinden. Eine Spinne die direkt vor die Linse krabbelt, wird jedoch auch damit nicht ausgeschlossen...
Ansonsten sind die Mobotix Cams echt super.
-
Ich würde an deiner Stelle mal schauen, ob du nicht einen Alarmserver in der Cam eintragen kannst.
Dann installierst Du dir den SimpleApi-Adapter, schickst eine Alarmmeldung an ioBroker und die kannst Du mit Blockly verarbeiten.
Da ich diese Kameras nicht kenne, kann ich leider nicht sagen, ob sie die Möglichkeit bietet, den Alarmserver frei einzustellen.
Ansonsten wäre die Vorgehensweise, wie in diesem Thread beschrieben.
mfg
dna909
-
Folgende Netzwerk Alarme kann ich in der Mobotix einstellen:
Alternativ statt mit Bild / Videoclip auch als "nur Text":
Welche Einstellungen würdet ihr hier wählen?
Vermutlich wird io.broker keine Bilder o.ä. verarbeiten können?
Mache mich demnächst mal ran und teste das ganze. Wird spannend
-
ALso ich würde bei "Zieladresse" die ip deines iobroker Rechners plus als Port die 8087 wie in meinem Beispiel oben eintragen.
Bei "Dateityp" NUR TEXT würde ich als Nachricht das rein schreiben was in meinem Beispiel oben unter Serverpfad steht. Du musst nur "Alarm_GartenCam" durch einen von dir angelegten Datenpunkt vom Typ LOGIK ersetzen.
-
Danke für den Ansatz, ich habe einen Weg gefunden wie man mit Mobotix Kamera eine Aktion in io.broker auslösen kann:
Zieladresse = Die IP Adresse eures io.brokers mit Port
javascript.0.Klingel = ist eine von mir erzeugte Variable, die dann auf "true" gesetzt wird, sobald die Mobotix diesen Befehl sendet.
Weitere Aktionen kann man dann mit Blockly mit einfacher Überwachung dieser Variable auslösen.
Funktioniert einwandfrei!
Nächste Herausforderung: Wie ein Bild von der Mobotix empfangen?
Hier zunächst eine gute Infoseite über CGI Parameter der Mobotix: http://webcam.vhs-ehingen.de/help/help?cgi-image
Ein Mobotix Standbild kann man z.B. abrufen unter Verwendung der IP Adresse der Mobotix Kamera: http://192.168.xxx.xx/cgi-bin/image.jpg
Dieses Bild würde ich nun am liebsten per Telegram an mein Smartphone schicken. Das dürfte die schnellste und eleganteste Lösung sein.
Leider habe ich im Telegram Blockly Adapter keine Einstellmöglichkeit dafür gefunden.
Habt ihr eine Idee dafür?
-
Hallo,
ich hab das Thema Telegram folgendermassen gelöst:
1. Bild senden wenn an der Haustür geklingelt wird
! // ###################################################
! // es hat geklingelt, deshalb Webcamfoto Haustür schicken
! on({id: "hm-rpc.0.MEQ0656885.1.PRESS_SHORT", valNe: 2}, function (obj)
! { // Beginn on
! var request = require('request');
! var fs = require('fs');
! request.get({url: 'http://IP-DER-CAM:80/tmpfs/auto.jpg?usr … d=PASSWORT', encoding: 'binary'}, function (err, response, body) {
! fs.writeFile("c:/tmp/snap.jpg", body, 'binary', function(err) {
! if (err) {
! console.error(err);
! } else {
! console.log('Snapshot sent');
! sendTo('telegram.0', 'c:/tmp/snap.jpg');
! sendTo('telegram.0', 'Es hat im ersten Stock geklingelt');
! log('Es hat geklingel, Bild CAM Haustür gesendet','info');
! }
! });
! });
! });
Das Bild wird geholt und temporär in eine Datei geschrieben. Dann sendet Telegramm diese Datei.Die URL muss natürlich an deine Cam angepasst werden.
2. Bild wird per Telegramm abgeholt:
! // ###################################################
! // Webcamfoto Garten schicken
! on("telegram.0.communicate.request", function (obj) {
! if (obj.newState.val == "[Gerhard]Garten" || obj.newState.val == "[Gerhard]/Garten" || obj.newState.val == "[Gerhard]garten" || obj.newState.val == "[Gerhard]/garten") { // Hier wird gelauscht auf den Befehl "garten" oder "/garten"
! var request = require('request');
! var fs = require('fs');
! request.get({url: 'http://IP-DER-CAM:80/tmpfs/auto.jpg?usr … d=PASSWORT', encoding: 'binary'}, function (err, response, body) {
! fs.writeFile("c:/tmp/snap_garten.jpg", body, 'binary', function(err) {
! if (err) {
! console.error(err);
! } else {
! console.log('Snapshot sent');
! sendTo('telegram.0', {text: 'c:/tmp/snap_garten.jpg', caption: 'Garten Cam'});
! }
! });
! });
! setState("telegram.0.communicate.request","leer"); // Telegrambefehl zurücksetzen
! }
! });
Auf dies Weise hole ich mir auch Temperaturen und sonstige Zustände ab.Da ich mich natürlich nicht mit fremden Federn schmücken will…
Diese Scripte hab ich hier aus dem Forum und minimal an meine Anforderungen angepasst. Bin eigentlich mehr der Blockly Typ.
-
Hallo Gerhard, vielen Dank. Ich arbeite eigentlich auch lieber mit Blockly, aber mit der Volage sollte das machbar sein!
Probiere ich auf jeden Fall mal aus.
-
@smile Gibt es dazu ein Update?