Probleme mit Script Netzwerkkamera Axis M1011

Das Thema ist sehr interessant. Hab aber Probleme mit der Ausführung.
Wie muss die Axis-Kamera konfiguriert werden. Wird ein TCP- oder ein HTTP-Event erwartet? Wie muss die Meldung an IPS aussehen? Custom parameters oder Message? Ich habe das Beispiel mal an meine Umgebung angepasst, leider ohne Erfolg. Bekomme folgende Meldung:
Parse error: parse error, unexpected T_IF in [Unser Haus\Videoüberwachung\Motion Axis 209] on line 17.
Gibt es hier irgendwo die notwendigen Informationen?

Script zeigen. Da hast du was versemmelt.

Danke für die schnelle Antwort. Hier das Script:

<?


$id_sound = 36844  /*[Unser Haus\Obergeschoss\Wohnzimmer\HiFi TV\Media  Player Wohnzimmer]*/;
$id_flag = 56678  // Integer-Variable
//$IPS_VALUE = Motion 4;
// Flag:
// 1  Motion 1
// 2  Motion 2
// 3  Motion 3
// 4  Motion 4
// 88 Time-Out
// 99 andere Richtung > hier Motion 5

    if($IPS_SENDER == "TimerEvent"){
    SetValue($id_flag, 88);
    IPS_SetScriptTimer($IPS_SELF, 0);    // Timer-AUS
    return;
}

$inbuf = Trim($IPS_VALUE);
//$inbuf = "Motion 4";  // für ein Test

$data_1 = IPS_GetScript($IPS_SELF);
$last_up_1 = $data_1[LastExecute];
$deltaT_1 = time() - $last_up_1;
//echo "Letzte Ausführung in sec. : $deltaT_1
";

if ($deltaT_1 > 2){     // es X Sekunden bis zur nächsten Zone

    $flag = GetValue($id_flag);

    if ($inbuf == "Motion 1"){
        if ($flag == 0){
           IPS_SetScriptTimer($IPS_SELF, 30 );    // Timer-An
           SetValue($id_flag /*[Web Cam\AXIS Flur\Zone Flag]*/, 1);
           WAC_SetVolume($id_sound ,80);
            WAC_PlayFile($id_sound ,  IPS_GetKernelDir()."sounds\\zone1.wav");
           return;
        }
    }

    if ($inbuf == "Motion 2"){
        if ($flag == 1){
           SetValue($id_flag, 2);
           WAC_SetVolume($id_sound ,80);
            WAC_PlayFile($id_sound ,  IPS_GetKernelDir()."sounds\\zone2.wav");
           return;
        }
    }

    if ($inbuf == "Motion 3"){
        if ($flag == 2){
           SetValue($id_flag, 3);
           WAC_SetVolume($id_sound ,80);
            WAC_PlayFile($id_sound ,  IPS_GetKernelDir()."sounds\\zone3.wav");
            return;
        }
    }

    if ($inbuf == "Motion 4"){
        if ($flag == 3){
           SetValue($id_flag, 4);
           WAC_SetVolume($id_sound ,80);
            WAC_PlayFile($id_sound ,  IPS_GetKernelDir()."sounds\\zone4.wav");
            IPS_Sleep(2000);
            WAC_PlayFile($id_sound ,  IPS_GetKernelDir()."sounds\\willkommen_zu_hause.wav");
            return;
        }
    }

    if ($inbuf == "Motion 5"){
        SetValue($id_flag, 99);
        return;
    }
}  // Warte-Zeit bis zur nächsten Zone

?>

Willkommen im IPS-Forum.

Ändere doch bitte mal deinen Script-Post mit dem PHP Button oder PHP /PHP davor und danach in eckigen Klammern.
Sieht einfach besser aus. Erledigt

$id_flag = 56678; // Integer-Variable

muss es heissen.

Danke, hab ich übersehen. Jetzt sieht das so aus:

Notice: Undefined variable: IPS_VALUE in D:\Programme\IP-Symcon\scripts\33184.ips.php on line 23

Notice: Use of undefined constant LastExecute - assumed ‚LastExecute‘ in D:\Programme\IP-Symcon\scripts\33184.ips.php on line 27

$last_up_1 = $data_1['LastExecute'];

das Script kannst Du nicht von Hand starten. Daten in $IPS_VALUE sind erst bei Trigger vorhanden, daher die Meldung.

Alles klar. Das führt ja dann zu meiner Frage wie der Trigger aussehen muss.

getriggert wird über die Registervariable steht doch im Originalscript oben drinnen!

  1. Doku der Kamera lesen
  2. Event Types anlegen
  3. Motion Detection / Fenster definieren
  4. Event Servers > siehe Bild und in IP-Symcon ein ‚ServerSocket‘ hinzufügen
  5. in IPS: '‚Register Variable‘ > ‚ServerSocket‘ und das gewünschtes Ziel-Skript
  6. z.B. if ($inbuf == „Motion Treppe“){ erledigt den Rest

MST

Ich kenne die die Kamera Events von Axis. Wie ich sehe werden hier wohl
TCP Event verwendet. Habe ich eingerichtet. Gibt es eine Kontrollmöglichkeit
für die Kommunikation? Das Skript wird offensichtlich nicht ausgeführt.

Das Skript wird offensichtlich nicht ausgeführt.

Ist das Script auch der Registervariable zugewiesen.

Ziel Script ist eingetragen. Wie es scheint wird die Verbindung zur Kamera immer wieder getrennt und verbunden. Deshalb wäre es ja interessant die Kommunikation zu loggen um sie dann zu überprüfen. Ich kenne das von anderer
Videosoftware. Da wird im Logfile alles protokolliert was da passiert. Für was ist das Debugfenster? Bei den Meldungen sehe ich auch nur das Trennen und Verbinden des Sockets. Hab mal Screenshots angehängt.

… Port 80 ist gff. vielleicht etwas suboptimal …

Kann ich nicht nachvollziehen. Sind denn die Objekte richtig angelegt?

… den ‚Server Socket‘ sehe ich nicht …

Sehe auch keinen. Wo sollte der sein? Wie bekomme ich den rein?