Integrationsprotokoll AMX, Lutron, Crestron, Control4 und Clipsal

Integration von TapHome mit AMX, Lutron, Crestron, Control4 und Clipsal über ein ASCII-Protokoll zur Steuerung und Überwachung des Gerätezustands.

Das TapHome‑System kann über ein einfaches ASCII‑Integrationsprotokoll in andere Systeme integriert werden. Dadurch können andere Systeme Informationen erhalten und TapHome‑Geräte steuern.

Unterstützte Kommunikationsschichten

  • RS485
  • TCP/IP
  • UDP/IP

Protokollbeschreibung

Das Protokoll unterstützt folgende Befehle:

HELP, LIST, GET, SET, ACTION, HEADER, AUTOSEND

Jeder Befehl muss mit CRLF‑Zeichen (0x0D 0x0A, \r\n) abgeschlossen werden.

Befehl HELP

Der Befehl HELP zeigt grundlegende Informationen zu den unterstützten Befehlen an.

HEADER [ON/OFF] schaltet Header‑Informationen ein oder aus.

LIST zeigt alle freigegebenen Geräte an.

GET [ID] ruft den Status des Geräts mit der ID ab.

SET [ID ST VAL1 .. VALN] setzt das Gerät mit der ID auf den Status ST und die Werte VAL1 bis VALN.

ACTION [ID NUM VAL] führt am Gerät mit der ID die Aktion NUM mit dem Wert VAL aus.

PUSHALL [ON/OFF] schaltet das Senden aller Gerätereignisse ein oder aus.

Befehl HEADER

Der Befehl HEADER wechselt zwischen zwei möglichen Datenausgaben. Wenn der Header ON ist, werden Beschreibungsinformationen zusammen mit den Daten gesendet. Falls der Header OFF ist, werden nur die Daten gesendet.

HEADER ohne Parameter sendet Informationen über den aktuellen Header‑Zustand.

HEADER ON schaltet Header‑Informationen ein.

HEADER OFF schaltet Header‑Informationen aus.

Befehl LIST

Der Befehl LIST zeigt alle freigegebenen Geräte an.

Folgende Informationen werden angezeigt:

Die Geräte‑ID ist die numerische Geräte‑ID.

Der Gerätetyp ist eine textliche Beschreibung des Gerätetyps (Blind, Switch, …).

Der Gerätename wie im TapHome‑System festgelegt.

Der Gerätestatus als Textinformation.

LIST‑Beispielausgabe:

1
2
3
4
5
6
7
8
ID:137,Type:Blind,Name:Virtual blind,Status:OK
ID:51,Type:Switch,Name:Ex Switch,Status:OK
ID:2,Type:MultiValueSwitch,Name:Heating & Cooling,Status:OK
ID:205,Type:PushButton,Name:Push button,Status:OK
ID:242,Type:Dimmer,Name:Analog output,Status:OK
ID:68,Type:Thermostat,Name:Thermostat 1,Status:UnknownError
ID:145,Type:Variable,Name:KNXVariable,Status:OK
ID:143,Type:Variable,Name:Sun azimuth,Status:OK

Befehl GET

Der Befehl GET benötigt einen Parameter – die Geräte‑ID. Er gibt den Gerätestatus und die Werte als Zahlen zurück.

Beispielausgabe des Befehls GET 137:

1
ID:137,DeviceStatus:0,BlindsLevel:41,BlindsSlope:41

Beispiel, wenn der Header ausgeschaltet ist:

1
137,0,41,41

Befehl SET

Der Befehl SET benötigt mindestens drei Parameter. Zuerst die Geräte‑ID, dann den neuen Gerätestatus, der gesetzt werden soll, und anschließend mindestens einen Wert, der gesetzt werden soll. Für Geräte mit mehr als einem Wert müssen alle Werte folgen – zum Beispiel erfordert eine Jalousie sowohl den neuen Level als auch den neuen Winkel.

Beispielausgabe des Befehls SET 137 0 35 80 mit und ohne Header‑Informationen:

1
2
ID:137,DeviceStatus:0,BlindsLevel:35,BlindsSlope:80
137,0,35,80

Befehl ACTION

Der Befehl ACTION führt eine Aktion am Gerät mit der ID und dem zu sendenden Wert aus. Aktionen sind nur für Jalousien definiert. Es gibt drei Aktionsnummern für Jalousien:

0 Stopp der Jalousie

1 Level von der aktuellen Position aus um den Wert +/- anpassen

2 Lamellenwinkel von der aktuellen Position aus um den Wert +/- anpassen

Beispielausgabe des Befehls ACTION 137 1 -20:

1
ID:137,AdjustBlindsLevel:-20

Befehl PUSHALL

