Videoüberwachung

Wenn Interesse besteht, veröffentlich ich gerne die Scripte.

Funktionsweise

[ol]
[li]Ein/Ausblenden der Bedienelemente[/li][li]Standbild[/li][li]Automatischer Kamerawechsel nach Zeit[/li][li]Bildgrösse verändern( nur bei IP Cam)[/li][li]Automatischer Stop bei Kameradirektanwahl[/li][li]Intervallzeit der Bildaktualisierung einstellbar[/li][li]Schnappschuss[/li][/ol]

Alle Namen der Scripts und Variablen müssen so übernommen werden. Sollten eigene Namen vergeben werden, so sind diese in den entsprechenden Scripts anzupassen !
Einsortieren der Objekte von 1 bis n kann zum Schluß erfolgen. Alle Scripts ausblenden.
Die Zuordnung der Variablen zum Script erfolgt unter Variable editieren, Eigene Aktion.
Den Variablen eigene Profile geben(Namen frei wählbar).
Für den Schnappschuss muss ein Ordner angelegt werden. Ersichtlich im Script.

·Kategorie anlegen und unter dieser ein Dummy Modul anlegen(Namen frei wählbar)
·Zuerst alle Scripts anlegen danach die Variablen, somit kann man sie gleich mit den Scripts verbinden.
·Variable Integer(Elemente) => Script Bedienelemente
·Script Kamera1 bis n
·Variable Integer(Kamera) => Script Kameraauswertung
·Darunter je Kamera eine String und IntegerVariable anlegen

Beispiele für den Wert Stringvariable

IP-Cam Vivotek 7131 http://IP-Nr:Port/cgi-bin/video.jpg
Universalcam http://IP-Nr:Port/camera=1
webcamXP5 http://IP-Nr:Port/cam_1.jpg

·Variable Integer (Automatischer Kamerawechsel) => Script Automatische Umschaltung
·Variable Boolean(Bildintervall) => Script Bildintervall
·Variable Integer(Bildnummer) => Wert auf 0 setzen
·Variable Integer(Intervallzeit) => Script Bildintervall
·Variable Integer(Schnappschuss) => Script Schnappschuss
·Variable Integer (Bildgröße) => Script Bildgrösse
·Medien(Bild)

Es sind noch einige Ereignisse anzulegen diese ist in den Bildern ersichtlich. Ebenso sind einige Variablen ID anzupassen.

Funktioniert nur mit der Betaversion

[COLOR=Black]Script Bedienelemente

[/COLOR]

<?
$parentID = IPS_GetObject($IPS_SELF);
$parentID = $parentID['ParentID'];
$elemente = IPS_GetVariableIDByName("Elemente", $parentID);
$kamerawechsel = IPS_GetVariableIDByName("Automatischer Kamerawechsel", $parentID);
$kamera = IPS_GetVariableIDByName("Kamera", $parentID);
$bildintervall = IPS_GetVariableIDByName("Bildintervall", $parentID);
$intervallzeit = IPS_GetVariableIDByName("Intervallzeit", $parentID);
$bildgroesse = IPS_GetVariableIDByName("Bildgröße", $parentID);


if ($IPS_SENDER == "WebFront")
{
    SetValueInteger($elemente, $IPS_VALUE);
}

switch($IPS_VALUE)
{
    case 0:
       IPS_SetHidden($kamerawechsel, true);
       IPS_SetHidden($kamera, true);
       IPS_SetHidden($bildintervall, true);
       IPS_SetHidden($intervallzeit, true);
       IPS_SetHidden($bildgroesse, true);
       break;
    case 1:
        IPS_SetHidden($kamerawechsel, false);
        IPS_SetHidden($kamera, false);
       IPS_SetHidden($bildintervall, false);
       IPS_SetHidden($intervallzeit, false);
       IPS_SetHidden($bildgroesse, false);
        break;
}
 

?>

Script Kamera1

<?
$parentID = IPS_GetObject($IPS_SELF);
$parentID = $parentID['ParentID'];
$intervall = GetValue(28929 /*[Videoüberwachung\Überwachungskameras\Automatischer Kamerawechsel]*/);
$kamera = IPS_GetVariableIDByName("Kamera", $parentID);
$kamera2 = IPS_GetScriptIDByName("Kamera2", $parentID);


IPS_SetScriptTimer($IPS_SELF, 0);
SetValue($kamera,1);
IPS_SetScriptTimer($kamera2, $intervall);
 

?>

Kamera 2

<?
$parentID = IPS_GetObject($IPS_SELF);
$parentID = $parentID['ParentID'];
$intervall = GetValue(28929 /*[Videoüberwachung\Überwachungskameras\Automatischer Kamerawechsel]*/);
$kamera = IPS_GetVariableIDByName("Kamera", $parentID);
$kamera3 = IPS_GetScriptIDByName("Kamera3", $parentID);


IPS_SetScriptTimer($IPS_SELF, 0);
SetValue($kamera,2);
IPS_SetScriptTimer($kamera3, $intervall);

?>

