Videotürsprechstelle, mehrere Bilder speichern

HMIP lokale Installation

Moderator: Co-Administratoren

Antworten
UweS
Beiträge: 20
Registriert: 25.08.2022, 15:08
System: CCU
Hat sich bedankt: 35 Mal
Danksagung erhalten: 1 Mal

Videotürsprechstelle, mehrere Bilder speichern

Beitrag von UweS » 12.11.2023, 19:38

Hallo zusammen,
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);
}
Unbenannt.jpg
Gruß Uwe

rentier-s
Beiträge: 385
Registriert: 19.06.2017, 09:24
Hat sich bedankt: 20 Mal
Danksagung erhalten: 67 Mal

Re: Videotürsprechstelle, mehrere Bilder speichern

Beitrag von rentier-s » 13.11.2023, 08:02

UweS hat geschrieben:
12.11.2023, 19:38
Gibt es Art Delay oder ähnliches im Skript ?
Nein, und das ist auch gut so, weil es die CCU blockieren würde.

Mit einem CUxD Multi-Timer kann man ein Programm mehrfach in bestimmten Abständen ausführen und hat sogar einen Zähler mit dabei.

UweS
Beiträge: 20
Registriert: 25.08.2022, 15:08
System: CCU
Hat sich bedankt: 35 Mal
Danksagung erhalten: 1 Mal

Re: Videotürsprechstelle, mehrere Bilder speichern

Beitrag von UweS » 14.11.2023, 11:10

rentier-s hat geschrieben:
13.11.2023, 08:02
weil es die CCU blockieren würde.
Ah, ok war mir so nicht bewusst.
rentier-s hat geschrieben:
13.11.2023, 08:02
Mit einem CUxD Multi-Timer
Schau ich mir genauer an, wenn die Sanierung durch ist.... immo funktioniert es ja.

Gruß Uwe

Antworten

Zurück zu „HomeMatic IP mit CCU“