Der Befehl PUSHALL aktiviert das Senden aller Geräteänderungen. Informationen werden im gleichen Format wie die Antwort auf den Befehl GET gesendet. Bitte beachten Sie, dass bei Verwendung auf RS485‑Leitungen Konflikte am Bus auftreten können, die zu Datenabweichungen führen können. Daher empfehlen wir, diesen Befehl nur in Vollduplex‑Verbindungen wie RS232 oder RS422 zu verwenden. Es ist auch möglich, ihn auf RS485‑Leitungen zu aktivieren in Systemen, in denen kein SET‑ oder ACTION‑Befehl verwendet wird – das heißt nur in Überwachungssystemen. In RS485‑Leitungen, in denen SET‑ und ACTION‑Befehle erforderlich sind, empfehlen wir stattdessen eine periodische Abfrage über den Befehl GET anstelle einer automatischen Überwachung.

Adressmodus

Wenn eine eindeutige Schnittstellen‑ID festgelegt ist, ist es möglich, alle Befehle im Adressmodus zu verwenden. In diesem Modus geht dem Befehl selbst der Adressheader voraus. Der Adressheader ist die Sequenz !InterfaceID:, wobei die InterfaceID in der Schnittstellenkonfiguration festgelegt ist. Jede Antwortzeile wird dann ebenfalls mit demselben Header versehen. Nur die Schnittstelle mit korrekter Adresse wird antworten – eine falsche Adressierung kann in der Antwort nicht erkannt werden.

Beispiel einer Adressmodus‑Anfrage mit dem Befehl !2:LIST:

1
klad_adresa;

Konfiguration

Um Geräte im Integrationsprotokoll freizugeben, gehen Sie zuerst zu Expose devices und wählen Sie Add new interface. Aus den angebotenen Schnittstellen wählen Sie eine der Integration protocol RS485, Integration protocol TCP oder Integration protocol UDP:

IntegrationsProtocols

Nach dem Hinzufügen der Schnittstelle entsprechend dem Typ füllen Sie die anderen Parameter aus. Setzen Sie eine eindeutige Interface‑ID für jede Schnittstelle, wenn Sie den Adressmodus verwenden möchten.

Wählen Sie das Terminal für die Kommunikation aus und füllen Sie die Kommunikationsparameter für RS485 aus. Stellen Sie alle seriellen Leitungsparameter entsprechend dem verbundenen Client ein.

InterfaceParameters

Stellen Sie den TCP‑Port der Slave‑Schnittstelle ein:

TCPSettings

Stellen Sie den UDP‑Port der Slave‑Schnittstelle ein:

UDPSettings

Verwenden Sie anschließend Gerät hinzufügen, um Ihre Geräte zu den freigegebenen Geräten hinzuzufügen:

AddDevice

Wählen Sie das Gerät aus der Liste der angebotenen Geräte. Beachten Sie, dass bereits hinzugefügte Geräte ausgegraut werden.

Nach dem Hinzufügen des Geräts wird es in der Liste der Geräte für die Integrationsprotokoll‑Schnittstelle angezeigt:

DevicesList

Klicken Sie auf das Gerät, um Informationen dazu anzuzeigen, die automatisch erzeugte Geräte‑ID zu ändern oder das Gerät aus den freigegebenen Geräten zu löschen.

DeviceInfo

Unterstützte Geräte

Folgende Geräte werden derzeit für die Freigabe im Integrationsprotokoll unterstützt:

Thermostat, Schalter, Mehrwert‑Schalter, Drucktaste, Reed‑Kontakt, Dimmer / Analogausgang, Variable, Blind, RGB‑Licht.

Gerätetyp Schreibbefehle Lese‑Befehle
Thermostat SET <DEVICE_ID><TTT.T>

Z. B. “SET 1 0 24.5”
Setzt das Thermostat mit ID=1 auf keinen Fehler, Sollwert 24,5 ºC.
GET <DEVICE_ID>
Antwort: Sollwert | Temperatur | Luftfeuchtigkeit

Z. B. “GET 1”
Switch SET <DEVICE_ID><0/1>

Z. B. “SET 1 0 1”
Schaltet den Schalter mit ID=1 ein. Kein Fehlerzustand.
GET <DEVICE_ID>
Antwort: Schalterzustand (0 oder 1)
Multi-value Switch SET <DEVICE_ID>

Z. B. “SET 1 0 3”
Setzt den Mehrwert‑Schalter mit ID=1 auf Wert 3. Kein Fehlerzustand.
GET <DEVICE_ID>
Antwort: Wert
Push button SET <DEVICE_ID><BUTTON_PRESSED>

