Alarmanlage Lupusec XT2 Plus auslesen

Und mittlerweile haben wir auch die Kommunikation von uns zur SecVest so hinbekommen, dass die Daten vernünftig in einer PHP Variable stehen und SecVest nicht mehr meckert :slight_smile:

Habe jetzt den Server Socket genommen, damit gehts. Es ist TCP nicht UDP.

Das wird empfangen:
<LF>496D002B"ADM-CID"0001L0#224401[#224401|1601 01 000]<CR>

224401 ist mein User (einfach irgendeine Zahl)
601 = MANUAL TEST Test-Manually Triggered (Restore Not Applicable)

Der ACK ist übrigens einfach nur das Datagramm, komplett wie es empfangen wurde, zurückgesendet.
Habe damit einen erfolgreichen NSL-Test der Secvest geschafft. Leider nur 1x. Die Secvest hat auch beim VoIP Test auch das Problem, dass der nur 1x funktioniert, wenn er über das Web-Interface ausgelöst wird… Das muss ich noch weiter untersuchen.

Das Skript sieht vorerst so aus (die Auswerte-Logik kommt später):

<?

if ($_IPS['SENDER'] != "RegisterVariable")
exit;

$data = RegVar_GetBuffer($_IPS['INSTANCE']);
$data .= $_IPS['VALUE'];
print_r ($data);


// Ack senden (enpfangenen Datensatz echoen):
//SSCK_SendPacket(23198 /*[Secvest_ContactID_Socket]*/, $data, "192.168.1.235", 1792);
RegVar_SendPacket(42884 /*[EigeneProgramme\Alarmanlage\Secvest_ContactID_Buffer]*/, $data, "192.168.1.235", 1792);

?>

Dazu 2 Fragen:
Ist SSCK_SendPacket direkt an den Server Socket und RegVar_SendPacket an die RegVar Instanz hier gleichwertig anzusehen? Gibt es vor oder Nachteile?

Ist das Skript so sicher gegen das Überschreiben der Symcon-Config
Wie von Paresy im Manual beschrieben: „Verwenden Sie bitte KEINE VARIABLE als Puffer…“

  • Wie könnte ich denn eine Variable als Puffer verwenden? $data ist doch eine Variable oder ist hier eine Symcon Variable gemeint?

Ja.
Nein nur einen Vorteil. Du musst die Instanz-ID des ServerSocket nicht wissen beim senden.

Es ist eine IPS-Variable gemeint.
Um Datenpakete beim empfangen zusammenzufügen hat die Register-Variable einen Buffer, dieser ist mit RegVar_SetBuffer und RegVar_GetBuffer zu beschreiben und zu lesen.
In deinem Script beschreibst du ihn nie, also brauchst du auch nichts lesen :wink:
Und wenn die Daten immer in einem Rutsch ankommen bzw. immer sehr klein sind, wirst du ihn auch nicht brauchen.

Wenn du mehrere Clients hast, welche sich auf IPS verbinden, wird es mit einem Buffer etwas kompliziert, ist aber auch machbar.

Michael

Hier mal ein kurzes Update:

Ich habe einen Contact-ID Decoder geschrieben, der die Messages in Klartext umsetzt und dabei die bekannten Tabellen (u.a. in der Secvest Einrichter-Anleitung) verwendet. Das ganze ist sehr Basic, da alle Messages die ich von der Secvest bisher gesehen habe eine feste Länge haben. Den Code veröffentliche ich bei Gelegenheit in meinem Secvest Thread.

Leider macht das ACK mir doch noch Probleme. So einfach wie ich erst gehofft hatte ist es leider nicht. Im Prinzip stimmt die Aussage zwar, dass ein ACK die empfangene Nachricht „nur“ wiederholt, allerdings wird dabei der Token (bei mir „ADM-CID“) durch „ACK“ ersetzt. Das hat leider zur Folge das man die CRC neu berechnen muss.

Hierbei wird CRC-16_ARC (nicht CCITT!) verwendet, mit Parametern die mir bekannt sind.

Ich dachte erst „kein Problem“, wahrscheinlich hat PHP dafür sogar eine eingebaute Funktion, aber Pustekuchen. Ich habe noch nicht mal einen passenden PHP Code dafür im Netz gefunden.

Ich mache jetzt zu diesem Problem im PHP Hilfeforum eine gesonderten Thread auf und hoffe, dass jemand helfen kann.

Habe mittlerweile was gefunden. Mache am Wochenende weiter. Update folgt…

Läuft jetzt an der Secvest und mit ACK (siehe dazu meinen Secvest Thread) :slight_smile:

Leider schickt die AA aber keine Statusänderungen der Melder wenn sie deaktiviert ist, wie ich gehofft hatte.
Auch kann mit beim Scharfschalten anhand der Meldungen nicht zwischen intern/extern Scharf unterscheiden.

Hat jemand ein brauchbares Beispiel den per UDP bekommenen Stream an die Lupusec zurückzuschicken und somit den Eingang zu bestätigen/quittierne um die Fehlermeldungen zu umgehen? Wäre sehr nett wenn jemand helfen könnte hab schon alles gelesen und versucht aber komme hier nicht weiter! Ankommend funktioniert alles nur mit dem ACK zusammensetzten komme ich nicht zurecht! DANKE

