square-codeGuida per sviluppatori e API

1. Iniziare ad usare

1.1 Preparazione

Passo 1. Assicurarsi che il gateway sia alimentato e funzioni correttamente.

Passo 2. Assicurarsi che il gateway e il PC siano collegati alla stessa LAN. Quindi inserire l'URL di CUBE nel browser.

Avviso: Se avete più gateway, potete ottenere l'indirizzo IP corrispondente per accedere al gateway specificato nei seguenti due modi.

  1. Accedere al vostro router wireless e controllare l'indirizzo IP del gateway nel DHCP.

  2. CUBE supporta la scoperta locale tramite mDNS.

1.2 Per iniziare

  • Chiamare l'interfaccia [Access Token], e ottenere una risposta di errore che invita a cliccare <Fatto>. Nota che dopo la pressione, l'accesso all'interfaccia è valido per non più di 5 minuti.

// Richiesta
curl --location --request GET 'http://<ip address>/open-api/V2/rest/bridge/access_token' --header 'Content-Type: application/json'

// Risposta
{
  "error": 401,
  "data": {},
  "message": "link button not pressed" 
}
  • Cliccare <Fatto> e chiamare nuovamente l'interfaccia [Access Token]. La risposta è positiva e il token viene ottenuto.

  • Verificare il token. Chiamare l'interfaccia [Get Device List]. La risposta è positiva e viene ottenuta la lista dei dispositivi.

  • Metodo per ottenere il token di accesso CUBE: dopo aver chiamato l'interfaccia [Access Token], la finestra pop-up globale della pagina della console Web CUBE invita l'utente a confermare l'acquisizione delle credenziali per la chiamata dell'interfaccia.

  • Nota: Se si aprono più pagine della console web CUBE, la finestra di conferma apparirà su più pagine della console web contemporaneamente, e la finestra pop-up delle altre pagine della console web verrà chiusa dopo aver cliccato la conferma su una delle pagine.

2. Concetto chiave

2.1 Indirizzo dell'interfaccia di sviluppo

L'interfaccia Web API del gateway ha due metodi di accesso (basati su IP o nome di dominio), solitamente il percorso root è /open-api/V2/rest/< specifico modulo funzionale >

// Accesso IP http:///open-api/V2/rest/bridge

// Accesso tramite nome di dominio http:///open-api/V2/rest/bridge

2.2 Categoria di visualizzazione del dispositivo e capacità

  • **Categoria di visualizzazione del dispositivo (DisplayCategory). **La categoria di visualizzazione del dispositivo viene utilizzata per identificare categorie specifiche di (dispositivi), come switch, plug, light, ecc. Questa informazione determinerà l'effetto di visualizzazione UI del dispositivo nel gateway.

  • **Capability del dispositivo. **La capability del dispositivo viene utilizzata per descrivere le specifiche sotto-funzioni del dispositivo. Ad esempio controllo di alimentazione, controllo della luminosità, controllo della temperatura del colore, ecc. Un singolo dispositivo può supportare 1 o più capability.

    • capability: Descrive il nome della capability, che deve essere globalmente unico e di tipo stringa. Più parole inglesi devono essere separate da trattini ("-"). Per esempio: "thermostat-target-setpoint".

    • name: Descrive la categoria sotto la capability, anch'essa di tipo stringa. Più parole inglesi devono essere separate da trattini ("-"). Per esempio: "auto-mode", "manual-mode".

    • permission: Descrive i permessi associati alla capability. Il tipo è stringa, formattata in codice binario 8421. Esempi includono:

      • Dispositivo controllabile: "1000"

      • Dispositivo configurabile: "0010"

      • Dispositivo controllabile e configurabile: "1010"

      • Dispositivo controllabile e in grado di segnalare: "1100"

Il significato di ogni bit, da destra a sinistra, è il seguente: ⅰ. Bit 0: Consente la consultazione del dispositivo ⅱ. Bit 1: Consente la configurazione del dispositivo ⅲ. Bit 2: Consente al dispositivo di riportare dati ⅳ. Bit 3: Consente il controllo del dispositivo

settings: Descrive le voci di configurazione per la capability, che sono di tipo oggetto e includono una descrizione per ciascuna voce di configurazione. ⅰ. key: Descrive il nome della voce di configurazione, che è di tipo stringa. Più parole inglesi dovrebbero essere espresse in camelCase. Per esempio: "temperatureUnit". ⅱ. value: Descrive il contenuto della voce di configurazione. Le specifiche dettagliate sono descritte nella tabella sottostante.

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 | | type | string | N | Descrive il tipo di dato del valore della voce di configurazione. Valori opzionali:

  • "enum"

  • "numeric"

  • "object"

  • "boolean"

  • "string"

