TapHome API
TapHome API umožňuje integráciu smart zariadení do aplikácií tretích strán, podporuje autentifikáciu, získavanie stavov a webhook notifikácie.
Prehľad
TapHome API umožňuje integráciu zariadení TapHome do aplikácií tretích strán prostredníctvom HTTP požiadaviek a JSON odpovedí. Systém funguje cez https://api.taphome.com/api/TapHomeApi/v1/.
Kľúčové charakteristiky zahŕňajú:
- prístup k zdrojom na báze HTTP s vhodnými stavovými kódmi
- štandardnú Swagger dokumentáciu k dispozícii na
https://api.taphome.com/api/doc - JSON odpovede kódované vo formáte UTF-8
- podporu API pre miestnu sieť (Core 2021.3+) cez HTTP bez Swagger UI
Výhoda miestnej siete: Priamy prístup cez LAN/VPN znižuje latenciu a eliminuje závislosť na internete. Core jednotky vyžadujú pevnú IP adresu alebo konfiguráciu mDNS.
Bezpečnostná poznámka: API lokálnej siete a webhook bežia cez nešifrované HTTP a predpokladajú, že lokálna sieť je dôveryhodná. Na zdieľaných lokalitách alebo lokalitách pre viacerých nájomníkov — napríklad v hoteloch alebo kanceláriách s hosťovskou Wi-Fi — umiestnite Core do vyhradeného sieťového segmentu oddeleného od hosťovskej siete. Pozrite si Architektúra siete.
Autentifikácia
TapHome API používa vlastnú HTTP autentifikáciu pomocou bearer tokenov (nie prihlasovacie meno a heslo).
Header Format
| |
Example Request
| |
cURL Example
| |
Token Management
Tokeny nájdete v aplikácii TapHome: Nastavenia → Zverejniť zariadenia → TapHome API.
Pomocou kontextového menu (tri bodky) môžete generovať nové prístupové tokeny. Vygenerovanie nových tokenov zneplatní všetky predchádzajúce.
Alternatívny parameter dotazu je k dispozícii len pre GET volania (bezpečnostné upozornenie: vyhýbajte sa zdieľaniu URL obsahujúcich tokeny).
Tokeny, ktoré boli kompromitované, je potrebné okamžite zrušiť a vygenerovať nanovo; naraz je aktívny len jeden token.
Referenčná dokumentácia API
Získanie informácií o lokalite
Získa metadáta lokality riadiacej jednotky a overí stav pripojenia.
Variant 1
| |
Variant 2
| |
Parametre: Žiadne
Odpoveď:
| |
HTTP Status Errors:
- 401 Neoprávnený prístup
- 404 Nenájdené (lokalita odpojená od cloudu)
- 405 Metóda nie je povolená
- 500 Interná chyba servera
Objav zariadení
Načíta vystavené zariadenia a ich podporované typy hodnôt, vrátane čitateľných vlastností ako stav zariadenia.
Variant 1
| |
Variant 2
| |
Parametre: Žiadne
Odpoveď:
| |
HTTP Status Errors:
- 401 Neoprávnený prístup
- 404 Nenájdené (lokalita odpojená od cloudu)
- 405 Metóda nie je povolená
- 500 Interná chyba servera
Získanie hodnoty zariadenia
Získa všetky aktuálne hodnoty pre špecifikované zariadenie, vrátane identifikátorov typov a ich názvov. Hodnoty sú číselné (double). Niektoré vlastnosti sú len na čítanie.
Variant 1
| |
Variant 2
| |
Parametre: ID zariadenia v URL ceste alebo v tele JSON
Odpoveď:
| |
HTTP Status Errors:
- 401 Neoprávnený prístup
- 403 Zakázaný prístup (zariadenie nie je vystavené)
- 404 Nenájdené (lokalita odpojená od cloudu)
- 405 Metóda nie je povolená
- 500 Interná chyba servera
Získanie hodnôt viacerých zariadení
Získa všetky aktuálne hodnoty pre viaceré zariadenia súčasne. Znižuje dátový prenos oproti individuálnym dopytom. Vyžaduje Core 2021.3 alebo novší.
| |
Parametre:
| |
Odpoveď:
| |
HTTP Status Errors:
- 401 Neoprávnený prístup
- 403 Zakázaný prístup (zariadenie nie je vystavené)
- 404 Nenájdené (lokalita odpojená od cloudu)
- 405 Metóda nie je povolená
- 500 Interná chyba servera
Získanie všetkých hodnôt všetkých zariadení
Získa úplný stav všetkých vystavených zariadení v jednej požiadavke. Vyžaduje Core 2021.3 alebo novší.
Variant 1
| |
Variant 2
| |
Odpoveď:
| |
HTTP Status Errors:
- 401 Neoprávnený prístup
- 403 Zakázaný prístup (zariadenie nie je vystavené)
- 404 Nenájdené (lokalita odpojená od cloudu)
- 405 Metóda nie je povolená
- 500 Interná chyba servera
Získanie jednej hodnoty zariadenia
Získa jednu hodnotu zariadenia bez potreby spracovania JSON. Ideálne pre jednoduché implementácie. Číselná odpoveď (double) formátovaná ako reťazec s desatinnou bodkou.
| |
Parametre: ID zariadenia v ceste, ID typu hodnoty a token v dotazovacom reťazci
Odpoveď:
| |
Neznáme hodnoty vracajú NaN. Časté požiadavky (s intervalom pod 500 ms) môžu vrátiť dáta z cache.
HTTP Status Errors:
- 401 Neoprávnený prístup
- 403 Zakázaný prístup (zariadenie nie je vystavené)
- 404 Nenájdené (lokalita odpojená od cloudu)
- 405 Metóda nie je povolená
- 500 Interná chyba servera
Nastavenie hodnoty zariadenia
Upraví jednu alebo viacero hodnôt zariadenia podľa identifikátora typu. Nešpecifikované hodnoty zostávajú nezmenené. Číselný typ (double).
Časté úpravy (s intervalom pod 500 ms) vyvolajú odpoveď HTTP 503.
Variant 1
| |
Podporuje až tri súčasné priradenia hodnôt.
Variant 2
| |
Parametre:
| |
Odpoveď:
| |
HTTP Status Errors:
- 401 Neoprávnený prístup
- 403 Zakázaný prístup (zariadenie nie je vystavené)
- 404 Nenájdené (lokalita odpojená od cloudu)
- 405 Metóda nie je povolená
- 500 Interná chyba servera
- 503 Služba nedostupná (nadmerná frekvencia nastavovania hodnôt; skúste to znova neskôr)
Webhook
Webhook funkčnosť doručuje zmeny stavu vystavených zariadení prostredníctvom HTTP POST na nakonfigurovanú URL adresu v prostredí LAN alebo internetu. Umožňuje efektívnu synchronizáciu v porovnaní s periodickým dotazovaním.
Odosielané priamo, nie cez cloud: Webhook je odchádzajúci HTTP POST, ktorý Core posiela priamo na nakonfigurovanú URL — dáta nikdy neprechádzajú cez cloudové servery TapHome. Ak cieľ beží v rovnakej lokálnej sieti, webhook je doručený lokálne cez LAN, bez cesty cez internet. Prepínače Cloudový prístup a Lokálny prístup na stránke Zverejniť zariadenia riadia iba prichádzajúce volania API do Core; nevypínajú webhook.
Obmedzovanie frekvencie: Zmeny sú zoskupované do dávok a odosielané najskôr po približne 350 ms. Pri rýchlych zmenách hodnôt sa odošle iba najnovšia zmena; predchádzajúce priebežné hodnoty sa zahodia. Zlyhané prenosy sa neopakujú.
Konfigurácia: Aplikácia TapHome vyžaduje tri vlastné hlavičky HTTP vo formáte „kľúč: hodnota“.
Dátová štruktúra: Identická s formátom odpovede endpointu getMultipleDevicesValues.