Ich habe ein kleines Problem beim Aufrufen/Ausführen eines Skriptes und finde das Problem nicht. Vielleicht sieht einer von euch den Haken der da fehlt oder zuviel ist...
Es geht darum eine Kamera beim Auslösen eines Ereignisses zu positionieren, ein Bild zu ziehen und das per Telegramm zu versenden.
Bei dem Aufruf via Bewegungsmelder geht es, beim Aufruf via Klingeltaster geht es nicht.
Ich habe das schon gefühlte 1000 mal alles überprüft und sehe nix.
So geht es:
Aufruf siehe Bild
Skript Cam PTZ aufrufen
Code: Alles auswählen
! +++ Cam PTZ aufrufen
! +++++ Settings +++++
string user = "user";
string pass = "passwort";
string ptzurl = "http://"#user#":"#pass#"@192.168.1.1/ISAPI/PTZCtrl/channels/1/presets/1/goto";
! +++++ PTZ aufrufen +++++
dom.GetObject("CUxD.CUX2801002:1.CMD_EXEC").State("curl -X PUT "#ptzurl#"");
! Ende des Scripts
Code: Alles auswählen
! +++ Cam Bild holen
! +++++ Settings +++++
string photo = "/tmp/Haustuer.jpg";
string user = "user";
string pass = "passwort";
string camurl = "http://"#user#":"#pass#"@192.168.1.1/ISAPI/Streaming/channels/1/picture";
! +++++ Klingelbild von Haustür holen +++++
dom.GetObject("CUxD.CUX2801002:1.CMD_EXEC").State("wget -O "#photo#" "#camurl#"");
! Ende des Scripts
Code: Alles auswählen
! +++ Telegram senden
! +++++ Settings +++++
string msg = "'Bewegung Haustuer erkannt'";
string photo = "/tmp/Haustuer.jpg";
string chatid = "-123456789";
string botAPI = "6789987654321";
! +++++ Nachricht Senden +++++
dom.GetObject("CUxD.CUX2801002:1.CMD_EXEC").State("curl -s -k https://api.telegram.org/bot"#botAPI#"/sendMessage -F chat_id="#chatid#" -F text="#msg#"");
! +++++ Klingelbild versenden +++++
dom.GetObject("CUxD.CUX2801002:1.CMD_EXEC").State("curl -s -k https://api.telegram.org/bot"#botAPI#"/sendPhoto -F chat_id="#chatid#" -F photo='@'"#photo#" ");
! Ende des Scripts
Jetzt das selbe für die Klingel.
Aufruf als Screenshot im Anhang.
Script um Kamera zu positionieren:
Code: Alles auswählen
! +++ Cam PTZ aufrufen
! +++++ Settings +++++
string user = "user";
string pass = "passwort";
string ptzurl = "http://"#user#":"#pass#"@192.168.1.1/ISAPI/PTZCtrl/channels/1/presets/2/goto";
! +++++ PTZ aufrufen +++++
dom.GetObject("CUxD.CUX2801002:1.CMD_EXEC").State("curl -X PUT "#ptzurl#"");
! Ende des Scripts
Bild holen
Code: Alles auswählen
! +++ Cam Bild holen
! +++++ Settings +++++
string photo = "/tmp/klingel.jpg";
string user = "user";
string pass = "passwort";
string camurl = "http://"#user#":"#pass#"@192.168.1.1/ISAPI/Streaming/channels/1/picture";
! +++++ Klingelbild von Haustür holen +++++
dom.GetObject("CUxD.CUX2801002:1.CMD_EXEC").State("wget -O "#photo#" "#camurl#"");
! Ende des Scripts
Code: Alles auswählen
! +++ Telegram senden
! +++++ Settings +++++
string msg = "'Klingel Gartentuer betaetigt'";
string photo = "/tmp/klingel.jpg";
string chatid = "-123456789";
string botAPI = "67890987654321";
! +++++ Nachricht Senden +++++
dom.GetObject("CUxD.CUX2801002:1.CMD_EXEC").State("curl -s -k https://api.telegram.org/bot"#botAPI#"/sendMessage -F chat_id="#chatid#" -F text="#msg#"");
! +++++ Klingelbild versenden +++++
dom.GetObject("CUxD.CUX2801002:1.CMD_EXEC").State("curl -s -k https://api.telegram.org/bot"#botAPI#"/sendPhoto -F chat_id="#chatid#" -F photo='@'"#photo#" ");
! Ende des Scripts
Folgende Hinweise noch dazu:
- bei Aufruf einzeln, also im Script Editor - Ausführen klicken - geht es wie gewünscht
- die URL für die PTZ habe ich mehrfach geprüft und im Browser getestet - macht das was sie machen soll
- bei der Klingel wird die Textnachricht per Telegramm gesendet und das setzen des Lichts und der Töne am MP3 geht auch, der Trigger zieht also
- Username, Passwort, IP, Chat ID und API ID sind editiert und nicht die, die im Script wirklich stehen - dieses Daten wollte ich hier nicht so direkt veröffentlichen
Falls irgendjemand eine Idee hat, warum es beim Bewegungsmelder geht aber nicht bei der Klingel, wäre das hilfreich.
Grüße