Ü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+) ü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.
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.
Drosselung: Aktiviert bei minimalen Intervallen von 300 ms. Bei schnellen Wertübergängen wird nur die zuletzt gemeldete Änderung gesendet; frühere Zwischenwerte werden verworfen. Fehlgeschlagene Übertragungen werden nicht erneut versucht.
Konfiguration: Die TapHome-App unterstützt drei benutzerdefinierte HTTP-Anforderungs-Header im Format „Key: Value“.
Datenstruktur: Identisch mit dem Antwortformat des Endpunkts getMultipleDevicesValues.