Guida per sviluppatori e API
1. Inizio utilizzo
1.1 Preparazione
Passo 1. Assicurarsi che il gateway sia alimentato e funzioni correttamente.
Passo 2. Assicurarsi che il gateway e il PC siano connessi alla stessa LAN. Quindi inserire l'URL di CUBE nel browser.
Nota: Se disponi di più gateway, puoi ottenere l'indirizzo IP corrispondente per accedere al gateway specificato nei due modi seguenti.
Accedi al tuo router wireless e controlla l'indirizzo IP del gateway nel DHCP.
CUBE supporta la scoperta locale tramite mDNS.
1.2 Inizia
Chiama l'interfaccia [Access Token] e ricevi una risposta di errore che indica di fare clic su <Fine>. 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"
}Fai clic su <Fine> e chiama nuovamente l'interfaccia [Access Token]. La risposta ha esito positivo e il token viene ottenuto.
Verifica token. Chiama l'interfaccia [Get Device List]. La risposta ha esito positivo e viene ottenuta la lista dei dispositivi.
Metodo per ottenere il token di accesso CUBE: dopo aver chiamato l'interfaccia [Access Token], la pagina della console web CUBE mostra un pop-up globale che richiede all'utente di confermare l'acquisizione delle credenziali per la chiamata dell'interfaccia.
Nota: Se apri più di una pagina della console web CUBE, il pop-up di conferma apparirà su più pagine contemporaneamente, e il pop-up delle altre pagine verrà chiuso dopo aver cliccato la conferma su una delle pagine.
2. Concetto principale
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 per 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.
**Capacità del dispositivo. **La capacità del dispositivo viene utilizzata per descrivere le specifiche sotto-funzioni del dispositivo. Come controllo dell'alimentazione, controllo della luminosità, controllo della temperatura di colore, ecc. Un singolo dispositivo può supportare 1 o più capacità.
capability: Descrive il nome della capacità, che deve essere univoco a livello globale e di tipo stringa. Più parole in inglese devono essere separate da trattini ("-"). Ad esempio:
"thermostat-target-setpoint".name: Descrive la categoria sotto la capacità, anch'essa di tipo stringa. Più parole in inglese devono essere separate da trattini ("-"). Ad esempio:
"auto-mode","manual-mode".permission: Descrive i permessi associati alla capacità. Il tipo è stringa, formattato in un codice binario 8421. Esempi includono:
Il dispositivo è controllabile:
"1000"Il dispositivo è configurabile:
"0010"Il dispositivo è controllabile e configurabile:
"1010"Il dispositivo è controllabile e in grado di segnalare:
"1100"
Il significato di ogni bit, da destra a sinistra, è il seguente: ⅰ. Bit 0: Consente l'interrogazione del dispositivo ⅱ. Bit 1: Consente la configurazione del dispositivo ⅲ. Bit 2: Consente al dispositivo di segnalare dati ⅳ. Bit 3: Consente il controllo del dispositivo
settings: Descrive gli elementi di configurazione per la capacità, che sono di tipo oggetto e includono una descrizione di ogni voce di configurazione. ⅰ. key: Descrive il nome della voce di configurazione, di tipo stringa. Più parole in inglese dovrebbero essere espresse in camelCase. Ad esempio: "temperatureUnit". ⅱ. value: Descrive il contenuto della voce di configurazione. Le specifiche dettagliate sono indicate 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 | | tipo | 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**:La
valueil campo (che descrive il valore della voce di configurazione) è obbligatorio sepermissionconsente la modifica ("10"o"11").La
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**:La
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 step 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**:La
valueil campo è obbligatorio sepermissionconsente la modifica ("10"o"11").La
defaultil campo è opzionale.
Quando
**type = boolean**:La
valueil campo è obbligatorio sepermissionconsente la modifica ("10"o"11").La
defaultil campo è opzionale.
Quando
**type = string**:La
valueil campo è obbligatorio sepermissionconsente la modifica ("10"o"11").La
defaultil campo è opzionale. |
3. Web API
Tipo di dato
string
Tipo di dato stringa. Codifica UTF8.
number
Tipo di dato numerico. formato binario IEEE 754 a virgola mobile a doppia precisione a 64 bit
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 di risposta generici
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 non è uguale a 0, è una stringa non vuota e il contenuto è una descrizione dell'errore.
Esempio di risposta:
Elenco delle risorse
Suoni supportati
- alert1 (Suono allarme 1)
alert2 (Suono allarme 2)
alert3 (Suono allarme 3)
alert4 (Suono allarme 4)
alert5 (Suono allarme 5)
doorbell1 (Suono campanello 1)
doorbell2 (Suono campanello 2)
doorbell3 (Suono campanello 3)
doorbell4 (Suono campanello 4)
doorbell5 (Suono campanello 5)
alarm1 (Suono allarme 1)
alarm2 (Suono allarme 2)
alarm3 (Suono allarme 3)
alarm4 (Suono allarme 4)
alarm5 (Suono allarme 5) | | Deep supportati | - bootComplete (Avvio del sistema completato)
networkConnected (Rete connessa)
networkDisconnected (Rete disconnessa)
systemShutdown (Spegnimento del sistema) -deviceDiscovered (Dispositivo scoperto)
system Armed (Sistema armato abilitato)
system Disarmed (Sistema armato disabilitato)
factoryReset (Ripristina dispositivo) |
3.1 Funzione del Gateway
a. Token di accesso
Consente agli utenti di ottenere il token di accesso.
Nota: Il token verrà cancellato dopo il ripristino del dispositivo.
Nota: 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 all'interfaccia. È valido a lungo termine, si prega di salvarlo
app_name
string
Y
Descrizione del nome dell'applicazione.
:::tips Condizione: L'utente attiva il < tasto di comando > e accede a questa interfaccia entro il tempo valido. **Codice di stato: **200 OK ::: Esempio di risposta:
Risposta dati in caso di errore:Oggetto vuoto :::tips Condizioni:L'utente non ha attivato il < tasto di comando >, oppure il tempo valido è scaduto. **Codice di stato: ** 200 OK ::: Esempio di risposta:
b. Ottieni 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
Autorization: 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à 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 è superata. **Codice di stato: **200 OK ::: Esempio di risposta:
c. Configura 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
Autorization: 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 è superata. **Codice di stato: **200 OK ::: Esempio di risposta:
d. Ottieni 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 firmware
name
string
N
Nome del dispositivo
Risposta dati di successo: Oggetto vuoto {} :::tips Condizioni: Nessuno **Codice di stato: **200 OK ::: Esempio di risposta:
e. Disattiva audio Gateway
Consente agli utenti autorizzati di disattivare l'audio del 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 è superata. **Codice di stato: **200 OK ::: Esempio di risposta:
f. Riattiva audio Gateway
Consente agli utenti autorizzati di riattivare l'audio 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 è superata. **Codice di stato: **200 OK ::: Esempio di risposta:
g. Annulla 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 è superata. **Codice di stato: **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
Autorization: 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 è superata. **Codice di stato: **200 OK :::
b. Controllo 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 (riproduci il suono) 2.play_beep (riproduci il beep)
sound
SoundObject
Y (N se type è play_sound.)
Il suono.
beep
BeepObject
Y (N se type è play_beep.)
Il beep
SoundObject
Attributo
Tipo
Opzionale
Descrizione
name
string
N
Il nome del suono. I valori supportati possono essere verificati in [Resource List - Supported sound]
volume
int
N
Il volume del suono. [0-100]
countdown
int
N
La durata per cui l'altoparlante riproduce il suono; si fermerà automaticamente allo scadere del tempo. Unità: secondi. [0,1799]
BeepObject
Attributo
Tipo
Opzionale
Descrizione
name
string
N
Il nome dell'evento (deep). I valori supportati possono essere verificati in [Resource List - Supported deep]
volume
int
N
Il volume dell'evento (deep). [0-100]
Risposta dati di successo: Oggetto vuoto {} :::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è superata. **Codice di stato: ** 200 OK ::: Esempio di risposta:
3.3 Funzione di gestione dei dispositivi
a. Tipi di dispositivi supportati
Tipo di dispositivo
Valore
Versione iHost
Plug
plug
≥ 2.1.0
Switch
switch
≥ 2.1.0
Light
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à dei dispositivi supportate
Interruttore di alimentazione (power):
Esempio di Dichiarazione delle Capacità:
Attributo di Stato:
Protocollo (Query Stato & Istruzioni di Controllo):
Accendi:
Spegni:
Commutazione Canale (toggle):
Esempio di Dichiarazione delle Capacità:
Esempio Componente Singolo:
Esempio Componenti Multipli:
Attributo di Stato:
Protocollo (Query Stato & Istruzioni di Controllo):
Formato Toggle:
Inching Canale (toggle-inching):
Esempio di Dichiarazione delle Capacità:
Attributo di Stato
Nessuno
Protocollo (Query Stato & Istruzioni di Controllo)
Nessuno
Regolazione Luminosità (brightness):
Esempio di Dichiarazione delle Capacità:
Attributo di Stato:
Protocollo (Query Stato & Istruzioni di Controllo):
Imposta Luminosità al 80%. (0 è il più scuro e 100 il più chiaro.)
Regolazione Temperatura Colore (color-temperature):
Esempio di Dichiarazione delle Capacità:
Attributo di Stato:
Protocollo (Query Stato & Istruzioni di Controllo):
Regola Temperatura Colore al 50%:
Regolazione Colore (color-rgb):
Esempio di Dichiarazione delle Capacità:
Attributo di Stato:
Protocollo (Query Stato & Istruzioni di Controllo):
Imposta Colore su Viola:
Regolazione Percentuale (percentage):
Esempio di Dichiarazione delle Capacità:
Attributo di Stato:
Protocollo (Query Stato & Istruzioni di Controllo):
Regola al 40%:
Controllo Motore (motor-control):
Esempio di Dichiarazione delle Capacità:
Attributo di Stato:
Protocollo (Query Stato & Istruzioni di Controllo):
Apri Motore:
Invertimento Motore (motor-reverse):
Esempio di Dichiarazione delle Capacità:
Attributo di Stato:
Protocollo (Query Stato & Istruzioni di Controllo):
Imposta Motore in Avanti:
Calibrazione Motore (motor-clb)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Segnalazione Stato):
Segnala che lo stato del motore è in calibrazione:
Stato di Accensione all'Avvio (startup)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Imposta Stato di Alimentazione Sempre On:
Attivazione Risveglio (identify)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Segnalazione Stato & Istruzioni di Controllo):
Imposta Tempo di Attivazione Risveglio:
Segnala Stato di Attivazione:
Interruttore Statistiche Consumo Energetico in Tempo Reale (power-consumption)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Avvia/Arresta Statistiche in Tempo Reale:
Interroga il Consumo Energetico per Intervallo di Tempo:
Rispondi con il Risultato delle Statistiche nell'Intervallo di Tempo:
Protocollo (Segnalazione Stato & 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 delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Formato:
Esempio:
Modalità Termostato (thermostat-mode)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Stato Recupero Adattivo del Termostato (thermostat/adaptive-recovery-status)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Impostazione Temperatura Target Modalità Termostato (thermostat-target-setpoint)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Rilevamento Sensore (detect)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Rilevamento Temperatura (temperature)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Rilevamento Umidità (humidity)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Rilevamento Batteria (battery)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Rilevamento Pulsante Singolo (press)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Rilevamento Multi-Pulsante (multi-press)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Rilevamento Intensità Segnale (rssi)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Rilevamento Manomissione (tamper-alert)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Rilevamento Livello di Illuminazione (illumination-level)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Rilevamento Tensione (voltage)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Rilevamento Corrente Elettrica (electric-current)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Rilevamento Potenza Elettrica (electric-power)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Rilevamento Guasto (fault)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Interruttore di Soglia (threshold-breaker)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato)
Nessuno
Protocollo (Query Stato & Istruzioni di Controllo)
Nessuno
Funzione Inch (inching)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Nessuno
Protocollo (Query Stato & Istruzioni di Controllo):
Nessuno
Stream Fotocamera (camera-stream)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Nessuno
Protocollo (Query Stato & Istruzioni di Controllo):
Nessuno
Controllo Modalità (mode)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Rilevamento Anidride Carbonica (co2)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Rilevamento Illuminazione (illumination)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Rilevamento Fumo (smoke)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Rilevamento Apertura/Chiusura Calamita Porta (contact)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Rilevamento Movimento (motion)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Rilevamento Perdita d'Acqua (water-leak)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Interruttore Rilevamento Finestra (window-detection)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Blocco Bambino (child-lock)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Interruttore Anti-Soffiamento Diretto (anti-direct-blow)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Interruttore Oscillazione Orizzontale (horizontal-swing)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Interruttore Oscillazione Verticale (vertical-swing)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Modalità ECO (eco)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Avvio Alternabile (toggle-startup)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Rilevamento Hold (detect-hold)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Identificazione/Attivazione Alternabile (toggle-identify)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Rilevamento Tensione Alternabile (toggle-voltage)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Rilevamento Corrente Elettrica del Sottocomponente (toggle-electric-current)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Rilevamento Potenza del Sottocomponente (toggle-electric-power)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Statistiche di Consumo Energetico del Sottocomponente (toggle-power-consumption)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Avvia/Arresta Statistiche in Tempo Reale:
Interroga il Consumo Energetico per Intervallo di Tempo:
Risposta per il Consumo Energetico nell'Intervallo di Tempo:
Protocollo (Query Stato & 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à Link (lqi)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Configurazione Funzionale (configuration)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Sistema (system)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Umidità (moisture)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Pressione Barometrica (barometric-pressure)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Velocità del Vento (wind-speed)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Direzione del Vento (wind-direction)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Precipitazioni (rainfall)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Indice Ultravioletti (ultraviolet-index)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Conduttività Elettrica (electrical-conductivity)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Potenza di Trasmissione (transmit-power)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Rilevamento PM2.5 (pm25)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Indice VOC (voc-index)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Rilevamento Gas Naturale (gas)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Stato Lavoro Irrigazione (irrigation/work-status)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Segnalazione Stato Lavoro:
Query dello Stato di Lavoro:
Risultato Query Stato Lavoro:
Modalità di Lavoro Irrigazione (irrigation/work-mode)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Protocollo (Query Stato & Istruzioni di Controllo):
Controller Irrigazione Automatico (irrigation/auto-controller)
Esempio di Dichiarazione delle Capacità:
Attributi (Stato):
Programmazione Singola o Ripetuta:
Volume Singolo o Ripetuto:
Protocollo (Query Stato & Istruzioni di Controllo):
Programmazione Singola o Ripetuta:
Volume Singolo o Ripetuto:
Modalità Preimpostate Supportate
fanLevel (livello Ventilatore)
"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 del sottocomponente toggle.
La chiave speciale temperature_unit è usata per impostare l'unità di temperatura.
d. Codice di Errore Speciale e Descrizione
Codice di Errore
Descrizione
Versione iHost
110000
Il sotto-dispositivo/gruppo corrispondente all'id non esiste
≥2.1.0
110001
Il gateway è nello stato di scoperta dei 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 la modalità offline
≥2.1.0
110015
La password dell'account non è coerente con la password dell'account nell'indirizzo stream RTSP
≥2.1.0
110016
Il gateway è nello stato di scoperta delle 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 del Sotto-dispositivo
Consentire agli utenti autorizzati di abilitare o disabilitare la ricerca di sotto-dispositivi del gateway tramite questa interfaccia
💡Nota: Ora supporta solo la ricerca di sotto-dispositivi Zigbee.
💡Nota: I sotto-dispositivi Zigbee verranno aggiunti automaticamente dopo la ricerca. Non è necessario utilizzare l'interfaccia "Aggiungi manualmente sotto-dispositivi" :::tips
URL:/open-api/V2/rest/devices/discovery
Metodo: PUT
Header:
Content-Type: application/json
Autorization: Bearer ::: Parametri della richiesta:
Attributo
Tipo
Opzionale
Descrizione
enable
boolean
N
true (Avvia associazione); false (Pausa associazione)
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 è superata. **Codice di stato: ** 200 OK ::: Esempio di risposta:
f. Aggiunta Manuale del Sotto-dispositivo
Consentire agli utenti autorizzati di aggiungere un singolo sotto-dispositivo 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
Autorization: Bearer ::: Parametri della richiesta:
Attributo
Tipo
Opzionale
Descrizione
name
string
N
Nome del sotto-dispositivo
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 lettura.
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).
value
StreamSettingValueObject
N
Valori di configurazione specifici
StreamSettingValueObject
Attributo
Tipo
Opzionale
Descrizione
stream_url
string
N
Formato URL 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 tali casi, è possibile omettere <username> e <password> i 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 è superata. **Codice di stato: **200 OK ::: Esempio di risposta:
Risposta dati in caso di fallimento: Oggetto vuoto :::tips Condizione:
Errore accesso indirizzo stream camera (errore formato, autorizzazione fallita, eccezione di rete, ecc.)
Dispositivo già esistente
Se l'aggiunta di un singolo dispositivo fallisce, vengono restituiti tutti i dispositivi non aggiunti.
Codice di Stato: 200 OK Codice 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 Sotto-dispositivi
Consentire agli utenti autorizzati di ottenere l'elenco dei sotto-dispositivi del gateway tramite questa interfaccia. :::tips
URL:/open-api/V2/rest/devices
Metodo: GET
Header:
Content-Type: application/json
Autorization: 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 un dispositivo di terze parti è connesso, altrimenti "Y"
Numero di serie univoco del dispositivo di terze parti
service_address
string
"N" quando un dispositivo di terze parti è connesso, altrimenti "Y"
Indirizzo del servizio di terze parti
name
string
N
Nome del dispositivo, se non rinominato, verrà 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 è compilato quando si ottiene il certificato dell'interfaccia open, allora tutti i dispositivi successivi collegati tramite il certificato verranno inseriti in questo campo.
display_category
string
N
Categoria dispositivo
capabilities
CapabilityObject[]
N
Capability del dispositivo
protocol
string
"N" quando un dispositivo di terze parti è connesso, altrimenti "Y"
Protocollo del dispositivo: zigbee, onvif, rtsp, esp32-cam
state
object
Y
Oggetto stato del dispositivo. Per esempi di stato di diverse capability, si prega di consultare 【Support Device Capabilities】
tags
object
Y
Formato JSON chiave-valore, 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 si trova nella stessa sottorete del gateway
CapabilityObject 💡Nota: Si prega di controllare gli Esempi di Capacità dei Dispositivi Supportati per [Capacità dei Dispositivi Supportate].
Attributo
Tipo
Opzionale
Descrizione
capability
string
N
Nome della capacità. Per dettagli, controllare [Capacità dei Dispositivi Supportate]
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 usato camera-stream, controllare [Capacità dei Dispositivi Supportate]
name
string
Y
Il campo name in toggle. Il numero del sotto-canale usato per identificare i dispositivi multi-canale. Per esempio, se name è 1, significa canale 1.
:::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è superata. **Codice di stato: **200 OK ::: Esempio di risposta:
h. Aggiorna informazioni o stato specificato del dispositivo
Consente agli utenti autorizzati di modificare le informazioni di base del sotto-dispositivo e inviare comandi di controllo tramite questa interfaccia. :::tips
URL:/open-api/V2/rest/devices/{serial_number}
Metodo:PUT
Header:
Content-Type: application/json
Autorization: Bearer ::: Parametri della richiesta:
Attributo
Tipo
Opzionale
Descrizione
name
string
Y
Nome del dispositivo
tags
object
Y
Formato JSON chiave-valore, informazioni personalizzate del dispositivo.
state
object
Y
Oggetto stato del dispositivo. Per esempi di stato delle diverse capacità, controllare [Capacità dei Dispositivi Supportate]
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 legali e la verifica dell'identità utente è superata. **Codice di stato: **200 OK Codice di Errore:
110000 Il sotto-dispositivo/gruppo corrispondente all'id non esiste ::: Esempio di risposta:
i. Elimina Sotto-dispositivo
Consente agli utenti autorizzati di eliminare sotto-dispositivi tramite questa interfaccia. :::tips
URL:/open-api/V2/rest/devices/{serial_number}
Metodo:DELETE
Header:
Content-Type: application/json
Autorizzazione: Bearer ::: Parametri della richiesta:
Attributo
Tipo
Opzionale
Descrizione
name
string
Y
Nome del dispositivo.
tags
object
Y
Coppie chiave-valore in formato JSON utilizzate per memorizzare i nomi dei canali del dispositivo e altre informazioni sui sotto-dispositivi.
state
object
Y
Modifica lo stato del dispositivo; per i dettagli del protocollo specifico, fare riferimento a "Capacità dei Dispositivi Supportate."
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 modificati.
Risposta dati riuscita: :::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità utente è superata. **Codice di stato: **200 OK Codici di errore:
110000: Il sotto-dispositivo/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 Sotto-Dispositivo
Consente agli utenti autorizzati di eliminare sotto-dispositivi 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 è superata. **Codice di stato: **200 OK ::: Esempio di risposta:
k. Interroga Stato del 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 i dettagli del protocollo specifico, fare riferimento a "Capacità dei Dispositivi Supportate."
Risposta dati riuscita: :::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è superata. **Codice di stato: **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 della 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 è superata. **Codice di stato: **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 è superata. **Codice di stato: **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 è superata. **Codice di stato: **200 OK ::: Esempio di risposta:
d. Abilitazione Rapida della Sicurezza
Consente agli utenti autorizzati di abilitare la modalità di impostazione rapida della sicurezza 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 è superata. **Codice di stato: **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 è superata. **Codice di stato: **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 [Tipo di Dispositivo Supportato].
Determinare le capacità a cui il dispositivo può accedere. Per i dettagli, consultare [Capacità dei Dispositivi Supportate].
Richiedere l'interfaccia [Discovery Request] per aggiungere il dispositivo al gateway.
Attenzione: È necessario fornire l'indirizzo di servizio per ricevere le istruzioni emesse dal gateway, che è usato 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 l'ultimo stato 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 open comuni correlate al dispositivo possono essere utilizzate normalmente.
Selezionare la categoria di dispositivo appropriata. La classificazione influenzerà il risultato finale della visualizzazione dell'UI dopo che il dispositivo è connesso al gateway.
Scegliere la capacità del 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 stato del dispositivo
Segnala offline/online
Ricevi le istruzioni relative al controllo del dispositivo dal gateway
Interroga dispositivo
4.3 Web API
Interfaccia Gateway per Richieste di Terze Parti
Formato della Richiesta
Consente agli utenti autorizzati di inviare richieste di eventi al gateway tramite questa interfaccia. :::tips
URL:/open-api/V2/rest/thirdparty/event
Metodo:POST
Header:
Content-Type: application/json
Autorization: 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 una nuova lista 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: Rapporto di aggiornamento stato dispositivo DeviceOnlineChangeReport: Rapporto stato online dispositivo
message_id
string
N
ID del messaggio della richiesta, UUID_V4
version
string
N
Numero di versione del protocollo della richiesta. Attualmente fisso 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
tags
object
Y
Formato JSON chiave-valore, informazioni personalizzate del dispositivo. [Funzione di Gestione Dispositivi] - [Descrizione dei Tag]
PayloadObject In base al diverso header.name ha differenti strutture di richiesta.
Formato della Risposta
:::tips **Codice di stato: **200 OK Parametri di risposta: :::
Attributo
Tipo
Opzionale
Descrizione
header
HeaderObject
N
Informazioni sulla struttura dell'intestazione della risposta
payload
PayloadObject
N
Informazioni sulla struttura del payload della risposta
HeaderObject
Attributo
Tipo
Opzionale
Descrizione
name
string
N
Nome dell'intestazione della risposta. parametri opzionali:Response: Risposta riuscita ErrorResponse: Risposta di errore
message_id
string
N
ID del messaggio dell'intestazione della risposta, UUID_V4. Passare qui l'header.message_id del messaggio di richiesta*Se il parametro message_id manca nella richiesta, questo campo sarà una stringa vuota nella risposta.
version
string
N
- Numero di versione del protocollo della richiesta. Attualmente fisso a 1.
Risposta riuscita--PayloadObject :
A seconda del tipo di richiesta, la struttura della risposta è differente. 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 | | description | string | N | Descrizione dell'errore |
DiscoveryRequest Sincronizza una nuova lista dispositivi
Nota: Dopo che il dispositivo è sincronizzato al gateway, è online per impostazione predefinita, cioè online=true. I successivi cambiamenti 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. Vedere [Tipo di Dispositivo Supportato] per i dettagli. *I dispositivi di terze parti non supportano ora l'aggiunta di telecamere.
capabilities
CapabilityObject[]
N
Elenco delle capacità
state
object
N
Informazioni di stato iniziali
manufacturer
string
N
Produttore
model
string
N
Modello del dispositivo
tags
object
Y
Formato JSON chiave-valore, 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 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 Rapporto 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 [Capacità dei dispositivi supportate] per dettaglio
Esempio di Richiesta :
Parametri di risposta: PayloadObject: Oggetto Vuoto Esempio di risposta riuscita:
DeviceOnlineChangeReport Rapporto 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 Rapporto 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à dei dispositivi supportate. **Nota: **Questo parametro aggiornerà solo il value del impostazione chiave all'interno del CapabilityObject, e gli aggiornamenti sono consentiti solo se il permission per il impostazione key è 11 o 01. Per la definizione della struttura specifica del impostazione in CapabilityObject, fare riferimento alla descrizione dettagliata nella sezione 2.3 Categorie di Visualizzazione del Dispositivo & Capacità del Dispositivo. | | tags
| object
| Y
| Formato JSON chiave-valore, 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 in stato 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 del messaggio della richiesta, UUID_V4
version
string
N
Numero di versione del protocollo della richiesta. Attualmente fisso 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
tags
object
N
Formato JSON chiave-valore, informazioni personalizzate del dispositivo. [Funzione di Gestione Dispositivi] - [Descrizione dei Tag]
PayloadObject: In base a diversi header.name, esiste una struttura di richiesta specifica per ciascuno.
Esempio di Richiesta :
Formato della 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 della risposta. Parametro opzionale: UpdateDeviceStatesResponse: Risposta aggiornamento stati dispositivo ErrorResponse: Risposta di errore
message_id
string
N
ID del messaggio dell'intestazione della risposta, UUID_V4. Passare qui l'header.message_id del messaggio di richiesta
version
string
N
Numero di versione del protocollo della richiesta. Attualmente fisso a 1.
Risposta riuscita--PayloadObject:
A seconda del tipo di richiesta, la struttura della risposta è differente. 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: Il 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 legali. **Codice di stato: **200 OK Parametri di risposta: :::
UpdateDeviceStates
Parametri della richiesta: PayloadObject:
Attributo
Tipo
Opzionale
Descrizione
state
object
N
Stato del dispositivo, Vedere [Capacità dei dispositivi supportate] per dettaglio.
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 [Capacità dei dispositivi supportate] per dettaglio.
Esempio di Richiesta :
Parametri di risposta: PayloadObject:
Attributo
Tipo
Opzionale
Descrizione
state
object
N
Stato del dispositivo, Vedere [Capacità dei dispositivi supportate] per dettaglio.
Esempio di risposta:
ConfigureDeviceCapabilities
Parametri della richiesta: PayloadObject:
Attributo
Tipo
Opzionale
Descrizione
capabilities
CapabilityObject[]
N
Elenco delle capacità. I dettagli possono essere consultati nella parte delle capacità dei dispositivi supportate. Nota, il campo permission non può essere modificato, inviare 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 l'invio di messaggi al client utilizzando 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 in base al protocollo di notifica eventi dell'interfaccia di sviluppo dopo aver ricevuto i messaggi inviati dal gateway. Si noti che il gateway attualmente utilizza il protocollo HTTP1.1, quindi SSE dal lato browser avrà un limite massimo di non più di 6 connessioni (Istruzioni specifiche si trovano 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
Access Token
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 del Dispositivo
payload
oggetto。 Struttura uguale allo stato del dispositivo
N
Dati di 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 open, 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 del 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 open, questo campo è obbligatorio.
DeviceChangeObject
name
string
N
Nome del Dispositivo
capabilities
CapabilityObject []
Y
Elenco delle capacità del dispositivo.
tags
object
Y
tagsobject | Nullable | Coppie chiave-valore in formato JSON per informazioni personalizzate del dispositivo.
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 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 open, questo campo è obbligatorio.
Esempio:
e. Evento Aggiorna Stato Online Dispositivo
:::tips Nome Modulo:device Versione:v2 Tipo Messaggio:updateDeviceOnline event.data parametri: :::
endpoint
EndpointObject
N
Informazioni del 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 open, 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 del 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 disarmamento
ArmStateObject:
Attributo
Tipo
Opzionale
Descrizione
arm_state
string
N
arming| Armatodisarming| Disarmato | | detail | DetailObject | N | Dettagli armamento/disarmamento |
DetailObject:
Attributo
Tipo
Opzionale
Descrizione
sid
int
N
id della modalità di sicurezza
name
string
N
Nome della sicurezza
Esempio
6. TTS (Funzione del motore Text-to-Speech
6.1 Istruzione
Ruolo chiave
Fornitore del servizio TTS: Il fornitore del servizio motore TTS è responsabile della registrazione del motore TTS sul gateway e della fornitura dei servizi TTS
Server Gateway:iHost
Client Open API 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 server service_address, e le successive comunicazioni tra il gateway e il fornitore del servizio TTS avverranno attraverso l'indirizzo server_address), e assegnerà l'ID del servizio motore TTS all'interno del gateway.

6.1.2 Ottenere l'elenco degli audio sintetizzati
【Client Open API 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 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 vocale
【Client Open API 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 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 l'audio e riprodurre la voce TTS.
【Client Open API 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 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 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
Authorization: Bearer ::: Parametri della richiesta: nessuno Risposta dati corretta:
Attributo
Tipo
Opzionale
Descrizione
engines
EngineObject []
N
Elenco dei motori TTS registrati
Struttura di EngineObject
Attributo
Tipo
Opzionale
Descrizione
id
string
N
ID del motore assegnato dal gateway
name
string
N
Nome del servizio motore TS
:::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è passata. **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
Authorization: Bearer ::: Parametri della richiesta: nessuno Risposta dati corretta:
Attributo
Tipo
Opzionale
Descrizione
audio_list
AudioObject []
N
Elenco audio
Struttura di 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 legali e la verifica dell'identità dell'utente è passata. **Codice di stato: **200 OK **Codice di errore: **
190000 Il motore funziona in modo anomalo
Esempio di risposta:: :::
c. Eseguire la sintesi vocale utilizzando il motore TTS specificato
:::tips
URL:
/open-api/V2/rest/tts/engine/{id}/synthesizeMetodo:
POSTHeader:
Content-Type: application/json
Authorization: Bearer ::: Parametri della richiesta:
Attributo
Tipo
Opzionale
Descrizione
text
string
N
Testo utilizzato 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 motore TTS deve supportare una lingua predefinita per la sintesi vocale, il che significa che se la lingua non viene passata, verrà utilizzata la lingua predefinita del motore per la sintesi.
options
object
Y
Campo trasparente. Viene utilizzato per passare i parametri di configurazione necessari per la sintesi al servizio motore TTS.
Risposta dati corretta:
Attributo
Tipo
Opzionale
Descrizione
audio
AudioObject
N
Elenco audio
Struttura di 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 legali e la verifica dell'identità dell'utente è passata. **Codice di stato: **200 OK **Codice di errore: **
190000 Il motore funziona in modo anomalo
Esempio di risposta:: :::
6.2.2 Comunicazione tra Gateway e Servizio TTS
a. Registrazione del servizio motore TTS
Inviare la richiesta al gateway da parte del fornitore del servizio TTS
:::tips
URL:
/open-api/V2/rest/thirdparty/eventMetodo:
POSTHeader:
Content-Type: application/json
Authorization: Bearer ::: Parametri della richiesta:
Attributo
Tipo
Opzionale
Descrizione
evento
EventObject
N
Struttura dell'oggetto evento di richiesta Informazioni
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 fisso 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 fisso a 1 |
PayloadObject
Attributo
Tipo
Opzionale
Descrizione
engine_id
string
N
ID del motore assegnato dal gateway
:::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è passata. **Codice di stato: **200 OK Esempio di risposta:: ::: Esempio di risposta corretta::
**Parametri di risposta anomali: **
Attributo
Tipo
Opzionale
Descrizione
type
string
N
Tipo di errore
INVALID_PARAMETERS (Parametri errati)
AUTH_FAILURE (Autenticazione fallita)
INTERNAL_ERROR (Errore interno del servizio) | | description | string | N | Descrizione dell'errore |
Esempio di risposta di errore::
b. Comando di sincronizzazione dell'elenco audio
Inviare il comando al fornitore del servizio TTS da parte del 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 fisso 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 fisso a 1 |
PayloadObject:
Attributo
Tipo
Opzionale
Descrizione
audio_list
AudioObject []
N
Elenco audio TTS
Struttura di 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 legali e la verifica dell'identità dell'utente è passata. **Codice di stato: **200 OK Esempio di risposta:: ::: Esempio di risposta corretta::
**Parametri di risposta anomali: **
Attributo
Tipo
Opzionale
Descrizione
type
string
N
Tipo di errore
INVALID_PARAMETERS (Parametri errati)
AUTH_FAILURE (Autenticazione fallita)
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 da parte del 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 fisso a 1 |
PayloadObject
Attributo
Tipo
Opzionale
Descrizione
text
string
N
Testo utilizzato 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 motore TTS deve supportare una lingua predefinita per la sintesi vocale, il che significa che se la lingua non viene passata, verrà utilizzata la lingua predefinita del motore per la sintesi.
options
object
Y
Campo trasparente. Viene utilizzato per passare i parametri di configurazione necessari per la sintesi al servizio motore 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 fisso a 1 |
PayloadObject
Attributo
Tipo
Opzionale
Descrizione
audio
AudioObject
N
Audio TTS
Struttura di 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 legali e la verifica dell'identità dell'utente è passata. **Codice di stato: **200 OK Esempio di risposta:: ::: Esempio di risposta corretta::
**Parametri di risposta anomali: **
Attributo
Tipo
Opzionale
Descrizione
type
string
N
Tipo di errore
INVALID_PARAMETERS (Parametri errati)
AUTH_FAILURE (Autenticazione fallita)
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
Authorization: Bearer ::: Parametri della richiesta:
Attributo
Tipo
Opzionale
Descrizione
audio_url
string
N
Indirizzo URL audio
Risposta dati corretta: :::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è passata. **Codice di stato: **200 OK Esempio di risposta:: :::
8. Scheda UI personalizzata
Le schede UI personalizzate consentono di visualizzare qualsiasi contenuto si desideri all'interno della scheda. Questo contenuto può essere una pagina web, un'immagine o qualsiasi servizio con un'interfaccia utente. È sufficiente fornire l'URL del contenuto che si desidera visualizzare. La scheda UI adatterà automaticamente la larghezza e l'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 gateway (iHost).
Client Open API 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]: Al momento della 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]: In caso di 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 relative 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
Authorization: Bearer ::: Parametri della richiesta:
Attributo
Tipo
Opzionale
Descrizione
label
string
Y
Etichetta della scheda: utilizzata 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 delle dimensioni: Deve includere almeno una configurazione.
default
string
N
Specifiche predefinite: La specifica delle dimensioni predefinita viene utilizzata, con parametri opzionali: 2x2
WebSettingsObject:
Attributo
Tipo
Opzionale
Descrizione
dimensions
DimensionObject []
N
Configurazione delle dimensioni: Deve includere almeno una configurazione.
drawer_component
DrawerObject
Y
Impostazioni di visualizzazione del componente Drawer.
default
string
N
Specifiche predefinite:
1x1
2x1 |
DimensionObject:
Attributo
Tipo
Opzionale
Descrizione
src
string
N
URL della risorsa: Per esempio: http://example.html
size
string
N
Specifiche delle dimensioni:
Parametri opzionali di CastSettingsObject:
2×2
Parametri opzionali di 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 è superata. **Codice di stato: ** 200 OK ::: Esempio di richiesta:
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
Authorization: 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: utilizzata per descrivere la scheda. Serve come alias o nome per la scheda.
cast_settings
CastSettingsObject
Y
Etichetta della scheda: utilizzata 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 delle dimensioni: Deve includere almeno una configurazione.
default
string
N
Specifiche predefinite:
Parametro opzionale: 2x2
used
string
N
Specificazione corrente:
Parametro opzionale: 2x2
WebSettingsObject:
Attributo
Tipo
Opzionale
Descrizione
dimensions
DimensionObject []
N
Configurazione delle dimensioni: Deve includere almeno una configurazione.
drawer_component
DrawerObject
Y
Impostazioni di visualizzazione del componente Drawer.
default
string
N
Specifiche predefinite:
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 delle dimensioni:
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
Authorization: Bearer ::: Parametri della richiesta:
Attributo
Tipo
Opzionale
Descrizione
label
string
Y
Utilizzato 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
used
string
Y, Uno dei due used o src deve essere fornito, ma è richiesto almeno uno di questi parametri.
Specificazione corrente:
Parametro opzionale:
2x2
| | src | string | Y, Uno dei due used o src deve essere fornito, ma è richiesto almeno uno di questi parametri. | URL della risorsa: http://example.html |
WebSettingsObject:
Attributo
Tipo
Opzionale
Descrizione
used
string
Y, Uno dei due used o src deve essere fornito, ma è richiesto almeno uno di questi parametri.
Specificazione corrente:
Parametro opzionale:
1x1
2x1 | | src | string | Y, Uno dei due
usedosrcdeve 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 legali e la verifica dell'identità dell'utente è passata. La scheda UI che viene modificata deve essere stata creata dal fornitore del servizio di schede UI personalizzate che chiama l'interfaccia. **Codice di stato: ** 200 OK Codice di errore:
406: Nessun permesso 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
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. La scheda UI che viene modificata deve essere stata creata dal fornitore del servizio di schede UI personalizzate che chiama l'interfaccia. **Codice di stato: **
200 OKCodice di errore:
406: Nessun permesso per accedere a questa risorsa. ::: **Esempio di risposta: **
Ultimo aggiornamento