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.
Connectez-vous à votre routeur sans fil et vérifiez l'adresse IP de la passerelle dans le DHCP.
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.
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 :
Bit 0 : Permet la consultation de cet élément de configuration
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 :
Lorsque
**type = enum**:Le
champ valeur(décrivant la valeur de l'élément de configuration) est requis sipermissionpermet la modification ("10"ou"11").Le
défaut(décrivant la valeur par défaut de l'élément de configuration) etvaleurs(décrivant les valeurs sélectionnables pour l'élément de configuration) les champs sont optionnels.
Lorsque
**type = numeric**:Le
champ valeurle champ est requis sipermissionpermet 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)
Lorsque
**type = object**:Le
champ valeurle champ est requis sipermissionpermet la modification ("10"ou"11").Le
défautle champ est optionnel.
Lorsque
**type = boolean**:Le
champ valeurle champ est requis sipermissionpermet la modification ("10"ou"11").Le
défautle champ est optionnel.
Lorsque
**type = string**:Le
champ valeurle champ est requis sipermissionpermet la modification ("10"ou"11").Le
défautle champ est optionnel. |
3. API Web
Type de données
string
Type de données chaîne. Encodé en UTF8.
nombre
Type de données nombre. format binaire IEEE 754 double précision 64 bits
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
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
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_tokenMéthode:
GETEn-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/runtimeMéthode:
GETEn-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/configMéthode:
PUTEn-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/bridgeMéthode:
GETEn-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/muteMéthode:
PUTEn-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/unmuteMéthode:
PUTEn-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_alarmMéthode:
PUTEn-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/rebootMéthode:
POSTEn-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/speakerMéthode:
POSTEn-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
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:
Erreur d'accès à l'adresse de flux de la caméra (erreur de format, échec d'autorisation, exception réseau, etc.)
L'appareil existe déjà
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éthode:
DELETEEn-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/securityMéthode:
GETEn-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}/enableMéthode:
PUTEn-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}/disableMéthode:
PUTEn-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/enableMéthode:
PUTEn-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/disableMéthode:
PUTEn-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
Déterminez la classification de l'appareil dans la passerelle. Pour plus de détails, veuillez consulter [Supported Device Type].
Déterminez les capacités auxquelles l'appareil peut accéder. Pour plus de détails, veuillez consulter [Supported Device Capabilities].
Appelez l'interface [Discovery Request] pour ajouter l'appareil à la passerelle.
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.
Si l'état de l'appareil tiers change, vous devez appeler l'interface [Device States Change Report] pour renvoyer le dernier état à la passerelle.
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
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 :
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é.
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éthode:
GET::: Paramètres de la requête :
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: :::
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: :::
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 :
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: :::
endpoint
EndpointObject
N
Informations sur l'appareil
payload
DeviceChangeObject
N
Données de changement d'appareil
EndpointObject :
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
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: :::
endpoint
EndpointObject
N
Informations sur l'appareil
EndpointObject :
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: :::
endpoint
EndpointObject
N
Informations sur l'appareil
payload
DeviceChangeObject
N
Données de changement d'appareil
EndpointObject :
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
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
【Fournisseur de service TTS】Appeler l'interface pour enregistrer le moteur TTS sur la passerelle.
【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
【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).
【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
【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).
【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.
【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).
【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)
【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/enginesMéthode:
GETEn-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-listMéthode:
GETEn-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}/synthesizeMéthode:
POSTEn-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/eventMéthode:
POSTEn-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éthode:
POSTEn-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éthode:
POSTEn-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-playerMéthode:
POSTEn-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
[Fournisseur de service UI] : Appelle l'API pour supprimer une carte UI personnalisée spécifiée.
[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/cardsMéthode:
POSTEn-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/cardsMéthode:
GETEn-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éthode:
PUTEn-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éousrcdoit ê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éthode:
DELETEEn-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 OKCode d'erreur :
406 : Pas d'autorisation pour accéder à cette ressource. ::: **Exemple de réponse : **
Mis à jour