Guide développeur et API

1. Commencer à utiliser

1.1 Préparation

Étape 1. Veuillez vous assurer que la passerelle est sous tension et fonctionne correctement.

Étape 2. Assurez-vous que la passerelle et le PC sont connectés au même LAN. Ensuite, saisissez l'URL de CUBE dans votre navigateur.

Remarque : Si vous avez plusieurs passerelles, vous pouvez obtenir l'adresse IP correspondante pour accéder à la passerelle spécifiée de deux manières ci-dessous.

  1. Connectez-vous à votre routeur sans fil et vérifiez l'adresse IP de la passerelle dans le DHCP.

  2. CUBE prend en charge la découverte locale via mDNS.

1.2 Démarrage

  • Appelez l'interface [Access Token], et obtenez une réponse d'erreur, invitant à cliquer <Terminé>. Notez qu'après avoir appuyé, l'accès à l'interface est valide pendant au plus 5 minutes.

// Requête
curl --location --request GET 'http://<adresse ip>/open-api/V2/rest/bridge/access_token' --header 'Content-Type: application/json'

// Réponse
{
  "error": 401,
  "data": {},
  "message": "bouton de liaison non appuyé" 
}
  • Cliquez <Terminé> et appelez à nouveau l'interface [Access Token]. La réponse réussit et le token est obtenu.

  • Vérifiez le token. Appelez l'interface [Get Device List]. La réponse est réussie et la liste des appareils est obtenue.

  • Méthode d'obtention du token d'accès CUBE : Après avoir appelé l'interface [Access Token], une boîte de dialogue contextuelle globale de la page console Web CUBE invite l'utilisateur à confirmer l'obtention des informations d'identification d'appel de l'interface.

  • Remarque : Si vous ouvrez plus d'une page de console Web CUBE, la boîte de confirmation contextuelle apparaîtra sur plusieurs pages de console Web simultanément, et la boîte contextuelle des autres pages sera fermée après avoir cliqué sur la confirmation sur l'une des pages.

2. Concept principal

2.1 Adresse de l'interface de développement

