Lupusec XT 1 Alarmanlage

Hallo,

ich habe das Skript aus diesem Beitrag https://www.symcon.de/forum/threads/29684-Alarmanlage-Lupusec-XT2-Plus-auslesen?p=273552#post273552 für meine Alarmanlage angepasst.

Vielleicht kann es ja einer brauchen. Hat jemand Interesse sich mit der Contact-ID Auswertung der XT1 zu befassen? Das möchte ich als nächstes machen.

MfG Tommy

<?
// Dieses Script liest die Sensoren und deren Daten aus einer Lupus XT1 aus und stellt die Stati in einer Tabelle im Webfront dar
// Version für Lupus XT2 aus IP-Symcon Forum angepasst für die XT1
// Variablen definieren
$username     = "xxxxx";
$password     = "*************";
$ip            = "x.x.x.x";
$url             = 'http://'.$ip.'/setting/index.htm';
$id_html     = 19074 /*[Alarmanlage Lupusec XT1\Sensoren]*/; // String-Variable mit Profil "~HTML-Box" für die Anzeigen im Webfront

// -----------------------------------------------------------------------------
// ab hier ist nichts mehr anzupassen

// Login
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_TIMEOUT, 30); //timeout after 30 seconds
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
//$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$result=curl_exec ($ch);

// Sensorliste lesen 
//$sensorliste = "http://".$ip."/setting/sensorInfo.htm";
$sensorliste = "http://".$ip."/action/sensorListGet";
curl_setopt($ch, CURLOPT_URL,$sensorliste);
$result=curl_exec ($ch);

// gültiges Json Format herstellen
$result = str_replace("/*-secure-", "", $result);
$result = str_replace("*/", "", $result);
$result = str_replace("no :", '"no" :', $result);
$result = str_replace("type :", '"type" :', $result);
$result = str_replace("zone :", '"zone" :', $result);
$result = str_replace("name :", '"name" :', $result);
$result = str_replace("attr :", '"attr" :', $result);
$result = str_replace("cond :", '"cond" :', $result);
$result = str_replace("battery :", '"battery" :', $result);
$result = str_replace("tamp :", '"tamp" :', $result);
$result = str_replace("bypass :", '"bypass" :', $result);
$result = str_replace("senrows :", '"senrows" :', $result);
$result = str_replace("ü", "ue", $result);
$result = str_replace("ö", "oe", $result);
$result = str_replace("ä", "ae", $result);
$result = str_replace("Ü", "Ue", $result);
$result = str_replace("Ö", "Oe", $result);
$result = str_replace("Ä", "Ae", $result);
//echo $result;
curl_close ($ch);
// Umwandeln von JSON in ein Array
$json = json_decode($result, true);
//print_r($json);
// neues Array $sensoren erstellen
// bei der XT1 ist die Sensornummer gleich der Zonennummer
foreach ($json['senrows'] as $sensor)
     {
     $zone = $sensor['no'];
     $sensoren[$zone] = $sensor;
     }
//ksort($sensoren);
//print_r($sensoren);

// HTML-Ausgabe erstellen
$html = "<table width='90%' align='left'>"; // Farbe anpassen oder style entfernen
$html .= "<tr><td><b>Sensornummer</b></td><td><b>Typ</b></td><td><b>Zonennummer</b></td><td><b>Name</b></td><td><b>Eigenschaft</b></td><td><b>Zustand</b></td><td><b>Batterie</b></td><td><b>Sabotage</b></td><td><b>Bypass</b></td></tr>";

foreach ($sensoren as $sensor)
    {
    // Zeilen mit Daten befüllen
    $html .= "<tr>";
    $html .= "<td>" . $sensor['no'] . "</td>";          // Sensornummer
    $html .= "<td>" . $sensor['type'] . "</td>";        // Typ
    $html .= "<td>" . $sensor['zone'] . "</td>";        // Zonennummer
	 $html .= "<td>" . $sensor['name'] . "</td>";        // Name
    $html .= "<td>" . $sensor['attr'] . "</td>";        // Eigenschaft
    $html .= "<td>" . $sensor['cond'] . "</td>";        // Zustand
    $html .= "<td>" . $sensor['battery'] . "</td>";     // Battery
    $html .= "<td>" . $sensor['tamp'] . "</td>";        // Sabotage
    $html .= "<td>" . $sensor['bypass'] . "</td>";      // Bypass
	 $html .= "</tr>";
    }

$html .= "</table>";
SetValue($id_html ,$html);

?>

Ein paar Sachen zu Contact-ID: Alarmanlage Lupusec XT2 Plus auslesen - Seite 2

Hallo,

die XT1 unterscheidet sich stark von der XT2! Deine Skripte funktionieren dort nicht!

Danke trotzdem.

Gruß Tommy

Aber die Contact-ID ist doch genormt. Der Datensatz muss trotzdem im IPS ankommen. Wie du dann daraufhin (z.B. per Script) reagierst, ist sicherlich hardwareabhängig.

Hello Tommy,
vielen Dank für die Bereitstellung deines PHP Skriptes. Ich habe es mit meiner Xt1 ausprobiert. Leider bekomme ich beim Ausführen folgenden Fehler:

PHP Fatal error: Call to undefined function SetValue() in /volume1/Dokumente/lupusec.php on line 87

Er kommt mit folgender Zeile nicht klar:
SetValue($id_html ,$html);

Ich habe allerdings auch deinen Wert für id_html übernommen. Wohlmöglich ist der falsch. Kannst du mir sagen, wo und wie ich den auslesen kann?

Hallo in der Welt von IP-Symcon. IP-Symcon nutzt zwar PHP es werden aber auch weitere Befehle benutzt, die nur mit IP-Symcon funktionieren. Das Skript schreibt den Inhalt in eine String Variable mit dem Standardbefehl SetValue dem Variablenprofil HTML-Box. Die 5 stellige Ziffer ist die ObjektID der Variable. Solltest Du das Skript ohne IP-Symcon ausführen, kommt es zu einer Fehlermeldung, dann müsstest Du aber das Skript umschreiben bzw. anpassen und aus den Werten eine HTML Seite setzen, die dann in einem Browser darstellbar ist. Wenn Du das Skript in IP-Symcon ausprobieren willst, bzw. dies dann in eine IP-Symcon Variable schreiben, findest Du hier eine Demo zum Ausprobieren von IP-Symcon.

Vielen Dank für die schnelle Antwort!

Hallo zusammen,

auch ich habe die XT1 von Lupusec und wollte auch das Script integrieren, aber irgendwie kommen folgende Fehlermeldungen:

Warning: Invalid argument supplied for foreach() in C:\IP-Symcon\scripts\13607.ips.php on line 56

==> foreach ($json[‚senrows‘] as $sensor)

Notice: Undefined variable: sensoren in C:\IP-Symcon\scripts\13607.ips.php on line 68
Warning: Invalid argument supplied for foreach() in C:\IP-Symcon\scripts\13607.ips.php on line 68

==> foreach ($sensoren as $sensor)

Warning: Variable #19074 existiert nicht in C:\IP-Symcon\scripts\13607.ips.php on line 85

==> SetValue($id_html ,$html);

Was mache ich hier falsch?

Eine andere Frage:
Könnte man die XT1 auch mit IP-Symcon „schalten“?

Besten Gruß
Thomas