Guida per sviluppatori e API
1. Iniziare ad usare
1.1 Preparazione
Passo 1. Assicurarsi che il gateway sia alimentato e funzioni correttamente.
Passo 2. Assicurarsi che il gateway e il PC siano collegati alla stessa LAN. Quindi inserire l'URL di CUBE nel browser.
Avviso: Se avete più gateway, potete ottenere l'indirizzo IP corrispondente per accedere al gateway specificato nei seguenti due modi.
Accedere al vostro router wireless e controllare l'indirizzo IP del gateway nel DHCP.
CUBE supporta la scoperta locale tramite mDNS.
1.2 Per iniziare
Chiamare l'interfaccia [Access Token], e ottenere una risposta di errore che invita a cliccare <Fatto>. Nota che dopo la pressione, l'accesso all'interfaccia è valido per non più di 5 minuti.
// Richiesta
curl --location --request GET 'http://<ip address>/open-api/V2/rest/bridge/access_token' --header 'Content-Type: application/json'
// Risposta
{
"error": 401,
"data": {},
"message": "link button not pressed"
}Cliccare <Fatto> e chiamare nuovamente l'interfaccia [Access Token]. La risposta è positiva e il token viene ottenuto.
Verificare il token. Chiamare l'interfaccia [Get Device List]. La risposta è positiva e viene ottenuta la lista dei dispositivi.
Metodo per ottenere il token di accesso CUBE: dopo aver chiamato l'interfaccia [Access Token], la finestra pop-up globale della pagina della console Web CUBE invita l'utente a confermare l'acquisizione delle credenziali per la chiamata dell'interfaccia.
Nota: Se si aprono più pagine della console web CUBE, la finestra di conferma apparirà su più pagine della console web contemporaneamente, e la finestra pop-up delle altre pagine della console web verrà chiusa dopo aver cliccato la conferma su una delle pagine.
2. Concetto chiave
2.1 Indirizzo dell'interfaccia di sviluppo
L'interfaccia Web API del gateway ha due metodi di accesso (basati su IP o nome di dominio), solitamente il percorso root è /open-api/V2/rest/< specifico modulo funzionale >
// Accesso IP http:///open-api/V2/rest/bridge
// Accesso tramite nome di dominio http:///open-api/V2/rest/bridge
2.2 Categoria di visualizzazione del dispositivo e capacità
**Categoria di visualizzazione del dispositivo (DisplayCategory). **La categoria di visualizzazione del dispositivo viene utilizzata per identificare categorie specifiche di (dispositivi), come switch, plug, light, ecc. Questa informazione determinerà l'effetto di visualizzazione UI del dispositivo nel gateway.
**Capability del dispositivo. **La capability del dispositivo viene utilizzata per descrivere le specifiche sotto-funzioni del dispositivo. Ad esempio controllo di alimentazione, controllo della luminosità, controllo della temperatura del colore, ecc. Un singolo dispositivo può supportare 1 o più capability.
capability: Descrive il nome della capability, che deve essere globalmente unico e di tipo stringa. Più parole inglesi devono essere separate da trattini ("-"). Per esempio:
"thermostat-target-setpoint".name: Descrive la categoria sotto la capability, anch'essa di tipo stringa. Più parole inglesi devono essere separate da trattini ("-"). Per esempio:
"auto-mode","manual-mode".permission: Descrive i permessi associati alla capability. Il tipo è stringa, formattata in codice binario 8421. Esempi includono:
Dispositivo controllabile:
"1000"Dispositivo configurabile:
"0010"Dispositivo controllabile e configurabile:
"1010"Dispositivo controllabile e in grado di segnalare:
"1100"
Il significato di ogni bit, da destra a sinistra, è il seguente: ⅰ. Bit 0: Consente la consultazione del dispositivo ⅱ. Bit 1: Consente la configurazione del dispositivo ⅲ. Bit 2: Consente al dispositivo di riportare dati ⅳ. Bit 3: Consente il controllo del dispositivo
settings: Descrive le voci di configurazione per la capability, che sono di tipo oggetto e includono una descrizione per ciascuna voce di configurazione. ⅰ. key: Descrive il nome della voce di configurazione, che è di tipo stringa. Più parole inglesi dovrebbero essere espresse in camelCase. Per esempio: "temperatureUnit". ⅱ. value: Descrive il contenuto della voce di configurazione. Le specifiche dettagliate sono descritte nella tabella sottostante.
permission
string
N
Descrive i permessi per la voce di configurazione.
Valori opzionali:
Consente la modifica di questa voce di configurazione:
"10"Consente la visualizzazione di questa voce di configurazione:
"01"Consente sia la modifica che la visualizzazione di questa voce di configurazione:
"11"
Spiegazione dei bit:
Bit 0: Consente la visualizzazione di questa voce di configurazione
Bit 1: Consente la modifica di questa voce di configurazione | | type | string | N | Descrive il tipo di dato del valore della voce di configurazione. Valori opzionali:
"enum""numeric""object""boolean""string"
Linee guida specifiche per tipo:
Quando
**type = enum**:Il
campo value(che descrive il valore della voce di configurazione) è obbligatorio sepermissionconsente la modifica ("10"o"11").Il
default(che descrive il valore predefinito della voce di configurazione) evalues(che descrive i valori selezionabili per la voce di configurazione) i campi sono opzionali.
Quando
**type = numeric**:Il
campo valueil campo è obbligatorio sepermissionconsente la modifica ("10"o"11").I seguenti campi sono opzionali:
min(che descrive il valore minimo della voce di configurazione)max(che descrive il valore massimo della voce di configurazione)step(che descrive il valore di passo per la voce di configurazione)precision(che descrive la precisione)unit(che descrive l'unità della voce di configurazione)default(che descrive il valore predefinito)
Quando
**type = object**:Il
campo valueil campo è obbligatorio sepermissionconsente la modifica ("10"o"11").Il
defaultil campo è opzionale.
Quando
**type = boolean**:Il
campo valueil campo è obbligatorio sepermissionconsente la modifica ("10"o"11").Il
defaultil campo è opzionale.
Quando
**type = string**:Il
campo valueil campo è obbligatorio sepermissionconsente la modifica ("10"o"11").Il
defaultil campo è opzionale. |
3. Web API
Tipo di dato
string
Tipo di dato stringa. Codifica UTF8.
number
Tipo di dato numerico. Formato binario a virgola mobile a doppia precisione a 64 bit IEEE 754
int
Tipo di dato intero.
object
Tipo di dato oggetto. Oggetto conforme a JSON
string[]
Array di stringhe
int[]
Array di interi
object[]
Array di oggetti
bool
Booleano
date
Stringa di tempo. Stringa in formato ISO (Formato esteso ISO 8601): YYYY-MM-DDTHH:mm:ss.sssZ. Il fuso orario è sempre UTC (Tempo Coordinato Universale), identificato dal suffisso "Z".
Risultati generici della risposta
error
int
N
Codice di errore:
0: Successo
400: Errore di parametro
401: Autenticazione fallita
500: Eccezione del server
data
object
N
Corpo dei dati della risposta
message
string
N
Descrizione della risposta:
Quando error è uguale a 0, il contenuto è success
Quando error è diverso da 0, è una stringa non vuota, e il contenuto è una descrizione dell'errore.
Esempio di risposta:
Elenco delle risorse
Suoni supportati
- alert1 (Suono di allarme 1)
alert2 (Suono di allarme 2)
alert3 (Suono di allarme 3)
alert4 (Suono di allarme 4)
alert5 (Suono di allarme 5)
doorbell1 (Suono campanello 1)
doorbell2 (Suono campanello 2)
doorbell3 (Suono campanello 3)
doorbell4 (Suono campanello 4)
doorbell5 (Suono campanello 5)
alarm1 (Suono di allarme 1)
alarm2 (Suono di allarme 2)
alarm3 (Suono di allarme 3)
alarm4 (Suono di allarme 4)
alarm5 (Suono di allarme 5) | | Deep supportati | - bootComplete (Avvio del sistema completato)
networkConnected (Rete connessa)
networkDisconnected (Rete disconnessa)
systemShutdown (Spegnimento del sistema) -deviceDiscovered (Scoperta dispositivo)
system Armed (Sistema armato abilitato)
system Disarmed (Sistema armato disabilitato)
factoryReset (Ripristina dispositivo) |
3.1 La funzione del Gateway
a. Access Token
Consente agli utenti di ottenere il token di accesso.
Avviso: Il token verrà cancellato dopo il reset del dispositivo.
Avviso: Dopo aver ottenuto il token, è necessario premere nuovamente il pulsante per ottenere con successo un nuovo token.
:::tips
URL:
/open-api/V2/rest/bridge/access_tokenMetodo:
GETHeader:
Content-Type: application/json ::: Parametri della richiesta:
Attributo
Tipo
Opzionale
Descrizione
app_name
string
Y
Descrizione del nome dell'applicazione.
Risposta dati di successo:
Attributo
Tipo
Opzionale
Descrizione
token
string
N
Il token di accesso dell'interfaccia. È valido a lungo termine, conservarlo
app_name
string
Y
Descrizione del nome dell'applicazione.
:::tips Condizione: L'utente attiva il < comando > e accede a questa interfaccia entro il tempo valido. **Status Code: **200 OK ::: Esempio di risposta:
Risposta dati di errore:Oggetto vuoto :::tips Condizioni:L'utente non ha attivato il < comando >, o il tempo valido è scaduto. **Status Code: ** 200 OK ::: Esempio di risposta:
b. Ottenere lo stato del Gateway
Consente agli utenti autorizzati di ottenere lo stato del gateway tramite questa interfaccia :::tips
URL:
/open-api/V2/rest/bridge/runtimeMetodo:
GETHeader:
Content-Type: application/json
Authorization: Bearer ::: Parametri della richiesta: nessuno Risposta dati di successo:
Attributo
Tipo
Opzionale
Descrizione
ram_used
int
N
Percentuale di utilizzo della RAM. [0-100]
cpu_used
int
N
Percentuale di utilizzo della CPU. [0-100]
power_up_time
date
N
L'ultima ora di accensione
cpu_temp
int
N
Temperatura CPU:
Unità: Celsius
cpu_temp_unit
string
N
Unità di temperatura CPU:
Opzionale
valori:'c', 'f'
sd_card_used
int
Y
Utilizzo della scheda SD (percentuale):
Intervallo:[0-100] con una cifra decimale di precisione
*Nota: Se la scheda SD non è inserita o non è formattata, il valore è vuoto.
:::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è passata. **Status Code: **200 OK ::: Esempio di risposta:
c. Configurare il Gateway
Consente agli utenti autorizzati di configurare il gateway tramite questa interfaccia :::tips
URL:
/open-api/V2/rest/bridge/configMetodo:
PUTHeader:
Content-Type: application/json
Authorization: Bearer ::: Parametri della richiesta:
Attributo
Tipo
Opzionale
Descrizione
volume
int
Y
Volume di sistema. [0-100]
Risposta dati di successo: Oggetto vuoto {} :::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è passata. **Status Code: **200 OK ::: Esempio di risposta:
d. Ottenere le informazioni del Gateway
Consente agli utenti autorizzati di ottenere le informazioni del gateway tramite questa interfaccia :::tips
URL:
/open-api/V2/rest/bridgeMetodo:
GETHeader:
Content-Type: application/json ::: Parametri della richiesta:
Attributo
Tipo
Opzionale
Descrizione
ip
string
N
indirizzo ip
mac
string
N
indirizzo mac
domain
string
Y
Dominio del servizio del gateway
fw_version
string
N
Versione del firmware
name
string
N
Nome del dispositivo
Risposta dati di successo: Oggetto vuoto {} :::tips Condizioni: Nessuno **Status Code: **200 OK ::: Esempio di risposta:
e. Silenziare il Gateway
Consente agli utenti autorizzati di silenziare il gateway tramite questa interfaccia. :::tips
URL:
/open-api/v2/rest/bridge/muteMetodo:
PUTHeader:
Content-Type: application/json
Authorization: Bearer ::: Parametri della richiesta: nessuno Risposta dati di successo: Oggetto vuoto {} :::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è passata. **Status Code: **200 OK ::: Esempio di risposta:
f. Riattivare il suono del Gateway
Consente agli utenti autorizzati di riattivare il suono del gateway tramite questa interfaccia. :::tips
URL:
/open-api/v2/rest/bridge/unmuteMetodo:
PUTHeader:
Content-Type: application/json
Authorization: Bearer ::: Parametri della richiesta: nessuno Risposta dati di successo: Oggetto vuoto {} :::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è passata. **Status Code: **200 OK ::: Esempio di risposta:
g. Disattivare l'allarme del Gateway
Consente agli utenti autorizzati di disabilitare lo stato del suono di allarme sul gateway tramite questa interfaccia. :::tips
URL:
/open-api/v2/rest/bridge/cancel_alarmMetodo:
PUTHeader:
Content-Type: application/json
Authorization: Bearer ::: Parametri della richiesta: nessuno Risposta dati di successo: Oggetto vuoto {} :::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è passata. **Status Code: **200 OK ::: Esempio di risposta:
3.2 Funzione hardware
a. Riavviare il Gateway
Consente all'utente autorizzato di riavviare il gateway tramite questa interfaccia :::tips
URL:
/open-api/V2/rest/hardware/rebootMetodo:
POSTHeader:
Content-Type: application/json
Authorization: Bearer ::: Parametri della richiesta: nessuno Risposta dati di successo: Oggetto vuoto {} :::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è passata. **Status Code: **200 OK :::
b. Controllo dell'altoparlante
Consente agli utenti autorizzati di controllare l'altoparlante tramite questa interfaccia :::tips
URL:
/open-api/V2/rest/hardware/speakerMetodo:
POSTHeader:
Content-Type: application/json
Authorization: Bearer ::: Parametri della richiesta:
Attributo
Tipo
Opzionale
Descrizione
type
string
N
Parametri opzionali: 1.play_sound (riprodurre il suono) 2.play_beep (riprodurre il beep)
sound
SoundObject
Y (N se il tipo è play_sound.)
Il suono.
beep
BeepObject
Y (N se il tipo è play_beep.)
Il beep
SoundObject
Attributo
Tipo
Opzionale
Descrizione
name
string
N
Il nome del suono. I valori supportati possono essere verificati in [Elenco risorse - Suoni supportati]
volume
int
N
Il volume del suono. [0-100]
countdown
int
N
La durata della riproduzione del suono dall'altoparlante; si interromperà automaticamente al termine del tempo. Unità: secondi. [0,1799]
BeepObject
Attributo
Tipo
Opzionale
Descrizione
name
string
N
Il nome del deep. I valori supportati possono essere verificati in [Elenco risorse - Deep supportati]
volume
int
N
Il volume del deep. [0-100]
Risposta dati di successo: Oggetto vuoto {} :::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è passata. **Status Code: ** 200 OK ::: Esempio di risposta:
3.3 Funzione di gestione dei dispositivi
a. Tipi di dispositivi supportati
Tipo di dispositivo
Valore
Versione iHost
Presina
plug
≥ 2.1.0
Interruttore
switch
≥ 2.1.0
Luce
light
≥ 2.1.0
Tenda
curtain
≥ 2.1.0
Sensore porta/finestra
contactSensor
≥ 2.1.0
Sensore di movimento
motionSensor
≥ 2.1.0
Sensore di temperatura
temperatureSensor
≥ 2.1.0
Sensore di umidità
humiditySensor
≥ 2.1.0
Sensore di temperatura e umidità
temperatureAndHumiditySensor
≥ 2.1.0
Rilevatore di perdite d'acqua
waterLeakDetector
≥ 2.1.0
Rilevatore di fumo
smokeDetector
≥ 2.1.0
Pulsante wireless
button
≥ 2.1.0
Telecamera
camera
≥ 2.1.0
Sensore generico
sensor
≥ 2.1.0
Sensore generico
sensor
≥ 2.1.0
Ventilatore con luce
fanLight
≥ 2.1.0
Condizionatore
airConditioner
≥ 2.1.0
Ventilatore
fan
≥ 2.1.0
Termostato
thermostat
≥ 2.1.0
b. Capacità del dispositivo supportate
Interruttore di alimentazione (power):
Esempio di dichiarazione della capacità:
Attributo di stato:
Protocollo (interrogazione dello stato e istruzioni di controllo):
Accendi:
Spegni:
Interruttore canale (toggle):
Esempio di dichiarazione della capacità:
Esempio componente singolo:
Esempio componenti multipli:
Attributo di stato:
Protocollo (interrogazione dello stato e istruzioni di controllo):
Formato toggle:
Inching canale (toggle-inching):
Esempio di dichiarazione della capacità:
Attributo di stato
Nessuno
Protocollo (interrogazione dello stato e istruzioni di controllo)
Nessuno
Regolazione della luminosità (brightness):
Esempio di dichiarazione della capacità:
Attributo di stato:
Protocollo (interrogazione dello stato e istruzioni di controllo):
Imposta la luminosità all'80%. (0 è il più scuro e 100 è il più luminoso.)
Regolazione della temperatura del colore (color-temperature):
Esempio di dichiarazione della capacità:
Attributo di stato:
Protocollo (interrogazione dello stato e istruzioni di controllo):
Regola la temperatura del colore al 50%:
Regolazione del colore (color-rgb):
Esempio di dichiarazione della capacità:
Attributo di stato:
Protocollo (interrogazione dello stato e istruzioni di controllo):
Imposta il colore su viola:
Regolazione percentuale (percentage):
Esempio di dichiarazione della capacità:
Attributo di stato:
Protocollo (interrogazione dello stato e istruzioni di controllo):
Regola al 40%:
Controllo motore (motor-control):
Esempio di dichiarazione della capacità:
Attributo di stato:
Protocollo (interrogazione dello stato e istruzioni di controllo):
Apri motore:
Inversione motore (motor-reverse):
Esempio di dichiarazione della capacità:
Attributo di stato:
Protocollo (interrogazione dello stato e istruzioni di controllo):
Imposta motore in avanti:
Calibrazione motore (motor-clb)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (segnalazione stato):
Segnala che lo stato del motore è in calibrazione:
Stato all'accensione (startup)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Imposta lo stato di alimentazione su Sempre On:
Attivazione di risveglio (identify)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (segnalazione stato e istruzioni di controllo):
Imposta il tempo di attivazione di risveglio:
Segnala lo stato di attivazione:
Interruttore statistiche consumo energetico in tempo reale (power-consumption)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Avvia/Arresta statistiche in tempo reale:
Interroga il consumo energetico per intervallo di tempo:
Rispondere con il risultato delle statistiche entro l'intervallo di tempo:
Protocollo (segnalazione stato e istruzioni di controllo):
Avvia statistiche in tempo reale:
Arresta statistiche in tempo reale:
Ottieni consumo energetico storico:
Ottieni consumo energetico in tempo reale:
Rilevamento modalità temperatura e umidità (thermostat-mode-detect)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Formato:
Esempio:
Modalità termostato (thermostat-mode)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Stato di recupero adattivo del termostato (thermostat/adaptive-recovery-status)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Impostazione della temperatura target della modalità termostato (thermostat-target-setpoint)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Rilevamento sensori (detect)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Rilevamento temperatura (temperature)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Rilevamento umidità (humidity)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Rilevamento batteria (battery)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Rilevamento singolo pulsante (press)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Rilevamento multi-pulsante (multi-press)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Rilevamento intensità segnale (rssi)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Rilevamento manomissione (tamper-alert)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Rilevamento livello di illuminazione (illumination-level)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Rilevamento tensione (voltage)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Rilevamento corrente elettrica (electric-current)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Rilevamento potenza elettrica (electric-power)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Rilevamento guasti (fault)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Interruttore soglia (threshold-breaker)
Esempio di dichiarazione della capacità:
Attributi (Stato)
Nessuno
Protocollo (interrogazione dello stato e istruzioni di controllo)
Nessuno
Funzione inch (inching)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Nessuno
Protocollo (interrogazione dello stato e istruzioni di controllo):
Nessuno
Stream della telecamera (camera-stream)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Nessuno
Protocollo (interrogazione dello stato e istruzioni di controllo):
Nessuno
Controllo modalità (mode)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Rilevamento diossido di carbonio (co2)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Rilevamento illuminazione (illumination)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Rilevamento fumo (smoke)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Rilevamento Apertura/Chiusura Magnetico Porta (contatto)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Rilevamento Movimento (motion)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Rilevamento Perdita d'Acqua (water-leak)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Interruttore Rilevamento Finestra (window-detection)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Interruttore Blocco Bambini (child-lock)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Interruttore Anti-Soffiaggio Diretto (anti-direct-blow)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Interruttore Oscillazione Orizzontale (horizontal-swing)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Interruttore Oscillazione Verticale (vertical-swing)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Modalità ECO (eco)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Avvio Alternato (toggle-startup)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Rilevamento Mantenimento (detect-hold)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Identificazione/Attivazione Alternata (toggle-identify)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Rilevamento Tensione Alternata (toggle-voltage)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Rilevamento Corrente Elettrica Sottocomponente (toggle-electric-current)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Rilevamento Potenza Sottocomponente (toggle-electric-power)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Statistiche Consumo Energetico Sottocomponente (toggle-power-consumption)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Avvia/Arresta statistiche in tempo reale:
Interroga il consumo energetico per intervallo di tempo:
Risposta per Consumo Energetico nell'Intervallo di Tempo:
Protocollo (interrogazione dello stato e istruzioni di controllo):
Avvia statistiche in tempo reale:
Arresta statistiche in tempo reale:
Ottieni consumo energetico storico:
Ottieni consumo energetico in tempo reale:
Indicatore Qualità Collegamento (lqi)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Configurazione Funzionale (configuration)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Sistema (system)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Umidità (moisture)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Pressione Barometrica (barometric-pressure)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Velocità del Vento (wind-speed)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Direzione del Vento (wind-direction)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Precipitazioni (rainfall)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Indice Ultravioletti (ultraviolet-index)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Conducibilità Elettrica (electrical-conductivity)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Potenza di Trasmissione (transmit-power)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Rilevamento PM2.5 (pm25)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Indice VOC (voc-index)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Rilevamento Gas Naturale (gas)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Stato Lavoro Irrigazione (irrigation/work-status)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Segnalazione Stato Lavoro:
Query Stato Lavoro:
Risultato Query Stato Lavoro:
Modalità Lavoro Irrigazione (irrigation/work-mode)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Protocollo (interrogazione dello stato e istruzioni di controllo):
Controller Irrigazione Automatico (irrigation/auto-controller)
Esempio di dichiarazione della capacità:
Attributi (Stato):
Pianificazione Singola o Ripetuta:
Volume Singolo o Ripetuto:
Protocollo (interrogazione dello stato e istruzioni di controllo):
Pianificazione Singola o Ripetuta:
Volume Singolo o Ripetuto:
Modalità Preimpostate Supportate
fanLevel (livello ventola)
"low"
"medium"
"high"
thermostatMode(Modalità Termostato)
"auto"
"manual"
airConditionerMode >= 1.11.0(Modalità Condizionatore)
"cool"
"heat"
"auto"
"fan"
"dry"
fanMode >= 1.11.0(Modalità Ventilatore)
"normal"
"sleep"
"child"
horizontalAngle >= 1.11.0(Angolo Orizzontale)
"30"
"60"
"90"
"120"
"180"
"360"
verticalAngle >= 1.11.0(Angolo Verticale)
"30"
"60"
"90"
"120"
"180"
"360"
c. Descrizione dei Tag
La chiave speciale toggle è usata per impostare il nome della sottocomponente toggle.
La chiave speciale temperature_unit è usata per impostare l'unità di temperatura.
d. Codice di Errore Speciale e Descrizione
Codice Errore
Descrizione
Versione iHost
110000
Il sottodispositivo/gruppo corrispondente all'id non esiste
≥2.1.0
110001
Il gateway è nello stato di scoperta dispositivi zigbee
≥2.1.0
110002
I dispositivi in un gruppo non hanno una capability comune
≥2.1.0
110003
Numero di dispositivi errato
≥2.1.0
110004
Numero di gruppi errato
≥2.1.0
110005
Dispositivo Offline
≥2.1.0
110006
Aggiornamento stato dispositivo non riuscito
≥2.1.0
110007
Aggiornamento stato gruppo non riuscito
≥2.1.0
110008
Raggiunto il numero massimo di gruppi. Crea fino a 50 gruppi
≥2.1.0
110009
L'indirizzo IP del dispositivo camera è errato
≥2.1.0
110010
Errore di autorizzazione accesso dispositivo camera
≥2.1.0
110011
Errore indirizzo stream dispositivo camera
≥2.1.0
110012
La codifica video del dispositivo camera non è supportata
≥2.1.0
110013
Dispositivo già esistente
≥2.1.0
110014
La camera non supporta il funzionamento offline
≥2.1.0
110015
La password dell'account non è coerente con la password nell'indirizzo stream RTSP
≥2.1.0
110016
Il gateway è nello stato di scoperta camere onvif
≥2.1.0
110017
Superato il numero massimo di camere aggiunte
≥2.1.0
110018
Il percorso della camera ESP è errato
≥2.1.0
110019
Accesso all'indirizzo di servizio del dispositivo di terze parti non riuscito
≥2.1.0
e. Ricerca di Sottodispositivo
Consente agli utenti autorizzati di abilitare o disabilitare la ricerca gateway per sottodispositivi tramite questa interfaccia
💡Nota: Al momento supporta solo la ricerca di sottodispositivi Zigbee.
💡Nota: I sottodispositivi Zigbee saranno aggiunti automaticamente dopo la ricerca. Non è necessario utilizzare l'interfaccia "Aggiungi manualmente sottodispositivi" :::tips
URL:/open-api/V2/rest/devices/discovery
Metodo: PUT
Header:
Content-Type: application/json
Authorization: Bearer ::: Parametri della richiesta:
Attributo
Tipo
Opzionale
Descrizione
enable
boolean
N
true (Avvia abbinamento); false (Pausa abbinamento)
type
string
N
Tipo di Ricerca: Zigbee
Risposta dati di successo: Oggetto vuoto {} :::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è passata. **Status Code: ** 200 OK ::: Esempio di risposta:
f. Aggiunta Manuale del Sottodispositivo
Consente agli utenti autorizzati di aggiungere un singolo sottodispositivo tramite questa interfaccia.
Nota: Al momento sono supportate solo RTSP Camera e ESP32 Camera :::tips
URL:/open-api/V2/rest/devices
Metodo:POST
Header:
Content-Type: application/json
Authorization: Bearer ::: Parametri della richiesta:
Attributo
Tipo
Opzionale
Descrizione
name
string
N
Nome sottodispositivo
display_category
string
N
Tipo di dispositivo. Supporta solo camera.
capabilities
CapabilityObject[]
N
Elenco delle capability. Quando display_category = camera, le capability includono solo camera-stream.
protocal
string
N
Protocollo del dispositivo. RTSP; ESP32-CAM
manufacturer
string
N
Produttore.
model
string
N
Modello del dispositivo
firmware_version
string
N
Versione firmware del dispositivo
CapabilityObject
Attributo
Tipo
Opzionale
Descrizione
capability
string
N
Nome della capability. Supporta solo "camera-stream"
permission
string
N
Permesso del dispositivo. Supporta solo read.
configuration
CameraStreamConfigurationObject
Y
Configurazione dello stream della camera.
SettingsObject
Attributo
Tipo
Opzionale
Descrizione
streamSetting
StreamSettingObject
N
Configurazione del servizio di streaming
StreamSettingObject
Attributo
Tipo
Opzionale
Descrizione
type
string
N
Configurazione del servizio di streaming
permission
string
N
Permesso della capability. Supporta solo "11" (modificabile).
campo value
StreamSettingValueObject
N
Valori di configurazione specifici
StreamSettingValueObject
Attributo
Tipo
Opzionale
Descrizione
stream_url
string
N
Formato URL dello stream
Formato:<schema>://<hostname>:<port>/<username>:<password>@<service_path>
Opzioni Schema:
rtsp (Real-Time Streaming Protocol)
http (Hypertext Transfer Protocol) — Per dispositivi ESP32-CAM
*Nota: Alcune camere potrebbero non richiedere nome utente o password. In tal caso, è possibile omettere <username> e <password> campi dall'URL.
Risposta dati di successo:
Attributo
Tipo
Opzionale
Descrizione
serial_number
string
N
Numero di serie univoco del dispositivo
:::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è passata. **Status Code: **200 OK ::: Esempio di risposta:
Risposta dati di errore: Oggetto vuoto :::tips Condizione:
Errore accesso indirizzo stream camera (errore formato, autorizzazione fallita, eccezione di rete, ecc.)
Dispositivo già esistente
Se un singolo dispositivo non viene aggiunto correttamente, vengono restituiti tutti i dispositivi non aggiunti.
Codice Stato: 200 OK Codice di errore: ● 110009 Errore indirizzo IP camera ● 110010 Errore autorizzazione accesso camera ● 110011 Errore indirizzo stream camera ● 110012 La codifica video della camera non è supportata ● 110013 Dispositivo già esistente ::: Esempio di risposta:
g. Ottieni Elenco dei Sottodispositivi
Consente agli utenti autorizzati di ottenere l'elenco dei sottodispositivi del gateway tramite questa interfaccia. :::tips
URL:/open-api/V2/rest/devices
Metodo: GET
Header:
Content-Type: application/json
Authorization: Bearer ::: Parametri della richiesta: nessuno Risposta dati di successo:
Attributo
Tipo
Opzionale
Descrizione
device_list
ResponseDeviceObject[]
N
Elenco dispositivi
ResponseDeviceObject
Attributo
Tipo
Opzionale
Descrizione
serial_number
string
N
Numero di serie univoco del dispositivo
third_serial_number
string
"N" quando è connesso un dispositivo di terze parti, altrimenti "Y"
Numero di serie univoco del dispositivo di terze parti
service_address
string
"N" quando è connesso un dispositivo di terze parti, altrimenti "Y"
Indirizzo del servizio di terze parti
name
string
N
Nome del dispositivo; se non viene rinominato, sarà visualizzato dal front-end secondo le regole di visualizzazione predefinite.
manufacturer
string
N
Produttore
model
string
N
Modello del dispositivo
firmware_version
string
N
Versione firmware. Può essere una stringa vuota.
hostname
string
Y
Hostname del dispositivo
mac_address
string
Y
Indirizzo MAC del dispositivo
app_name
string
Y
Il nome dell'applicazione a cui appartiene. Se app_name è stato compilato durante l'ottenimento del certificato open interface, tutti i dispositivi successivamente connessi tramite il certificato saranno scritti in questo campo.
display_category
string
N
Categoria dispositivo
capabilities
CapabilityObject[]
N
Capability del dispositivo
protocol
string
"N" quando è connesso un dispositivo di terze parti, altrimenti "Y"
Protocollo del dispositivo: zigbee, onvif, rtsp, esp32-cam
state
object
Y
Oggetto stato del dispositivo. Per esempi di stato di diverse capacità, consultare 【Support Device Capabilities】
tag
object
Y
Chiave-valore in formato JSON, informazioni personalizzate del dispositivo. La funzione è la seguente:- Utilizzato per memorizzare i canali del dispositivo- Utilizzato per memorizzare le unità di temperatura- Informazioni personalizzate per altri dispositivi di terze parti
online
boolean
N
Stato online: True per onlineFalse è offline
sottorete
boolean
Y
Se è nella stessa sottorete del gateway
CapabilityObject 💡Nota: Si prega di controllare gli esempi di capacità dispositivo supportate per [Supported Device Capabilities].
Attributo
Tipo
Opzionale
Descrizione
capability
string
N
Nome della capacità. Per dettagli, consultare [Supported Device Capabilities]
permission
string
N
Permesso della capacità. I valori possibili sono "read" (leggibile), "write" (scrivibile), "readWrite" (leggibile e scrivibile).
configuration
object
Y
Informazioni di configurazione della capacità. Attualmente viene utilizzato camera-stream, controllare [Supported Device Capabilities]
name
string
Y
Il campo name in toggle. Il numero del sotto-canale usato per identificare dispositivi multi-canale. Ad esempio, se name è 1, significa canale 1.
:::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è passata. **Status Code: **200 OK ::: Esempio di risposta:
h. Aggiorna informazioni o stato dispositivo specificato
Consente agli utenti autorizzati di modificare le informazioni di base del sottodispositivo e inviare comandi di controllo tramite questa interfaccia. :::tips
URL:/open-api/V2/rest/devices/{serial_number}
Metodo:PUT
Header:
Content-Type: application/json
Authorization: Bearer ::: Parametri della richiesta:
Attributo
Tipo
Opzionale
Descrizione
name
string
Y
Nome del dispositivo
tag
object
Y
Chiave-valore in formato JSON, informazioni personalizzate del dispositivo.
state
object
Y
Oggetto stato del dispositivo. Per esempi di stato di diverse capacità, controllare [Support Device Capabilities]
configuration
object
Y
Informazioni di configurazione della capacità, attualmente solo la capacità camera_stream supporta la modifica.
Risposta dati riuscita: :::tips Condizioni: I parametri della richiesta sono validi e la verifica dell'identità dell'utente è superata. **Codice di Stato: **200 OK Codice Errore:
110000 Il sottodispositivo/gruppo corrispondente all'id non esiste ::: Esempio di risposta:
i. Elimina Sottodispositivo
Consente agli utenti autorizzati di eliminare i sottodispositivi tramite questa interfaccia. :::tips
URL:/open-api/V2/rest/devices/{serial_number}
Metodo:DELETE
Header:
Content-Type: application/json
Autorization: Bearer ::: Parametri della richiesta:
Attributo
Tipo
Opzionale
Descrizione
name
string
Y
Nome del dispositivo.
tag
object
Y
Coppie chiave-valore in formato JSON utilizzate per memorizzare i nomi dei canali del dispositivo e altre informazioni sui sottodispositivi.
state
object
Y
Modifica lo stato del dispositivo; per dettagli specifici del protocollo fare riferimento a "Supported Device Capabilities."
capabilities
CapabilityObject []
Y
Informazioni di configurazione della capacità; tutte le capacità che supportano l'impostazione delle configurazioni possono essere modificate. Nota che i permessi non possono essere cambiati.
Risposta dati riuscita: :::tips Condizioni: I parametri della richiesta sono validi e la verifica dell'identità dell'utente è superata. **Codice di Stato: **200 OK Codici di errore:
110000: Il sottodispositivo/gruppo corrispondente all'ID non esiste.
110006: Impossibile aggiornare lo stato del dispositivo.
110019: Impossibile accedere all'indirizzo del servizio del dispositivo di terze parti.
110024: Impossibile aggiornare la configurazione del dispositivo. ::: Esempio di risposta:
j. Elimina Sott-Dispositivo
Consente agli utenti autorizzati di eliminare i sottodispositivi tramite questa interfaccia. :::tips
URL:
/open-api/v2/rest/devices/{serial_number}Metodo:
DELETEHeader:
Content-Type: application/json
Authorization: Bearer ::: Parametri della richiesta: Nessuno Risposta dati riuscita: :::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è passata. **Status Code: **200 OK ::: Esempio di risposta:
k. Query Stato Dispositivo
Consente agli utenti autorizzati di interrogare lo stato del dispositivo tramite questa interfaccia. :::tips
URL:
/open-api/v2/rest/devices/:serial_number/query-state/{capability}Metodo:POST
Header:
Content-Type: application/json
Authorization: Bearer ::: Parametri della richiesta:
Attributo
Tipo
Opzionale
Descrizione
query_state
object
N
Interroga lo stato del dispositivo; per dettagli specifici del protocollo fare riferimento a "Supported Device Capabilities."
Risposta dati riuscita: :::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è passata. **Status Code: **200 OK ::: Esempio di risposta:
3.4 Gestione della Sicurezza
a. Ottieni Elenco Sicurezza
Consente agli utenti autorizzati di modificare le impostazioni del gateway tramite questa interfaccia. :::tips
URL:
/open-api/v2/rest/securityMetodo:
GETHeader:
Content-Type: application/json
Authorization: Bearer ::: Parametri della richiesta: Nessuno Risposta dati riuscita:
Attributo
Tipo
Opzionale
Descrizione
security_list
ResponseSecurityObject[]
N
Elenco dispositivi di risposta
ResponseDeviceObject
Attributo
Tipo
Opzionale
Descrizione
sid
int
N
id sicurezza
name
string
N
Nome sicurezza
enable
bool
N
Se abilitato
true Abilitato
false Disabilitato |
:::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è passata. **Status Code: **200 OK ::: Esempio di risposta:
b. Abilita Modalità di Sicurezza Specificata
Consente agli utenti autorizzati di abilitare una modalità di sicurezza specificata tramite questa interfaccia. :::tips
URL:
/open-api/v2/rest/security/{security_id}/enableMetodo:
PUTHeader:
Content-Type: application/json
Authorization: Bearer ::: Parametri della richiesta: Nessuno Risposta dati riuscita: Oggetto vuoto {} :::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è passata. **Status Code: **200 OK ::: Esempio di risposta:
c. Disabilita Modalità di Sicurezza Specificata
Consente agli utenti autorizzati di disabilitare una modalità di sicurezza specificata tramite questa interfaccia. :::tips
URL:
/open-api/v2/rest/security/{security_id}/disableMetodo:
PUTHeader:
Content-Type: application/json
Authorization: Bearer ::: Parametri della richiesta: Nessuno Risposta dati riuscita: Oggetto vuoto {} :::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è passata. **Status Code: **200 OK ::: Esempio di risposta:
d. Abilitazione Rapida della Sicurezza
Consente agli utenti autorizzati di abilitare la modalità di configurazione di sicurezza con un clic tramite questa interfaccia. :::tips
URL:
/open-api/v2/rest/security/enableMetodo:
PUTHeader:
Content-Type: application/json
Authorization: Bearer ::: Parametri della richiesta: Nessuno Risposta dati riuscita: Oggetto vuoto {} :::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è passata. **Status Code: **200 OK ::: Esempio di risposta:
e. Disabilita Sicurezza
Consente agli utenti autorizzati di disabilitare la sicurezza tramite questa interfaccia. :::tips
URL:
/open-api/v2/rest/security/disableMetodo:
PUTHeader:
Content-Type: application/json
Authorization: Bearer ::: Parametri della richiesta: Nessuno Risposta dati riuscita: Oggetto vuoto {} :::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è passata. **Status Code: **200 OK ::: Esempio di risposta:
4. Accesso Dispositivi di Terze Parti
4.1 Istruzioni di Accesso
Accesso Dispositivo

Accesso Gateway di Terze Parti

Passi di accesso
Determinare la classificazione del dispositivo nel gateway. Per i dettagli consultare [Supported Device Type].
Determinare le capacità a cui il dispositivo può accedere. Per i dettagli consultare [Supported Device Capabilities].
Richiedere l'interfaccia [Discovery Request] per aggiungere il dispositivo al gateway.
Attenzione: È necessario fornire l'indirizzo del servizio per ricevere le istruzioni emesse dal gateway, che viene utilizzato per ricevere i comandi di controllo del dispositivo emessi dal gateway.
Se lo stato del dispositivo di terze parti cambia, è necessario chiamare l'interfaccia [Device States Change Report] per inviare lo stato più aggiornato al gateway.
Dopo l'aggiunta, il dispositivo di terze parti apparirà nell'Elenco Dispositivi, con la maggior parte delle funzioni del gateway (altri dispositivi non di terze parti). Le interfacce aperte comuni correlate al dispositivo possono essere utilizzate normalmente.
Selezionare la categoria di dispositivo appropriata. La classificazione influenzerà il risultato finale della visualizzazione dell'interfaccia utente dopo che il dispositivo è connesso al gateway.
Scegliere la capacità di dispositivo corretta. L'elenco delle capacità determinerà lo stato del protocollo di stato del dispositivo.
Processo del Programma
a. Accesso Dispositivo

b. Accesso Gateway di Terze Parti

4.2 Esempio di Accesso
Interruttore, Presa
Sincronizza dispositivi di terze parti
Segnala lo stato del dispositivo
Segnala offline/online
Ricevi le istruzioni relative al controllo del dispositivo da parte del gateway
Interroga dispositivo
4.3 Web API
Interfaccia di richiesta per terze parti verso il gateway
Formato di richiesta
Consente agli utenti autorizzati di inviare richieste di evento al gateway tramite questa interfaccia. :::tips
URL:/open-api/V2/rest/thirdparty/event
Metodo:POST
Header:
Content-Type: application/json
Authorization: Bearer ::: Parametri della richiesta:
Attributo
Tipo
Opzionale
Descrizione
evento
EventObject
N
Informazioni sulla struttura dell'oggetto evento della richiesta
EventObject
Attributo
Tipo
Opzionale
Descrizione
header
HeaderObject
N
Informazioni sulla struttura dell'intestazione della richiesta
endpoint
EndpointObject
Y
Informazioni sulla struttura dell'endpoint della richiesta Nota: Questo campo è vuoto quando si sincronizza un nuovo elenco di dispositivi.
payload
PayloadObject
N
Informazioni sulla struttura del payload della richiesta
HeaderObject
Attributo
Tipo
Opzionale
Descrizione
name
string
N
Nome della richiesta. parametro opzionale: DiscoveryRequest: Sincronizza nuovi dispositivi DeviceStatesChangeReport: Report di aggiornamento stato dispositivo DeviceOnlineChangeReport: Report stato online del dispositivo
message_id
string
N
ID messaggio della richiesta, UUID_V4
version
string
N
Numero di versione del protocollo della richiesta. Attualmente fissato a 1
EndpointObject
Attributo
Tipo
Opzionale
Descrizione
serial_number
string
N
Numero di serie univoco del dispositivo
third_serial_number
string
N
Numero di serie univoco del dispositivo di terze parti
tag
object
Y
Chiave-valore in formato JSON, informazioni personalizzate del dispositivo. [Funzione di gestione dispositivo] - [Descrizione dei tag]
PayloadObject In base al diverso header.name ha diverse strutture di richiesta.
Formato di risposta
:::tips **Codice di Stato: **200 OK Parametri di risposta: :::
Attributo
Tipo
Opzionale
Descrizione
header
HeaderObject
N
Informazioni sulla struttura dell'intestazione di risposta
payload
PayloadObject
N
Informazioni sulla struttura del payload di risposta
HeaderObject
Attributo
Tipo
Opzionale
Descrizione
name
string
N
Nome dell'intestazione di risposta. parametri opzionali:Response: Risposta riuscita ErrorResponse: Risposta di errore
message_id
string
N
ID messaggio dell'intestazione di risposta, UUID_V4. Passare qui l'header.message_id del messaggio di richiesta *Se la richiesta in ingresso non contiene message_id, questo campo sarà una stringa vuota nella risposta.
version
string
N
- Numero di versione del protocollo della richiesta. Attualmente fissato a 1.
Risposta riuscita--PayloadObject :
A seconda del tipo di richiesta, la struttura della risposta è diversa. Per i dettagli, fare riferimento al documento di istruzioni della richiesta specifica.
Risposta di errore--PayloadObject:
Attributo
Tipo
Opzionale
Descrizione
type
string
N
Tipi di errore:
INVALID_PARAMETERS: Errore nei parametri
AUTH_FAILURE: Errore di autorizzazione
INTERNAL_ERROR: Errore interno del servizio | | descrizione | stringa | N | Descrizione dell'errore |
DiscoveryRequest Sincronizza un nuovo elenco di dispositivi
Nota: Dopo che il dispositivo è sincronizzato nel gateway, è online di default, cioè online=true. I successivi cambiamenti di online dipendono completamente dalla sincronizzazione con la terza parte tramite l'interfaccia DeviceOnlineChangeReport.
Parametri della richiesta: EndpointObject**:**Nessuno PayloadObject:
Attributo
Tipo
Opzionale
Descrizione
endpoints
EndpointObject[]
N
Elenco dispositivi
EndpointObject:
Attributo
Tipo
Opzionale
Descrizione
third_serial_number
string
N
Numero di serie univoco del dispositivo di terze parti
name
string
N
Nome del dispositivo
display_category
string
N
Categoria del dispositivo. Consultare [Supported Device Type] per dettagli. *I dispositivi di terze parti non supportano l'aggiunta di telecamere al momento.
capabilities
CapabilityObject[]
N
Elenco delle capacità
state
object
N
Informazioni di stato iniziali
manufacturer
string
N
Produttore
model
string
N
Modello del dispositivo
tag
object
Y
Chiave-valore in formato JSON, informazioni personalizzate del dispositivo:Usato per memorizzare i canali del dispositivoUsato per memorizzare le unità di temperaturaAltri dati personalizzati di terze parti
firmware_version
string
N
Versione del firmware
Esempio di richiesta :
Parametri di risposta: PayloadObject:
Attributo
Tipo
Opzionale
Descrizione
endpoints
EndpointObject[]
N
Elenco dispositivi
EndpointObject:
Attributo
Tipo
Opzionale
Descrizione
serial_number
string
N
Numero di serie univoco del dispositivo
third_serial_number
string
N
Numero di serie univoco del dispositivo di terze parti
Esempio di risposta corretta:
Esempio di risposta di errore:
DeviceStatesChangeReport Report di cambiamento dello stato del dispositivo
Nota: Rapporti di stato ripetuti possono attivare falsamente scene associate.
Parametri della richiesta: PayloadObject:
Attributo
Tipo
Opzionale
Descrizione
state
object
N
Stato del dispositivo, Vedere [Supported device cabilities] per dettagli
Esempio di richiesta :
Parametri di risposta: PayloadObject: Oggetto Vuoto Esempio di risposta riuscita:
DeviceOnlineChangeReport Report sullo stato online del dispositivo
Nota: Rapporti di stato ripetuti possono attivare falsamente scene associate.
Parametri della richiesta: PayloadObject:
Attributo
Tipo
Opzionale
Descrizione
online
boolean
N
Stato online del dispositivo true: Online
false: Offline
Esempio di richiesta :
Parametri di risposta: PayloadObject: Oggetto Vuoto Esempio di risposta riuscita:
DeviceInformationUpdatedReport Report di Aggiornamento Informazioni Dispositivo
Nota: L'aggiornamento può influire su scene esistenti o funzioni di sicurezza.
Parametri della richiesta: PayloadObject:
Attributo
Tipo
Opzionale
Descrizione
capabilities
| CapabilityObject[]
| N
| Elenco delle capacità. I dettagli possono essere trovati nella sezione capacità dispositivo supportate. **Nota: **Questo parametro aggiornerà solo il campo value del impostazione chiave all'interno del CapabilityObject, e gli aggiornamenti sono consentiti solo se il permission per la impostazione chiave è 11 o 01. Per la definizione strutturale specifica del impostazione in CapabilityObject, fare riferimento alla descrizione dettagliata nella sezione 2.3 Categorie di visualizzazione dispositivo & Capacità dispositivo. | | tags
| oggetto
| Y
| Chiave-valore in formato JSON, informazioni personalizzate del dispositivo.
Può essere usato per memorizzare i canali del dispositivo
Può essere usato per memorizzare le unità di temperatura
Altri dati personalizzati di terze parti |
Esempio di richiesta :
parametri di risposta: PayloadObject: Oggetto Vuoto Esempio di risposta riuscita:
Il gateway invia l'interfaccia di istruzione tramite l'indirizzo del servizio del dispositivo
Nota:
Le terze parti devono rispondere alla richiesta del gateway entro 3s. Altrimenti, il gateway giudicherà il timeout di elaborazione del comando.
Se il servizio di terze parti è offline, il gateway imposterà il dispositivo in stato offline, e il servizio di terze parti deve segnalare lo stato del dispositivo (DeviceStatesChangeReport) o lo stato online (DeviceOnlineChangeReport) prima di ritornare online.
Formato della richiesta
Il gateway invia istruzioni alla terza parte tramite l'interfaccia dell'indirizzo del servizio del dispositivo. :::tips
URL:
Metodo:POST
Header:
Content-Type: application/json ::: Parametri della richiesta:
Attributo
Tipo
Opzionale
Descrizione
directive
DirectiveObject
N
Informazioni sulla struttura dell'oggetto direttiva
DirectiveObject
Attributo
Tipo
Opzionale
Descrizione
header
HeaderObject
N
Informazioni sulla struttura dell'intestazione della richiesta
endpoint
EndpointObject
N
Informazioni sulla struttura dell'endpoint della richiesta
payload
PayloadObject
N
Informazioni sulla struttura del payload della richiesta
HeaderObject
Attributo
Tipo
Opzionale
Descrizione
name
string
N
Nome della richiesta. Parametri opzionali:UpdateDeviceStates: Aggiorna stati del dispositivo
message_id
string
N
ID messaggio della richiesta, UUID_V4
version
string
N
Numero di versione del protocollo della richiesta. Attualmente fissato a 1.
EndpointObject
Attributo
Tipo
Opzionale
Descrizione
serial_number
string
N
Numero di serie univoco del dispositivo
third_serial_number
string
N
Numero di serie univoco del dispositivo di terze parti
tag
object
N
Chiave-valore in formato JSON, informazioni personalizzate del dispositivo. [Funzione di gestione dispositivo] - [Descrizione dei tag]
PayloadObject: In base a diversi header.name, esiste una struttura di richiesta specifica per ciascuno.
Esempio di richiesta :
Formato di risposta
:::tips **Codice di Stato HTTP: **200 OK Attributo di risposta HTTP: :::
Attributo
Tipo
Opzionale
Descrizione
evento
EventObject
N
Informazioni sulla struttura dell'evento di risposta
EventObject
Attributo
Tipo
Opzionale
Descrizione
header
HeaderObject
N
Informazioni sulla struttura dell'intestazione della richiesta
payload
PayloadObject
N
Informazioni sulla struttura del payload della richiesta
HeaderObject
Attributo
Tipo
Opzionale
Descrizione
name
string
N
Nome dell'intestazione di risposta. Parametro opzionale: UpdateDeviceStatesResponse: Risposta aggiornamento stati dispositivo ErrorResponse: Risposta di errore
message_id
string
N
ID messaggio dell'intestazione di risposta, UUID_V4. Passare qui l'header.message_id del messaggio di richiesta
version
string
N
Numero di versione del protocollo della richiesta. Attualmente fissato a 1.
Risposta riuscita--PayloadObject:
A seconda del tipo di richiesta, la struttura della risposta è diversa. Per i dettagli, fare riferimento al documento di istruzioni della richiesta specifica.
Risposta di errore--PayloadObject:
Attributo
Tipo
Opzionale
Descrizione
type
string
N
Tipi di errore:
ENDPOINT_UNREACHABLE: Dispositivo irraggiungibile o offline
ENDPOINT_LOW_POWER: Il dispositivo è in modalità a basso consumo e non può essere controllato
INVALID_DIRECTIVE: Direttiva anomala dal gateway
NO_SUCH_ENDPOINT: Il dispositivo non esiste
NOT_SUPPORTED_IN_CURRENT_MODE: La modalità corrente non supporta l'operazione
INTERNAL_ERROR: Errore interno del servizio
REMOTE_KEY_CODE_NOT_LEARNED: Codice tasto del telecomando non appreso |
:::tips Condizioni: I parametri della richiesta sono validi. **Codice di Stato: **200 OK Parametri di risposta: :::
UpdateDeviceStates
Parametri della richiesta: PayloadObject:
Attributo
Tipo
Opzionale
Descrizione
state
object
N
Stato del dispositivo, Vedere [Supported device cabilities] per dettagli.
Esempio di richiesta :
Parametri di risposta: PayloadObject:Oggetto Vuoto Esempio di Risposta Riuscita
QueryDeviceStates
Parametri della richiesta: PayloadObject:
Attributo
Tipo
Opzionale
Descrizione
state
object
N
Stato del dispositivo, Vedere [Supported device cabilities] per dettagli.
Esempio di richiesta :
Parametri di risposta: PayloadObject:
Attributo
Tipo
Opzionale
Descrizione
state
object
N
Stato del dispositivo, Vedere [Supported device cabilities] per dettagli.
Esempio di risposta:
ConfigureDeviceCapabilities
Parametri della richiesta: PayloadObject:
Attributo
Tipo
Opzionale
Descrizione
capabilities
CapabilityObject[]
N
Elenco delle capacità. I dettagli possono essere visti nella parte delle capacità dispositivo supportate. Nota, il campo permission non può essere modificato, passare lo stesso valore durante la sincronizzazione.
Esempio di richiesta :
Parametri di risposta: PayloadObject:Oggetto Vuoto Esempio di Risposta Riuscita
5. Eventi inviati dal server
Descrizione dell'interfaccia MDN EventSource:https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events
5.1 Istruzione
Il gateway supporta la spinta di messaggi al client usando SSE (Server-sent events). Il client può monitorare i messaggi SSE dopo aver ottenuto le credenziali di accesso e può analizzare il contenuto dei messaggi push secondo il protocollo di notifica eventi dell'interfaccia di sviluppo dopo aver ricevuto i messaggi inviati dal gateway. Si noti che il gateway utilizza attualmente il protocollo HTTP1.1, quindi SSE lato browser avrà un limite massimo di non più di 6 connessioni (Istruzioni specifiche possono essere trovate nella descrizione dell'interfaccia MDN EventSource.)
5.2 Formato Comune
:::tips
URL:/open-api/V2/sse/bridge
Metodo:
GET::: Parametri della richiesta:
access_token
string
N
Token di Accesso
Nota: Quando si richiede una connessione SSE, il gateway verificherà l'access_token, e restituirà un errore di autenticazione se non è valido. { "error": 401, "data": {}, "message": "invalid access_token"}
## Per esempio: Nome Modulo: device Versione: 1,v2,v3 Tipo Messaggio: addDevice
Esempio:
5.3 Modulo Dispositivo
a. Evento Aggiungi Dispositivo
:::tips Nome Modulo:device Versione:v2 Tipo Messaggio:addDevice event.data parametri: :::
payload
ResponseDeviceObjectObject - Interfaccia uguale a Get Device List
N
informazioni sul dispositivo
Esempio:
b. Evento Aggiorna Stato Dispositivo
:::tips Nome Modulo:device Versione:v2 Tipo Messaggio:updateDeviceState event.data parametri: :::
endpoint
EndpointObject
N
Informazioni sul Dispositivo
payload
oggetto。 Struttura uguale allo stato del dispositivo
N
Dati dello Stato del Dispositivo
EndpointObject:
serial_number
string
N
Numero di Serie Unico del Dispositivo
third_serial_number
string
Y
Il numero di serie univoco del dispositivo di terze parti. Per i dispositivi connessi tramite interfacce aperte, questo campo è obbligatorio.
Esempio:
c. Evento Aggiorna Info Dispositivo
:::tips Nome Modulo:device Versione:v2 Tipo Messaggio:updateDeviceInfo event.data parametri: :::
endpoint
EndpointObject
N
Informazioni sul Dispositivo
payload
DeviceChangeObject
N
Dati di modifica del dispositivo
EndpointObject:
serial_number
string
N
Numero di Serie Unico del Dispositivo
third_serial_number
string
Y
Il numero di serie univoco del dispositivo di terze parti. Per i dispositivi connessi tramite interfacce aperte, questo campo è obbligatorio.
DeviceChangeObject
name
string
N
Nome del Dispositivo
capabilities
CapabilityObject []
Y
Elenco delle capacità del dispositivo.
tag
object
Y
tagobject | Nullable | Coppie chiave-valore in formato JSON per informazioni dispositivo personalizzate.
Può essere usato per memorizzare i canali del dispositivo.
Può essere usato per memorizzare le unità di temperatura.
Per altri dati personalizzati di terze parti. |
Esempio:
d. Evento Elimina Dispositivo
:::tips Nome Modulo:device Versione:v2 Tipo Messaggio:deleteDevice event.data parametri: :::
endpoint
EndpointObject
N
Informazioni sul Dispositivo
EndpointObject:
serial_number
string
N
Numero di Serie Unico del Dispositivo
third_serial_number
string
Y
Il numero di serie univoco del dispositivo di terze parti. Per i dispositivi connessi tramite interfacce aperte, questo campo è obbligatorio.
Esempio:
e. Evento Aggiorna Online Dispositivo
:::tips Nome Modulo:device Versione:v2 Tipo Messaggio:updateDeviceOnline event.data parametri: :::
endpoint
EndpointObject
N
Informazioni sul Dispositivo
payload
DeviceChangeObject
N
Dati di modifica del dispositivo
EndpointObject:
serial_number
string
N
Numero di Serie Unico del Dispositivo
third_serial_number
string
Y
Il numero di serie univoco del dispositivo di terze parti. Per i dispositivi connessi tramite interfacce aperte, questo campo è obbligatorio.
DeviceChangeObject
online
boolean
N
Stato Online del Dispositivo
Esempio:
5.4 Modulo Gateway
a. Evento Aggiornamento Stato Sicurezza
:::tips Nome Modulo:device Versione:v2 Tipo Messaggio:updateDeviceOnline event.data parametri: :::
Attributo
Tipo
Opzionale
Descrizione
payload
SecurityStateObject
N
Informazioni sul Dispositivo
SecurityStateObject
Attributo
Tipo
Opzionale
Descrizione
alarm_state
string
N
arming| Armatodisarming| Disarmato |
Esempio:
5.5 Modulo Sicurezza
a. Evento Aggiornamento Stato Armamento
:::tips Nome Modulo:device Versione:v2 Tipo Messaggio:updateDeviceOnline event.data parametri: :::
Attributo
Tipo
Opzionale
Descrizione
payload
ArmStateObject
N
informazioni di armamento e disattivazione
ArmStateObject:
Attributo
Tipo
Opzionale
Descrizione
arm_state
string
N
arming| Armatodisarming| Disarmato | | dettaglio | DetailObject | N | Dettagli di armamento/disarmamento |
DetailObject:
Attributo
Tipo
Opzionale
Descrizione
sid
int
N
id modalità di sicurezza
name
string
N
Nome sicurezza
Esempio
6. TTS (Funzione del motore Text-to-Speech)
6.1 Istruzione
Ruolo chiave
Fornitore del servizio TTS: Il fornitore del servizio del motore TTS è responsabile della registrazione del motore TTS sul gateway e della fornitura dei servizi TTS
Server Gateway:iHost
Client Open API del Gateway
6.1.1 Registrazione del servizio motore TTS
【Fornitore del servizio TTS】Chiama l'interfaccia per registrare il motore TTS sul gateway.
【Server Gateway】Dopo la registrazione avvenuta con successo, il gateway memorizzerà le informazioni di base del motore TTS (incluso l'indirizzo del servizio server_address, e la comunicazione successiva tra il gateway e il fornitore del servizio TTS avverrà tramite l'indirizzo server_address), e assegnerà l'ID del servizio del motore TTS all'interno del gateway.