Linee guida specifiche per tipo:

  1. Quando **type = enum**:

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

    • Il 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**:

    • Il campo 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 passo per la voce di configurazione)

      • precision (che descrive la precisione)

      • unit (che descrive l'unità della voce di configurazione)

      • default (che descrive il valore predefinito)

  3. Quando **type = object**:

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

    • Il default il campo è opzionale.

  4. Quando **type = boolean**:

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

    • Il default il campo è opzionale.

  5. Quando **type = string**:

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

    • Il 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 generici della risposta

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 è diverso da 0, è una stringa non vuota, e il contenuto è una descrizione dell'errore.

Esempio di risposta:

Elenco delle risorse

Tipo
Descrizione

Suoni supportati

- alert1 (Suono di allarme 1)

  • alert2 (Suono di allarme 2)

  • alert3 (Suono di allarme 3)

  • alert4 (Suono di allarme 4)

  • alert5 (Suono di allarme 5)

  • doorbell1 (Suono campanello 1)

  • doorbell2 (Suono campanello 2)

  • doorbell3 (Suono campanello 3)

  • doorbell4 (Suono campanello 4)

  • doorbell5 (Suono campanello 5)

  • alarm1 (Suono di allarme 1)

  • alarm2 (Suono di allarme 2)

  • alarm3 (Suono di allarme 3)

  • alarm4 (Suono di allarme 4)

  • alarm5 (Suono di allarme 5) | | Deep supportati | - bootComplete (Avvio del sistema completato)

  • networkConnected (Rete connessa)

  • networkDisconnected (Rete disconnessa)

  • systemShutdown (Spegnimento del sistema) -deviceDiscovered (Scoperta dispositivo)

  • system Armed (Sistema armato abilitato)

  • system Disarmed (Sistema armato disabilitato)

  • factoryReset (Ripristina dispositivo) |

3.1 La funzione del Gateway

a. Access Token

Consente agli utenti di ottenere il token di accesso.

  • Avviso: Il token verrà cancellato dopo il reset del dispositivo.

  • Avviso: Dopo aver ottenuto il token, è necessario premere nuovamente il pulsante per ottenere con successo un nuovo token.

:::tips

  • URL/open-api/V2/rest/bridge/access_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 dell'interfaccia. È valido a lungo termine, conservarlo

app_name

string

Y

Descrizione del nome dell'applicazione.

:::tips Condizione: L'utente attiva il < comando > e accede a questa interfaccia entro il tempo valido. **Status Code: **200 OK ::: Esempio di risposta:

Risposta dati di errore:Oggetto vuoto :::tips Condizioni:L'utente non ha attivato il < comando >, o il tempo valido è scaduto. **Status Code: ** 200 OK ::: Esempio di risposta:

b. Ottenere lo stato del Gateway

Consente agli utenti autorizzati di ottenere lo stato del gateway tramite questa interfaccia :::tips

  • URL/open-api/V2/rest/bridge/runtime

  • MetodoGET

  • Header

    • Content-Type: application/json

    • Authorization: Bearer ::: Parametri della richiesta: nessuno Risposta dati di successo:

Attributo

Tipo

Opzionale

Descrizione

ram_used

int

N

Percentuale di utilizzo della RAM. [0-100]

cpu_used

int

N

Percentuale di utilizzo della CPU. [0-100]

power_up_time

date

N

L'ultima ora di accensione

cpu_temp

int

N

Temperatura CPU:

Unità: Celsius

cpu_temp_unit

string

N

Unità di temperatura CPU:

Opzionale

valori:'c', 'f'

sd_card_used

int

Y

Utilizzo della scheda SD (percentuale):

Intervallo:[0-100] con una cifra decimale di precisione

*Nota: Se la scheda SD non è inserita o non è formattata, il valore è vuoto.

:::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è passata. **Status Code: **200 OK ::: Esempio di risposta:

c. Configurare il Gateway

Consente agli utenti autorizzati di configurare il gateway tramite questa interfaccia :::tips

  • URL/open-api/V2/rest/bridge/config

  • MetodoPUT

  • Header

    • Content-Type: application/json

    • Authorization: Bearer ::: Parametri della richiesta:

Attributo

Tipo

Opzionale

Descrizione

volume

int

Y

Volume di sistema. [0-100]

Risposta dati di successo: Oggetto vuoto {} :::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è passata. **Status Code: **200 OK ::: Esempio di risposta:

d. Ottenere le informazioni del Gateway

Consente agli utenti autorizzati di ottenere le informazioni del gateway tramite questa interfaccia :::tips

  • URL/open-api/V2/rest/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 del firmware

name

string

N

Nome del dispositivo

Risposta dati di successo: Oggetto vuoto {} :::tips Condizioni: Nessuno **Status Code: **200 OK ::: Esempio di risposta:

e. Silenziare il Gateway

Consente agli utenti autorizzati di silenziare il gateway tramite questa interfaccia. :::tips

  • URL/open-api/v2/rest/bridge/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 è passata. **Status Code: **200 OK ::: Esempio di risposta:

f. Riattivare il suono del Gateway

Consente agli utenti autorizzati di riattivare il suono del gateway tramite questa interfaccia. :::tips

  • URL/open-api/v2/rest/bridge/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 è passata. **Status Code: **200 OK ::: Esempio di risposta:

g. Disattivare l'allarme del Gateway

Consente agli utenti autorizzati di disabilitare lo stato del suono di allarme sul gateway tramite questa interfaccia. :::tips

  • URL/open-api/v2/rest/bridge/cancel_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 è passata. **Status Code: **200 OK ::: Esempio di risposta:

3.2 Funzione hardware

a. Riavviare il Gateway

Consente all'utente autorizzato di riavviare il gateway tramite questa interfaccia :::tips

  • URL/open-api/V2/rest/hardware/reboot

  • MetodoPOST

  • 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 è passata. **Status Code: **200 OK :::

b. Controllo dell'altoparlante

Consente agli utenti autorizzati di controllare l'altoparlante tramite questa interfaccia :::tips

  • URL/open-api/V2/rest/hardware/speaker

  • MetodoPOST

  • Header

    • Content-Type: application/json

    • Authorization: Bearer ::: Parametri della richiesta:

Attributo

Tipo

Opzionale

Descrizione

type

string

N

Parametri opzionali: 1.play_sound (riprodurre il suono) 2.play_beep (riprodurre il beep)

sound

SoundObject

Y (N se il tipo è play_sound.)

Il suono.

beep

BeepObject

Y (N se il tipo è play_beep.)

Il beep

SoundObject

Attributo

Tipo

Opzionale

Descrizione

name

string

N

Il nome del suono. I valori supportati possono essere verificati in [Elenco risorse - Suoni supportati]

volume

int

N

Il volume del suono. [0-100]

countdown

int

N

La durata della riproduzione del suono dall'altoparlante; si interromperà automaticamente al termine del tempo. Unità: secondi. [0,1799]

BeepObject

Attributo

Tipo

Opzionale

Descrizione

name

string

N

Il nome del deep. I valori supportati possono essere verificati in [Elenco risorse - Deep supportati]

volume

int

N

Il volume del deep. [0-100]

Risposta dati di successo: Oggetto vuoto {} :::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è passata. **Status Code: ** 200 OK ::: Esempio di risposta:

3.3 Funzione di gestione dei dispositivi

a. Tipi di dispositivi supportati

Tipo di dispositivo

Valore

Versione iHost

Presina

plug

≥ 2.1.0

Interruttore

switch

≥ 2.1.0

Luce

light

≥ 2.1.0

Tenda

curtain

≥ 2.1.0

Sensore porta/finestra

contactSensor

≥ 2.1.0

Sensore di movimento

motionSensor

≥ 2.1.0

Sensore di temperatura

temperatureSensor

≥ 2.1.0

Sensore di umidità

humiditySensor

≥ 2.1.0

Sensore di temperatura e umidità

temperatureAndHumiditySensor

≥ 2.1.0

Rilevatore di perdite d'acqua

waterLeakDetector

≥ 2.1.0

Rilevatore di fumo

smokeDetector

≥ 2.1.0

Pulsante wireless

button

≥ 2.1.0

Telecamera

camera

≥ 2.1.0

Sensore generico

sensor

≥ 2.1.0

Sensore generico

sensor

≥ 2.1.0

Ventilatore con luce

fanLight

≥ 2.1.0

Condizionatore

airConditioner

≥ 2.1.0

Ventilatore

fan

≥ 2.1.0

Termostato

thermostat

≥ 2.1.0

b. Capacità del dispositivo supportate

Interruttore di alimentazione (power):

Esempio di dichiarazione della capacità:

Attributo di stato:

Protocollo (interrogazione dello stato e istruzioni di controllo):

Accendi:

Spegni:

Interruttore canale (toggle):

Esempio di dichiarazione della capacità:

Esempio componente singolo:

Esempio componenti multipli:

Attributo di stato:

Protocollo (interrogazione dello stato e istruzioni di controllo):

Formato toggle:

Inching canale (toggle-inching):

Esempio di dichiarazione della capacità:

Attributo di stato

Nessuno

Protocollo (interrogazione dello stato e istruzioni di controllo)

Nessuno

Regolazione della luminosità (brightness):

Esempio di dichiarazione della capacità:

Attributo di stato:

Protocollo (interrogazione dello stato e istruzioni di controllo):

Imposta la luminosità all'80%. (0 è il più scuro e 100 è il più luminoso.)

Regolazione della temperatura del colore (color-temperature):

Esempio di dichiarazione della capacità:

Attributo di stato:

Protocollo (interrogazione dello stato e istruzioni di controllo):

Regola la temperatura del colore al 50%:

Regolazione del colore (color-rgb):

Esempio di dichiarazione della capacità:

Attributo di stato:

Protocollo (interrogazione dello stato e istruzioni di controllo):

Imposta il colore su viola:

Regolazione percentuale (percentage):

Esempio di dichiarazione della capacità:

Attributo di stato:

Protocollo (interrogazione dello stato e istruzioni di controllo):

Regola al 40%:

Controllo motore (motor-control):

Esempio di dichiarazione della capacità:

Attributo di stato:

Protocollo (interrogazione dello stato e istruzioni di controllo):

Apri motore:

Inversione motore (motor-reverse):

Esempio di dichiarazione della capacità:

Attributo di stato:

Protocollo (interrogazione dello stato e istruzioni di controllo):

Imposta motore in avanti:

Calibrazione motore (motor-clb)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (segnalazione stato):

Segnala che lo stato del motore è in calibrazione:

Stato all'accensione (startup)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Imposta lo stato di alimentazione su Sempre On:


Attivazione di risveglio (identify)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (segnalazione stato e istruzioni di controllo):

Imposta il tempo di attivazione di risveglio:

Segnala lo stato di attivazione:

Interruttore statistiche consumo energetico in tempo reale (power-consumption)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Avvia/Arresta statistiche in tempo reale:

Interroga il consumo energetico per intervallo di tempo:

Rispondere con il risultato delle statistiche entro l'intervallo di tempo:

Protocollo (segnalazione stato e istruzioni di controllo):

Avvia statistiche in tempo reale:

Arresta statistiche in tempo reale:

Ottieni consumo energetico storico:

Ottieni consumo energetico in tempo reale:

Rilevamento modalità temperatura e umidità (thermostat-mode-detect)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Formato:

Esempio:

Modalità termostato (thermostat-mode)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Stato di recupero adattivo del termostato (thermostat/adaptive-recovery-status)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Impostazione della temperatura target della modalità termostato (thermostat-target-setpoint)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Rilevamento sensori (detect)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Rilevamento temperatura (temperature)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Rilevamento umidità (humidity)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Rilevamento batteria (battery)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Rilevamento singolo pulsante (press)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Rilevamento multi-pulsante (multi-press)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Rilevamento intensità segnale (rssi)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Rilevamento manomissione (tamper-alert)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Rilevamento livello di illuminazione (illumination-level)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Rilevamento tensione (voltage)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Rilevamento corrente elettrica (electric-current)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Rilevamento potenza elettrica (electric-power)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Rilevamento guasti (fault)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Interruttore soglia (threshold-breaker)

Esempio di dichiarazione della capacità:

Attributi (Stato)

  • Nessuno

Protocollo (interrogazione dello stato e istruzioni di controllo)

  • Nessuno

Funzione inch (inching)

Esempio di dichiarazione della capacità:

Attributi (Stato):

  • Nessuno

Protocollo (interrogazione dello stato e istruzioni di controllo):

  • Nessuno

Stream della telecamera (camera-stream)

Esempio di dichiarazione della capacità:

Attributi (Stato):

  • Nessuno

Protocollo (interrogazione dello stato e istruzioni di controllo):

  • Nessuno

Controllo modalità (mode)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Rilevamento diossido di carbonio (co2)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Rilevamento illuminazione (illumination)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Rilevamento fumo (smoke)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Rilevamento Apertura/Chiusura Magnetico Porta (contatto)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Rilevamento Movimento (motion)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Rilevamento Perdita d'Acqua (water-leak)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Interruttore Rilevamento Finestra (window-detection)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Interruttore Blocco Bambini (child-lock)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Interruttore Anti-Soffiaggio Diretto (anti-direct-blow)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Interruttore Oscillazione Orizzontale (horizontal-swing)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Interruttore Oscillazione Verticale (vertical-swing)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Modalità ECO (eco)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Avvio Alternato (toggle-startup)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Rilevamento Mantenimento (detect-hold)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Identificazione/Attivazione Alternata (toggle-identify)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Rilevamento Tensione Alternata (toggle-voltage)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Rilevamento Corrente Elettrica Sottocomponente (toggle-electric-current)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Rilevamento Potenza Sottocomponente (toggle-electric-power)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Statistiche Consumo Energetico Sottocomponente (toggle-power-consumption)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Avvia/Arresta statistiche in tempo reale:

Interroga il consumo energetico per intervallo di tempo:

Risposta per Consumo Energetico nell'Intervallo di Tempo:

Protocollo (interrogazione dello stato e istruzioni di controllo):

Avvia statistiche in tempo reale:

Arresta statistiche in tempo reale:

Ottieni consumo energetico storico:

Ottieni consumo energetico in tempo reale:

Indicatore Qualità Collegamento (lqi)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Configurazione Funzionale (configuration)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Sistema (system)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Umidità (moisture)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Pressione Barometrica (barometric-pressure)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Velocità del Vento (wind-speed)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Direzione del Vento (wind-direction)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Precipitazioni (rainfall)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Indice Ultravioletti (ultraviolet-index)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Conducibilità Elettrica (electrical-conductivity)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Potenza di Trasmissione (transmit-power)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Rilevamento PM2.5 (pm25)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Indice VOC (voc-index)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Rilevamento Gas Naturale (gas)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Stato Lavoro Irrigazione (irrigation/work-status)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Segnalazione Stato Lavoro:

Query Stato Lavoro:

Risultato Query Stato Lavoro:

Modalità Lavoro Irrigazione (irrigation/work-mode)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Protocollo (interrogazione dello stato e istruzioni di controllo):

Controller Irrigazione Automatico (irrigation/auto-controller)

Esempio di dichiarazione della capacità:

Attributi (Stato):

Pianificazione Singola o Ripetuta:

Volume Singolo o Ripetuto:

Protocollo (interrogazione dello stato e istruzioni di controllo):

Pianificazione Singola o Ripetuta:

Volume Singolo o Ripetuto:

Modalità Preimpostate Supportate

**Nomi Modalità **
**Valori Facoltativi **

fanLevel (livello ventola)

"low"

"medium"

"high"

thermostatMode(Modalità Termostato)

"auto"

"manual"

airConditionerMode >= 1.11.0(Modalità Condizionatore)

"cool"

"heat"

"auto"

"fan"

"dry"

fanMode >= 1.11.0(Modalità Ventilatore)

"normal"

"sleep"

"child"

horizontalAngle >= 1.11.0(Angolo Orizzontale)

"30"

"60"

"90"

"120"

"180"

"360"

verticalAngle >= 1.11.0(Angolo Verticale)

"30"

"60"

"90"

"120"

"180"

"360"

c. Descrizione dei Tag

  • La chiave speciale toggle è usata per impostare il nome della sottocomponente toggle.

  • La chiave speciale temperature_unit è usata per impostare l'unità di temperatura.

d. Codice di Errore Speciale e Descrizione

Codice Errore

Descrizione

Versione iHost

110000

Il sottodispositivo/gruppo corrispondente all'id non esiste

≥2.1.0

110001

Il gateway è nello stato di scoperta dispositivi zigbee

≥2.1.0

110002

I dispositivi in un gruppo non hanno una capability comune

≥2.1.0

110003

Numero di dispositivi errato

≥2.1.0

110004

Numero di gruppi errato

≥2.1.0

110005

Dispositivo Offline

≥2.1.0

110006

Aggiornamento stato dispositivo non riuscito

≥2.1.0

110007

Aggiornamento stato gruppo non riuscito

≥2.1.0

110008

Raggiunto il numero massimo di gruppi. Crea fino a 50 gruppi

≥2.1.0

110009

L'indirizzo IP del dispositivo camera è errato

≥2.1.0

110010

Errore di autorizzazione accesso dispositivo camera

≥2.1.0

110011

Errore indirizzo stream dispositivo camera

≥2.1.0

110012

La codifica video del dispositivo camera non è supportata

≥2.1.0

110013

Dispositivo già esistente

≥2.1.0

110014

La camera non supporta il funzionamento offline

≥2.1.0

110015

La password dell'account non è coerente con la password nell'indirizzo stream RTSP

≥2.1.0

110016

Il gateway è nello stato di scoperta camere onvif

≥2.1.0

110017

Superato il numero massimo di camere aggiunte

≥2.1.0

110018

Il percorso della camera ESP è errato

≥2.1.0

110019

Accesso all'indirizzo di servizio del dispositivo di terze parti non riuscito

≥2.1.0

e. Ricerca di Sottodispositivo

Consente agli utenti autorizzati di abilitare o disabilitare la ricerca gateway per sottodispositivi tramite questa interfaccia

  • 💡Nota: Al momento supporta solo la ricerca di sottodispositivi Zigbee.

  • 💡Nota: I sottodispositivi Zigbee saranno aggiunti automaticamente dopo la ricerca. Non è necessario utilizzare l'interfaccia "Aggiungi manualmente sottodispositivi" :::tips

  • URL:/open-api/V2/rest/devices/discovery

  • Metodo: PUT

  • Header

    • Content-Type: application/json

    • Authorization: Bearer ::: Parametri della richiesta:

Attributo

Tipo

Opzionale

Descrizione

enable

boolean

N

true (Avvia abbinamento); false (Pausa abbinamento)

type

string

N

Tipo di Ricerca: Zigbee

Risposta dati di successo: Oggetto vuoto {} :::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è passata. **Status Code: ** 200 OK ::: Esempio di risposta:

f. Aggiunta Manuale del Sottodispositivo

Consente agli utenti autorizzati di aggiungere un singolo sottodispositivo tramite questa interfaccia.

  • Nota: Al momento sono supportate solo RTSP Camera e ESP32 Camera :::tips

  • URL:/open-api/V2/rest/devices

  • Metodo:POST

  • Header

    • Content-Type: application/json

    • Authorization: Bearer ::: Parametri della richiesta:

Attributo

Tipo

Opzionale

Descrizione

name

string

N

Nome sottodispositivo

display_category

string

N

Tipo di dispositivo. Supporta solo camera.

capabilities

CapabilityObject[]

N

Elenco delle capability. Quando display_category = camera, le capability includono solo camera-stream.

protocal

string

N

Protocollo del dispositivo. RTSP; ESP32-CAM

manufacturer

string

N

Produttore.

model

string

N

Modello del dispositivo

firmware_version

string

N

Versione firmware del dispositivo

CapabilityObject

Attributo

Tipo

Opzionale

Descrizione

capability

string

N

Nome della capability. Supporta solo "camera-stream"

permission

string

N

Permesso del dispositivo. Supporta solo read.

configuration

CameraStreamConfigurationObject

Y

Configurazione dello stream della camera.

SettingsObject

Attributo

Tipo

Opzionale

Descrizione

streamSetting

StreamSettingObject

N

Configurazione del servizio di streaming

StreamSettingObject

Attributo

Tipo

Opzionale

Descrizione

type

string

N

Configurazione del servizio di streaming

permission

string

N

Permesso della capability. Supporta solo "11" (modificabile).

campo value

StreamSettingValueObject

N

Valori di configurazione specifici

StreamSettingValueObject

Attributo

Tipo

Opzionale

Descrizione

stream_url

string

N

Formato URL dello stream

Formato:<schema>://<hostname>:<port>/<username>:<password>@<service_path>

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 tal caso, è possibile omettere <username> e <password> campi dall'URL.

Risposta dati di successo:

Attributo

Tipo

Opzionale

Descrizione

serial_number

string

N

Numero di serie univoco del dispositivo

:::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è passata. **Status Code: **200 OK ::: Esempio di risposta:

Risposta dati di errore: Oggetto vuoto :::tips Condizione

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

  2. Dispositivo già esistente

  3. Se un singolo dispositivo non viene aggiunto correttamente, vengono restituiti tutti i dispositivi non aggiunti.

Codice Stato: 200 OK Codice di errore: ● 110009 Errore indirizzo IP camera ● 110010 Errore autorizzazione accesso camera ● 110011 Errore indirizzo stream camera ● 110012 La codifica video della camera non è supportata ● 110013 Dispositivo già esistente ::: Esempio di risposta:

g. Ottieni Elenco dei Sottodispositivi

Consente agli utenti autorizzati di ottenere l'elenco dei sottodispositivi del gateway tramite questa interfaccia. :::tips

  • URL:/open-api/V2/rest/devices

  • Metodo: GET

  • Header

    • Content-Type: application/json

    • Authorization: Bearer ::: Parametri della richiesta: nessuno Risposta dati di successo:

Attributo

Tipo

Opzionale

Descrizione

device_list

ResponseDeviceObject[]

N

Elenco dispositivi

ResponseDeviceObject

Attributo

Tipo

Opzionale

Descrizione

serial_number

string

N

Numero di serie univoco del dispositivo

third_serial_number

string

"N" quando è connesso un dispositivo di terze parti, altrimenti "Y"

Numero di serie univoco del dispositivo di terze parti

service_address

string

"N" quando è connesso un dispositivo di terze parti, altrimenti "Y"

Indirizzo del servizio di terze parti

name

string

N

Nome del dispositivo; se non viene rinominato, sarà visualizzato dal front-end secondo le regole di visualizzazione predefinite.

manufacturer

string

N

Produttore

model

string

N

Modello del dispositivo

firmware_version

string

N

Versione firmware. Può essere una stringa vuota.

hostname

string

Y

Hostname del dispositivo

mac_address

string

Y

Indirizzo MAC del dispositivo

app_name

string

Y

Il nome dell'applicazione a cui appartiene. Se app_name è stato compilato durante l'ottenimento del certificato open interface, tutti i dispositivi successivamente connessi tramite il certificato saranno scritti in questo campo.

display_category

string

N

Categoria dispositivo

capabilities

CapabilityObject[]

N

Capability del dispositivo

protocol

string

"N" quando è connesso un dispositivo di terze parti, altrimenti "Y"

Protocollo del dispositivo: zigbee, onvif, rtsp, esp32-cam

state

object

Y

Oggetto stato del dispositivo. Per esempi di stato di diverse capacità, consultare 【Support Device Capabilities】

tag

object

Y

Chiave-valore in formato JSON, informazioni personalizzate del dispositivo. La funzione è la seguente:- Utilizzato per memorizzare i canali del dispositivo- Utilizzato per memorizzare le unità di temperatura- Informazioni personalizzate per altri dispositivi di terze parti

online

boolean

N

Stato online: True per onlineFalse è offline

sottorete

boolean

Y

Se è nella stessa sottorete del gateway

CapabilityObject 💡Nota: Si prega di controllare gli esempi di capacità dispositivo supportate per [Supported Device Capabilities].

Attributo

Tipo

Opzionale

Descrizione

capability

string

N

Nome della capacità. Per dettagli, consultare [Supported Device Capabilities]

permission

string

N

Permesso della capacità. I valori possibili sono "read" (leggibile), "write" (scrivibile), "readWrite" (leggibile e scrivibile).

configuration

object

Y

Informazioni di configurazione della capacità. Attualmente viene utilizzato camera-stream, controllare [Supported Device Capabilities]

name

string

Y

Il campo name in toggle. Il numero del sotto-canale usato per identificare dispositivi multi-canale. Ad esempio, se name è 1, significa canale 1.

:::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è passata. **Status Code: **200 OK ::: Esempio di risposta:

h. Aggiorna informazioni o stato dispositivo specificato

Consente agli utenti autorizzati di modificare le informazioni di base del sottodispositivo e inviare comandi di controllo tramite questa interfaccia. :::tips

  • URL:/open-api/V2/rest/devices/{serial_number}

  • Metodo:PUT

  • Header

    • Content-Type: application/json

    • Authorization: Bearer ::: Parametri della richiesta:

Attributo

Tipo

Opzionale

Descrizione

name

string

Y

Nome del dispositivo

tag

object

Y

Chiave-valore in formato JSON, informazioni personalizzate del dispositivo.

state

object

Y

Oggetto stato del dispositivo. Per esempi di stato di diverse capacità, controllare [Support Device Capabilities]

configuration

object

Y

Informazioni di configurazione della capacità, attualmente solo la capacità camera_stream supporta la modifica.

Risposta dati riuscita: :::tips Condizioni: I parametri della richiesta sono validi e la verifica dell'identità dell'utente è superata. **Codice di Stato: **200 OK Codice Errore:

  • 110000 Il sottodispositivo/gruppo corrispondente all'id non esiste ::: Esempio di risposta:

i. Elimina Sottodispositivo

Consente agli utenti autorizzati di eliminare i sottodispositivi tramite questa interfaccia. :::tips

  • URL:/open-api/V2/rest/devices/{serial_number}

  • Metodo:DELETE

  • Header

    • Content-Type: application/json

    • Autorization: Bearer ::: Parametri della richiesta:

Attributo

Tipo

Opzionale

Descrizione

name

string

Y

Nome del dispositivo.

tag

object

Y

Coppie chiave-valore in formato JSON utilizzate per memorizzare i nomi dei canali del dispositivo e altre informazioni sui sottodispositivi.

state

object

Y

Modifica lo stato del dispositivo; per dettagli specifici del protocollo fare riferimento a "Supported Device Capabilities."

capabilities

CapabilityObject []

Y

Informazioni di configurazione della capacità; tutte le capacità che supportano l'impostazione delle configurazioni possono essere modificate. Nota che i permessi non possono essere cambiati.

Risposta dati riuscita: :::tips Condizioni: I parametri della richiesta sono validi e la verifica dell'identità dell'utente è superata. **Codice di Stato: **200 OK Codici di errore:

  • 110000: Il sottodispositivo/gruppo corrispondente all'ID non esiste.

  • 110006: Impossibile aggiornare lo stato del dispositivo.

  • 110019: Impossibile accedere all'indirizzo del servizio del dispositivo di terze parti.

  • 110024: Impossibile aggiornare la configurazione del dispositivo. ::: Esempio di risposta:

j. Elimina Sott-Dispositivo

Consente agli utenti autorizzati di eliminare i sottodispositivi tramite questa interfaccia. :::tips

  • URL/open-api/v2/rest/devices/{serial_number}

  • 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. **Status Code: **200 OK ::: Esempio di risposta:

k. Query Stato Dispositivo

Consente agli utenti autorizzati di interrogare lo stato del dispositivo tramite questa interfaccia. :::tips

  • URL/open-api/v2/rest/devices/:serial_number/query-state/{capability}

  • Metodo:POST

  • Header

    • Content-Type: application/json

    • Authorization: Bearer ::: Parametri della richiesta:

Attributo

Tipo

Opzionale

Descrizione

query_state

object

N

Interroga lo stato del dispositivo; per dettagli specifici del protocollo fare riferimento a "Supported Device Capabilities."

Risposta dati riuscita: :::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è passata. **Status Code: **200 OK ::: Esempio di risposta:

3.4 Gestione della Sicurezza

a. Ottieni Elenco Sicurezza

Consente agli utenti autorizzati di modificare le impostazioni del gateway tramite questa interfaccia. :::tips

  • URL/open-api/v2/rest/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 sicurezza

enable

bool

N

Se abilitato

  • true Abilitato

  • false Disabilitato |

:::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è passata. **Status Code: **200 OK ::: Esempio di risposta:

b. Abilita Modalità di Sicurezza Specificata

Consente agli utenti autorizzati di abilitare una modalità di sicurezza specificata tramite questa interfaccia. :::tips

  • URL/open-api/v2/rest/security/{security_id}/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 è passata. **Status Code: **200 OK ::: Esempio di risposta:

c. Disabilita Modalità di Sicurezza Specificata

Consente agli utenti autorizzati di disabilitare una modalità di sicurezza specificata tramite questa interfaccia. :::tips

  • URL/open-api/v2/rest/security/{security_id}/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 è passata. **Status Code: **200 OK ::: Esempio di risposta:

d. Abilitazione Rapida della Sicurezza

Consente agli utenti autorizzati di abilitare la modalità di configurazione di sicurezza con un clic tramite questa interfaccia. :::tips

  • URL/open-api/v2/rest/security/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 è passata. **Status Code: **200 OK ::: Esempio di risposta:

e. Disabilita Sicurezza

Consente agli utenti autorizzati di disabilitare la sicurezza tramite questa interfaccia. :::tips

  • URL/open-api/v2/rest/security/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 è passata. **Status Code: **200 OK ::: Esempio di risposta:

4. Accesso Dispositivi di Terze Parti

4.1 Istruzioni di Accesso

Accesso Dispositivo

Accesso Gateway di Terze Parti

Passi di accesso

  1. Determinare la classificazione del dispositivo nel gateway. Per i dettagli consultare [Supported Device Type].

  2. Determinare le capacità a cui il dispositivo può accedere. Per i dettagli consultare [Supported Device Capabilities].

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

    1. Attenzione: È necessario fornire l'indirizzo del servizio per ricevere le istruzioni emesse dal gateway, che viene utilizzato per ricevere i comandi di controllo del dispositivo emessi dal gateway.

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

  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 aperte comuni correlate al dispositivo possono essere utilizzate normalmente.

  • Selezionare la categoria di dispositivo appropriata. La classificazione influenzerà il risultato finale della visualizzazione dell'interfaccia utente dopo che il dispositivo è connesso al gateway.

  • Scegliere la capacità di dispositivo corretta. L'elenco delle capacità determinerà lo stato del protocollo di stato del dispositivo.

Processo del Programma

a. Accesso Dispositivo

b. Accesso Gateway di Terze Parti

4.2 Esempio di Accesso

Interruttore, Presa

Sincronizza dispositivi di terze parti

Segnala lo stato del dispositivo

Segnala offline/online

Ricevi le istruzioni relative al controllo del dispositivo da parte del gateway

Interroga dispositivo

4.3 Web API

Interfaccia di richiesta per terze parti verso il gateway

Formato di richiesta

Consente agli utenti autorizzati di inviare richieste di evento al gateway tramite questa interfaccia. :::tips

  • URL:/open-api/V2/rest/thirdparty/event

  • Metodo:POST

  • Header

    • Content-Type: application/json

    • Authorization: Bearer ::: Parametri della richiesta:

Attributo

Tipo

Opzionale

Descrizione

evento

EventObject

N

Informazioni sulla struttura dell'oggetto evento della richiesta

EventObject

Attributo

Tipo

Opzionale

Descrizione

header

HeaderObject

N

Informazioni sulla struttura dell'intestazione della richiesta

endpoint

EndpointObject

Y

Informazioni sulla struttura dell'endpoint della richiesta Nota: Questo campo è vuoto quando si sincronizza un nuovo elenco di dispositivi.

payload

PayloadObject

N

Informazioni sulla struttura del payload della richiesta

HeaderObject

Attributo

Tipo

Opzionale

Descrizione

name

string

N

Nome della richiesta. parametro opzionale: DiscoveryRequest: Sincronizza nuovi dispositivi DeviceStatesChangeReport: Report di aggiornamento stato dispositivo DeviceOnlineChangeReport: Report stato online del dispositivo

message_id

string

N

ID messaggio della richiesta, UUID_V4

version

string

N

Numero di versione del protocollo della richiesta. Attualmente fissato a 1

EndpointObject

Attributo

Tipo

Opzionale

Descrizione

serial_number

string

N

Numero di serie univoco del dispositivo

third_serial_number

string

N

Numero di serie univoco del dispositivo di terze parti

tag

object

Y

Chiave-valore in formato JSON, informazioni personalizzate del dispositivo. [Funzione di gestione dispositivo] - [Descrizione dei tag]

PayloadObject In base al diverso header.name ha diverse strutture di richiesta.

Formato di risposta

:::tips **Codice di Stato: **200 OK Parametri di risposta: :::

Attributo

Tipo

Opzionale

Descrizione

header

HeaderObject

N

Informazioni sulla struttura dell'intestazione di risposta

payload

PayloadObject

N

Informazioni sulla struttura del payload di risposta

HeaderObject

Attributo

Tipo

Opzionale

Descrizione

name

string

N

Nome dell'intestazione di risposta. parametri opzionali:Response: Risposta riuscita ErrorResponse: Risposta di errore

message_id

string

N

ID messaggio dell'intestazione di risposta, UUID_V4. Passare qui l'header.message_id del messaggio di richiesta *Se la richiesta in ingresso non contiene message_id, questo campo sarà una stringa vuota nella risposta.

version

string

N

- Numero di versione del protocollo della richiesta. Attualmente fissato a 1.

Risposta riuscita--PayloadObject :

A seconda del tipo di richiesta, la struttura della risposta è diversa. Per i dettagli, fare riferimento al documento di istruzioni della richiesta specifica.

Risposta di errore--PayloadObject:

Attributo

Tipo

Opzionale

Descrizione

type

string

N

Tipi di errore:

  • INVALID_PARAMETERS: Errore nei parametri

  • AUTH_FAILURE: Errore di autorizzazione

  • INTERNAL_ERROR: Errore interno del servizio | | descrizione | stringa | N | Descrizione dell'errore |

DiscoveryRequest Sincronizza un nuovo elenco di dispositivi

  • Nota: Dopo che il dispositivo è sincronizzato nel gateway, è online di default, cioè online=true. I successivi cambiamenti di online dipendono completamente dalla sincronizzazione con la terza parte tramite l'interfaccia DeviceOnlineChangeReport.

Parametri della richiesta: EndpointObject**:**Nessuno PayloadObject:

Attributo

Tipo

Opzionale

Descrizione

endpoints

EndpointObject[]

N

Elenco dispositivi

EndpointObject:

Attributo

Tipo

Opzionale

Descrizione

third_serial_number

string

N

Numero di serie univoco del dispositivo di terze parti

name

string

N

Nome del dispositivo

display_category

string

N

Categoria del dispositivo. Consultare [Supported Device Type] per dettagli. *I dispositivi di terze parti non supportano l'aggiunta di telecamere al momento.

capabilities

CapabilityObject[]

N

Elenco delle capacità

state

object

N

Informazioni di stato iniziali

manufacturer

string

N

Produttore

model

string

N

Modello del dispositivo

tag

object

Y

Chiave-valore in formato JSON, informazioni personalizzate del dispositivo:Usato per memorizzare i canali del dispositivoUsato per memorizzare le unità di temperaturaAltri dati personalizzati di terze parti

firmware_version

string

N

Versione del firmware

service_address

string

N

Indirizzo del servizio. Per esempio http://192.168.31.14/service_addressarrow-up-right

Esempio di richiesta :

Parametri di risposta: PayloadObject:

Attributo

Tipo

Opzionale

Descrizione

endpoints

EndpointObject[]

N

Elenco dispositivi

EndpointObject:

Attributo

Tipo

Opzionale

Descrizione

serial_number

string

N

Numero di serie univoco del dispositivo

third_serial_number

string

N

Numero di serie univoco del dispositivo di terze parti

Esempio di risposta corretta:

Esempio di risposta di errore:

DeviceStatesChangeReport Report di cambiamento dello stato del dispositivo

  • Nota: Rapporti di stato ripetuti possono attivare falsamente scene associate.

Parametri della richiesta: PayloadObject:

Attributo

Tipo

Opzionale

Descrizione

state

object

N

Stato del dispositivo, Vedere [Supported device cabilities] per dettagli

Esempio di richiesta :

Parametri di risposta: PayloadObject: Oggetto Vuoto Esempio di risposta riuscita:

DeviceOnlineChangeReport Report sullo stato online del dispositivo

  • Nota: Rapporti di stato ripetuti possono attivare falsamente scene associate.

Parametri della richiesta: PayloadObject:

Attributo

Tipo

Opzionale

Descrizione

online

boolean

N

Stato online del dispositivo true: Online

false: Offline

Esempio di richiesta :

Parametri di risposta: PayloadObject: Oggetto Vuoto Esempio di risposta riuscita:

DeviceInformationUpdatedReport Report di Aggiornamento Informazioni Dispositivo

  • Nota: L'aggiornamento può influire su scene esistenti o funzioni di sicurezza.

Parametri della richiesta: PayloadObject:

Attributo

Tipo

Opzionale

Descrizione

capabilities

| CapabilityObject[]

| N

| Elenco delle capacità. I dettagli possono essere trovati nella sezione capacità dispositivo supportate. **Nota: **Questo parametro aggiornerà solo il campo value del impostazione chiave all'interno del CapabilityObject, e gli aggiornamenti sono consentiti solo se il permission per la impostazione chiave è 11 o 01. Per la definizione strutturale specifica del impostazione in CapabilityObject, fare riferimento alla descrizione dettagliata nella sezione 2.3 Categorie di visualizzazione dispositivo & Capacità dispositivo. | | tags

| oggetto

| Y

| Chiave-valore in formato JSON, informazioni personalizzate del dispositivo.

  • Può essere usato per memorizzare i canali del dispositivo

  • Può essere usato per memorizzare le unità di temperatura

  • Altri dati personalizzati di terze parti |

Esempio di richiesta :

parametri di risposta: PayloadObject: Oggetto Vuoto Esempio di risposta riuscita:

Il gateway invia l'interfaccia di istruzione tramite l'indirizzo del servizio del dispositivo

  • Nota:

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

Formato della richiesta

Il gateway invia istruzioni alla terza parte tramite l'interfaccia dell'indirizzo del servizio del dispositivo. :::tips

  • URL

  • Metodo:POST

  • Header

    • Content-Type: application/json ::: Parametri della richiesta:

Attributo

Tipo

Opzionale

Descrizione

directive

DirectiveObject

N

Informazioni sulla struttura dell'oggetto direttiva

DirectiveObject

Attributo

Tipo

Opzionale

Descrizione

header

HeaderObject

N

Informazioni sulla struttura dell'intestazione della richiesta

endpoint

EndpointObject

N

Informazioni sulla struttura dell'endpoint della richiesta

payload

PayloadObject

N

Informazioni sulla struttura del payload della richiesta

HeaderObject

Attributo

Tipo

Opzionale

Descrizione

name

string

N

Nome della richiesta. Parametri opzionali:UpdateDeviceStates: Aggiorna stati del dispositivo

message_id

string

N

ID messaggio della richiesta, UUID_V4

version

string

N

Numero di versione del protocollo della richiesta. Attualmente fissato a 1.

EndpointObject

Attributo

Tipo

Opzionale

Descrizione

serial_number

string

N

Numero di serie univoco del dispositivo

third_serial_number

string

N

Numero di serie univoco del dispositivo di terze parti

tag

object

N

Chiave-valore in formato JSON, informazioni personalizzate del dispositivo. [Funzione di gestione dispositivo] - [Descrizione dei tag]

PayloadObject: In base a diversi header.name, esiste una struttura di richiesta specifica per ciascuno.

Esempio di richiesta :

Formato di risposta

:::tips **Codice di Stato HTTP: **200 OK Attributo di risposta HTTP: :::

Attributo

Tipo

Opzionale

Descrizione

evento

EventObject

N

Informazioni sulla struttura dell'evento di risposta

EventObject

Attributo

Tipo

Opzionale

Descrizione

header

HeaderObject

N

Informazioni sulla struttura dell'intestazione della richiesta

payload

PayloadObject

N

Informazioni sulla struttura del payload della richiesta

HeaderObject

Attributo

Tipo

Opzionale

Descrizione

name

string

N

Nome dell'intestazione di risposta. Parametro opzionale: UpdateDeviceStatesResponse: Risposta aggiornamento stati dispositivo ErrorResponse: Risposta di errore

message_id

string

N

ID messaggio dell'intestazione di risposta, UUID_V4. Passare qui l'header.message_id del messaggio di richiesta

version

string

N

Numero di versione del protocollo della richiesta. Attualmente fissato a 1.

Risposta riuscita--PayloadObject:

A seconda del tipo di richiesta, la struttura della risposta è diversa. Per i dettagli, fare riferimento al documento di istruzioni della richiesta specifica.

Risposta di errore--PayloadObject:

Attributo

Tipo

Opzionale

Descrizione

type

string

N

Tipi di errore:

  • ENDPOINT_UNREACHABLE: Dispositivo irraggiungibile o offline

  • ENDPOINT_LOW_POWER: Il dispositivo è in modalità a basso consumo e non può essere controllato

  • INVALID_DIRECTIVE: Direttiva anomala dal gateway

  • NO_SUCH_ENDPOINT: Il dispositivo non esiste

  • NOT_SUPPORTED_IN_CURRENT_MODE: La modalità corrente non supporta l'operazione

  • INTERNAL_ERROR: Errore interno del servizio

  • REMOTE_KEY_CODE_NOT_LEARNED: Codice tasto del telecomando non appreso |

:::tips Condizioni: I parametri della richiesta sono validi. **Codice di Stato: **200 OK Parametri di risposta: :::

UpdateDeviceStates

Parametri della richiesta: PayloadObject:

Attributo

Tipo

Opzionale

Descrizione

state

object

N

Stato del dispositivo, Vedere [Supported device cabilities] per dettagli.

Esempio di richiesta :

Parametri di risposta: PayloadObject:Oggetto Vuoto Esempio di Risposta Riuscita

QueryDeviceStates

Parametri della richiesta: PayloadObject:

Attributo

Tipo

Opzionale

Descrizione

state

object

N

Stato del dispositivo, Vedere [Supported device cabilities] per dettagli.

Esempio di richiesta :

Parametri di risposta: PayloadObject:

Attributo

Tipo

Opzionale

Descrizione

state

object

N

Stato del dispositivo, Vedere [Supported device cabilities] per dettagli.

Esempio di risposta:

ConfigureDeviceCapabilities

Parametri della richiesta: PayloadObject:

Attributo

Tipo

Opzionale

Descrizione

capabilities

CapabilityObject[]

N

Elenco delle capacità. I dettagli possono essere visti nella parte delle capacità dispositivo supportate. Nota, il campo permission non può essere modificato, passare lo stesso valore durante la sincronizzazione.

Esempio di richiesta :

Parametri di risposta: PayloadObject:Oggetto Vuoto Esempio di Risposta Riuscita

5. Eventi inviati dal server

Descrizione dell'interfaccia MDN EventSource:https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_eventsarrow-up-right

5.1 Istruzione

Il gateway supporta la spinta di messaggi al client usando SSE (Server-sent events). Il client può monitorare i messaggi SSE dopo aver ottenuto le credenziali di accesso e può analizzare il contenuto dei messaggi push secondo il protocollo di notifica eventi dell'interfaccia di sviluppo dopo aver ricevuto i messaggi inviati dal gateway. Si noti che il gateway utilizza attualmente il protocollo HTTP1.1, quindi SSE lato browser avrà un limite massimo di non più di 6 connessioni (Istruzioni specifiche possono essere trovate nella descrizione dell'interfaccia MDN EventSource.)

