ich möchte von meiner Türsprechstelle nach dem klingeln einige Bilder mit zeitlichen Abstand speichern.
Wobei das erste über Pushover versendet wird. Allerdings habe ich die Verzögerung nur über eine zusätzliche
Systemvariable realisieren können. Gibt es Art Delay oder ähnliches im Skript ?
Hier mal meine Lösung
Code: Alles auswählen
! Ablegen mehrer Bilder von der Türsprechstelle
! Versand über Pushover und Ansteuerung MP3-Gong
! V 0.1
! Parameter MP3-Gong
string gong ="6|0.6|4|1,0,2,0,3,0,7,0|4,6,4,6,4,6,4,6|60"
# "\n2|0.9|1|239,203,233,232";
integer anz = 5; ! anz der Bilder
integer sec = 5; ! Abstand der Speicherung in sec
string svName = "Klingel SV"; ! Name der Systemvariable
time t=system.Date("%F_%H-%M-%S"); ! Zeitstempel
! prüfen / anlegen der Bildvariable
object svObj = dom.GetObject(svName);
if (!svObj){
object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
svObj = dom.CreateObject(OT_VARDP);
svObjects.Add(svObj.ID());
svObj.Name(svName);
svObj.ValueType(ivtFloat);
svObj.ValueSubType(istGeneric);
svObj.DPInfo("Anzahl Bilder der Klingel");
svObj.ValueUnit("");
svObj.ValueMin(0);
svObj.ValueMax(15);
svObj.State(0);
svObj.Internal(false);
svObj.Visible(true);
dom.RTUpdate(false);
}
integer svNamZ = (dom.GetObject(svName).State().ToInteger());
if (svNamZ >= 0) {
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O '/tmp/HM-Daten/" # t #"_Klingel.jpg' 'http://192.168.178.15/video.jpg'"); !speichern des Bildes
if (svNamZ == 0) {
! +++++ zPNP ausführen +++++
string message = "<font color=green>Es hat geklingelt....."; ! Erzeugen der Nachricht
string image = "/tmp/HM-Daten/" # t #"_Klingel.jpg"; ! Pfad zum Bild
(dom.GetObject(ID_SYSTEM_VARIABLES).Get("CCU SV Push Prio")).State("0"); ! Setzen der Priorität für die Push-Nachricht
(dom.GetObject(ID_SYSTEM_VARIABLES).Get("CCU SV Pushover Sound")).State("Pushover Echo"); !Auswahl Sound für Pushover
(dom.GetObject(ID_SYSTEM_VARIABLES).Get("CCU SV Push Text")).State(message);
(dom.GetObject(ID_SYSTEM_VARIABLES).Get("CCU SV Push Bild")).State(image);
(dom.GetObject(ID_PROGRAMS).Get("CCU PRG Push-Nachrichten")).ProgramExecute();
! +++++ MP3-Gong ausführen +++++
(dom.GetObject(ID_SYSTEM_VARIABLES).Get('Gong_SV')).State(gong);
svNamZ = svNamZ + 1; }
else {
svNamZ = svNamZ + 1;
if (svNamZ >= anz) { svNamZ = 0; }
}
dom.GetObject(svName).State(svNamZ, sec * 1000);
}