Kamera 3

<?
$parentID = IPS_GetObject($IPS_SELF);
$parentID = $parentID['ParentID'];
$intervall = GetValue(28929 /*[Videoüberwachung\Überwachungskameras\Automatischer Kamerawechsel]*/);
$kamera = IPS_GetVariableIDByName("Kamera", $parentID);
$kamera1 = IPS_GetScriptIDByName("Kamera1", $parentID);


IPS_SetScriptTimer($IPS_SELF, 0);
SetValue($kamera,3);
IPS_SetScriptTimer($kamera1, $intervall);

?>

Kameraauswertung

<?
$value = 0;
$parentID = IPS_GetObject($IPS_SELF);
$parentID = $parentID['ParentID'];
$camID = IPS_GetMediaIDByName("Bild", $parentID);
$selectionID = IPS_GetVariableIDByName("Kamera", $parentID);
$camSet = IPS_GetVariableIDByName("Automatischer Kamerawechsel", $parentID);

if ($IPS_SENDER == "WebFront")
{
    $value = $IPS_VALUE;
    SetValue($selectionID, $IPS_VALUE);
    SetValue($camSet,0);
}
else
{
    $value = GetValue($selectionID);
}

$fileUri = GetValueString(IPS_GetVariableIDByName($value, $selectionID));
$interval = GetValueInteger(IPS_GetVariableIDByName($value." Intervall", $selectionID));
$fileName = "media/CamImage".$camID.".jpg";

IPS_SetMediaFile($camID, $fileName, false);

$imageContent = @Sys_GetURLContent($fileUri);
if ($imageContent !== FALSE)
{
   $fileHandle = @fopen("../".$fileName, 'wb+');
    if (@fwrite($fileHandle, $imageContent) === FALSE)
    {
       $fileName = "";
        @unlink($fileName);
    }
    fclose($fileHandle);
}

IPS_SetScriptTimer($IPS_SELF, $interval);
?>

Automatische Umschaltung

<?
$parentID = IPS_GetObject($IPS_SELF);
$parentID = $parentID['ParentID'];
$camSet  = IPS_GetVariableIDByName("Automatischer Kamerawechsel", $parentID);
$Kamera1 = IPS_GetScriptIDByName("Kamera1", $parentID);
$Kamera2 = IPS_GetScriptIDByName("Kamera2", $parentID);
$Kamera3 = IPS_GetScriptIDByName("Kamera3", $parentID);
//$Kamera4 = IPS_GetScriptIDByName("Kamera4", $parentID);

if ($IPS_SENDER == "WebFront")
{
    SetValue($camSet, $IPS_VALUE);
}

switch($IPS_VALUE)
{
   case 0:
      IPS_SetScriptTimer($Kamera1, 0);
      IPS_SetScriptTimer($Kamera2, 0);
      IPS_SetScriptTimer($Kamera3, 0);
      //IPS_SetScriptTimer($Kamera4, 0);
       break;
    case 5:
      IPS_RunScript($Kamera1);
       break;
    case 10:
      IPS_RunScript($Kamera1);
       break;
   case 15:
      IPS_RunScript($Kamera1);
       break;
   case 20:
        IPS_RunScript($Kamera1);
       break;
   case 30:
        IPS_RunScript($Kamera1);
       break;
   case 60:
        IPS_RunScript($Kamera1);
       break;
}

?>

Bildintervall

<?
$parentID = IPS_GetObject($IPS_SELF);
$parentID = $parentID['ParentID'];
$bildintervall = IPS_GetVariableIDByName("Intervallzeit", $parentID);
$status = IPS_GetVariableIDByName("Bildintervall", $parentID);
$intervall1 = 11126 /*[Videoüberwachung\Überwachungskameras\Kamera\1 Intervall]*/;
$intervall2 = 44228 /*[Videoüberwachung\Überwachungskameras\Kamera\2 Intervall]*/;
$intervall3 = 25257 /*[Videoüberwachung\Überwachungskameras\Kamera\3 Intervall]*/;
$intervall4 = 25822 /*[Videoüberwachung\Überwachungskameras\Kamera\4 Intervall]*/;

if ($IPS_SENDER == "WebFront")
{
    SetValue($bildintervall, $IPS_VALUE);
    SetValue($status, $IPS_VALUE);
}

switch($IPS_VALUE)
{
    case 0:
       SetValue($intervall1,0);
       SetValue($intervall2,0);
       SetValue($intervall3,0);
       SetValue($intervall4,0);
       break;
    case 1:
        SetValue($intervall1,1);
        SetValue($intervall2,1);
        SetValue($intervall3,1);
        SetValue($intervall4,1);
        break;
    case 5:
       SetValue($intervall1,5);
       SetValue($intervall2,5);
       SetValue($intervall3,5);
       SetValue($intervall4,5);
       break;
    case 10:
       SetValue($intervall1,10);
       SetValue($intervall2,10);
       SetValue($intervall3,10);
       SetValue($intervall4,10);
       break;
   case 30:
       SetValue($intervall1,30);
       SetValue($intervall2,30);
       SetValue($intervall3,30);
       SetValue($intervall4,30);
       break;
   case 45:
       SetValue($intervall1,45);
       SetValue($intervall2,45);
       SetValue($intervall3,45);
       SetValue($intervall4,45);
       break;
   case 60:
       SetValue($intervall1,60);
       SetValue($intervall2,60);
       SetValue($intervall3,60);
       SetValue($intervall4,60);
       break;
}

