Das XS1 von Rose + Herleth GbR ist ein ideales Steuergerät für die Hausautomation. Mit Hilfe der genialen App Tasker kann das XS1 auch mit einem Android-Smartphone gut gesteuert werden. Im Teil 2 soll gezeigt werden, wie Sensoren gelesen werden können.
Die folgende Beispielaufgabe liest einen Sensor aus und gibt ihn als Benachrichtigung aus.
Task: XS1.Lese A1: Task Ausführen [ Name:XS1.GetSensor Stop:Aus Priorität:5 Parameter 1 (%par1):1 Parameter 2 (%par2): Rücksetzungswert Variable: ]
A2: Benachrichtigung [ Titel:XS1 Sensor Text:%XS1NAME=%XS1VALUE %XS1UNIT Icon:<icon> Nummer:0 Dauerhaft:Aus ]
Die Aufgabe A1 liest den angegebenen Sensor und extrahiert den Namen, den Wert und die Einheit. A2 erzeugt eine Benachrichtigung aus den gewonnenen Informationen.
Variablen
Wir legen einige globale Variablen an:
%XS1NAME
%XS1VALUE
%XS1UNIT
%XS1DATA
%XS1NAME, %XS1VALUE, %XS1UNIT enthalten nach der XS1.GetSensor-Ausführung die Sensorwerte. %XS1DATA wird temporär benötigt.
Task: XS1.GetSensor
A1: HTTP Get [ Server:Port:%XS1PORT Pfad:control?callback=tasker&cmd=get_state_Sensor&number=%par1 Attribute: Timeout:10 MIME Typ:text/* Ausgabe Datei: ]
A2: Variable Setzen [ Name:%XS1DATA Zu:%HTTPD Mathematisch:Aus Hinzufügen:Aus ]
A3: Variable Aufteilen [ Name:%XS1DATA Teiler: Basis löschen:Aus ]
A4: Variable Aufteilen [ Name:%XS1DATA19 Teiler:" Basis löschen:Aus ]
A5: Variable Aufteilen [ Name:%XS1DATA11 Teiler:" Basis löschen:Aus ]
A6: Variable Aufteilen [ Name:%XS1DATA15 Teiler:, Basis löschen:Aus ]
A7: Variable Setzen [ Name:%XS1NAME Zu:%XS1DATA112 Mathematisch:Aus Hinzufügen:Aus ]
A8: Variable Setzen [ Name:%XS1VALUE Zu:%XS1DATA151 Mathematisch:Aus Hinzufügen:Aus ]
A9: Variable Setzen [ Name:%XS1UNIT Zu:%XS1DATA192 Mathematisch:Aus Hinzufügen:Aus ]
A1 liest den als Parameter 1 übergebenen Sensor. Die folgenden Aufgaben zerlegen die XS1-Antwort und extrahieren die gewünschten Informationen, hier Name, Wert und Einheit des Sensors.
A2 kopiert die XS1-Antwort nach %XS1DATA, das erleichtert das spätere Aufräumen nicht benötigter Variablen.
A3 splittet %XS1DATA an den Leerzeichen. Dabei entstehen %XS1DATA1, %XS1DATA2, %XS1DATA3 usw.
A4 bis A6 splittet die interessierenden Zeichenketten noch einmal, um störende Satzzeichen zu entfernen. Aus den neuen Variablen werden in A7 bis A9 die eigentlichen Werte kopiert.
Beim Splitten sind viele neue Variablen entstanden die, wenn sie stören, weitgehend gelöscht werden können. Zunächst werden die Teile verbunden:
Variable registrieren [ Name:%XS1DATA Starter:%XS1DATA Teile löschen:An ]
und dann die resultierende %XS1DATA gelöscht.
Leider klappt das das nicht hundertprozentig, einige Variablen bleiben übrig, aber das ist nicht so dramatisch und sollte nicht stören.
Anmerkung: Nur getestet mit EZcontrol Firmware 3.0.0.3322.