hier mal das Programm bzw. Skript, mit dem ich mir ein Bild von unserer Kamera in der Garage erzeugen lasse.
Code: Alles auswählen
! Bild von der Garage holen
! Version 1.1, Autor: dtp
! +++++ Pfad und Name eines auf der CCU zu speichernden Bildes +++++
string pictPathCCU = "/tmp/Garage.jpg";
! +++++ Zugriffsdaten Synology DiskStation +++++
string ipDiskStation = "192.168.xxx.xxx:5000"; ! IP:PORT der DiskStation
string account = "admin"; ! Admin-Name auf der DiskStation
string password = "xxxxxx"; ! Admin-Passwort
string cameraId = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
! +++++ Namen der verwendeten Systemvariablen +++++
string svPushImage = "CCU SV Push Bild"; ! gem. zPNS-xx
! #####################################################################
! ##### ab hier bitte keine weiteren Einstellungen mehr vornehmen #####
! #####################################################################
! +++++ Deklaration weiterer Variablen +++++
string cookieUrl; string pictUrl;
! +++++ Snaphshot holen +++++
cookieUrl = "http://"#ipDiskStation#"/webapi/entry.cgi?api=SYNO.API.Auth&version=3&method=login&account="#account#"&passwd="#password;
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q --keep-session-cookies --save-cookies cookies.txt -O- '"#cookieUrl#"'");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
pictUrl = "http://"#ipDiskStation#"/webapi/entry.cgi?api=SYNO.SurveillanceStation.Camera&method=GetSnapshot&version=1&cameraId="#cameraId;
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q --load-cookies cookies.txt -O '"#pictPathCCU#"' '"#pictUrl#"'");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
! +++++ Bildpfad in Systemvariable zur Übertraung per zPNS-xx speichern +++++
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushImage)).State(pictPathCCU);
Code: Alles auswählen
! Meldung Garagentor inklusive Bildübertragung
! Version 1.3, Autor: dtp
! +++++ Name der Systemvariablen für die Torbetätigung +++++
string svGarageDoor = "EG Garage SV Tor";
! +++++ Namen der verwendeten Systemvariablen +++++
string svPushText = "CCU SV Push Text"; ! gem. zPNS-xx, obligatorisch
string svPushPrio = "CCU SV Push Prio"; ! gem. zPNS-xx, obligatorisch
string svPushoverSound = "CCU SV Pushover Sound"; ! gem. zPNS-Po, optional
string svPresent = "Haus SV Anwesenheit"; ! Anwesenheit, obligatorisch
! +++++ Name des Programms zum Erzeugen des Snaphots +++++
string pictPrg = "EG Garage PRG Tor Bild";
! +++++ Name des zentralen Push-Nachrichten-Programms +++++
string zPNP = "CCU PRG Push-Nachrichten"; ! obligatorisch
! #####################################################################
! ##### ab hier bitte keine weiteren Einstellungen mehr vornehmen #####
! #####################################################################
! +++++ Deklaration weiterer Variablen +++++
string garageDoor; string message; string present;
! +++++ Auslesen der Systemvariablen svPresent +++++
present = (dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPresent)).Variable();
! +++++ Auslesen der Systemvariablen für die Torbetätigung +++++
garageDoor = (dom.GetObject(ID_SYSTEM_VARIABLES).Get(svGarageDoor));
garageDoor = garageDoor.ValueList().StrValueByIndex(";", garageDoor.Value());
! +++++ Snaphshot-Programm ausführen +++++
(dom.GetObject(ID_PROGRAMS).Get(pictPrg)).ProgramExecute();
! +++++ Erzeugen der Nachricht +++++
if(present == 1){
message = "Garagentor "#garageDoor#"!";
! ----- Setzen der Priorität für die Push-Nachricht -----
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushPrio)).State("0");
! ----- Sound für Pushover-Nachricht -----
if(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushoverSound)){(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushoverSound)).State("gamelan");}
}
else{
message = "<font color=orange>Achtung, Garagentor in ABWESENHEIT "#garageDoor#"!</font>";
! ----- Setzen der Priorität für die Push-Nachricht -----
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushPrio)).State("1");
! ----- Sound für Pushover-Nachricht -----
if(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushoverSound)){(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushoverSound)).State("alien");}
}
! +++++ zPNP ausführen +++++
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushText)).State(message);
(dom.GetObject(ID_PROGRAMS).Get(zPNP)).ProgramExecute();