5.2 Formato Comune

:::tips

  • URL:/open-api/V2/sse/bridge

  • MetodoGET ::: Parametri della richiesta:

Nome
Tipo
Opzionale
Descrizione

access_token

string

N

Token di Accesso

Nota: Quando si richiede una connessione SSE, il gateway verificherà l'access_token, e restituirà un errore di autenticazione se non è valido. { "error": 401, "data": {}, "message": "invalid access_token"}

## Per esempio: Nome Modulo: device Versione: 1,v2,v3 Tipo Messaggio: addDevice

Esempio:

5.3 Modulo Dispositivo

a. Evento Aggiungi Dispositivo

:::tips Nome Modulo:device Versione:v2 Tipo Messaggio:addDevice event.data parametri: :::

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 sul Dispositivo

payload

oggetto。 Struttura uguale allo stato del dispositivo

N

Dati dello 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 aperte, 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 sul 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 aperte, questo campo è obbligatorio.

DeviceChangeObject

Nome
Tipo
Opzionale
Descrizione

name

string

N

Nome del Dispositivo

capabilities

CapabilityObject []

Y

Elenco delle capacità del dispositivo.

tag

object

Y

tagobject | Nullable | Coppie chiave-valore in formato JSON per informazioni dispositivo personalizzate.

  • Può essere usato per memorizzare i canali del dispositivo.

  • Può essere usato per memorizzare le unità di temperatura.

  • Per altri dati personalizzati di terze parti. |