L'interface Web API de la passerelle dispose de deux méthodes d'accès (basées sur l'IP ou le nom de domaine), généralement le chemin racine est /open-api/V2/rest/< module fonctionnel spécifique >

// Accès IP http:///open-api/V2/rest/bridge

// Accès par nom de domaine http:///open-api/V2/rest/bridge

2.2 Catégorie d'affichage de l'appareil & Capacités

  • **Catégorie d'affichage de l'appareil (DisplayCategory). **La catégorie d'affichage de l'appareil est utilisée pour identifier des catégories spécifiques (appareil), telles que switch, plug, light, etc. Cette information déterminera l'effet d'affichage de l'interface utilisateur de l'appareil dans la passerelle.

  • **Capacité de l'appareil. **La capacité de l'appareil est utilisée pour décrire les sous-fonctions spécifiques de l'appareil. Par exemple le contrôle de l'alimentation, le contrôle de la luminosité, le contrôle de la température de couleur, etc. Un seul appareil peut prendre en charge 1 ou plusieurs capacités.

    • capability : Décrit le nom de la capacité, qui doit être globalement unique et de type chaîne. Plusieurs mots en anglais doivent être séparés par des traits d'union ("-"). Par exemple : "thermostat-target-setpoint".

    • name : Décrit la catégorie sous la capacité, également de type chaîne. Plusieurs mots en anglais doivent être séparés par des traits d'union ("-"). Par exemple : "auto-mode", "manual-mode".

    • permission : Décrit les autorisations associées à la capacité. Le type est string, formaté en code binaire 8421. Des exemples incluent :

      • Appareil contrôlable : "1000"

      • Appareil configurable : "0010"

      • Appareil contrôlable et configurable : "1010"

      • Appareil contrôlable et rapportable : "1100"

La signification de chaque bit, de droite à gauche, est la suivante : ⅰ. Bit 0 : Autorise la requête de l'appareil ⅱ. Bit 1 : Autorise la configuration de l'appareil ⅲ. Bit 2 : Autorise l'appareil à rapporter des données ⅳ. Bit 3 : Autorise le contrôle de l'appareil

settings : Décrit les éléments de configuration pour la capacité, qui sont de type objet et incluent une description de chaque élément de configuration. ⅰ. key : Décrit le nom de l'élément de configuration, qui est de type chaîne. Plusieurs mots en anglais doivent être exprimés en camelCase. Par exemple : "temperatureUnit". ⅱ. value : Décrit le contenu de l'élément de configuration. Les spécifications détaillées sont énoncées dans le tableau ci-dessous.

Attribut
Type
Optionnel
Description

permission

string

N

Décrit les autorisations pour l'élément de configuration.

Valeurs optionnelles :

  • Autoriser la modification de cet élément de configuration : "10"

  • Autoriser la visualisation de cet élément de configuration : "01"

  • Autoriser à la fois la modification et la visualisation de cet élément de configuration : "11"

Explication des bits :

  1. Bit 0 : Autorise la visualisation de cet élément de configuration

  2. Bit 1 : Autorise la modification de cet élément de configuration | | type | string | N | Décrit le type de données de la valeur de l'élément de configuration. Valeurs optionnelles :

  • "enum"

  • "numeric"

  • "object"

  • "boolean"

  • "string"

Directives spécifiques au type :

  1. Lorsque **type = enum**:

    • Le champ (décrivant la valeur de l'élément de configuration) est requis si permission autorise la modification ("10" ou "11").

    • Le défaut (décrivant la valeur par défaut de l'élément de configuration) et values (décrivant les valeurs sélectionnables pour l'élément de configuration) les champs sont optionnels.

  2. Lorsque **type = numeric**:

    • Le champ le champ est requis si permission autorise la modification ("10" ou "11").

    • Les champs suivants sont optionnels :

      • min (décrivant la valeur minimale de l'élément de configuration)

      • max (décrivant la valeur maximale de l'élément de configuration)

      • step (décrivant la valeur de pas pour l'élément de configuration)

      • precision (décrivant la précision)

      • unit (décrivant l'unité de l'élément de configuration)

      • défaut (décrivant la valeur par défaut)

  3. Lorsque **type = object**:

    • Le champ le champ est requis si permission autorise la modification ("10" ou "11").

    • Le défaut le champ est optionnel.

  4. Lorsque **type = boolean**:

    • Le champ le champ est requis si permission autorise la modification ("10" ou "11").

    • Le défaut le champ est optionnel.

  5. Lorsque **type = string**:

    • Le champ le champ est requis si permission autorise la modification ("10" ou "11").

    • Le défaut le champ est optionnel. |

3. API Web

Type de donnée

Type
Description

string

Type de données string. Encodé en UTF8.

int

Type de données entier.

object

Type de données objet. Objet conforme JSON

string[]

Tableau de chaînes

int[]

Tableau d'entiers

object[]

Tableau d'objets

bool

Booléen

date

Chaîne temporelle. Chaîne au format ISO (format étendu ISO 8601) : YYYY-MM-DDTHH:mm:ss.sssZ. Le fuseau horaire est toujours UTC (Temps Universel Coordonné), identifié par un suffixe "Z".

Résultats génériques de réponse

Attribut
Type
Optionnel
Description

error

int

N

Code d'erreur :

0 : Succès

400 : Erreur de paramètre

401 : Échec d'authentification

500 : Exception serveur

data

object

N

Corps des données de la réponse

message

string

N

Description de la réponse :

Lorsque error est égal à 0, le contenu est success

Lorsque error n'est pas égal à 0, c'est une chaîne non vide, et le contenu est une description de l'erreur.

Exemple de réponse:

Liste des ressources

Type
Description

Sons pris en charge

- alert1 (Son d'alarme 1)

  • alert2 (Son d'alarme 2)

  • alert3 (Son d'alarme 3)

  • alert4 (Son d'alarme 4)

  • alert5 (Son d'alarme 5)

  • doorbell1 (Son de sonnette 1)

  • doorbell2 (Son de sonnette 2)

  • doorbell3 (Son de sonnette 3)

  • doorbell4 (Son de sonnette 4)

  • doorbell5 (Son de sonnette 5)

  • alarm1 (Son d'alarme 1)

  • alarm2 (Son d'alarme 2)

  • alarm3 (Son d'alarme 3)

  • alarm4 (Son d'alarme 4)

  • alarm5 (Son d'alarme 5) | | Prise en charge des deep | - bootComplete (Démarrage du système terminé)

  • networkConnected (Réseau connecté)

  • networkDisconnected (Réseau déconnecté)

  • systemShutdown (Arrêt du système) -deviceDiscovered (Découvrir l'appareil)

  • system Armed (Système armé activé)

  • system Disarmed (Système armé désactivé)

  • factoryReset (Réinitialiser l'appareil) |

3.1 La fonction de la passerelle

a. Jeton d'accès

Permet aux utilisateurs d'accéder au token.

  • Remarque : Le token sera effacé après la réinitialisation de l'appareil.

  • Remarque : Après avoir obtenu le token, vous devez appuyer à nouveau sur le bouton pour obtenir avec succès un nouveau token.

:::astuces

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

  • MéthodeGET

  • En-tête

    • Content-Type: application/json ::: Paramètres de la requête :

Attribut

Type

Optionnel

Description

app_name

string

Y

Description du nom de l'application.

Réponse de données réussie :

Attribut

Type

Optionnel

Description

token

string

N

Le token d'accès de l'interface. Il est valide pendant longtemps, veuillez le sauvegarder

app_name

string

Y

Description du nom de l'application.

:::astuces Condition : L'utilisateur déclenche la < touche de commande > et accède à cette interface dans le délai de validité. **Code d'état : **200 OK ::: Exemple de réponse:

Réponse de données en cas d'échec : Objet vide :::astuces Conditions:L'utilisateur n'a pas déclenché la < touche de commande >, ou le délai de validité a expiré. **Code d'état : ** 200 OK ::: Exemple de réponse:

b. Obtenir l'état de la passerelle

Permet aux utilisateurs autorisés d'obtenir l'état de la passerelle via cette interface :::astuces

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

  • MéthodeGET

  • En-tête

    • Content-Type: application/json

    • Autorization: Bearer ::: Paramètres de la requête : aucun Réponse de données réussie :

Attribut

Type

Optionnel

Description

ram_used

int

N

Pourcentage d'utilisation de la RAM. [0-100]

cpu_used

int

N

Pourcentage d'utilisation du CPU. [0-100]

power_up_time

date

N

Dernière heure de mise sous tension

cpu_temp

int

N

Température du CPU :

Unité : Celsius

cpu_temp_unit

string

N

Unité de température CPU :

Optionnel

valeurs :'c', 'f'

sd_card_used

int

Y

Utilisation de la carte SD (pourcentage) :

Plage :[0-100] avec une précision d'une décimale

*Remarque : Si la carte SD n'est pas insérée ou non formatée, la valeur est vide.

:::astuces Conditions : Les paramètres de la requête sont légaux et la vérification de l'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:

c. Configurer la passerelle

Permet aux utilisateurs autorisés de configurer la passerelle via cette interface :::astuces

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

  • MéthodePUT

  • En-tête

    • Content-Type: application/json

    • Autorization: Bearer ::: Paramètres de la requête :

Attribut

Type

Optionnel

Description

volume

int

Y

Volume système. [0-100]

Réponse de données réussie : Objet vide {} :::astuces Conditions : Les paramètres de la requête sont légaux et la vérification de l'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:

d. Obtenir les infos de la passerelle

Permet aux utilisateurs autorisés d'obtenir les infos de la passerelle via cette interface :::astuces

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

  • MéthodeGET

  • En-tête

    • Content-Type: application/json ::: Paramètres de la requête :

Attribut

Type

Optionnel

Description

ip

string

N

adresse ip

mac

string

N

adresse mac

domain

string

Y

Domaine de service de la passerelle

fw_version

string

N

Version du firmware

name

string

N

Nom de l'appareil

Réponse de données réussie : Objet vide {} :::astuces Conditions : Aucun **Code d'état : **200 OK ::: Exemple de réponse:

e. Mise en sourdine de la passerelle

Permet aux utilisateurs autorisés de mettre la passerelle en sourdine via cette interface. :::astuces

  • URL/open-api/v2/rest/bridge/mute

  • MéthodePUT

  • En-tête

    • Content-Type: application/json

    • Authorization: Bearer ::: Paramètres de la requête : aucun Réponse de données réussie : Objet vide {} :::astuces Conditions : Les paramètres de la requête sont légaux et la vérification de l'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:

f. Réactiver le son de la passerelle

Permet aux utilisateurs autorisés de réactiver le son de la passerelle via cette interface. :::astuces

  • URL/open-api/v2/rest/bridge/unmute

  • MéthodePUT

  • En-tête

    • Content-Type: application/json

    • Authorization: Bearer ::: Paramètres de la requête : aucun Réponse de données réussie : Objet vide {} :::astuces Conditions : Les paramètres de la requête sont légaux et la vérification de l'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:

g. Annuler l'alarme de la passerelle

Permet aux utilisateurs autorisés de désactiver l'état sonore d'alarme sur la passerelle via cette interface. :::astuces

  • URL/open-api/v2/rest/bridge/cancel_alarm

  • MéthodePUT

  • En-tête

    • Content-Type: application/json

    • Authorization: Bearer ::: Paramètres de la requête : aucun Réponse de données réussie : Objet vide {} :::astuces Conditions : Les paramètres de la requête sont légaux et la vérification de l'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:

3.2 Fonction matérielle

a. Redémarrer la passerelle

Permet à l'utilisateur autorisé de redémarrer la passerelle via cette interface :::astuces

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

  • MéthodePOST

  • En-tête

    • Content-Type: application/json

    • Autorization: Bearer ::: Paramètres de la requête : aucun Réponse de données réussie : Objet vide {} :::astuces Conditions : Les paramètres de la requête sont légaux et la vérification de l'identité de l'utilisateur est passée. **Code d'état : **200 OK :::

b. Contrôle du haut-parleur

Permet aux utilisateurs autorisés de contrôler le haut-parleur via cette interface :::astuces

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

  • MéthodePOST

  • En-tête

    • Content-Type: application/json

    • Authorization: Bearer ::: Paramètres de la requête :

Attribut

Type

Optionnel

Description

type

string

N

Paramètres optionnels : 1.play_sound (jouer le son) 2.play_beep (jouer le bip)

sound

SoundObject

Y (N si type est play_sound.)

Le son.

beep

BeepObject

Y (N si type est play_beep.)

Le bip

SoundObject

Attribut

Type

Optionnel

Description

name

string

N

Le nom du son. Les valeurs prises en charge peuvent être consultées dans [Resource List - Supported sound]

volume

int

N

Le volume du son. [0-100]

countdown

int

N

La durée pendant laquelle le haut-parleur joue le son, et il s'arrêtera automatiquement une fois le temps écoulé. Unité : seconde. [0,1799]

BeepObject

Attribut

Type

Optionnel

Description

name

string

N

Le nom du deep. Les valeurs prises en charge peuvent être consultées dans [Resource List - Supported deep]

volume

int

N

Le volume du deep. [0-100]

Réponse de données réussie : Objet vide {} :::astuces Conditions : Les paramètres de la requête sont légaux et la vérification de l'identité de l'utilisateur est passée. **Code d'état : ** 200 OK ::: Exemple de réponse:

3.3 Fonction de gestion des appareils

a. Types d'appareils pris en charge

Type d'appareil

Valeur

Version iHost

Prise

plug

≥ 2.1.0

Interrupteur

switch

≥ 2.1.0

Lumière

light

≥ 2.1.0

Rideau

curtain

≥ 2.1.0

Capteur de porte/fenêtre

contactSensor

≥ 2.1.0

Capteur de mouvement

motionSensor

≥ 2.1.0

Capteur de température

temperatureSensor

≥ 2.1.0

Capteur d'humidité

humiditySensor

≥ 2.1.0

Capteur de température et d'humidité

temperatureAndHumiditySensor

≥ 2.1.0

Détecteur de fuite d'eau

waterLeakDetector

≥ 2.1.0

Détecteur de fumée

smokeDetector

≥ 2.1.0

Bouton sans fil

button

≥ 2.1.0

Caméra

camera

≥ 2.1.0

Capteur général

sensor

≥ 2.1.0

Capteur général

sensor

≥ 2.1.0

Ventilateur avec lumière

fanLight

≥ 2.1.0

Climatiseur

airConditioner

≥ 2.1.0

Ventilateur

fan

≥ 2.1.0

Thermostat

thermostat

≥ 2.1.0

b. Capacités prises en charge par l'appareil

Interrupteur d'alimentation (power) :

Exemple de déclaration de capacité :

Attribut d'état :

Protocole (Requête d'état & instructions de contrôle) :

Allumer :

Éteindre :

Commutateur de canal (toggle) :

Exemple de déclaration de capacité :

Exemple de composant unique :

Exemple de composants multiples :

Attribut d'état :

Protocole (Requête d'état & instructions de contrôle) :

Format du basculement :

Inching de canal (toggle-inching) :

Exemple de déclaration de capacité :

Attribut d'état

Aucun

Protocole (Requête d'état & instructions de contrôle)

Aucun

Réglage de la luminosité (brightness) :

Exemple de déclaration de capacité :

Attribut d'état :

Protocole (Requête d'état & instructions de contrôle) :

Définir la luminosité à 80 %. (0 est le plus sombre et 100 le plus lumineux.)

Réglage de la température de couleur (color-temperature) :

Exemple de déclaration de capacité :

Attribut d'état :

Protocole (Requête d'état & instructions de contrôle) :

Ajuster la température de couleur à 50 % :

Réglage de la couleur (color-rgb) :

Exemple de déclaration de capacité :

Attribut d'état :

Protocole (Requête d'état & instructions de contrôle) :

Définir la couleur sur violet :

Réglage en pourcentage (percentage) :

Exemple de déclaration de capacité :

Attribut d'état :

Protocole (Requête d'état & instructions de contrôle) :

Ajuster à 40 % :

Contrôle du moteur (motor-control) :

Exemple de déclaration de capacité :

Attribut d'état :

Protocole (Requête d'état & instructions de contrôle) :

Ouvrir le moteur :

Inversion du moteur (motor-reverse) :

Exemple de déclaration de capacité :

Attribut d'état :

Protocole (Requête d'état & instructions de contrôle) :

Définir le moteur en avant :

Calibration du moteur (motor-clb)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Rapport d'état) :

Rapporter que le moteur est en cours de calibration :

État d'alimentation au démarrage (startup)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Définir l'état d'alimentation sur Toujours Allumé :


Activation de réveil (identify)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Rapport d'état & instructions de contrôle) :

Définir le temps d'activation de réveil :

Rapporter l'état d'activation :

Interrupteur de statistiques de consommation électrique en temps réel (power-consumption)

Exemple de déclaration de capacité :

Attributs (État) :

Démarrer/Arrêter les statistiques en temps réel :

Interroger la consommation d'énergie par plage horaire :

Répondre avec le résultat des statistiques dans la plage de temps :

Protocole (Rapport d'état & instructions de contrôle) :

Démarrer les statistiques en temps réel :

Arrêter les statistiques en temps réel :

Obtenir la consommation d'énergie historique :

Obtenir la consommation d'énergie en temps réel :

Détection du mode température et humidité (thermostat-mode-detect)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Format :

Exemple :

Mode thermostat (thermostat-mode)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Statut de récupération adaptative du thermostat (thermostat/adaptive-recovery-status)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Réglage de la température cible du mode thermostat (thermostat-target-setpoint)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Détection de capteur (detect)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Détection de température (temperature)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Détection d'humidité (humidity)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Détection de la batterie (battery)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Détection d'un bouton unique (press)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Détection multi-boutons (multi-press)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Détection de la puissance du signal (rssi)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Détection d'effraction (tamper-alert)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Détection du niveau d'illumination (illumination-level)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Détection de tension (voltage)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Détection du courant électrique (electric-current)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Détection de la puissance électrique (electric-power)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Détection de défaut (fault)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Rupture de seuil (threshold-breaker)

Exemple de déclaration de capacité :

Attributs (État)

  • Aucun

Protocole (Requête d'état & instructions de contrôle)

  • Aucun

Fonction Inch (inching)

Exemple de déclaration de capacité :

Attributs (État) :

  • Aucun

Protocole (Requête d'état & instructions de contrôle) :

  • Aucun

Flux de caméra (camera-stream)

Exemple de déclaration de capacité :

Attributs (État) :

  • Aucun

Protocole (Requête d'état & instructions de contrôle) :

  • Aucun

Contrôle de mode (mode)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Détection du dioxyde de carbone (co2)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Détection de l'illumination (illumination)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Détection de fumée (smoke)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Détection ouverture/fermeture aimant de porte (contact)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Détection de mouvement (motion)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Détection de fuite d'eau (water-leak)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Interrupteur de détection de fenêtre (window-detection)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Verrouillage pour enfants (child-lock)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Anti-coup direct (anti-direct-blow)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Balancement horizontal (horizontal-swing)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Balancement vertical (vertical-swing)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Mode ÉCO (eco)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Basculer démarrage (toggle-startup)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Détection maintien (detect-hold)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Basculer Identifier/Activer (toggle-identify)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Basculer détection de tension (toggle-voltage)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Détection du courant électrique du sous-composant (toggle-electric-current)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Détection de puissance du sous-composant (toggle-electric-power)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Statistiques de consommation d'énergie du sous-composant (toggle-power-consumption)

Exemple de déclaration de capacité :

Attributs (État) :

Démarrer/Arrêter les statistiques en temps réel :

Interroger la consommation d'énergie par plage horaire :

Réponse pour la consommation d'énergie dans une plage temporelle :

Protocole (Requête d'état & instructions de contrôle) :

Démarrer les statistiques en temps réel :

Arrêter les statistiques en temps réel :

Obtenir la consommation d'énergie historique :

Obtenir la consommation d'énergie en temps réel :

Indicateur de qualité de liaison (lqi)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Configuration fonctionnelle (configuration)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Système (system)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Humidité (moisture)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Pression barométrique (barometric-pressure)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Vitesse du vent (wind-speed)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Direction du vent (wind-direction)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Précipitations (rainfall)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Indice UV (ultraviolet-index)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Conductivité électrique (electrical-conductivity)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Puissance d'émission (transmit-power)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Détection PM2,5 (pm25)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Indice COV (voc-index)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Détection de gaz naturel (gas)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Statut de travail d'irrigation (irrigation/work-status)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Rapport de statut de travail :

Requête de statut de travail :

Résultat de la requête de statut de travail :

Mode de travail d'irrigation (irrigation/work-mode)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Requête d'état & instructions de contrôle) :

Contrôleur d'irrigation automatique (irrigation/auto-controller)

Exemple de déclaration de capacité :

Attributs (État) :

Planification ponctuelle ou répétée :

Volume ponctuel ou répété :

Protocole (Requête d'état & instructions de contrôle) :

Planification ponctuelle ou répétée :

Volume ponctuel ou répété :

Modes prédéfinis pris en charge

**Noms des modes **
**Valeurs optionnelles **

fanLevel (niveau du ventilateur)

"low"

"medium"

"high"

thermostatMode (mode thermostat)

"auto"

"manual"

airConditionerMode >= 1.11.0 (mode climatiseur)

"cool"

"heat"

"auto"

"fan"

"dry"

fanMode >= 1.11.0 (mode ventilateur)

"normal"

"sleep"

"child"

horizontalAngle >= 1.11.0 (angle horizontal)

"30"

"60"

"90"

"120"

"180"

"360"

verticalAngle >= 1.11.0 (angle vertical)

"30"

"60"

"90"

"120"

"180"

"360"

c. Description des balises

  • La clé spéciale toggle est utilisée pour définir le nom du sous-composant toggle.

  • La clé spéciale temperature_unit est utilisée pour définir l'unité de température.

d. Code d'erreur spécial et description

Code d'erreur

Description

Version iHost

110000

Le sous-appareil/groupe correspondant à l'id n'existe pas

≥2.1.0

110001

La passerelle est en état de découverte des appareils zigbee

≥2.1.0

110002

Les appareils d'un groupe n'ont pas de capacité commune

≥2.1.0

110003

Nombre incorrect d'appareils

≥2.1.0

110004

Nombre incorrect de groupes

≥2.1.0

110005

Appareil hors ligne

≥2.1.0

110006

Échec de la mise à jour du statut de l'appareil

≥2.1.0

110007

Échec de la mise à jour du statut du groupe

≥2.1.0

110008

Le nombre maximum de groupes a été atteint. Créez jusqu'à 50 groupes

≥2.1.0

110009

L'adresse IP de l'appareil caméra est incorrecte

≥2.1.0

110010

Erreur d'autorisation d'accès de l'appareil caméra

≥2.1.0

110011

Erreur d'adresse de flux de l'appareil caméra

≥2.1.0

110012

Le codage vidéo de l'appareil caméra n'est pas pris en charge

≥2.1.0

110013

L'appareil existe déjà

≥2.1.0

110014

La caméra ne prend pas en charge le fonctionnement hors ligne

≥2.1.0

110015

Le mot de passe du compte est incohérent avec le mot de passe du compte dans l'adresse de flux RTSP

≥2.1.0

110016

La passerelle est en état de découverte des caméras onvif

≥2.1.0

110017

Nombre maximal de caméras ajoutées dépassé

≥2.1.0

110018

Le chemin de la caméra ESP est erroné

≥2.1.0

110019

Échec d'accès à l'adresse de service du périphérique tiers

≥2.1.0

e. Recherche de sous-appareil

Permettre aux utilisateurs autorisés d'activer ou de désactiver la recherche de sous-appareils par la passerelle via cette interface

  • 💡Remarque : Ne prend en charge que la recherche de sous-appareils Zigbee pour le moment.

  • 💡Remarque : Les sous-appareils Zigbee seront ajoutés automatiquement après la recherche. Il n'est pas nécessaire d'utiliser l'interface "Ajouter manuellement des sous-appareils" :::tips

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

  • Méthode: PUT

  • En-tête

    • Content-Type: application/json

    • Autorization: Bearer ::: Paramètres de la requête :

Attribut

Type

Optionnel

Description

enable

boolean

N

true (Démarrer l'appairage) ; false (Mettre en pause l'appairage)

type

string

N

Type de recherche : Zigbee

Réponse de données réussie : Objet vide {} :::astuces Conditions : Les paramètres de la requête sont légaux et la vérification de l'identité de l'utilisateur est passée. **Code d'état : ** 200 OK ::: Exemple de réponse:

f. Ajouter manuellement le sous-appareil

Permettre aux utilisateurs autorisés d'ajouter un unique sous-appareil via cette interface.

  • Remarque : Seules les caméras RTSP et ESP32 Camera sont prises en charge pour le moment :::tips

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

  • Méthode:POST

  • En-tête

    • Content-Type: application/json

    • Autorization: Bearer ::: Paramètres de la requête :

Attribut

Type

Optionnel

Description

name

string

N

Nom du sous-appareil

display_category

string

N

Type d'appareil. Prend en charge uniquement la caméra.

capabilities

CapabilityObject[]

N

Liste des capacités. Lorsque display_category = camera, les capacités n'incluent que les capacités camera-stream.

protocal

string

N

Protocole de l'appareil. RTSP ; ESP32-CAM

manufacturer

string

N

Fabricant.

model

string

N

Modèle de l'appareil

firmware_version

string

N

Version du firmware de l'appareil

CapabilityObject

Attribut

Type

Optionnel

Description

capability

string

N

Nom de la capacité. Prend en charge uniquement "camera-stream"

permission

string

N

Permission de l'appareil. Prend en charge uniquement la lecture.

configuration

CameraStreamConfigurationObject

Y

Configuration du flux caméra.

SettingsObject

Attribut

Type

Optionnel

Description

streamSetting

StreamSettingObject

N

Configuration du service de streaming

StreamSettingObject

Attribut

Type

Optionnel

Description

type

string

N

Configuration du service de streaming

permission

string

N

Autorisation de capacité. Prend en charge uniquement "11" (modifiable).

champ

StreamSettingValueObject

N

Valeurs de configuration spécifiques

StreamSettingValueObject

Attribut

Type

Optionnel

Description

stream_url

string

N

Format de l'URL de flux

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

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

Options de schéma :

rtsp (Real-Time Streaming Protocol)

http (Hypertext Transfer Protocol) — Pour les appareils ESP32-CAM

*Remarque : Certaines caméras peuvent ne pas nécessiter de nom d'utilisateur ou de mot de passe. Dans ce cas, vous pouvez omettre le <username> et <password> champs de l'URL.

Réponse de données réussie :

Attribut

Type

Optionnel

Description

serial_number

string

N

Numéro de série unique de l'appareil

:::astuces Conditions : Les paramètres de la requête sont légaux et la vérification de l'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:

Réponse de données d'échec : objet vide :::tips Condition

  1. Erreur d'accès à l'adresse de flux de la caméra (erreur de format, échec d'autorisation, exception réseau, etc.)

  2. L'appareil existe déjà

  3. Si l'ajout d'un seul appareil échoue, renvoie que tous les appareils n'ont pas pu être ajoutés.

Code d'état: 200 OK Code d'erreur: ● 110009 Erreur d'adresse IP de la caméra ● 110010 Erreur d'autorisation d'accès à la caméra ● 110011 Erreur d'adresse de flux de la caméra ● 110012 Le codage vidéo de la caméra n'est pas pris en charge ● 110013 L'appareil existe déjà ::: Exemple de réponse:

g. Obtenir la liste des sous-appareils

Permettre aux utilisateurs autorisés d'obtenir la liste des sous-appareils de la passerelle via cette interface. :::tips

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

  • Méthode: GET

  • En-tête

    • Content-Type: application/json

    • Autorization: Bearer ::: Paramètres de la requête : aucun Réponse de données réussie :

Attribut

Type

Optionnel

Description

device_list

ResponseDeviceObject[]

N

Liste des appareils

ResponseDeviceObject

Attribut

Type

Optionnel

Description

serial_number

string

N

Numéro de série unique de l'appareil

third_serial_number

string

"N" lorsqu'un appareil tiers est connecté, sinon "Y"

Numéro de série unique de l'appareil tiers

service_address

string

"N" lorsqu'un appareil tiers est connecté, sinon "Y"

Adresse du service tiers

name

string

N

Nom de l'appareil, s'il n'est pas renommé, sera affiché par le front-end selon les règles d'affichage par défaut.

manufacturer

string

N

Fabricant

model

string

N

Modèle de l'appareil

firmware_version

string

N

Version du firmware. Peut être une chaîne vide.

hostname

string

Y

Nom d'hôte de l'appareil

mac_address

string

Y

Adresse MAC de l'appareil

app_name

string

Y

Le nom de l'application à laquelle il appartient. Si app_name est rempli lors de l'obtention du certificat d'interface ouverte, alors tous les appareils ultérieurs connectés via le certificat seront inscrits dans ce champ.

display_category

string

N

Catégorie d'appareil

capabilities

CapabilityObject[]

N

Capacités de l'appareil

protocol

string

"N" lorsqu'un appareil tiers est connecté, sinon "Y"

Protocole de l'appareil : zigbee, onvif, rtsp, esp32-cam

état

object

Y

Objet d'état de l'appareil. Pour des exemples d'état des différentes fonctionnalités, veuillez consulter 【Fonctionnalités d'appareils prises en charge】

étiquettes

object

Y

Paires clé-valeur au format JSON, informations personnalisées sur l'appareil. La fonction est la suivante : - Utilisé pour stocker les canaux de l'appareil - Utilisé pour stocker les unités de température - Informations personnalisées pour d'autres appareils tiers

en ligne

boolean

N

État en ligne : True pour en ligne False pour hors ligne

sous-réseau

boolean

Y

S'il se trouve dans le même sous-réseau que la passerelle

CapabilityObject 💡Remarque : Veuillez vérifier les Exemples de fonctionnalités d'appareils prises en charge pour [Fonctionnalités d'appareils prises en charge].

Attribut

Type

Optionnel

Description

capability

string

N

Nom de la capacité. Pour plus de détails, consultez [Fonctionnalités d'appareils prises en charge]

permission

string

N

Autorisation de la capacité. Valeurs possibles : "read" (lecture), "write" (écriture), "readWrite" (lecture et écriture).

configuration

object

Y

Informations de configuration de la capacité. Actuellement utilisé pour camera-stream, consultez [Fonctionnalités d'appareils prises en charge]

name

string

Y

Le champ name dans toggle. Le numéro de sous-canal utilisé pour identifier les appareils multicanaux. Par exemple, si name est 1, cela signifie le canal 1.

:::astuces Conditions : Les paramètres de la requête sont légaux et la vérification de l'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:

h. Mettre à jour les informations ou l'état spécifié de l'appareil

Permet aux utilisateurs autorisés de modifier les informations de base du sous-appareil et d'émettre des commandes de contrôle via cette interface. :::tips

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

  • Méthode:PUT

  • En-tête

    • Content-Type: application/json

    • Autorization: Bearer ::: Paramètres de la requête :

Attribut

Type

Optionnel

Description

name

string

Y

Nom de l'appareil

étiquettes

object

Y

Paires clé-valeur au format JSON, informations personnalisées sur l'appareil.

état

object

Y

Objet d'état de l'appareil. Pour des exemples d'état des différentes fonctionnalités, veuillez consulter [Fonctionnalités d'appareils prises en charge]

configuration

object

Y

Informations de configuration de la capacité, actuellement seule la capacité camera_stream prend en charge la modification.

Réponse de données réussie : :::tips Conditions: Les paramètres de la requête sont légaux, et la vérification d'identité de l'utilisateur est passée. **Code d'état : **200 OK Code d'erreur:

  • 110000 Le sous-appareil/groupe correspondant à l'id n'existe pas ::: Exemple de réponse:

i. Supprimer le sous-appareil

Permet aux utilisateurs autorisés de supprimer des sous-appareils via cette interface. :::tips

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

  • Méthode:DELETE

  • En-tête

    • Content-Type: application/json

    • Autorization: Bearer ::: Paramètres de la requête :

Attribut

Type

Optionnel

Description

name

string

Y

Nom de l'appareil.

étiquettes

object

Y

Paires clé-valeur au format JSON utilisées pour stocker les noms des canaux de l'appareil et d'autres informations sur les sous-appareils.

état

object

Y

Modifier l'état de l'appareil ; pour les détails du protocole, se référer à "Fonctionnalités d'appareils prises en charge."

capabilities

CapabilityObject []

Y

Informations de configuration de la capacité ; toutes les capacités qui prennent en charge la définition de configurations peuvent être modifiées. Notez que les permissions ne peuvent pas être modifiées.

Réponse de données réussie : :::tips Conditions: Les paramètres de la requête sont légaux, et la vérification d'identité de l'utilisateur est passée. **Code d'état : **200 OK Codes d'erreur :

  • 110000 : Le sous-appareil/groupe correspondant à l'ID n'existe pas.

  • 110006 : Échec de la mise à jour de l'état de l'appareil.

  • 110019 : Échec d'accès à l'adresse du service de l'appareil tiers.

  • 110024 : Échec de la mise à jour de la configuration de l'appareil. ::: Exemple de réponse:

j. Supprimer le sous-appareil

Permet aux utilisateurs autorisés de supprimer des sous-appareils via cette interface. :::tips

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

  • MéthodeDELETE

  • En-tête

    • Content-Type: application/json

    • Authorization: Bearer ::: Paramètres de la requête : Aucun Réponse de données réussie : :::tips Conditions : Les paramètres de la requête sont légaux et la vérification de l'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:

k. Interroger l'état de l'appareil

Permet aux utilisateurs autorisés d'interroger l'état de l'appareil via cette interface. :::tips

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

  • Méthode:POST

  • En-tête

    • Content-Type: application/json

    • Authorization: Bearer ::: Paramètres de la requête :

Attribut

Type

Optionnel

Description

query_state

object

N

Interroger l'état de l'appareil ; pour les détails du protocole, se référer à "Fonctionnalités d'appareils prises en charge."

Réponse de données réussie : :::tips Conditions : Les paramètres de la requête sont légaux et la vérification de l'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:

3.4 Gestion de la sécurité

a. Obtenir la liste de sécurité

Permet aux utilisateurs autorisés de modifier les paramètres de la passerelle via cette interface. :::tips

  • URL/open-api/v2/rest/security

  • MéthodeGET

  • En-tête

    • Content-Type: application/json

    • Authorization: Bearer ::: Paramètres de la requête : Aucun Réponse de données réussie :

Attribut

Type

Optionnel

Description

security_list

ResponseSecurityObject[]

N

Liste d'appareils répondant

ResponseDeviceObject

Attribut

Type

Optionnel

Description

sid

int

N

id de sécurité

name

string

N

Nom de la sécurité

enable

bool

N

Activé ou non

  • true Activé

  • false Désactivé |

:::astuces Conditions : Les paramètres de la requête sont légaux et la vérification de l'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:

b. Activer le mode de sécurité spécifié

Permet aux utilisateurs autorisés d'activer un mode de sécurité spécifié via cette interface. :::tips

  • URL/open-api/v2/rest/security/{security_id}/enable

  • MéthodePUT

  • En-tête

    • Content-Type: application/json

    • Authorization: Bearer ::: Paramètres de la requête : Aucun Réponse de données réussie : Objet vide {} :::tips Conditions : Les paramètres de la requête sont légaux et la vérification de l'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:

c. Désactiver le mode de sécurité spécifié

Permet aux utilisateurs autorisés de désactiver un mode de sécurité spécifié via cette interface. :::tips

  • URL/open-api/v2/rest/security/{security_id}/disable

  • MéthodePUT

  • En-tête

    • Content-Type: application/json

    • Authorization: Bearer ::: Paramètres de la requête : Aucun Réponse de données réussie : Objet vide {} :::tips Conditions : Les paramètres de la requête sont légaux et la vérification de l'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:

d. Activation en un clic de la configuration de sécurité

Permet aux utilisateurs autorisés d'activer le mode de configuration de sécurité en un clic via cette interface. :::tips

  • URL/open-api/v2/rest/security/enable

  • MéthodePUT

  • En-tête

    • Content-Type: application/json

    • Authorization: Bearer ::: Paramètres de la requête : Aucun Réponse de données réussie : Objet vide {} :::tips Conditions : Les paramètres de la requête sont légaux et la vérification de l'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:

e. Désactiver la sécurité

Permet aux utilisateurs autorisés de désactiver la sécurité via cette interface. :::tips

  • URL/open-api/v2/rest/security/disable

  • MéthodePUT

  • En-tête

    • Content-Type: application/json

    • Authorization: Bearer ::: Paramètres de la requête : Aucun Réponse de données réussie : Objet vide {} :::tips Conditions : Les paramètres de la requête sont légaux et la vérification de l'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:

4. Appareil tiers Accès

4.1 Instructions d'accès

Accès de l'appareil

1.0.jpg

Accès de passerelle tiers

2.0.jpg

Étapes d'accès

  1. Déterminer la classification de l'appareil dans la passerelle. Les détails sont disponibles dans [Types d'appareils pris en charge].

  2. Déterminer les fonctionnalités auxquelles l'appareil peut accéder. Les détails sont disponibles dans [Fonctionnalités d'appareils prises en charge].

  3. Appeler l'interface [Discovery Request] pour ajouter l'appareil à la passerelle.

    1. Attention : Vous devez fournir l'adresse de service pour recevoir les instructions émises par la passerelle, utilisée pour recevoir les instructions de contrôle des appareils émises par la passerelle.

  4. Si l'état de l'appareil tiers change, vous devez appeler l'interface [Device States Change Report] pour renvoyer le dernier état à la passerelle.

  5. Après ajout, l'appareil tiers apparaîtra dans la liste d'appareils, avec la plupart des fonctions de la passerelle (autres appareils non tiers). Les interfaces ouvertes courantes liées à l'appareil peuvent être utilisées normalement.

  • Sélectionnez la catégorie d'appareil appropriée. La classification affectera le résultat d'affichage final de l'interface utilisateur après la connexion de l'appareil à la passerelle.

  • Choisissez la bonne fonctionnalité d'appareil. La liste des fonctionnalités déterminera l'état du protocole d'état de l'appareil.

Processus du programme

a. Accès de l'appareil

3.0.jpg

b. Accès de la passerelle tiers

4.0.jpg

4.2 Exemple d'accès

Interrupteur, Prise

Synchroniser les appareils tiers

Signaler l'état de l'appareil

Signaler hors ligne/en ligne

Recevoir les instructions concernant le contrôle de l'appareil par la passerelle

Interroger l'appareil

4.3 API Web

Interface de passerelle de requête tierce

Format de requête

Permet aux utilisateurs autorisés d'envoyer des requêtes d'événement à la passerelle via cette interface. :::tips

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

  • Méthode:POST

  • En-tête

    • Content-Type: application/json

    • Autorization: Bearer ::: Paramètres de la requête :

Attribut

Type

Optionnel

Description

event

EventObject

N

Informations sur la structure de l'objet d'événement de la requête

EventObject

Attribut

Type

Optionnel

Description

header

HeaderObject

N

Informations sur la structure de l'en-tête de la requête

endpoint

EndpointObject

Y

Informations sur la structure de l'endpoint de la requête Remarque : Ce champ est vide lors de la synchronisation d'une nouvelle liste d'appareils.

payload

PayloadObject

N

Informations sur la structure du payload de la requête

HeaderObject

Attribut

Type

Optionnel

Description

name

string

N

Nom de la requête. paramètre optionnel : DiscoveryRequest : Synchroniser de nouveaux appareils DeviceStatesChangeReport : Rapport de mise à jour de l'état de l'appareil DeviceOnlineChangeReport : Rapport d'état en ligne de l'appareil

message_id

string

N

ID de message de la requête, UUID_V4

version

string

N

Numéro de version du protocole de la requête. Actuellement fixe à 1

EndpointObject

Attribut

Type

Optionnel

Description

serial_number

string

N

Numéro de série unique de l'appareil

third_serial_number

string

N

Numéro de série unique de l'appareil tiers

étiquettes

object

Y

Paires clé-valeur au format JSON, informations personnalisées sur l'appareil. [Fonction de gestion des appareils] - [Description des tags]

PayloadObject Selon le header.name différent, la structure de la requête est différente.

Format de réponse

:::tips **Code d'état : **200 OK Paramètres de la réponse : :::

Attribut

Type

Optionnel

Description

header

HeaderObject

N

Informations sur la structure de l'en-tête de réponse

payload

PayloadObject

N

Informations sur la structure du payload de réponse

HeaderObject

Attribut

Type

Optionnel

Description

name

string

N

Nom de l'en-tête de réponse. paramètres optionnels : Response : Réponse réussie ErrorResponse : Réponse d'erreur

message_id

string

N

ID de message de l'en-tête de réponse, UUID_V4. Renvoyer ici l'header.message_id du message de requête *Si le paramètre message_id de la requête est absent, ce champ sera une chaîne vide lors de la réponse.

version

string

N

- Numéro de version du protocole de la requête. Actuellement fixe à 1.

Réponse réussie--PayloadObject :

Selon le type de requête, la structure de réponse est différente. Pour plus de détails, veuillez vous référer au document d'instructions de la requête spécifique.

Réponse d'échec--PayloadObject:

Attribut

Type

Optionnel

Description

type

string

N

Types d'erreur :

  • INVALID_PARAMETERS : Erreur de paramètre

  • AUTH_FAILURE : Erreur d'autorisation

  • INTERNAL_ERROR : Erreur de service interne | | description | string | N | Description de l'erreur |

DiscoveryRequest Synchroniser une nouvelle liste d'appareils

  • Remarque : Après la synchronisation de l'appareil vers la passerelle, il est en ligne par défaut, c'est-à-dire online=true. Les changements en ligne ultérieurs dépendent entièrement de la synchronisation avec la tierce partie via l'interface DeviceOnlineChangeReport.

Paramètres de la requête : EndpointObject**:**Aucun PayloadObject:

Attribut

Type

Optionnel

Description

endpoints

EndpointObject[]

N

Liste d'appareils

EndpointObject :

Attribut

Type

Optionnel

Description

third_serial_number

string

N

Numéro de série unique de l'appareil tiers

name

string

N

Nom de l'appareil

display_category

string

N

Catégorie d'appareil. Voir [Types d'appareils pris en charge] pour les détails. *Les appareils tiers ne prennent pas en charge l'ajout de caméras pour le moment.

capabilities

CapabilityObject[]

N

Liste des capacités

état

object

N

Informations d'état initial

manufacturer

string

N

Fabricant

model

string

N

Modèle de l'appareil

étiquettes

object

Y

Paires clé-valeur au format JSON, informations personnalisées sur l'appareil : Utilisé pour stocker les canaux de l'appareil Utilisé pour stocker les unités de température Autres données personnalisées tierces

firmware_version

string

N

Version du firmware

service_address

string

N

Adresse de service. Tel que http://192.168.31.14/service_address

Exemple de requête :

Paramètres de la réponse : PayloadObject:

Attribut

Type

Optionnel

Description

endpoints

EndpointObject[]

N

Liste des appareils

EndpointObject :

Attribut

Type

Optionnel

Description

serial_number

string

N

Numéro de série unique de l'appareil

third_serial_number

string

N

Numéro de série unique de l'appareil tiers

Exemple d'une réponse correcte :

Exemple d'une réponse d'erreur :

DeviceStatesChangeReport Rapport de changement d'état de l'appareil

  • Remarque : Des rapports d'état répétés peuvent déclencher faussement une scène associée.

Paramètres de la requête : PayloadObject:

Attribut

Type

Optionnel

Description

état

object

N

État de l'appareil, Voir [Fonctionnalités d'appareils prises en charge] pour plus de détails

Exemple de requête :

Paramètres de la réponse : PayloadObject : Objet vide Exemple d'une réponse réussie :

DeviceOnlineChangeReport Rapport d'état en ligne de l'appareil

  • Remarque : Des rapports d'état répétés peuvent déclencher faussement une scène associée.

Paramètres de la requête : PayloadObject:

Attribut

Type

Optionnel

Description

en ligne

boolean

N

État en ligne de l'appareil true : En ligne

false : Hors ligne

Exemple de requête :

Paramètres de la réponse : PayloadObject : Objet vide Exemple d'une réponse réussie :

DeviceInformationUpdatedReport Rapport de mise à jour des informations de l'appareil

  • Remarque : La mise à jour peut affecter les scènes ou fonctions de sécurité existantes.

Paramètres de la requête : PayloadObject:

Attribut

Type

Optionnel

Description

capabilities

| CapabilityObject[]

| N

| Liste des capacités. Les détails se trouvent dans la section des fonctionnalités d'appareils prises en charge. **Remarque : **Ce paramètre ne mettra à jour que le champ de la réglage clé dans le CapabilityObject, et les mises à jour sont autorisées uniquement si le permission pour la réglage clé est 11 ou 01. Pour la définition structurelle spécifique du réglage dans CapabilityObjectréférez-vous à la description détaillée dans la section 2.3 Catégories d'affichage des appareils et fonctionnalités des appareils. | | tags

| object

| Y

| Paires clé-valeur au format JSON, informations personnalisées sur l'appareil.

  • Peut être utilisé pour stocker les canaux de l'appareil

  • Peut être utilisé pour stocker les unités de température

  • Autres données personnalisées tierces |

Exemple de requête :

Paramètres de réponse : PayloadObject : Objet vide Exemple d'une réponse réussie :

La passerelle envoie l'interface d'instruction via l'adresse de service de l'appareil

  • Remarque :

  1. Les tiers doivent répondre à la requête de la passerelle sous 3s. Sinon, la passerelle considérera le traitement de la commande comme expiré.

  2. Si le service tiers est hors ligne, la passerelle mettra l'appareil en état hors ligne, et le service tiers doit signaler l'état de l'appareil (DeviceStatesChangeReport) ou l'état en ligne (DeviceOnlineChangeReport) avant de revenir en ligne.

Format de la requête

La passerelle envoie des instructions au tiers via l'interface d'adresse de service de l'appareil. :::tips

  • URL

  • Méthode:POST

  • En-tête

    • Content-Type: application/json ::: Paramètres de la requête :

Attribut

Type

Optionnel

Description

directive

DirectiveObject

N

Informations sur la structure de l'objet directive

DirectiveObject

Attribut

Type

Optionnel

Description

header

HeaderObject

N

Informations sur la structure de l'en-tête de la requête

endpoint

EndpointObject

N

Informations sur la structure de l'endpoint de la requête

payload

PayloadObject

N

Informations sur la structure du payload de la requête

HeaderObject

Attribut

Type

Optionnel

Description

name

string

N

Nom de la requête. Paramètres optionnels : UpdateDeviceStates : Mettre à jour les états de l'appareil

message_id

string

N

ID de message de la requête, UUID_V4

version

string

N

Numéro de version du protocole de la requête. Actuellement fixe à 1.

EndpointObject

Attribut

Type

Optionnel

Description

serial_number

string

N

Numéro de série unique de l'appareil

third_serial_number

string

N

Numéro de série unique de l'appareil tiers

étiquettes

object

N

Paires clé-valeur au format JSON, informations personnalisées sur l'appareil. [Fonction de gestion des appareils] - [Description des tags]

PayloadObject : Selon différents header.name, il existe une structure de requête spécifique pour chacun.

Exemple de requête :

Format de réponse

:::tips **Code d'état HTTP : **200 OK Attribut de réponse HTTP: :::

Attribut

Type

Optionnel

Description

event

EventObject

N

Informations sur la structure de l'événement de réponse

EventObject

Attribut

Type

Optionnel

Description

header

HeaderObject

N

Informations sur la structure de l'en-tête de la requête

payload

PayloadObject

N

Informations sur la structure du payload de la requête

HeaderObject

Attribut

Type

Optionnel

Description

name

string

N

Nom de l'en-tête de réponse. Paramètre optionnel : UpdateDeviceStatesResponse : Réponse de mise à jour des états de l'appareil ErrorResponse : Réponse d'erreur

message_id

string

N

ID de message de l'en-tête de réponse, UUID_V4. Renvoyer ici l'header.message_id du message de requête

version

string

N

Numéro de version du protocole de la requête. Actuellement fixe à 1.

Réponse réussie--PayloadObject:

Selon le type de requête, la structure de réponse est différente. Pour plus de détails, veuillez vous référer au document d'instructions de la requête spécifique.

Réponse d'échec--PayloadObject:

Attribut

Type

Optionnel

Description

type

string

N

Types d'erreur:

  • ENDPOINT_UNREACHABLE: L'appareil est injoignable ou hors ligne

  • ENDPOINT_LOW_POWER: L'appareil est en mode basse consommation et ne peut pas être contrôlé

  • INVALID_DIRECTIVE: Directive anormale de la passerelle

  • NO_SUCH_ENDPOINT: L'appareil n'existe pas

  • NOT_SUPPORTED_IN_CURRENT_MODE: Le mode actuel ne prend pas en charge l'opération

  • INTERNAL_ERROR: Erreur de service interne

  • REMOTE_KEY_CODE_NOT_LEARNED: Code de touche de télécommande non appris |

:::astuces Conditions: Les paramètres de la requête sont légaux. **Code d'état : **200 OK Paramètres de la réponse : :::

UpdateDeviceStates

Paramètres de la requête : PayloadObject:

Attribut

Type

Optionnel

Description

état

object

N

État de l'appareil, Voir [Fonctionnalités d'appareils prises en charge] pour plus de détails.

Exemple de requête :

Paramètres de la réponse : PayloadObject:Objet vide Exemple de réponse réussie

QueryDeviceStates

Paramètres de la requête : PayloadObject:

Attribut

Type

Optionnel

Description

état

object

N

État de l'appareil, Voir [Fonctionnalités d'appareils prises en charge] pour plus de détails.

Exemple de requête :

Paramètres de la réponse : PayloadObject:

Attribut

Type

Optionnel

Description

état

object

N

État de l'appareil, Voir [Fonctionnalités d'appareils prises en charge] pour plus de détails.

Exemple de réponse :

ConfigureDeviceCapabilities

Paramètres de la requête : PayloadObject:

Attribut

Type

Optionnel

Description

capabilities

CapabilityObject[]

N

Liste des capacités. Les détails peuvent être consultés dans la section fonctionnalités d'appareils prises en charge. Notez que le champ permission ne peut pas être modifié, fournir la même valeur lors de la synchronisation.

Exemple de requête :

Paramètres de la réponse : PayloadObject:Objet vide Exemple de réponse réussie

5. Événements envoyés par le serveur

Description de l'interface MDN EventSource:https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events

5.1 Instruction

La passerelle prend en charge le push de messages vers le client en utilisant SSE (Server-sent events). Le client peut surveiller les messages SSE après obtention des identifiants d'accès et peut analyser le contenu des messages push selon le protocole de notification d'événements de l'interface de développement après réception des messages poussés par la passerelle. Il convient de noter que la passerelle utilise actuellement le protocole HTTP1.1, donc SSE côté navigateur aura une limite maximale de connexions ne dépassant pas 6 (Les instructions spécifiques se trouvent dans la description de l'interface MDN EventSource.)

5.2 Format commun

:::astuces

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

  • MéthodeGET ::: Paramètres de la requête :

Nom
Type
Optionnel
Description

access_token

string

N

Jeton d'accès

Remarque : Lors de la demande d'une connexion SSE, la passerelle vérifiera l'access_token, et elle renverra une erreur d'échec d'authentification si le token est invalide. { "error": 401, "data": {}, "message": "invalid access_token"}

## Par exemple : Nom du module : device Version : 1,v2,v3 Type de message : addDevice

Exemple :

5.3 Module Appareil

a. Événement d'ajout d'appareil

:::tips Nom du module:device Version:v2 Type de message:addDevice paramètres event.data: :::

Nom
Type
Optionnel
Description

payload

ResponseDeviceObjectObject - Interface identique à celle de Obtenir la liste d'appareils

N

informations sur l'appareil

Exemple :

b. Événement de mise à jour de l'état de l'appareil

:::tips Nom du module:device Version:v2 Type de message:updateDeviceState paramètres event.data: :::

Nom
Type
Optionnel
Description

endpoint

EndpointObject

N

Informations sur l'appareil

payload

objet。 Structure identique à l'état de l'appareil

N

Données d'état de l'appareil

EndpointObject :

Paramètre
Type
Optionnel
Description

serial_number

string

N

Numéro de série unique de l'appareil

third_serial_number

string

Y

Le numéro de série unique de l'appareil tiers. Pour les appareils connectés via des interfaces ouvertes, ce champ est requis.

Exemple :

c. Événement de mise à jour des informations de l'appareil

:::tips Nom du module:device Version:v2 Type de message:updateDeviceInfo paramètres event.data: :::

Nom
Type
Optionnel
Description

endpoint

EndpointObject

N

Informations sur l'appareil

payload

DeviceChangeObject

N

Données de changement d'appareil

EndpointObject :

Attribut
Type
Optionnel
Description

serial_number

string

N

Numéro de série unique de l'appareil

third_serial_number

string

Y

Le numéro de série unique de l'appareil tiers. Pour les appareils connectés via des interfaces ouvertes, ce champ est requis.

DeviceChangeObject

Nom
Type
Optionnel
Description

name

string

N

Nom de l'appareil

capabilities

CapabilityObject []

Y

Liste des capacités de l'appareil.

étiquettes

object

Y

étiquettesobject | Nullable | Paires clé-valeur JSON pour les informations personnalisées de l'appareil.

  • Peut être utilisé pour stocker les canaux de l'appareil.

  • Peut être utilisé pour stocker les unités de température.

  • Pour d'autres données personnalisées tierces. |

Exemple :

d. Événement de suppression d'appareil

:::tips Nom du module:device Version:v2 Type de message:deleteDevice paramètres event.data: :::

** Nom **
** Type **
** Optionnel**
** Description **

endpoint

EndpointObject

N

Informations sur l'appareil

EndpointObject :

Attribut
Type
Optionnel
Description

serial_number

string

N

Numéro de série unique de l'appareil

third_serial_number

string

Y

Le numéro de série unique de l'appareil tiers. Pour les appareils connectés via des interfaces ouvertes, ce champ est requis.

Exemple :

e. Événement de mise à jour de l'état en ligne de l'appareil

:::tips Nom du module:device Version:v2 Type de message:updateDeviceOnline paramètres event.data: :::

Nom
Type
Optionnel
Description

endpoint

EndpointObject

N

Informations sur l'appareil

payload

DeviceChangeObject

N

Données de changement d'appareil

EndpointObject :

Attribut
Type
Optionnel
Description

serial_number

string

N

Numéro de série unique de l'appareil

third_serial_number

string

Y

Le numéro de série unique de l'appareil tiers. Pour les appareils connectés via des interfaces ouvertes, ce champ est requis.

DeviceChangeObject

Nom
Type
Optionnel
Description

en ligne

boolean

N

État en ligne de l'appareil

Exemple :

5.4 Module Passerelle

a. Événement de mise à jour de l'état de sécurité

:::tips Nom du module:device Version:v2 Type de message:updateDeviceOnline paramètres event.data: :::

Attribut

Type

Optionnel

Description

payload

SecurityStateObject

N

Informations sur l'appareil

SecurityStateObject

Attribut

Type

Optionnel

Description

alarm_state

string

N

  • arming | Armé

  • disarming | Désarmé |

Exemple :

5.5 Module Sécurité

a. Événement de mise à jour de l'état d'armement

:::tips Nom du module:device Version:v2 Type de message:updateDeviceOnline paramètres event.data: :::

Attribut

Type

Optionnel

Description

payload

ArmStateObject

N

informations d'armement et de désarmement

ArmStateObject:

Attribut

Type

Optionnel

Description

arm_state

string

N

  • arming | Armé

  • disarming | Désarmé | | détail | DetailObject | N | Détails d'armement/désarmement |

DetailObject:

Attribut

Type

Optionnel

Description

sid

int

N

ID du mode de sécurité

name

string

N

Nom de la sécurité

Exemple

6. TTS (Synthèse vocale) Fonction du moteur

6.1 Instruction

Rôle clé

  • Fournisseur de service TTS : Le fournisseur du moteur de service TTS est responsable de l'enregistrement du moteur TTS sur la passerelle et de la fourniture des services TTS

  • Serveur de la passerelle:iHost

  • Client Open API de la passerelle

6.1.1 Enregistrement du service du moteur TTS

  1. 【Fournisseur de service TTS】Appeler l'interface pour enregistrer le moteur TTS sur la passerelle.

  2. 【Serveur de la passerelle】Après un enregistrement réussi, la passerelle stockera les informations de base du moteur TTS (y compris l'adresse du service server_address, et la communication ultérieure entre la passerelle et le fournisseur de service TTS se fera via l'adresse server_address), et allouera l'ID de service du moteur TTS au sein de la passerelle.

image.png

6.1.2 Obtenir la liste des audios synthétisés

  1. 【Client Open API de la passerelle】Appeler l'interface pour obtenir la liste des services de moteur TTS enregistrés. Vous pouvez obtenir la liste actuelle des moteurs TTS enregistrés (y compris l'ID du moteur TTS alloué par la passerelle).

  2. 【Client Open API de la passerelle】Appeler l'interface pour obtenir la liste des audios d'un moteur TTS spécifié. La passerelle émettra une instruction synchrone de liste audio au fournisseur de service TTS spécifié et renverra le résultat.

image.png

6.1.3 Synthèse vocale en spécifiant un moteur vocal

  1. 【Client Open API de la passerelle】Appeler l'interface pour obtenir la liste des services de moteur TTS enregistrés. Vous pouvez obtenir la liste actuelle des moteurs TTS enregistrés (y compris l'ID du moteur TTS alloué par la passerelle).

  2. 【Client Open API de la passerelle】Appeler l'interface pour obtenir la liste des audios d'un moteur TTS spécifié. La passerelle émettra une instruction synchrone de liste audio au fournisseur de service TTS spécifié et renverra le résultat.

image.png

6.1.4 Synthétiser l'audio et lire la parole TTS.

  1. 【Client Open API de la passerelle】Appeler l'interface pour obtenir la liste des services de moteur TTS enregistrés. Vous pouvez obtenir la liste actuelle des moteurs TTS enregistrés (y compris l'ID du moteur TTS alloué par la passerelle).

  2. 【Client Open API de la passerelle】Appeler l'interface pour obtenir la liste des audios d'un moteur TTS spécifié. La passerelle émettra une instruction synchrone de liste audio au fournisseur de service TTS spécifié et renverra le résultat. (y compris l'adresse du fichier audio TTS)

  3. 【Client Open API de la passerelle】Enregistrer l'adresse du fichier audio TTS à partir du résultat renvoyé à l'étape précédente, appeler l'interface de lecture du fichier audio et le lire via la passerelle.

6.2 Module du moteur TTS

6.2.1 Capacités ouvertes de la passerelle

a. Obtenir la liste des services de moteur TTS enregistrés

:::astuces

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

  • MéthodeGET

  • En-tête

    • Content-Type: application/json

    • Authorization: Bearer ::: Paramètres de la requête : aucun Réponse de données correcte :

Attribut

Type

Optionnel

Description

engines

EngineObject []

N

Liste des moteurs TTS enregistrés

Structure de EngineObject

Attribut

Type

Optionnel

Description

id

string

N

ID du moteur attribué par la passerelle

name

string

N

Nom du service du moteur TS

:::astuce Conditions : Les paramètres de la requête sont légaux et la vérification d'identité de l'utilisateur est passée. **Code d'état : **200 OK Exemple de réponse :: :::

b. Obtenir la liste des audios d'un moteur TTS spécifié

:::astuces

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

  • MéthodeGET

  • En-tête

    • Content-Type: application/json

    • Authorization: Bearer ::: Paramètres de la requête : aucun Réponse de données correcte :

Attribut

Type

Optionnel

Description

audio_list

AudioObject []

N

Liste audio

Structure de AudioObject

Attribut

Type

Optionnel

Description

url

string

N

URL du fichier audio, par exemple :

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

label

string

Y

Libellé du fichier audio

:::astuce Conditions : Les paramètres de la requête sont légaux et la vérification d'identité de l'utilisateur est passée. **Code d'état : **200 OK **Code d'erreur : **

  • 190000 Le moteur fonctionne anormalement

Exemple de réponse :: :::

c .Effectuer la synthèse vocale en utilisant le moteur TTS spécifié

:::astuces

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

  • MéthodePOST

  • En-tête

    • Content-Type: application/json

    • Authorization: Bearer ::: Paramètres de la requête :

Attribut

Type

Optionnel

Description

text

string

N

Texte utilisé pour synthétiser l'audio

label

string

Y

Libellé du fichier audio

language

string

Y

Champ transparent. Code de langue optionnel pour la requête de synthèse vocale. La liste spécifique des codes de langue pris en charge est fournie par le fournisseur du service de moteur TTS. Notez que le service du moteur TTS doit prendre en charge une langue par défaut pour la synthèse vocale, ce qui signifie que si la langue n'est pas fournie, la langue par défaut du moteur sera utilisée pour la synthèse.

options

object

Y

Champ transparent. Il est utilisé pour transmettre les paramètres de configuration requis pour la synthèse au service de moteur TTS.

Réponse de données correcte :

Attribut

Type

Optionnel

Description

audio

AudioObject

N

Liste audio

Structure de AudioObject

Attribut

Type

Optionnel

Description

url

string

N

URL du fichier audio, par exemple :

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

label

string

Y

Libellé du fichier audio

:::astuce Conditions : Les paramètres de la requête sont légaux et la vérification d'identité de l'utilisateur est passée. **Code d'état : **200 OK **Code d'erreur : **

  • 190000 Le moteur fonctionne anormalement

Exemple de réponse :: :::

6.2.2 Communication entre la passerelle et le service TTS

a. Enregistrement du service du moteur TTS

Envoyer une requête à la passerelle par le fournisseur de service TTS

:::astuces

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

  • MéthodePOST

  • En-tête

    • Content-Type: application/json

    • Authorization: Bearer ::: Paramètres de la requête :

Attribut

Type

Optionnel

Description

event

EventObject

N

Structure des informations de l'objet d'événement de requête

EventObject

Attribut

Type

Optionnel

Description

header

HeaderObject

N

Informations sur la structure de l'en-tête de la requête

payload

PayloadObject

N

Informations sur la structure du payload de la requête

HeaderObject

Attribut

Type

Optionnel

Description

name

string

N

Nom de la requête. Paramètre optionnel.

  • RegisterTTSEngine | | message_id | string | N | ID du message de la requête, UUID_V4 | | version | string | N | Numéro de version du protocole de la requête. Actuellement fixé à 1 |

PayloadObject

Attribut

Type

Optionnel

Description

service_address

string

N

Adresse du service. Par exemple, http:///

name

string

N

Nom du service

Exemple de requête :

**Paramètres de réponse corrects : **

Attribut

Type

Optionnel

Description

header

HeaderObject

N

Informations sur la structure de l'en-tête de la requête

payload

PayloadObject

N

Informations sur la structure du payload de la requête

HeaderObject

Attribut

Type

Optionnel

Description

name

string

N

Nom de l'en-tête de réponse. Paramètre optionnel :

  • Réponse (Réponse réussie)

  • ErrorResponse (Réponse d'erreur) | | message_id | string | N | ID du message de l'en-tête de réponse, UUID_V4. Message de la requête entrante ici : header.message_id | | version | string | N | Numéro de version du protocole de la requête. Actuellement fixé à 1 |

PayloadObject

Attribut

Type

Optionnel

Description

engine_id

string

N

ID du moteur attribué par la passerelle

:::astuce Conditions : Les paramètres de la requête sont légaux et la vérification d'identité de l'utilisateur est passée. **Code d'état : **200 OK Exemple de réponse :: ::: Exemple de réponse correcte ::

**Paramètres de réponse anormale : **

Attribut

Type

Optionnel

Description

type

string

N

Type d'erreur

  • INVALID_PARAMETERS (Erreur de paramètres)

  • AUTH_FAILURE (Échec de l'authentification)

  • INTERNAL_ERROR (Erreur interne du service) | | description | string | N | Description de l'erreur |

Exemple de réponse d'erreur ::

b. Commande de synchronisation de la liste audio

Envoyer la commande au fournisseur de service TTS depuis la passerelle.

:::astuces

  • URL<adresse du service>

  • MéthodePOST

  • En-tête

    • Content-Type: application/json ::: Paramètres de la requête :

Attribut

Type

Optionnel

Description

directive

DirectiveObject

N

Informations sur la structure de l'objet d'instruction

DirectiveObject

Attribut

Type

Optionnel

Description

header

HeaderObject

N

Informations sur la structure de l'en-tête de la requête

payload

PayloadObject

N

Informations sur la structure du payload de la requête

HeaderObject

Attribut

Type

Optionnel

Description

name

string

N

Nom de la requête. Paramètre optionnel :

  • SyncTTSAudioList | | message_id | string | N | ID du message de la requête, UUID_V4 | | version | string | N | Numéro de version du protocole de la requête. Actuellement fixé à 1 |

Exemple de requête :

**Paramètres de réponse corrects : **

Attribut

Type

Optionnel

Description

header

HeaderObject

N

Informations sur la structure de l'en-tête de la requête

payload

PayloadObject

N

Informations sur la structure du payload de la requête

HeaderObject

Attribut

Type

Optionnel

Description

name

string

N

Nom de l'en-tête de réponse. Paramètre optionnel :

  • Réponse (Réponse réussie)

  • ErrorResponse (Réponse d'erreur) | | message_id | string | N | ID du message de l'en-tête de réponse, UUID_V4. Message de la requête entrante ici : header.message_id | | version | string | N | Numéro de version du protocole de la requête. Actuellement fixé à 1 |

PayloadObject :

Attribut

Type

Optionnel

Description

audio_list

AudioObject []

N

Liste audio TTS

Structure de AudioObject

Attribut

Type

Optionnel

Description

url

string

N

URL du fichier audio, par exemple :

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

label

string

Y

Libellé du fichier audio

:::astuce Conditions : Les paramètres de la requête sont légaux et la vérification d'identité de l'utilisateur est passée. **Code d'état : **200 OK Exemple de réponse :: ::: Exemple de réponse correcte ::

**Paramètres de réponse anormale : **

Attribut

Type

Optionnel

Description

type

string

N

Type d'erreur

  • INVALID_PARAMETERS (Erreur de paramètres)

  • AUTH_FAILURE (Échec de l'authentification)

  • INTERNAL_ERROR (Erreur interne du service) | | description | string | N | Description de l'erreur |

Exemple de réponse d'erreur ::

c. Commande de synthèse vocale

Envoyer la commande au fournisseur de service TTS depuis la passerelle.

:::astuces

  • URL<adresse du service>

  • MéthodePOST

  • En-tête

    • Content-Type: application/json ::: Paramètres de la requête :

Attribut

Type

Optionnel

Description

directive

DirectiveObject

N

Informations sur la structure de l'objet d'instruction

DirectiveObject

Attribut

Type

Optionnel

Description

header

HeaderObject

N

Informations sur la structure de l'en-tête de la requête

payload

PayloadObject

N

Informations sur la structure du payload de la requête

HeaderObject

Attribut

Type

Optionnel

Description

name

string

N

Nom de la requête. Paramètre optionnel :

  • SynthesizeSpeech | | message_id | string | N | ID du message de la requête : UUID_V4 | | version | string | N | Numéro de version du protocole de la requête. Actuellement fixé à 1 |

PayloadObject

Attribut

Type

Optionnel

Description

text

string

N

Texte utilisé pour synthétiser l'audio

label

string

Y

Libellé du fichier audio

language

string

Y

Champ transparent. Code de langue optionnel pour la requête de synthèse vocale. La liste spécifique des codes de langue pris en charge est fournie par le fournisseur du service de moteur TTS. Notez que le service du moteur TTS doit prendre en charge une langue par défaut pour la synthèse vocale, ce qui signifie que si la langue n'est pas fournie, la langue par défaut du moteur sera utilisée pour la synthèse.

options

object

Y

Champ transparent. Il est utilisé pour transmettre les paramètres de configuration requis pour la synthèse au service de moteur TTS.

Exemple de requête :

**Paramètres de réponse corrects : **

Attribut

Type

Optionnel

Description

header

HeaderObject

N

Informations sur la structure de l'en-tête de la requête

payload

PayloadObject

N

Informations sur la structure du payload de la requête

HeaderObject

Attribut

Type

Optionnel

Description

name

string

N

Nom de l'en-tête de réponse. Paramètre optionnel :

  • Réponse (Réponse réussie)

  • ErrorResponse (Réponse d'erreur) | | message_id | string | N | ID du message de l'en-tête de réponse, UUID_V4. Message de la requête entrante ici : header.message_id | | version | string | N | Numéro de version du protocole de la requête. Actuellement fixé à 1 |

PayloadObject

Attribut

Type

Optionnel

Description

audio

AudioObject

N

Audio TTS

Structure de AudioObject

Attribut

Type

Optionnel

Description

url

string

N

URL du fichier audio, par exemple :

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

label

string

Y

Libellé du fichier audio

:::astuce Conditions : Les paramètres de la requête sont légaux et la vérification d'identité de l'utilisateur est passée. **Code d'état : **200 OK Exemple de réponse :: ::: Exemple de réponse correcte ::

**Paramètres de réponse anormale : **

Attribut

Type

Optionnel

Description

type

string

N

Type d'erreur

  • INVALID_PARAMETERS (Erreur de paramètres)

  • AUTH_FAILURE (Échec de l'authentification)

  • INTERNAL_ERROR (Erreur interne du service) | | description | string | N | Description de l'erreur |

Exemple de réponse d'erreur ::

7. Module multimédia

7.1 Lecture d'un fichier audio

:::astuces

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

  • MéthodePOST

  • En-tête

    • Content-Type: application/json

    • Authorization: Bearer ::: Paramètres de la requête :

Attribut

Type

Optionnel

Description

audio_url

string

N

Adresse URL audio

Réponse de données correcte : :::astuce Conditions : Les paramètres de la requête sont légaux et la vérification d'identité de l'utilisateur est passée. **Code d'état : **200 OK Exemple de réponse :: :::

8. Carte UI personnalisée

Les cartes UI personnalisées vous permettent d'afficher n'importe quel contenu souhaité dans la carte. Ce contenu peut être une page Web, une image ou tout service avec une interface utilisateur. Vous devez simplement fournir l'URL du contenu que vous souhaitez afficher. La carte UI adaptera automatiquement sa largeur et sa hauteur, et le contenu sera rendu à l'aide d'une iFrame.

8.1 Instruction

Rôle clé

  • Fournisseur de service UI: Le fournisseur responsable de la création des cartes UI personnalisées sur la passerelle.

  • Serveur de la passerelle: Le serveur de la passerelle (iHost).

  • Client Open API de la passerelle: Le client Open API pour la passerelle.

8.1.1 Création d'une carte UI personnalisée

  • [Fournisseur de service UI]: Appelle l'API pour créer une carte UI personnalisée sur la passerelle.

  • [Serveur de la passerelle]: Lors d'un enregistrement réussi, la passerelle stocke les informations de base de la carte UI (y compris la configuration de taille et l'URL de la ressource de la carte) et attribue un ID interne de carte UI au sein de la passerelle.

image.png

8.1.2 Récupération de la liste des cartes UI

  • [Fournisseur de service UI]: Appelle l'API pour récupérer la liste des cartes UI.

  • [Serveur de la passerelle]: Renvoie la liste des cartes UI stockées sur la passerelle, y compris les cartes UI personnalisées non créées par l'appelant.

image.png

8.1.3 Modification de la configuration d'une carte UI spécifiée

  • [Fournisseur de service UI]: Appelle l'API pour modifier la configuration d'une carte UI spécifiée, telle que la configuration de taille et l'URL de la ressource.

  • [Serveur de la passerelle]: Après modification réussie, la passerelle stocke les informations mises à jour de la carte UI, y compris la nouvelle configuration de taille et l'URL de la ressource.

image.png

8.1.4 Suppression d'une carte UI personnalisée

  1. [Fournisseur de service UI]: Appelle l'API pour supprimer une carte UI personnalisée spécifiée.

  2. [Serveur de la passerelle]: La passerelle supprimera toutes les informations liées à la carte UI spécifiée.

image.png

8.2 Module de carte UI personnalisée

8.2.1 Création d'une carte UI personnalisée

Le fournisseur de service UI envoie une requête à la passerelle pour créer une carte UI personnalisée.

:::astuces

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

  • MéthodePOST

  • En-tête

    • Content-Type: application/json

    • Authorization: Bearer ::: Paramètres de la requête :

Attribut

Type

Optionnel

Description

label

string

Y

Libellé de la carte : Utilisé pour décrire la carte. C'est l'alias de la carte.

cast_settings

CastSettingsObject

Y

Paramètres de la carte Cast : paramètres de configuration pour les cartes Cast.

web_settings

WebSettingsObject

N

Paramètres de la carte Web : paramètres de configuration pour les cartes Web.

CastSettingsObject :

Attribut

Type

Optionnel

Description

dimensions

DimensionObject []

N

Configuration de taille : Doit inclure au moins une configuration.

défaut

string

N

Spécification par défaut : La spécification de taille par défaut est utilisée, avec paramètres optionnels : 2x2

WebSettingsObject :

Attribut

Type

Optionnel

Description

dimensions

DimensionObject []

N

Configuration de taille : Doit inclure au moins une configuration.

drawer_component

DrawerObject

Y

Paramètres d'affichage du composant tiroir.

défaut

string

N

Spécification par défaut :

  • 1x1

  • 2x1 |

DimensionObject :

Attribut

Type

Optionnel

Description

src

string

N

URL de la ressource : Par exemple : http://example.html

size

string

N

Spécifications de taille :

Paramètres optionnels de CastSettingsObject :

  • 2×2

Paramètres optionnels de WebSettingsObject :

  • 1x1

  • 2x1 |

DrawerObject :

Attribut

Type

Optionnel

Description

src

string

N

URL de la ressource : Par exemple : http://example.html

Réponse de données réussie :

Attribut

Type

Optionnel

Description

id

string

N

ID unique de la carte UI

:::astuces Conditions : Les paramètres de la requête sont légaux et la vérification de l'identité de l'utilisateur est passée. **Code d'état : ** 200 OK ::: Exemple de requête:

Exemple de réponse :

8.2.2 Récupérer la liste des cartes UI

:::astuces

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

  • MéthodeGET

  • En-tête

    • Content-Type: application/json

    • Authorization: Bearer ::: Paramètres de la requête : Aucun Paramètres de réponse :

Attribut

Type

Optionnel

Description

data

CardObject[]

N

Liste des cartes UI

CardObjec Objet :

Attribut

Type

Optionnel

Description

id

string

N

ID de la carte : Un identifiant unique pour la carte.

label

string

Y

Libellé de la carte : Utilisé pour décrire la carte. Il sert d'alias ou de nom pour la carte.

cast_settings

CastSettingsObject

Y

Libellé de la carte : Utilisé pour décrire la carte. C'est l'alias de la carte.

web_settings

WebSettingsObject

N

Paramètres de la carte Cast : paramètres de configuration pour les cartes Cast.

app_name

string

Y

Paramètres de la carte Web : paramètres de configuration pour les cartes Web.

CastSettingsObject :

Attribut

Type

Optionnel

Description

dimensions

DimensionObject []

N

Configuration de taille : Doit inclure au moins une configuration.

défaut

string

N

Spécification par défaut :

Paramètre optionnel : 2x2

utilisé

string

N

Spécification actuelle :

Paramètre optionnel : 2x2

WebSettingsObject :

Attribut

Type

Optionnel

Description

dimensions

DimensionObject []

N

Configuration de taille : Doit inclure au moins une configuration.

drawer_component

DrawerObject

Y

Paramètres d'affichage du composant tiroir.

défaut

string

N

Spécification par défaut :

Paramètre optionnel :

  • 1x1

  • 2x1 | | used | string | N | Spécification actuelle : Paramètre optionnel :

  • 1x1

  • 2x1 |

DimensionObject :

Attribut

Type

Optionnel

Description

src

string

N

URL de la ressource : Par exemple : http://example.html

size

string

N

Spécifications de taille :

Paramètre optionnel :

  • 1x1

  • 2x1

Remarque: Actuellement, les cartes cast ne prennent en charge que la spécification 2x2. La spécification 2x2 ne sera pas effective. |

DrawerObject :

Attribut

Type

Optionnel

Description

src

string

N

URL de la ressource : Par exemple : http://example.html

Exemple de réponse :

8.2.3 Modifier la configuration d'une carte UI spécifiée

Les utilisateurs autorisés sont autorisés à modifier la configuration d'une carte UI existante via cette interface. Les fournisseurs de services de cartes personnalisées ne peuvent modifier que les cartes UI qu'ils ont créées.

:::astuces

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

  • MéthodePUT

  • En-tête

    • Content-Type: application/json

    • Authorization: Bearer ::: Paramètres de la requête :

Attribut

Type

Optionnel

Description

label

string

Y

Utilisé pour décrire la carte. C'est l'alias de la carte.

cast_settings

CastSettingsObject

Y

Paramètres de la carte Cast

web_settings

WebSettingsObject

Y

Paramètres de la carte Web

CastSettingsObject :

Attribut

Type

Optionnel

Description

utilisé

string

Y, L'un ou l'autre utilisé ou src doit être fourni, mais au moins un de ces paramètres est requis.

Spécification actuelle :

Paramètre optionnel :

  • 2x2

| | src | string | Y, L'un ou l'autre utilisé ou src doit être fourni, mais au moins un de ces paramètres est requis. | URL de la ressource : http://example.html |

WebSettingsObject :

Attribut

Type

Optionnel

Description

utilisé

string

Y, L'un ou l'autre utilisé ou src doit être fourni, mais au moins un de ces paramètres est requis.

Spécification actuelle :

Paramètre optionnel :

  • 1x1

  • 2x1 | | src | string | Y, L'un ou l'autre utilisé ou src doit être fourni, mais au moins un de ces paramètres est requis. | URL de la ressource : http://example.html |

Réponse de données réussie : :::tips Conditions: Les paramètres de la requête sont légaux et la vérification d'identité de l'utilisateur est passée. La carte UI modifiée doit avoir été créée par le fournisseur de carte UI personnalisée appelant l'interface. **Code d'état : ** 200 OK Code d'erreur :

  • 406: Pas d'autorisation pour accéder à cette ressource ::: **Exemple de réponse : **

**Exemple de requête : **

8.2.4 Supprimer une carte UI personnalisée

Les utilisateurs autorisés sont autorisés à supprimer une carte UI existante en utilisant cette interface. Les fournisseurs de cartes personnalisées ne peuvent supprimer que les cartes UI qu'ils ont créées.

:::astuces

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

  • MéthodeDELETE

  • En-tête

    • Content-Type: application/json

    • Authorization: Bearer ::: Paramètres de la requête : Aucun Réponse de données réussie : :::astuce Conditions: Les paramètres de la requête sont légaux et la vérification d'identité de l'utilisateur est passée. La carte UI modifiée doit avoir été créée par le fournisseur de carte UI personnalisée appelant l'interface. **Code d'état : ** 200 OK Code d'erreur :

  • 406: Pas d'autorisation pour accéder à cette ressource. ::: **Exemple de réponse : **

Mis à jour