Hallo,

Mit der neuen LUPUSEC 19E Firmware ist das Schalten mittels POST nicht mehr ohne Anpassung möglich.

Es muss vorher ein Token generiert werden und per Header übertragen werden. Ich scheitere gerade aber an einem http 301 auf die Login Seite…

Stuzi

Gesendet von iPhone mit Tapatalk

Moin moin,

habe gerade mit Begeisterung Euren thread über das Auslesen der Lupusec gefunden und frage mich ob man das Rest-Interface auch dazu nutzen könnte um der Lupusec Sensoren zu simulieren.

Also z.B. über „Erweitertes manuelles hinzufügen“ einen imaginären Sensor anlegen (der physikalisch) gar nicht existiert und dem dann via Rest einen Status setzen?! Auf diese Weise könnte man sehr einfach eine Art Gateway bauen um evtl. vorhandene Sensoren einer anderen Anlage (mit zu)benutzen.

Aber zuerst muß wohl das POST Problem gelöst werden. Ist da schon jemand weiter?

Sensor emulierten könnte klappen…
Schau ich mir auch mal an … hab schon eine Idee.
Momentan stört mich aber mehr dass das schalten nicht mehr klappt.
Im Iobroker Forum gibts schon ein Java Script. Irgendwie bekomm ich es als php aber so nicht zum fliegen

Gesendet von iPhone mit Tapatalk

Hallo :slight_smile:
ich beschäftige mich neuerdings auch mit dem Thema Home-automation und versuche meine XT1 anzubinden.
Habt ihr mittlerweile weitere Erfahrungen mit der neuen Firmware machen können?
Viele Grüße,
Christoph

Moin Stuzi,

auch wenn es schon länger her ist: was möchtest du denn von IPS aus in der Alarmanlage schalten? ARM und DISARM?

Hallo Andreas,

sorry für die späte Antwort. Ich hatte es mit der 19er Firmware einige male nochmal versucht. Bin aber immer am Session Key gescheitert. Nun ist die Komplett neuer 3er draussen. Ich werd mich jetzt wieder damit befassen.

Hab grad diese drauf: HPGW 0.0.3.0K

Stefan

Bist du damit schon weiter? Im Moment kan ich mich weiterhin nicht einloggen, um Abfragen zu machen. Es laufen nur noch die Sensoren per Webhook ins Symcon. Zumindest weiß dann, ob und wann ein(e) Fenster/Tür benutzt wurde. Und wann die Anlage umgeschaltet wurde.

Hallo und Moin Moin,
Hat mittlerweile jemand die “neue” Lupusec Firmware per Openhab ansprechen können?
Viele Grüße :slight_smile:
Chris

Hallos!

Zunächst einmal ein Frohes Neues!

Habt ihr das mal so versucht?
Ich hab meine noch auf einer älteren Firmware laufen und würde die Möglichkeit des „Umschalten könnens“ nur sehr ungern verlieren.

Grüße,
Alex


// Login ...

// Token abholen ...
$token = $url."/action/tokenGet";
curl_setopt($ch, CURLOPT_URL,$edit);
$result = curl_exec($ch);
$json = json_decode($result, true);
$token = $json["message"];

// Area 1 unscharf schalten
$edit = $url."/action/panelCondPost";
curl_setopt($ch, CURLOPT_URL,$edit);
curl_setopt($ch, CURLOPT_POSTFIELDS, ("area=1&mode=0"));
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'X-Requested-With: XMLHttpRequest',
    'X-Token: $token'
    ));


Hallo,

gerade ausprobiert… so geht das Umschalten bei mir mit der aktuellen Firmware „HPGW-G 0.0.3.1E“:

Grüße,
Alex


$login="LOGIN:PASSWD";
$ip            = "HorstName";
$url           = 'https://'.$ip;


// Login
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_VERBOSE, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_URL, $url."/action/login");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, $login);
$resp=curl_exec($ch);
print_r($resp);

$edit = $url."/action/tokenGet";
curl_setopt($ch, CURLOPT_URL,$edit);
$result = curl_exec($ch);
$json = json_decode($result, true);
print_r($json);
$token=$json["message"];

// Area 1 schalten
$edit = $url."/action/panelCondPost";
curl_setopt($ch, CURLOPT_URL,$edit);
curl_setopt($ch, CURLOPT_POSTFIELDS, ("area=1&mode=1"));
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'X-Requested-With: XMLHttpRequest',
    'X-Token: '.$token
    ));


$result = curl_exec($ch);
print_r($result);
curl_close($ch);
$result = str_replace("	", "", $result);
$json = json_decode($result, true);
print_r($json);
exit;

Hallo,
Ich habe eine Lupus XT 4 und knapp 100 Sensoren.

Kann mir jemand das Modul für die XT 4 anpassen und einrichten, natürlich gegeb Bezahlung?

Liebe Grüße,
Dino