Esempio:

d. Evento Elimina Dispositivo

:::tips Nome Modulo:device Versione:v2 Tipo Messaggio:deleteDevice event.data parametri: :::

** Nome **
** Tipo **
** Opzionale**
** Descrizione **

endpoint

EndpointObject

N

Informazioni sul 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 aperte, questo campo è obbligatorio.

Esempio:

e. Evento Aggiorna Online Dispositivo

:::tips Nome Modulo:device Versione:v2 Tipo Messaggio:updateDeviceOnline event.data parametri: :::

Nome
Tipo
Opzionale
Descrizione

endpoint

EndpointObject

N

Informazioni sul 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 aperte, 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 sul 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 disattivazione

ArmStateObject:

Attributo

Tipo

Opzionale

Descrizione

arm_state

string

N

  • arming | Armato

  • disarming | Disarmato | | dettaglio | DetailObject | N | Dettagli di armamento/disarmamento |

DetailObject:

Attributo

Tipo

Opzionale

Descrizione

sid

int

N

id modalità di sicurezza

name

string

N

Nome sicurezza

Esempio

6. TTS (Funzione del motore Text-to-Speech)

6.1 Istruzione

Ruolo chiave

  • Fornitore del servizio TTS: Il fornitore del servizio del motore TTS è responsabile della registrazione del motore TTS sul gateway e della fornitura dei servizi TTS

  • Server Gateway:iHost

  • Client Open API del Gateway

