For the complete documentation index, see llms.txt. This page is also available as Markdown.

Guide du développeur et de l'API

1. Commencer à utiliser

1.1 Préparation

Étape 1. Veuillez vous assurer que la passerelle est alimentée et fonctionne correctement.

Étape 2. Assurez-vous que la passerelle et le PC sont connectés au même réseau local. 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 l'appui, l'accès à l'interface est valable 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": "link button not pressed" 
}
  • Cliquez sur <Terminé> et appelez à nouveau l'interface [Access Token]. La réponse est réussie 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 l'appel de l'interface [Access Token], une fenêtre contextuelle globale de la console Web CUBE invite l'utilisateur à confirmer l'acquisition des identifiants d'appel de l'interface.

  • Remarque : Si vous ouvrez plus d'une page de console Web CUBE, la fenêtre de confirmation apparaîtra sur plusieurs pages de console web en même temps, et la fenêtre contextuelle des autres pages sera fermée après avoir cliqué sur la confirmation sur l'une des pages de la console web.

2. Concept central

2.1 Adresse de l'interface de développement

L'API Web de la passerelle a 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 de fonction 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 sert à identifier des catégories spécifiques (d'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 sert à décrire les sous-fonctions spécifiques de l'appareil. Par exemple le contrôle d'alimentation, le contrôle de 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 mondialement unique et de type chaîne. Plusieurs mots anglais doivent être séparés par des tirets ("-"). Par exemple : "thermostat-target-setpoint".

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

    • permission : Décrit les permissions associées à la capacité. Le type est chaîne, formaté en code binaire 8421. Exemples incluent :

      • Appareil contrôlable : "1000"

      • Appareil configurable : "0010"

      • Appareil contrôlable et configurable : "1010"

      • Appareil contrôlable et reportable : "1100"

La signification de chaque bit, de droite à gauche, est la suivante : ⅰ. Bit 0 : Permet d'interroger l'appareil ⅱ. Bit 1 : Permet de configurer l'appareil ⅲ. Bit 2 : Permet à l'appareil de rapporter des données ⅳ. Bit 3 : Permet de contrôler 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 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 se trouvent dans le tableau ci-dessous.

Attribut
Type
Optionnel
Description

permission

string

N

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

Valeurs optionnelles :

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

  • Permet la consultation de cet élément de configuration : "01"

  • Permet à la fois la modification et la consultation de cet élément de configuration : "11"