6.1.2 Ottenere l'elenco degli audio sintetizzati
【Client Open API del Gateway】Chiama l'interfaccia per ottenere l'elenco dei servizi motore TTS registrati. È possibile ottenere l'elenco corrente dei motori TTS registrati (incluso l'ID del motore TTS assegnato dal gateway).
【Client Open API del Gateway】Chiama l'interfaccia per ottenere l'elenco degli audio di un motore TTS specificato. Il gateway invierà un'istruzione sincrona di elenco audio al Fornitore del servizio TTS specificato e restituirà il risultato.

6.1.3 Sintesi vocale specificando un motore di sintesi
【Client Open API del Gateway】Chiama l'interfaccia per ottenere l'elenco dei servizi motore TTS registrati. È possibile ottenere l'elenco corrente dei motori TTS registrati (incluso l'ID del motore TTS assegnato dal gateway).
【Client Open API del Gateway】Chiama l'interfaccia per ottenere l'elenco degli audio di un motore TTS specificato. Il gateway invierà un'istruzione sincrona di elenco audio al Fornitore del servizio TTS specificato e restituirà il risultato.

6.1.4 Sintetizzare audio e riprodurre il parlato TTS.
【Client Open API del Gateway】Chiama l'interfaccia per ottenere l'elenco dei servizi motore TTS registrati. È possibile ottenere l'elenco corrente dei motori TTS registrati (incluso l'ID del motore TTS assegnato dal gateway).
【Client Open API del Gateway】Chiama l'interfaccia per ottenere l'elenco degli audio di un motore TTS specificato. Il gateway invierà un'istruzione sincrona di elenco audio al Fornitore del servizio TTS specificato e restituirà il risultato. (incluso l'indirizzo del file audio TTS)
【Client Open API del Gateway】Registra l'indirizzo del file audio TTS dal risultato restituito nel passaggio precedente, chiama l'interfaccia di riproduzione del file audio e lo riproduce tramite il gateway.
6.2 Modulo motore TTS
6.2.1 Capacità aperte del Gateway
a. Ottenere l'elenco dei servizi motore TTS registrati
:::tips
URL:
/open-api/V2/rest/tts/enginesMetodo:
GETHeader:
Content-Type: application/json
Autorizzazione: Bearer ::: Parametri della richiesta: nessuno Risposta dati corretta:
Attributo
Tipo
Opzionale
Descrizione
engines
EngineObject []
N
Elenco dei motori TTS registrati
Struttura EngineObject
Attributo
Tipo
Opzionale
Descrizione
id
string
N
ID del motore assegnato dal gateway
name
string
N
Nome del servizio del motore TS
:::tips Condizioni: I parametri della richiesta sono validi e la verifica dell'identità dell'utente è superata. **Codice di stato: **200 OK Esempio di risposta:: :::
b. Ottenere l'elenco degli audio di un motore TTS specificato
:::tips
URL:
/open-api/V2/rest/tts/engine/{id}/audio-listMetodo:
GETHeader:
Content-Type: application/json
Autorizzazione: Bearer ::: Parametri della richiesta: nessuno Risposta dati corretta:
Attributo
Tipo
Opzionale
Descrizione
audio_list
AudioObject []
N
Elenco audio
Struttura AudioObject
Attributo
Tipo
Opzionale
Descrizione
url
string
N
URL del file audio, per esempio:
https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3
label
string
Y
Etichetta del file audio
:::tips Condizioni: I parametri della richiesta sono validi e la verifica dell'identità dell'utente è superata. **Codice di stato: **200 OK **Codice di errore: **
190000 Il motore sta funzionando in modo anomalo
Esempio di risposta:: :::
c. Eseguire la sintesi vocale usando il motore TTS specificato
:::tips
URL:
/open-api/V2/rest/tts/engine/{id}/synthesizeMetodo:
POSTHeader:
Content-Type: application/json
Autorizzazione: Bearer ::: Parametri della richiesta:
Attributo
Tipo
Opzionale
Descrizione
text
string
N
Testo usato per sintetizzare l'audio
label
string
Y
Etichetta del file audio
language
string
Y
Campo trasparente. Codice lingua opzionale per la richiesta di sintesi vocale. L'elenco specifico dei codici lingua supportati è fornito dal fornitore del servizio motore TTS. Si noti che il servizio del motore TTS deve supportare una lingua predefinita per la sintesi vocale, il che significa che se la lingua non viene fornita, verrà utilizzata la lingua predefinita del motore per la sintesi.
options
object
Y
Campo trasparente. Viene utilizzato per trasmettere i parametri di configurazione necessari per la sintesi al servizio del motore di sintesi vocale TTS.
Risposta dati corretta:
Attributo
Tipo
Opzionale
Descrizione
audio
AudioObject
N
Elenco audio
Struttura AudioObject
Attributo
Tipo
Opzionale
Descrizione
url
string
N
URL del file audio, per esempio:
https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3
label
string
Y
Etichetta del file audio
:::tips Condizioni: I parametri della richiesta sono validi e la verifica dell'identità dell'utente è superata. **Codice di stato: **200 OK **Codice di errore: **
190000 Il motore sta funzionando in modo anomalo
Esempio di risposta:: :::
6.2.2 Comunicazione tra Gateway e Servizio TTS
a. Registrazione del servizio motore TTS
Inviare richiesta al gateway da parte del Fornitore del servizio TTS
:::tips
URL:
/open-api/V2/rest/thirdparty/eventMetodo:
POSTHeader:
Content-Type: application/json
Autorizzazione: Bearer ::: Parametri della richiesta:
Attributo
Tipo
Opzionale
Descrizione
evento
EventObject
N
Struttura delle informazioni dell'oggetto evento della richiesta
EventObject
Attributo
Tipo
Opzionale
Descrizione
header
HeaderObject
N
Informazioni sulla struttura dell'intestazione della richiesta
payload
PayloadObject
N
Informazioni sulla struttura del payload della richiesta
HeaderObject
Attributo
Tipo
Opzionale
Descrizione
name
string
N
Nome della richiesta. Parametro opzionale.
RegisterTTSEngine | | message_id | string | N | ID del messaggio della richiesta, UUID_V4 | | version | string | N | Numero di versione del protocollo della richiesta. Attualmente fissato a 1 |
PayloadObject
Attributo
Tipo
Opzionale
Descrizione
service_address
string
N
Indirizzo del servizio. Per esempio, http:///
name
string
N
Nome del servizio
Esempio di richiesta:
**Parametri di risposta corretti: **
Attributo
Tipo
Opzionale
Descrizione
header
HeaderObject
N
Informazioni sulla struttura dell'intestazione della richiesta
payload
PayloadObject
N
Informazioni sulla struttura del payload della richiesta
HeaderObject
Attributo
Tipo
Opzionale
Descrizione
name
string
N
Nome dell'intestazione di risposta. Parametro opzionale:
Risposta (Risposta riuscita)
ErrorResponse (Risposta di errore) | | message_id | string | N | ID del messaggio dell'intestazione di risposta, UUID_V4. Messaggio di richiesta in ingresso qui: header.message_id | | version | string | N | Numero di versione del protocollo della richiesta. Attualmente fissato a 1 |
PayloadObject
Attributo
Tipo
Opzionale
Descrizione
engine_id
string
N
ID del motore assegnato dal gateway
:::tips Condizioni: I parametri della richiesta sono validi e la verifica dell'identità dell'utente è superata. **Codice di stato: **200 OK Esempio di risposta:: ::: Esempio di risposta corretta::
**Parametri di risposta anomala: **
Attributo
Tipo
Opzionale
Descrizione
type
string
N
Tipo di errore
INVALID_PARAMETERS (Errore nei parametri)
AUTH_FAILURE (Errore di autenticazione)
INTERNAL_ERROR (Errore interno del servizio) | | description | string | N | Descrizione dell'errore |
Esempio di risposta di errore::
b. Comando di sincronizzazione della lista audio
Inviare il comando al Fornitore del servizio TTS dal gateway.
:::tips
URL:
<service address>Metodo:
POSTHeader:
Content-Type: application/json ::: Parametri della richiesta:
Attributo
Tipo
Opzionale
Descrizione
directive
DirectiveObject
N
Informazioni sulla struttura dell'oggetto istruzione
DirectiveObject
Attributo
Tipo
Opzionale
Descrizione
header
HeaderObject
N
Informazioni sulla struttura dell'intestazione della richiesta
payload
PayloadObject
N
Informazioni sulla struttura del payload della richiesta
HeaderObject
Attributo
Tipo
Opzionale
Descrizione
name
string
N
Nome della richiesta. Parametro opzionale:
SyncTTSAudioList | | message_id | string | N | ID del messaggio della richiesta, UUID_V4 | | version | string | N | Numero di versione del protocollo della richiesta. Attualmente fissato a 1 |
Esempio di richiesta:
**Parametri di risposta corretti: **
Attributo
Tipo
Opzionale
Descrizione
header
HeaderObject
N
Informazioni sulla struttura dell'intestazione della richiesta
payload
PayloadObject
N
Informazioni sulla struttura del payload della richiesta
HeaderObject
Attributo
Tipo
Opzionale
Descrizione
name
string
N
Nome dell'intestazione di risposta. Parametro opzionale:
Risposta (Risposta riuscita)
ErrorResponse (Risposta di errore) | | message_id | string | N | ID del messaggio dell'intestazione di risposta, UUID_V4. Messaggio di richiesta in ingresso qui: header.message_id | | version | string | N | Numero di versione del protocollo della richiesta. Attualmente fissato a 1 |
PayloadObject:
Attributo
Tipo
Opzionale
Descrizione
audio_list
AudioObject []
N
Elenco audio TTS
Struttura AudioObject
Attributo
Tipo
Opzionale
Descrizione
url
string
N
URL del file audio, per esempio:
https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3
label
string
Y
Etichetta del file audio
:::tips Condizioni: I parametri della richiesta sono validi e la verifica dell'identità dell'utente è superata. **Codice di stato: **200 OK Esempio di risposta:: ::: Esempio di risposta corretta::
**Parametri di risposta anomala: **
Attributo
Tipo
Opzionale
Descrizione
type
string
N
Tipo di errore
INVALID_PARAMETERS (Errore nei parametri)
AUTH_FAILURE (Errore di autenticazione)
INTERNAL_ERROR (Errore interno del servizio) | | description | string | N | Descrizione dell'errore |
Esempio di risposta di errore::
c. Comando di sintesi vocale
Inviare il comando al Fornitore del servizio TTS dal gateway.
:::tips
URL:
<service address>Metodo:
POSTHeader:
Content-Type: application/json ::: Parametri della richiesta:
Attributo
Tipo
Opzionale
Descrizione
directive
DirectiveObject
N
Informazioni sulla struttura dell'oggetto istruzione
DirectiveObject
Attributo
Tipo
Opzionale
Descrizione
header
HeaderObject
N
Informazioni sulla struttura dell'intestazione della richiesta
payload
PayloadObject
N
Informazioni sulla struttura del payload della richiesta
HeaderObject
Attributo
Tipo
Opzionale
Descrizione
name
string
N
Nome della richiesta. Parametro opzionale:
SynthesizeSpeech | | message_id | string | N | ID del messaggio della richiesta: UUID_V4 | | version | string | N | Numero di versione del protocollo della richiesta. Attualmente fissato a 1 |
PayloadObject
Attributo
Tipo
Opzionale
Descrizione
text
string
N
Testo usato per sintetizzare l'audio
label
string
Y
Etichetta del file audio
language
string
Y
Campo trasparente. Codice lingua opzionale per la richiesta di sintesi vocale. L'elenco specifico dei codici lingua supportati è fornito dal fornitore del servizio motore TTS. Si noti che il servizio del motore TTS deve supportare una lingua predefinita per la sintesi vocale, il che significa che se la lingua non viene fornita, verrà utilizzata la lingua predefinita del motore per la sintesi.
options
object
Y
Campo trasparente. Viene utilizzato per trasmettere i parametri di configurazione necessari per la sintesi al servizio del motore di sintesi vocale TTS.
Esempio di richiesta:
**Parametri di risposta corretti: **
Attributo
Tipo
Opzionale
Descrizione
header
HeaderObject
N
Informazioni sulla struttura dell'intestazione della richiesta
payload
PayloadObject
N
Informazioni sulla struttura del payload della richiesta
HeaderObject
Attributo
Tipo
Opzionale
Descrizione
name
string
N
Nome dell'intestazione di risposta. Parametro opzionale:
Risposta (Risposta riuscita)
ErrorResponse (Risposta di errore) | | message_id | string | N | ID del messaggio dell'intestazione di risposta, UUID_V4. Messaggio di richiesta in ingresso qui: header.message_id | | version | string | N | Numero di versione del protocollo della richiesta. Attualmente fissato a 1 |
PayloadObject
Attributo
Tipo
Opzionale
Descrizione
audio
AudioObject
N
Audio TTS
Struttura AudioObject
Attributo
Tipo
Opzionale
Descrizione
url
string
N
URL del file audio, per esempio:
https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3
label
string
Y
Etichetta del file audio
:::tips Condizioni: I parametri della richiesta sono validi e la verifica dell'identità dell'utente è superata. **Codice di stato: **200 OK Esempio di risposta:: ::: Esempio di risposta corretta::
**Parametri di risposta anomala: **
Attributo
Tipo
Opzionale
Descrizione
type
string
N
Tipo di errore
INVALID_PARAMETERS (Errore nei parametri)
AUTH_FAILURE (Errore di autenticazione)
INTERNAL_ERROR (Errore interno del servizio) | | description | string | N | Descrizione dell'errore |
Esempio di risposta di errore::
7. Modulo multimediale
7.1 Riprodurre file audio
:::tips
URL:
/open-api/V2/rest/media/audio-playerMetodo:
POSTHeader:
Content-Type: application/json
Autorizzazione: Bearer ::: Parametri della richiesta:
Attributo
Tipo
Opzionale
Descrizione
audio_url
string
N
Indirizzo URL dell'audio
Risposta dati corretta: :::tips Condizioni: I parametri della richiesta sono validi e la verifica dell'identità dell'utente è superata. **Codice di stato: **200 OK Esempio di risposta:: :::
8. Scheda UI personalizzata
Le schede UI personalizzate ti consentono di visualizzare qualsiasi contenuto desideri all'interno della scheda. Questo contenuto può essere una pagina web, un'immagine o qualsiasi servizio con un'interfaccia utente. Devi semplicemente fornire l'URL del contenuto che desideri visualizzare. La scheda UI si adatterà automaticamente alla larghezza e all'altezza e il contenuto verrà renderizzato utilizzando un iFrame.
8.1 Istruzione
Ruolo chiave
Fornitore del servizio UI: Il fornitore responsabile della creazione di schede UI personalizzate sul gateway.
Server Gateway: Il server del gateway (iHost).
Client Open API del Gateway: Il client Open API per il gateway.
8.1.1 Creazione di una scheda UI personalizzata
[Fornitore del servizio UI]: Chiama l'API per creare una scheda UI personalizzata sul gateway.
[Server Gateway]: Dopo la registrazione avvenuta con successo, il gateway memorizza le informazioni di base della scheda UI (inclusa la configurazione delle dimensioni e l'URL della risorsa della scheda) e assegna un ID interno della scheda UI all'interno del gateway.

8.1.2 Recupero dell'elenco delle schede UI
[Fornitore del servizio UI]: Chiama l'API per recuperare l'elenco delle schede UI.
[Server Gateway]: Restituisce l'elenco delle schede UI memorizzate sul gateway, incluse le schede UI personalizzate non create dal chiamante.

8.1.3 Modifica della configurazione di una scheda UI specificata
[Fornitore del servizio UI]: Chiama l'API per modificare la configurazione di una scheda UI specificata, come la configurazione delle dimensioni e l'URL della risorsa.
[Server Gateway]: Dopo la modifica avvenuta con successo, il gateway memorizza le informazioni aggiornate della scheda UI, inclusa la nuova configurazione delle dimensioni e l'URL della risorsa.

8.1.4 Eliminazione di una scheda UI personalizzata
[Fornitore del servizio UI]: Chiama l'API per eliminare una scheda UI personalizzata specificata.
[Server Gateway]: Il gateway rimuoverà tutte le informazioni correlate alla scheda UI specificata.

8.2 Modulo scheda UI personalizzata
8.2.1 Creazione di una scheda UI personalizzata
Il Fornitore del servizio UI invia una richiesta al gateway per creare una scheda UI personalizzata.
:::tips
URL:
/open-api/v2/rest/ui/cardsMetodo:
POSTHeader:
Content-Type: application/json
Autorizzazione: Bearer ::: Parametri della richiesta:
Attributo
Tipo
Opzionale
Descrizione
label
string
Y
Etichetta della scheda: Usata per descrivere la scheda. È l'alias della scheda.
cast_settings
CastSettingsObject
Y
Impostazioni della scheda Cast: Impostazioni di configurazione per le schede cast.
web_settings
WebSettingsObject
N
Impostazioni della scheda Web: Impostazioni di configurazione per le schede web.
CastSettingsObject:
Attributo
Tipo
Opzionale
Descrizione
dimensions
DimensionObject []
N
Configurazione della dimensione: Deve includere almeno una configurazione.
default
string
N
Specificazione predefinita: La specifica della dimensione predefinita viene utilizzata, con parametri opzionali: 2x2
WebSettingsObject:
Attributo
Tipo
Opzionale
Descrizione
dimensions
DimensionObject []
N
Configurazione della dimensione: Deve includere almeno una configurazione.
drawer_component
DrawerObject
Y
Impostazioni di visualizzazione del componente Drawer.
default
string
N
Specificazione predefinita:
1x1
2x1 |
DimensionObject:
Attributo
Tipo
Opzionale
Descrizione
src
string
N
URL della risorsa: Per esempio: http://example.html
size
string
N
Specifiche della dimensione:
Parametri opzionali CastSettingsObject:
2×2
Parametri opzionali WebSettingsObject:
1x1
2x1 |
DrawerObject:
Attributo
Tipo
Opzionale
Descrizione
src
string
N
URL della risorsa: Per esempio: http://example.html
Risposta dati di successo:
Attributo
Tipo
Opzionale
Descrizione
id
string
N
ID univoco della scheda UI
:::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è passata. **Status Code: ** 200 OK ::: 请求示例:
Esempio di risposta:
8.2.2 Recuperare l'elenco delle schede UI
:::tips
URL:
/open-api/v2/rest/ui/cardsMetodo:
GETHeader:
Content-Type: application/json
Autorizzazione: Bearer ::: Parametri della richiesta: Nessuno Parametri di risposta:
Attributo
Tipo
Opzionale
Descrizione
data
CardObject[]
N
Elenco delle schede UI
Oggetto CardObjec:
Attributo
Tipo
Opzionale
Descrizione
id
string
N
ID della scheda: Un identificatore univoco per la scheda.
label
string
Y
Etichetta della scheda: Usata per descrivere la scheda. Funziona come alias o nome della scheda.
cast_settings
CastSettingsObject
Y
Etichetta della scheda: Usata per descrivere la scheda. È l'alias della scheda.
web_settings
WebSettingsObject
N
Impostazioni della scheda Cast: Impostazioni di configurazione per le schede cast.
app_name
string
Y
Impostazioni della scheda Web: Impostazioni di configurazione per le schede web.
CastSettingsObject:
Attributo
Tipo
Opzionale
Descrizione
dimensions
DimensionObject []
N
Configurazione della dimensione: Deve includere almeno una configurazione.
default
string
N
Specificazione predefinita:
Parametro opzionale: 2x2
usato
string
N
Specificazione corrente:
Parametro opzionale: 2x2
WebSettingsObject:
Attributo
Tipo
Opzionale
Descrizione
dimensions
DimensionObject []
N
Configurazione della dimensione: Deve includere almeno una configurazione.
drawer_component
DrawerObject
Y
Impostazioni di visualizzazione del componente Drawer.
default
string
N
Specificazione predefinita:
Parametro opzionale:
1x1
2x1 | | used | string | N | Specificazione corrente: Parametro opzionale:
1x1
2x1 |
DimensionObject:
Attributo
Tipo
Opzionale
Descrizione
src
string
N
URL della risorsa: Per esempio: http://example.html
size
string
N
Specifiche della dimensione:
Parametro opzionale:
1x1
2x1
Nota: Attualmente, le schede cast supportano solo la specifica 2x2. La specifica 2x2 non sarà efficace. |
DrawerObject:
Attributo
Tipo
Opzionale
Descrizione
src
string
N
URL della risorsa: Per esempio: http://example.html
Esempio di risposta:
8.2.3 Modificare la configurazione di una scheda UI specificata
Agli utenti autorizzati è consentito modificare la configurazione di una scheda UI esistente tramite questa interfaccia. I fornitori di servizi di schede personalizzate possono modificare solo le schede UI che hanno creato.
:::tips
URL:
/open-api/v2/rest/ui/cards/{id}Metodo:
PUTHeader:
Content-Type: application/json
Autorizzazione: Bearer ::: Parametri della richiesta:
Attributo
Tipo
Opzionale
Descrizione
label
string
Y
Usato per descrivere la scheda. È l'alias della scheda.
cast_settings
CastSettingsObject
Y
Impostazioni della scheda Cast
web_settings
WebSettingsObject
Y
Impostazioni della scheda Web
CastSettingsObject:
Attributo
Tipo
Opzionale
Descrizione
usato
string
Y, Uno dei due usato o src deve essere fornito, ma è richiesto almeno uno di questi parametri.
Specificazione corrente:
Parametro opzionale:
2x2
| | src | string | Y, Uno dei due usato o src deve essere fornito, ma è richiesto almeno uno di questi parametri. | URL della risorsa: http://example.html |
WebSettingsObject:
Attributo
Tipo
Opzionale
Descrizione
usato
string
Y, Uno dei due usato o src deve essere fornito, ma è richiesto almeno uno di questi parametri.
Specificazione corrente:
Parametro opzionale:
1x1
2x1 | | src | string | Y, Uno dei due
usatoosrcdeve essere fornito, ma è richiesto almeno uno di questi parametri. | URL della risorsa: http://example.html |
Risposta dati riuscita: :::tips Condizioni: I parametri della richiesta sono validi e la verifica dell'identità dell'utente è superata. La scheda UI da modificare deve essere stata creata dal fornitore del servizio di schede personalizzate che chiama l'interfaccia. **Codice di stato: ** 200 OK Codice di errore:
406: Nessuna autorizzazione per accedere a questa risorsa ::: **Esempio di risposta: **
**Esempio di richiesta: **
8.2.4 Eliminare la scheda UI personalizzata
Agli utenti autorizzati è consentito eliminare una scheda UI esistente utilizzando questa interfaccia. I fornitori di schede personalizzate possono eliminare solo le schede UI che hanno creato.
:::tips
URL:
/open-api/v2/rest/ui/cards/{id}Metodo:
DELETEHeader:
Content-Type: application/json
Autorizzazione: Bearer ::: Parametri della richiesta: Nessuno Risposta dati riuscita: :::tips Condizioni: I parametri della richiesta sono validi e la verifica dell'identità dell'utente è superata. La scheda UI da modificare deve essere stata creata dal fornitore del servizio di schede personalizzate che chiama l'interfaccia. **Codice di stato: **
200 OKCodice di errore:
406: Nessuna autorizzazione per accedere a questa risorsa. ::: **Esempio di risposta: **
Ultimo aggiornamento