Guide développeur et API
1. Commencer à utiliser
1.1 Préparation
Étape 1. Veuillez vous assurer que la passerelle est sous tension et fonctionne correctement.
Étape 2. Assurez-vous que la passerelle et le PC sont connectés au même LAN. Ensuite, saisissez l'URL de CUBE dans votre navigateur.
Remarque : Si vous avez plusieurs passerelles, vous pouvez obtenir l'adresse IP correspondante pour accéder à la passerelle spécifiée de deux manières ci-dessous.
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 avoir appuyé, l'accès à l'interface est valide pendant au plus 5 minutes.
// Requête
curl --location --request GET 'http://<adresse ip>/open-api/V2/rest/bridge/access_token' --header 'Content-Type: application/json'
// Réponse
{
"error": 401,
"data": {},
"message": "bouton de liaison non appuyé"
}Cliquez <Terminé> et appelez à nouveau l'interface [Access Token]. La réponse réussit et le token est obtenu.
Vérifiez le token. Appelez l'interface [Get Device List]. La réponse est réussie et la liste des appareils est obtenue.
Méthode d'obtention du token d'accès CUBE : Après avoir appelé l'interface [Access Token], une boîte de dialogue contextuelle globale de la page console Web CUBE invite l'utilisateur à confirmer l'obtention des informations d'identification d'appel de l'interface.
Remarque : Si vous ouvrez plus d'une page de console Web CUBE, la boîte de confirmation contextuelle apparaîtra sur plusieurs pages de console Web simultanément, et la boîte contextuelle des autres pages sera fermée après avoir cliqué sur la confirmation sur l'une des pages.
2. Concept principal
2.1 Adresse de l'interface de développement
L'interface Web API de la passerelle dispose de deux méthodes d'accès (basées sur l'IP ou le nom de domaine), généralement le chemin racine est /open-api/V2/rest/< module fonctionnel spécifique >
// Accès IP http:///open-api/V2/rest/bridge
// Accès par nom de domaine http:///open-api/V2/rest/bridge
2.2 Catégorie d'affichage de l'appareil & Capacités
**Catégorie d'affichage de l'appareil (DisplayCategory). **La catégorie d'affichage de l'appareil est utilisée pour identifier des catégories spécifiques (appareil), telles que switch, plug, light, etc. Cette information déterminera l'effet d'affichage de l'interface utilisateur de l'appareil dans la passerelle.
**Capacité de l'appareil. **La capacité de l'appareil est utilisée pour décrire les sous-fonctions spécifiques de l'appareil. Par exemple le contrôle de l'alimentation, le contrôle de la luminosité, le contrôle de la température de couleur, etc. Un seul appareil peut prendre en charge 1 ou plusieurs capacités.
capability : Décrit le nom de la capacité, qui doit être globalement unique et de type chaîne. Plusieurs mots en anglais doivent être séparés par des traits d'union ("-"). Par exemple :
"thermostat-target-setpoint".name : Décrit la catégorie sous la capacité, également de type chaîne. Plusieurs mots en anglais doivent être séparés par des traits d'union ("-"). Par exemple :
"auto-mode","manual-mode".permission : Décrit les autorisations associées à la capacité. Le type est string, formaté en code binaire 8421. Des exemples incluent :
Appareil contrôlable :
"1000"Appareil configurable :
"0010"Appareil contrôlable et configurable :
"1010"Appareil contrôlable et rapportable :
"1100"
La signification de chaque bit, de droite à gauche, est la suivante : ⅰ. Bit 0 : Autorise la requête de l'appareil ⅱ. Bit 1 : Autorise la configuration de l'appareil ⅲ. Bit 2 : Autorise l'appareil à rapporter des données ⅳ. Bit 3 : Autorise le contrôle de l'appareil
settings : Décrit les éléments de configuration pour la capacité, qui sont de type objet et incluent une description de chaque élément de configuration. ⅰ. key : Décrit le nom de l'élément de configuration, qui est de type chaîne. Plusieurs mots en anglais doivent être exprimés en camelCase. Par exemple : "temperatureUnit". ⅱ. value : Décrit le contenu de l'élément de configuration. Les spécifications détaillées sont énoncées dans le tableau ci-dessous.
permission
string
N
Décrit les autorisations pour l'élément de configuration.
Valeurs optionnelles :
Autoriser la modification de cet élément de configuration :
"10"Autoriser la visualisation de cet élément de configuration :
"01"Autoriser à la fois la modification et la visualisation de cet élément de configuration :
"11"
Explication des bits :
Bit 0 : Autorise la visualisation de cet élément de configuration
Bit 1 : Autorise la modification de cet élément de configuration | | type | string | N | Décrit le type de données de la valeur de l'élément de configuration. Valeurs optionnelles :
"enum""numeric""object""boolean""string"
Directives spécifiques au type :
Lorsque
**type = enum**:Le
champ(décrivant la valeur de l'élément de configuration) est requis sipermissionautorise la modification ("10"ou"11").Le
défaut(décrivant la valeur par défaut de l'élément de configuration) etvalues(décrivant les valeurs sélectionnables pour l'élément de configuration) les champs sont optionnels.
Lorsque
**type = numeric**:Le
chample champ est requis sipermissionautorise la modification ("10"ou"11").Les champs suivants sont optionnels :
min(décrivant la valeur minimale de l'élément de configuration)max(décrivant la valeur maximale de l'élément de configuration)step(décrivant la valeur de pas pour l'élément de configuration)precision(décrivant la précision)unit(décrivant l'unité de l'élément de configuration)défaut(décrivant la valeur par défaut)
Lorsque
**type = object**:Le
chample champ est requis sipermissionautorise la modification ("10"ou"11").Le
défautle champ est optionnel.
Lorsque
**type = boolean**:Le
chample champ est requis sipermissionautorise la modification ("10"ou"11").Le
défautle champ est optionnel.
Lorsque
**type = string**:Le
chample champ est requis sipermissionautorise la modification ("10"ou"11").Le
défautle champ est optionnel. |
3. API Web
Type de donnée
string
Type de données string. Encodé en UTF8.
number
Type de données nombre. format binaire IEEE 754 double précision 64 bits
int
Type de données entier.
object
Type de données objet. Objet conforme JSON
string[]
Tableau de chaînes
int[]
Tableau d'entiers
object[]
Tableau d'objets
bool
Booléen
date
Chaîne temporelle. Chaîne au format ISO (format étendu ISO 8601) : YYYY-MM-DDTHH:mm:ss.sssZ. Le fuseau horaire est toujours UTC (Temps Universel Coordonné), identifié par un suffixe "Z".
Résultats génériques de réponse
error
int
N
Code d'erreur :
0 : Succès
400 : Erreur de paramètre
401 : Échec d'authentification
500 : Exception serveur
data
object
N
Corps des données de la réponse
message
string
N
Description de la réponse :
Lorsque error est égal à 0, le contenu est success
Lorsque error n'est pas égal à 0, c'est une chaîne non vide, et le contenu est une description de l'erreur.
Exemple de réponse:
Liste des ressources
Sons pris en charge
- alert1 (Son d'alarme 1)
alert2 (Son d'alarme 2)
alert3 (Son d'alarme 3)
alert4 (Son d'alarme 4)
alert5 (Son d'alarme 5)
doorbell1 (Son de sonnette 1)
doorbell2 (Son de sonnette 2)
doorbell3 (Son de sonnette 3)
doorbell4 (Son de sonnette 4)
doorbell5 (Son de sonnette 5)
alarm1 (Son d'alarme 1)
alarm2 (Son d'alarme 2)
alarm3 (Son d'alarme 3)
alarm4 (Son d'alarme 4)
alarm5 (Son d'alarme 5) | | Prise en charge des deep | - bootComplete (Démarrage du système terminé)
networkConnected (Réseau connecté)
networkDisconnected (Réseau déconnecté)
systemShutdown (Arrêt du système) -deviceDiscovered (Découvrir l'appareil)
system Armed (Système armé activé)
system Disarmed (Système armé désactivé)
factoryReset (Réinitialiser l'appareil) |
3.1 La fonction de la passerelle
a. Jeton d'accès
Permet aux utilisateurs d'accéder au token.
Remarque : Le token sera effacé après la réinitialisation de l'appareil.
Remarque : Après avoir obtenu le token, vous devez appuyer à nouveau sur le bouton pour obtenir avec succès un nouveau token.
:::astuces
URL:
/open-api/V2/rest/bridge/access_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 token d'accès de l'interface. Il est valide pendant longtemps, veuillez le sauvegarder
app_name
string
Y
Description du nom de l'application.
:::astuces Condition : L'utilisateur déclenche la < touche de commande > et accède à cette interface dans le délai de validité. **Code d'état : **200 OK ::: Exemple de réponse:
Réponse de données en cas d'échec : Objet vide :::astuces Conditions:L'utilisateur n'a pas déclenché la < touche de commande >, ou le délai de validité a expiré. **Code d'état : ** 200 OK ::: Exemple de réponse:
b. Obtenir l'état de la passerelle
Permet aux utilisateurs autorisés d'obtenir l'état de la passerelle via cette interface :::astuces
URL:
/open-api/V2/rest/bridge/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 CPU :
Optionnel
valeurs :'c', 'f'
sd_card_used
int
Y
Utilisation de la carte SD (pourcentage) :
Plage :[0-100] avec une précision d'une décimale
*Remarque : Si la carte SD n'est pas insérée ou non formatée, la valeur est vide.
:::astuces Conditions : Les paramètres de la requête sont légaux et la vérification de l'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:
c. Configurer la passerelle
Permet aux utilisateurs autorisés de configurer la passerelle via cette interface :::astuces
URL:
/open-api/V2/rest/bridge/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 de l'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:
d. Obtenir les infos de la passerelle
Permet aux utilisateurs autorisés d'obtenir les infos de la passerelle via cette interface :::astuces
URL:
/open-api/V2/rest/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 de l'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:
f. Réactiver le son de la passerelle
Permet aux utilisateurs autorisés de réactiver le son de la passerelle via cette interface. :::astuces
URL:
/open-api/v2/rest/bridge/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 de l'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:
g. Annuler l'alarme de la passerelle
Permet aux utilisateurs autorisés de désactiver l'état sonore d'alarme sur la passerelle via cette interface. :::astuces
URL:
/open-api/v2/rest/bridge/cancel_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 de l'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:
3.2 Fonction matérielle
a. Redémarrer la passerelle
Permet à l'utilisateur autorisé de redémarrer la passerelle via cette interface :::astuces
URL:
/open-api/V2/rest/hardware/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 de l'identité de l'utilisateur est passée. **Code d'état : **200 OK :::
b. Contrôle du haut-parleur
Permet aux utilisateurs autorisés de contrôler le haut-parleur via cette interface :::astuces
URL:
/open-api/V2/rest/hardware/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 une fois le temps écoulé. Unité : seconde. [0,1799]
BeepObject
Attribut
Type
Optionnel
Description
name
string
N
Le nom du deep. Les valeurs prises en charge peuvent être consultées dans [Resource List - Supported deep]
volume
int
N
Le volume du deep. [0-100]
Réponse de données réussie : Objet vide {} :::astuces Conditions : Les paramètres de la requête sont légaux et la vérification de l'identité de l'utilisateur est passée. **Code d'état : ** 200 OK ::: Exemple de réponse:
3.3 Fonction de gestion des appareils
a. Types d'appareils pris en charge
Type d'appareil
Valeur
Version iHost
Prise
plug
≥ 2.1.0
Interrupteur
switch
≥ 2.1.0
Lumière
light
≥ 2.1.0
Rideau
curtain
≥ 2.1.0
Capteur de porte/fenêtre
contactSensor
≥ 2.1.0
Capteur de mouvement
motionSensor
≥ 2.1.0
Capteur de température
temperatureSensor
≥ 2.1.0
Capteur d'humidité
humiditySensor
≥ 2.1.0
Capteur de température et d'humidité
temperatureAndHumiditySensor
≥ 2.1.0
Détecteur de fuite d'eau
waterLeakDetector
≥ 2.1.0
Détecteur de fumée
smokeDetector
≥ 2.1.0
Bouton sans fil
button
≥ 2.1.0
Caméra
camera
≥ 2.1.0
Capteur général
sensor
≥ 2.1.0
Capteur général
sensor
≥ 2.1.0
Ventilateur avec lumière
fanLight
≥ 2.1.0
Climatiseur
airConditioner
≥ 2.1.0
Ventilateur
fan
≥ 2.1.0
Thermostat
thermostat
≥ 2.1.0
b. Capacités prises en charge par l'appareil
Interrupteur d'alimentation (power) :
Exemple de déclaration de capacité :
Attribut d'état :
Protocole (Requête d'état & instructions de contrôle) :
Allumer :
Éteindre :
Commutateur de canal (toggle) :
Exemple de déclaration de capacité :
Exemple de composant unique :
Exemple de composants multiples :
Attribut d'état :
Protocole (Requête d'état & instructions de contrôle) :
Format du basculement :
Inching de canal (toggle-inching) :
Exemple de déclaration de capacité :
Attribut d'état
Aucun
Protocole (Requête d'état & instructions de contrôle)
Aucun
Réglage de la luminosité (brightness) :
Exemple de déclaration de capacité :
Attribut d'état :
Protocole (Requête d'état & instructions de contrôle) :
Définir la luminosité à 80 %. (0 est le plus sombre et 100 le plus lumineux.)
Réglage de la température de couleur (color-temperature) :
Exemple de déclaration de capacité :
Attribut d'état :
Protocole (Requête d'état & instructions de contrôle) :
Ajuster la température de couleur à 50 % :
Réglage de la couleur (color-rgb) :
Exemple de déclaration de capacité :
Attribut d'état :
Protocole (Requête d'état & instructions de contrôle) :
Définir la couleur sur violet :
Réglage en pourcentage (percentage) :
Exemple de déclaration de capacité :
Attribut d'état :
Protocole (Requête d'état & instructions de contrôle) :
Ajuster à 40 % :
Contrôle du moteur (motor-control) :
Exemple de déclaration de capacité :
Attribut d'état :
Protocole (Requête d'état & instructions de contrôle) :
Ouvrir le moteur :
Inversion du moteur (motor-reverse) :
Exemple de déclaration de capacité :
Attribut d'état :
Protocole (Requête d'état & instructions de contrôle) :
Définir le moteur en avant :
Calibration du moteur (motor-clb)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Rapport d'état) :
Rapporter que le moteur est en cours de calibration :
État d'alimentation au démarrage (startup)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Définir l'état d'alimentation sur Toujours Allumé :
Activation de réveil (identify)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Rapport d'état & instructions de contrôle) :
Définir le temps d'activation de réveil :
Rapporter l'état d'activation :
Interrupteur de statistiques de consommation électrique en temps réel (power-consumption)
Exemple de déclaration de capacité :
Attributs (État) :
Démarrer/Arrêter les statistiques en temps réel :
Interroger la consommation d'énergie par plage horaire :
Répondre avec le résultat des statistiques dans la plage de temps :
Protocole (Rapport d'état & instructions de contrôle) :
Démarrer les statistiques en temps réel :
Arrêter les statistiques en temps réel :
Obtenir la consommation d'énergie historique :
Obtenir la consommation d'énergie en temps réel :
Détection du mode température et humidité (thermostat-mode-detect)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Format :
Exemple :
Mode thermostat (thermostat-mode)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Statut de récupération adaptative du thermostat (thermostat/adaptive-recovery-status)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Réglage de la température cible du mode thermostat (thermostat-target-setpoint)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Détection de capteur (detect)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Détection de température (temperature)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Détection d'humidité (humidity)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Détection de la batterie (battery)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Détection d'un bouton unique (press)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Détection multi-boutons (multi-press)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Détection de la puissance du signal (rssi)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Détection d'effraction (tamper-alert)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Détection du niveau d'illumination (illumination-level)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Détection de tension (voltage)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Détection du courant électrique (electric-current)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Détection de la puissance électrique (electric-power)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Détection de défaut (fault)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Rupture de seuil (threshold-breaker)
Exemple de déclaration de capacité :
Attributs (État)
Aucun
Protocole (Requête d'état & instructions de contrôle)
Aucun
Fonction Inch (inching)
Exemple de déclaration de capacité :
Attributs (État) :
Aucun
Protocole (Requête d'état & instructions de contrôle) :
Aucun
Flux de caméra (camera-stream)
Exemple de déclaration de capacité :
Attributs (État) :
Aucun
Protocole (Requête d'état & instructions de contrôle) :
Aucun
Contrôle de mode (mode)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Détection du dioxyde de carbone (co2)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Détection de l'illumination (illumination)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Détection de fumée (smoke)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Détection ouverture/fermeture aimant de porte (contact)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Détection de mouvement (motion)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Détection de fuite d'eau (water-leak)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Interrupteur de détection de fenêtre (window-detection)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Verrouillage pour enfants (child-lock)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Anti-coup direct (anti-direct-blow)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Balancement horizontal (horizontal-swing)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Balancement vertical (vertical-swing)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Mode ÉCO (eco)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Basculer démarrage (toggle-startup)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Détection maintien (detect-hold)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Basculer Identifier/Activer (toggle-identify)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Basculer détection de tension (toggle-voltage)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Détection du courant électrique du sous-composant (toggle-electric-current)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Détection de puissance du sous-composant (toggle-electric-power)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Statistiques de consommation d'énergie du sous-composant (toggle-power-consumption)
Exemple de déclaration de capacité :
Attributs (État) :
Démarrer/Arrêter les statistiques en temps réel :
Interroger la consommation d'énergie par plage horaire :
Réponse pour la consommation d'énergie dans une plage temporelle :
Protocole (Requête d'état & instructions de contrôle) :
Démarrer les statistiques en temps réel :
Arrêter les statistiques en temps réel :
Obtenir la consommation d'énergie historique :
Obtenir la consommation d'énergie en temps réel :
Indicateur de qualité de liaison (lqi)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Configuration fonctionnelle (configuration)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Système (system)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Humidité (moisture)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Pression barométrique (barometric-pressure)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Vitesse du vent (wind-speed)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Direction du vent (wind-direction)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Précipitations (rainfall)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Indice UV (ultraviolet-index)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Conductivité électrique (electrical-conductivity)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Puissance d'émission (transmit-power)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Détection PM2,5 (pm25)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Indice COV (voc-index)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Détection de gaz naturel (gas)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Statut de travail d'irrigation (irrigation/work-status)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Rapport de statut de travail :
Requête de statut de travail :
Résultat de la requête de statut de travail :
Mode de travail d'irrigation (irrigation/work-mode)
Exemple de déclaration de capacité :
Attributs (État) :
Protocole (Requête d'état & instructions de contrôle) :
Contrôleur d'irrigation automatique (irrigation/auto-controller)
Exemple de déclaration de capacité :
Attributs (État) :
Planification ponctuelle ou répétée :
Volume ponctuel ou répété :
Protocole (Requête d'état & instructions de contrôle) :
Planification ponctuelle ou répétée :
Volume ponctuel ou répété :
Modes prédéfinis pris en charge
fanLevel (niveau du ventilateur)
"low"
"medium"
"high"
thermostatMode (mode thermostat)
"auto"
"manual"
airConditionerMode >= 1.11.0 (mode climatiseur)
"cool"
"heat"
"auto"
"fan"
"dry"
fanMode >= 1.11.0 (mode ventilateur)
"normal"
"sleep"
"child"
horizontalAngle >= 1.11.0 (angle horizontal)
"30"
"60"
"90"
"120"
"180"
"360"
verticalAngle >= 1.11.0 (angle vertical)
"30"
"60"
"90"
"120"
"180"
"360"
c. Description des balises
La clé spéciale toggle est utilisée pour définir le nom du sous-composant toggle.
La clé spéciale temperature_unit est utilisée pour définir l'unité de température.
d. Code d'erreur spécial et description
Code d'erreur
Description
Version iHost
110000
Le sous-appareil/groupe correspondant à l'id n'existe pas
≥2.1.0
110001
La passerelle est en état de découverte des appareils zigbee
≥2.1.0
110002
Les appareils d'un groupe n'ont pas de capacité commune
≥2.1.0
110003
Nombre incorrect d'appareils
≥2.1.0
110004
Nombre incorrect de groupes
≥2.1.0
110005
Appareil hors ligne
≥2.1.0
110006
Échec de la mise à jour du statut de l'appareil
≥2.1.0
110007
Échec de la mise à jour du statut du groupe
≥2.1.0
110008
Le nombre maximum de groupes a été atteint. Créez jusqu'à 50 groupes
≥2.1.0
110009
L'adresse IP de l'appareil caméra est incorrecte
≥2.1.0
110010
Erreur d'autorisation d'accès de l'appareil caméra
≥2.1.0
110011
Erreur d'adresse de flux de l'appareil caméra
≥2.1.0
110012
Le codage vidéo de l'appareil caméra n'est pas pris en charge
≥2.1.0
110013
L'appareil existe déjà
≥2.1.0
110014
La caméra ne prend pas en charge le fonctionnement hors ligne
≥2.1.0
110015
Le mot de passe du compte est incohérent avec le mot de passe du compte dans l'adresse de flux RTSP
≥2.1.0
110016
La passerelle est en état de découverte des caméras onvif
≥2.1.0
110017
Nombre maximal de caméras ajoutées dépassé
≥2.1.0
110018
Le chemin de la caméra ESP est erroné
≥2.1.0
110019
Échec d'accès à l'adresse de service du périphérique tiers
≥2.1.0
e. Recherche de sous-appareil
Permettre aux utilisateurs autorisés d'activer ou de désactiver la recherche de sous-appareils par la passerelle via cette interface
💡Remarque : Ne prend en charge que la recherche de sous-appareils Zigbee pour le moment.
💡Remarque : Les sous-appareils Zigbee seront ajoutés automatiquement après la recherche. Il n'est pas nécessaire d'utiliser l'interface "Ajouter manuellement des sous-appareils" :::tips
URL:/open-api/V2/rest/devices/discovery
Méthode: PUT
En-tête:
Content-Type: application/json
Autorization: Bearer ::: Paramètres de la requête :
Attribut
Type
Optionnel
Description
enable
boolean
N
true (Démarrer l'appairage) ; false (Mettre en pause l'appairage)
type
string
N
Type de recherche : Zigbee
Réponse de données réussie : Objet vide {} :::astuces Conditions : Les paramètres de la requête sont légaux et la vérification de l'identité de l'utilisateur est passée. **Code d'état : ** 200 OK ::: Exemple de réponse:
f. Ajouter manuellement le sous-appareil
Permettre aux utilisateurs autorisés d'ajouter un unique sous-appareil via cette interface.
Remarque : Seules les caméras RTSP et ESP32 Camera sont prises en charge pour le moment :::tips
URL:/open-api/V2/rest/devices
Méthode:POST
En-tête:
Content-Type: application/json
Autorization: Bearer ::: Paramètres de la requête :
Attribut
Type
Optionnel
Description
name
string
N
Nom du sous-appareil
display_category
string
N
Type d'appareil. Prend en charge uniquement la caméra.
capabilities
CapabilityObject[]
N
Liste des capacités. Lorsque display_category = camera, les capacités n'incluent que les capacités camera-stream.
protocal
string
N
Protocole de l'appareil. RTSP ; ESP32-CAM
manufacturer
string
N
Fabricant.
model
string
N
Modèle de l'appareil
firmware_version
string
N
Version du firmware de l'appareil
CapabilityObject
Attribut
Type
Optionnel
Description
capability
string
N
Nom de la capacité. Prend en charge uniquement "camera-stream"
permission
string
N
Permission de l'appareil. Prend en charge uniquement la lecture.
configuration
CameraStreamConfigurationObject
Y
Configuration du flux caméra.
SettingsObject
Attribut
Type
Optionnel
Description
streamSetting
StreamSettingObject
N
Configuration du service de streaming
StreamSettingObject
Attribut
Type
Optionnel
Description
type
string
N
Configuration du service de streaming
permission
string
N
Autorisation de capacité. Prend en charge uniquement "11" (modifiable).
champ
StreamSettingValueObject
N
Valeurs de configuration spécifiques
StreamSettingValueObject
Attribut
Type
Optionnel
Description
stream_url
string
N
Format de l'URL de flux
Format :<schema>://<hostname>:<port>/<username>:<password>@<service_path>
Options de schéma :
rtsp (Real-Time Streaming Protocol)
http (Hypertext Transfer Protocol) — Pour les appareils ESP32-CAM
*Remarque : Certaines caméras peuvent ne pas nécessiter de nom d'utilisateur ou de mot de passe. Dans ce cas, vous pouvez omettre le <username> et <password> champs de l'URL.
Réponse de données réussie :
Attribut
Type
Optionnel
Description
serial_number
string
N
Numéro de série unique de l'appareil
:::astuces Conditions : Les paramètres de la requête sont légaux et la vérification de l'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:
Réponse de données d'échec : objet vide :::tips Condition:
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 l'ajout d'un seul appareil échoue, renvoie que tous les appareils n'ont pas pu être ajoutés.
Code d'état: 200 OK Code d'erreur: ● 110009 Erreur d'adresse IP de la caméra ● 110010 Erreur d'autorisation d'accès à la caméra ● 110011 Erreur d'adresse de flux de la caméra ● 110012 Le codage vidéo de la caméra n'est pas pris en charge ● 110013 L'appareil existe déjà ::: Exemple de réponse:
g. Obtenir la liste des sous-appareils
Permettre aux utilisateurs autorisés d'obtenir la liste des sous-appareils de la passerelle via cette interface. :::tips
URL:/open-api/V2/rest/devices
Méthode: GET
En-tête:
Content-Type: application/json
Autorization: Bearer ::: Paramètres de la requête : aucun Réponse de données réussie :
Attribut
Type
Optionnel
Description
device_list
ResponseDeviceObject[]
N
Liste des appareils
ResponseDeviceObject
Attribut
Type
Optionnel
Description
serial_number
string
N
Numéro de série unique de l'appareil
third_serial_number
string
"N" lorsqu'un appareil tiers est connecté, sinon "Y"
Numéro de série unique de l'appareil tiers
service_address
string
"N" lorsqu'un appareil tiers est connecté, sinon "Y"
Adresse du service tiers
name
string
N
Nom de l'appareil, s'il n'est pas renommé, sera affiché par le front-end selon les règles d'affichage par défaut.
manufacturer
string
N
Fabricant
model
string
N
Modèle de l'appareil
firmware_version
string
N
Version du firmware. Peut être une chaîne vide.
hostname
string
Y
Nom d'hôte de l'appareil
mac_address
string
Y
Adresse MAC de l'appareil
app_name
string
Y
Le nom de l'application à laquelle il appartient. Si app_name est rempli lors de l'obtention du certificat d'interface ouverte, alors tous les appareils ultérieurs connectés via le certificat seront inscrits dans ce champ.
display_category
string
N
Catégorie d'appareil
capabilities
CapabilityObject[]
N
Capacités de l'appareil
protocol
string
"N" lorsqu'un appareil tiers est connecté, sinon "Y"
Protocole de l'appareil : zigbee, onvif, rtsp, esp32-cam
état
object
Y
Objet d'état de l'appareil. Pour des exemples d'état des différentes fonctionnalités, veuillez consulter 【Fonctionnalités d'appareils prises en charge】
étiquettes
object
Y
Paires clé-valeur au format JSON, informations personnalisées sur l'appareil. La fonction est la suivante : - Utilisé pour stocker les canaux de l'appareil - Utilisé pour stocker les unités de température - Informations personnalisées pour d'autres appareils tiers
en ligne
boolean
N
État en ligne : True pour en ligne False pour hors ligne
sous-réseau
boolean
Y
S'il se trouve dans le même sous-réseau que la passerelle
CapabilityObject 💡Remarque : Veuillez vérifier les Exemples de fonctionnalités d'appareils prises en charge pour [Fonctionnalités d'appareils prises en charge].
Attribut
Type
Optionnel
Description
capability
string
N
Nom de la capacité. Pour plus de détails, consultez [Fonctionnalités d'appareils prises en charge]
permission
string
N
Autorisation de la capacité. Valeurs possibles : "read" (lecture), "write" (écriture), "readWrite" (lecture et écriture).
configuration
object
Y
Informations de configuration de la capacité. Actuellement utilisé pour camera-stream, consultez [Fonctionnalités d'appareils prises en charge]
name
string
Y
Le champ name dans toggle. Le numéro de sous-canal utilisé pour identifier les appareils multicanaux. Par exemple, si name est 1, cela signifie le canal 1.
:::astuces Conditions : Les paramètres de la requête sont légaux et la vérification de l'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:
h. Mettre à jour les informations ou l'état spécifié de l'appareil
Permet aux utilisateurs autorisés de modifier les informations de base du sous-appareil et d'émettre des commandes de contrôle via cette interface. :::tips
URL:/open-api/V2/rest/devices/{serial_number}
Méthode:PUT
En-tête:
Content-Type: application/json
Autorization: Bearer ::: Paramètres de la requête :
Attribut
Type
Optionnel
Description
name
string
Y
Nom de l'appareil
étiquettes
object
Y
Paires clé-valeur au format JSON, informations personnalisées sur l'appareil.
état
object
Y
Objet d'état de l'appareil. Pour des exemples d'état des différentes fonctionnalités, veuillez consulter [Fonctionnalités d'appareils prises en charge]
configuration
object
Y
Informations de configuration de la capacité, actuellement seule la capacité camera_stream prend en charge la modification.
Réponse de données réussie : :::tips Conditions: Les paramètres de la requête sont légaux, et la vérification d'identité de l'utilisateur est passée. **Code d'état : **200 OK Code d'erreur:
110000 Le sous-appareil/groupe correspondant à l'id n'existe pas ::: Exemple de réponse:
i. Supprimer le sous-appareil
Permet aux utilisateurs autorisés de supprimer des sous-appareils via cette interface. :::tips
URL:/open-api/V2/rest/devices/{serial_number}
Méthode:DELETE
En-tête:
Content-Type: application/json
Autorization: Bearer ::: Paramètres de la requête :
Attribut
Type
Optionnel
Description
name
string
Y
Nom de l'appareil.
étiquettes
object
Y
Paires clé-valeur au format JSON utilisées pour stocker les noms des canaux de l'appareil et d'autres informations sur les sous-appareils.
état
object
Y
Modifier l'état de l'appareil ; pour les détails du protocole, se référer à "Fonctionnalités d'appareils prises en charge."
capabilities
CapabilityObject []
Y
Informations de configuration de la capacité ; toutes les capacités qui prennent en charge la définition de configurations peuvent être modifiées. Notez que les permissions ne peuvent pas être modifiées.
Réponse de données réussie : :::tips Conditions: Les paramètres de la requête sont légaux, et la vérification d'identité de l'utilisateur est passée. **Code d'état : **200 OK Codes d'erreur :
110000 : Le sous-appareil/groupe correspondant à l'ID n'existe pas.
110006 : Échec de la mise à jour de l'état de l'appareil.
110019 : Échec d'accès à l'adresse du service de l'appareil tiers.
110024 : Échec de la mise à jour de la configuration de l'appareil. ::: Exemple de réponse:
j. Supprimer le sous-appareil
Permet aux utilisateurs autorisés de supprimer des sous-appareils via cette interface. :::tips
URL:
/open-api/v2/rest/devices/{serial_number}Mé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 de l'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:
k. Interroger l'état de l'appareil
Permet aux utilisateurs autorisés d'interroger l'état de l'appareil via cette interface. :::tips
URL:
/open-api/v2/rest/devices/:serial_number/query-state/{capability}Méthode:POST
En-tête:
Content-Type: application/json
Authorization: Bearer ::: Paramètres de la requête :
Attribut
Type
Optionnel
Description
query_state
object
N
Interroger l'état de l'appareil ; pour les détails du protocole, se référer à "Fonctionnalités d'appareils prises en charge."
Réponse de données réussie : :::tips Conditions : Les paramètres de la requête sont légaux et la vérification de l'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:
3.4 Gestion de la sécurité
a. Obtenir la liste de sécurité
Permet aux utilisateurs autorisés de modifier les paramètres de la passerelle via cette interface. :::tips
URL:
/open-api/v2/rest/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 d'appareils répondant
ResponseDeviceObject
Attribut
Type
Optionnel
Description
sid
int
N
id de sécurité
name
string
N
Nom de la sécurité
enable
bool
N
Activé ou non
true Activé
false Désactivé |
:::astuces Conditions : Les paramètres de la requête sont légaux et la vérification de l'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:
b. Activer le mode de sécurité spécifié
Permet aux utilisateurs autorisés d'activer un mode de sécurité spécifié via cette interface. :::tips
URL:
/open-api/v2/rest/security/{security_id}/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 de l'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:
c. Désactiver le mode de sécurité spécifié
Permet aux utilisateurs autorisés de désactiver un mode de sécurité spécifié via cette interface. :::tips
URL:
/open-api/v2/rest/security/{security_id}/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 de l'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:
d. Activation en un clic de la configuration de sécurité
Permet aux utilisateurs autorisés d'activer le mode de configuration de sécurité en un clic via cette interface. :::tips
URL:
/open-api/v2/rest/security/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 de l'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:
e. Désactiver la sécurité
Permet aux utilisateurs autorisés de désactiver la sécurité via cette interface. :::tips
URL:
/open-api/v2/rest/security/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 de l'identité de l'utilisateur est passée. **Code d'état : **200 OK ::: Exemple de réponse:
4. Appareil tiers Accès
4.1 Instructions d'accès
Accès de l'appareil

Accès de passerelle tiers

Étapes d'accès
Déterminer la classification de l'appareil dans la passerelle. Les détails sont disponibles dans [Types d'appareils pris en charge].
Déterminer les fonctionnalités auxquelles l'appareil peut accéder. Les détails sont disponibles dans [Fonctionnalités d'appareils prises en charge].
Appeler 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 des appareils é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 ajout, l'appareil tiers apparaîtra dans la liste d'appareils, avec la plupart des fonctions de la passerelle (autres appareils non tiers). Les interfaces ouvertes courantes liées à l'appareil peuvent être utilisées normalement.
Sélectionnez la catégorie d'appareil appropriée. La classification affectera le résultat d'affichage final de l'interface utilisateur après la connexion de l'appareil à la passerelle.
Choisissez la bonne fonctionnalité d'appareil. La liste des fonctionnalités déterminera l'état du protocole d'état de l'appareil.
Processus du programme
a. Accès de l'appareil

b. Accès de la passerelle tiers

4.2 Exemple d'accès
Interrupteur, Prise
Synchroniser les appareils tiers
Signaler l'état de l'appareil
Signaler hors ligne/en ligne
Recevoir les instructions concernant le contrôle de l'appareil par la passerelle
Interroger l'appareil
4.3 API Web
Interface de passerelle de requête tierce
Format de requête
Permet aux utilisateurs autorisés d'envoyer des requêtes d'événement à la passerelle via cette interface. :::tips
URL:/open-api/V2/rest/thirdparty/event
Méthode:POST
En-tête:
Content-Type: application/json
Autorization: Bearer ::: Paramètres de la requête :
Attribut
Type
Optionnel
Description
event
EventObject
N
Informations sur la structure de l'objet d'événement de la requête
EventObject
Attribut
Type
Optionnel
Description
header
HeaderObject
N
Informations sur la structure de l'en-tête de la requête
endpoint
EndpointObject
Y
Informations sur la structure de l'endpoint de la requête Remarque : Ce champ est vide lors de la synchronisation d'une nouvelle liste d'appareils.
payload
PayloadObject
N
Informations sur la structure du payload de la requête
HeaderObject
Attribut
Type
Optionnel
Description
name
string
N
Nom de la requête. paramètre optionnel : DiscoveryRequest : Synchroniser de nouveaux appareils DeviceStatesChangeReport : Rapport de mise à jour de l'état de l'appareil DeviceOnlineChangeReport : Rapport d'état en ligne de l'appareil
message_id
string
N
ID de message de la requête, UUID_V4
version
string
N
Numéro de version du protocole de la requête. Actuellement fixe à 1
EndpointObject
Attribut
Type
Optionnel
Description
serial_number
string
N
Numéro de série unique de l'appareil
third_serial_number
string
N
Numéro de série unique de l'appareil tiers
étiquettes
object
Y
Paires clé-valeur au format JSON, informations personnalisées sur l'appareil. [Fonction de gestion des appareils] - [Description des tags]
PayloadObject Selon le header.name différent, la structure de la requête est différente.
Format de réponse
:::tips **Code d'état : **200 OK Paramètres de la réponse : :::
Attribut
Type
Optionnel
Description
header
HeaderObject
N
Informations sur la structure de l'en-tête de réponse
payload
PayloadObject
N
Informations sur la structure du payload de réponse
HeaderObject
Attribut
Type
Optionnel
Description
name
string
N
Nom de l'en-tête de réponse. paramètres optionnels : Response : Réponse réussie ErrorResponse : Réponse d'erreur
message_id
string
N
ID de message de l'en-tête de réponse, UUID_V4. Renvoyer ici l'header.message_id du message de requête *Si le paramètre message_id de la requête est absent, ce champ sera une chaîne vide lors de la réponse.
version
string
N
- Numéro de version du protocole de la requête. Actuellement fixe à 1.
Réponse réussie--PayloadObject :
Selon le type de requête, la structure de réponse est différente. Pour plus de détails, veuillez vous référer au document d'instructions de la requête spécifique.
Réponse d'échec--PayloadObject:
Attribut
Type
Optionnel
Description
type
string
N
Types d'erreur :
INVALID_PARAMETERS : Erreur de paramètre
AUTH_FAILURE : Erreur d'autorisation
INTERNAL_ERROR : Erreur de service interne | | description | string | N | Description de l'erreur |
DiscoveryRequest Synchroniser une nouvelle liste d'appareils
Remarque : Après la synchronisation de l'appareil vers la passerelle, il est en ligne par défaut, c'est-à-dire online=true. Les changements en ligne ultérieurs dépendent entièrement de la synchronisation avec la tierce partie via l'interface DeviceOnlineChangeReport.
Paramètres de la requête : EndpointObject**:**Aucun PayloadObject:
Attribut
Type
Optionnel
Description
endpoints
EndpointObject[]
N
Liste d'appareils
EndpointObject :
Attribut
Type
Optionnel
Description
third_serial_number
string
N
Numéro de série unique de l'appareil tiers
name
string
N
Nom de l'appareil
display_category
string
N
Catégorie d'appareil. Voir [Types d'appareils pris en charge] pour les détails. *Les appareils tiers ne prennent pas en charge l'ajout de caméras pour le moment.
capabilities
CapabilityObject[]
N
Liste des capacités
état
object
N
Informations d'état initial
manufacturer
string
N
Fabricant
model
string
N
Modèle de l'appareil
étiquettes
object
Y
Paires clé-valeur au format JSON, informations personnalisées sur l'appareil : Utilisé pour stocker les canaux de l'appareil Utilisé pour stocker les unités de température Autres données personnalisées tierces
firmware_version
string
N
Version du firmware
Exemple de requête :
Paramètres de la réponse : PayloadObject:
Attribut
Type
Optionnel
Description
endpoints
EndpointObject[]
N
Liste des appareils
EndpointObject :
Attribut
Type
Optionnel
Description
serial_number
string
N
Numéro de série unique de l'appareil
third_serial_number
string
N
Numéro de série unique de l'appareil tiers
Exemple d'une réponse correcte :
Exemple d'une réponse d'erreur :
DeviceStatesChangeReport Rapport de changement d'état de l'appareil
Remarque : Des rapports d'état répétés peuvent déclencher faussement une scène associée.
Paramètres de la requête : PayloadObject:
Attribut
Type
Optionnel
Description
état
object
N
État de l'appareil, Voir [Fonctionnalités d'appareils prises en charge] pour plus de détails
Exemple de requête :
Paramètres de la réponse : PayloadObject : Objet vide Exemple d'une réponse réussie :
DeviceOnlineChangeReport Rapport d'état en ligne de l'appareil
Remarque : Des rapports d'état répétés peuvent déclencher faussement une scène associée.
Paramètres de la requête : PayloadObject:
Attribut
Type
Optionnel
Description
en ligne
boolean
N
État en ligne de l'appareil true : En ligne
false : Hors ligne
Exemple de requête :
Paramètres de la réponse : PayloadObject : Objet vide Exemple d'une réponse réussie :
DeviceInformationUpdatedReport Rapport de mise à jour des informations de l'appareil
Remarque : La mise à jour peut affecter les scènes ou fonctions de sécurité existantes.
Paramètres de la requête : PayloadObject:
Attribut
Type
Optionnel
Description
capabilities
| CapabilityObject[]
| N
| Liste des capacités. Les détails se trouvent dans la section des fonctionnalités d'appareils prises en charge. **Remarque : **Ce paramètre ne mettra à jour que le champ de la réglage clé dans le CapabilityObject, et les mises à jour sont autorisées uniquement si le permission pour la réglage clé est 11 ou 01. Pour la définition structurelle spécifique du réglage dans CapabilityObjectréférez-vous à la description détaillée dans la section 2.3 Catégories d'affichage des appareils et fonctionnalités des appareils. | | tags
| object
| Y
| Paires clé-valeur au format JSON, informations personnalisées sur l'appareil.
Peut être utilisé pour stocker les canaux de l'appareil
Peut être utilisé pour stocker les unités de température
Autres données personnalisées tierces |
Exemple de requête :
Paramètres de réponse : PayloadObject : Objet vide Exemple d'une réponse réussie :
La passerelle envoie l'interface d'instruction via l'adresse de service de l'appareil
Remarque :
Les tiers doivent répondre à la requête de la passerelle sous 3s. Sinon, la passerelle considérera le traitement de la commande comme expiré.
Si le service tiers est hors ligne, la passerelle mettra l'appareil en état hors ligne, et le service tiers doit signaler l'état de l'appareil (DeviceStatesChangeReport) ou l'état en ligne (DeviceOnlineChangeReport) avant de revenir en ligne.
Format de la requête
La passerelle envoie des instructions au tiers via l'interface d'adresse de service de l'appareil. :::tips
URL:
Méthode:POST
En-tête:
Content-Type: application/json ::: Paramètres de la requête :
Attribut
Type
Optionnel
Description
directive
DirectiveObject
N
Informations sur la structure de l'objet directive
DirectiveObject
Attribut
Type
Optionnel
Description
header
HeaderObject
N
Informations sur la structure de l'en-tête de la requête
endpoint
EndpointObject
N
Informations sur la structure de l'endpoint de la requête
payload
PayloadObject
N
Informations sur la structure du payload de la requête
HeaderObject
Attribut
Type
Optionnel
Description
name
string
N
Nom de la requête. Paramètres optionnels : UpdateDeviceStates : Mettre à jour les états de l'appareil
message_id
string
N
ID de message de la requête, UUID_V4
version
string
N
Numéro de version du protocole de la requête. Actuellement fixe à 1.
EndpointObject
Attribut
Type
Optionnel
Description
serial_number
string
N
Numéro de série unique de l'appareil
third_serial_number
string
N
Numéro de série unique de l'appareil tiers
étiquettes
object
N
Paires clé-valeur au format JSON, informations personnalisées sur l'appareil. [Fonction de gestion des appareils] - [Description des tags]
PayloadObject : Selon différents header.name, il existe une structure de requête spécifique pour chacun.
Exemple de requête :
Format de réponse
:::tips **Code d'état HTTP : **200 OK Attribut de réponse HTTP: :::
Attribut
Type
Optionnel
Description
event
EventObject
N
Informations sur la structure de l'événement de réponse
EventObject
Attribut
Type
Optionnel
Description
header
HeaderObject
N
Informations sur la structure de l'en-tête de la requête
payload
PayloadObject
N
Informations sur la structure du payload de la requête
HeaderObject
Attribut
Type
Optionnel
Description
name
string
N
Nom de l'en-tête de réponse. Paramètre optionnel : UpdateDeviceStatesResponse : Réponse de mise à jour des états de l'appareil ErrorResponse : Réponse d'erreur
message_id
string
N
ID de message de l'en-tête de réponse, UUID_V4. Renvoyer ici l'header.message_id du message de requête
version
string
N
Numéro de version du protocole de la requête. Actuellement fixe à 1.
Réponse réussie--PayloadObject:
Selon le type de requête, la structure de réponse est différente. Pour plus de détails, veuillez vous référer au document d'instructions de la requête spécifique.
Réponse d'échec--PayloadObject:
Attribut
Type
Optionnel
Description
type
string
N
Types d'erreur:
ENDPOINT_UNREACHABLE: L'appareil est injoignable ou hors ligne
ENDPOINT_LOW_POWER: L'appareil est en mode basse consommation et ne peut pas être contrôlé
INVALID_DIRECTIVE: Directive anormale de la passerelle
NO_SUCH_ENDPOINT: L'appareil n'existe pas
NOT_SUPPORTED_IN_CURRENT_MODE: Le mode actuel ne prend pas en charge l'opération
INTERNAL_ERROR: Erreur de service interne
REMOTE_KEY_CODE_NOT_LEARNED: Code de touche de télécommande non appris |
:::astuces Conditions: Les paramètres de la requête sont légaux. **Code d'état : **200 OK Paramètres de la réponse : :::
UpdateDeviceStates
Paramètres de la requête : PayloadObject:
Attribut
Type
Optionnel
Description
état
object
N
État de l'appareil, Voir [Fonctionnalités d'appareils prises en charge] pour plus de détails.
Exemple de requête :
Paramètres de la réponse : PayloadObject:Objet vide Exemple de réponse réussie
QueryDeviceStates
Paramètres de la requête : PayloadObject:
Attribut
Type
Optionnel
Description
état
object
N
État de l'appareil, Voir [Fonctionnalités d'appareils prises en charge] pour plus de détails.
Exemple de requête :
Paramètres de la réponse : PayloadObject:
Attribut
Type
Optionnel
Description
état
object
N
État de l'appareil, Voir [Fonctionnalités d'appareils prises en charge] pour plus de détails.
Exemple de réponse :
ConfigureDeviceCapabilities
Paramètres de la requête : PayloadObject:
Attribut
Type
Optionnel
Description
capabilities
CapabilityObject[]
N
Liste des capacités. Les détails peuvent être consultés dans la section fonctionnalités d'appareils prises en charge. Notez que le champ permission ne peut pas être modifié, fournir la même valeur lors de la synchronisation.
Exemple de requête :
Paramètres de la réponse : PayloadObject:Objet vide Exemple de réponse réussie
5. Événements envoyés par le serveur
Description de l'interface MDN EventSource:https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events
5.1 Instruction
La passerelle prend en charge le push de messages vers le client en utilisant SSE (Server-sent events). Le client peut surveiller les messages SSE après obtention des identifiants d'accès et peut analyser le contenu des messages push selon le protocole de notification d'événements de l'interface de développement après réception des messages poussés par la passerelle. Il convient de noter que la passerelle utilise actuellement le protocole HTTP1.1, donc SSE côté navigateur aura une limite maximale de connexions ne dépassant pas 6 (Les instructions spécifiques se trouvent dans la description de l'interface MDN EventSource.)
5.2 Format commun
:::astuces
URL:/open-api/V2/sse/bridge
Mé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 elle renverra une erreur d'échec d'authentification si le token est invalide. { "error": 401, "data": {}, "message": "invalid access_token"}
## Par exemple : Nom du module : device Version : 1,v2,v3 Type de message : addDevice
Exemple :
5.3 Module Appareil
a. Événement d'ajout d'appareil
:::tips Nom du module:device Version:v2 Type de message:addDevice paramètres event.data: :::
payload
ResponseDeviceObjectObject - Interface identique à celle de Obtenir la liste d'appareils
N
informations sur l'appareil
Exemple :
b. Événement de mise à jour de l'état de l'appareil
:::tips Nom du module:device Version:v2 Type de message:updateDeviceState paramètres event.data: :::
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 paramètres event.data: :::
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.
étiquettes
object
Y
étiquettesobject | Nullable | Paires clé-valeur JSON pour les informations personnalisées de l'appareil.
Peut être utilisé pour stocker les canaux de l'appareil.
Peut être utilisé pour stocker les unités de température.
Pour d'autres données personnalisées tierces. |
Exemple :
d. Événement de suppression d'appareil
:::tips Nom du module:device Version:v2 Type de message:deleteDevice paramètres event.data: :::
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 paramètres event.data: :::
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 paramètres event.data: :::
Attribut
Type
Optionnel
Description
payload
SecurityStateObject
N
Informations sur l'appareil
SecurityStateObject
Attribut
Type
Optionnel
Description
alarm_state
string
N
arming| Armédisarming| Désarmé |
Exemple :
5.5 Module Sécurité
a. Événement de mise à jour de l'état d'armement
:::tips Nom du module:device Version:v2 Type de message:updateDeviceOnline paramètres event.data: :::
Attribut
Type
Optionnel
Description
payload
ArmStateObject
N
informations d'armement et de désarmement
ArmStateObject:
Attribut
Type
Optionnel
Description
arm_state
string
N
arming| Armédisarming| Désarmé | | détail | DetailObject | N | Détails d'armement/désarmement |
DetailObject:
Attribut
Type
Optionnel
Description
sid
int
N
ID du mode de sécurité
name
string
N
Nom de la sécurité
Exemple
6. TTS (Synthèse vocale) Fonction du moteur
6.1 Instruction
Rôle clé
Fournisseur de service TTS : Le fournisseur du moteur de service TTS est responsable de l'enregistrement du moteur TTS sur la passerelle et de la fourniture des services TTS
Serveur de la passerelle:iHost
Client Open API de la passerelle
6.1.1 Enregistrement du service du moteur TTS
【Fournisseur de service TTS】Appeler l'interface pour enregistrer le moteur TTS sur la passerelle.
【Serveur de la passerelle】Après un enregistrement réussi, la passerelle stockera les informations de base du moteur TTS (y compris l'adresse du service server_address, et la communication ultérieure entre la passerelle et le fournisseur de service TTS se fera via l'adresse server_address), et allouera l'ID de service du moteur TTS au sein de la passerelle.

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 alloué 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 alloué 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 alloué 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és ouvertes de la passerelle
a. Obtenir la liste des services de moteur TTS enregistrés
:::astuces
URL:
/open-api/V2/rest/tts/enginesMéthode:
GETEn-tête:
Content-Type: application/json
Authorization: Bearer ::: Paramètres de la requête : aucun Réponse de données correcte :
Attribut
Type
Optionnel
Description
engines
EngineObject []
N
Liste des moteurs TTS enregistrés
Structure de EngineObject
Attribut
Type
Optionnel
Description
id
string
N
ID du moteur attribué par la passerelle
name
string
N
Nom du service du moteur TS
:::astuce Conditions : Les paramètres de la requête sont légaux et la vérification d'identité de l'utilisateur est passée. **Code d'état : **200 OK Exemple de réponse :: :::
b. Obtenir la liste des audios d'un moteur TTS spécifié
:::astuces
URL:
/open-api/V2/rest/tts/engine/{id}/audio-listMéthode:
GETEn-tête:
Content-Type: application/json
Authorization: Bearer ::: Paramètres de la requête : aucun Réponse de données correcte :
Attribut
Type
Optionnel
Description
audio_list
AudioObject []
N
Liste audio
Structure de AudioObject
Attribut
Type
Optionnel
Description
url
string
N
URL du fichier audio, par exemple :
https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3
label
string
Y
Libellé du fichier audio
:::astuce Conditions : Les paramètres de la requête sont légaux et la vérification d'identité de l'utilisateur est passée. **Code d'état : **200 OK **Code d'erreur : **
190000 Le moteur fonctionne anormalement
Exemple de réponse :: :::
c .Effectuer la synthèse vocale en utilisant le moteur TTS spécifié
:::astuces
URL:
/open-api/V2/rest/tts/engine/{id}/synthesizeMéthode:
POSTEn-tête:
Content-Type: application/json
Authorization: Bearer ::: Paramètres de la requête :
Attribut
Type
Optionnel
Description
text
string
N
Texte utilisé pour synthétiser l'audio
label
string
Y
Libellé du fichier audio
language
string
Y
Champ transparent. Code de langue optionnel pour la requête de synthèse vocale. La liste spécifique des codes de langue pris en charge est fournie par le fournisseur du service de moteur TTS. Notez que le service du moteur TTS doit prendre en charge une langue par défaut pour la synthèse vocale, ce qui signifie que si la langue n'est pas fournie, la langue par défaut du moteur sera utilisée pour la synthèse.
options
object
Y
Champ transparent. Il est utilisé pour transmettre les paramètres de configuration requis pour la synthèse au service de moteur TTS.
Réponse de données correcte :
Attribut
Type
Optionnel
Description
audio
AudioObject
N
Liste audio
Structure de AudioObject
Attribut
Type
Optionnel
Description
url
string
N
URL du fichier audio, par exemple :
https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3
label
string
Y
Libellé du fichier audio
:::astuce Conditions : Les paramètres de la requête sont légaux et la vérification d'identité de l'utilisateur est passée. **Code d'état : **200 OK **Code d'erreur : **
190000 Le moteur fonctionne anormalement
Exemple de réponse :: :::
6.2.2 Communication entre la passerelle et le service TTS
a. Enregistrement du service du moteur TTS
Envoyer une requête à la passerelle par le fournisseur de service TTS
:::astuces
URL:
/open-api/V2/rest/thirdparty/eventMéthode:
POSTEn-tête:
Content-Type: application/json
Authorization: Bearer ::: Paramètres de la requête :
Attribut
Type
Optionnel
Description
event
EventObject
N
Structure des informations de l'objet d'événement de requête
EventObject
Attribut
Type
Optionnel
Description
header
HeaderObject
N
Informations sur la structure de l'en-tête de la requête
payload
PayloadObject
N
Informations sur la structure du payload de la requête
HeaderObject
Attribut
Type
Optionnel
Description
name
string
N
Nom de la requête. Paramètre optionnel.
RegisterTTSEngine | | message_id | string | N | ID du message de la requête, UUID_V4 | | version | string | N | Numéro de version du protocole de la requête. Actuellement fixé à 1 |
PayloadObject
Attribut
Type
Optionnel
Description
service_address
string
N
Adresse du service. Par exemple, http:///
name
string
N
Nom du service
Exemple de requête :
**Paramètres de réponse corrects : **
Attribut
Type
Optionnel
Description
header
HeaderObject
N
Informations sur la structure de l'en-tête de la requête
payload
PayloadObject
N
Informations sur la structure du payload de la requête
HeaderObject
Attribut
Type
Optionnel
Description
name
string
N
Nom de l'en-tête de réponse. Paramètre optionnel :
Réponse (Réponse réussie)
ErrorResponse (Réponse d'erreur) | | message_id | string | N | ID du message de l'en-tête de réponse, UUID_V4. Message de la requête entrante ici : header.message_id | | version | string | N | Numéro de version du protocole de la requête. Actuellement fixé à 1 |
PayloadObject
Attribut
Type
Optionnel
Description
engine_id
string
N
ID du moteur attribué par la passerelle
:::astuce Conditions : Les paramètres de la requête sont légaux et la vérification d'identité de l'utilisateur est passée. **Code d'état : **200 OK Exemple de réponse :: ::: Exemple de réponse correcte ::
**Paramètres de réponse anormale : **
Attribut
Type
Optionnel
Description
type
string
N
Type d'erreur
INVALID_PARAMETERS (Erreur de paramètres)
AUTH_FAILURE (Échec de l'authentification)
INTERNAL_ERROR (Erreur interne du service) | | description | string | N | Description de l'erreur |
Exemple de réponse d'erreur ::
b. Commande de synchronisation de la liste audio
Envoyer la commande au fournisseur de service TTS depuis la passerelle.
:::astuces
URL:
<adresse du service>Mé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
Informations sur la structure de l'en-tête de la requête
payload
PayloadObject
N
Informations sur la structure du payload de la requête
HeaderObject
Attribut
Type
Optionnel
Description
name
string
N
Nom de la requête. Paramètre optionnel :
SyncTTSAudioList | | message_id | string | N | ID du message de la requête, UUID_V4 | | version | string | N | Numéro de version du protocole de la requête. Actuellement fixé à 1 |
Exemple de requête :
**Paramètres de réponse corrects : **
Attribut
Type
Optionnel
Description
header
HeaderObject
N
Informations sur la structure de l'en-tête de la requête
payload
PayloadObject
N
Informations sur la structure du payload de la requête
HeaderObject
Attribut
Type
Optionnel
Description
name
string
N
Nom de l'en-tête de réponse. Paramètre optionnel :
Réponse (Réponse réussie)
ErrorResponse (Réponse d'erreur) | | message_id | string | N | ID du message de l'en-tête de réponse, UUID_V4. Message de la requête entrante ici : header.message_id | | version | string | N | Numéro de version du protocole de la requête. Actuellement fixé à 1 |
PayloadObject :
Attribut
Type
Optionnel
Description
audio_list
AudioObject []
N
Liste audio TTS
Structure de AudioObject
Attribut
Type
Optionnel
Description
url
string
N
URL du fichier audio, par exemple :
https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3
label
string
Y
Libellé du fichier audio
:::astuce Conditions : Les paramètres de la requête sont légaux et la vérification d'identité de l'utilisateur est passée. **Code d'état : **200 OK Exemple de réponse :: ::: Exemple de réponse correcte ::
**Paramètres de réponse anormale : **
Attribut
Type
Optionnel
Description
type
string
N
Type d'erreur
INVALID_PARAMETERS (Erreur de paramètres)
AUTH_FAILURE (Échec de l'authentification)
INTERNAL_ERROR (Erreur interne du service) | | description | string | N | Description de l'erreur |
Exemple de réponse d'erreur ::
c. Commande de synthèse vocale
Envoyer la commande au fournisseur de service TTS depuis la passerelle.
:::astuces
URL:
<adresse du service>Mé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
Informations sur la structure de l'en-tête de la requête
payload
PayloadObject
N
Informations sur la structure du payload de la requête
HeaderObject
Attribut
Type
Optionnel
Description
name
string
N
Nom de la requête. Paramètre optionnel :
SynthesizeSpeech | | message_id | string | N | ID du message de la requête : UUID_V4 | | version | string | N | Numéro de version du protocole de la requête. Actuellement fixé à 1 |
PayloadObject
Attribut
Type
Optionnel
Description
text
string
N
Texte utilisé pour synthétiser l'audio
label
string
Y
Libellé du fichier audio
language
string
Y
Champ transparent. Code de langue optionnel pour la requête de synthèse vocale. La liste spécifique des codes de langue pris en charge est fournie par le fournisseur du service de moteur TTS. Notez que le service du moteur TTS doit prendre en charge une langue par défaut pour la synthèse vocale, ce qui signifie que si la langue n'est pas fournie, la langue par défaut du moteur sera utilisée pour la synthèse.
options
object
Y
Champ transparent. Il est utilisé pour transmettre les paramètres de configuration requis pour la synthèse au service de moteur TTS.
Exemple de requête :
**Paramètres de réponse corrects : **
Attribut
Type
Optionnel
Description
header
HeaderObject
N
Informations sur la structure de l'en-tête de la requête
payload
PayloadObject
N
Informations sur la structure du payload de la requête
HeaderObject
Attribut
Type
Optionnel
Description
name
string
N
Nom de l'en-tête de réponse. Paramètre optionnel :
Réponse (Réponse réussie)
ErrorResponse (Réponse d'erreur) | | message_id | string | N | ID du message de l'en-tête de réponse, UUID_V4. Message de la requête entrante ici : header.message_id | | version | string | N | Numéro de version du protocole de la requête. Actuellement fixé à 1 |
PayloadObject
Attribut
Type
Optionnel
Description
audio
AudioObject
N
Audio TTS
Structure de AudioObject
Attribut
Type
Optionnel
Description
url
string
N
URL du fichier audio, par exemple :
https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3
label
string
Y
Libellé du fichier audio
:::astuce Conditions : Les paramètres de la requête sont légaux et la vérification d'identité de l'utilisateur est passée. **Code d'état : **200 OK Exemple de réponse :: ::: Exemple de réponse correcte ::
**Paramètres de réponse anormale : **
Attribut
Type
Optionnel
Description
type
string
N
Type d'erreur
INVALID_PARAMETERS (Erreur de paramètres)
AUTH_FAILURE (Échec de l'authentification)
INTERNAL_ERROR (Erreur interne du service) | | description | string | N | Description de l'erreur |
Exemple de réponse d'erreur ::
7. Module multimédia
7.1 Lecture d'un fichier audio
:::astuces
URL:
/open-api/V2/rest/media/audio-playerMéthode:
POSTEn-tête:
Content-Type: application/json
Authorization: Bearer ::: Paramètres de la requête :
Attribut
Type
Optionnel
Description
audio_url
string
N
Adresse URL audio
Réponse de données correcte : :::astuce Conditions : Les paramètres de la requête sont légaux et la vérification d'identité de l'utilisateur est passée. **Code d'état : **200 OK Exemple de réponse :: :::
8. Carte UI personnalisée
Les cartes UI personnalisées vous permettent d'afficher n'importe quel contenu souhaité dans la carte. Ce contenu peut être une page Web, une image ou tout service avec une interface utilisateur. Vous devez simplement fournir l'URL du contenu que vous souhaitez afficher. La carte UI adaptera automatiquement sa largeur et sa hauteur, et le contenu sera rendu à l'aide d'une iFrame.
8.1 Instruction
Rôle clé
Fournisseur de service UI: Le fournisseur responsable de la création des cartes UI personnalisées sur la passerelle.
Serveur de la passerelle: Le serveur de la passerelle (iHost).
Client Open API de la passerelle: Le client Open API pour la passerelle.
8.1.1 Création d'une carte UI personnalisée
[Fournisseur de service UI]: Appelle l'API pour créer une carte UI personnalisée sur la passerelle.
[Serveur de la passerelle]: Lors d'un enregistrement réussi, la passerelle stocke les informations de base de la carte UI (y compris la configuration de taille et l'URL de la ressource de la carte) et attribue un ID interne de carte UI au sein de la passerelle.

8.1.2 Récupération de la liste des cartes UI
[Fournisseur de service UI]: Appelle l'API pour récupérer la liste des cartes UI.
[Serveur de la passerelle]: Renvoie la liste des cartes UI stockées sur la passerelle, y compris les cartes UI personnalisées non créées par l'appelant.

8.1.3 Modification de la configuration d'une carte UI spécifiée
[Fournisseur de service UI]: Appelle l'API pour modifier la configuration d'une carte UI spécifiée, telle que la configuration de taille et l'URL de la ressource.
[Serveur de la passerelle]: Après modification réussie, la passerelle stocke les informations mises à jour de la carte UI, y compris la nouvelle configuration de taille et l'URL de la ressource.

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 la 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
Authorization: Bearer ::: Paramètres de la requête :
Attribut
Type
Optionnel
Description
label
string
Y
Libellé de la carte : Utilisé pour décrire la carte. C'est l'alias de la carte.
cast_settings
CastSettingsObject
Y
Paramètres de la carte Cast : paramètres de configuration pour les cartes Cast.
web_settings
WebSettingsObject
N
Paramètres de la carte Web : paramètres de configuration pour les cartes Web.
CastSettingsObject :
Attribut
Type
Optionnel
Description
dimensions
DimensionObject []
N
Configuration de taille : Doit inclure au moins une configuration.
défaut
string
N
Spécification par défaut : La spécification de taille par défaut est utilisée, avec paramètres optionnels : 2x2
WebSettingsObject :
Attribut
Type
Optionnel
Description
dimensions
DimensionObject []
N
Configuration de taille : Doit inclure au moins une configuration.
drawer_component
DrawerObject
Y
Paramètres d'affichage du composant tiroir.
défaut
string
N
Spécification par défaut :
1x1
2x1 |
DimensionObject :
Attribut
Type
Optionnel
Description
src
string
N
URL de la ressource : Par exemple : http://example.html
size
string
N
Spécifications de taille :
Paramètres optionnels de CastSettingsObject :
2×2
Paramètres optionnels de WebSettingsObject :
1x1
2x1 |
DrawerObject :
Attribut
Type
Optionnel
Description
src
string
N
URL de la ressource : Par exemple : http://example.html
Réponse de données réussie :
Attribut
Type
Optionnel
Description
id
string
N
ID unique de la carte UI
:::astuces Conditions : Les paramètres de la requête sont légaux et la vérification de l'identité de l'utilisateur est passée. **Code d'état : ** 200 OK ::: Exemple de requête:
Exemple de réponse :
8.2.2 Récupérer la liste des cartes UI
:::astuces
URL:
/open-api/v2/rest/ui/cardsMéthode:
GETEn-tête:
Content-Type: application/json
Authorization: Bearer ::: Paramètres de la requête : Aucun Paramètres de réponse :
Attribut
Type
Optionnel
Description
data
CardObject[]
N
Liste des cartes UI
CardObjec Objet :
Attribut
Type
Optionnel
Description
id
string
N
ID de la carte : Un identifiant unique pour la carte.
label
string
Y
Libellé de la carte : Utilisé pour décrire la carte. Il sert d'alias ou de nom pour la carte.
cast_settings
CastSettingsObject
Y
Libellé de la carte : Utilisé pour décrire la carte. C'est l'alias de la carte.
web_settings
WebSettingsObject
N
Paramètres de la carte Cast : paramètres de configuration pour les cartes Cast.
app_name
string
Y
Paramètres de la carte Web : paramètres de configuration pour les cartes Web.
CastSettingsObject :
Attribut
Type
Optionnel
Description
dimensions
DimensionObject []
N
Configuration de taille : Doit inclure au moins une configuration.
défaut
string
N
Spécification par défaut :
Paramètre optionnel : 2x2
utilisé
string
N
Spécification actuelle :
Paramètre optionnel : 2x2
WebSettingsObject :
Attribut
Type
Optionnel
Description
dimensions
DimensionObject []
N
Configuration de taille : Doit inclure au moins une configuration.
drawer_component
DrawerObject
Y
Paramètres d'affichage du composant tiroir.
défaut
string
N
Spécification par défaut :
Paramètre optionnel :
1x1
2x1 | | used | string | N | Spécification actuelle : Paramètre optionnel :
1x1
2x1 |
DimensionObject :
Attribut
Type
Optionnel
Description
src
string
N
URL de la ressource : Par exemple : http://example.html
size
string
N
Spécifications de taille :
Paramètre optionnel :
1x1
2x1
Remarque: Actuellement, les cartes cast ne prennent en charge que la spécification 2x2. La spécification 2x2 ne sera pas effective. |
DrawerObject :
Attribut
Type
Optionnel
Description
src
string
N
URL de la ressource : Par exemple : http://example.html
Exemple de réponse :
8.2.3 Modifier la configuration d'une carte UI spécifiée
Les utilisateurs autorisés sont autorisés à modifier la configuration d'une carte UI existante via cette interface. Les fournisseurs de services de cartes personnalisées ne peuvent modifier que les cartes UI qu'ils ont créées.
:::astuces
URL:
/open-api/v2/rest/ui/cards/{id}Méthode:
PUTEn-tête:
Content-Type: application/json
Authorization: Bearer ::: Paramètres de la requête :
Attribut
Type
Optionnel
Description
label
string
Y
Utilisé pour décrire la carte. C'est l'alias de la carte.
cast_settings
CastSettingsObject
Y
Paramètres de la carte Cast
web_settings
WebSettingsObject
Y
Paramètres de la carte Web
CastSettingsObject :
Attribut
Type
Optionnel
Description
utilisé
string
Y, L'un ou l'autre utilisé ou src doit être fourni, mais au moins un de ces paramètres est requis.
Spécification actuelle :
Paramètre optionnel :
2x2
| | src | string | Y, L'un ou l'autre utilisé ou src doit être fourni, mais au moins un de ces paramètres est requis. | URL de la ressource : http://example.html |
WebSettingsObject :
Attribut
Type
Optionnel
Description
utilisé
string
Y, L'un ou l'autre utilisé ou src doit être fourni, mais au moins un de ces paramètres est requis.
Spécification actuelle :
Paramètre optionnel :
1x1
2x1 | | src | string | Y, L'un ou l'autre
utilisé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
Authorization: Bearer ::: Paramètres de la requête : Aucun Réponse de données réussie : :::astuce Conditions: Les paramètres de la requête sont légaux et la vérification d'identité de l'utilisateur est passée. La carte UI modifiée doit avoir été créée par le fournisseur de carte UI personnalisée appelant l'interface. **Code d'état : **
200 OKCode d'erreur :
406: Pas d'autorisation pour accéder à cette ressource. ::: **Exemple de réponse : **
Mis à jour