Explication des bits :

  1. Bit 0 : Permet la consultation de cet élément de configuration

  2. Bit 1 : Permet 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 valeur (décrivant la valeur de l'élément de configuration) est requis si permission permet la modification ("10" ou "11").

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

  2. Lorsque **type = numeric**:

    • Le champ valeur le champ est requis si permission permet 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 d'incrément 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 valeur le champ est requis si permission permet la modification ("10" ou "11").

    • Le défaut le champ est optionnel.

  4. Lorsque **type = boolean**:

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

    • Le défaut le champ est optionnel.

  5. Lorsque **type = string**:

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

    • Le défaut le champ est optionnel. |

3. API Web

Type de données

Type
Description

string

Type de données chaîne. Encodé en UTF8.

int

Type de données entier.

objet

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 la réponse

Attribut
Type
Optionnel
Description

error

int

N

Code d'erreur :

0 : Succès

400 : Erreur de paramètre

401 : Échec de l'authentification

500 : Exception serveur

data

objet

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) | | Deep pris en charge | - bootComplete (Démarrage du système terminé)

  • networkConnected (Réseau connecté)

  • networkDisconnected (Réseau déconnecté)

  • systemShutdown (Extinction 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'obtenir un jeton d'accès.

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

  • Remarque : Après l'obtention du 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 jeton d'accès de l'interface. Il est valable 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 la durée 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 la durée 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 du CPU :

Optionnel

valeurs :'c', 'f'

sd_card_used

int

Y

Utilisation de la carte SD (pourcentage) :

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

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

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

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 d'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:

d. Obtenir les informations de la passerelle

Permet aux utilisateurs autorisés d'obtenir les informations 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 d'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:

f. Désactiver le mode silencieux de la passerelle

Permet aux utilisateurs autorisés de désactiver le mode silencieux 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 d'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 du son 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 d'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 d'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 à la fin du temps imparti. Unité : seconde. [0,1799]

BeepObject

Attribut

Type

Optionnel

Description

name

string

N

Le nom de l'événement (deep). Les valeurs prises en charge peuvent être consultées dans [Resource List - Supported deep]

volume

int

N

Le volume de l'événement (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 d'identité de l'utilisateur est passée. **Code d'état : ** 200 OK ::: Exemple de réponse:

3.3 Fonction de gestion des appareils

a. Type d'appareil pris en charge

Type d'appareil

Valeur

Version iHost

Prise (Plug)

plug

≥ 2.1.0

Interrupteur

switch

≥ 2.1.0

Lumière

light

≥ 2.1.0

Rideau

curtain

≥ 2.1.0

Capteur 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

Plafonnier ventilateur (Fanlight)

fanLight

≥ 2.1.0

Climatiseur

airConditioner

≥ 2.1.0

Ventilateur

fan

≥ 2.1.0

Thermostat

thermostat

≥ 2.1.0

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

Interrupteur d'alimentation (power) :

Exemple de déclaration de capacité :

Attribut d'état :

Protocole (Interroger l'état et instructions de contrôle) :

Allumer :

Éteindre :

Commutation de canal (toggle) :

Exemple de déclaration de capacité :

Exemple de composant unique :

Exemple de composants multiples :

Attribut d'état :

Protocole (Interroger l'état et instructions de contrôle) :

Format de basculement :

Inching de canal (toggle-inching) :

Exemple de déclaration de capacité :

Attribut d'état

Aucun

Protocole (Interroger l'état et instructions de contrôle)

Aucun

Réglage de la luminosité (brightness) :

Exemple de déclaration de capacité :

Attribut d'état :

Protocole (Interroger l'état et instructions de contrôle) :

Régler 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 (Interroger l'état et 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 (Interroger l'état et instructions de contrôle) :

Régler la couleur sur Violet :

Réglage en pourcentage (percentage) :

Exemple de déclaration de capacité :

Attribut d'état :

Protocole (Interroger l'état et instructions de contrôle) :

Ajuster à 40 % :

Contrôle du moteur (motor-control) :

Exemple de déclaration de capacité :

Attribut d'état :

Protocole (Interroger l'état et instructions de contrôle) :

Ouvrir le moteur :

Inversion du moteur (motor-reverse) :

Exemple de déclaration de capacité :

Attribut d'état :

Protocole (Interroger l'état et 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) :

Signaler que le moteur est en cours de calibration :

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

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

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


Activation de réveil (identify)

Exemple de déclaration de capacité :

Attributs (État) :

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

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

Signaler l'état d'activation :

Commutation des 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 horaire :

Protocole (Rapport d'état et 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 (Interroger l'état et instructions de contrôle) :

Format :

Exemple :

Mode du thermostat (thermostat-mode)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

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

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et 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 (Interroger l'état et instructions de contrôle) :

Détection de capteur (detect)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Détection de température (temperature)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Détection d'humidité (humidity)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Détection de batterie (battery)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Détection d'un bouton simple (press)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Détection multi-boutons (multi-press)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Détection de la puissance du signal (rssi)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Détection de sabotage (tamper-alert)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

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

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Détection de tension (voltage)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

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

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

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

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Détection de défaut (fault)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Seuil déclencheur (threshold-breaker)

Exemple de déclaration de capacité :

Attributs (État)

  • Aucun

Protocole (Interroger l'état et instructions de contrôle)

  • Aucun

Fonction Inch (inching)

Exemple de déclaration de capacité :

Attributs (État) :

  • Aucun

Protocole (Interroger l'état et instructions de contrôle) :

  • Aucun

Flux de caméra (camera-stream)

Exemple de déclaration de capacité :

Attributs (État) :

  • Aucun

Protocole (Interroger l'état et instructions de contrôle) :

  • Aucun

Contrôle de mode (mode)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Détection de dioxyde de carbone (co2)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Détection d'illumination (illumination)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Détection de fumée (smoke)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

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

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Détection de mouvement (motion)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

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

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

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

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Verrouillage enfant (child-lock)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Anti-coup direct (anti-direct-blow)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Balancement horizontal (horizontal-swing)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Balancement vertical (vertical-swing)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Mode ÉCO (eco)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Basculer au démarrage (toggle-startup)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Détection de maintien (detect-hold)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Basculer Identifier/Activer (toggle-identify)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Basculer Détection de Tension (toggle-voltage)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

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

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

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

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et 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 la plage temporelle :

Protocole (Interroger l'état et 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 lien (lqi)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Configuration fonctionnelle (configuration)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Système (system)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Humidité (moisture)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Pression barométrique (barometric-pressure)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Vitesse du vent (wind-speed)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Direction du vent (wind-direction)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Pluviométrie (rainfall)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Indice UV (ultraviolet-index)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Conductivité électrique (electrical-conductivity)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Puissance d'émission (transmit-power)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Détection PM2.5 (pm25)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Indice COV (voc-index)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Détection de gaz naturel (gas)

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

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

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

Rapport de l'état de travail :

Requête d'état de travail :

Résultat de la requête d'état de travail :

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

Exemple de déclaration de capacité :

Attributs (État) :

Protocole (Interroger l'état et instructions de contrôle) :

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

Exemple de déclaration de capacité :

Attributs (État) :

Programmation à heure unique ou répétée :

Volume à heure unique ou répété :

Protocole (Interroger l'état et instructions de contrôle) :

Programmation à heure unique ou répétée :

Volume à heure unique 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 train de découvrir 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 maximal 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 à l'appareil caméra

≥2.1.0

110011

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

≥2.1.0

110012

L'encodage 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 incompatible avec le mot de passe du flux RTSP

≥2.1.0

110016

La passerelle est en train de découvrir 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 incorrect

≥2.1.0

110019

Échec d'accès à l'adresse de service de l'appareil 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 : Prend actuellement en charge uniquement la recherche de sous-appareils Zigbee.

  • 💡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 d'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 de 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 de la caméra.

SettingsObject

Attribut

Type

Optionnel

Description

streamSetting

StreamSettingObject

N

Configuration du service de flux

StreamSettingObject

Attribut

Type

Optionnel

Description

type

string

N

Configuration du service de flux

permission

string

N

Permission de la capacité. Ne prend en charge que "11" (modifiable).

champ valeur

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:123456@192.168.10.115: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 d'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:

Réponse de données en cas 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 un seul appareil échoue à l'ajout, retourne que tous les appareils ont échoué à l'ajout.

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 L'encodage 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 d'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 de service du 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 renseigné lors de l'obtention du certificat d'interface ouverte, alors tous les appareils ultérieurs connectés via le certificat seront écrits dans ce champ.

display_category

string

N

Catégorie de l'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

state

objet

Y

Objet d'état de l'appareil. Pour des exemples d'état pour différentes capacités, veuillez consulter 【Support Device Capabilities】

tags

objet

Y

Paires clé-valeur au format JSON, informations personnalisées de l'appareil. Les fonctions sont les suivantes : - 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 est dans le même sous-réseau que la passerelle

CapabilityObject 💡Remarque : Veuillez consulter les Exemples de capacités d'appareil prises en charge pour [Supported Device Capabilities].

Attribut

Type

Optionnel

Description

capability

string

N

Nom de la capacité. Pour plus de détails, consultez [Supported Device Capabilities]

permission

string

N

Permission de la capacité. Les valeurs possibles sont "read" (lecteur), "write" (écrivain), "readWrite" (lecture et écriture).

configuration

objet

Y

Informations de configuration de la capacité. Actuellement utilisé pour camera-stream, consultez [Supported Device Capabilities]

name

string

Y

Le champ name dans toggle. Le numéro de sous-canal utilisé pour identifier les appareils multi-canaux. 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 d'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

tags

objet

Y

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

state

objet

Y

Objet d'état de l'appareil. Pour des exemples d'état pour différentes capacités, veuillez consulter [Support Device Capabilities]

configuration

objet

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.

tags

objet

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.

state

objet

Y

Modifier l'état de l'appareil ; pour des détails sur le protocole, référez-vous à "Supported Device Capabilities."

capabilities

CapabilityObject []

Y

Informations de configuration de la capacité ; toutes les capacités qui prennent en charge la configuration peuvent être modifiées. Notez que les permissions ne peuvent pas être changé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 d'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

objet

N

Interroger l'état de l'appareil ; pour des détails sur le protocole, référez-vous à "Supported Device Capabilities."

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 ::: 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 des appareils en réponse

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 d'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 d'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 d'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 d'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 d'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:

4. Accès aux appareils tiers

4.1 Instructions d'accès

Accès aux appareils

Accès de la passerelle tierce

Étapes d'accès

  1. Déterminez la classification de l'appareil dans la passerelle. Pour plus de détails, veuillez consulter [Supported Device Type].

  2. Déterminez les capacités auxquelles l'appareil peut accéder. Pour plus de détails, veuillez consulter [Supported Device Capabilities].

  3. Appelez 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 d'appareil é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 l'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 que l'appareil est connecté à la passerelle.

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

Processus du programme

a. Accès de l'appareil

b. Accès de la passerelle tierce

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

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

EventObject

Attribut

Type

Optionnel

Description

header

HeaderObject

N

Structure de l'en-tête de la requête

endpoint

EndpointObject

Y

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

Structure de la charge utile 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 du message de la requête, UUID_V4

version

string

N

Numéro de version du protocole de la requête. Actuellement fixé à 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

tags

objet

Y

Paires clé-valeur au format JSON, informations personnalisées de 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 la réponse

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

Attribut

Type

Optionnel

Description

header

HeaderObject

N

Structure de l'en-tête de la réponse

payload

PayloadObject

N

Structure de la charge utile de la réponse

HeaderObject

Attribut

Type

Optionnel

Description

name

string

N

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

message_id

string

N

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

version

string

N

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

Réponse réussie--PayloadObject :

Selon le type de requête, la structure de la réponse est différente. Pour plus de détails, veuillez consulter le document d'instruction 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ètres

  • AUTH_FAILURE : Erreur d'autorisation

  • INTERNAL_ERROR : Erreur interne du service | | 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 ultérieurs d'état en ligne 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 de l'appareil. Voir [Supported Device Type] 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

state

objet

N

Informations d'état initial

manufacturer

string

N

Fabricant

model

string

N

Modèle de l'appareil

tags

objet

Y

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

firmware_version

string

N

Version du firmware

service_address

string

N

Adresse de service. Par exemple 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 d'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

state

objet

N

État de l'appareil, voir [Supported device cabilities] 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 existantes ou les fonctions de sécurité.

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 capacités d'appareil prises en charge. **Remarque : **Ce paramètre ne mettra à jour que le champ valeur du paramètre clé au sein du CapabilityObject, et les mises à jour sont autorisées uniquement si le permission pour la paramètre clé est 11 ou 01. Pour la définition de structure spécifique du paramètre dans CapabilityObject, se référer à la description détaillée à la section 2.3 Catégories d'affichage des appareils & Capacités des appareils. | | tags

| object

| Y

| Paires clé-valeur au format JSON, 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

  • Autres données personnalisées tierces |

Exemple de requête :

esponse parameters: 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 demande de la passerelle dans les 3 s. Sinon, la passerelle jugera que le traitement de la commande a expiré.

  2. Si le service tiers est hors ligne, la passerelle définira 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 état 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

Structure de l'objet directive

DirectiveObject

Attribut

Type

Optionnel

Description

header

HeaderObject

N

Structure de l'en-tête de la requête

endpoint

EndpointObject

N

Structure de l'endpoint de la requête

payload

PayloadObject

N

Structure de la charge utile 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 des appareils

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.

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

tags

objet

N

Paires clé-valeur au format JSON, informations personnalisées de 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 la réponse

:::tips **Code de statut HTTP : **200 OK Attribut de réponse HTTP: :::

Attribut

Type

Optionnel

Description

event

EventObject

N

Structure de l'événement de réponse

EventObject

Attribut

Type

Optionnel

Description

header

HeaderObject

N

Structure de l'en-tête de la requête

payload

PayloadObject

N

Structure de la charge utile de la requête

HeaderObject

Attribut

Type

Optionnel

Description

name

string

N

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

message_id

string

N

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

version

string

N

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

Réponse réussie--PayloadObject:

Selon le type de requête, la structure de la réponse est différente. Pour plus de détails, veuillez consulter le document d'instruction de la requête spécifique.

Réponse d'échec--PayloadObject:

Attribut

Type

Optionnel

Description

type

string

N

Types d'erreur:

  • ENDPOINT_UNREACHABLE: Le dispositif est inaccessible ou hors ligne

  • ENDPOINT_LOW_POWER: Le dispositif est en mode basse consommation et ne peut pas être contrôlé

  • INVALID_DIRECTIVE: Directive anormale de la part de la passerelle

  • NO_SUCH_ENDPOINT: Le dispositif n'existe pas

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

  • INTERNAL_ERROR: Erreur interne du service

  • REMOTE_KEY_CODE_NOT_LEARNED: Code de touche de la 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

state

objet

N

État de l'appareil, voir [Supported device cabilities] 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

state

objet

N

État de l'appareil, voir [Supported device cabilities] pour plus de détails.

Exemple de requête :

Paramètres de la réponse : PayloadObject:

Attribut

Type

Optionnel

Description

state

objet

N

État de l'appareil, voir [Supported device cabilities] 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 capacités d'appareil prises en charge. Remarque, le champ permission ne peut pas être modifié, transmettre 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 l'envoi de messages au client via SSE (Server-sent events). Le client peut surveiller les messages SSE après avoir obtenu les informations d'accès et peut analyser le contenu des messages poussés selon le protocole de notification d'événement 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 sera limité à un maximum de 6 connexions (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 renverra une erreur d'échec d'authentification s'il 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 Ajouter l'appareil

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

Nom
Type
Optionnel
Description

payload

ResponseDeviceObjectObject - Interface identique à celle d'Obtenir la liste des 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 event.data paramètres: :::

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 event.data paramètres: :::

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.

tags

objet

Y

tagsobjet | 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 Supprimer l'appareil

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

** 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 event.data paramètres: :::

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 event.data paramètres: :::

Attribut

Type

Optionnel

Description

payload

SecurityStateObject

N

Informations sur l'appareil

SecurityStateObject

Attribut

Type

Optionnel

Description

etat_alarme

string

N

  • armement | Armé

  • désarmement | 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 event.data paramètres: :::

Attribut

Type

Optionnel

Description

payload

ArmStateObject

N

informations d'armement et de désarmement

ArmStateObject:

Attribut

Type

Optionnel

Description

etat_armement

string

N

  • armement | Armé

  • désarmement | 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 (Moteur de synthèse vocale (Text-to-Speech)

6.1 Instructions

Rôle clé

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

  • Serveur de 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 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 les communications ultérieures entre la passerelle et le fournisseur de service TTS se feront via l'adresse server_address), et attribuera l'ID du service du moteur TTS au sein de la passerelle.

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 attribué 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.

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 attribué 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.

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 attribué 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é ouverte de la passerelle

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

:::astuces

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

  • MéthodeGET

  • En-tête

    • Content-Type: application/json

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

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

Étiquette du fichier audio

:::astuce Conditions : Les paramètres de 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 de manière anormale

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

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

Attribut

Type

Optionnel

Description

text

string

N

Texte utilisé pour synthétiser l'audio

label

string

Y

Étiquette 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 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 transmise, la langue par défaut du moteur sera utilisée pour la synthèse.

options

objet

Y

Champ transparent. Il est utilisé pour transmettre les paramètres de configuration requis pour la synthèse au service du 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

Étiquette du fichier audio

:::astuce Conditions : Les paramètres de 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 de manière anormale

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

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

Attribut

Type

Optionnel

Description

event

EventObject

N

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

EventObject

Attribut

Type

Optionnel

Description

header

HeaderObject

N

Structure de l'en-tête de la requête

payload

PayloadObject

N

Structure de la charge utile 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 requête, UUID_V4 | | version | string | N | Numéro de version du protocole de 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

Structure de l'en-tête de la requête

payload

PayloadObject

N

Structure de la charge utile 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 d'en-tête de réponse, UUID_V4. Requête entrante ici : header.message_id | | version | string | N | Numéro de version du protocole de 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 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 anormaux : **

Attribut

Type

Optionnel

Description

type

string

N

Type d'erreur

  • INVALID_PARAMETERS (Erreur de paramètres)

  • AUTH_FAILURE (Échec d'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 une commande au fournisseur de service TTS par 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

Structure de l'en-tête de la requête

payload

PayloadObject

N

Structure de la charge utile 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 requête, UUID_V4 | | version | string | N | Numéro de version du protocole de requête. Actuellement fixé à 1 |

Exemple de requête :

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

Attribut

Type

Optionnel

Description

header

HeaderObject

N

Structure de l'en-tête de la requête

payload

PayloadObject

N

Structure de la charge utile 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 d'en-tête de réponse, UUID_V4. Requête entrante ici : header.message_id | | version | string | N | Numéro de version du protocole de 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

Étiquette du fichier audio

:::astuce Conditions : Les paramètres de 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 anormaux : **

Attribut

Type

Optionnel

Description

type

string

N

Type d'erreur

  • INVALID_PARAMETERS (Erreur de paramètres)

  • AUTH_FAILURE (Échec d'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 une commande au fournisseur de service TTS par 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

Structure de l'en-tête de la requête

payload

PayloadObject

N

Structure de la charge utile 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 requête : UUID_V4 | | version | string | N | Numéro de version du protocole de requête. Actuellement fixé à 1 |

PayloadObject

Attribut

Type

Optionnel

Description

text

string

N

Texte utilisé pour synthétiser l'audio

label

string

Y

Étiquette 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 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 transmise, la langue par défaut du moteur sera utilisée pour la synthèse.

options

objet

Y

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

Exemple de requête :

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

Attribut

Type

Optionnel

Description

header

HeaderObject

N

Structure de l'en-tête de la requête

payload

PayloadObject

N

Structure de la charge utile 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 d'en-tête de réponse, UUID_V4. Requête entrante ici : header.message_id | | version | string | N | Numéro de version du protocole de 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

Étiquette du fichier audio

:::astuce Conditions : Les paramètres de 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 anormaux : **

Attribut

Type

Optionnel

Description

type

string

N

Type d'erreur

  • INVALID_PARAMETERS (Erreur de paramètres)

  • AUTH_FAILURE (Échec d'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 Lire un fichier audio

:::astuces

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

  • MéthodePOST

  • En-tête

    • Content-Type: application/json

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

Attribut

Type

Optionnel

Description

audio_url

string

N

Adresse URL de l'audio

Réponse de données correcte : :::astuce Conditions : Les paramètres de 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 d'interface utilisateur personnalisée

Les cartes UI personnalisées vous permettent d'afficher tout contenu souhaité à l'intérieur de la carte. Ce contenu peut être une page web, une image ou tout service disposant d'une interface utilisateur. Il suffit de 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 Instructions

Rôle clé

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

  • Serveur de passerelle : Le serveur de 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 passerelle] : Après 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.

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

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 passerelle] : Après une 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.

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 passerelle] : La passerelle supprimera toutes les informations liées à la carte UI spécifiée.

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

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

Attribut

Type

Optionnel

Description

label

string

Y

Étiquette de la carte : Utilisée 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 des 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 d'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

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

Attribut

Type

Optionnel

Description

data

CardObject[]

N

Liste des cartes UI

Objet CardObjec :

Attribut

Type

Optionnel

Description

id

string

N

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

label

string

Y

Étiquette de la carte : Utilisée pour décrire la carte. Elle sert d'alias ou de nom pour la carte.

cast_settings

CastSettingsObject

Y

Étiquette de la carte : Utilisée 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 | | utilisé | 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

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

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