TapHome API
Pomoću TapHome API-ja uređaje TapHome možete povezati s bilo kojom aplikacijom treće strane, na primjer s glasovnim upravljanjem Apple Siri.
Pregled
TapHome API omogućuje povezivanje uređaja TapHome s aplikacijama trećih strana putem zahtjeva preko protokola HTTP i odgovora u formatu JSON. Sustav radi putem adrese https://api.taphome.com/api/TapHomeApi/v1/.
Glavne značajke:
- pristup resursima putem HTTP-a s odgovarajućim statusnim kodovima
- standardna dokumentacija Swagger dostupna na adresi
https://api.taphome.com/api/doc - odgovori u formatu JSON s kodiranjem UTF-8
- podrška za API u lokalnoj mreži (Core 2021.3+) putem HTTP-a, bez sučelja Swagger UI
Prednost lokalne mreže: izravan pristup preko LAN-a/VPN-a smanjuje kašnjenje i uklanja ovisnost o internetu. Centralne jedinice Core trebaju fiksnu IP adresu ili konfiguraciju mDNS.
Sigurnosna napomena: API u lokalnoj mreži i webhook rade preko nešifriranog HTTP-a i pretpostavljaju da je lokalna mreža pouzdana. Na zajedničkim lokacijama ili lokacijama s više korisnika, na primjer u hotelima ili uredima s Wi-Fi mrežom za goste, centralnu jedinicu Core postavite u zaseban mrežni segment odvojen od mreže za goste. Pogledajte Mrežnu arhitekturu.
Autentifikacija
TapHome API koristi vlastitu HTTP autentifikaciju s bearer tokenima (bez korisničkog imena i lozinke).
Format zaglavlja
| |
Primjer zahtjeva
| |
Primjer za cURL
| |
Upravljanje tokenima
Tokene ćete pronaći u aplikaciji TapHome: Postavke → Izložite uređaje → TapHome API
Nove pristupne tokene generirajte pomoću kontekstnog izbornika (tri točke). Generiranjem novog tokena prethodni prestaju vrijediti. Kao alternativa, token se može poslati kao parametar upita, ali samo kod poziva GET (sigurnosno upozorenje: ne dijelite URL-ove koji sadrže token).
Ugroženi token odmah treba ponovno generirati. Istodobno je aktivan samo jedan token.
Referentna dokumentacija API-ja
Dohvaćanje informacija o lokaciji
Dohvaća metapodatke o lokaciji centralne jedinice i provjerava stanje povezanosti.
Varijanta 1
| |
Varijanta 2
| |
Parametri: nema
Odgovor:
| |
Pogreške (HTTP statusni kodovi):
- 401 Neovlašten pristup
- 404 Nije pronađeno (lokacija nije povezana s oblakom)
- 405 Metoda nije dopuštena
- 500 Interna pogreška poslužitelja
Otkrivanje uređaja
Dohvaća izložene uređaje i vrste vrijednosti koje podržavaju, uključujući svojstva samo za čitanje kao što je stanje uređaja (Device Status).
Varijanta 1
| |
Varijanta 2
| |
Parametri: nema
Odgovor:
| |
Pogreške (HTTP statusni kodovi):
- 401 Neovlašten pristup
- 404 Nije pronađeno (lokacija nije povezana s oblakom)
- 405 Metoda nije dopuštena
- 500 Interna pogreška poslužitelja
Dohvaćanje vrijednosti uređaja
Dohvaća sve trenutačne vrijednosti navedenog uređaja, uključujući ID-ove i nazive vrsta vrijednosti. Vrijednosti su brojčane (tip double). Neka su svojstva samo za čitanje.
Česti zahtjevi (u razmacima kraćim od 500 ms) mogu vratiti vrijednosti iz predmemorije. Vremenske oznake uspoređujte samo na jednakost.
Varijanta 1
| |
Varijanta 2
| |
Parametri: ID uređaja u putanji URL-a ili u tijelu zahtjeva u formatu JSON
Odgovor:
| |
Pogreške (HTTP statusni kodovi):
- 401 Neovlašten pristup
- 403 Zabranjeno (uređaj nije izložen)
- 404 Nije pronađeno (lokacija nije povezana s oblakom)
- 405 Metoda nije dopuštena
- 500 Interna pogreška poslužitelja
Dohvaćanje vrijednosti više uređaja
Istodobno dohvaća sve trenutačne vrijednosti više uređaja. U usporedbi s pojedinačnim zahtjevima smanjuje prijenos podataka. Potrebna je verzija firmvera centralne jedinice Core 2021.3 ili novija.
| |
Parametri:
| |
Odgovor:
| |
Pogreške (HTTP statusni kodovi):
- 401 Neovlašten pristup
- 403 Zabranjeno (uređaj nije izložen)
- 404 Nije pronađeno (lokacija nije povezana s oblakom)
- 405 Metoda nije dopuštena
- 500 Interna pogreška poslužitelja
Dohvaćanje svih vrijednosti svih uređaja
Jednim zahtjevom dohvaća potpune informacije o stanju svih izloženih uređaja. Potrebna je verzija firmvera centralne jedinice Core 2021.3 ili novija.
Varijanta 1
| |
Varijanta 2
| |
Odgovor:
| |
Pogreške (HTTP statusni kodovi):
- 401 Neovlašten pristup
- 403 Zabranjeno (uređaj nije izložen)
- 404 Nije pronađeno (lokacija nije povezana s oblakom)
- 405 Metoda nije dopuštena
- 500 Interna pogreška poslužitelja
Dohvaćanje jedne vrijednosti uređaja
Dohvaća jednu vrijednost uređaja bez potrebe za obradom JSON-a. Idealno za jednostavne implementacije. Brojčani odgovor (double) vraća se kao tekst s decimalnom točkom.
| |
Parametri: ID uređaja u putanji, ID vrste vrijednosti i token u nizu upita
Odgovor:
| |
Za nepoznate vrijednosti vraća se NaN. Česti zahtjevi (u razmacima kraćim od 500 ms) mogu vratiti podatke iz predmemorije.
Pogreške (HTTP statusni kodovi):
- 401 Neovlašten pristup
- 403 Zabranjeno (uređaj nije izložen)
- 404 Nije pronađeno (lokacija nije povezana s oblakom)
- 405 Metoda nije dopuštena
- 500 Interna pogreška poslužitelja
Postavljanje vrijednosti uređaja
Mijenja jednu ili više vrijednosti uređaja prema identifikatoru vrste. Vrijednosti koje nisu navedene ostaju nepromijenjene. Brojčani tip (double).
Česte promjene (u razmacima kraćim od 500 ms) vraćaju odgovor HTTP 503.
Varijanta 1
| |
Podržava postavljanje najviše triju vrijednosti istodobno.
Varijanta 2
| |
Parametri:
| |
Odgovor:
| |
Pogreške (HTTP statusni kodovi):
- 401 Neovlašten pristup
- 403 Zabranjeno (uređaj nije izložen)
- 404 Nije pronađeno (lokacija nije povezana s oblakom)
- 405 Metoda nije dopuštena
- 500 Interna pogreška poslužitelja
- 503 Usluga nije dostupna (prečesto postavljanje vrijednosti; pokušajte ponovno kasnije)
Webhook
Funkcija webhook šalje promjene stanja izloženih uređaja zahtjevom HTTP POST na konfigurirani URL u lokalnoj mreži (LAN) ili na internetu. U usporedbi s periodičnim ispitivanjem omogućuje učinkovitiju sinkronizaciju.
Šalje se izravno, ne preko oblaka: webhook je odlazni zahtjev HTTP POST koji centralna jedinica Core šalje izravno na konfigurirani URL. Podaci nikad ne prolaze kroz poslužitelje TapHome u oblaku. Ako je odredište u istoj lokalnoj mreži, webhook se isporučuje lokalno preko LAN-a, bez prolaska kroz internet. Prekidači Pristup u oblaku i Lokalni pristup na stranici Izložite uređaje upravljaju samo dolaznim API pozivima prema centralnoj jedinici Core. Webhook ne isključuju.
Ograničavanje učestalosti: promjene se skupljaju i šalju najranije nakon približno 350 ms. Kod brzih promjena vrijednosti šalje se samo posljednja promjena, a prethodne međuvrijednosti se odbacuju. Neuspjela slanja ne ponavljaju se.
Konfiguracija: aplikacija TapHome podržava tri prilagođena zaglavlja HTTP zahtjeva u formatu „ključ: vrijednost”.
Struktura podataka: ista kao format odgovora krajnje točke getMultipleDevicesValues.