Panoramica
L’API TapHome consente l’integrazione dei dispositivi TapHome in applicazioni di terze parti tramite richieste HTTP e risposte JSON. Il sistema opera tramite https://api.taphome.com/api/TapHomeApi/v1/.
Le caratteristiche principali includono:
- Accesso alle risorse basato su HTTP con codici di stato adeguati
- Documentazione Swagger standard disponibile su
https://api.taphome.com/api/doc - Risposte JSON codificate in UTF-8
- Supporto dell’API di rete locale (Core 2021.3+) tramite HTTP senza Swagger UI
Vantaggio della rete locale: l’accesso diretto via LAN/VPN riduce la latenza ed elimina la dipendenza da Internet. Le unità Core richiedono una configurazione IP fissa o mDNS.
Autenticazione
L’API TapHome utilizza un’autenticazione HTTP personalizzata basata su token di tipo bearer (non credenziali username/password).
Formato dell’intestazione
|
|
Esempio di richiesta
|
|
Esempio cURL
|
|
Gestione dei token
I token si trovano nell’app TapHome: Impostazioni → Esponi dispositivi → TapHome API
Utilizza il menu contestuale (tre puntini) per generare nuovi token di accesso. La generazione di nuovi token invalida quelli precedenti. Un’alternativa tramite parametro di query è disponibile solo per le chiamate GET (avviso di sicurezza: evitare di condividere URL contenenti token).
In caso di compromissione di un token è necessaria una rigenerazione immediata; contemporaneamente resta attivo solo un token.
Riferimento API
Recupera informazioni sulla posizione
Recupera i metadati della posizione dell’unità di controllo e ne verifica lo stato di connettività.
Variante 1
|
|
Variante 2
|
|
Parametri: Nessuno
Risposta:
|
|
Errori HTTP:
- 401 Non autorizzato
- 404 Non trovato (posizione scollegata dal cloud)
- 405 Metodo non consentito
- 500 Errore interno del server
Scopri dispositivi
Recupera i dispositivi esposti e i relativi tipi di valore supportati, inclusi attributi in sola lettura come lo stato del dispositivo.
Variante 1
|
|
Variante 2
|
|
Parametri: Nessuno
Risposta:
|
|
Errori di stato HTTP:
- 401 Non autorizzato
- 404 Non trovato (posizione scollegata dal cloud)
- 405 Metodo non consentito
- 500 Errore interno del server
Ottieni valore del dispositivo
Recupera tutti i valori correnti per un dispositivo specificato, inclusi ID e nomi dei tipi. I valori sono numerici (double). Alcune proprietà sono in sola lettura.
Le richieste frequenti (intervalli inferiori a 500 ms) possono restituire valori memorizzati nella cache; confrontare i timestamp solo per l’uguaglianza.
Variante 1
|
|
Variante 2
|
|
Parametri: ID del dispositivo nel percorso o nel corpo JSON
Risposta:
|
|
Errori di stato HTTP:
- 401 Non autorizzato
- 403 Forbidden (dispositivo non esposto)
- 404 Non trovato (posizione scollegata dal cloud)
- 405 Metodo non consentito
- 500 Errore interno del server
Ottieni valori di più dispositivi
Recupera tutti i valori correnti per più dispositivi contemporaneamente. Riduce l’utilizzo della banda rispetto alle richieste individuali. Richiede Core 2021.3 o versioni successive.
|
|
Parametri:
|
|
Risposta:
|
|
Errori di stato HTTP:
- 401 Non autorizzato
- 403 Forbidden (dispositivo non esposto)
- 404 Non trovato (posizione scollegata dal cloud)
- 405 Metodo non consentito
- 500 Errore interno del server
Ottieni tutti i valori di tutti i dispositivi
Recupera informazioni complete sullo stato di tutti i dispositivi esposti in una singola richiesta. Richiede Core 2021.3 o versioni successive.
Variante 1
|
|
Variante 2
|
|
Risposta:
|
|
Errori di stato HTTP:
- 401 Non autorizzato
- 403 Forbidden (dispositivo non esposto)
- 404 Non trovato (posizione scollegata dal cloud)
- 405 Metodo non consentito
- 500 Errore interno del server
Ottieni un valore di un singolo dispositivo
Recupera un valore di un singolo dispositivo senza requisiti di elaborazione JSON. Adatto per implementazioni semplici. Risposta numerica (double) formattata come stringa con notazione decimale.
|
|
Parametri: ID del dispositivo nel percorso, ID del tipo di valore e token nella query string
Risposta:
|
|
I valori sconosciuti restituiscono NaN. Le richieste frequenti (sotto i 500 ms) possono restituire dati memorizzati nella cache.
Errori di stato HTTP:
- 401 Non autorizzato
- 403 Forbidden (dispositivo non esposto)
- 404 Non trovato (posizione scollegata dal cloud)
- 405 Metodo non consentito
- 500 Errore interno del server
Imposta valore del dispositivo
Modifica uno o più valori del dispositivo in base agli identificatori di tipo. I valori non specificati rimangono invariati. Tipo numerico (double).
Modifiche frequenti (intervalli inferiori a 500 ms) producono una risposta HTTP 503.
Variante 1
|
|
Supporta fino a tre assegnazioni di valore contemporanee.
Variante 2
|
|
Parametri:
|
|
Risposta:
|
|
Errori di stato HTTP:
- 401 Non autorizzato
- 403 Forbidden (dispositivo non esposto)
- 404 Non trovato (posizione scollegata dal cloud)
- 405 Metodo non consentito
- 500 Errore interno del server
- 503 Servizio non disponibile (frequenza eccessiva delle impostazioni; riprovare più tardi)
Webhook
La funzionalità Webhook consegna i cambiamenti di stato dei dispositivi esposti tramite HTTP POST a un URL configurato all’interno di ambienti LAN o Internet. Consente una sincronizzazione più efficiente rispetto al polling periodico.
Limitazione: si attiva con intervalli massimi di 300 ms. In caso di transizioni rapide dei valori viene inviata solo l’ultima modifica; i valori intermedi precedenti vengono scartati. Le trasmissioni non riuscite non vengono ritentate.
Configurazione: l’app TapHome supporta fino a tre intestazioni HTTP personalizzate nel formato “chiave: valore”.
Struttura dati: identica al formato di risposta dell’endpoint getMultipleDevicesValues.