Guía para desarrolladores y API
1. Comenzar a usar
1.1 Preparación
Paso 1. Asegúrese de que la pasarela esté encendida y funcione correctamente.
Paso 2. Asegúrese de que la pasarela y el PC estén conectados a la misma LAN. Luego ingrese la URL de CUBE en su navegador.
Aviso: Si tiene varias pasarelas, puede obtener la dirección IP correspondiente para acceder a la pasarela especificada de las dos maneras siguientes.
Inicie sesión en su router inalámbrico y verifique la dirección IP de la pasarela en DHCP.
CUBE admite el descubrimiento local a través de mDNS.
1.2 Comenzar
Llame a la interfaz [Access Token] y obtenga una respuesta de error que indique hacer clic <Hecho>. Tenga en cuenta que después de presionar, el acceso a la interfaz es válido por no más de 5 minutos.
// Solicitud
curl --location --request GET 'http://<ip address>/open-api/V2/rest/bridge/access_token' --header 'Content-Type: application/json'
// Respuesta
{
"error": 401,
"data": {},
"message": "link button not pressed"
}Haga clic <Hecho> y llame de nuevo a la interfaz [Access Token]. La respuesta es exitosa y se obtiene el token.
Verificar el token. Llame a la interfaz [Get Device List]. La respuesta es exitosa y se obtiene la lista de dispositivos.
Método para obtener el token de acceso de CUBE: después de llamar a la interfaz [Access Token], la página de la consola web de CUBE mostrará un cuadro emergente global que solicita al usuario confirmar la adquisición de las credenciales de llamada de la interfaz.
Nota: Si abre más de una página de la consola web de CUBE, el cuadro emergente de confirmación aparecerá en varias páginas de la consola web al mismo tiempo, y el cuadro emergente de otras páginas se cerrará después de hacer clic en la confirmación en una de las páginas.
2. Concepto central
2.1 Dirección de la interfaz de desarrollo
La API web de la pasarela tiene dos métodos de acceso (basado en IP o nombre de dominio), usualmente la ruta raíz es /open-api/V2/rest/< módulo funcional específico >
// Acceso por IP http:///open-api/V2/rest/bridge
// Acceso por nombre de dominio http:///open-api/V2/rest/bridge
2.2 Categoría de visualización del dispositivo y capacidades
**Categoría de visualización del dispositivo (DisplayCategory). **La categoría de visualización del dispositivo se utiliza para identificar categorías específicas (del dispositivo), como switch, plug, light, etc. Esta información determinará el efecto de visualización de la interfaz de usuario del dispositivo en la pasarela.
**Capacidad del dispositivo. **La capacidad del dispositivo se usa para describir las subfunciones específicas del dispositivo. Como control de energía, control de brillo, control de temperatura de color, etc. Un solo dispositivo puede soportar 1 o más capacidades.
capability: Describe el nombre de la capacidad, que debe ser único a nivel global y de tipo cadena. Varias palabras en inglés deben separarse con guiones ("-"). Por ejemplo:
"thermostat-target-setpoint".name: Describe la categoría dentro de la capacidad, también de tipo cadena. Varias palabras en inglés deben separarse con guiones ("-"). Por ejemplo:
"auto-mode","manual-mode".permission: Describe los permisos asociados con la capacidad. El tipo es cadena, formateado en un código binario 8421. Ejemplos incluyen:
Dispositivo controlable:
"1000"Dispositivo configurable:
"0010"Dispositivo controlable y configurable:
"1010"Dispositivo controlable e informable:
"1100"
El significado de cada bit, de derecha a izquierda, es el siguiente: ⅰ. Bit 0: Permite consultar el dispositivo ⅱ. Bit 1: Permite configurar el dispositivo ⅲ. Bit 2: Permite que el dispositivo informe datos ⅳ. Bit 3: Permite controlar el dispositivo
settings: Describe los elementos de configuración para la capacidad, que son de tipo objeto e incluyen una descripción de cada elemento de configuración. ⅰ. key: Describe el nombre del elemento de configuración, que es de tipo cadena. Varias palabras en inglés deben expresarse en camelCase. Por ejemplo: "temperatureUnit". ⅱ. value: Describe el contenido del elemento de configuración. Las especificaciones concretas se detallan en la tabla a continuación.
permission
string
N
Describe los permisos para el elemento de configuración.
Valores opcionales:
Permitir la modificación de este elemento de configuración:
"10"Permitir la visualización de este elemento de configuración:
"01"Permitir tanto la modificación como la visualización de este elemento de configuración:
"11"
Explicación de bits:
Bit 0: Permite la visualización de este elemento de configuración
Bit 1: Permite la modificación de este elemento de configuración | | tipo | string | N | Describe el tipo de datos del valor del elemento de configuración. Valores opcionales:
"enum""numeric""object""boolean""string"
Pautas específicas por tipo:
Cuando
**type = enum**:El
campo value(que describe el valor del elemento de configuración) es obligatorio sipermissionpermite la modificación ("10"o"11").El
default(que describe el valor por defecto del elemento de configuración) yvalues(que describe los valores seleccionables para el elemento de configuración) son campos opcionales.
Cuando
**type = numeric**:El
campo valueel campo es obligatorio sipermissionpermite la modificación ("10"o"11").Los siguientes campos son opcionales:
min(que describe el valor mínimo del elemento de configuración)max(que describe el valor máximo del elemento de configuración)step(que describe el valor de paso para el elemento de configuración)precision(que describe la precisión)unit(que describe la unidad del elemento de configuración)default(que describe el valor por defecto)
Cuando
**type = object**:El
campo valueel campo es obligatorio sipermissionpermite la modificación ("10"o"11").El
defaultel campo es opcional.
Cuando
**type = boolean**:El
campo valueel campo es obligatorio sipermissionpermite la modificación ("10"o"11").El
defaultel campo es opcional.
Cuando
**type = string**:El
campo valueel campo es obligatorio sipermissionpermite la modificación ("10"o"11").El
defaultel campo es opcional. |
3. API web
Tipo de datos
string
Tipo de dato string. Codificado en UTF8.
number
Tipo de dato numérico. formato binario en coma flotante de doble precisión de 64 bits IEEE 754
int
Tipo de dato entero.
object
Tipo de dato objeto. Objeto compatible con JSON
string[]
Array de strings
int[]
Array de enteros
object[]
Array de objetos
bool
Booleano
date
Cadena de tiempo. Cadena en formato ISO (Formato extendido ISO 8601): YYYY-MM-DDTHH:mm:ss.sssZ. La zona horaria siempre es UTC (Tiempo Universal Coordinado), identificada por el sufijo "Z".
Resultados genéricos de la respuesta
error
int
N
Código de error:
0: Éxito
400: Error de parámetro
401: Autenticación fallida
500: Excepción del servidor
data
object
N
Cuerpo de datos de la respuesta
message
string
N
Descripción de la respuesta:
Cuando error es igual a 0, el contenido es success
Cuando error no es igual a 0, es una cadena no vacía y el contenido es una descripción del error.
Ejemplo de respuesta:
Lista de recursos
Sonidos compatibles
- alert1 (Sonido de alarma 1)
alert2 (Sonido de alarma 2)
alert3 (Sonido de alarma 3)
alert4 (Sonido de alarma 4)
alert5 (Sonido de alarma 5)
doorbell1 (Sonido de timbre 1)
doorbell2 (Sonido de timbre 2)
doorbell3 (Sonido de timbre 3)
doorbell4 (Sonido de timbre 4)
doorbell5 (Sonido de timbre 5)
alarm1 (Sonido de alarma 1)
alarm2 (Sonido de alarma 2)
alarm3 (Sonido de alarma 3)
alarm4 (Sonido de alarma 4)
alarm5 (Sonido de alarma 5) | | Deep compatibles | - bootComplete (Inicio del sistema completado)
networkConnected (Red conectada)
networkDisconnected (Red desconectada)
systemShutdown (Apagado del sistema) -deviceDiscovered (Dispositivo descubierto)
system Armed (Sistema armado habilitado)
system Disarmed (Sistema armado deshabilitado)
factoryReset (Restablecer dispositivo) |
3.1 La función de la pasarela
a. Token de acceso
Permite a los usuarios obtener el token de acceso.
Aviso: El token se borrará después del reinicio del dispositivo.
Aviso: Después de obtener el token, debe presionar el botón nuevamente para obtener con éxito un nuevo token.
:::consejos
URL:
/open-api/V2/rest/bridge/access_tokenMétodo:
GETEncabezado:
Content-Type: application/json ::: Parámetros de la solicitud:
Atributo
Tipo
Opcional
Descripción
app_name
string
Y
Descripción del nombre de la aplicación.
Respuesta de datos exitosa:
Atributo
Tipo
Opcional
Descripción
token
string
N
El token de acceso de la interfaz. Es válido por largo tiempo, por favor guárdelo
app_name
string
Y
Descripción del nombre de la aplicación.
:::consejos Condición: El usuario activa la < tecla de comando > y accede a esta interfaz dentro del tiempo válido. **Código de estado: **200 OK ::: Ejemplo de respuesta:
Respuesta de datos en caso de fallo:Objeto vacío :::consejos Condiciones:El usuario no ha activado la < tecla de comando >, o el tiempo válido ha expirado. **Código de estado: ** 200 OK ::: Ejemplo de respuesta:
b. Obtener el estado de la pasarela
Permite a los usuarios autorizados obtener el estado de la pasarela a través de esta interfaz :::consejos
URL:
/open-api/V2/rest/bridge/runtimeMétodo:
GETEncabezado:
Content-Type: application/json
Autorization: Bearer ::: Parámetros de la solicitud: ninguno Respuesta de datos exitosa:
Atributo
Tipo
Opcional
Descripción
ram_used
int
N
Porcentaje de uso de RAM. [0-100]
cpu_used
int
N
Porcentaje de uso de CPU. [0-100]
power_up_time
date
N
La última hora de encendido
cpu_temp
int
N
Temperatura de la CPU:
Unidad: Celsius
cpu_temp_unit
string
N
Unidad de temperatura de la CPU:
Opcional
valores:'c', 'f'
sd_card_used
int
Y
Uso de la tarjeta SD (porcentaje):
Rango:[0-100] con una posición decimal de precisión
*Nota: Si la tarjeta SD no está insertada o no está formateada, el valor está vacío.
:::consejos Condiciones: Los parámetros de la solicitud son legales y la verificación de identidad del usuario ha pasado. **Código de estado: **200 OK ::: Ejemplo de respuesta:
c. Configurar la pasarela
Permite a los usuarios autorizados configurar la pasarela a través de esta interfaz :::consejos
URL:
/open-api/V2/rest/bridge/configMétodo:
PUTEncabezado:
Content-Type: application/json
Autorization: Bearer ::: Parámetros de la solicitud:
Atributo
Tipo
Opcional
Descripción
volume
int
Y
Volumen del sistema. [0-100]
Respuesta de datos exitosa: Objeto vacío {} :::consejos Condiciones: Los parámetros de la solicitud son legales y la verificación de identidad del usuario ha pasado. **Código de estado: **200 OK ::: Ejemplo de respuesta:
d. Obtener la información de la pasarela
Permite a los usuarios autorizados obtener la información de la pasarela a través de esta interfaz :::consejos
URL:
/open-api/V2/rest/bridgeMétodo:
GETEncabezado:
Content-Type: application/json ::: Parámetros de la solicitud:
Atributo
Tipo
Opcional
Descripción
ip
string
N
dirección ip
mac
string
N
dirección mac
domain
string
Y
Dominio del servicio de la pasarela
fw_version
string
N
Versión de firmware
name
string
N
Nombre del dispositivo
Respuesta de datos exitosa: Objeto vacío {} :::consejos Condiciones: Ninguno **Código de estado: **200 OK ::: Ejemplo de respuesta:
e. Silenciar la pasarela
Permite a los usuarios autorizados silenciar la pasarela a través de esta interfaz. :::consejos
URL:
/open-api/v2/rest/bridge/muteMétodo:
PUTEncabezado:
Content-Type: application/json
Authorization: Bearer ::: Parámetros de la solicitud: ninguno Respuesta de datos exitosa: Objeto vacío {} :::consejos Condiciones: Los parámetros de la solicitud son legales y la verificación de identidad del usuario ha pasado. **Código de estado: **200 OK ::: Ejemplo de respuesta:
f. Quitar silencio de la pasarela
Permite a los usuarios autorizados quitar el silencio de la pasarela a través de esta interfaz. :::consejos
URL:
/open-api/v2/rest/bridge/unmuteMétodo:
PUTEncabezado:
Content-Type: application/json
Authorization: Bearer ::: Parámetros de la solicitud: ninguno Respuesta de datos exitosa: Objeto vacío {} :::consejos Condiciones: Los parámetros de la solicitud son legales y la verificación de identidad del usuario ha pasado. **Código de estado: **200 OK ::: Ejemplo de respuesta:
g. Cancelar la alarma de la pasarela
Permite a los usuarios autorizados desactivar el estado de sonido de alarma en la pasarela a través de esta interfaz. :::consejos
URL:
/open-api/v2/rest/bridge/cancel_alarmMétodo:
PUTEncabezado:
Content-Type: application/json
Authorization: Bearer ::: Parámetros de la solicitud: ninguno Respuesta de datos exitosa: Objeto vacío {} :::consejos Condiciones: Los parámetros de la solicitud son legales y la verificación de identidad del usuario ha pasado. **Código de estado: **200 OK ::: Ejemplo de respuesta:
3.2 Función de hardware
a. Reiniciar la pasarela
Permite al usuario autorizado reiniciar la pasarela a través de esta interfaz :::consejos
URL:
/open-api/V2/rest/hardware/rebootMétodo:
POSTEncabezado:
Content-Type: application/json
Autorization: Bearer ::: Parámetros de la solicitud: ninguno Respuesta de datos exitosa: Objeto vacío {} :::consejos Condiciones: Los parámetros de la solicitud son legales y la verificación de identidad del usuario ha pasado. **Código de estado: **200 OK :::
b. Control del altavoz
Permite a los usuarios autorizados controlar el altavoz a través de esta interfaz :::consejos
URL:
/open-api/V2/rest/hardware/speakerMétodo:
POSTEncabezado:
Content-Type: application/json
Authorization: Bearer ::: Parámetros de la solicitud:
Atributo
Tipo
Opcional
Descripción
type
string
N
Parámetros opcionales: 1.play_sound (reproducir el sonido) 2.play_beep (reproducir el pitido)
sound
SoundObject
Y (N si type es play_sound.)
El sonido.
beep
BeepObject
Y (N si type es play_beep.)
El pitido
SoundObject
Atributo
Tipo
Opcional
Descripción
name
string
N
El nombre del sonido. Los valores compatibles se pueden consultar en [Resource List - Supported sound]
volume
int
N
El volumen del sonido. [0-100]
countdown
int
N
La duración durante la cual el altavoz reproducirá el sonido, y dejará de reproducir automáticamente cuando termine el tiempo. Unidad: segundos. [0,1799]
BeepObject
Atributo
Tipo
Opcional
Descripción
name
string
N
El nombre del deep. Los valores compatibles se pueden consultar en [Resource List - Supported deep]
volume
int
N
El volumen del deep. [0-100]
Respuesta de datos exitosa: Objeto vacío {} :::consejos Condiciones: Los parámetros de la solicitud son legales y la verificación de identidad del usuario ha pasado. **Código de estado: ** 200 OK ::: Ejemplo de respuesta:
3.3 Función de gestión de dispositivos
a. Tipos de dispositivos compatibles
Tipo de dispositivo
Valor
Versión iHost
Enchufe
plug
≥ 2.1.0
Interruptor
switch
≥ 2.1.0
Luz
light
≥ 2.1.0
Cortina
curtain
≥ 2.1.0
Sensor de puerta/ventana
contactSensor
≥ 2.1.0
Sensor de movimiento
motionSensor
≥ 2.1.0
Sensor de temperatura
temperatureSensor
≥ 2.1.0
Sensor de humedad
humiditySensor
≥ 2.1.0
Sensor de temperatura y humedad
temperatureAndHumiditySensor
≥ 2.1.0
Detector de fugas de agua
waterLeakDetector
≥ 2.1.0
Detector de humo
smokeDetector
≥ 2.1.0
Botón inalámbrico
button
≥ 2.1.0
Cámara
camera
≥ 2.1.0
Sensor general
sensor
≥ 2.1.0
Sensor general
sensor
≥ 2.1.0
Ventilador-luz
fanLight
≥ 2.1.0
Aire acondicionado
airConditioner
≥ 2.1.0
Ventilador
fan
≥ 2.1.0
Termostato
thermostat
≥ 2.1.0
b. Capacidades de dispositivo compatibles
Interruptor de encendido (power):
Ejemplo de declaración de capacidad:
Atributo de estado:
Protocolo (Consulta de estado e instrucciones de control):
Encender:
Apagar:
Interruptor de canal (toggle):
Ejemplo de declaración de capacidad:
Ejemplo de componente único:
Ejemplo de componentes múltiples:
Atributo de estado:
Protocolo (Consulta de estado e instrucciones de control):
Formato de alternancia:
Inching de canal (toggle-inching):
Ejemplo de declaración de capacidad:
Atributo de estado
Ninguno
Protocolo (Consulta de estado e instrucciones de control)
Ninguno
Ajuste de brillo (brightness):
Ejemplo de declaración de capacidad:
Atributo de estado:
Protocolo (Consulta de estado e instrucciones de control):
Establecer brillo al 80%. (0 es el más oscuro y 100 el más claro.)
Ajuste de temperatura de color (color-temperature):
Ejemplo de declaración de capacidad:
Atributo de estado:
Protocolo (Consulta de estado e instrucciones de control):
Ajustar temperatura de color al 50%:
Ajuste de color (color-rgb):
Ejemplo de declaración de capacidad:
Atributo de estado:
Protocolo (Consulta de estado e instrucciones de control):
Establecer color a púrpura:
Ajuste por porcentaje (percentage):
Ejemplo de declaración de capacidad:
Atributo de estado:
Protocolo (Consulta de estado e instrucciones de control):
Ajustar al 40%:
Control de motor (motor-control):
Ejemplo de declaración de capacidad:
Atributo de estado:
Protocolo (Consulta de estado e instrucciones de control):
Abrir motor:
Inversión de motor (motor-reverse):
Ejemplo de declaración de capacidad:
Atributo de estado:
Protocolo (Consulta de estado e instrucciones de control):
Configurar motor hacia adelante:
Calibración del motor (motor-clb)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Reporte de estado):
Informar que el motor está siendo calibrado:
Estado de encendido al iniciar (startup)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Establecer estado de encendido siempre activado:
Activación de despertador (identify)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Reporte de estado e instrucciones de control):
Establecer tiempo de activación del despertador:
Informar estado de activación:
Estadísticas de consumo de energía en tiempo real (power-consumption)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Iniciar/Detener estadísticas en tiempo real:
Consultar consumo de energía por rango de tiempo:
Responder con el resultado de estadísticas dentro del rango de tiempo:
Protocolo (Reporte de estado e instrucciones de control):
Iniciar estadísticas en tiempo real:
Detener estadísticas en tiempo real:
Obtener consumo de energía histórico:
Obtener consumo de energía en tiempo real:
Detección de modo de temperatura y humedad (thermostat-mode-detect)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Formato:
Ejemplo:
Modo del termostato (thermostat-mode)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Estado de recuperación adaptativa del termostato (thermostat/adaptive-recovery-status)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Configuración de temperatura objetivo del modo del termostato (thermostat-target-setpoint)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Detección de sensor (detect)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Detección de temperatura (temperature)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Detección de humedad (humidity)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Detección de batería (battery)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Detección de botón único (press)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Detección de múltiples pulsaciones (multi-press)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Detección de intensidad de señal (rssi)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Detección de manipulación (tamper-alert)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Detección de nivel de iluminación (illumination-level)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Detección de voltaje (voltage)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Detección de corriente eléctrica (electric-current)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Detección de potencia eléctrica (electric-power)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Detección de fallos (fault)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Disyuntor de umbral (threshold-breaker)
Ejemplo de declaración de capacidad:
Atributos (Estado)
Ninguno
Protocolo (Consulta de estado e instrucciones de control)
Ninguno
Función Inch (inching)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Ninguno
Protocolo (Consulta de estado e instrucciones de control):
Ninguno
Transmisión de cámara (camera-stream)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Ninguno
Protocolo (Consulta de estado e instrucciones de control):
Ninguno
Control de modo (mode)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Detección de dióxido de carbono (co2)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Detección de iluminación (illumination)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Detección de humo (smoke)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Detección de apertura/cierre por imán de puerta (contacto)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Detección de movimiento (motion)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Detección de fugas de agua (water-leak)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Interruptor de detección de ventana (window-detection)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Bloqueo infantil (child-lock)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Interruptor anti-soplado directo (anti-direct-blow)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Interruptor de oscilación horizontal (horizontal-swing)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Interruptor de oscilación vertical (vertical-swing)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Modo ECO (eco)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Alternar inicio (toggle-startup)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Detección de retención (detect-hold)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Alternar identificar/activar (toggle-identify)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Detección de voltaje alterno (toggle-voltage)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Detección de corriente eléctrica de subcomponente (toggle-electric-current)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Detección de potencia de subcomponente (toggle-electric-power)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Estadísticas de consumo de energía de subcomponentes (toggle-power-consumption)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Iniciar/Detener estadísticas en tiempo real:
Consultar consumo de energía por rango de tiempo:
Respuesta para consumo de energía dentro del rango de tiempo:
Protocolo (Consulta de estado e instrucciones de control):
Iniciar estadísticas en tiempo real:
Detener estadísticas en tiempo real:
Obtener consumo de energía histórico:
Obtener consumo de energía en tiempo real:
Indicador de calidad de enlace (lqi)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Configuración funcional (configuration)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Sistema (system)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Humedad (moisture)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Presión barométrica (barometric-pressure)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Velocidad del viento (wind-speed)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Dirección del viento (wind-direction)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Precipitación (rainfall)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Índice ultravioleta (ultraviolet-index)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Conductividad eléctrica (electrical-conductivity)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Potencia de transmisión (transmit-power)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Detección PM2.5 (pm25)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Índice VOC (voc-index)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Detección de gas natural (gas)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Estado de trabajo de riego (irrigation/work-status)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Reporte de estado de trabajo:
Consulta de estado de trabajo:
Resultado de la consulta de estado de trabajo:
Modo de trabajo de riego (irrigation/work-mode)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Protocolo (Consulta de estado e instrucciones de control):
Controlador automático de riego (irrigation/auto-controller)
Ejemplo de declaración de capacidad:
Atributos (Estado):
Programación de un solo tiempo o repetida:
Volumen único o repetido:
Protocolo (Consulta de estado e instrucciones de control):
Programación de un solo tiempo o repetida:
Volumen único o repetido:
Modos preestablecidos compatibles
fanLevel (nivel de ventilador)
"low"
"medium"
"high"
thermostatMode (modo del termostato)
"auto"
"manual"
airConditionerMode >= 1.11.0 (modo del aire acondicionado)
"cool"
"heat"
"auto"
"fan"
"dry"
fanMode >= 1.11.0 (modo de ventilador)
"normal"
"sleep"
"child"
horizontalAngle >= 1.11.0 (ángulo horizontal)
"30"
"60"
"90"
"120"
"180"
"360"
verticalAngle >= 1.11.0 (ángulo vertical)
"30"
"60"
"90"
"120"
"180"
"360"
c. Descripción de etiquetas
La clave especial toggle se usa para establecer el nombre del subcomponente toggle.
La clave especial temperature_unit se usa para establecer la unidad de temperatura.
d. Código de error especial y descripción
Código de error
Descripción
Versión iHost
110000
El subdispositivo/grupo correspondiente al id no existe
≥2.1.0
110001
La pasarela está en estado de descubrimiento de dispositivos zigbee
≥2.1.0
110002
Los dispositivos de un grupo no tienen una capacidad común
≥2.1.0
110003
Número incorrecto de dispositivos
≥2.1.0
110004
Número incorrecto de grupos
≥2.1.0
110005
Dispositivo desconectado
≥2.1.0
110006
Error al actualizar el estado del dispositivo
≥2.1.0
110007
Error al actualizar el estado del grupo
≥2.1.0
110008
Se ha alcanzado el número máximo de grupos. Cree hasta 50 grupos
≥2.1.0
110009
La dirección IP del dispositivo de la cámara es incorrecta
≥2.1.0
110010
Error de autorización de acceso al dispositivo de la cámara
≥2.1.0
110011
Error en la dirección de flujo de la cámara
≥2.1.0
110012
La codificación de video de la cámara no es compatible
≥2.1.0
110013
El dispositivo ya existe
≥2.1.0
110014
La cámara no admite operación sin conexión
≥2.1.0
110015
La contraseña de la cuenta no coincide con la contraseña de la cuenta en la dirección de flujo RTSP
≥2.1.0
110016
La pasarela está en estado de descubrimiento de cámaras onvif
≥2.1.0
110017
Se excedió el número máximo de cámaras agregadas
≥2.1.0
110018
La ruta de la cámara ESP es incorrecta
≥2.1.0
110019
Error al acceder a la dirección del servicio del dispositivo de terceros
≥2.1.0
e. Buscar subdispositivo
Permitir a usuarios autorizados habilitar o deshabilitar la búsqueda de subdispositivos en la pasarela a través de esta interfaz
💡Nota: Actualmente solo se admite la búsqueda de subdispositivos Zigbee.
💡Nota: Los subdispositivos Zigbee se agregarán automáticamente después de la búsqueda. No es necesario usar la interfaz "Agregar subdispositivos manualmente" :::tips
URL:/open-api/V2/rest/devices/discovery
Método: PUT
Encabezado:
Content-Type: application/json
Autorization: Bearer ::: Parámetros de la solicitud:
Atributo
Tipo
Opcional
Descripción
habilitar
boolean
N
true (Iniciar emparejamiento); false (Pausar emparejamiento)
type
string
N
Tipo de búsqueda: Zigbee
Respuesta de datos exitosa: Objeto vacío {} :::consejos Condiciones: Los parámetros de la solicitud son legales y la verificación de identidad del usuario ha pasado. **Código de estado: ** 200 OK ::: Ejemplo de respuesta:
f. Agregar manualmente el subdispositivo
Permitir a usuarios autorizados agregar un único subdispositivo a través de esta interfaz.
Nota: Actualmente solo se admiten Cámara RTSP y Cámara ESP32 :::tips
URL:/open-api/V2/rest/devices
Método:POST
Encabezado:
Content-Type: application/json
Autorization: Bearer ::: Parámetros de la solicitud:
Atributo
Tipo
Opcional
Descripción
name
string
N
Nombre del subdispositivo
display_category
string
N
Tipo de dispositivo. Solo admite cámara.
capabilities
CapabilityObject[]
N
Lista de capacidades. Cuando display_category = camera, las capacidades solo incluyen camera-stream.
protocal
string
N
Protocolo del dispositivo. RTSP; ESP32-CAM
manufacturer
string
N
Fabricante.
model
string
N
Modelo del dispositivo
firmware_version
string
N
Versión del firmware del dispositivo
CapabilityObject
Atributo
Tipo
Opcional
Descripción
capability
string
N
Nombre de la capacidad. Solo admite "camera-stream"
permission
string
N
Permiso del dispositivo. Solo admite lectura.
configuration
CameraStreamConfigurationObject
Y
Configuración de flujo de cámara.
SettingsObject
Atributo
Tipo
Opcional
Descripción
streamSetting
StreamSettingObject
N
Configuración del servicio de transmisión
StreamSettingObject
Atributo
Tipo
Opcional
Descripción
type
string
N
Configuración del servicio de transmisión
permission
string
N
Permiso de capacidad. Solo admite "11" (modificable).
campo value
StreamSettingValueObject
N
Valores de configuración específicos
StreamSettingValueObject
Atributo
Tipo
Opcional
Descripción
stream_url
string
N
Formato de URL de flujo
Formato:<schema>://<hostname>:<port>/<username>:<password>@<service_path>
Opciones de esquema:
rtsp (Protocolo de transmisión en tiempo real)
http (Protocolo de transferencia de hipertexto) — Para dispositivos ESP32-CAM
*Nota: Algunas cámaras pueden no requerir nombre de usuario o contraseña. En esos casos, puede omitir el <username> y <password> campos de la URL.
Respuesta de datos exitosa:
Atributo
Tipo
Opcional
Descripción
serial_number
string
N
Número de serie único del dispositivo
:::consejos Condiciones: Los parámetros de la solicitud son legales y la verificación de identidad del usuario ha pasado. **Código de estado: **200 OK ::: Ejemplo de respuesta:
Respuesta de datos de falla: Objeto vacío :::tips Condición:
Error de acceso a la dirección de flujo de la cámara (error de formato, fallo de autorización, excepción de red, etc.)
El dispositivo ya existe
Si falla la adición de un solo dispositivo, devuelve que todos los dispositivos fallaron al agregarse.
Código de estado: 200 OK Código de error: ● 110009 Error en la dirección IP de la cámara ● 110010 Error de autorización de acceso a la cámara ● 110011 Error en la dirección de flujo de la cámara ● 110012 La codificación de video de la cámara no es compatible ● 110013 El dispositivo ya existe ::: Ejemplo de respuesta:
g. Obtener lista de subdispositivos
Permitir a usuarios autorizados obtener la lista de subdispositivos de la pasarela a través de esta interfaz. :::tips
URL:/open-api/V2/rest/devices
Método: GET
Encabezado:
Content-Type: application/json
Autorization: Bearer ::: Parámetros de la solicitud: ninguno Respuesta de datos exitosa:
Atributo
Tipo
Opcional
Descripción
device_list
ResponseDeviceObject[]
N
Lista de dispositivos
ResponseDeviceObject
Atributo
Tipo
Opcional
Descripción
serial_number
string
N
Número de serie único del dispositivo
third_serial_number
string
"N" cuando se conecta un dispositivo de terceros, de lo contrario "Y"
Número de serie único del dispositivo de terceros
service_address
string
"N" cuando se conecta un dispositivo de terceros, de lo contrario "Y"
Dirección del servicio de terceros
name
string
N
Nombre del dispositivo, si no se renombra, será mostrado por el frontend según las reglas de visualización predeterminadas.
manufacturer
string
N
Fabricante
model
string
N
Modelo del dispositivo
firmware_version
string
N
Versión del firmware. Puede ser una cadena vacía.
hostname
string
Y
Nombre de host del dispositivo
mac_address
string
Y
Dirección MAC del dispositivo
app_name
string
Y
El nombre de la aplicación a la que pertenece. Si se completa app_name al obtener el certificado de la interfaz abierta, entonces todos los dispositivos posteriores conectados mediante el certificado se escribirán en este campo.
display_category
string
N
Categoría del dispositivo
capabilities
CapabilityObject[]
N
Capacidades del dispositivo
protocol
string
"N" cuando se conecta un dispositivo de terceros, de lo contrario "Y"
Protocolo del dispositivo: zigbee, onvif, rtsp, esp32-cam
estado
object
Y
Objeto de estado del dispositivo. Para ejemplos de estado de diferentes capacidades, consulte 【Dispositivos compatibles】
etiquetas
object
Y
Clave-valor en formato JSON, información personalizada del dispositivo. La función es la siguiente:- Usado para almacenar canales del dispositivo- Usado para almacenar unidades de temperatura- Información personalizada para otros dispositivos de terceros
en línea
boolean
N
Estado en línea: True para en líneaFalse es fuera de línea
subred
boolean
Y
Si está en la misma subred que la pasarela
CapabilityObject 💡Nota: Por favor consulte los Ejemplos de Capacidades de Dispositivos Compatibles en [Capacidades de Dispositivos Compatibles].
Atributo
Tipo
Opcional
Descripción
capability
string
N
Nombre de la capacidad. Para más detalles, consulte [Capacidades de Dispositivos Compatibles]
permission
string
N
Permiso de la capacidad. Los valores posibles son "read" (lectura), "write" (escritura), "readWrite" (lectura y escritura).
configuration
object
Y
Información de configuración de la capacidad. Actualmente se usa camera-stream, consulte [Capacidades de Dispositivos Compatibles]
name
string
Y
Campo name en toggle. El número de subcanal usado para identificar dispositivos multicanal. Por ejemplo, si name es 1, significa canal 1.
:::consejos Condiciones: Los parámetros de la solicitud son legales y la verificación de identidad del usuario ha pasado. **Código de estado: **200 OK ::: Ejemplo de respuesta:
h. Actualizar Información o Estado Específico del Dispositivo
Permite a usuarios autorizados modificar la información básica del subdispositivo y emitir comandos de control a través de esta interfaz. :::tips
URL:/open-api/V2/rest/devices/{serial_number}
Método:PUT
Encabezado:
Content-Type: application/json
Autorization: Bearer ::: Parámetros de la solicitud:
Atributo
Tipo
Opcional
Descripción
name
string
Y
Nombre del dispositivo
etiquetas
object
Y
Clave-valor en formato JSON, información personalizada del dispositivo.
estado
object
Y
Objeto de estado del dispositivo. Para ejemplos de estado de diferentes capacidades, consulte [Capacidades de Dispositivos Compatibles]
configuration
object
Y
Información de configuración de la capacidad, actualmente solo la capacidad camera_stream admite modificación.
Respuesta de datos exitosa: :::tips Condiciones: Los parámetros de la solicitud son legales y la verificación de identidad del usuario ha pasado. **Código de estado: **200 OK Código de error:
110000 El subdispositivo/grupo correspondiente al id no existe ::: Ejemplo de respuesta:
i. Eliminar Subdispositivo
Permite a usuarios autorizados eliminar subdispositivos a través de esta interfaz. :::tips
URL:/open-api/V2/rest/devices/{serial_number}
Método:DELETE
Encabezado:
Content-Type: application/json
Autorization: Bearer ::: Parámetros de la solicitud:
Atributo
Tipo
Opcional
Descripción
name
string
Y
Nombre del dispositivo.
etiquetas
object
Y
Pares clave-valor en formato JSON usados para almacenar nombres de canales del dispositivo y otra información sobre subdispositivos.
estado
object
Y
Cambiar estado del dispositivo; para detalles del protocolo específico, consulte "Capacidades de Dispositivos Compatibles."
capabilities
CapabilityObject []
Y
Información de configuración de la capacidad; todas las capacidades que admiten establecer configuraciones pueden modificarse. Tenga en cuenta que los permisos no se pueden cambiar.
Respuesta de datos exitosa: :::tips Condiciones: Los parámetros de la solicitud son legales y la verificación de identidad del usuario ha pasado. **Código de estado: **200 OK Códigos de error:
110000: El subdispositivo/grupo correspondiente al ID no existe.
110006: Error al actualizar el estado del dispositivo.
110019: Error al acceder a la dirección del servicio del dispositivo de terceros.
110024: Error al actualizar la configuración del dispositivo. ::: Ejemplo de respuesta:
j. Eliminar Subdispositivo
Permite a usuarios autorizados eliminar subdispositivos a través de esta interfaz. :::tips
URL:
/open-api/v2/rest/devices/{serial_number}Método:
DELETEEncabezado:
Content-Type: application/json
Authorization: Bearer ::: Parámetros de la solicitud: Ninguno Respuesta de datos exitosa: :::tips Condiciones: Los parámetros de la solicitud son legales y la verificación de identidad del usuario ha pasado. **Código de estado: **200 OK ::: Ejemplo de respuesta:
k. Consultar Estado del Dispositivo
Permite a usuarios autorizados consultar el estado del dispositivo a través de esta interfaz. :::tips
URL:
/open-api/v2/rest/devices/:serial_number/query-state/{capability}Método:POST
Encabezado:
Content-Type: application/json
Authorization: Bearer ::: Parámetros de la solicitud:
Atributo
Tipo
Opcional
Descripción
query_state
object
N
Consultar estado del dispositivo; para detalles del protocolo específico, consulte "Capacidades de Dispositivos Compatibles."
Respuesta de datos exitosa: :::tips Condiciones: Los parámetros de la solicitud son legales y la verificación de identidad del usuario ha pasado. **Código de estado: **200 OK ::: Ejemplo de respuesta:
3.4 Gestión de Seguridad
a. Obtener Lista de Seguridad
Permite a usuarios autorizados modificar la configuración de la pasarela a través de esta interfaz. :::tips
URL:
/open-api/v2/rest/securityMétodo:
GETEncabezado:
Content-Type: application/json
Authorization: Bearer ::: Parámetros de la solicitud: Ninguno Respuesta de datos exitosa:
Atributo
Tipo
Opcional
Descripción
security_list
ResponseSecurityObject[]
N
Lista de dispositivos de respuesta
ResponseDeviceObject
Atributo
Tipo
Opcional
Descripción
sid
int
N
id de seguridad
name
string
N
Nombre de seguridad
habilitar
bool
N
Si está habilitado
true Habilitado
false Deshabilitado |
:::consejos Condiciones: Los parámetros de la solicitud son legales y la verificación de identidad del usuario ha pasado. **Código de estado: **200 OK ::: Ejemplo de respuesta:
b. Habilitar Modo de Seguridad Específico
Permite a usuarios autorizados habilitar un modo de seguridad específico a través de esta interfaz. :::tips
URL:
/open-api/v2/rest/security/{security_id}/enableMétodo:
PUTEncabezado:
Content-Type: application/json
Authorization: Bearer ::: Parámetros de la solicitud: Ninguno Respuesta de datos exitosa: Objeto vacío {} :::tips Condiciones: Los parámetros de la solicitud son legales y la verificación de identidad del usuario ha pasado. **Código de estado: **200 OK ::: Ejemplo de respuesta:
c. Deshabilitar Modo de Seguridad Específico
Permite a usuarios autorizados deshabilitar un modo de seguridad específico a través de esta interfaz. :::tips
URL:
/open-api/v2/rest/security/{security_id}/disableMétodo:
PUTEncabezado:
Content-Type: application/json
Authorization: Bearer ::: Parámetros de la solicitud: Ninguno Respuesta de datos exitosa: Objeto vacío {} :::tips Condiciones: Los parámetros de la solicitud son legales y la verificación de identidad del usuario ha pasado. **Código de estado: **200 OK ::: Ejemplo de respuesta:
d. Habilitar Configuración de Seguridad con Un Clic
Permite a usuarios autorizados habilitar el modo de configuración de seguridad con un clic a través de esta interfaz. :::tips
URL:
/open-api/v2/rest/security/enableMétodo:
PUTEncabezado:
Content-Type: application/json
Authorization: Bearer ::: Parámetros de la solicitud: Ninguno Respuesta de datos exitosa: Objeto vacío {} :::tips Condiciones: Los parámetros de la solicitud son legales y la verificación de identidad del usuario ha pasado. **Código de estado: **200 OK ::: Ejemplo de respuesta:
e. Deshabilitar Seguridad
Permite a usuarios autorizados deshabilitar la seguridad a través de esta interfaz. :::tips
URL:
/open-api/v2/rest/security/disableMétodo:
PUTEncabezado:
Content-Type: application/json
Authorization: Bearer ::: Parámetros de la solicitud: Ninguno Respuesta de datos exitosa: Objeto vacío {} :::tips Condiciones: Los parámetros de la solicitud son legales y la verificación de identidad del usuario ha pasado. **Código de estado: **200 OK ::: Ejemplo de respuesta:
4. Acceso de Dispositivos de Terceros
4.1 Instrucciones de Acceso
Acceso de Dispositivo