?>

Schnappschuss

<?
$imagepfad = IPS_GetKernelDir()."\\webfront\\Schnappschuss\\";// anpassen (Ordner erstellen)
$imagename = "Schnappschuss";
$format = ".jpg";
$mediapfad = IPS_GetKernelDir()."\\media\\CamImage33643.jpg";//  CamImagexxxxx.jpg anpassen

$parentID = IPS_GetObject($IPS_SELF);
$parentID = $parentID['ParentID'];
$schnappschussID = IPS_GetVariableIDByName("Schnappschuss", $parentID);
$bildnummerID = IPS_GetVariableIDByName("Bildnummer", $parentID);
$bildnummer = GetValueInteger(IPS_GetVariableIDByName("Bildnummer", $parentID));
$bildnummer = $bildnummer +1;

SetValue($bildnummerID, $bildnummer);

if ($IPS_SENDER == "WebFront")
{
    SetValue($schnappschussID, $IPS_VALUE);
}


switch($IPS_VALUE)
{
    case 1:
        $fileHandle = @fopen($imagepfad, 'wb+');
        $image = @ImageCreateFromjpeg($mediapfad);
        @fwrite(Imagejpeg($image, $imagepfad.$imagename.$bildnummer.$format));
        @fclose($fileHandle);
        break;
}
?>

Bildgrösse

<?
$bildmini ="http://192.168.1.145/cgi-bin/admin/setparam.cgi?Video_resolution=176x144";
$bildklein ="http://192.168.1.145/cgi-bin/admin/setparam.cgi?Video_resolution=320x240";
$bildgross ="http://192.168.1.145/cgi-bin/admin/setparam.cgi?Video_resolution=640x480";
$parentID = IPS_GetObject($IPS_SELF);
$parentID = $parentID['ParentID'];
$bild = IPS_GetVariableIDByName("Bildgröße", $parentID);

if ($IPS_SENDER == "WebFront")
{
    SetValue($bild, $IPS_VALUE);
}

switch($IPS_VALUE)
{
    case 0:
       $Ausgabe = fopen("$bildmini", 'r');
       fclose($Ausgabe);
       break;
    case 1:
        $Ausgabe = fopen("$bildklein", 'r');
       fclose($Ausgabe);
        break;
   case 2:
        $Ausgabe = fopen("$bildgross", 'r');
       fclose($Ausgabe);
        break;
}
?>

elemente.png

Kamera.png

Kamerawechsel.png

Bildintervall.png

Intervallzeit.png

Schnappschuss.png

Bildgrösse.png

Wenn du Geduld hast sehr gerne. :smiley:

Grüße Mirco

sieht auf jeden fall sehr schick aus :).

Sehr gerne, habe großes Interesse daran!

Gruß aus Schweden
Dieter

logisch gibt es da interesse

Im ersten Post alles eingefügt. Ich hoffe dass ich nichts vergessen habe.

Viel Spass beim anlegen :smiley:

Bei Unklarheiten…:rolleyes:

Hallo Rainer,
funzt soweit gut, nur der schnappschuss will nicht.
Beim ausführen kommt:
Notice: Undefined variable: IPS_VALUE in C:\IP-Symcon\scripts\34949.ips.php on line 23

Beim ausführen kommt:

Du musst das übers Webfront ausführen. Wenn Du das in der Konsole ausführst, hat $IPS_VALUE ja keinen Wert.

übers webfront zählt er die bilder fleissig hoch.
speichert aber keine im ordner (existiert laut pfad im script).
das spript wird auch als fehlerhaft angezeigt!

haste noch ne idee

Den Ordner musst Du selber anlegen! und das Camimage anpassen!

Ich habe das Script Schnappschuss etwas angepasst.
Für alle die Probleme mit den Pfaden haben.

[ol]
[li] Es ist jetzt einfach nur ein Ordner mit Namen Schnappschuss unter Webfront anzulegen.[/li][li] Im MediaOrdner nach CamImage suchen und einfach die ID im Mediapfad eintragen.[/li][/ol]

Hallo Rainer,

habe deine Scripte bei mir eingebunden.

Wenn ich irgendeine Schaltfläche auf der „Kamera-Seite“ im Webfront anklicke, geht die Fehlerkonsole auf mit der aktuellen Uhrzeit drin aber ohne Fehlermeldung.

Was könnte das sein?

Kannst du mir die Icons für die Kamera zur Verfügung stellen, oder spricht da etwas dagegen? Finde die hammergut.

Gruß

Jimmy

Hast Du irgendwo ein Leerzeichen vor <?