Guia do Desenvolvedor & API
1. Começando a usar
1.1 Preparação
Passo 1. Por favor, certifique-se de que o gateway está ligado e funcionando corretamente.
Passo 2. Certifique-se de que o gateway e o PC estão conectados à mesma LAN. Em seguida, insira a URL do CUBE no seu navegador.
Aviso: Se você tiver vários gateways, pode obter o endereço IP correspondente para acessar o gateway especificado de duas maneiras abaixo.
Faça login no seu roteador sem fio e verifique o endereço IP do gateway em DHCP.
O CUBE suporta descoberta local via mDNS.
1.2 Começar
Chame a interface [Access Token] e obtenha uma resposta de erro, solicitando clicar <Concluído>. Observe que após pressionar, o acesso da interface é válido por no máximo 5 minutos.
// Requisição
curl --location --request GET 'http://<endereço ip>/open-api/V2/rest/bridge/access_token' --header 'Content-Type: application/json'
// Resposta
{
"error": 401,
"data": {},
"message": "link button not pressed"
}Clique <Concluído> e chame a interface [Access Token] novamente. A resposta é bem-sucedida e o token é obtido.
Verifique o token. Chame a interface [Get Device List]. A resposta foi bem-sucedida e a lista de dispositivos foi obtida.
Método para obter token de acesso do CUBE: Após chamar a interface [Access Token], a caixa de pop-up global da página do console Web do CUBE solicita ao usuário confirmar a aquisição das credenciais da chamada da interface.
Observação: Se você abrir mais de uma página do console Web do CUBE, a caixa de confirmação aparecerá em várias páginas do console ao mesmo tempo, e a caixa pop-up das outras páginas do console será fechada após clicar na confirmação em uma das páginas do console.
2. Conceito principal
2.1 Endereço da interface de desenvolvimento
A interface Web API do gateway tem dois métodos de acesso (baseado em IP ou nome de domínio), geralmente o caminho raiz é /open-api/V2/rest/< módulo de função específico >
// Acesso por IP http:///open-api/V2/rest/bridge
// Acesso por nome de domínio http:///open-api/V2/rest/bridge
2.2 Categoria de exibição do dispositivo & Capacidades
**Categoria de exibição do dispositivo (DisplayCategory). **A categoria de exibição do dispositivo é usada para identificar categorias específicas (do dispositivo), como switch, plug, light, etc. Esta informação determinará o efeito de exibição da IU do dispositivo no gateway.
**Capacidade do dispositivo. **A capacidade do dispositivo é usada para descrever as subfunções específicas do dispositivo, como controle de energia, controle de brilho, controle de temperatura de cor, etc. Um único dispositivo pode suportar 1 ou mais capacidades.
capability: Descreve o nome da capacidade, que deve ser globalmente único e do tipo string. Múltiplas palavras em inglês devem ser separadas por hífens ("-"). Por exemplo:
"thermostat-target-setpoint".name: Descreve a categoria sob a capacidade, também do tipo string. Múltiplas palavras em inglês devem ser separadas por hífens ("-"). Por exemplo:
"auto-mode","manual-mode".permission: Descreve as permissões associadas à capacidade. O tipo é string, formatado em código binário 8421. Exemplos incluem:
Dispositivo controlável:
"1000"Dispositivo configurável:
"0010"Dispositivo controlável e configurável:
"1010"Dispositivo controlável e que reporta:
"1100"
O significado de cada bit, da direita para a esquerda, é o seguinte: ⅰ. Bit 0: Permite consultar o dispositivo ⅱ. Bit 1: Permite configurar o dispositivo ⅲ. Bit 2: Permite que o dispositivo reporte dados ⅳ. Bit 3: Permite controlar o dispositivo
settings: Descreve os itens de configuração para a capacidade, que são do tipo objeto e incluem uma descrição de cada item de configuração. ⅰ. key: Descreve o nome do item de configuração, que é do tipo string. Múltiplas palavras em inglês devem ser expressas em camelCase. Por exemplo: "temperatureUnit". ⅱ. value: Descreve o conteúdo do item de configuração. As especificações detalhadas estão na tabela abaixo.
permission
string
N
Descreve as permissões para o item de configuração.
Valores opcionais:
Permite modificação deste item de configuração:
"10"Permite visualização deste item de configuração:
"01"Permite tanto modificação quanto visualização deste item de configuração:
"11"
Explicação dos bits:
Bit 0: Permite visualização deste item de configuração
Bit 1: Permite modificação deste item de configuração | | tipo | string | N | Descreve o tipo de dado do valor do item de configuração. Valores opcionais:
"enum""numeric""object""boolean""string"
Diretrizes específicas por tipo:
Quando
**type = enum**:O
campo value(descrevendo o valor do item de configuração) é obrigatório sepermissionpermite modificação ("10"ou"11").O
default(descrevendo o valor padrão do item de configuração) evalues(descrevendo os valores selecionáveis para o item de configuração) os campos são opcionais.
Quando
**type = numeric**:O
campo valueo campo é obrigatório sepermissionpermite modificação ("10"ou"11").Os seguintes campos são opcionais:
min(descrevendo o valor mínimo do item de configuração)max(descrevendo o valor máximo do item de configuração)step(descrevendo o valor de passo para o item de configuração)precision(descrevendo a precisão)unit(descrevendo a unidade do item de configuração)default(descrevendo o valor padrão)
Quando
**type = object**:O
campo valueo campo é obrigatório sepermissionpermite modificação ("10"ou"11").O
defaulto campo é opcional.
Quando
**type = boolean**:O
campo valueo campo é obrigatório sepermissionpermite modificação ("10"ou"11").O
defaulto campo é opcional.
Quando
**type = string**:O
campo valueo campo é obrigatório sepermissionpermite modificação ("10"ou"11").O
defaulto campo é opcional. |
3. Web API
Tipo de dado
string
Tipo de dado string. Codificado em UTF8.
number
Tipo de dado numérico. formato binário IEEE 754 de dupla precisão de 64 bits
int
Tipo de dado integral.
object
Tipo de dado objeto. Objeto compatível com JSON
string[]
Array de strings
int[]
Array de inteiros
object[]
Array de objetos
bool
Booleano
date
String de tempo. String no formato ISO (Formato Estendido ISO 8601): YYYY-MM-DDTHH:mm:ss.sssZ. O fuso horário é sempre UTC (Tempo Universal Coordenado), identificado por um sufixo "Z".
Resultados de resposta genéricos
error
int
N
Código de erro:
0: Sucesso
400: Erro de parâmetro
401: Falha de autenticação
500: Exceção do servidor
data
object
N
Corpo de dados da resposta
message
string
N
Descrição da resposta:
Quando error for igual a 0, o conteúdo é success
Quando error não for igual a 0, é uma string não vazia, e o conteúdo é uma descrição do erro.
Exemplo de resposta:
Lista de recursos
Som suportado
- alert1 (Som de alarme 1)
alert2 (Som de alarme 2)
alert3 (Som de alarme 3)
alert4 (Som de alarme 4)
alert5 (Som de alarme 5)
doorbell1 (Som de campainha 1)
doorbell2 (Som de campainha 2)
doorbell3 (Som de campainha 3)
doorbell4 (Som de campainha 4)
doorbell5 (Som de campainha 5)
alarm1 (Som de alarme 1)
alarm2 (Som de alarme 2)
alarm3 (Som de alarme 3)
alarm4 (Som de alarme 4)
alarm5 (Som de alarme 5) | | Suporte a deep | - bootComplete (Inicialização do sistema concluída)
networkConnected (Rede conectada)
networkDisconnected (Rede desconectada)
systemShutdown (Desligamento do sistema) -deviceDiscovered (Descobrir dispositivo)
system Armed (Sistema armado habilitado)
system Disarmed (Sistema armado desabilitado)
factoryReset (Redefinir dispositivo) |
3.1 A função do Gateway
a. Access Token
Permitir que os usuários obtenham o token de acesso.
Aviso: O token será limpo após a redefinição do dispositivo.
Aviso: Após obter o token, você precisa pressionar o botão novamente para obter com sucesso um novo token.
:::dicas
URL:
/open-api/V2/rest/bridge/access_tokenMétodo:
GETCabeçalho:
Content-Type: application/json ::: Parâmetros da requisição:
Atributo
Tipo
Opcional
Descrição
app_name
string
Y
Descrição do nome do aplicativo.
Resposta de dados bem-sucedida:
Atributo
Tipo
Opcional
Descrição
token
string
N
O token de acesso da interface. É válido por um longo período, por favor salve-o
app_name
string
Y
Descrição do nome do aplicativo.
:::dicas Condição: Usuário dispara a < tecla de comando > e acessa esta interface dentro do tempo válido. **Código de status: **200 OK ::: Exemplo de resposta:
Resposta de dados de falha:Objeto vazio :::dicas Condições:O usuário não acionou a < tecla de comando >, ou o tempo válido expirou. **Código de status: ** 200 OK ::: Exemplo de resposta:
b. Obter o estado do Gateway
Permitir que usuários autorizados obtenham o status do gateway através desta interface :::dicas
URL:
/open-api/V2/rest/bridge/runtimeMétodo:
GETCabeçalho:
Content-Type: application/json
Autorization: Bearer ::: Parâmetros da requisição: nenhum Resposta de dados bem-sucedida:
Atributo
Tipo
Opcional
Descrição
ram_used
int
N
Porcentagem de uso de RAM. [0-100]
cpu_used
int
N
Porcentagem de uso da CPU. [0-100]
power_up_time
date
N
A última vez de ligar
cpu_temp
int
N
Temperatura da CPU:
Unidade: Celsius
cpu_temp_unit
string
N
Unidade de temperatura da CPU:
Opcional
values:'c', 'f'
sd_card_used
int
Y
Uso do cartão SD (porcentagem):
Intervalo:[0-100] com uma casa decimal de precisão
*Observação: Se o cartão SD não estiver inserido ou não estiver formatado, o valor estará vazio.
:::dicas Condições: Os parâmetros da requisição são legais e a verificação de identidade do usuário foi aprovada. **Código de status: **200 OK ::: Exemplo de resposta:
c. Configurar o Gateway
Permitir que usuários autorizados configurem o gateway através desta interface :::dicas
URL:
/open-api/V2/rest/bridge/configMétodo:
PUTCabeçalho:
Content-Type: application/json
Autorization: Bearer ::: Parâmetros da requisição:
Atributo
Tipo
Opcional
Descrição
volume
int
Y
Volume do sistema. [0-100]
Resposta de dados bem-sucedida: Objeto vazio {} :::dicas Condições: Os parâmetros da requisição são legais e a verificação de identidade do usuário foi aprovada. **Código de status: **200 OK ::: Exemplo de resposta:
d. Obter informações do Gateway
Permitir que usuários autorizados obtenham as informações do gateway através desta interface :::dicas
URL:
/open-api/V2/rest/bridgeMétodo:
GETCabeçalho:
Content-Type: application/json ::: Parâmetros da requisição:
Atributo
Tipo
Opcional
Descrição
ip
string
N
endereço ip
mac
string
N
endereço mac
domain
string
Y
Domínio de serviço do Gateway
fw_version
string
N
Versão do firmware
name
string
N
Nome do dispositivo
Resposta de dados bem-sucedida: Objeto vazio {} :::dicas Condições: Nenhum **Código de status: **200 OK ::: Exemplo de resposta:
e. Silenciar o Gateway
Permite que usuários autorizados silenciem o gateway através desta interface. :::dicas
URL:
/open-api/v2/rest/bridge/muteMétodo:
PUTCabeçalho:
Content-Type: application/json
Authorization: Bearer ::: Parâmetros da requisição: nenhum Resposta de dados bem-sucedida: Objeto vazio {} :::dicas Condições: Os parâmetros da requisição são legais e a verificação de identidade do usuário foi aprovada. **Código de status: **200 OK ::: Exemplo de resposta:
f. Desmutar o Gateway
Permite que usuários autorizados desmutem o gateway através desta interface. :::dicas
URL:
/open-api/v2/rest/bridge/unmuteMétodo:
PUTCabeçalho:
Content-Type: application/json
Authorization: Bearer ::: Parâmetros da requisição: nenhum Resposta de dados bem-sucedida: Objeto vazio {} :::dicas Condições: Os parâmetros da requisição são legais e a verificação de identidade do usuário foi aprovada. **Código de status: **200 OK ::: Exemplo de resposta:
g. Cancelar o alarme do Gateway
Permite que usuários autorizados desativem o estado de som de alarme no gateway através desta interface. :::dicas
URL:
/open-api/v2/rest/bridge/cancel_alarmMétodo:
PUTCabeçalho:
Content-Type: application/json
Authorization: Bearer ::: Parâmetros da requisição: nenhum Resposta de dados bem-sucedida: Objeto vazio {} :::dicas Condições: Os parâmetros da requisição são legais e a verificação de identidade do usuário foi aprovada. **Código de status: **200 OK ::: Exemplo de resposta:
3.2 Função de hardware
a. Reiniciar o Gateway
Permitir que o usuário autorizado reinicie o gateway através desta interface :::dicas
URL:
/open-api/V2/rest/hardware/rebootMétodo:
POSTCabeçalho:
Content-Type: application/json
Autorization: Bearer ::: Parâmetros da requisição: nenhum Resposta de dados bem-sucedida: Objeto vazio {} :::dicas Condições: Os parâmetros da requisição são legais e a verificação de identidade do usuário foi aprovada. **Código de status: **200 OK :::
b. Controle do alto-falante
Permitir que usuários autorizados controlem o alto-falante através desta interface :::dicas
URL:
/open-api/V2/rest/hardware/speakerMétodo:
POSTCabeçalho:
Content-Type: application/json
Authorization: Bearer ::: Parâmetros da requisição:
Atributo
Tipo
Opcional
Descrição
type
string
N
Parâmetros opcionais: 1.play_sound (tocar o som) 2.play_beep (tocar o bipe)
sound
SoundObject
Y (N se type for play_sound.)
O som.
beep
BeepObject
Y (N se type for play_beep.)
O bipe
SoundObject
Atributo
Tipo
Opcional
Descrição
name
string
N
O nome do som. Os valores suportados podem ser verificados em [Lista de recursos - Som suportado]
volume
int
N
O volume do som. [0-100]
countdown
int
N
A duração para o alto-falante tocar o som, e ele parará automaticamente quando o tempo expirar. Unidade: segundo. [0,1799]
BeepObject
Atributo
Tipo
Opcional
Descrição
name
string
N
O nome do deep. Os valores suportados podem ser verificados em [Lista de recursos - Suporte a deep]
volume
int
N
O volume do deep. [0-100]
Resposta de dados bem-sucedida: Objeto vazio {} :::dicas Condições: Os parâmetros da requisição são legais e a verificação de identidade do usuário foi aprovada. **Código de status: ** 200 OK ::: Exemplo de resposta:
3.3 Função de gerenciamento de dispositivos
a. Tipo de dispositivo suportado
Tipo de dispositivo
Valor
Versão do iHost
Plug
plug
≥ 2.1.0
Switch
switch
≥ 2.1.0
Light
light
≥ 2.1.0
Cortina
curtain
≥ 2.1.0
Sensor de porta/janela
contactSensor
≥ 2.1.0
Sensor de movimento
motionSensor
≥ 2.1.0
Sensor de temperatura
temperatureSensor
≥ 2.1.0
Sensor de umidade
humiditySensor
≥ 2.1.0
Sensor de temperatura e umidade
temperatureAndHumiditySensor
≥ 2.1.0
Detector de vazamento de água
waterLeakDetector
≥ 2.1.0
Detector de fumaça
smokeDetector
≥ 2.1.0
Botão sem fio
button
≥ 2.1.0
Câmera
camera
≥ 2.1.0
Sensor geral
sensor
≥ 2.1.0
Sensor geral
sensor
≥ 2.1.0
Luminária de ventilador
fanLight
≥ 2.1.0
Ar Condicionado
airConditioner
≥ 2.1.0
Ventilador
fan
≥ 2.1.0
Termostato
thermostat
≥ 2.1.0
b. Capacidades de Dispositivo Suportadas
Interruptor de Energia (power):
Exemplo de Declaração de Capacidade:
Atributo de Estado:
Protocolo (Consulta de Status e Instruções de Controle):
Ligar:
Desligar:
Interruptor de Canal (toggle):
Exemplo de Declaração de Capacidade:
Exemplo de Componente Único:
Exemplo de Múltiplos Componentes:
Atributo de Estado:
Protocolo (Consulta de Status e Instruções de Controle):
Formato de Alternância:
Inching de Canal (toggle-inching):
Exemplo de Declaração de Capacidade:
Atributo de Estado
Nenhum
Protocolo (Consulta de Status e Instruções de Controle)
Nenhum
Ajuste de Brilho (brightness):
Exemplo de Declaração de Capacidade:
Atributo de Estado:
Protocolo (Consulta de Status e Instruções de Controle):
Definir Brilho para 80%. (0 é o mais escuro e 100 é o mais claro.)
Ajuste de Temperatura de Cor (color-temperature):
Exemplo de Declaração de Capacidade:
Atributo de Estado:
Protocolo (Consulta de Status e Instruções de Controle):
Ajustar Temperatura de Cor para 50%:
Ajuste de Cor (color-rgb):
Exemplo de Declaração de Capacidade:
Atributo de Estado:
Protocolo (Consulta de Status e Instruções de Controle):
Definir Cor para Roxo:
Ajuste por Porcentagem (percentage):
Exemplo de Declaração de Capacidade:
Atributo de Estado:
Protocolo (Consulta de Status e Instruções de Controle):
Ajustar para 40%:
Controle de Motor (motor-control):
Exemplo de Declaração de Capacidade:
Atributo de Estado:
Protocolo (Consulta de Status e Instruções de Controle):
Abrir Motor:
Reversão de Motor (motor-reverse):
Exemplo de Declaração de Capacidade:
Atributo de Estado:
Protocolo (Consulta de Status e Instruções de Controle):
Definir Motor para Direção para Frente:
Calibração de Motor (motor-clb)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Relatório de Status):
Relatar que o Status do Motor Está Sendo Calibrado:
Estado ao Ligar (startup)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Definir Estado de Energia para Sempre Ligado:
Ativação de Despertar (identify)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Relatório de Status e Instruções de Controle):
Definir Tempo de Ativação de Despertar:
Relatar Status de Ativação:
Comutador de Estatísticas de Consumo de Energia em Tempo Real (power-consumption)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Iniciar/Parar Estatísticas em Tempo Real:
Consultar Consumo de Energia por Intervalo de Tempo:
Responder com Resultado das Estatísticas dentro do Intervalo de Tempo:
Protocolo (Relatório de Status e Instruções de Controle):
Iniciar Estatísticas em Tempo Real:
Parar Estatísticas em Tempo Real:
Obter Consumo de Energia Histórico:
Obter Consumo de Energia em Tempo Real:
Detecção de Modo de Temperatura e Umidade (thermostat-mode-detect)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Formato:
Exemplo:
Modo do Termostato (thermostat-mode)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Status de Recuperação Adaptativa do Termostato (thermostat/adaptive-recovery-status)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Configuração de Temperatura Alvo do Modo do Termostato (thermostat-target-setpoint)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Detecção de Sensor (detect)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Detecção de Temperatura (temperature)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Detecção de Umidade (humidity)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Detecção de Bateria (battery)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Detecção de Botão Único (press)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Detecção de Multi-Botão (multi-press)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Detecção de Intensidade de Sinal (rssi)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Detecção de Violação (tamper-alert)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Detecção de Nível de Iluminação (illumination-level)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Detecção de Voltagem (voltage)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Detecção de Corrente Elétrica (electric-current)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Detecção de Potência Elétrica (electric-power)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Detecção de Falhas (fault)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Interruptor de Limite (threshold-breaker)
Exemplo de Declaração de Capacidade:
Atributos (Estado)
Nenhum
Protocolo (Consulta de Status e Instruções de Controle)
Nenhum
Função Inch (inching)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Nenhum
Protocolo (Consulta de Status e Instruções de Controle):
Nenhum
Transmissão de Câmera (camera-stream)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Nenhum
Protocolo (Consulta de Status e Instruções de Controle):
Nenhum
Controle de Modo (mode)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Detecção de Dióxido de Carbono (co2)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Detecção de Iluminação (illumination)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Detecção de Fumaça (smoke)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Detecção de Abertura/Fechamento do Ímã da Porta (contact)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Detecção de Movimento (motion)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Detecção de Vazamento de Água (water-leak)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Interruptor de Detecção de Janela (window-detection)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Bloqueio Infantil (child-lock)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Interruptor Anti-Sopro Direto (anti-direct-blow)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Oscilação Horizontal (horizontal-swing)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Oscilação Vertical (vertical-swing)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Modo ECO (eco)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Alternar Inicialização (toggle-startup)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Detectar Manutenção (detect-hold)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Alternar Identificar/Ativar (toggle-identify)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Detecção de Tensão Alternável (toggle-voltage)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Detecção de Corrente Elétrica por Subcomponente (toggle-electric-current)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Detecção de Potência por Subcomponente (toggle-electric-power)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Estatísticas de Consumo de Energia por Subcomponente (toggle-power-consumption)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Iniciar/Parar Estatísticas em Tempo Real:
Consultar Consumo de Energia por Intervalo de Tempo:
Resposta para Consumo de Energia dentro do Intervalo de Tempo:
Protocolo (Consulta de Status e Instruções de Controle):
Iniciar Estatísticas em Tempo Real:
Parar Estatísticas em Tempo Real:
Obter Consumo de Energia Histórico:
Obter Consumo de Energia em Tempo Real:
Indicador de Qualidade de Link (lqi)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Configuração Funcional (configuration)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Sistema (system)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Umidade (moisture)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Pressão Barométrica (barometric-pressure)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Velocidade do Vento (wind-speed)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Direção do Vento (wind-direction)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Precipitação (rainfall)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Índice Ultravioleta (ultraviolet-index)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Condutividade Elétrica (electrical-conductivity)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Potência de Transmissão (transmit-power)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Detecção de PM2.5 (pm25)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Índice de VOC (voc-index)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Detecção de Gás Natural (gas)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Status de Trabalho de Irrigação (irrigation/work-status)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Relato de Status de Trabalho:
Consulta de Status de Trabalho:
Resultado da Consulta de Status de Trabalho:
Modo de Trabalho de Irrigação (irrigation/work-mode)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Protocolo (Consulta de Status e Instruções de Controle):
Controlador de Irrigação Automático (irrigation/auto-controller)
Exemplo de Declaração de Capacidade:
Atributos (Estado):
Agendamento Único ou Repetido:
Volume Único ou Repetido:
Protocolo (Consulta de Status e Instruções de Controle):
Agendamento Único ou Repetido:
Volume Único ou Repetido:
Modos Predefinidos Suportados
fanLevel (nível do ventilador)
"low"
"medium"
"high"
thermostatMode (Modo do Termostato)
"auto"
"manual"
airConditionerMode >= 1.11.0 (Modo do Ar-Condicionado)
"cool"
"heat"
"auto"
"fan"
"dry"
fanMode >= 1.11.0 (Modo do 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. Descrição das Tags
A chave especial toggle é usada para definir o nome do subcomponente toggle.
A chave especial temperature_unit é usada para definir a unidade de temperatura.
d. Código de Erro Especial e Descrição
Código de Erro
Descrição
Versão do iHost
110000
O subdispositivo/grupo correspondente ao id não existe
≥2.1.0
110001
O gateway está no estado de descoberta de dispositivos zigbee
≥2.1.0
110002
Dispositivos em um grupo não têm uma capacidade comum
≥2.1.0
110003
Número incorreto de dispositivos
≥2.1.0
110004
Número incorreto de grupos
≥2.1.0
110005
Dispositivo Offline
≥2.1.0
110006
Falha ao atualizar o status do dispositivo
≥2.1.0
110007
Falha ao atualizar o status do grupo
≥2.1.0
110008
O número máximo de grupos foi atingido. Crie até 50 grupos
≥2.1.0
110009
O endereço IP do dispositivo da câmera está incorreto
≥2.1.0
110010
Erro de Autorização de Acesso ao Dispositivo de Câmera
≥2.1.0
110011
Endereço de stream do dispositivo de câmera incorreto
≥2.1.0
110012
Codificação de vídeo do dispositivo de câmera não é suportada
≥2.1.0
110013
Dispositivo já existe
≥2.1.0
110014
A câmera não suporta operação offline
≥2.1.0
110015
A senha da conta é inconsistente com a senha da conta no endereço de stream RTSP
≥2.1.0
110016
O gateway está no estado de descoberta de câmeras onvif
≥2.1.0
110017
Excedido o número máximo de câmeras adicionadas
≥2.1.0
110018
O caminho da câmera ESP está errado
≥2.1.0
110019
Falha ao acessar o endereço de serviço do dispositivo de terceiros
≥2.1.0
e. Buscar Subdispositivo
Permitir que usuários autorizados habilitem ou desabilitem a busca de subdispositivos pelo gateway através desta interface
💡Observação: Atualmente suporta apenas busca por subdispositivos Zigbee.
💡Observação: Subdispositivos Zigbee serão adicionados automaticamente após a busca. Não é necessário usar a interface "Adicionar Subdispositivos Manualmente" :::tips
URL:/open-api/V2/rest/devices/discovery
Método: PUT
Cabeçalho:
Content-Type: application/json
Autorization: Bearer ::: Parâmetros da requisição:
Atributo
Tipo
Opcional
Descrição
habilitar
boolean
N
true (Iniciar pareamento); false (Pausar pareamento)
type
string
N
Tipo de Busca: Zigbee
Resposta de dados bem-sucedida: Objeto vazio {} :::dicas Condições: Os parâmetros da requisição são legais e a verificação de identidade do usuário foi aprovada. **Código de status: ** 200 OK ::: Exemplo de resposta:
f. Adicionar Subdispositivo Manualmente
Permitir que usuários autorizados adicionem um único subdispositivo através desta interface.
Observação: Atualmente apenas Câmera RTSP e Câmera ESP32 são suportadas :::tips
URL:/open-api/V2/rest/devices
Método:POST
Cabeçalho:
Content-Type: application/json
Autorization: Bearer ::: Parâmetros da requisição:
Atributo
Tipo
Opcional
Descrição
name
string
N
Nome do subdispositivo
display_category
string
N
Tipo de Dispositivo. Suporta apenas câmera.
capabilities
CapabilityObject[]
N
Lista de capacidades. Quando display_category = camera, as capacidades incluem apenas capacidades de camera-stream.
protocal
string
N
Protocolo do dispositivo. RTSP; ESP32-CAM
manufacturer
string
N
Fabricante.
model
string
N
Modelo do dispositivo
firmware_version
string
N
Versão do firmware do dispositivo
CapabilityObject
Atributo
Tipo
Opcional
Descrição
capability
string
N
Nome da capacidade. Suporta apenas "camera-stream"
permission
string
N
Permissão do dispositivo. Suporta apenas leitura.
configuration
CameraStreamConfigurationObject
Y
Configuração de stream da câmera.
SettingsObject
Atributo
Tipo
Opcional
Descrição
streamSetting
StreamSettingObject
N
Configuração do serviço de stream
StreamSettingObject
Atributo
Tipo
Opcional
Descrição
type
string
N
Configuração do serviço de stream
permission
string
N
Permissão da capacidade. Suporta apenas "11" (modificável).
campo value
StreamSettingValueObject
N
Valores de configuração específicos
StreamSettingValueObject
Atributo
Tipo
Opcional
Descrição
stream_url
string
N
Formato da URL de Stream
Formato:<schema>://<hostname>:<port>/<username>:<password>@<service_path>
Opções de Schema:
rtsp (Protocolo de Streaming em Tempo Real)
http (Protocolo de Transferência de Hipertexto) — Para dispositivos ESP32-CAM
*Observação: Algumas câmeras podem não exigir nome de usuário ou senha. Nesses casos, você pode omitir o <username> e <password> campos da URL.
Resposta de dados bem-sucedida:
Atributo
Tipo
Opcional
Descrição
serial_number
string
N
Número de série único do dispositivo
:::dicas Condições: Os parâmetros da requisição são legais e a verificação de identidade do usuário foi aprovada. **Código de status: **200 OK ::: Exemplo de resposta:
Resposta de falha na adição: Objeto vazio :::tips Condição:
Erro de acesso ao endereço de stream da câmera (erro de formato, falha de autorização, exceção de rede, etc.)
Dispositivo já existe
Se um único dispositivo falhar ao adicionar, retorna que todos os dispositivos falharam ao adicionar.
Código de Status: 200 OK Código de erro: ● 110009 Erro no endereço IP da câmera ● 110010 Erro de autorização de acesso à câmera ● 110011 Erro no endereço de stream da câmera ● 110012 A codificação de vídeo da câmera não é suportada ● 110013 Dispositivo já existe ::: Exemplo de resposta:
g. Obter Lista de Subdispositivos
Permitir que usuários autorizados obtenham a lista de subdispositivos do gateway por esta interface. :::tips
URL:/open-api/V2/rest/devices
Método: GET
Cabeçalho:
Content-Type: application/json
Autorization: Bearer ::: Parâmetros da requisição: nenhum Resposta de dados bem-sucedida:
Atributo
Tipo
Opcional
Descrição
device_list
ResponseDeviceObject[]
N
Lista de dispositivos
ResponseDeviceObject
Atributo
Tipo
Opcional
Descrição
serial_number
string
N
Número de série único do dispositivo
third_serial_number
string
"N" quando um dispositivo de terceiros está conectado, caso contrário "Y"
Número de série único do dispositivo de terceiros
service_address
string
"N" quando um dispositivo de terceiros está conectado, caso contrário "Y"
Endereço de serviço de terceiros
name
string
N
Nome do dispositivo; se não for renomeado, será exibido pelo front-end conforme as regras de exibição padrão.
manufacturer
string
N
Fabricante
model
string
N
Modelo do dispositivo
firmware_version
string
N
Versão do firmware. Pode ser uma string vazia.
hostname
string
Y
Nome do host do dispositivo
mac_address
string
Y
Endereço mac do dispositivo
app_name
string
Y
O nome do aplicativo ao qual pertence. Se o app_name for preenchido ao obter o certificado de interface aberta, então todos os dispositivos subsequentes conectados através do certificado serão escritos neste campo.
display_category
string
N
Categoria do dispositivo
capabilities
CapabilityObject[]
N
Capacidades do dispositivo
protocol
string
"N" quando um dispositivo de terceiros está conectado, caso contrário "Y"
Protocolo do dispositivo: zigbee, onvif, rtsp, esp32-cam
state
object
Y
Objeto de estado do dispositivo. Para exemplos de estado de diferentes capacidades, consulte 【Suporte a Capacidades do Dispositivo】
tags
object
Y
Formato JSON chave-valor, informações personalizadas do dispositivo. A função é a seguinte:- Usado para armazenar canais do dispositivo- Usado para armazenar unidades de temperatura- Informações personalizadas para outros dispositivos de terceiros
online
boolean
N
Status online: True para onlineFalse é offline
subnet
boolean
Y
Se está na mesma sub-rede que o gateway
CapabilityObject 💡Observação: Verifique os Exemplos de Capacidades de Dispositivo Suportadas em [Supported Device Capabilities].
Atributo
Tipo
Opcional
Descrição
capability
string
N
Nome da capacidade. Para detalhes, verifique [Supported Device Capabilities]
permission
string
N
Permissão da capacidade. Valores possíveis: "read" (somente leitura), "write" (gravável), "readWrite" (leitura e gravação).
configuration
object
Y
Informações de configuração da capacidade. Atualmente usa-se camera-stream, verifique [Supported Device Capabilities]
name
string
Y
O campo name em toggle. O número do subcanal usado para identificar dispositivos multicanais. Por exemplo, se name for 1, significa canal 1.
:::dicas Condições: Os parâmetros da requisição são legais e a verificação de identidade do usuário foi aprovada. **Código de status: **200 OK ::: Exemplo de resposta:
h. Atualizar Informações ou Estado Específico do Dispositivo
Permite que usuários autorizados modifiquem as informações básicas do subdispositivo e emitam comandos de controle por meio desta interface. :::tips
URL:/open-api/V2/rest/devices/{serial_number}
Método:PUT
Cabeçalho:
Content-Type: application/json
Autorization: Bearer ::: Parâmetros da requisição:
Atributo
Tipo
Opcional
Descrição
name
string
Y
Nome do dispositivo
tags
object
Y
Formato JSON chave-valor, informações personalizadas do dispositivo.
state
object
Y
Objeto de estado do dispositivo. Para exemplos de estado de diferentes capacidades, consulte [Support Device Capabilities]
configuration
object
Y
Informações de configuração da capacidade, atualmente apenas a capacidade camera_stream suporta modificação.
Resposta de dados bem-sucedida: :::tips Condições: Os parâmetros da solicitação são legais e a verificação de identidade do usuário foi aprovada. **Código de Status: **200 OK Código de Erro:
110000 O subdispositivo/grupo correspondente ao id não existe ::: Exemplo de resposta:
i. Excluir Subdispositivo
Permite que usuários autorizados excluam subdispositivos por meio desta interface. :::tips
URL:/open-api/V2/rest/devices/{serial_number}
Método:DELETE
Cabeçalho:
Content-Type: application/json
Autorization: Bearer ::: Parâmetros da Solicitação:
Atributo
Tipo
Opcional
Descrição
name
string
Y
Nome do dispositivo.
tags
object
Y
Pares chave-valor em formato JSON usados para armazenar nomes de canais do dispositivo e outras informações sobre subdispositivos.
state
object
Y
Alterar status do dispositivo; para detalhes do protocolo, consulte "Supported Device Capabilities."
capabilities
CapabilityObject []
Y
Informações de configuração da capacidade; todas as capacidades que suportam configuração podem ser modificadas. Observe que permissões não podem ser alteradas.
Resposta de dados bem-sucedida: :::tips Condições: Os parâmetros da solicitação são legais e a verificação de identidade do usuário foi aprovada. **Código de Status: **200 OK Códigos de Erro:
110000: O subdispositivo/grupo correspondente ao ID não existe.
110006: Falha ao atualizar o status do dispositivo.
110019: Falha ao acessar o endereço do serviço do dispositivo de terceiros.
110024: Falha ao atualizar a configuração do dispositivo. ::: Exemplo de resposta:
j. Excluir Subdispositivo
Permite que usuários autorizados excluam subdispositivos por meio desta interface. :::tips
URL:
/open-api/v2/rest/devices/{serial_number}Método:
DELETECabeçalho:
Content-Type: application/json
Authorization: Bearer ::: Parâmetros da solicitação: Nenhum Resposta de dados bem-sucedida: :::tips Condições: Os parâmetros da requisição são legais e a verificação de identidade do usuário foi aprovada. **Código de status: **200 OK ::: Exemplo de resposta:
k. Consultar Status do Dispositivo
Permite que usuários autorizados consultem o status do dispositivo por meio desta interface. :::tips
URL:
/open-api/v2/rest/devices/:serial_number/query-state/{capability}Método:POST
Cabeçalho:
Content-Type: application/json
Authorization: Bearer ::: Parâmetros da requisição:
Atributo
Tipo
Opcional
Descrição
query_state
object
N
Consultar status do dispositivo; para detalhes do protocolo, consulte "Supported Device Capabilities."
Resposta de dados bem-sucedida: :::tips Condições: Os parâmetros da requisição são legais e a verificação de identidade do usuário foi aprovada. **Código de status: **200 OK ::: Exemplo de resposta:
3.4 Gerenciamento de Segurança
a. Obter Lista de Segurança
Permite que usuários autorizados modifiquem configurações do gateway por meio desta interface. :::tips
URL:
/open-api/v2/rest/securityMétodo:
GETCabeçalho:
Content-Type: application/json
Authorization: Bearer ::: Parâmetros da solicitação: Nenhum Resposta de dados bem-sucedida:
Atributo
Tipo
Opcional
Descrição
security_list
ResponseSecurityObject[]
N
Lista de dispositivos de resposta
ResponseDeviceObject
Atributo
Tipo
Opcional
Descrição
sid
int
N
id de segurança
name
string
N
nome da segurança
habilitar
bool
N
se está habilitado
true Habilitado
false Desabilitado |
:::dicas Condições: Os parâmetros da requisição são legais e a verificação de identidade do usuário foi aprovada. **Código de status: **200 OK ::: Exemplo de resposta:
b. Habilitar Modo de Segurança Específico
Permite que usuários autorizados habilitem um modo de segurança específico por meio desta interface. :::tips
URL:
/open-api/v2/rest/security/{security_id}/enableMétodo:
PUTCabeçalho:
Content-Type: application/json
Authorization: Bearer ::: Parâmetros da solicitação: Nenhum Resposta de dados bem-sucedida: Objeto vazio {} :::tips Condições: Os parâmetros da requisição são legais e a verificação de identidade do usuário foi aprovada. **Código de status: **200 OK ::: Exemplo de resposta:
c. Desabilitar Modo de Segurança Específico
Permite que usuários autorizados desabilitem um modo de segurança específico por meio desta interface. :::tips
URL:
/open-api/v2/rest/security/{security_id}/disableMétodo:
PUTCabeçalho:
Content-Type: application/json
Authorization: Bearer ::: Parâmetros da solicitação: Nenhum Resposta de dados bem-sucedida: Objeto vazio {} :::tips Condições: Os parâmetros da requisição são legais e a verificação de identidade do usuário foi aprovada. **Código de status: **200 OK ::: Exemplo de resposta:
d. Habilitar Configuração de Segurança com Um Clique
Permite que usuários autorizados habilitem o modo de configuração de segurança com um clique por meio desta interface. :::tips
URL:
/open-api/v2/rest/security/enableMétodo:
PUTCabeçalho:
Content-Type: application/json
Authorization: Bearer ::: Parâmetros da solicitação: Nenhum Resposta de dados bem-sucedida: Objeto vazio {} :::tips Condições: Os parâmetros da requisição são legais e a verificação de identidade do usuário foi aprovada. **Código de status: **200 OK ::: Exemplo de resposta:
e. Desabilitar Segurança
Permite que usuários autorizados desabilitem a segurança por meio desta interface. :::tips
URL:
/open-api/v2/rest/security/disableMétodo:
PUTCabeçalho:
Content-Type: application/json
Authorization: Bearer ::: Parâmetros da solicitação: Nenhum Resposta de dados bem-sucedida: Objeto vazio {} :::tips Condições: Os parâmetros da requisição são legais e a verificação de identidade do usuário foi aprovada. **Código de status: **200 OK ::: Exemplo de resposta:
4. Acesso de Dispositivo de Terceiros
4.1 Instrução de Acesso
Acesso de Dispositivo

Acesso de gateway de terceiros

Etapas de acesso
Determine a classificação do dispositivo no gateway. Para mais detalhes, consulte [Supported Device Type].
Determine as capacidades que o dispositivo pode acessar. Para mais detalhes, consulte [Supported Device Capabilities].
Solicite a interface [Discovery Request] para adicionar o dispositivo ao gateway.
Atenção: Você precisa fornecer o endereço de serviço para receber as instruções emitidas pelo gateway, que é usado para receber as instruções de controle do dispositivo emitidas pelo gateway.
Se o estado do dispositivo de terceiros mudar, você precisa chamar a interface [Device States Change Report] para enviar o estado mais recente de volta ao gateway.
Após adicionar, o dispositivo de terceiros aparecerá na Lista de Dispositivos, com a maioria das funções do gateway (outros dispositivos não terceirizados). As interfaces abertas comuns relacionadas ao dispositivo podem ser usadas normalmente.
Selecione a categoria de dispositivo apropriada. A classificação afetará o resultado final exibido na UI após o dispositivo ser conectado ao gateway.
Escolha a capacidade de dispositivo correta. A lista de capacidades determinará o status do protocolo de estado do dispositivo.
Processo do Programa
a. Acesso de Dispositivo

b. Acesso de Gateway de Terceiros

4.2 Exemplo de Acesso
Interruptor, Tomada
Sincronizar dispositivos de terceiros
Relatar status do dispositivo
Relatar offline/online
Receber as instruções sobre o controle do dispositivo pelo gateway
Consultar dispositivo
4.3 API Web
Interface de Solicitação de Gateway de Terceiros
Formato da Solicitação
Permite que usuários autorizados enviem solicitações de evento ao gateway por meio desta interface. :::tips
URL:/open-api/V2/rest/thirdparty/event
Método:POST
Cabeçalho:
Content-Type: application/json
Autorization: Bearer ::: Parâmetros da requisição:
Atributo
Tipo
Opcional
Descrição
event
EventObject
N
Informações da estrutura do objeto de evento da solicitação
EventObject
Atributo
Tipo
Opcional
Descrição
header
HeaderObject
N
Informações da estrutura do cabeçalho da solicitação
endpoint
EndpointObject
Y
Informações da estrutura do endpoint da solicitaçãoObservação: Este campo está vazio ao sincronizar uma nova lista de dispositivos.
payload
PayloadObject
N
Informações da estrutura do payload da solicitação
HeaderObject
Atributo
Tipo
Opcional
Descrição
name
string
N
Nome da solicitação. parâmetro opcional: DiscoveryRequest: Sincronizar novos dispositivos DeviceStatesChangeReport: Relatório de atualização de status do dispositivo DeviceOnlineChangeReport: Relatório de status online do dispositivo
message_id
string
N
ID da mensagem da solicitação, UUID_V4
version
string
N
Número da versão do protocolo da solicitação. Atualmente fixo em 1
EndpointObject
Atributo
Tipo
Opcional
Descrição
serial_number
string
N
Número de série único do dispositivo
third_serial_number
string
N
Número de série único do dispositivo de terceiros
tags
object
Y
Formato JSON chave-valor, informações personalizadas do dispositivo. [Função de Gerenciamento de Dispositivos] - [Descrição das Tags]
PayloadObject Conforme o header.name diferente, há diferentes estruturas de solicitação.
Formato da Resposta
:::tips **Código de Status: **200 OK Parâmetros da resposta: :::
Atributo
Tipo
Opcional
Descrição
header
HeaderObject
N
Informações da estrutura do cabeçalho de resposta
payload
PayloadObject
N
Informações da estrutura do payload de resposta
HeaderObject
Atributo
Tipo
Opcional
Descrição
name
string
N
Nome do cabeçalho de resposta. parâmetros opcionais:Response: Resposta bem-sucedida ErrorResponse: Resposta de erro
message_id
string
N
ID da mensagem do cabeçalho de resposta, UUID_V4. Passe aqui o header.message_id da requisição *Se o parâmetro de entrada da solicitação não contiver message_id, este campo será uma string vazia na resposta.
version
string
N
- Número da versão do protocolo da solicitação. Atualmente fixo em 1.
Resposta bem-sucedida--PayloadObject :
Dependendo do tipo de solicitação, a estrutura da resposta é diferente. Para detalhes, consulte o documento de instrução da solicitação específica.
Resposta de falha--PayloadObject:
Atributo
Tipo
Opcional
Descrição
type
string
N
Tipos de Erro:
INVALID_PARAMETERS: Erro de parâmetro
AUTH_FAILURE: Erro de autorização
INTERNAL_ERROR: Erro interno do serviço | | descrição | string | N | Descrição do erro |
DiscoveryRequest Sincronizar uma nova lista de dispositivos
Observação: Após o dispositivo ser sincronizado com o gateway, ele fica online por padrão, ou seja, online=true. Mudanças subsequentes de online dependem totalmente da sincronização com o terceiro através da interface DeviceOnlineChangeReport.
Parâmetros da solicitação: EndpointObject**:**Nenhum PayloadObject:
Atributo
Tipo
Opcional
Descrição
endpoints
EndpointObject[]
N
Lista de Dispositivos
EndpointObject:
Atributo
Tipo
Opcional
Descrição
third_serial_number
string
N
Número de série único do dispositivo de terceiros
name
string
N
Nome do dispositivo
display_category
string
N
Categoria do Dispositivo. Veja [Supported Device Type] para detalhes. *Dispositivos de terceiros não suportam adicionar câmeras no momento.
capabilities
CapabilityObject[]
N
Lista de capacidades
state
object
N
Informações de estado inicial
manufacturer
string
N
Fabricante
model
string
N
Modelo do dispositivo
tags
object
Y
Formato JSON chave-valor, informações personalizadas do dispositivo:Usado para armazenar canais do dispositivoUsado para armazenar unidades de temperaturaOutros dados personalizados de terceiros
firmware_version
string
N
Versão do firmware
Exemplo de Solicitação :
Parâmetros da resposta: PayloadObject:
Atributo
Tipo
Opcional
Descrição
endpoints
EndpointObject[]
N
Lista de dispositivos
EndpointObject:
Atributo
Tipo
Opcional
Descrição
serial_number
string
N
Número de série único do dispositivo
third_serial_number
string
N
Número de série único do dispositivo de terceiros
Exemplo de uma resposta correta:
Exemplo de uma resposta de erro:
DeviceStatesChangeReport Relatório de alteração de status do dispositivo
Observação: Relatórios de status repetidos podem acionar falsamente cenas associadas.
Parâmetros da solicitação: PayloadObject:
Atributo
Tipo
Opcional
Descrição
state
object
N
Estado do dispositivo, Consulte [Supported device cabilities] para detalhes
Exemplo de Solicitação :
Parâmetros da resposta: PayloadObject: Objeto Vazio Exemplo de resposta bem-sucedida:
DeviceOnlineChangeReport Relatório de status online do dispositivo
Observação: Relatórios de status repetidos podem acionar falsamente cenas associadas.
Parâmetros da solicitação: PayloadObject:
Atributo
Tipo
Opcional
Descrição
online
boolean
N
Status online do dispositivo true: Online
false: Offline
Exemplo de Solicitação :
Parâmetros da resposta: PayloadObject: Objeto Vazio Exemplo de resposta bem-sucedida:
DeviceInformationUpdatedReport Relatório de Atualização de Informações do Dispositivo
Observação: Atualizar pode afetar cenas existentes ou funções de segurança.
Parâmetros da solicitação: PayloadObject:
Atributo
Tipo
Opcional
Descrição
capabilities
| CapabilityObject[]
| N
| Lista de Capacidades. Detalhes podem ser encontrados na seção de capacidades de dispositivo suportadas. **Observação: **Este parâmetro irá apenas atualizar o campo value do ajuste chave dentro do CapabilityObject, e atualizações são permitidas apenas se o permission para a ajuste chave for 11 ou 01. Para a definição de estrutura específica do ajuste em CapabilityObject, consulte a descrição detalhada na seção 2.3 Categorias de Exibição de Dispositivo & Capacidades do Dispositivo. | | tags
| object
| Y
| Formato JSON chave-valor, informações personalizadas do dispositivo.
Pode ser usado para armazenar canais do dispositivo
Pode ser usado para armazenar unidades de temperatura
Outros dados personalizados de terceiros |
Exemplo de Solicitação :
parâmetros de resposta: PayloadObject: Objeto Vazio Exemplo de resposta bem-sucedida:
O gateway envia a interface de instrução através do endereço de serviço do dispositivo
Observação:
As três partes precisam responder à solicitação do gateway dentro de 3s. Caso contrário, o gateway julgará o tempo de processamento do comando expirado.
Se o serviço de terceiros estiver offline, o gateway definirá o dispositivo como offline, e o serviço de terceiros precisa relatar o estado do dispositivo (DeviceStatesChangeReport) ou o estado online (DeviceOnlineChangeReport) antes de retornar ao estado online.
Formato da solicitação
O gateway envia instruções ao terceiro por meio da interface de endereço de serviço do dispositivo. :::tips
URL:
Método:POST
Cabeçalho:
Content-Type: application/json ::: Parâmetros da requisição:
Atributo
Tipo
Opcional
Descrição
directive
DirectiveObject
N
Informações da estrutura do objeto diretiva
DirectiveObject
Atributo
Tipo
Opcional
Descrição
header
HeaderObject
N
Informações da estrutura do cabeçalho da solicitação
endpoint
EndpointObject
N
Informações da estrutura do endpoint da solicitação
payload
PayloadObject
N
Informações da estrutura do payload da solicitação
HeaderObject
Atributo
Tipo
Opcional
Descrição
name
string
N
Nome da solicitação. Parâmetros opcionais:UpdateDeviceStates: Atualizar estados do dispositivo
message_id
string
N
ID da mensagem da solicitação, UUID_V4
version
string
N
Número da versão do protocolo da solicitação. Atualmente fixo em 1.
EndpointObject
Atributo
Tipo
Opcional
Descrição
serial_number
string
N
Número de série único do dispositivo
third_serial_number
string
N
Número de série único do dispositivo de terceiros
tags
object
N
Formato JSON chave-valor, informações personalizadas do dispositivo. [Função de Gerenciamento de Dispositivos] - [Descrição das Tags]
PayloadObject: Conforme diferentes header.name, há uma estrutura de solicitação específica para cada um.
Exemplo de Solicitação :
Formato da resposta
:::tips **Código de Status HTTP: **200 OK Atributo de Resposta HTTP: :::
Atributo
Tipo
Opcional
Descrição
event
EventObject
N
Informações da estrutura do evento de resposta
EventObject
Atributo
Tipo
Opcional
Descrição
header
HeaderObject
N
Informações da estrutura do cabeçalho da solicitação
payload
PayloadObject
N
Informações da estrutura do payload da solicitação
HeaderObject
Atributo
Tipo
Opcional
Descrição
name
string
N
Nome do cabeçalho de resposta. Parâmetro opcional: UpdateDeviceStatesResponse: Resposta de atualização de estados do dispositivo ErrorResponse: Resposta de erro
message_id
string
N
ID da mensagem do cabeçalho de resposta, UUID_V4. Passe aqui o header.message_id da solicitação
version
string
N
Número da versão do protocolo da solicitação. Atualmente fixo em 1.
Resposta bem-sucedida--PayloadObject:
Dependendo do tipo de solicitação, a estrutura da resposta é diferente. Para detalhes, consulte o documento de instrução da solicitação específica.
Resposta de falha--PayloadObject:
Atributo
Tipo
Opcional
Descrição
type
string
N
Tipos de Erro:
ENDPOINT_UNREACHABLE: Dispositivo inalcançável ou offline
ENDPOINT_LOW_POWER: Dispositivo em modo de baixa energia e não pode ser controlado
INVALID_DIRECTIVE: Diretiva anormal do gateway
NO_SUCH_ENDPOINT: Dispositivo não existe
NOT_SUPPORTED_IN_CURRENT_MODE: O modo atual não suporta a operação
INTERNAL_ERROR: Erro interno do serviço
REMOTE_KEY_CODE_NOT_LEARNED: Código de tecla do controle remoto não aprendido |
:::dicas Condições: Os parâmetros da solicitação são legais. **Código de Status: **200 OK Parâmetros da resposta: :::
UpdateDeviceStates
Parâmetros da solicitação: PayloadObject:
Atributo
Tipo
Opcional
Descrição
state
object
N
Estado do dispositivo, Consulte [Supported device cabilities] para detalhes.
Exemplo de Solicitação :
Parâmetros da resposta: PayloadObject:Objeto vazio Exemplo de Resposta Bem-sucedida
QueryDeviceStates
Parâmetros da solicitação: PayloadObject:
Atributo
Tipo
Opcional
Descrição
state
object
N
Estado do dispositivo, Consulte [Supported device cabilities] para detalhes.
Exemplo de Solicitação :
Parâmetros da resposta: PayloadObject:
Atributo
Tipo
Opcional
Descrição
state
object
N
Estado do dispositivo, Consulte [Supported device cabilities] para detalhes.
Exemplo de resposta:
ConfigureDeviceCapabilities
Parâmetros da solicitação: PayloadObject:
Atributo
Tipo
Opcional
Descrição
capabilities
CapabilityObject[]
N
Lista de capacidades. Detalhes podem ser vistos na seção de capacidades de dispositivo suportadas. Observe que o campo permission não pode ser alterado, passe o mesmo valor ao sincronizar.
Exemplo de Solicitação :
Parâmetros da resposta: PayloadObject:Objeto vazio Exemplo de Resposta Bem-sucedida
5. Eventos enviados pelo servidor
Descrição da interface MDN EventSource:https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events
5.1 Instrução
O gateway suporta empurrar mensagens para o cliente usando SSE (Server-sent events). O cliente pode monitorar mensagens SSE após obter as credenciais de acesso e pode analisar o conteúdo das mensagens push de acordo com o protocolo de notificação de eventos da interface de desenvolvimento após receber as mensagens enviadas pelo gateway. Deve-se notar que o gateway atualmente usa o protocolo HTTP1.1, portanto o SSE no lado do navegador terá um limite máximo de no máximo 6 conexões (instruções específicas podem ser encontradas na descrição da interface MDN EventSource.)
5.2 Formato Comum
:::dicas
URL:/open-api/V2/sse/bridge
Método:
GET::: Parâmetros da solicitação:
access_token
string
N
Token de Acesso
Observação: Ao solicitar uma conexão SSE, o gateway verificará o access_token, e retornará um erro de falha de autenticação se for inválido. { "error": 401, "data": {}, "message": "invalid access_token"}
## Por exemplo: Nome do Módulo: device Versão: 1,v2,v3 Tipo de Mensagem: addDevice
Exemplo:
5.3 Módulo de Dispositivo
a. Evento Adicionar Dispositivo
:::tips Nome do Módulo:device Versão:v2 Tipo de Mensagem:addDevice event.data parâmetros: :::
payload
ResponseDeviceObjectObject - Interface igual à Obter Lista de Dispositivos
N
informações do dispositivo
Exemplo:
b. Evento Atualizar Estado do Dispositivo
:::tips Nome do Módulo:device Versão:v2 Tipo de Mensagem:updateDeviceState event.data parâmetros: :::
endpoint
EndpointObject
N
Informações do Dispositivo
payload
object。 Estrutura igual ao estado do dispositivo
N
Dados de Status do Dispositivo
EndpointObject:
serial_number
string
N
Número de Série único do Dispositivo
third_serial_number
string
Y
O número de série único do dispositivo de terceiros. Para dispositivos conectados por interfaces abertas, este campo é obrigatório.
Exemplo:
c. Evento Atualizar Informações do Dispositivo
:::tips Nome do Módulo:device Versão:v2 Tipo de Mensagem:updateDeviceInfo event.data parâmetros: :::
endpoint
EndpointObject
N
Informações do Dispositivo
payload
DeviceChangeObject
N
Dados de Alteração do Dispositivo
EndpointObject:
serial_number
string
N
Número de Série único do Dispositivo
third_serial_number
string
Y
O número de série único do dispositivo de terceiros. Para dispositivos conectados por interfaces abertas, este campo é obrigatório.
DeviceChangeObject
name
string
N
Nome do Dispositivo
capabilities
CapabilityObject []
Y
Lista de capacidades do dispositivo.
tags
object
Y
tagsobject | Nullable | Pares chave-valor em formato JSON para informações personalizadas do dispositivo.
Pode ser usado para armazenar canais do dispositivo.
Pode ser usado para armazenar unidades de temperatura.
Para outros dados personalizados de terceiros. |
Exemplo:
d. Evento Excluir Dispositivo
:::tips Nome do Módulo:device Versão:v2 Tipo de Mensagem:deleteDevice event.data parâmetros: :::
endpoint
EndpointObject
N
Informações do Dispositivo
EndpointObject:
serial_number
string
N
Número de Série único do Dispositivo
third_serial_number
string
Y
O número de série único do dispositivo de terceiros. Para dispositivos conectados por interfaces abertas, este campo é obrigatório.
Exemplo:
e. Evento Atualizar Online do Dispositivo
:::tips Nome do Módulo:device Versão:v2 Tipo de Mensagem:updateDeviceOnline event.data parâmetros: :::
endpoint
EndpointObject
N
Informações do Dispositivo
payload
DeviceChangeObject
N
Dados de Alteração do Dispositivo
EndpointObject:
serial_number
string
N
Número de Série único do Dispositivo
third_serial_number
string
Y
O número de série único do dispositivo de terceiros. Para dispositivos conectados por interfaces abertas, este campo é obrigatório.
DeviceChangeObject
online
boolean
N
Status Online do Dispositivo
Exemplo:
5.4 Módulo Gateway
a. Evento de Atualização do Estado de Segurança
:::tips Nome do Módulo:device Versão:v2 Tipo de Mensagem:updateDeviceOnline event.data parâmetros: :::
Atributo
Tipo
Opcional
Descrição
payload
SecurityStateObject
N
Informações do Dispositivo
SecurityStateObject
Atributo
Tipo
Opcional
Descrição
alarm_state
string
N
arming| Armadodisarming| Desarmado |
Exemplo:
5.5 Módulo de Segurança
a. Evento de Atualização do Estado de Armamento
:::tips Nome do Módulo:device Versão:v2 Tipo de Mensagem:updateDeviceOnline event.data parâmetros: :::
Atributo
Tipo
Opcional
Descrição
payload
ArmStateObject
N
informações de armamento e desarmamento
ArmStateObject:
Atributo
Tipo
Opcional
Descrição
arm_state
string
N
arming| Armadodisarming| Desarmado | | detail | DetailObject | N | Detalhes de armamento/desarmamento |
DetailObject:
Atributo
Tipo
Opcional
Descrição
sid
int
N
id do modo de segurança
name
string
N
nome da segurança
Exemplo
6. TTS (Função do mecanismo de Texto-para-Fala
6.1 Instrução
Papel-chave
Provedor de Serviço TTS: O provedor do serviço de mecanismo TTS é responsável por registrar o mecanismo TTS no gateway e fornecer serviços TTS
Servidor Gateway:iHost
Cliente da API Aberta do Gateway
6.1.1 Registro do Serviço do Mecanismo TTS
【Provedor de Serviço TTS】Chame a interface para registrar o mecanismo TTS no gateway.
【Servidor Gateway】Após o registro bem-sucedido, o gateway armazenará as informações básicas do mecanismo TTS (incluindo o endereço de serviço server_address, e a comunicação subsequente entre o gateway e o Provedor de Serviço TTS será realizada através do endereço server_address), e alocará o ID do serviço do mecanismo TTS dentro do gateway.

6.1.2 Obter a Lista de Áudios Sintetizados
【Cliente da API Aberta do Gateway】Chame a interface para obter a lista de serviços de mecanismo TTS registrados. Você pode obter a lista atual de mecanismos TTS registrados (incluindo o ID do mecanismo TTS alocado pelo gateway).
【Cliente da API Aberta do Gateway】Chame a interface para obter a lista de áudio de um mecanismo TTS especificado. O gateway emitirá uma instrução síncrona de lista de áudio para o Provedor de Serviço TTS especificado e retornará o resultado.

6.1.3 Síntese de Fala especificando um Mecanismo de Fala
【Cliente da API Aberta do Gateway】Chame a interface para obter a lista de serviços de mecanismo TTS registrados. Você pode obter a lista atual de mecanismos TTS registrados (incluindo o ID do mecanismo TTS alocado pelo gateway).
【Cliente da API Aberta do Gateway】Chame a interface para obter a lista de áudio de um mecanismo TTS especificado. O gateway emitirá uma instrução síncrona de lista de áudio para o Provedor de Serviço TTS especificado e retornará o resultado.

6.1.4 Sintetizar Áudio e Reproduzir Fala TTS.
【Cliente da API Aberta do Gateway】Chame a interface para obter a lista de serviços de mecanismo TTS registrados. Você pode obter a lista atual de mecanismos TTS registrados (incluindo o ID do mecanismo TTS alocado pelo gateway).
【Cliente da API Aberta do Gateway】Chame a interface para obter a lista de áudio de um mecanismo TTS especificado. O gateway emitirá uma instrução síncrona de lista de áudio para o Provedor de Serviço TTS especificado e retornará o resultado. (incluindo o endereço do arquivo de áudio TTS)
【Cliente da API Aberta do Gateway】Registre o endereço do arquivo de áudio TTS a partir do resultado retornado na etapa anterior, chame a interface de reproduzir arquivo de áudio e reproduza-o através do gateway.
6.2 Módulo do Mecanismo TTS
6.2.1 Capacidades Abertas do Gateway
a. Obter a lista de serviços de mecanismo TTS registrados
:::dicas
URL:
/open-api/V2/rest/tts/enginesMétodo:
GETCabeçalho:
Content-Type: application/json
Autorização: Bearer ::: Parâmetros da Solicitação: nenhum Resposta de dados correta:
Atributo
Tipo
Opcional
Descrição
engines
EngineObject []
N
Lista de mecanismos TTS registrados
Estrutura do EngineObject
Atributo
Tipo
Opcional
Descrição
id
string
N
ID do mecanismo atribuído pelo gateway
name
string
N
Nome do serviço do mecanismo TS
:::dicas Condições: Os parâmetros da solicitação são legais e a verificação da identidade do usuário foi aprovada. **Código de Status: **200 OK Exemplo de Resposta:: :::
b. Obter lista de áudio de um mecanismo TTS especificado
:::dicas
URL:
/open-api/V2/rest/tts/engine/{id}/audio-listMétodo:
GETCabeçalho:
Content-Type: application/json
Autorização: Bearer ::: Parâmetros da Solicitação: nenhum Resposta de dados correta:
Atributo
Tipo
Opcional
Descrição
audio_list
AudioObject []
N
Lista de áudio
Estrutura do AudioObject
Atributo
Tipo
Opcional
Descrição
url
string
N
URL do arquivo de áudio, por exemplo:
https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3
label
string
Y
Rótulo do arquivo de áudio
:::dicas Condições: Os parâmetros da solicitação são legais e a verificação da identidade do usuário foi aprovada. **Código de Status: **200 OK **Código de Erro: **
190000 O mecanismo está com funcionamento anormal
Exemplo de Resposta:: :::
c .Realizar síntese de fala usando o mecanismo TTS especificado
:::dicas
URL:
/open-api/V2/rest/tts/engine/{id}/synthesizeMétodo:
POSTCabeçalho:
Content-Type: application/json
Autorização: Bearer ::: Parâmetros da Solicitação:
Atributo
Tipo
Opcional
Descrição
text
string
N
Texto usado para sintetizar o áudio
label
string
Y
Rótulo do arquivo de áudio
language
string
Y
Campo transparente. Código de idioma opcional para a solicitação de síntese de fala. A lista específica de códigos de idioma suportados é fornecida pelo provedor do serviço de mecanismo TTS. Observe que o serviço do mecanismo TTS precisa suportar um idioma padrão para síntese de fala, o que significa que, se o idioma não for informado, o idioma padrão do mecanismo será usado para a síntese.
options
object
Y
Campo transparente. Ele é usado para passar os parâmetros de configuração necessários para a síntese ao serviço do mecanismo de fala TTS.
Resposta de dados correta:
Atributo
Tipo
Opcional
Descrição
audio
AudioObject
N
Lista de áudio
Estrutura do AudioObject
Atributo
Tipo
Opcional
Descrição
url
string
N
URL do arquivo de áudio, por exemplo:
https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3
label
string
Y
Rótulo do arquivo de áudio
:::dicas Condições: Os parâmetros da solicitação são legais e a verificação da identidade do usuário foi aprovada. **Código de Status: **200 OK **Código de Erro: **
190000 O mecanismo está com funcionamento anormal
Exemplo de Resposta:: :::
6.2.2 Comunicação Entre Gateway e Serviço TTS
a. Registro do serviço do mecanismo TTS
Enviar solicitação ao gateway pelo Provedor de Serviço TTS
:::dicas
URL:
/open-api/V2/rest/thirdparty/eventMétodo:
POSTCabeçalho:
Content-Type: application/json
Autorização: Bearer ::: Parâmetros da Solicitação:
Atributo
Tipo
Opcional
Descrição
event
EventObject
N
Informações da estrutura do Objeto de Evento de Solicitação
EventObject
Atributo
Tipo
Opcional
Descrição
header
HeaderObject
N
Informações da estrutura do cabeçalho da solicitação
payload
PayloadObject
N
Informações da estrutura do payload da solicitação
HeaderObject
Atributo
Tipo
Opcional
Descrição
name
string
N
Nome da solicitação. Parâmetro opcional.
RegisterTTSEngine | | message_id | string | N | ID da mensagem da solicitação, UUID_V4 | | version | string | N | Número da versão do protocolo de solicitação. Atualmente fixo em 1 |
PayloadObject
Atributo
Tipo
Opcional
Descrição
service_address
string
N
Endereço do Serviço. Por exemplo, http:///
name
string
N
Nome do serviço
Exemplo de Solicitação:
**Parâmetros de resposta corretos: **
Atributo
Tipo
Opcional
Descrição
header
HeaderObject
N
Informações da estrutura do cabeçalho da solicitação
payload
PayloadObject
N
Informações da estrutura do payload da solicitação
HeaderObject
Atributo
Tipo
Opcional
Descrição
name
string
N
Nome do cabeçalho de resposta. Parâmetro opcional:
Resposta (Resposta bem-sucedida)
ErrorResponse (Resposta de erro) | | message_id | string | N | ID da mensagem do cabeçalho de resposta, UUID_V4. Mensagem de solicitação recebida aqui: header.message_id | | version | string | N | Número da versão do protocolo de solicitação. Atualmente fixo em 1 |
PayloadObject
Atributo
Tipo
Opcional
Descrição
engine_id
string
N
ID do mecanismo atribuído pelo gateway
:::dicas Condições: Os parâmetros da solicitação são legais e a verificação da identidade do usuário foi aprovada. **Código de Status: **200 OK Exemplo de Resposta:: ::: Exemplo de Resposta Correta:
**Parâmetros de resposta anormais: **
Atributo
Tipo
Opcional
Descrição
type
string
N
Tipo de Erro
INVALID_PARAMETERS (Parâmetros inválidos)
AUTH_FAILURE (Falha de autenticação)
INTERNAL_ERROR (Erro interno do serviço) | | description | string | N | Descrição do erro |
Exemplo de Resposta de Erro:
b. Comando de sincronização da lista de áudio
Enviar comando ao Provedor de Serviço TTS pelo gateway.
:::dicas
URL:
<endereço do serviço>Método:
POSTCabeçalho:
Content-Type: application/json ::: Parâmetros da requisição:
Atributo
Tipo
Opcional
Descrição
directive
DirectiveObject
N
Informações da estrutura do objeto de instrução
DirectiveObject
Atributo
Tipo
Opcional
Descrição
header
HeaderObject
N
Informações da estrutura do cabeçalho da solicitação
payload
PayloadObject
N
Informações da estrutura do payload da solicitação
HeaderObject
Atributo
Tipo
Opcional
Descrição
name
string
N
Nome da solicitação. Parâmetro opcional:
SyncTTSAudioList | | message_id | string | N | ID da mensagem da solicitação, UUID_V4 | | version | string | N | Número da versão do protocolo de solicitação. Atualmente fixo em 1 |
Exemplo de Solicitação:
**Parâmetros de resposta corretos: **
Atributo
Tipo
Opcional
Descrição
header
HeaderObject
N
Informações da estrutura do cabeçalho da solicitação
payload
PayloadObject
N
Informações da estrutura do payload da solicitação
HeaderObject
Atributo
Tipo
Opcional
Descrição
name
string
N
Nome do cabeçalho de resposta. Parâmetro opcional:
Resposta (Resposta bem-sucedida)
ErrorResponse (Resposta de erro) | | message_id | string | N | ID da mensagem do cabeçalho de resposta, UUID_V4. Mensagem de solicitação recebida aqui: header.message_id | | version | string | N | Número da versão do protocolo de solicitação. Atualmente fixo em 1 |
PayloadObject:
Atributo
Tipo
Opcional
Descrição
audio_list
AudioObject []
N
Lista de Áudio TTS
Estrutura do AudioObject
Atributo
Tipo
Opcional
Descrição
url
string
N
URL do arquivo de áudio, por exemplo:
https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3
label
string
Y
Rótulo do arquivo de áudio
:::dicas Condições: Os parâmetros da solicitação são legais e a verificação da identidade do usuário foi aprovada. **Código de Status: **200 OK Exemplo de Resposta:: ::: Exemplo de Resposta Correta:
**Parâmetros de resposta anormais: **
Atributo
Tipo
Opcional
Descrição
type
string
N
Tipo de Erro
INVALID_PARAMETERS (Parâmetros inválidos)
AUTH_FAILURE (Falha de autenticação)
INTERNAL_ERROR (Erro interno do serviço) | | description | string | N | Descrição do erro |
Exemplo de Resposta de Erro:
c. Comando de síntese de fala
Enviar comando ao Provedor de Serviço TTS pelo gateway.
:::dicas
URL:
<endereço do serviço>Método:
POSTCabeçalho:
Content-Type: application/json ::: Parâmetros da requisição:
Atributo
Tipo
Opcional
Descrição
directive
DirectiveObject
N
Informações da estrutura do objeto de instrução
DirectiveObject
Atributo
Tipo
Opcional
Descrição
header
HeaderObject
N
Informações da estrutura do cabeçalho da solicitação
payload
PayloadObject
N
Informações da estrutura do payload da solicitação
HeaderObject
Atributo
Tipo
Opcional
Descrição
name
string
N
Nome da solicitação. Parâmetro opcional:
SynthesizeSpeech | | message_id | string | N | ID da mensagem da solicitação: UUID_V4 | | version | string | N | Número da versão do protocolo de solicitação. Atualmente fixo em 1 |
PayloadObject
Atributo
Tipo
Opcional
Descrição
text
string
N
Texto usado para sintetizar o áudio
label
string
Y
Rótulo do arquivo de áudio
language
string
Y
Campo transparente. Código de idioma opcional para a solicitação de síntese de fala. A lista específica de códigos de idioma suportados é fornecida pelo provedor do serviço de mecanismo TTS. Observe que o serviço do mecanismo TTS precisa suportar um idioma padrão para síntese de fala, o que significa que, se o idioma não for informado, o idioma padrão do mecanismo será usado para a síntese.
options
object
Y
Campo transparente. Ele é usado para passar os parâmetros de configuração necessários para a síntese ao serviço do mecanismo de fala TTS.
Exemplo de Solicitação:
**Parâmetros de resposta corretos: **
Atributo
Tipo
Opcional
Descrição
header
HeaderObject
N
Informações da estrutura do cabeçalho da solicitação
payload
PayloadObject
N
Informações da estrutura do payload da solicitação
HeaderObject
Atributo
Tipo
Opcional
Descrição
name
string
N
Nome do cabeçalho de resposta. Parâmetro opcional:
Resposta (Resposta bem-sucedida)
ErrorResponse (Resposta de erro) | | message_id | string | N | ID da mensagem do cabeçalho de resposta, UUID_V4. Mensagem de solicitação recebida aqui: header.message_id | | version | string | N | Número da versão do protocolo de solicitação. Atualmente fixo em 1 |
PayloadObject
Atributo
Tipo
Opcional
Descrição
audio
AudioObject
N
Áudio TTS
Estrutura do AudioObject
Atributo
Tipo
Opcional
Descrição
url
string
N
URL do arquivo de áudio, por exemplo:
https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3
label
string
Y
Rótulo do arquivo de áudio
:::dicas Condições: Os parâmetros da solicitação são legais e a verificação da identidade do usuário foi aprovada. **Código de Status: **200 OK Exemplo de Resposta:: ::: Exemplo de Resposta Correta:
**Parâmetros de resposta anormais: **
Atributo
Tipo
Opcional
Descrição
type
string
N
Tipo de Erro
INVALID_PARAMETERS (Parâmetros inválidos)
AUTH_FAILURE (Falha de autenticação)
INTERNAL_ERROR (Erro interno do serviço) | | description | string | N | Descrição do erro |
Exemplo de Resposta de Erro:
7. Módulo Multimídia
7.1 Reproduzir Arquivo de Áudio
:::dicas
URL:
/open-api/V2/rest/media/audio-playerMétodo:
POSTCabeçalho:
Content-Type: application/json
Autorização: Bearer ::: Parâmetros da Solicitação:
Atributo
Tipo
Opcional
Descrição
audio_url
string
N
Endereço URL do áudio
Resposta de dados correta: :::dicas Condições: Os parâmetros da solicitação são legais e a verificação da identidade do usuário foi aprovada. **Código de Status: **200 OK Exemplo de Resposta:: :::
8. Cartão de IU Personalizado
Cartões de IU personalizados permitem exibir qualquer conteúdo desejado dentro do cartão. Esse conteúdo pode ser uma página da web, uma imagem ou qualquer serviço com interface do usuário. Você só precisa fornecer a URL do conteúdo que deseja exibir. O cartão de IU ajustará automaticamente sua largura e altura, e o conteúdo será renderizado usando um iFrame.
8.1 Instrução
Papel-chave
Provedor de Serviço de IU: O provedor responsável por criar cartões de IU personalizados no gateway.
Servidor Gateway: O servidor gateway (iHost).
Cliente da API Aberta do Gateway: O cliente Open API para o gateway.
8.1.1 Criando um Cartão de IU Personalizado
[Provedor de Serviço de IU]: Chama a API para criar um cartão de IU personalizado no gateway.
[Servidor Gateway]: Após o registro bem-sucedido, o gateway armazena as informações básicas do cartão de IU (incluindo configuração de tamanho e URL do recurso do cartão) e atribui um ID interno do cartão de IU dentro do gateway.

8.1.2 Recuperando a Lista de Cartões de IU
[Provedor de Serviço de IU]: Chama a API para recuperar a lista de cartões de IU.
[Servidor Gateway]: Retorna a lista de cartões de IU armazenados no gateway, incluindo cartões de IU personalizados não criados pelo chamador.

8.1.3 Modificando a Configuração de um Cartão de IU Especificado
[Provedor de Serviço de IU]: Chama a API para modificar a configuração de um cartão de IU especificado, como a configuração de tamanho e URL do recurso.
[Servidor Gateway]: Após a modificação bem-sucedida, o gateway armazena as informações atualizadas do cartão de IU, incluindo a nova configuração de tamanho e URL do recurso.

8.1.4 Excluindo um Cartão de IU Personalizado
[Provedor de Serviço de IU]: Chama a API para excluir um cartão de IU personalizado especificado.
[Servidor Gateway]: O gateway removerá todas as informações relacionadas ao cartão de IU especificado.

8.2 Módulo de Cartão de IU Personalizado
8.2.1 Criando um Cartão de IU Personalizado
O Provedor de Serviço de IU envia uma solicitação ao gateway para criar um cartão de IU personalizado.
:::dicas
URL:
/open-api/v2/rest/ui/cardsMétodo:
POSTCabeçalho:
Content-Type: application/json
Autorização: Bearer ::: Parâmetros da Solicitação:
Atributo
Tipo
Opcional
Descrição
label
string
Y
Rótulo do Cartão: Usado para descrever o cartão. É o apelido do cartão.
cast_settings
CastSettingsObject
Y
Configurações do Cartão Cast: Configurações de configuração para cartões cast.
web_settings
WebSettingsObject
N
Configurações do Cartão Web: Configurações de configuração para cartões web.
CastSettingsObject:
Atributo
Tipo
Opcional
Descrição
dimensions
DimensionObject []
N
Configuração de Tamanho: Deve incluir pelo menos uma configuração.
default
string
N
Especificação Padrão: A especificação de tamanho padrão é usada, com parâmetros opcionais: 2x2
WebSettingsObject:
Atributo
Tipo
Opcional
Descrição
dimensions
DimensionObject []
N
Configuração de Tamanho: Deve incluir pelo menos uma configuração.
drawer_component
DrawerObject
Y
Configurações de Exibição do Componente Drawer.
default
string
N
Especificação Padrão:
1x1
2x1 |
DimensionObject:
Atributo
Tipo
Opcional
Descrição
src
string
N
URL do Recurso: Por exemplo: http://example.html
size
string
N
Especificações de Tamanho:
Parâmetros Opcionais do CastSettingsObject:
2×2
Parâmetros Opcionais do WebSettingsObject:
1x1
2x1 |
DrawerObject:
Atributo
Tipo
Opcional
Descrição
src
string
N
URL do Recurso: Por exemplo: http://example.html
Resposta de dados bem-sucedida:
Atributo
Tipo
Opcional
Descrição
id
string
N
ID único do Cartão de IU
:::dicas Condições: Os parâmetros da requisição são legais e a verificação de identidade do usuário foi aprovada. **Código de status: ** 200 OK ::: Exemplo de solicitação:
Exemplo de Resposta:
8.2.2 Recuperar Lista de Cartões de IU
:::dicas
URL:
/open-api/v2/rest/ui/cardsMétodo:
GETCabeçalho:
Content-Type: application/json
Autorização: Bearer ::: Parâmetros da Solicitação: Nenhum Parâmetros de Resposta:
Atributo
Tipo
Opcional
Descrição
data
CardObject[]
N
Lista de Cartões de IU
CardObjec Object:
Atributo
Tipo
Opcional
Descrição
id
string
N
ID do Cartão: Um identificador único para o cartão.
label
string
Y
Rótulo do Cartão: Usado para descrever o cartão. Serve como um apelido ou nome para o cartão.
cast_settings
CastSettingsObject
Y
Rótulo do Cartão: Usado para descrever o cartão. É o apelido do cartão.
web_settings
WebSettingsObject
N
Configurações do Cartão Cast: Configurações de configuração para cartões cast.
app_name
string
Y
Configurações do Cartão Web: Configurações de configuração para cartões web.
CastSettingsObject:
Atributo
Tipo
Opcional
Descrição
dimensions
DimensionObject []
N
Configuração de Tamanho: Deve incluir pelo menos uma configuração.
default
string
N
Especificação Padrão:
Parâmetro Opcional: 2x2
used
string
N
Especificação Atual:
Parâmetro Opcional: 2x2
WebSettingsObject:
Atributo
Tipo
Opcional
Descrição
dimensions
DimensionObject []
N
Configuração de Tamanho: Deve incluir pelo menos uma configuração.
drawer_component
DrawerObject
Y
Configurações de Exibição do Componente Drawer.
default
string
N
Especificação Padrão:
Parâmetro Opcional:
1x1
2x1 | | used | string | N | Especificação Atual: Parâmetro Opcional:
1x1
2x1 |
DimensionObject:
Atributo
Tipo
Opcional
Descrição
src
string
N
URL do Recurso: Por exemplo: http://example.html
size
string
N
Especificações de Tamanho:
Parâmetro Opcional:
1x1
2x1
Observação: Atualmente, cartões cast suportam apenas a especificação 2x2. A especificação 2x2 não será eficaz. |
DrawerObject:
Atributo
Tipo
Opcional
Descrição
src
string
N
URL do Recurso: Por exemplo: http://example.html
Exemplo de Resposta:
8.2.3 Modificar Configuração de um Cartão de IU Especificado
Usuários autorizados podem modificar a configuração de um cartão de IU existente através desta interface. Provedores de serviço de cartão personalizado só podem modificar cartões de IU que eles próprios criaram.
:::dicas
URL:
/open-api/v2/rest/ui/cards/{id}Método:
PUTCabeçalho:
Content-Type: application/json
Autorização: Bearer ::: Parâmetros da Solicitação:
Atributo
Tipo
Opcional
Descrição
label
string
Y
Usado para descrever o cartão. É o apelido do cartão.
cast_settings
CastSettingsObject
Y
Configurações do Cartão Cast
web_settings
WebSettingsObject
Y
Configurações do Cartão Web
CastSettingsObject:
Atributo
Tipo
Opcional
Descrição
used
string
Y, Um dos dois used ou src deve ser fornecido, mas pelo menos um desses parâmetros é obrigatório.
Especificação Atual:
Parâmetro Opcional:
2x2
| | src | string | Y, Um dos dois used ou src deve ser fornecido, mas pelo menos um desses parâmetros é obrigatório. | URL do Recurso: http://example.html |
WebSettingsObject:
Atributo
Tipo
Opcional
Descrição
used
string
Y, Um dos dois used ou src deve ser fornecido, mas pelo menos um desses parâmetros é obrigatório.
Especificação Atual:
Parâmetro Opcional:
1x1
2x1 | | src | string | Y, Um dos dois
usedousrcdeve ser fornecido, mas pelo menos um desses parâmetros é obrigatório. | URL do Recurso: http://example.html |
Resposta de dados bem-sucedida: :::tips Condições: Os parâmetros da solicitação são legais e a verificação da identidade do usuário foi aprovada. O cartão de IU sendo modificado deve ter sido criado pelo provedor de cartão de IU personalizado que chama a interface. **Código de Status: ** 200 OK Código de Erro:
406: Sem permissão para acessar este recurso ::: **Exemplo de Resposta: **
**Exemplo de Solicitação: **
8.2.4 Excluir Cartão de IU Personalizado
Usuários autorizados estão autorizados a excluir um cartão de IU existente usando esta interface. Provedores de cartão personalizado só podem excluir cartões de IU que eles próprios criaram.
:::dicas
URL:
/open-api/v2/rest/ui/cards/{id}Método:
DELETECabeçalho:
Content-Type: application/json
Autorização: Bearer ::: Parâmetros da Solicitação: Nenhum Resposta de dados bem-sucedida: :::dicas Condições: Os parâmetros da solicitação são legais e a verificação da identidade do usuário foi aprovada. O cartão de IU sendo modificado deve ter sido criado pelo provedor de cartão de IU personalizado que chama a interface. **Código de Status: **
200 OKCódigo de Erro:
406: Sem permissão para acessar este recurso. ::: **Exemplo de Resposta: **
Atualizado