Z. B. “SET 1 0 1”
Simuliert einen kurzen Druck der Drucktaste mit ID=1. Kein Fehlerzustand.
GET <DEVICE_ID>
Antwort: BUTTON_PRESSED (1 .. 4)
Reed Kontakt nicht verfügbar GET <DEVICE_ID>
Antwort: Zustand (0 oder 1)
Dimmer / Analogausgang SET <DEVICE_ID><DDD.D>

Z. B. “SET 1 0 55.5”
Stellt den Dimmer mit ID=1 auf Wert 55,5 % ein. Kein Fehlerzustand.
GET <DEVICE_ID>
Antwort: Wert des Analogausgangs (DDD.D)
Variable SET <DEVICE_ID><VVV.V>

Z. B. “SET 1 0 1234.5”
Setzt die Variable mit ID=1 auf Wert 1234,5. Kein Fehlerzustand.
GET <DEVICE_ID>
Antwort: Variablenwert (VVV.V)
RGB-Licht SET <DEVICE_ID>

Z. B. “SET 1 0 180 100 50”
Stellt das RGB‑Licht mit ID=1 auf die Farbe Cyan, volle Sättigung, 50 % Helligkeit. Kein Fehlerzustand.
GET <DEVICE_ID>
Antwort: Farbton | Sättigung | Helligkeit
Blind SET <DEVICE_ID>

LLL … Blind‑Level
AAA … Lamellenwinkel

Z. B. “SET 1 0 100 50”
Stellt Blind mit ID=1 auf Level 100 % mit 50 % Lamellenwinkel ein.

ACTION <DEVICE_ID> 1 <+/->LLL

Z. B. “SET 1 1 -10”
Bewegt Blind um 10 % nach oben.

ACTION <DEVICE_ID> 2 <+/-> AAA

Z. B. “SET 1 2 +25”
Stellt den Lamellenwinkel auf +25 % ein (Richtung unten).

ACTION <DEVICE_ID> 0
Stoppt Blind.
GET <DEVICE_ID>
Antwort: Level | Winkel
Blind-Gruppe Gleich wie Blind, jedoch ohne Unterstützung für Aktion 0 (Stopp).
Slide, Slide-Gruppe nicht unterstützt nicht unterstützt
Alarm, Electric meter, Slide-Gruppe, Brightness-Sensor, Impulszähler nicht unterstützt nicht unterstützt

DEVICE_ID

Wird jedem Gerät in der Liste der freigegebenen Geräte inkrementell zugewiesen. Kann manuell auf jeden beliebigen Wert geändert werden.

ERROR

0 … OK

1 … Batterie schwach

2 … Batterie kritisch

3 … Beschädigt

4 … Kommunikationsfehler

5 … Unbekannter Fehler

6 … Autorisierungsfehler

7 … Konfigurationsfehler

BUTTON PRESSED

1 … Kurzer Druck

2 … Langer Druck

3 … Doppelter Druck

4 … Dreifacher Druck

Debugging der RS485-Kommunikation

Für RS485‑Verbindungen ist es möglich, einen USB‑RS485‑Adapter an Ihren PC anzuschließen. Anfragen und Antworten werden in der Konsolenanwendung sichtbar.

Standard USB-zu-RS485-Konverter

http://sk.farnell.com/ftdi/usb-rs485-we-1800-bt/cable-usb-rs485-serial-converter/dp/1740357

Hinweis: Dieser Konverter ist nicht galvanisch isoliert, daher sollten Sie GND des Konverters mit GND des Cores verbinden.

Terminal-Software für Windows

HTerm: http://www.der-hammer.info/terminal/

So konfigurieren Sie das HTerm-Terminal

HTerm Configuration
  1. Stellen Sie die korrekten Verbindungsparameter ein, sodass sie mit den Einstellungen der TapHome‑Integration‑Protocol‑Schnittstelle übereinstimmen. (Hinweis: Die Standard‑Baudrate ist 9600.)
  2. Neue Zeile bei LF‑Zeichen setzen.
  3. „Senden bei Enter: CR‑LF“ aktivieren.
  4. Befehl eingeben (z. B. “HELP”).
  5. Die Antwort lesen.

Hinweis: Wenn Sie Änderungen der TapHome‑Geräte in der Konsole sehen möchten, verwenden Sie den Befehl PUSHALL ON.

Debugging der TCP-Kommunikation

Für das Debugging der TCP‑Kommunikation kann ein Putty‑Terminal (https://putty.org/) verwendet werden. Verwenden Sie folgende Einstellungen für die TCP‑Verbindung:

Putty Settings

Stellen Sie zuerst den Verbindungstyp auf Raw, dann geben Sie die IP‑Adresse des Cores und den in den Einstellungen des freigegebenen TCP‑Integrationsprotokolls gesetzten Port ein.