NEWS
Netamo Cam, Überwachung aus und einschalten
-
@juggi1962 die haben doch unterschiedliche Key und unterschiedliche IP's.
Du braucht die beiden Datenpunkte dann natürlich doppelt. Für jede Kamera einmal die IP und einmal den Key1 -
@htrecksler ja die habe ich auch extra angelegt aber der Trigger der weiß doch so doch nicht welche Cam er ansteuern muss oder muss ich da auch noch was von der Cam eintragen. ich glaub du wirst schon stehen zu Hause und dich fargen was will den der da, Sorry
-
@juggi1962 im 1. Script wird doch aus der IP Adresse und dem Key1 (und weiteren Konstanten) die URL zusammengebaut und abgeschickt. Und zwar an die Kamera die über die IP_Adresse erreichbar ist.
var lUrl = 'http://' + getState('0_userdata.0.90_Allgemein.KameraSchuppen.IP_Adresse').val + '/' + getState('0_userdata.0.90_Allgemein.KameraSchuppen.Key1').val + '/command/changestatus?status=on';Vielleicht ist es schon zu spät und ich erkläre schlecht, aber wenn du 2 Kameras hast, brauchst du natürlich auch 2 mal die Funktion StartKamera und 2 mal die StopKamera.
Jeweils mit unterschiedlichen IP_Adresse und Key1.Die Funktionen nennst Du dann am besten StartKameraEingang bzw. StartKameraTerasse
-
@juggi1962
im Prinzip so...function StartKameraTerasse() { var request = require('request'); var lUrl = 'http://' + getState('0_userdata.0.90_Allgemein.KameraSchuppen.IP_AdresseTerasse').val + '/' + getState('0_userdata.0.90_Allgemein.KameraSchuppen.Key1Terasse').val + '/command/changestatus?status=on'; if (logging) log('das ist die URL: ' + lUrl, 'warn'); request.post({ url: lUrl }, function(error, response, body) { if (error) log(error, 'error'); }); } function StartKameraEingang() { var request = require('request'); var lUrl = 'http://' + getState('0_userdata.0.90_Allgemein.KameraSchuppen.IP_AdresseEingang').val + '/' + getState('0_userdata.0.90_Allgemein.KameraSchuppen.Key1Eingang').val + '/command/changestatus?status=on'; if (logging) log('das ist die URL: ' + lUrl, 'warn'); request.post({ url: lUrl }, function(error, response, body) { if (error) log(error, 'error'); }); } -
@htrecksler Das habe ich ja so gemacht ich habe einmal Start stopp für den Eingang und extra für die Terrasse gemacht, aber mit dem Trigger Script komme ich nicht klar. Muss ich da ausser dem EREIGNIS_BOOL sonst auch noch was eintragen. Wenn ich statt dem EREIGNIS_BOOL den Datenpunkt von dem Türsensor eintrage und dann die Türe öffnen kommt alles rot im log
-
@htrecksler das habe ich aber in zwei Scripte einmal Start Stop für Eingang und ein Script Start Stop für Terrasse
-
@juggi1962 zeig mal die scripte und das log.
-
function StartKameraEingang() { var request = require('request'); var lUrl = 'http://' + getState('0_userdata.0.Daten_Cam_Eingang_Terrasse.IP_Cam_Eingang').val + '/' + getState('0_userdata.0.Daten_Cam_Eingang_Terrasse.Key_Cam_Eingang').val + '/command/changestatus?status=on'; if (logging) log('das ist die URL: ' + lUrl, 'warn'); request.post({ url: lUrl }, function(error, response, body) { if (error) log(error, 'error'); }); } function StoppKameraEingang() { var request = require('request'); var lUrl = 'http://' + getState('0_userdata.0.Daten_Cam_Eingang_Terrasse.IP_Cam_Eingang').val + '/' + getState('0_userdata.0.Daten_Cam_Eingang_Terrasse.Key_Cam_Eingang').val + '/command/changestatus?status=off'; if (logging) log('das ist die URL: ' + lUrl, 'warn'); request.post({ url: lUrl }, function(error, response, body) { if (error) log(error, 'error'); }); }on('0_userdata.0.Alarmsensoren.Wohnungstuer', function (obj) { if (obj.state.val === false || obj.state.val == "false") { ('0_userdata.0.Daten_Cam_Eingang_Terrasse.IP_Cam_Eingang'); log('Kamera manuell eingeschaltet!', 'warn'); } if (obj.state.val === true || obj.state.val == "true") { ('0_userdata.0.Daten_Cam_Eingang_Terrasse.IP_Cam_Eingang'); log('Kamera manuell ausgeschaltet!', 'warn'); } }); -
@htrecksler ```
27.9.2021, 21:38:08.455 [info ]: javascript.0 (31208) Stop script script.js.Neu.Cam_Skripte.Trigger_für_Cam_aus_ein
27.9.2021, 21:38:08.466 [info ]: javascript.0 (31208) Start javascript script.js.Neu.Cam_Skripte.Trigger_für_Cam_aus_ein
27.9.2021, 21:38:08.489 [info ]: javascript.0 (31208) script.js.Neu.Cam_Skripte.Trigger_für_Cam_aus_ein: registered 1 subscription and 0 schedules
27.9.2021, 21:38:26.120 [info ]: javascript.0 (31208) Stop script script.js.Neu.Cam_Skripte.Trigger_für_Cam_aus_ein
27.9.2021, 21:38:26.128 [info ]: javascript.0 (31208) Start javascript script.js.Neu.Cam_Skripte.Trigger_für_Cam_aus_ein
27.9.2021, 21:38:26.136 [info ]: javascript.0 (31208) script.js.Neu.Cam_Skripte.Trigger_für_Cam_aus_ein: registered 1 subscription and 0 schedules
27.9.2021, 21:38:39.567 [warn ]: javascript.0 (31208) script.js.Neu.Cam_Skripte.Trigger_für_Cam_aus_ein: Kamera manuell eingeschaltet!
27.9.2021, 21:39:19.165 [warn ]: javascript.0 (31208) script.js.Neu.Cam_Skripte.Trigger_für_Cam_aus_ein: Kamera manuell ausgeschaltet!
27.9.2021, 21:41:33.689 [info ]: javascript.0 (31208) Stop script script.js.Neu.Cam_Skripte.Trigger_für_Cam_aus_ein
27.9.2021, 21:41:33.699 [info ]: javascript.0 (31208) Start javascript script.js.Neu.Cam_Skripte.Trigger_für_Cam_aus_ein
27.9.2021, 21:41:33.704 [info ]: javascript.0 (31208) script.js.Neu.Cam_Skripte.Trigger_für_Cam_aus_ein: registered 1 subscription and 0 schedules
27.9.2021, 21:43:44.623 [warn ]: javascript.0 (31208) script.js.Neu.Cam_Skripte.Trigger_für_Cam_aus_ein: Kamera manuell ausgeschaltet!
27.9.2021, 21:45:04.454 [warn ]: javascript.0 (31208) script.js.Neu.Cam_Skripte.Trigger_für_Cam_aus_ein: Kamera manuell eingeschaltet! -
@juggi1962 bei dem Log habe ich mal die Türe geöffnet und dann wieder geschlossen. Bei Netatmo hat sich aber nichts verändert, Status blieb immer auf on
-
@htrecksler Ich muss leider schluss machen, aber wie ich gerade sehe bist du auch offline.
Vielleicht findest du ja morgen mal Zeit um dir die Scripte anszuschauen.
Wäre dir sehr dankbar dafür, wenn wir das gemeinsam zum laufen bekommen würden.
Gute Nacht und Gruß aus TIROL Jürgen -
@juggi1962
Ja, das kriegen wir hin. Auf jeden Fall müssen deine beiden Scripte in 1 Script zusammengeführt werden.
Und in deinem 2. Script musst Du dann die Funktion aufrufen und nicht den Datenpunkt eintragenfunction StartKameraEingang() { var request = require('request'); var lUrl = 'http://' + getState('0_userdata.0.Daten_Cam_Eingang_Terrasse.IP_Cam_Eingang').val + '/' + getState('0_userdata.0.Daten_Cam_Eingang_Terrasse.Key_Cam_Eingang').val + '/command/changestatus?status=on'; if (logging) log('das ist die URL: ' + lUrl, 'warn'); request.post({ url: lUrl }, function(error, response, body) { if (error) log(error, 'error'); }); } function StoppKameraEingang() { var request = require('request'); var lUrl = 'http://' + getState('0_userdata.0.Daten_Cam_Eingang_Terrasse.IP_Cam_Eingang').val + '/' + getState('0_userdata.0.Daten_Cam_Eingang_Terrasse.Key_Cam_Eingang').val + '/command/changestatus?status=off'; if (logging) log('das ist die URL: ' + lUrl, 'warn'); request.post({ url: lUrl }, function(error, response, body) { if (error) log(error, 'error'); }); } on('0_userdata.0.Alarmsensoren.Wohnungstuer', function (obj) { if (obj.state.val === false || obj.state.val == "false") { StartKameraEingang(); log('Kamera manuell eingeschaltet!', 'warn'); } if (obj.state.val === true || obj.state.val == "true") { StoppKameraEingang(); log('Kamera manuell ausgeschaltet!', 'warn'); } });Lass am besten die Leerzeilen zwischen den Codezeilen weg. Das kann man sonst echt schwer lesen.
Ich hab das aus deinen Scripten jetzt einfach im Forumeditor zusammenkopiert. Keine Gewähr das das von der Syntax alles richtig ist, aber vom Prinzip muss es so sein. -
@juggi1962 ich bin allerdings auch erst wieder heute Abend hier online
-
@htrecksler said in Netamo Cam, Überwachung aus und einschalten:
'0_userdata.0.Alarmsensoren.Wohnungstuer', function
Guten Morgen auch wenn du erst wieder am Abend online bist.
Ich habe jetzt beide Scripte zusammen geführt und du schreibst, ich muss die Funktion aufrufen und nicht den Datenpunkt eintragen bei EREIGNIS_BOOL
Da fehlt mir schon das Verständnis, da ich mit Java noch nie was gemacht habe.
Ist die Funktion nicht das, wenn ich die Türe auf mache und der Sensor dann auf false oder true schaltet
Kannst du mir bitte erklären was das bedeutet und wie ich das eintragen muss, dass wenn ich die Haustüre öffne oder der Anwesenheits Datenpunkt auf false springt, dass dann das Script die Cam startet oder stopt.
Sorry ich bin ein schwieriger Fall
aber wenn ich es einmal verstanden habe dann sollte es passen 
Danke im Voraus, Gruß Jürgen. -
Hier noch mals das zusammen gefügte Script.
Durch das Kopieren und Einfügen bei mir entstehen die Leerzeilen.
In meinem Script ist bei if (logging) das (logging) mit einer Wellenlinie unterstrichen
und wenn ich mit der Maus drauf fahre schreibt er Cannot find name 'logging'.(2304) ist das normal?
Ach noch was. die Cam vom Eingang würde ich gerne mit dem Türsensor steuern.
und die Terrassen Cam sollte bei Anwesenheit (true) oder die Variable Tag (true) ist aus sein.
in der Nacht ein auch wenn ich anwesend bin.
Ich weiß das ist viel verlangt aber wenn wir in den Objekten einen Datenpunkt Variable rein bekommen der für jede Cam ein true und false hätte um sie über das zu steuern, dann könnte ich per Blockly alles selber machen.
Ich hoffe du verstehst was ich meine.Ja dann hoffentlich bis heute Abend, Gruß Jürgen.
function StartKameraEingang() { var request = require('request'); var lUrl = 'http://' + getState('0_userdata.0.Daten_Cam_Eingang_Terrasse.IP_Cam_Eingang').val + '/' + getState('0_userdata.0.Daten_Cam_Eingang_Terrasse.Key_Cam_Eingang').val + '/command/changestatus?status=on'; if (logging) log('das ist die URL: ' + lUrl, 'warn'); request.post({ url: lUrl }, function(error, response, body) { if (error) log(error, 'error'); }); } function StoppKameraEingang() { var request = require('request'); var lUrl = 'http://' + getState('0_userdata.0.Daten_Cam_Eingang_Terrasse.IP_Cam_Eingang').val + '/' + getState('0_userdata.0.Daten_Cam_Eingang_Terrasse.Key_Cam_Eingang').val + '/command/changestatus?status=off'; if (logging) log('das ist die URL: ' + lUrl, 'warn'); request.post({ url: lUrl }, function(error, response, body) { if (error) log(error, 'error'); }); } on('EREIGNIS_BOOL', function (obj) { if (obj.state.val === false || obj.state.val == "false") { StartKameraEingang(); log('Kamera manuell eingeschaltet!', 'warn'); } if (obj.state.val === true || obj.state.val == "true") { StoppKameraEingang(); log('Kamera manuell ausgeschaltet!', 'warn'); } }); -
@htrecksler
Hallo, ich klink mich mal mit ein.Bei mir habe ich schon Probleme die Ordner anzulegen.
Iobroker ist auf dem Aktuellsten Stand.
Wenn ich dein Skript 1zu1 einfüge und auf Start drücke finde ich die Ordner nicht. -
@tony63526 Servus, Anfänger zu Anfänger

Du darfst keine Ordner anlegen sondern 2 Datensätze also bei Objekte unter 0_userdata dann den Ordner 0 öffnen dann ganz oben auf das + drücken und dann kein Verzeichnis sondern einen Datenpunkt anlegen für die IP und einen für den Key1 wenn den Datenpunkt angelegt hast gehst rechts in das Feld wo sonst true oder false bei den andern steht und klickst drauf. es geht dann ein Fenster auf und da schreibst dann deine IP und im andern Datenpunkt deinen Key1 rein.
Diese 2 Datenpunkte musst dann in dem Script einfügen. Bei den Datenpunkten kannst in der zweiten Spalte auf das Kopierzeichen gehen und dann kopieren und im Script einfügen. Ich hoffe das war halbwegs verständlich.
Gruß Jürgen. -
@juggi1962 sagte in Netamo Cam, Überwachung aus und einschalten:
In meinem Script ist bei if (logging) das (logging) mit einer Wellenlinie unterstrichen
und wenn ich mit der Maus drauf fahre schreibt er Cannot find name 'logging'.(2304) ist das normal?Nein, sorry...da habe ich eine Codezeile vergessen.
Ganz am Anfang bitte die folgende Zeile einfügen:const logging = false;hier kann man die Log-Ausgabe steuern, indem man true oder false setzt. Das logging bzw. die Log.-Einträge dienen dann eigentlich nur der Fehlersuche. So weiß man halt was im Script so passiert.
Aber nun zur Erläuterung.
Die Funktionen "StartKameraEingang" bzw. StoppKameraEingang" sind dafür zuständig eine URL zusammenzustellen und per "request.post" an die Kamera zu senden.
StartKameraEingang sendet eine "status=on" und StoppKameraEingang sendet ein "status=off".
Damit wird die Kamera gestartet oder gestoppt.die on-Funktion dient quasi nur als Auslöser und ist eigentlich so zu übersetzen:
Wenn (on) der Datenpunkt "0_userdata.0.Alarmsensoren.Wohnungstuer" den Wert "false" gesetzt bekommt, dann rufe die Funktion "StartKameraEingang" auf.
Und diese Funktion macht dann da oben beschriebene...sie sendet ein "status=on" an die Kamera.Wenn man das weiß, kann man eigentlich jeden Datenpunkt verwenden um die Funktion auszulösen. Du kannst Dir auch einen eigenen Datenpunkt anlegen und diesen per Blockly auf true oder false setzen. Im on-Teil der Funktion verwendest Du dann eben den eigenen, neuen Datenpunkt. Order einen Bewegungsmelder-Datenpunkt, oder...oder...oder... (alles ist möglich) die Ganze Kamerasteuerung findet in den Funktionen "StartKamera..." bzw. "StoppKamera..." statt.
-
@htrecksler said in Netamo Cam, Überwachung aus und einschalten:
const logging = false;
Super, danke für die Erklärung. Jetzt hat es auf Anhieb funktioniert.
War da die vergessene Befehlszeile Schuld, dass es gestern nicht ging.
Hab das nämlich genau so probiert und erst dann hin und her versucht.
Ach ja, habe zuerst gerade im Blockly einen request Baustein gefunden, mit dem man genau diese URL versenden kann das klappt dann auch.
Vielen vielen Dank für deine Hilfe. jetzt kann ich mit Blockly und deinem Script weiter machen.
Hab aber noch eine Frage, gibt es für Netatmo auch urls mit denen man das licht aus und einschalten kann.
zum Beispiel im Winter Schnee räumen Kammera aus aber Licht von Hand ein.
Liebe Grüße aus Tirol Jürgen -
@juggi1962 sagte in Netamo Cam, Überwachung aus und einschalten:
Vielen vielen Dank für deine Hilfe. jetzt kann ich mit Blockly und deinem Script weiter machen.
Hab aber noch eine Frage, gibt es für Netatmo auch urls mit denen man das licht aus und einschalten kann.
zum Beispiel im Winter Schnee räumen Kammera aus aber Licht von Hand ein.yipiehhh...ag ich doch...das klappt schon.
Aber ganz ehrlich, ich weiß gar nicht was an diesem Blockly so toll sein soll. ich finde das deutlich komplizierter als direkt in javascript zu entwickeln.
Aber egal, jedem das seine
Wegen des Lichtes schau ich mal nach. Ich nutze das nicht, aber ich glaube ich hab da mal was gelesen.