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:
|
|
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:
|
|
Beispiel, wenn der Header ausgeschaltet ist:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
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.
Stellen Sie den TCP‑Port der Slave‑Schnittstelle ein:
Stellen Sie den UDP‑Port der Slave‑Schnittstelle ein:
Verwenden Sie anschließend Gerät hinzufügen, um Ihre Geräte zu den freigegebenen Geräten hinzuzufügen:
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:
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.
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> 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> 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> 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> 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> 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

- Stellen Sie die korrekten Verbindungsparameter ein, sodass sie mit den Einstellungen der TapHome‑Integration‑Protocol‑Schnittstelle übereinstimmen. (Hinweis: Die Standard‑Baudrate ist 9600.)
- Neue Zeile bei LF‑Zeichen setzen.
- „Senden bei Enter: CR‑LF“ aktivieren.
- Befehl eingeben (z. B. “HELP”).
- 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:

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.