6.1.1 Registrazione del servizio motore TTS

  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 servizio server_address, e la comunicazione successiva tra il gateway e il fornitore del servizio TTS avverrà tramite l'indirizzo server_address), e assegnerà l'ID del servizio del motore TTS all'interno del gateway.

6.1.2 Ottenere l'elenco degli audio sintetizzati

  1. 【Client Open API del Gateway】Chiama l'interfaccia per ottenere l'elenco dei servizi motore TTS registrati. È possibile ottenere l'elenco corrente dei motori TTS registrati (incluso l'ID del motore TTS assegnato dal gateway).

  2. 【Client Open API del Gateway】Chiama l'interfaccia per ottenere l'elenco degli audio di un motore TTS specificato. Il gateway invierà un'istruzione sincrona di elenco audio al Fornitore del servizio TTS specificato e restituirà il risultato.

6.1.3 Sintesi vocale specificando un motore di sintesi

  1. 【Client Open API del Gateway】Chiama l'interfaccia per ottenere l'elenco dei servizi motore TTS registrati. È possibile ottenere l'elenco corrente dei motori TTS registrati (incluso l'ID del motore TTS assegnato dal gateway).

  2. 【Client Open API del Gateway】Chiama l'interfaccia per ottenere l'elenco degli audio di un motore TTS specificato. Il gateway invierà un'istruzione sincrona di elenco audio al Fornitore del servizio TTS specificato e restituirà il risultato.

