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.

  1. Accedi al tuo router wireless e controlla l'indirizzo IP del gateway nel DHCP.

  2. 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.

Attributo
Tipo
Opzionale
Descrizione

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:

  1. Bit 0: Consente la visualizzazione di questa voce di configurazione

  2. 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:

  1. Quando **type = enum**:

    • La value il campo (che descrive il valore della voce di configurazione) è obbligatorio se permission consente la modifica ("10" o "11").

    • La default (che descrive il valore predefinito della voce di configurazione) e values (che descrive i valori selezionabili per la voce di configurazione) i campi sono opzionali.

  2. Quando **type = numeric**:

    • La value il campo è obbligatorio se permission consente 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)

  3. Quando **type = object**:

    • La value il campo è obbligatorio se permission consente la modifica ("10" o "11").

    • La default il campo è opzionale.

  4. Quando **type = boolean**:

    • La value il campo è obbligatorio se permission consente la modifica ("10" o "11").

    • La default il campo è opzionale.

  5. Quando **type = string**:

    • La value il campo è obbligatorio se permission consente la modifica ("10" o "11").

    • La default il campo è opzionale. |

3. Web API

Tipo di dato

Tipo
Descrizione

string

Tipo di dato stringa. Codifica UTF8.

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

Attributo
Tipo
Opzionale
Descrizione

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

Tipo
Descrizione

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_token

  • MetodoGET

  • Header

    • 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/runtime

  • MetodoGET

  • Header

    • 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/config

  • MetodoPUT

  • Header

    • 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/bridge

  • MetodoGET

  • Header

    • 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/mute

  • MetodoPUT

  • Header

    • 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/unmute

  • MetodoPUT

  • Header

    • 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_alarm

  • MetodoPUT

  • Header

    • 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/reboot

  • MetodoPOST

  • Header

    • 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/speaker

  • MetodoPOST

  • Header

    • 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

**Nomi Modalità **
**Valori Opzionali **

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>

Esempio:rtsp://admin:[email protected]:554/streaming/channel01

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

  1. Errore accesso indirizzo stream camera (errore formato, autorizzazione fallita, eccezione di rete, ecc.)

  2. Dispositivo già esistente

  3. 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}

  • MetodoDELETE

  • Header

    • 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/security

  • MetodoGET

  • Header

    • 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}/enable

  • MetodoPUT

  • Header

    • 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}/disable

  • MetodoPUT

  • Header

    • 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/enable

  • MetodoPUT

  • Header

    • 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/disable

  • MetodoPUT

  • Header

    • 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

1.0.jpg

Accesso gateway di terze parti

2.0.jpg

Passi di accesso

  1. Determinare la classificazione del dispositivo nel gateway. Per i dettagli, consultare [Tipo di Dispositivo Supportato].

  2. Determinare le capacità a cui il dispositivo può accedere. Per i dettagli, consultare [Capacità dei Dispositivi Supportate].

  3. Richiedere l'interfaccia [Discovery Request] per aggiungere il dispositivo al gateway.

    1. 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.

  4. Se lo stato del dispositivo di terze parti cambia, è necessario chiamare l'interfaccia [Device States Change Report] per inviare l'ultimo stato al gateway.

  5. 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

3.0.jpg

b. Accesso Gateway di Terze Parti

4.0.jpg

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

service_address

string

N

Indirizzo del servizio. Per esempio http://192.168.31.14/service_address

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:

  1. Le terze parti devono rispondere alla richiesta del gateway entro 3s. Altrimenti, il gateway giudicherà il timeout di elaborazione del comando.

  2. 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

  • MetodoGET ::: Parametri della richiesta:

Nome
Tipo
Opzionale
Descrizione

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: :::

Nome
Tipo
Opzionale
Descrizione

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: :::

Nome
Tipo
Opzionale
Descrizione

endpoint

EndpointObject

N

Informazioni del Dispositivo

payload

oggetto。 Struttura uguale allo stato del dispositivo

N

Dati di Stato del Dispositivo

EndpointObject:

Parametro
Tipo
Opzionale
Descrizione

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: :::

Nome
Tipo
Opzionale
Descrizione

endpoint

EndpointObject

N

Informazioni del Dispositivo

payload

DeviceChangeObject

N

Dati di modifica del dispositivo

EndpointObject:

Attributo
Tipo
Opzionale
Descrizione

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

Nome
Tipo
Opzionale
Descrizione

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: :::

** Nome **
** Tipo **
** Facoltativo**
** Descrizione **

endpoint

EndpointObject

N

Informazioni del Dispositivo

EndpointObject:

Attributo
Tipo
Opzionale
Descrizione

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: :::

Nome
Tipo
Opzionale
Descrizione

endpoint

EndpointObject

N

Informazioni del Dispositivo

payload

DeviceChangeObject

N

Dati di modifica del dispositivo

EndpointObject:

Attributo
Tipo
Opzionale
Descrizione

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

Nome
Tipo
Opzionale
Descrizione

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 | Armato

  • disarming | 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 | Armato

  • disarming | 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

  1. 【Fornitore del servizio TTS】Chiama l'interfaccia per registrare il motore TTS sul gateway.

  2. 【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.

image.png

6.1.2 Ottenere l'elenco degli audio sintetizzati

  1. 【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).

  2. 【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.

image.png

6.1.3 Sintesi vocale specificando un motore vocale

  1. 【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).

  2. 【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.

image.png

6.1.4 Sintetizzare l'audio e riprodurre la voce TTS.

  1. 【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).

  2. 【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)

  3. 【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/engines

  • MetodoGET

  • Header

    • 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-list

  • MetodoGET

  • Header

    • 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}/synthesize

  • MetodoPOST

  • Header

    • 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/event

  • MetodoPOST

  • Header

    • 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>

  • MetodoPOST

  • Header

    • 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>

  • MetodoPOST

  • Header

    • 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-player

  • MetodoPOST

  • Header

    • 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.

image.png

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.

image.png

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.

image.png

8.1.4 Eliminazione di una scheda UI personalizzata

  1. [Fornitore del servizio UI]: Chiama l'API per eliminare una scheda UI personalizzata specificata.

  2. [Server Gateway]: Il gateway rimuoverà tutte le informazioni relative alla scheda UI specificata.

image.png

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/cards

  • MetodoPOST

  • Header

    • 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/cards

  • MetodoGET

  • Header

    • 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}

  • MetodoPUT

  • Header

    • 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 used o src deve 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}

  • MetodoDELETE

  • Header

    • 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 OK Codice di errore:

  • 406: Nessun permesso per accedere a questa risorsa. ::: **Esempio di risposta: **

Ultimo aggiornamento