TapHome API
Integrieren Sie TapHome-Geräte in Anwendungen über HTTP und JSON mit der TapHome-API. Unterstützung von Bearer-Authentifizierung, lokalem Netzwerk, Webhooks und Swagger-Schnittstelle.
Zuletzt aktualisiert:
Die TapHome API ist eine HTTP-Schnittstelle mit JSON-Antworten, über die eine Anwendung eines Drittanbieters die Werte von TapHome-Geräten lesen und ändern kann. Sie arbeitet mit den Geräten, die Sie in der TapHome-App freigeben, und bietet Endpunkte zum Auffinden der Geräte, zum Lesen und zum Setzen von Werten sowie einen Webhook, der Zustandsänderungen an eine von Ihnen festgelegte URL sendet. Sie benötigen ein Zugriffstoken, das Sie in der TapHome-App unter Einstellungen → Geräte freigeben → TapHome API erzeugen und im Authorization-Header jeder Anfrage mitsenden. Das Ergebnis: Eine externe Anwendung kann die freigegebenen Geräte über https://api.taphome.com/api/TapHomeApi/v1/ oder, sofern der Core dies unterstützt, über das lokale Netzwerk überwachen und steuern.
Überblick
Die TapHome API ermöglicht die Integration von TapHome-Geräten in Anwendungen von Drittanbietern über HTTP-Anfragen und JSON-Antworten. Das System ist unter https://api.taphome.com/api/TapHomeApi/v1/ erreichbar.
Wichtige Merkmale sind:
- HTTP-basierter Ressourcenzugriff mit passenden Statuscodes
- Standard-Swagger-Dokumentation verfügbar unter
https://api.taphome.com/api/doc - UTF-8-kodierte JSON-Antworten
- API-Unterstützung im lokalen Netzwerk (Core 2021.3 oder neuer) über HTTP ohne Swagger UI
Vorteil des lokalen Netzwerks: Direkter LAN/VPN-Zugriff reduziert Latenz und eliminiert die Abhängigkeit vom Internet. Core-Einheiten erfordern eine feste IP- oder mDNS-Konfiguration.
Sicherheitshinweis: Die lokale Netzwerk-API und der Webhook laufen über unverschlüsseltes HTTP und setzen voraus, dass das lokale Netzwerk vertrauenswürdig ist. An gemeinsam genutzten oder mandantenfähigen Standorten — zum Beispiel in Hotels oder Büros mit Gäste-Wi-Fi — platzieren Sie den Core in einem dedizierten Netzwerksegment, das vom Gästenetzwerk getrennt ist. Siehe Netzwerkarchitektur.
Authentifizierung
Die TapHome API verwendet eine benutzerdefinierte HTTP-Authentifizierung mittels Bearer-Token (nicht Benutzername/Passwort).
Header-Format
| |
Beispielanfrage
| |
cURL-Beispiel
| |
Token-Verwaltung
Token in der TapHome-App finden: Einstellungen → Geräte freigeben → TapHome API
Verwenden Sie das Kontextmenü (drei Punkte), um neue Zugriffstoken zu erzeugen. Das Erzeugen neuer Token macht vorherige Token ungültig. Eine Alternative über Abfrageparameter ist nur für GET-Aufrufe verfügbar (Sicherheitswarnung: Veröffentlichen Sie keine URLs mit Token).
Bei kompromittierten Token ist eine sofortige Neuerstellung erforderlich; es ist immer nur ein Token gleichzeitig aktiv.
API-Referenz
Standortinformationen abrufen
Ruft Standortmetadaten der Steuereinheit ab und validiert den Verbindungsstatus.
Variante 1
| |
Variante 2
| |
Parameter: Keine
Antwort:
| |
HTTP-Statusfehler:
- 401 Nicht autorisiert
- 404 Nicht gefunden (Standort von der Cloud getrennt)
- 405 Methode nicht erlaubt
- 500 Interner Serverfehler
Geräte entdecken
Ruft freigegebene Geräte und deren unterstützte Werttypen ab, einschließlich schreibgeschützter Eigenschaften wie dem Gerätestatus.
Variante 1
| |
Variante 2
| |
Parameter: Keine
Antwort:
| |
HTTP-Statusfehler:
- 401 Nicht autorisiert
- 404 Nicht gefunden (Standort von der Cloud getrennt)
- 405 Methode nicht erlaubt
- 500 Interner Serverfehler
Gerätewert abrufen
Ruft alle aktuellen Werte eines angegebenen Geräts ab, einschließlich Typ-IDs und Namen. Werte sind numerisch (Double-Typ). Einige Eigenschaften sind schreibgeschützt.
Variante 1
| |
Variante 2
| |
Parameter: Geräte-ID im URL-Pfad oder JSON-Body
Antwort:
| |
HTTP-Statusfehler:
- 401 Nicht autorisiert
- 403 Verboten (Gerät nicht freigegeben)
- 404 Nicht gefunden (Standort von der Cloud getrennt)
- 405 Methode nicht erlaubt
- 500 Interner Serverfehler
Werte mehrerer Geräte abrufen
Ruft alle aktuellen Werte mehrerer Geräte gleichzeitig ab. Reduziert den Bandbreitenverbrauch gegenüber einzelnen Anfragen. Erfordert Core 2021.3 oder neuer.
| |
Parameter:
| |
Antwort:
| |
HTTP-Statusfehler:
- 401 Nicht autorisiert
- 403 Verboten (Gerät nicht freigegeben)
- 404 Nicht gefunden (Standort von der Cloud getrennt)
- 405 Methode nicht erlaubt
- 500 Interner Serverfehler
Alle Werte aller Geräte abrufen
Ruft vollständige Zustandsinformationen aller freigegebenen Geräte in einer einzigen Anfrage ab. Erfordert Core 2021.3 oder neuer.
Variante 1
| |
Variante 2
| |
Antwort:
| |
HTTP-Statusfehler:
- 401 Nicht autorisiert
- 403 Verboten (Gerät nicht freigegeben)
- 404 Nicht gefunden (Standort von der Cloud getrennt)
- 405 Methode nicht erlaubt
- 500 Interner Serverfehler
Einzelnen Gerätewert abrufen
Ruft einen einzelnen Gerätewert ab, ohne JSON-Verarbeitung. Ideal für einfache Implementierungen. Die numerische Antwort (Double) wird als Zeichenkette mit Dezimalpunktnotation formatiert.
| |
Parameter: Geräte-ID im Pfad, Typ-ID des Werts und Token in der Abfragezeichenfolge
Antwort:
| |
Unbekannte Werte liefern NaN. Häufige Anfragen (unter 500 ms) können zwischengespeicherte Daten liefern.
HTTP-Statusfehler:
- 401 Nicht autorisiert
- 403 Verboten (Gerät nicht freigegeben)
- 404 Nicht gefunden (Standort von der Cloud getrennt)
- 405 Methode nicht erlaubt
- 500 Interner Serverfehler
Gerätewert setzen
Ändert einen oder mehrere Gerätewerte anhand des Typ-Identifiers. Nicht angegebene Werte bleiben unverändert. Numerischer Typ (Double).
Häufige Änderungen (Intervalle unter 500 ms) erzeugen eine HTTP-503-Antwort.
Variante 1
| |
Unterstützt bis zu drei gleichzeitige Wertzuweisungen.
Variante 2
| |
Parameter:
| |
Antwort:
| |
HTTP-Statusfehler:
- 401 Nicht autorisiert
- 403 Verboten (Gerät nicht freigegeben)
- 404 Nicht gefunden (Standort von der Cloud getrennt)
- 405 Methode nicht erlaubt
- 500 Interner Serverfehler
- 503 Service Unavailable (zu hohe Set-Value-Frequenz; später erneut versuchen)
Webhook
Die Webhook-Funktionalität liefert freigegebene Gerätestatusänderungen per HTTP POST an eine konfigurierte URL innerhalb von LAN- oder Internetumgebungen. Sie ermöglicht eine effizientere Synchronisierung im Vergleich zu periodischem Polling.
Direkt gesendet, nicht über die Cloud: Der Webhook ist ein ausgehender HTTP POST, den der Core direkt an die konfigurierte URL sendet — die Nutzdaten durchlaufen niemals die TapHome Cloud-Server. Wenn das Ziel im selben lokalen Netzwerk läuft, wird der Webhook lokal über das LAN zugestellt, ohne Umweg über das Internet. Die Schalter Cloud-Zugriff und Lokaler Zugriff auf der Seite Geräte freigeben steuern nur eingehende API-Aufrufe an den Core; sie schalten den Webhook nicht ab.
Drosselung: Änderungen werden gebündelt und frühestens nach etwa 350 ms gesendet. Bei schnellen Wertübergängen wird nur die neueste Änderung gesendet; frühere Zwischenwerte werden verworfen. Fehlgeschlagene Übertragungen werden nicht wiederholt.
Konfiguration: Die TapHome-App unterstützt drei benutzerdefinierte HTTP-Anforderungs-Header im Format „Key: Value“.
Datenstruktur: Identisch mit dem Antwortformat des Endpunkts getMultipleDevicesValues.