6.1.4 Sintetizzare audio e riprodurre il parlato TTS.

  1. 【Client Open API del Gateway】Chiama l'interfaccia per ottenere l'elenco dei servizi motore TTS registrati. È possibile ottenere l'elenco corrente dei motori TTS registrati (incluso l'ID del motore TTS assegnato dal gateway).

  2. 【Client Open API del Gateway】Chiama l'interfaccia per ottenere l'elenco degli audio di un motore TTS specificato. Il gateway invierà un'istruzione sincrona di elenco audio al Fornitore del servizio TTS specificato e restituirà il risultato. (incluso l'indirizzo del file audio TTS)

  3. 【Client Open API del Gateway】Registra l'indirizzo del file audio TTS dal risultato restituito nel passaggio precedente, chiama l'interfaccia di riproduzione del file audio e lo riproduce tramite il gateway.

6.2 Modulo motore TTS

6.2.1 Capacità aperte del Gateway

a. Ottenere l'elenco dei servizi motore TTS registrati

:::tips

  • URL/open-api/V2/rest/tts/engines

  • MetodoGET

  • Header

    • Content-Type: application/json

    • Autorizzazione: Bearer ::: Parametri della richiesta: nessuno Risposta dati corretta:

Attributo

Tipo

Opzionale

Descrizione

engines

EngineObject []

N

Elenco dei motori TTS registrati

Struttura EngineObject

Attributo

Tipo

Opzionale

Descrizione

id

string

N

ID del motore assegnato dal gateway

name

string

N

Nome del servizio del motore TS

:::tips Condizioni: I parametri della richiesta sono validi e la verifica dell'identità dell'utente è superata. **Codice di stato: **200 OK Esempio di risposta:: :::

b. Ottenere l'elenco degli audio di un motore TTS specificato

:::tips

  • URL/open-api/V2/rest/tts/engine/{id}/audio-list

  • MetodoGET

  • Header

    • Content-Type: application/json

    • Autorizzazione: Bearer ::: Parametri della richiesta: nessuno Risposta dati corretta:

Attributo

Tipo

Opzionale

Descrizione

audio_list

AudioObject []

N

Elenco audio

Struttura AudioObject

Attributo

Tipo

Opzionale

Descrizione

url

string

N

URL del file audio, per esempio:

https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3

label

string

Y

Etichetta del file audio

:::tips Condizioni: I parametri della richiesta sono validi e la verifica dell'identità dell'utente è superata. **Codice di stato: **200 OK **Codice di errore: **

  • 190000 Il motore sta funzionando in modo anomalo

