Scripte zur Nutzung eines Ezcontrol XS1 in IP-Symcon

XS1
XS1(Herstellerbild)

Einsatz:

Einbindung des XS1 von Rose&Herlitz (www.ezcontrol.de) in IP-Symcon. Mit dem netzwerkfähigen XS1 ist man in der Lage, mittels der enthaltenen Sende und Empfangsmodule in 433Mhz und 868Mhz-Technik die Signale eine Vielzahl von Funk-Sensoren der veschiedensten Hersteller zu empfangen sowie auch Aktoren zu steuern, z.B. mit die gängigen Homeautomatisierungsgeräten wie FS20, HMS, FHT, EM1010 usw. Eine offizielle Liste und alle Funktionen finden sich in der Dokumentation des Herstellers. Neu unterstützte Geräte werden durch Firmwareupdates oder durch kostenpflichtige freischaltbare Systemoptionen bereitgestellt. Das Gerät verfügt weiterhin über einen Slot für eine handelsübliche SD-Card zum Loggen der der Sensordaten. Es werden SD-Cards bis max 2GB unterstützt.
Der Gerätepreis richtet sich nach den freigeschalteten Option. In der Grundausführung (189Eur) ist nur die Option "Senden" enthalten, die Vollversion(349Eur) enthält die Optionen für Senden,Empfangen,Scripting und Logging. Die Grundversion läßt sich für 65Eur pro Option auf die Vollversion freischalten. Weitere Kosten können durch zusätzliche "Systemlizenzen" für bestimmte Hersteller(z.B. Warema oder Jung) entstehen.

Sourcecode: benötigte Optionen:

Funktion:

Die Scripte gestatten das Auslesen der Sensor- und Aktordaten sowie das Schalten von Switchen. Zum Auslesen in IPS wird die JSON-Schnittstelle des XS1 über das Webinterface über ein zykliches Event abgefragt. Das Schalten eines Switches wird durch ein Event-Script bei Aktualisierung einer Variable realisiert.
Das Gerät bietet theoretisch auch eine Implementation einer permanten Aktualisierung über http (RFC2616), diese habe ich hier nicht verwendet.
Die Sensoren und Aktoren werden mit einer einheitlich Variablenstruktur in IPS beim Lesen dynamisch angelegt.
Das Betätigen von Aktoren ist im Augenblick nur für On/Off Geräte implementiert. Es gibt also genug Raum für eigene Erweiterungen...


Dynamisch erzeugte Variablen


Einrichtung XS1
Zunächst ist das XS1 gemäß der Dokumentation des Herstellers zu konfigurieren, so das er webseitig erreichbar ist. Die IP-Adresse ist 192.168.1.242, DHCP kann erst später aktiviert werden. Somit muss man seinem PC erst eine IP in diesem Netz verpassenz.B. 192.168.1.240 und kann dann das Webinterface mit http://192.168.1.242 aufrufen.

Als nächstes sollte die Firmware auf Version >3.0.4000 aktualisiert werden, weil erst in dieser Version wichtige Funktionen wie z.B. die Unterstützung der Ventus W831 funktionieren und die Daten in der erwarteten Protokollversion (ab V15) vorliegen. Im mittleren Teil der Bootloaderseite findet sich der Abschnitt zum Firmware-Update.
Anschliessend kann man auch die Netzwerkconfiguration für das eigene Netz einrichten. Ich empfehle eine feste IP zu vergeben. Dafür muss aus der Konfigurationsseite wieder der Bootloader aufgerufen werden.

XS1 Konfig
Xs1 Netzwerk Konfiguration

 XS1 Firmware Update
XS1 Firmware Update

XS1 Webseite
Xs1 Webseite

XS1 Bootloader aufruf
Xs1 Bootloader Aufruf

Sensorkonfiguration

Anschliessend müssen die Sensoren registriert werden. Dazu muss man aus der Startseite den Butto Sensoren betaätigen. Auf der folgenden Seite muss man die Zeile mit der gewünschten Sensor-Position markieren und dann rechts unten auf Bearbeiten klicken.

XS1 Aufruf Sensor-Konfiguration
XS1 Aufruf Sensor-Konfiguration

Sensor-Konfiguration
XS1 Sensor-Konfiguration

IPS-Konfiguration:

Es ist jeweils ein neues Script mit dem Inhalt von xs1_sensor.phps, xs1_actor.phps und xs1_switch.phps zu erstellen. Der Wert von $xs1 ist entsprechend dem Aufruf des eigenen XS1 zu ändern
$xs1 = 'http://xs1/';

Dem Sensor und Actor Script ist ein neuer zyklischer Ereignis mit dem der gewünschten Aktualisierungsrate zuzuweisen, dem Action Script dagegen ein ausgelöstes Ereignes bei Variablenänderung der "value" Variable des Actors. Dafür im Script-Window auf "Ereignis hinzufügen" klicken, das und den Screens folgen.
Wenn alles richtig war, kann man unter "Ereignisse" das eben erstellte Event sehen. Die folgenden Beispiele zeigen das Anlegen eines zyklischen Ereignisses
IPS Event
Script Event erstellen
Sensor- und Aktor Reader EventSwitch Event

IPS-Instanzen
Bild der IPS-Instancen

Spezielle Konfiguration

Kategorie- und Variablennamen: Die Namen der Kategorien werden aus dem Prefix $sensorname und der Sensor-ID erstellt. Das Feld der Sensor-ID kann man einstellen, default ist die Postion(number)-parameter. Anhand dieser ID erfolgt die Zuweisung der Werte zu den Variablen.

	$catname='XS1';
	$sensorname='Sensor';
	$idcol='pos';//other candidates are 'id' or 'name'

Die Namen der Variablen dürfen nicht geändert werden.
Sensoren mit Type "disabled" werden nicht angelegt. Bei Sensoren, die seit dem letztem Eintrag nicht aktualisiert worden sind (utime==lasttime), werden die Werte für value und last nicht gesetzt, wodurch der IPS Timestamp erhalten bleibt. Alle anderen Werte werden bei jedem Aufruf überschrieben.

Autocreate: Das automatische Erstellen von Instancen kann man abschalten, indem man die autocreate Variable ändert.

$autocreate=false;

Damit kann man sicherstellen, das man nur Instancen anlegt, wenn man sie erwartet. Zur Ersteinrichtung muss der Parameter jedoch auf True stehen. Bei $autocreate=true werden existierende Instancen bei nachträglicher Änderung auf Sensortype 'disabled' auch wieder gelöscht.

Hinweis:

Bei einem vollkonfiguriertem XS1 mit 64 Sensoren werden nur durch das Sensor Reader Script 64*8 + 6 Status Variablen=518 Variablen angelegt. Evtl. überschreitet das die Limits Ihrer IPS-Lizenz.

Index
Disclaimer

© 2012-2015 Thomas Dreßler
Alle Rechte vorbehalten
letzte Änderung 27.09.2015