+ Antworten
Seite 1 von 3 1 2 3 LetzteLetzte
Ergebnis 1 bis 10 von 26
  1. #1
    Registriert seit
    Mar 2010
    Ort
    S-H
    Beiträge
    564

    Standard Alarmanlage Lupusec XT2 Plus auslesen

    Hallo,

    nachdem ich im Forum noch nichts von einer Lupusec-Alarmanlage gelesen hatte, hier ein Betrag zum Auslesen der angelernten Sensoren und deren Stati. Ich hoffe, es funktioniert auch woanders. Rückmeldungen über Fehler oder Erfolge würden mich freuen.

    Getriggert wird das Script vorerst manuell oder zyklisch. Mir schwebt eine Anbindung per Contact-ID vor, wobei die Anlage Meldungen an diese(n) Empfänger versendet, wenn was los ist. Das scheint jedoch etwas schwieriger zu sein. Hatte schon mal mit einem UPD-Socket gespielt - will noch nicht so richtig.

    PHP-Code:
    <?
    // Dieses Script liest die Sensoren und deren Daten aus einer Lupus XT2 Plus aus und stellt die Stati in einer Tabelle im Webfront dar

    // Variablen definieren
    $username     GetValue(35633 /*[Alarmanlage\Daten\Benutzer]*/);
    $password     GetValue(46457 /*[Alarmanlage\Daten\Passwort]*/);
    $ip            GetValue(55395 /*[Alarmanlage\Daten\IP-Adresse]*/);
    $url             'http://'.$ip.'/';
    $id_html     44077 /*[Alarmanlage\Sensoren\Sensoren]*/// String-Variable mit Profil "~HTML-Box" für die Anzeigen im Webfront

    // Gerätetypen
    $typen         = array("4" => "Türkontakt""16" => "Tag Reader""37" => "Keypad""46" => "Sirene");

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

    // Login
    $ch curl_init();
    curl_setopt($chCURLOPT_URL,$url);
    curl_setopt($chCURLOPT_TIMEOUT30); //timeout after 30 seconds
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);
    curl_setopt($chCURLOPT_HTTPAUTHCURLAUTH_ANY);
    curl_setopt($chCURLOPT_USERPWD"$username:$password");
    //$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    $result=curl_exec ($ch);


    // Sensorliste lesen
    $sensorliste "http://".$ip."/action/deviceListGet";
    curl_setopt($chCURLOPT_URL,$sensorliste);
    $result=curl_exec ($ch);
    //echo $result;
    curl_close ($ch);


    // Umwandeln von JSON in ein Array
    $result str_replace("\t"""$result);
    $json json_decode($resulttrue);
    //print_r($json);


    // jeweilge Zone als Index des neuen Arrays $sensoren verwenden und dieses nach Index (=Zone) sortieren
    foreach ($json['senrows'] as $sensor)
        {
        
    $zone $sensor['zone'];
       
    $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>Area</b></td><td><b>Zone</b></td><td><b>Typ</b></td><td><b>SID</b></td><td><b>Name</b></td><td><b>Zustand</b></td><td><b>Batterie</b></td><td><b>Stärke</b></td></tr>";

    foreach (
    $sensoren as $sensor)
        {
        
    // Daten aus Array zur besseren Anzeige bearbeiten
        
    $status = @GetTextBetween($sensor['status'], '{WEB_MSG_DC_''}');
        
    $status str_replace("CLOSE""Geschlossen"$status);
        
    $status str_replace("OPEN""Geöffnet"$status);
        
    $rssi substr($sensor['rssi'], -1);
        
    $name =  utf8_decode($sensor['name']);
        
    $battery str_replace("0""Schwach"$sensor['battery_ok']);
        
    $battery str_replace("1""OK"$sensor['battery_ok']);
        
        
    // Zeilen mit Daten befüllen
        
    $html .= "<tr>";
        
    $html .= "<td>" $sensor['area'] . "</td>";        // area
        
    $html .= "<td>" $sensor['zone'] . "</td>";        // zone
        
    $html .= "<td>" $typen[$sensor['type']] . "</td>";        // typ
        
    $html .= "<td>" $sensor['sid'] . "</td>";        // sid
        
    $html .= "<td>" $name "</td>";        // name
        
    $html .= "<td>" $status "</td>";        // status
        
    $html .= "<td>" $battery "</td>";        // battery_ok
        
    $html .= "<td>" $rssi "</td>";        // rssi
        
    $html .= "</tr>";
        }

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


    // -----------------------------------------------------------------------------
    function GetTextBetween($string$start$end)
        {
       
    preg_match_all"/$start(.*)$end/U"$string$match );
       return 
    $match[1][0];
        }
    ?>
    Geändert von hrahlers (12.12.15 um 23:51 Uhr)
    Gruß Andreas.
    -----------------------------------------------------------------
    IP-Symcon 4.30, 18.08.2017, 63867a3cde36 - virt. W2k8 R2, CCU2, HM-Funk-und Wired-Komponenten, FB7390 (Telefonie), 1-wire-Temp.fühler, Pokeys, RPi, Sophos-UTM, Ubiquiti-APs

  2. #2
    Registriert seit
    May 2010
    Ort
    Munich
    Beiträge
    76

    Hi,
    Funktioniert auch bei meiner xt2.
    Danke!

    Hoffe ich finde die Zeit bei der Weiterentwicklung zu unterstützen!
    Mich würde das schalten noch interessieren !

    Stefan

  3. #3
    Registriert seit
    May 2010
    Ort
    Munich
    Beiträge
    76

    Standard Sesor-Typen

    Hallo,
    Hab folgende Hardware Sensoren ergänzt

    $typen = array("4" => "Türkontakt", "9" => "IR", "33" => "Funk Binaereingang", "27" => "PIR Kamera", "16" => "Tag Reader", "37" => "Keypad", "46" => "Sirene");

    Stefan
    Geändert von stuzi01 (16.12.15 um 10:54 Uhr)

  4. #4
    Registriert seit
    May 2010
    Ort
    Munich
    Beiträge
    76

    Standard Erweiterung um Variablen Pro Zone (Sensor)

    Hallo,
    Hab mich mal hingesetzt:
    Was noch fehlt:
    - unterstützung Area2
    - ....

    PHP-Code:
     <?
    // Dieses Script liest die Sensoren und deren Daten aus einer Lupus XT2 Plus aus und stellt die Stati in einer Tabelle im Webfront dar

    // Variablen definieren
    $username     GetValue(42666 /*[Hardware\Lupusec V1\Username]*/);
    $password     GetValue(25702 /*[Hardware\Lupusec V1\Passwort]*/);
    $ip            GetValue(40551 /*[Hardware\Lupusec V1\IP]*/);
    $url             'http://'.$ip.'/';
    $id_html     56188 /*[Hardware\Lupusec V1\Seonsoren]*/// String-Variable mit Profil "~HTML-Box" für die Anzeigen im Webfront
    $LupuInst 42578## Dummy Modul für die Lupusec, Es muss ein Dummy Modul angelegt werden, darunter werden die Variablen abgelegt. Neue Sensoren werden automatisch hinzugefügt
    // Gerätetypen
    #$typen         = array("4" => "Türkontakt", "9" => "9", "33" => "33", "27" => "27", "16" => "Tag Reader", "37" => "Keypad", "46" => "Sirene");
    $typen = array("4" => "Türkontakt""9" => "IR""33" => "Funk Binaereingang""27" => "PIR Kamera""16" => "Tag Reader""37" => "Keypad""46" => "Sirene");


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

    // Login
    $ch curl_init();
    curl_setopt($chCURLOPT_URL,$url);
    curl_setopt($chCURLOPT_TIMEOUT30); //timeout after 30 seconds
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);
    curl_setopt($chCURLOPT_HTTPAUTHCURLAUTH_ANY);
    curl_setopt($chCURLOPT_USERPWD"$username:$password");
    //$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    $result=curl_exec ($ch);


    // Sensorliste lesen
    $sensorliste "http://".$ip."/action/deviceListGet";
    curl_setopt($chCURLOPT_URL,$sensorliste);
    $result=curl_exec ($ch);
    //echo $result;
    curl_close ($ch);


    // Umwandeln von JSON in ein Array
    $result str_replace("\t"""$result);
    $json json_decode($resulttrue);
    //print_r($json);


    // jeweilge Zone als Index des neuen Arrays $sensoren verwenden und dieses nach Index (=Zone) sortieren
    foreach ($json['senrows'] as $sensor)
        {
        
    $zone $sensor['zone'];
       
    $sensoren[$zone] = $sensor;
         }
    ksort($sensoren);
    //print_r($sensoren);


    # hier werden pro Sesor eine Statusvariable erzeugt
    foreach ($sensoren as $sensor)
        {
        
    # füllt die Variablen
        
    $status = @GetTextBetween($sensor['status'], '{WEB_MSG_DC_''}');
        
    # initialisiere mit false, fall aktor keinen Status hat
          
    $status_bol false;
          
        IF (
    $status == "CLOSE"$status_bol false;
        IF (
    $status == "OPEN")     $status_bol true;
       
    $zone $sensor['zone'];

    #echo $sensor;
         
    echo "<br>";
         
    $name =  utf8_decode($sensor['name']);
         
    $zone $sensor['zone'];
         
    $VariableName "Zone ".$zone.": ".$name;
         
    GetSetZone($VariableName$status_bol$LupuInst);
        
    # GetSetZone($zone, $status_bol, $LupuInst);
        
    }

    // HTML-Ausgabe erstellen
    $html "<table width='90%' align='left'>"// Farbe anpassen oder style entfernen
    $html .= "<tr><td><b>Area</b></td><td><b>Zone</b></td><td><b>Typ</b></td><td><b>SID</b></td><td><b>Name</b></td><td><b>Zustand</b></td><td><b>Batterie</b></td><td><b>Stärke</b></td></tr>";

    foreach (
    $sensoren as $sensor)
        {
        
    // Daten aus Array zur besseren Anzeige bearbeiten
        
    $status = @GetTextBetween($sensor['status'], '{WEB_MSG_DC_''}');
        
    $status str_replace("CLOSE""Geschlossen"$status);
        
    $status str_replace("OPEN""Geöffnet"$status);
        
    $rssi substr($sensor['rssi'], -1);
        
    $name =  utf8_decode($sensor['name']);
        
    $battery str_replace("0""Schwach"$sensor['battery_ok']);
        
    $battery str_replace("1""OK"$sensor['battery_ok']);

        
    // Zeilen mit Daten befüllen
        
    $html .= "<tr>";
        
    $html .= "<td>" $sensor['area'] . "</td>";        // area
        
    $html .= "<td>" $sensor['zone'] . "</td>";        // zone
        
    $html .= "<td>" $typen[$sensor['type']] . "</td>";        // typ
        
    $html .= "<td>" $sensor['sid'] . "</td>";        // sid
        
    $html .= "<td>" $name "</td>";        // name
        
    $html .= "<td>" $status "</td>";        // status
        
    $html .= "<td>" $battery "</td>";        // battery_ok
        
    $html .= "<td>" $rssi "</td>";        // rssi
        
    $html .= "</tr>";
        }

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


    // -----------------------------------------------------------------------------
    function GetTextBetween($string$start$end)
        {
       
    preg_match_all"/$start(.*)$end/U"$string$match );
       return 
    $match[1][0];
        }


    function 
    GetSetZone($Zone,$State_bol,$LupuInst)
        {
        
    ##baut den variablennamen zusammen
    #     $ZoneVarName = $Zone;
    #    echo $ZoneVarName;
    # Sucht nach der Zone und legt falls nciht vorhanden eine Variable an und schreibt $State als Status

            
    $VariablenID = @IPS_GetVariableIDByName($Zone$LupuInst);
            if (
    $VariablenID === false)
        {
           
    $VarID_NewZone IPS_CreateVariable(0);

    #function CreateVariableByName($ParentID, $VarName, $VarTyp, $VarProfile = "", $VarActionScript = "") {
            
    IPS_SetName($VarID_NewZone,$Zone); // Variable benennen#
            
    IPS_SetVariableCustomProfile($VarID_NewZone,"Windows");
            
    IPS_SetInfo($VarID_NewZone"This variable was created by script #".$_IPS["SELF"]);
            
    IPS_SetParent($VarID_NewZone$LupuInst); // Variable einsortieren unter dem Objekt mit der ID "12345"
            #echo "Variable nicht gefunden!";
            
    setValue($VarID_NewZone$State_bol);
         }
        else
       
    # echo "Die Variablen-ID lautet: ". $VariablenID;
            
    setValue($VariablenID$State_bol);
    }
    ?>

  5. #5
    Registriert seit
    Mar 2010
    Ort
    S-H
    Beiträge
    564

    Schalten wäre genial - da geht bestimmt auch noch was.

    Kleine Anpassungen:

    • Umstellung auf https (Bereich "Login" und "Sensorliste lesen")
    • Profil auf Standard-Profil "~Window" geändert
    • es werden nur Variablen für Türkontakte angelegt
    • der Zeitstempel wird in den Namen des Links im WF geschrieben
    • Erstellung der HTML-Tabelle als Funktion erstellt


    PHP-Code:
    <?
    // Dieses Script liest die Sensoren und deren Daten aus einer Lupus XT2 Plus aus und stellt die Stati in einer Tabelle im Webfront dar
    // Variablen anpassen
    // $id_html: String-Variable mit Profil "~HTML-Box" für die Anzeigen im Webfront (ins WF verlinken)
    // $LupuInst: Dummy Modul anlegen und die ID hinterlegen; unter diesem Dummy-Modul werden die Variablen = Sensoren (NUR Türkontakte!!!) angelegt. Neue Türkontakte werden automatisch hinzugefügt. (ins WF verlinken)
    // $id_wf: ID des Links im Webfront auf das Dummy-Modul $LupuInst

    // -----------------------------------------------------------------------------
    // Variablen definieren
    $username     GetValue(35633 /*[Alarmanlage\Daten\Benutzer]*/);
    $password     GetValue(46457 /*[Alarmanlage\Daten\Passwort]*/);
    $ip            GetValue(55395 /*[Alarmanlage\Daten\IP-Adresse]*/);
    $url             'https://'.$ip.'/';
    $id_html     44077 /*[Alarmanlage\Sensoren\Alle Sensoren - Tabelle\Sensoren]*/// String-Variable mit Profil "~HTML-Box" für die Anzeigen im Webfront
    $LupuInst 30713 /*[Alarmanlage\Sensoren\Tür-/Fensterkontakte]*/## Dummy Modul für die Lupusec, Es muss ein Dummy Modul angelegt werden, darunter werden die Variablen abgelegt. Neue Sensoren werden automatisch hinzugefügt
    $id_wf 56541 /*[Webfront\Home\Sicherheit\Alarmanlage\Tür-/Fensterkontakte - Stand: 19.12.2015 22:10]*/ ;

    // Gerätetypen
    $typen = array("4" => "Türkontakt""9" => "IR""33" => "Funk Binaereingang""27" => "PIR Kamera""16" => "Tag Reader""37" => "Keypad""46" => "Sirene");



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

    // Login
    $ch curl_init();
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
    curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
    curl_setopt($chCURLOPT_SSL_VERIFYHOSTFALSE);
    curl_setopt($chCURLOPT_URL$url);
    curl_setopt($chCURLOPT_POST1);
    curl_setopt($chCURLOPT_USERPWD"$username:$password");
    curl_exec ($ch);

    // Sensorliste lesen
    $sensorliste "https://".$ip."/action/deviceListGet";
    curl_setopt($chCURLOPT_URL,$sensorliste);
    $result=curl_exec ($ch);
    //echo $result;
    curl_close ($ch);


    // Umwandeln von JSON in ein Array
    $result str_replace("\t"""$result);
    $json json_decode($resulttrue);
    //print_r($json);


    // jeweilge Zone als Index des neuen Arrays $sensoren verwenden und dieses nach Index (=Zone) sortieren
    foreach ($json['senrows'] as $sensor)
        {
        
    $zone $sensor['zone'];
       
    $sensoren[$zone] = $sensor;
         }
    ksort($sensoren);
    //print_r($sensoren);


    // -----------------------------------------------------------------------------

    IPS_SetName($id_wfIPS_GetName($LupuInst)." - Stand: ".date("d.m.Y H:i"));

    # hier wird pro Sensor eine Statusvariable erzeugt
    foreach ($sensoren as $sensor)
        {
        
    # füllt die Variablen
        
    $status = @GetTextBetween($sensor['status'], '{WEB_MSG_DC_''}');
        
    # initialisiere mit false, fall aktor keinen Status hat
        
    $status_bol false;

        IF (
    $status == "CLOSE"$status_bol false;
        IF (
    $status == "OPEN")     $status_bol true;
        
    $zone $sensor['zone'];
        
    $name =  utf8_decode($sensor['name']);
        
    $zone $sensor['zone'];
        
    $VariableName "Zone ".$zone.": ".$name;
        
    $typ $sensor['type'];
        
    GetSetZone($VariableName$status_bol$LupuInst$typ);
       }


    // -----------------------------------------------------------------------------

    // HTML-Ausgabe im Webfront erstellen
    $html CreateHtml($sensoren$typen);
    SetValue($id_html ,$html);


    // -----------------------------------------------------------------------------
    // Funktionen

    function GetTextBetween($string$start$end)
        {
       
    preg_match_all"/$start(.*)$end/U"$string$match );
       return 
    $match[1][0];
        }

    // -----------------------------------------------------------------------------

    function GetSetZone($Zone,$State_bol,$LupuInst$typ)
        {
        
    ##baut den variablennamen zusammen
        #     $ZoneVarName = $Zone;
        #    echo $ZoneVarName;
        # Sucht nach der Zone und legt falls nciht vorhanden eine Variable an und schreibt $State als Status

        
    if ($typ == 4// nur eine Variable anlegen, wenn der Sensor = Type 4 ist (-> Türkontakt)
           
    {
            
    $VariablenID = @IPS_GetVariableIDByName($Zone$LupuInst);
            if (
    $VariablenID === false)
                {
              
    $VarID_NewZone IPS_CreateVariable(0);
                
    #function CreateVariableByName($ParentID, $VarName, $VarTyp, $VarProfile = "", $VarActionScript = "") {
             
    IPS_SetName($VarID_NewZone,$Zone); // Variable benennen#
             
    IPS_SetVariableCustomProfile($VarID_NewZone,"~Window");
             
    IPS_SetInfo($VarID_NewZone"This variable was created by script #".$_IPS["SELF"]);
             
    IPS_SetParent($VarID_NewZone$LupuInst); // Variable einsortieren unter dem Objekt mit der ID "12345"
             #echo "Variable nicht gefunden!";
             
    setValue($VarID_NewZone$State_bol);
             }
            else
                {
                
    # echo "Die Variablen-ID lautet: ". $VariablenID;
              
    setValue($VariablenID$State_bol);
              }
             }
        }


    function 
    CreateHtml($sensoren$typen)
        {
        
    // HTML-Ausgabe erstellen und zurückgeben

        
    $html "<table width='90%' align='left'>"// Farbe anpassen oder style entfernen
        
    $html .= "<tr><td><b>Area</b></td><td><b>Zone</b></td><td><b>Typ</b></td><td><b>SID</b></td><td><b>Name</b></td><td><b>Zustand</b></td><td><b>Batterie</b></td><td><b>Stärke</b></td></tr>";

        foreach (
    $sensoren as $sensor)
            {
            
    // Daten aus Array zur besseren Anzeige bearbeiten
            
    $status = @GetTextBetween($sensor['status'], '{WEB_MSG_DC_''}');
            
    $status str_replace("CLOSE""Geschlossen"$status);
            
    $status str_replace("OPEN""Geöffnet"$status);
            
    $rssi substr($sensor['rssi'], -1);
            
    $name =  utf8_decode($sensor['name']);
            
    $battery str_replace("0""Schwach"$sensor['battery_ok']);
            
    $battery str_replace("1""OK"$sensor['battery_ok']);

            
    // Zeilen mit Daten befüllen
            
    $html .= "<tr>";
            
    $html .= "<td>" $sensor['area'] . "</td>";        // area
            
    $html .= "<td>" $sensor['zone'] . "</td>";        // zone
            
    $html .= "<td>" $typen[$sensor['type']] . "</td>";        // typ
            
    $html .= "<td>" $sensor['sid'] . "</td>";        // sid
            
    $html .= "<td>" $name "</td>";        // name
            
    $html .= "<td>" $status "</td>";        // status
            
    $html .= "<td>" $battery "</td>";        // battery_ok
            
    $html .= "<td>" $rssi "</td>";        // rssi
            
    $html .= "</tr>";
            }

        
    $html .= "</table>";
        return 
    $html;
         }


    ?>
    Geändert von hrahlers (19.12.15 um 23:32 Uhr)
    Gruß Andreas.
    -----------------------------------------------------------------
    IP-Symcon 4.30, 18.08.2017, 63867a3cde36 - virt. W2k8 R2, CCU2, HM-Funk-und Wired-Komponenten, FB7390 (Telefonie), 1-wire-Temp.fühler, Pokeys, RPi, Sophos-UTM, Ubiquiti-APs

  6. #6
    Registriert seit
    Mar 2010
    Ort
    S-H
    Beiträge
    564

    Standard erster Schreibversuch ...

    ... ist geglückt!

    Habe mal den Namen eines Sensors erfolgreich geändert.

    PHP-Code:
    <?
    // Sensorname in "Testname mit Leerzeichen" ändern

    // -----------------------------------------------------------------------------
    // Variablen definieren
    $username     GetValue(35633 /*[Alarmanlage\Daten\Benutzer]*/);
    $password     GetValue(46457 /*[Alarmanlage\Daten\Passwort]*/);
    $ip            GetValue(55395 /*[Alarmanlage\Daten\IP-Adresse]*/);
    $url_base             'https://'.$ip.'/';

    // Login
    $ch curl_init();
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
    curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
    curl_setopt($chCURLOPT_SSL_VERIFYHOSTFALSE);
    curl_setopt($chCURLOPT_URL$url_base);
    curl_setopt($chCURLOPT_POST1);
    curl_setopt($chCURLOPT_USERPWD"$username:$password");
    curl_exec ($ch);


    // Sensorname in "Testname mit Leerzeichen" ändern
    // für Sensor mit der ID "RF:020fa379" -> RF%3A020fa379

    $edit $url_base."/action/deviceEditPost";
    curl_setopt($chCURLOPT_URL,$edit);
    curl_setopt($chCURLOPT_POSTFIELDS, ("id=RF%3A020fa379&sname=Testname+mit+Leerzeichen&sarea=1&szone=1&schar_latch_rpt=1&sresp_panic=10&sresp_fire=12&sresp_medical=7&sresp_emergency=11&sresp_arm=0&sresp_home=0&sresp_disarm=0&sresp_switch_on=0&sresp_switch_off=0&sresp_button_1=0&sresp_button_2=0&sresp_button_3=0&sresp_button_4=0&sresp_mode_0=0&sresp_entry_0=0&sresp_exit_0=5&sresp_mode_1=5&sresp_entry_1=5&sresp_exit_1=5&sresp_mode_2=5&sresp_entry_2=5&sresp_exit_2=5&sresp_mode_3=5&sresp_entry_3=5&sresp_exit_3=5&sresp_mode_4=5&sresp_entry_4=5&sresp_exit_4=5&sresp_trigger=0&sresp_trigger2=0&sresp_restore=0"));
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
    $result curl_exec($ch);
    echo 
    $result;
    curl_close($ch);

    ?>
    Wird mit einem
    Code:
    {
      "result" : 1,
      "message" : "{WEB_MSG_SUBMIT_SUCCESS}"
    }
    quittiert.
    Gruß Andreas.
    -----------------------------------------------------------------
    IP-Symcon 4.30, 18.08.2017, 63867a3cde36 - virt. W2k8 R2, CCU2, HM-Funk-und Wired-Komponenten, FB7390 (Telefonie), 1-wire-Temp.fühler, Pokeys, RPi, Sophos-UTM, Ubiquiti-APs

  7. #7
    Registriert seit
    Mar 2010
    Ort
    S-H
    Beiträge
    564

    Standard Anlage (un-) scharf schalten

    Nun kann ich die Anlage auch schalten:

    PHP-Code:
    <?
    // Mit diesem Script kann man die Anlage (un-)scharf schalten
    // mode=0 -> unscharf
    // mode=1 -> scharf


    // -----------------------------------------------------------------------------
    // Variablen definieren
    $username     GetValue(35633 /*[Alarmanlage\Daten\Benutzer]*/);
    $password     GetValue(46457 /*[Alarmanlage\Daten\Passwort]*/);
    $ip            GetValue(55395 /*[Alarmanlage\Daten\IP-Adresse]*/);
    $url_base             'https://'.$ip.'/';


    // Login
    $ch curl_init();
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
    curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
    curl_setopt($chCURLOPT_SSL_VERIFYHOSTFALSE);
    curl_setopt($chCURLOPT_URL$url_base);
    curl_setopt($chCURLOPT_POST1);
    curl_setopt($chCURLOPT_USERPWD"$username:$password");
    curl_exec ($ch);


    // Area 1 schalten
    $edit $url_base."/action/panelCondPost";
    curl_setopt($chCURLOPT_URL,$edit);
    curl_setopt($chCURLOPT_POSTFIELDS, ("area=1&mode=1"));
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
    $result curl_exec($ch);
    echo 
    $result;
    curl_close($ch);


    ?>
    Gruß Andreas.
    -----------------------------------------------------------------
    IP-Symcon 4.30, 18.08.2017, 63867a3cde36 - virt. W2k8 R2, CCU2, HM-Funk-und Wired-Komponenten, FB7390 (Telefonie), 1-wire-Temp.fühler, Pokeys, RPi, Sophos-UTM, Ubiquiti-APs

  8. #8
    Registriert seit
    May 2010
    Ort
    Munich
    Beiträge
    76

    Standard Alarmanlage Lupusec XT2 Plus auslesen

    Danke, funktioniert auch bei mir!
    Ergänzung: Mode=2 entspricht Hone 1

  9. #9
    Registriert seit
    Jul 2008
    Beiträge
    2

    Hallo zusammen!

    durch Zufall bin ich auf diesen Thread gestoßen. Verstehe ich das richtig, dass die Lupusec XT2 eine REST-Schnittstelle hat, die man per JSON abfragen kann? Das wäre super, da ich ebenfalls vorhabe, mir eine Lupusec XT2 zuzulegen. In Der Doku habe ich darüber nichts gefunden.

    Gruß,
    thoern

  10. #10
    Registriert seit
    Mar 2010
    Ort
    S-H
    Beiträge
    564

    Naja Schnittstelle. .. Ich versuche nur ein paar Sachen auszulesen, die ich in IPS weiter verwenden kann wie die Tür- und Fensterkontakte der Lupusec. Nun auch ohne ständig zu pollen, sondern nur bei Statusänderung in der AA, wenn z.B. jemand die Tür aufmacht wird das an IPS gesendet und dort der Status aktualisiert. Ist zwar eher eine Krückenlösung (via Contact-ID und Automations-Regeln auf der Lupusec), aber diese funktioniert und meine Zwecke sind (vorläufig) erfüllt. Klappt mit ein paar Sekunden Verzögerung ganz gut.
    Geändert von hrahlers (08.04.16 um 00:05 Uhr)

Ähnliche Themen

  1. Satel Alarmanlage
    Von herta75 im Forum Skripte, PHP, SQL
    Antworten: 2
    Letzter Beitrag: 06.11.15, 09:13
  2. Alarmanlage
    Von Stromer im Forum Skripte, PHP, SQL
    Antworten: 6
    Letzter Beitrag: 01.09.15, 19:50
  3. Auslesen von Daten über serielle Schnittstelle - Alarmanlage
    Von christianbre im Forum Skripte, PHP, SQL
    Antworten: 5
    Letzter Beitrag: 28.02.13, 20:36
  4. Alarmanlage per Funk
    Von hmpf99 im Forum Haustechnik
    Antworten: 2
    Letzter Beitrag: 27.12.12, 21:15
  5. EnOcean Alarmanlage?
    Von aag im Forum EnOcean
    Antworten: 12
    Letzter Beitrag: 08.02.12, 14:00