Esempio di risposta:: :::

c. Eseguire la sintesi vocale usando il motore TTS specificato

:::tips

  • URL/open-api/V2/rest/tts/engine/{id}/synthesize

  • MetodoPOST

  • Header

    • Content-Type: application/json

    • Autorizzazione: Bearer ::: Parametri della richiesta:

Attributo

Tipo

Opzionale

Descrizione

text

string

N

Testo usato per sintetizzare l'audio

label

string

Y

Etichetta del file audio

language

string

Y

Campo trasparente. Codice lingua opzionale per la richiesta di sintesi vocale. L'elenco specifico dei codici lingua supportati è fornito dal fornitore del servizio motore TTS. Si noti che il servizio del motore TTS deve supportare una lingua predefinita per la sintesi vocale, il che significa che se la lingua non viene fornita, verrà utilizzata la lingua predefinita del motore per la sintesi.

options

object

Y

Campo trasparente. Viene utilizzato per trasmettere i parametri di configurazione necessari per la sintesi al servizio del motore di sintesi vocale TTS.

Risposta dati corretta:

Attributo

Tipo

Opzionale

Descrizione

audio

AudioObject

N

Elenco audio

Struttura AudioObject

Attributo

Tipo

Opzionale

Descrizione

url

string

N

URL del file audio, per esempio:

https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3

label

string

Y

Etichetta del file audio

:::tips Condizioni: I parametri della richiesta sono validi e la verifica dell'identità dell'utente è superata. **Codice di stato: **200 OK **Codice di errore: **

  • 190000 Il motore sta funzionando in modo anomalo

Esempio di risposta:: :::

6.2.2 Comunicazione tra Gateway e Servizio TTS

a. Registrazione del servizio motore TTS

Inviare richiesta al gateway da parte del Fornitore del servizio TTS

:::tips

  • URL/open-api/V2/rest/thirdparty/event

  • MetodoPOST

  • Header

    • Content-Type: application/json

    • Autorizzazione: Bearer ::: Parametri della richiesta:

Attributo

Tipo

Opzionale

Descrizione

evento

EventObject

N

Struttura delle informazioni dell'oggetto evento della richiesta

EventObject

Attributo

Tipo

Opzionale

Descrizione

header

HeaderObject

N

Informazioni sulla struttura dell'intestazione della richiesta

payload

PayloadObject

N

Informazioni sulla struttura del payload della richiesta

HeaderObject

Attributo

Tipo

Opzionale

Descrizione

name

string

N

Nome della richiesta. Parametro opzionale.

  • RegisterTTSEngine | | message_id | string | N | ID del messaggio della richiesta, UUID_V4 | | version | string | N | Numero di versione del protocollo della richiesta. Attualmente fissato a 1 |

PayloadObject

Attributo

Tipo

Opzionale

Descrizione

service_address

string

N

Indirizzo del servizio. Per esempio, http:///

name

string

N

Nome del servizio

Esempio di richiesta:

**Parametri di risposta corretti: **

Attributo

Tipo

Opzionale

Descrizione

header

HeaderObject

N

Informazioni sulla struttura dell'intestazione della richiesta

payload

PayloadObject

N

Informazioni sulla struttura del payload della richiesta

HeaderObject

Attributo

Tipo

Opzionale

Descrizione

name

string

N

Nome dell'intestazione di risposta. Parametro opzionale:

  • Risposta (Risposta riuscita)

  • ErrorResponse (Risposta di errore) | | message_id | string | N | ID del messaggio dell'intestazione di risposta, UUID_V4. Messaggio di richiesta in ingresso qui: header.message_id | | version | string | N | Numero di versione del protocollo della richiesta. Attualmente fissato a 1 |

PayloadObject

Attributo

Tipo

Opzionale

Descrizione

engine_id

string

N

ID del motore assegnato dal gateway

:::tips Condizioni: I parametri della richiesta sono validi e la verifica dell'identità dell'utente è superata. **Codice di stato: **200 OK Esempio di risposta:: ::: Esempio di risposta corretta::

**Parametri di risposta anomala: **

Attributo

Tipo

Opzionale

Descrizione

type

string

N

Tipo di errore

  • INVALID_PARAMETERS (Errore nei parametri)

  • AUTH_FAILURE (Errore di autenticazione)

  • INTERNAL_ERROR (Errore interno del servizio) | | description | string | N | Descrizione dell'errore |

Esempio di risposta di errore::

b. Comando di sincronizzazione della lista audio

Inviare il comando al Fornitore del servizio TTS dal gateway.

:::tips

  • URL<service address>

  • 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 fissato a 1 |

Esempio di richiesta:

**Parametri di risposta corretti: **

Attributo

Tipo

Opzionale

Descrizione

header

HeaderObject

N

Informazioni sulla struttura dell'intestazione della richiesta

payload

PayloadObject

N

Informazioni sulla struttura del payload della richiesta

HeaderObject

Attributo

Tipo

Opzionale

Descrizione

name

string

N

Nome dell'intestazione di risposta. Parametro opzionale:

  • Risposta (Risposta riuscita)

  • ErrorResponse (Risposta di errore) | | message_id | string | N | ID del messaggio dell'intestazione di risposta, UUID_V4. Messaggio di richiesta in ingresso qui: header.message_id | | version | string | N | Numero di versione del protocollo della richiesta. Attualmente fissato a 1 |

PayloadObject:

Attributo

Tipo

Opzionale

Descrizione

audio_list

AudioObject []

N

Elenco audio TTS

Struttura AudioObject

Attributo

Tipo

Opzionale

Descrizione

url

string

N

URL del file audio, per esempio:

https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3

label

string

Y

Etichetta del file audio

:::tips Condizioni: I parametri della richiesta sono validi e la verifica dell'identità dell'utente è superata. **Codice di stato: **200 OK Esempio di risposta:: ::: Esempio di risposta corretta::

**Parametri di risposta anomala: **

Attributo

Tipo

Opzionale

Descrizione

type

string

N

Tipo di errore

  • INVALID_PARAMETERS (Errore nei parametri)

  • AUTH_FAILURE (Errore di autenticazione)

  • INTERNAL_ERROR (Errore interno del servizio) | | description | string | N | Descrizione dell'errore |

Esempio di risposta di errore::

c. Comando di sintesi vocale

Inviare il comando al Fornitore del servizio TTS dal gateway.

:::tips

  • URL<service address>

  • 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 fissato a 1 |

PayloadObject

Attributo

Tipo

Opzionale

Descrizione

text

string

N

Testo usato per sintetizzare l'audio

label

string

Y

Etichetta del file audio

language

string

Y

Campo trasparente. Codice lingua opzionale per la richiesta di sintesi vocale. L'elenco specifico dei codici lingua supportati è fornito dal fornitore del servizio motore TTS. Si noti che il servizio del motore TTS deve supportare una lingua predefinita per la sintesi vocale, il che significa che se la lingua non viene fornita, verrà utilizzata la lingua predefinita del motore per la sintesi.

options

object

Y

Campo trasparente. Viene utilizzato per trasmettere i parametri di configurazione necessari per la sintesi al servizio del motore di sintesi vocale TTS.

Esempio di richiesta:

**Parametri di risposta corretti: **

Attributo

Tipo

Opzionale

Descrizione

header

HeaderObject

N

Informazioni sulla struttura dell'intestazione della richiesta

payload

PayloadObject

N

Informazioni sulla struttura del payload della richiesta

HeaderObject

Attributo

Tipo

Opzionale

Descrizione

name

string

N

Nome dell'intestazione di risposta. Parametro opzionale:

  • Risposta (Risposta riuscita)

  • ErrorResponse (Risposta di errore) | | message_id | string | N | ID del messaggio dell'intestazione di risposta, UUID_V4. Messaggio di richiesta in ingresso qui: header.message_id | | version | string | N | Numero di versione del protocollo della richiesta. Attualmente fissato a 1 |

PayloadObject

Attributo

Tipo

Opzionale

Descrizione

audio

AudioObject

N

Audio TTS

Struttura AudioObject

Attributo

Tipo

Opzionale

Descrizione

url

string

N

URL del file audio, per esempio:

https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3

label

string

Y

Etichetta del file audio

:::tips Condizioni: I parametri della richiesta sono validi e la verifica dell'identità dell'utente è superata. **Codice di stato: **200 OK Esempio di risposta:: ::: Esempio di risposta corretta::

**Parametri di risposta anomala: **

Attributo

Tipo

Opzionale

Descrizione

type

string

N

Tipo di errore

  • INVALID_PARAMETERS (Errore nei parametri)

  • AUTH_FAILURE (Errore di autenticazione)

  • INTERNAL_ERROR (Errore interno del servizio) | | description | string | N | Descrizione dell'errore |

Esempio di risposta di errore::

7. Modulo multimediale

7.1 Riprodurre file audio

:::tips

  • URL/open-api/V2/rest/media/audio-player

  • MetodoPOST

  • Header

    • Content-Type: application/json

    • Autorizzazione: Bearer ::: Parametri della richiesta:

Attributo

Tipo

Opzionale

Descrizione

audio_url

string

N

Indirizzo URL dell'audio

Risposta dati corretta: :::tips Condizioni: I parametri della richiesta sono validi e la verifica dell'identità dell'utente è superata. **Codice di stato: **200 OK Esempio di risposta:: :::