Acceso de pasarela de terceros

Pasos de acceso
Determine la clasificación del dispositivo en la pasarela. Los detalles, consulte [Tipo de Dispositivo Compatible].
Determine las capacidades que el dispositivo puede acceder. Los detalles, consulte [Capacidades de Dispositivos Compatibles].
Solicite la interfaz [Discovery Request] para agregar el dispositivo a la pasarela.
Atención: Necesita proporcionar la dirección de servicio para recibir las instrucciones emitidas por la pasarela, que se utiliza para recibir las instrucciones de control del dispositivo emitidas por la pasarela.
Si el estado del dispositivo de terceros cambia, debe llamar a la interfaz [Device States Change Report] para enviar el estado más reciente a la pasarela.
Después de agregar, el dispositivo de terceros aparecerá en la Lista de Dispositivos, con la mayoría de las funciones de la pasarela (otros dispositivos no terceros). Las interfaces abiertas comunes relacionadas con el dispositivo se pueden usar con normalidad.
Seleccione la categoría de dispositivo adecuada. La clasificación afectará el resultado final de la interfaz de usuario después de que el dispositivo se conecte a la pasarela.
Elija la capacidad de dispositivo correcta. La lista de capacidades determinará el estado del protocolo de estado del dispositivo.
Proceso del Programa
a. Acceso de Dispositivo

b. Acceso de Pasarela de Terceros

4.2 Ejemplo de Acceso
Interruptor, Enchufe
Sincronizar dispositivos de terceros
Informar estado del dispositivo
Informar fuera de línea/en línea
Recibir las instrucciones sobre el control del dispositivo por la pasarela
Consultar dispositivo
4.3 API Web
Interfaz de Solicitud de Pasarela de Terceros
Formato de Solicitud
Permite a usuarios autorizados enviar solicitudes de eventos a la pasarela a través de esta interfaz. :::tips
URL:/open-api/V2/rest/thirdparty/event
Método:POST
Encabezado:
Content-Type: application/json
Autorization: Bearer ::: Parámetros de la solicitud:
Atributo
Tipo
Opcional
Descripción
evento
EventObject
N
Información de la estructura del objeto de evento de la solicitud
EventObject
Atributo
Tipo
Opcional
Descripción
header
HeaderObject
N
Información de la estructura del encabezado de la solicitud
endpoint
EndpointObject
Y
Información de la estructura del endpoint de la solicitud Nota: Este campo está vacío cuando se sincroniza una nueva lista de dispositivos.
payload
PayloadObject
N
Información de la estructura del payload de la solicitud
HeaderObject
Atributo
Tipo
Opcional
Descripción
name
string
N
Nombre de la solicitud. parámetro opcional: DiscoveryRequest: Sincronizar nuevos dispositivos DeviceStatesChangeReport: Informe de actualización de estado del dispositivo DeviceOnlineChangeReport: Informe de estado en línea del dispositivo
message_id
string
N
ID de mensaje de la solicitud, UUID_V4
version
string
N
Número de versión del protocolo de la solicitud. Actualmente fijo en 1
EndpointObject
Atributo
Tipo
Opcional
Descripción
serial_number
string
N
Número de serie único del dispositivo
third_serial_number
string
N
Número de serie único del dispositivo de terceros
etiquetas
object
Y
Clave-valor en formato JSON, información personalizada del dispositivo. [Función de Gestión de Dispositivos] - [Descripción de Etiquetas]
PayloadObject Según el header.name diferente tienen diferente estructura de solicitud.
Formato de Respuesta
:::tips **Código de Estado: **200 OK Parámetros de la respuesta: :::
Atributo
Tipo
Opcional
Descripción
header
HeaderObject
N
Información de la estructura del encabezado de la respuesta
payload
PayloadObject
N
Información de la estructura del payload de la respuesta
HeaderObject
Atributo
Tipo
Opcional
Descripción
name
string
N
Nombre del encabezado de la respuesta. parámetros opcionales:Response: Respuesta exitosa ErrorResponse: Respuesta de error
message_id
string
N
ID de mensaje del encabezado de la respuesta, UUID_V4. Pase aquí el header.message_id del mensaje de la solicitud *Si la entrada de la solicitud carece de message_id, este campo será una cadena vacía al responder.
version
string
N
- Número de versión del protocolo de la solicitud. Actualmente fijo en 1.
Respuesta exitosa--PayloadObject :
Dependiendo del tipo de solicitud, la estructura de la respuesta es diferente. Para más detalles, consulte el documento de instrucción de la solicitud específica.
Respuesta de fallo--PayloadObject:
Atributo
Tipo
Opcional
Descripción
type
string
N
Tipos de error:
INVALID_PARAMETERS: Error de parámetros
AUTH_FAILURE: Error de autorización
INTERNAL_ERROR: Error interno del servicio | | descripción | string | N | Descripción del error |
DiscoveryRequest Sincronizar una nueva lista de dispositivos
Nota: Después de que el dispositivo se sincronice con la pasarela, está en línea por defecto, es decir, online=true. Los cambios posteriores de estado en línea dependen completamente de la sincronización con el tercero a través de la interfaz DeviceOnlineChangeReport.
Parámetros de la solicitud: EndpointObject**:**Ninguno PayloadObject:
Atributo
Tipo
Opcional
Descripción
endpoints
EndpointObject[]
N
Lista de Dispositivos
EndpointObject:
Atributo
Tipo
Opcional
Descripción
third_serial_number
string
N
Número de serie único del dispositivo de terceros
name
string
N
Nombre del dispositivo
display_category
string
N
Categoría del Dispositivo. Consulte [Tipo de Dispositivo Compatible] para más detalles. *Los dispositivos de terceros no admiten agregar cámaras ahora.
capabilities
CapabilityObject[]
N
Lista de capacidades
estado
object
N
Información de estado inicial
manufacturer
string
N
Fabricante
model
string
N
Modelo del dispositivo
etiquetas
object
Y
Clave-valor en formato JSON, información personalizada del dispositivo:Se usa para almacenar canales del dispositivoSe usa para almacenar unidades de temperaturaOtros datos personalizados de terceros
firmware_version
string
N
Versión de firmware
Ejemplo de Solicitud :
Parámetros de la respuesta: PayloadObject:
Atributo
Tipo
Opcional
Descripción
endpoints
EndpointObject[]
N
Lista de dispositivos
EndpointObject:
Atributo
Tipo
Opcional
Descripción
serial_number
string
N
Número de serie único del dispositivo
third_serial_number
string
N
Número de serie único del dispositivo de terceros
Ejemplo de una respuesta correcta:
Ejemplo de una respuesta de error:
DeviceStatesChangeReport Informe de cambio de estado del dispositivo
Nota: Los informes de estado repetidos pueden activar falsamente escenas asociadas.
Parámetros de la solicitud: PayloadObject:
Atributo
Tipo
Opcional
Descripción
estado
object
N
Estado del dispositivo, consulte [Capacidades de dispositivo compatibles] para más detalles
Ejemplo de Solicitud :
Parámetros de la respuesta: PayloadObject: Objeto vacío Ejemplo de una respuesta exitosa:
DeviceOnlineChangeReport Informe de estado en línea del dispositivo
Nota: Los informes de estado repetidos pueden activar falsamente escenas asociadas.
Parámetros de la solicitud: PayloadObject:
Atributo
Tipo
Opcional
Descripción
en línea
boolean
N
Estado en línea del dispositivo true: En línea
false: Fuera de línea
Ejemplo de Solicitud :
Parámetros de la respuesta: PayloadObject: Objeto vacío Ejemplo de una respuesta exitosa:
DeviceInformationUpdatedReport Informe de Información del Dispositivo Actualizada
Nota: La actualización puede afectar escenas existentes o funciones de seguridad.
Parámetros de la solicitud: PayloadObject:
Atributo
Tipo
Opcional
Descripción
capabilities
| CapabilityObject[]
| N
| Lista de capacidades. Los detalles se pueden encontrar en la sección de capacidades de dispositivos compatibles. **Nota: **Este parámetro solo actualizará el campo value de la configuración clave dentro de la CapabilityObject, y las actualizaciones solo están permitidas si la permission para la configuración clave es 11 o 01. Para la definición de estructura específica de la configuración en CapabilityObject, consulte la descripción detallada en la sección 2.3 Categorías de Visualización de Dispositivos y Capacidades del Dispositivo. | | etiquetas
| objeto
| Y
| Clave-valor en formato JSON, información personalizada del dispositivo.
Puede utilizarse para almacenar canales del dispositivo
Puede utilizarse para almacenar unidades de temperatura
Otros datos personalizados de terceros |
Ejemplo de Solicitud :
esponse parameters: PayloadObject: Objeto vacío Ejemplo de una respuesta exitosa:
La pasarela envía la interfaz de instrucción a través de la dirección de servicio del dispositivo
Nota:
Los terceros deben responder a la solicitud de la pasarela dentro de 3s. De lo contrario, la pasarela juzgará que el procesamiento del comando ha excedido el tiempo.
Si el servicio de terceros está fuera de línea, la pasarela establecerá el dispositivo en estado fuera de línea, y el servicio de terceros necesita informar el estado del dispositivo (DeviceStatesChangeReport) o el estado en línea (DeviceOnlineChangeReport) antes de volver al estado en línea.
Formato de la solicitud
La pasarela envía instrucciones al tercero a través de la interfaz de la dirección de servicio del dispositivo. :::tips
URL:
Método:POST
Encabezado:
Content-Type: application/json ::: Parámetros de la solicitud:
Atributo
Tipo
Opcional
Descripción
directiva
DirectiveObject
N
Información de la estructura del objeto directiva
DirectiveObject
Atributo
Tipo
Opcional
Descripción
header
HeaderObject
N
Información de la estructura del encabezado de la solicitud
endpoint
EndpointObject
N
Información de la estructura del endpoint de la solicitud
payload
PayloadObject
N
Información de la estructura del payload de la solicitud
HeaderObject
Atributo
Tipo
Opcional
Descripción
name
string
N
Nombre de la solicitud. Parámetros opcionales:UpdateDeviceStates: Actualizar estados del dispositivo
message_id
string
N
ID de mensaje de la solicitud, UUID_V4
version
string
N
Número de versión del protocolo de la solicitud. Actualmente fijo en 1.
EndpointObject
Atributo
Tipo
Opcional
Descripción
serial_number
string
N
Número de serie único del dispositivo
third_serial_number
string
N
Número de serie único del dispositivo de terceros
etiquetas
object
N
Clave-valor en formato JSON, información personalizada del dispositivo. [Función de Gestión de Dispositivos] - [Descripción de Etiquetas]
PayloadObject: Según diferentes header.name, existe una estructura de solicitud específica para cada uno.
Ejemplo de Solicitud :
Formato de respuesta
:::tips **Código de estado HTTP: **200 OK Atributo de respuesta HTTP: :::
Atributo
Tipo
Opcional
Descripción
evento
EventObject
N
Información de la estructura del evento de respuesta
EventObject
Atributo
Tipo
Opcional
Descripción
header
HeaderObject
N
Información de la estructura del encabezado de la solicitud
payload
PayloadObject
N
Información de la estructura del payload de la solicitud
HeaderObject
Atributo
Tipo
Opcional
Descripción
name
string
N
Nombre del encabezado de respuesta. Parámetro opcional: UpdateDeviceStatesResponse: Respuesta de actualización de estados del dispositivo ErrorResponse: Respuesta de error
message_id
string
N
ID de mensaje del encabezado de la respuesta, UUID_V4. Pase aquí el header.message_id del mensaje de la solicitud
version
string
N
Número de versión del protocolo de la solicitud. Actualmente fijo en 1.
Respuesta exitosa--PayloadObject:
Dependiendo del tipo de solicitud, la estructura de la respuesta es diferente. Para más detalles, consulte el documento de instrucción de la solicitud específica.
Respuesta de fallo--PayloadObject:
Atributo
Tipo
Opcional
Descripción
type
string
N
Tipos de error:
ENDPOINT_UNREACHABLE: Dispositivo inalcanzable o fuera de línea
ENDPOINT_LOW_POWER: El dispositivo está en modo de baja energía y no se puede controlar
INVALID_DIRECTIVE: Directiva anormal desde la pasarela
NO_SUCH_ENDPOINT: El dispositivo no existe
NOT_SUPPORTED_IN_CURRENT_MODE: El modo actual no admite la operación
INTERNAL_ERROR: Error interno del servicio
REMOTE_KEY_CODE_NOT_LEARNED: Código de tecla del control remoto no aprendido |
:::consejos Condiciones: Los parámetros de la solicitud son legales. **Código de estado: **200 OK Parámetros de la respuesta: :::
UpdateDeviceStates
Parámetros de la solicitud: PayloadObject:
Atributo
Tipo
Opcional
Descripción
estado
object
N
Estado del dispositivo, consulte [Capacidades de dispositivo compatibles] para más detalles.
Ejemplo de Solicitud :
Parámetros de la respuesta: PayloadObject:Objeto vacío Ejemplo de Respuesta Exitosa
QueryDeviceStates
Parámetros de la solicitud: PayloadObject:
Atributo
Tipo
Opcional
Descripción
estado
object
N
Estado del dispositivo, consulte [Capacidades de dispositivo compatibles] para más detalles.
Ejemplo de Solicitud :
Parámetros de la respuesta: PayloadObject:
Atributo
Tipo
Opcional
Descripción
estado
object
N
Estado del dispositivo, consulte [Capacidades de dispositivo compatibles] para más detalles.
Ejemplo de respuesta:
ConfigureDeviceCapabilities
Parámetros de la solicitud: PayloadObject:
Atributo
Tipo
Opcional
Descripción
capabilities
CapabilityObject[]
N
Lista de capacidades. Los detalles pueden verse en la sección de capacidades de dispositivo compatibles. Tenga en cuenta, el campo permission no se puede cambiar, pase el mismo valor al sincronizar.
Ejemplo de Solicitud :
Parámetros de la respuesta: PayloadObject:Objeto vacío Ejemplo de Respuesta Exitosa
5. Eventos enviados por el servidor
Descripción de la interfaz MDN EventSource:https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events
5.1 Instrucción
La pasarela admite enviar mensajes al cliente usando SSE (Server-sent events). El cliente puede monitorear los mensajes SSE después de obtener las credenciales de acceso y puede analizar el contenido de los mensajes push según el protocolo de notificación de eventos de la interfaz de desarrollo al recibir los mensajes enviados por la pasarela. Cabe señalar que la pasarela actualmente usa el protocolo HTTP1.1, por lo que SSE en el lado del navegador tendrá un límite máximo de no más de 6 conexiones (Las instrucciones específicas se pueden encontrar en la descripción de la interfaz MDN EventSource.)
5.2 Formato Común
:::consejos
URL:/open-api/V2/sse/bridge
Método:
GET::: Parámetros de la solicitud:
access_token
string
N
Token de Acceso
Nota: Al solicitar una conexión SSE, la pasarela comprobará el access_token y devolverá un error de fallo de autenticación si es inválido. { "error": 401, "data": {}, "message": "invalid access_token"}
## Por ejemplo: Nombre del Módulo: device Versión: 1,v2,v3 Tipo de Mensaje: addDevice
Ejemplo:
5.3 Módulo de Dispositivo
a. Evento Agregar Dispositivo
:::tips Nombre del Módulo:device Versión:v2 Tipo de Mensaje:addDevice event.data parámetros: :::
payload
ResponseDeviceObjectObject - Interfaz igual que Obtener Lista de Dispositivos
N
información del dispositivo
Ejemplo:
b. Evento Actualizar Estado del Dispositivo
:::tips Nombre del Módulo:device Versión:v2 Tipo de Mensaje:updateDeviceState event.data parámetros: :::
endpoint
EndpointObject
N
Información del Dispositivo
payload
object。 Estructura igual que el estado del dispositivo
N
Datos de Estado del Dispositivo
EndpointObject:
serial_number
string
N
Número de serie único del dispositivo
third_serial_number
string
Y
El número de serie único del dispositivo de terceros. Para dispositivos conectados a través de interfaces abiertas, este campo es obligatorio.
Ejemplo:
c. Evento Actualizar Información del Dispositivo
:::tips Nombre del Módulo:device Versión:v2 Tipo de Mensaje:updateDeviceInfo event.data parámetros: :::
endpoint
EndpointObject
N
Información del Dispositivo
payload
DeviceChangeObject
N
Datos de Cambio del Dispositivo
EndpointObject:
serial_number
string
N
Número de serie único del dispositivo
third_serial_number
string
Y
El número de serie único del dispositivo de terceros. Para dispositivos conectados a través de interfaces abiertas, este campo es obligatorio.
DeviceChangeObject
name
string
N
Nombre del Dispositivo
capabilities
CapabilityObject []
Y
Lista de capacidades del dispositivo.
etiquetas
object
Y
etiquetasobject | Nullable | Pares clave-valor en formato JSON para información personalizada del dispositivo.
Puede utilizarse para almacenar canales del dispositivo.
Puede utilizarse para almacenar unidades de temperatura.
Para otros datos personalizados de terceros. |
Ejemplo:
d. Evento Eliminar Dispositivo
:::tips Nombre del Módulo:device Versión:v2 Tipo de Mensaje:deleteDevice event.data parámetros: :::
endpoint
EndpointObject
N
Información del Dispositivo
EndpointObject:
serial_number
string
N
Número de serie único del dispositivo
third_serial_number
string
Y
El número de serie único del dispositivo de terceros. Para dispositivos conectados a través de interfaces abiertas, este campo es obligatorio.
Ejemplo:
e. Evento Actualizar Estado en Línea del Dispositivo
:::tips Nombre del Módulo:device Versión:v2 Tipo de Mensaje:updateDeviceOnline event.data parámetros: :::
endpoint
EndpointObject
N
Información del Dispositivo
payload
DeviceChangeObject
N
Datos de Cambio del Dispositivo
EndpointObject:
serial_number
string
N
Número de serie único del dispositivo
third_serial_number
string
Y
El número de serie único del dispositivo de terceros. Para dispositivos conectados a través de interfaces abiertas, este campo es obligatorio.
DeviceChangeObject
en línea
boolean
N
Estado en Línea del Dispositivo
Ejemplo:
5.4 Módulo de Pasarela
a. Evento de Actualización del Estado de Seguridad
:::tips Nombre del Módulo:device Versión:v2 Tipo de Mensaje:updateDeviceOnline event.data parámetros: :::
Atributo
Tipo
Opcional
Descripción
payload
SecurityStateObject
N
Información del Dispositivo
SecurityStateObject
Atributo
Tipo
Opcional
Descripción
alarm_state
string
N
arming| Armadodisarming| Desarmado |
Ejemplo:
5.5 Módulo de Seguridad
a. Evento de Actualización del Estado de Armado
:::tips Nombre del Módulo:device Versión:v2 Tipo de Mensaje:updateDeviceOnline event.data parámetros: :::
Atributo
Tipo
Opcional
Descripción
payload
ArmStateObject
N
rm e información de desarme
ArmStateObject:
Atributo
Tipo
Opcional
Descripción
arm_state
string
N
arming| Armadodisarming| Desarmado | | detalle | DetailObject | N | Detalles de armado/desarme |
DetailObject:
Atributo
Tipo
Opcional
Descripción
sid
int
N
id de modo de seguridad
name
string
N
Nombre de seguridad
Ejemplo
6. TTS (Función del motor de texto a voz
6.1 Instrucción
Papel clave
Proveedor de Servicios TTS: El proveedor del servicio del motor TTS es responsable de registrar el motor TTS en la pasarela y proporcionar servicios TTS
Servidor de la pasarela:iHost
Cliente de la API abierta de la pasarela
6.1.1 Registro del servicio del motor TTS
【Proveedor de Servicio TTS】Llamar a la interfaz para registrar el motor TTS en la pasarela.
【Servidor de la pasarela】Tras el registro exitoso, la pasarela almacenará la información básica del motor TTS (incluida la dirección del servicio server_address, y la comunicación posterior entre la pasarela y el Proveedor de Servicio TTS se realizará a través de la dirección server_address), y asignará el ID del servicio del motor TTS dentro de la pasarela.

6.1.2 Obtener la lista de audios sintetizados
【Cliente de la API abierta de la pasarela】Llamar a la interfaz para obtener la lista de servicios de motor TTS registrados. Puede obtener la lista actual de motores TTS registrados (incluido el ID del motor TTS asignado por la pasarela).
【Cliente de la API abierta de la pasarela】Llamar a la interfaz para obtener la lista de audios de un motor TTS especificado. La pasarela emitirá una instrucción síncrona de lista de audio al Proveedor de Servicio TTS especificado y devolverá el resultado.

6.1.3 Síntesis de voz especificando un motor de voz
【Cliente de la API abierta de la pasarela】Llamar a la interfaz para obtener la lista de servicios de motor TTS registrados. Puede obtener la lista actual de motores TTS registrados (incluido el ID del motor TTS asignado por la pasarela).
【Cliente de la API abierta de la pasarela】Llamar a la interfaz para obtener la lista de audios de un motor TTS especificado. La pasarela emitirá una instrucción síncrona de lista de audio al Proveedor de Servicio TTS especificado y devolverá el resultado.

6.1.4 Sintetizar audio y reproducir discurso TTS.
【Cliente de la API abierta de la pasarela】Llamar a la interfaz para obtener la lista de servicios de motor TTS registrados. Puede obtener la lista actual de motores TTS registrados (incluido el ID del motor TTS asignado por la pasarela).
【Cliente de la API abierta de la pasarela】Llamar a la interfaz para obtener la lista de audios de un motor TTS especificado. La pasarela emitirá una instrucción síncrona de lista de audio al Proveedor de Servicio TTS especificado y devolverá el resultado. (incluida la dirección del archivo de audio TTS)
【Cliente de la API abierta de la pasarela】Registrar la dirección del archivo de audio TTS a partir del resultado devuelto en el paso anterior, llamar a la interfaz de reproducción de archivos de audio y reproducirlo a través de la pasarela.
6.2 Módulo del motor TTS
6.2.1 Capacidades abiertas de la pasarela
a. Obtener la lista de servicios de motor TTS registrados
:::consejos
URL:
/open-api/V2/rest/tts/enginesMétodo:
GETEncabezado:
Content-Type: application/json
Autorización: Bearer ::: Parámetros de solicitud: ninguno Respuesta de datos correcta:
Atributo
Tipo
Opcional
Descripción
motores
EngineObject []
N
Lista de motores TTS registrados
Estructura de EngineObject
Atributo
Tipo
Opcional
Descripción
id
string
N
ID del motor asignado por la pasarela
name
string
N
Nombre del servicio del motor TS
:::consejos Condiciones: Los parámetros de la solicitud son legales y la verificación de identidad del usuario ha pasado. **Código de estado: **200 OK Ejemplo de respuesta:: :::
b. Obtener la lista de audios de un motor TTS especificado
:::consejos
URL:
/open-api/V2/rest/tts/engine/{id}/audio-listMétodo:
GETEncabezado:
Content-Type: application/json
Autorización: Bearer ::: Parámetros de solicitud: ninguno Respuesta de datos correcta:
Atributo
Tipo
Opcional
Descripción
audio_list
AudioObject []
N
Lista de audios
Estructura de AudioObject
Atributo
Tipo
Opcional
Descripción
url
string
N
URL del archivo de audio, por ejemplo:
https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3
etiqueta
string
Y
Etiqueta del archivo de audio
:::consejos Condiciones: Los parámetros de la solicitud son legales y la verificación de identidad del usuario ha pasado. **Código de estado: **200 OK **Código de error: **
190000 El motor está funcionando de forma anormal
Ejemplo de respuesta:: :::
c .Realizar síntesis de voz usando el motor TTS especificado
:::consejos
URL:
/open-api/V2/rest/tts/engine/{id}/synthesizeMétodo:
POSTEncabezado:
Content-Type: application/json
Autorización: Bearer ::: Parámetros de solicitud:
Atributo
Tipo
Opcional
Descripción
text
string
N
Texto usado para sintetizar el audio
etiqueta
string
Y
Etiqueta del archivo de audio
language
string
Y
Campo transparente. Código de idioma opcional para la solicitud de síntesis de voz. La lista específica de códigos de idioma compatibles la proporciona el proveedor del servicio del motor de voz TTS. Tenga en cuenta que el servicio del motor TTS debe admitir un idioma predeterminado para la síntesis de voz, lo que significa que si no se pasa el idioma, se utilizará el idioma predeterminado del motor para la síntesis.
options
object
Y
Campo transparente. Se utiliza para pasar los parámetros de configuración requeridos para la síntesis al servicio del motor de voz TTS.
Respuesta de datos correcta:
Atributo
Tipo
Opcional
Descripción
audio
AudioObject
N
Lista de audios
Estructura de AudioObject
Atributo
Tipo
Opcional
Descripción
url
string
N
URL del archivo de audio, por ejemplo:
https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3
etiqueta
string
Y
Etiqueta del archivo de audio
:::consejos Condiciones: Los parámetros de la solicitud son legales y la verificación de identidad del usuario ha pasado. **Código de estado: **200 OK **Código de error: **
190000 El motor está funcionando de forma anormal
Ejemplo de respuesta:: :::
6.2.2 Comunicación entre la pasarela y el servicio TTS
a. Registro del servicio del motor TTS
Enviar solicitud a la pasarela por parte del Proveedor de Servicio TTS
:::consejos
URL:
/open-api/V2/rest/thirdparty/eventMétodo:
POSTEncabezado:
Content-Type: application/json
Autorización: Bearer ::: Parámetros de solicitud:
Atributo
Tipo
Opcional
Descripción
evento
EventObject
N
Estructura de información del objeto de evento de solicitud
EventObject
Atributo
Tipo
Opcional
Descripción
header
HeaderObject
N
Información de la estructura del encabezado de la solicitud
payload
PayloadObject
N
Información de la estructura del payload de la solicitud
HeaderObject
Atributo
Tipo
Opcional
Descripción
name
string
N
Nombre de la solicitud. Parámetro opcional.
RegisterTTSEngine | | message_id | string | N | ID del mensaje de la solicitud, UUID_V4 | | version | string | N | Número de versión del protocolo de la solicitud. Actualmente fijo en 1 |
PayloadObject
Atributo
Tipo
Opcional
Descripción
service_address
string
N
Dirección del servicio. Por ejemplo, http:///
name
string
N
Nombre del servicio
Ejemplo de solicitud:
**Parámetros de respuesta correctos: **
Atributo
Tipo
Opcional
Descripción
header
HeaderObject
N
Información de la estructura del encabezado de la solicitud
payload
PayloadObject
N
Información de la estructura del payload de la solicitud
HeaderObject
Atributo
Tipo
Opcional
Descripción
name
string
N
Nombre del encabezado de respuesta. Parámetro opcional:
Respuesta (Respuesta exitosa)
ErrorResponse (Respuesta de error) | | message_id | string | N | ID del mensaje del encabezado de respuesta, UUID_V4. Mensaje de solicitud entrante aquí: header.message_id | | version | string | N | Número de versión del protocolo de la solicitud. Actualmente fijo en 1 |
PayloadObject
Atributo
Tipo
Opcional
Descripción
engine_id
string
N
ID del motor asignado por la pasarela
:::consejos Condiciones: Los parámetros de la solicitud son legales y la verificación de identidad del usuario ha pasado. **Código de estado: **200 OK Ejemplo de respuesta:: ::: Ejemplo de respuesta correcta::
**Parámetros de respuesta anormales: **
Atributo
Tipo
Opcional
Descripción
type
string
N
Tipo de error
INVALID_PARAMETERS (Error de parámetros)
AUTH_FAILURE (Fallo de autenticación)
INTERNAL_ERROR (Error interno del servicio) | | description | string | N | Descripción del error |
Ejemplo de respuesta de error::
b. Comando para sincronizar la lista de audios
Enviar comando al Proveedor de Servicio TTS por la pasarela.
:::consejos
URL:
<dirección del servicio>Método:
POSTEncabezado:
Content-Type: application/json ::: Parámetros de la solicitud:
Atributo
Tipo
Opcional
Descripción
directiva
DirectiveObject
N
Información de la estructura del objeto de instrucción
DirectiveObject
Atributo
Tipo
Opcional
Descripción
header
HeaderObject
N
Información de la estructura del encabezado de la solicitud
payload
PayloadObject
N
Información de la estructura del payload de la solicitud
HeaderObject
Atributo
Tipo
Opcional
Descripción
name
string
N
Nombre de la solicitud. Parámetro opcional:
SyncTTSAudioList | | message_id | string | N | ID del mensaje de la solicitud, UUID_V4 | | version | string | N | Número de versión del protocolo de la solicitud. Actualmente fijo en 1 |
Ejemplo de solicitud:
**Parámetros de respuesta correctos: **
Atributo
Tipo
Opcional
Descripción
header
HeaderObject
N
Información de la estructura del encabezado de la solicitud
payload
PayloadObject
N
Información de la estructura del payload de la solicitud
HeaderObject
Atributo
Tipo
Opcional
Descripción
name
string
N
Nombre del encabezado de respuesta. Parámetro opcional:
Respuesta (Respuesta exitosa)
ErrorResponse (Respuesta de error) | | message_id | string | N | ID del mensaje del encabezado de respuesta, UUID_V4. Mensaje de solicitud entrante aquí: header.message_id | | version | string | N | Número de versión del protocolo de la solicitud. Actualmente fijo en 1 |
PayloadObject:
Atributo
Tipo
Opcional
Descripción
audio_list
AudioObject []
N
Lista de audio TTS
Estructura de AudioObject
Atributo
Tipo
Opcional
Descripción
url
string
N
URL del archivo de audio, por ejemplo:
https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3
etiqueta
string
Y
Etiqueta del archivo de audio
:::consejos Condiciones: Los parámetros de la solicitud son legales y la verificación de identidad del usuario ha pasado. **Código de estado: **200 OK Ejemplo de respuesta:: ::: Ejemplo de respuesta correcta::
**Parámetros de respuesta anormales: **
Atributo
Tipo
Opcional
Descripción
type
string
N
Tipo de error
INVALID_PARAMETERS (Error de parámetros)
AUTH_FAILURE (Fallo de autenticación)
INTERNAL_ERROR (Error interno del servicio) | | description | string | N | Descripción del error |
Ejemplo de respuesta de error::
c. Comando de síntesis de voz
Enviar comando al Proveedor de Servicio TTS por la pasarela.
:::consejos
URL:
<dirección del servicio>Método:
POSTEncabezado:
Content-Type: application/json ::: Parámetros de la solicitud:
Atributo
Tipo
Opcional
Descripción
directiva
DirectiveObject
N
Información de la estructura del objeto de instrucción
DirectiveObject
Atributo
Tipo
Opcional
Descripción
header
HeaderObject
N
Información de la estructura del encabezado de la solicitud
payload
PayloadObject
N
Información de la estructura del payload de la solicitud
HeaderObject
Atributo
Tipo
Opcional
Descripción
name
string
N
Nombre de la solicitud. Parámetro opcional:
SynthesizeSpeech | | message_id | string | N | ID del mensaje de la solicitud: UUID_V4 | | version | string | N | Número de versión del protocolo de la solicitud. Actualmente fijo en 1 |
PayloadObject
Atributo
Tipo
Opcional
Descripción
text
string
N
Texto usado para sintetizar el audio
etiqueta
string
Y
Etiqueta del archivo de audio
language
string
Y
Campo transparente. Código de idioma opcional para la solicitud de síntesis de voz. La lista específica de códigos de idioma compatibles la proporciona el proveedor del servicio del motor de voz TTS. Tenga en cuenta que el servicio del motor TTS debe admitir un idioma predeterminado para la síntesis de voz, lo que significa que si no se pasa el idioma, se utilizará el idioma predeterminado del motor para la síntesis.
options
object
Y
Campo transparente. Se utiliza para pasar los parámetros de configuración requeridos para la síntesis al servicio del motor de voz TTS.
Ejemplo de solicitud:
**Parámetros de respuesta correctos: **
Atributo
Tipo
Opcional
Descripción
header
HeaderObject
N
Información de la estructura del encabezado de la solicitud
payload
PayloadObject
N
Información de la estructura del payload de la solicitud
HeaderObject
Atributo
Tipo
Opcional
Descripción
name
string
N
Nombre del encabezado de respuesta. Parámetro opcional:
Respuesta (Respuesta exitosa)
ErrorResponse (Respuesta de error) | | message_id | string | N | ID del mensaje del encabezado de respuesta, UUID_V4. Mensaje de solicitud entrante aquí: header.message_id | | version | string | N | Número de versión del protocolo de la solicitud. Actualmente fijo en 1 |
PayloadObject
Atributo
Tipo
Opcional
Descripción
audio
AudioObject
N
Audio TTS
Estructura de AudioObject
Atributo
Tipo
Opcional
Descripción
url
string
N
URL del archivo de audio, por ejemplo:
https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3
etiqueta
string
Y
Etiqueta del archivo de audio
:::consejos Condiciones: Los parámetros de la solicitud son legales y la verificación de identidad del usuario ha pasado. **Código de estado: **200 OK Ejemplo de respuesta:: ::: Ejemplo de respuesta correcta::
**Parámetros de respuesta anormales: **
Atributo
Tipo
Opcional
Descripción
type
string
N
Tipo de error
INVALID_PARAMETERS (Error de parámetros)
AUTH_FAILURE (Fallo de autenticación)
INTERNAL_ERROR (Error interno del servicio) | | description | string | N | Descripción del error |
Ejemplo de respuesta de error::
7. Módulo multimedia
7.1 Reproducir archivo de audio
:::consejos
URL:
/open-api/V2/rest/media/audio-playerMétodo:
POSTEncabezado:
Content-Type: application/json
Autorización: Bearer ::: Parámetros de solicitud:
Atributo
Tipo
Opcional
Descripción
audio_url
string
N
Dirección URL del audio
Respuesta de datos correcta: :::consejos Condiciones: Los parámetros de la solicitud son legales y la verificación de identidad del usuario ha pasado. **Código de estado: **200 OK Ejemplo de respuesta:: :::
8. Tarjeta de interfaz de usuario personalizada
Las tarjetas de interfaz de usuario personalizadas le permiten mostrar cualquier contenido que desee dentro de la tarjeta. Este contenido puede ser una página web, una imagen o cualquier servicio con una interfaz de usuario. Solo necesita proporcionar la URL del contenido que desea mostrar. La tarjeta de UI adaptará automáticamente su ancho y alto, y el contenido se representará usando un iFrame.
8.1 Instrucción
Papel clave
Proveedor de servicios de UI: El proveedor responsable de crear tarjetas de UI personalizadas en la pasarela.
Servidor de la pasarela: El servidor de la pasarela (iHost).
Cliente de la API abierta de la pasarela: El cliente de la API abierta para la pasarela.
8.1.1 Creación de una tarjeta de UI personalizada
[Proveedor de servicios UI]: Llama a la API para crear una tarjeta de UI personalizada en la pasarela.
[Servidor de la pasarela]: Tras el registro exitoso, la pasarela almacena la información básica de la tarjeta de UI (incluida la configuración de tamaño y la URL del recurso de la tarjeta) y asigna un ID interno de tarjeta de UI dentro de la pasarela.

8.1.2 Recuperación de la lista de tarjetas de UI
[Proveedor de servicios UI]: Llama a la API para recuperar la lista de tarjetas de UI.
[Servidor de la pasarela]: Devuelve la lista de tarjetas de UI almacenadas en la pasarela, incluidas las tarjetas de UI personalizadas no creadas por el llamante.

8.1.3 Modificación de la configuración de una tarjeta de UI especificada
[Proveedor de servicios UI]: Llama a la API para modificar la configuración de una tarjeta de UI especificada, como la configuración de tamaño y la URL del recurso.
[Servidor de la pasarela]: Tras la modificación exitosa, la pasarela almacena la información actualizada de la tarjeta de UI, incluida la nueva configuración de tamaño y la URL del recurso.

8.1.4 Eliminación de una tarjeta de UI personalizada
[Proveedor de servicios UI]: Llama a la API para eliminar una tarjeta de UI personalizada especificada.
[Servidor de la pasarela]: La pasarela eliminará toda la información relacionada con la tarjeta de UI especificada.

8.2 Módulo de tarjeta de UI personalizada
8.2.1 Creación de una tarjeta de UI personalizada
El proveedor de servicios UI envía una solicitud a la pasarela para crear una tarjeta de UI personalizada.
:::consejos
URL:
/open-api/v2/rest/ui/cardsMétodo:
POSTEncabezado:
Content-Type: application/json
Autorización: Bearer ::: Parámetros de solicitud:
Atributo
Tipo
Opcional
Descripción
etiqueta
string
Y
Etiqueta de la tarjeta: Se utiliza para describir la tarjeta. Es el alias de la tarjeta.
cast_settings
CastSettingsObject
Y
Configuración de la tarjeta Cast: Ajustes de configuración para tarjetas cast.
web_settings
WebSettingsObject
N
Configuración de la tarjeta web: Ajustes de configuración para tarjetas web.
CastSettingsObject:
Atributo
Tipo
Opcional
Descripción
dimensions
DimensionObject []
N
Configuración de tamaño: Debe incluir al menos una configuración.
default
string
N
Especificación predeterminada: Se utiliza la especificación de tamaño predeterminada, con parámetros opcionales: 2x2
WebSettingsObject:
Atributo
Tipo
Opcional
Descripción
dimensions
DimensionObject []
N
Configuración de tamaño: Debe incluir al menos una configuración.
drawer_component
DrawerObject
Y
Ajustes de visualización del componente Drawer.
default
string
N
Especificación predeterminada:
1x1
2x1 |
DimensionObject:
Atributo
Tipo
Opcional
Descripción
src
string
N
URL del recurso: Por ejemplo: http://example.html
size
string
N
Especificaciones de tamaño:
Parámetros opcionales de CastSettingsObject:
2×2
Parámetros opcionales de WebSettingsObject:
1x1
2x1 |
DrawerObject:
Atributo
Tipo
Opcional
Descripción
src
string
N
URL del recurso: Por ejemplo: http://example.html
Respuesta de datos exitosa:
Atributo
Tipo
Opcional
Descripción
id
string
N
ID único de la tarjeta de UI
:::consejos Condiciones: Los parámetros de la solicitud son legales y la verificación de identidad del usuario ha pasado. **Código de estado: ** 200 OK ::: Ejemplo de solicitud:
Ejemplo de respuesta:
8.2.2 Recuperar la lista de tarjetas de UI
:::consejos
URL:
/open-api/v2/rest/ui/cardsMétodo:
GETEncabezado:
Content-Type: application/json
Autorización: Bearer ::: Parámetros de solicitud: Ninguno Parámetros de respuesta:
Atributo
Tipo
Opcional
Descripción
data
CardObject[]
N
Lista de tarjetas de UI
Objeto CardObjec:
Atributo
Tipo
Opcional
Descripción
id
string
N
ID de la tarjeta: Un identificador único para la tarjeta.
etiqueta
string
Y
Etiqueta de la tarjeta: Se utiliza para describir la tarjeta. Sirve como alias o nombre de la tarjeta.
cast_settings
CastSettingsObject
Y
Etiqueta de la tarjeta: Se utiliza para describir la tarjeta. Es el alias de la tarjeta.
web_settings
WebSettingsObject
N
Configuración de la tarjeta Cast: Ajustes de configuración para tarjetas cast.
app_name
string
Y
Configuración de la tarjeta web: Ajustes de configuración para tarjetas web.
CastSettingsObject:
Atributo
Tipo
Opcional
Descripción
dimensions
DimensionObject []
N
Configuración de tamaño: Debe incluir al menos una configuración.
default
string
N
Especificación predeterminada:
Parámetro opcional: 2x2
usado
string
N
Especificación actual:
Parámetro opcional: 2x2
WebSettingsObject:
Atributo
Tipo
Opcional
Descripción
dimensions
DimensionObject []
N
Configuración de tamaño: Debe incluir al menos una configuración.
drawer_component
DrawerObject
Y
Ajustes de visualización del componente Drawer.
default
string
N
Especificación predeterminada:
Parámetro opcional:
1x1
2x1 | | usado | string | N | Especificación actual: Parámetro opcional:
1x1
2x1 |
DimensionObject:
Atributo
Tipo
Opcional
Descripción
src
string
N
URL del recurso: Por ejemplo: http://example.html
size
string
N
Especificaciones de tamaño:
Parámetro opcional:
1x1
2x1
Nota: Actualmente, las tarjetas cast solo admiten la especificación 2x2. La especificación 2x2 no será efectiva. |
DrawerObject:
Atributo
Tipo
Opcional
Descripción
src
string
N
URL del recurso: Por ejemplo: http://example.html
Ejemplo de respuesta:
8.2.3 Modificar la configuración de una tarjeta de UI especificada
Los usuarios autorizados pueden modificar la configuración de una tarjeta de UI existente a través de esta interfaz. Los proveedores de servicios de tarjetas personalizadas solo pueden modificar las tarjetas de UI que hayan creado.
:::consejos
URL:
/open-api/v2/rest/ui/cards/{id}Método:
PUTEncabezado:
Content-Type: application/json
Autorización: Bearer ::: Parámetros de solicitud:
Atributo
Tipo
Opcional
Descripción
etiqueta
string
Y
Se utiliza para describir la tarjeta. Es el alias de la tarjeta.
cast_settings
CastSettingsObject
Y
Configuración de tarjeta Cast
web_settings
WebSettingsObject
Y
Configuración de tarjeta web
CastSettingsObject:
Atributo
Tipo
Opcional
Descripción
usado
string
Y, Cualquiera de los dos usado o src debe proporcionarse, pero se requiere al menos uno de estos parámetros.
Especificación actual:
Parámetro opcional:
2x2
| | src | string | Y, Cualquiera de los dos usado o src debe proporcionarse, pero se requiere al menos uno de estos parámetros. | URL del recurso: http://example.html |
WebSettingsObject:
Atributo
Tipo
Opcional
Descripción
usado
string
Y, Cualquiera de los dos usado o src debe proporcionarse, pero se requiere al menos uno de estos parámetros.
Especificación actual:
Parámetro opcional:
1x1
2x1 | | src | string | Y, Cualquiera de los dos
usadoosrcdebe proporcionarse, pero se requiere al menos uno de estos parámetros. | URL del recurso: http://example.html |
Respuesta de datos exitosa: :::tips Condiciones: Los parámetros de la solicitud son legales y la verificación de identidad del usuario ha pasado. La tarjeta de UI que se modifica debe haber sido creada por el proveedor de tarjetas de UI personalizadas que llama a la interfaz. **Código de estado: ** 200 OK Código de error:
406: No tiene permiso para acceder a este recurso ::: **Ejemplo de respuesta: **
**Ejemplo de solicitud: **
8.2.4 Eliminar tarjeta de UI personalizada
Los usuarios autorizados están permitidos a eliminar una tarjeta de UI existente usando esta interfaz. Los proveedores de tarjetas personalizadas solo pueden eliminar las tarjetas de UI que hayan creado.
:::consejos
URL:
/open-api/v2/rest/ui/cards/{id}Método:
DELETEEncabezado:
Content-Type: application/json
Autorización: Bearer ::: Parámetros de solicitud: Ninguno Respuesta de datos exitosa: :::consejos Condiciones: Los parámetros de la solicitud son legales y la verificación de identidad del usuario ha pasado. La tarjeta de UI que se modifica debe haber sido creada por el proveedor de tarjetas de UI personalizadas que llama a la interfaz. **Código de estado: **
200 OKCódigo de error:
406: No tiene permiso para acceder a este recurso. ::: **Ejemplo de respuesta: **
Última actualización