8. Scheda UI personalizzata

Le schede UI personalizzate ti consentono di visualizzare qualsiasi contenuto desideri all'interno della scheda. Questo contenuto può essere una pagina web, un'immagine o qualsiasi servizio con un'interfaccia utente. Devi semplicemente fornire l'URL del contenuto che desideri visualizzare. La scheda UI si adatterà automaticamente alla larghezza e all'altezza e il contenuto verrà renderizzato utilizzando un iFrame.

8.1 Istruzione

Ruolo chiave

  • Fornitore del servizio UI: Il fornitore responsabile della creazione di schede UI personalizzate sul gateway.

  • Server Gateway: Il server del gateway (iHost).

  • Client Open API del Gateway: Il client Open API per il gateway.

8.1.1 Creazione di una scheda UI personalizzata

  • [Fornitore del servizio UI]: Chiama l'API per creare una scheda UI personalizzata sul gateway.

  • [Server Gateway]: Dopo la registrazione avvenuta con successo, il gateway memorizza le informazioni di base della scheda UI (inclusa la configurazione delle dimensioni e l'URL della risorsa della scheda) e assegna un ID interno della scheda UI all'interno del gateway.

8.1.2 Recupero dell'elenco delle schede UI

  • [Fornitore del servizio UI]: Chiama l'API per recuperare l'elenco delle schede UI.

  • [Server Gateway]: Restituisce l'elenco delle schede UI memorizzate sul gateway, incluse le schede UI personalizzate non create dal chiamante.

8.1.3 Modifica della configurazione di una scheda UI specificata

  • [Fornitore del servizio UI]: Chiama l'API per modificare la configurazione di una scheda UI specificata, come la configurazione delle dimensioni e l'URL della risorsa.

  • [Server Gateway]: Dopo la modifica avvenuta con successo, il gateway memorizza le informazioni aggiornate della scheda UI, inclusa la nuova configurazione delle dimensioni e l'URL della risorsa.

8.1.4 Eliminazione di una scheda UI personalizzata

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

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

8.2 Modulo scheda UI personalizzata

8.2.1 Creazione di una scheda UI personalizzata

Il Fornitore del servizio UI invia una richiesta al gateway per creare una scheda UI personalizzata.

:::tips

  • URL/open-api/v2/rest/ui/cards

  • MetodoPOST

  • Header

    • Content-Type: application/json

    • Autorizzazione: Bearer ::: Parametri della richiesta:

Attributo

Tipo

Opzionale

Descrizione

label

string

Y

Etichetta della scheda: Usata per descrivere la scheda. È l'alias della scheda.

cast_settings

CastSettingsObject

Y

Impostazioni della scheda Cast: Impostazioni di configurazione per le schede cast.

web_settings

WebSettingsObject

N

Impostazioni della scheda Web: Impostazioni di configurazione per le schede web.

CastSettingsObject:

Attributo

Tipo

Opzionale

Descrizione

dimensions

DimensionObject []

N

Configurazione della dimensione: Deve includere almeno una configurazione.

default

string

N

Specificazione predefinita: La specifica della dimensione predefinita viene utilizzata, con parametri opzionali: 2x2

WebSettingsObject:

Attributo

Tipo

Opzionale

Descrizione

dimensions

DimensionObject []

N

Configurazione della dimensione: Deve includere almeno una configurazione.

drawer_component

DrawerObject

Y

Impostazioni di visualizzazione del componente Drawer.

default

string

N

Specificazione predefinita:

  • 1x1

  • 2x1 |

DimensionObject:

Attributo

Tipo

Opzionale

Descrizione

src

string

N

URL della risorsa: Per esempio: http://example.html

size

string

N

Specifiche della dimensione:

Parametri opzionali CastSettingsObject:

  • 2×2

Parametri opzionali WebSettingsObject:

  • 1x1

  • 2x1 |

DrawerObject:

Attributo

Tipo

Opzionale

Descrizione

src

string

N

URL della risorsa: Per esempio: http://example.html

Risposta dati di successo:

Attributo

Tipo

Opzionale

Descrizione

id

string

N

ID univoco della scheda UI

:::tips Condizioni: I parametri della richiesta sono legali e la verifica dell'identità dell'utente è passata. **Status Code: ** 200 OK ::: 请求示例:

Esempio di risposta:

8.2.2 Recuperare l'elenco delle schede UI

:::tips

  • URL/open-api/v2/rest/ui/cards

  • MetodoGET

  • Header

    • Content-Type: application/json

    • Autorizzazione: Bearer ::: Parametri della richiesta: Nessuno Parametri di risposta:

Attributo

Tipo

Opzionale

Descrizione

data

CardObject[]

N

Elenco delle schede UI

Oggetto CardObjec:

Attributo

Tipo

Opzionale

Descrizione

id

string

N

ID della scheda: Un identificatore univoco per la scheda.

label

string

Y

Etichetta della scheda: Usata per descrivere la scheda. Funziona come alias o nome della scheda.

cast_settings

CastSettingsObject

Y

Etichetta della scheda: Usata per descrivere la scheda. È l'alias della scheda.

web_settings

WebSettingsObject

N

Impostazioni della scheda Cast: Impostazioni di configurazione per le schede cast.

app_name

string

Y

Impostazioni della scheda Web: Impostazioni di configurazione per le schede web.

CastSettingsObject:

Attributo

Tipo

Opzionale

Descrizione

dimensions

DimensionObject []

N

Configurazione della dimensione: Deve includere almeno una configurazione.

default

string

N

Specificazione predefinita:

Parametro opzionale: 2x2

usato

string

N

Specificazione corrente:

Parametro opzionale: 2x2

WebSettingsObject:

Attributo

Tipo

Opzionale

Descrizione

dimensions

DimensionObject []

N

Configurazione della dimensione: Deve includere almeno una configurazione.

drawer_component

DrawerObject

Y

Impostazioni di visualizzazione del componente Drawer.

default

string

N

Specificazione predefinita:

Parametro opzionale:

  • 1x1

  • 2x1 | | used | string | N | Specificazione corrente: Parametro opzionale:

  • 1x1

  • 2x1 |

DimensionObject:

Attributo

Tipo

Opzionale

Descrizione

src

string

N

URL della risorsa: Per esempio: http://example.html

size

string

N

Specifiche della dimensione:

Parametro opzionale:

  • 1x1

  • 2x1

Nota: Attualmente, le schede cast supportano solo la specifica 2x2. La specifica 2x2 non sarà efficace. |

DrawerObject:

Attributo

Tipo

Opzionale

Descrizione

src

string

N

URL della risorsa: Per esempio: http://example.html

Esempio di risposta:

8.2.3 Modificare la configurazione di una scheda UI specificata

Agli utenti autorizzati è consentito modificare la configurazione di una scheda UI esistente tramite questa interfaccia. I fornitori di servizi di schede personalizzate possono modificare solo le schede UI che hanno creato.

:::tips

  • URL/open-api/v2/rest/ui/cards/{id}

  • MetodoPUT

  • Header

    • Content-Type: application/json

    • Autorizzazione: Bearer ::: Parametri della richiesta:

Attributo

Tipo

Opzionale

Descrizione

label

string

Y

Usato per descrivere la scheda. È l'alias della scheda.

cast_settings

CastSettingsObject

Y

Impostazioni della scheda Cast

web_settings

WebSettingsObject

Y

Impostazioni della scheda Web

CastSettingsObject:

Attributo

Tipo

Opzionale

Descrizione

usato

string

Y, Uno dei due usato o src deve essere fornito, ma è richiesto almeno uno di questi parametri.

Specificazione corrente:

Parametro opzionale:

  • 2x2

| | src | string | Y, Uno dei due usato o src deve essere fornito, ma è richiesto almeno uno di questi parametri. | URL della risorsa: http://example.html |

WebSettingsObject:

Attributo

Tipo

Opzionale

Descrizione

usato

string

Y, Uno dei due usato o src deve essere fornito, ma è richiesto almeno uno di questi parametri.

Specificazione corrente:

Parametro opzionale:

  • 1x1

  • 2x1 | | src | string | Y, Uno dei due usato 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 validi e la verifica dell'identità dell'utente è superata. La scheda UI da modificare deve essere stata creata dal fornitore del servizio di schede personalizzate che chiama l'interfaccia. **Codice di stato: ** 200 OK Codice di errore:

  • 406: Nessuna autorizzazione per accedere a questa risorsa ::: **Esempio di risposta: **

**Esempio di richiesta: **

8.2.4 Eliminare la scheda UI personalizzata

Agli utenti autorizzati è consentito eliminare una scheda UI esistente utilizzando questa interfaccia. I fornitori di schede personalizzate possono eliminare solo le schede UI che hanno creato.

:::tips

  • URL/open-api/v2/rest/ui/cards/{id}

  • MetodoDELETE

  • Header

    • Content-Type: application/json

    • Autorizzazione: Bearer ::: Parametri della richiesta: Nessuno Risposta dati riuscita: :::tips Condizioni: I parametri della richiesta sono validi e la verifica dell'identità dell'utente è superata. La scheda UI da modificare deve essere stata creata dal fornitore del servizio di schede personalizzate che chiama l'interfaccia. **Codice di stato: ** 200 OK Codice di errore:

  • 406: Nessuna autorizzazione per accedere a questa risorsa. ::: **Esempio di risposta: **

Ultimo aggiornamento