Desenvolvedor e Guia de API

1. Começar a Usar

1.1 Preparação

Passo 1. 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 o 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.

  1. Faça login no seu roteador sem fio e verifique o endereço IP do gateway em DHCP.

  2. O CUBE suporta descoberta local via mDNS.

1.2 Iniciar

  • Chame a interface [Access Token], e receba uma resposta de erro, solicitando clicar <Concluído>. Observe que após pressionar, o acesso à interface é válido por no máximo 5 minutos.

// Solicitaçã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 é bem-sucedida e a lista de dispositivos é obtida.

  • Método para obter o token de acesso do CUBE: Após chamar a interface [Access Token], a caixa de diálogo global da página do console Web do CUBE solicita ao usuário que confirme a aquisição das credenciais de 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 de diálogo das outras páginas do console será fechada após clicar na confirmação em uma das páginas do console.

2. Conceito Central

2.1 Endereço da Interface de Desenvolvimento

A interface Web API do gateway possui dois métodos de acesso (baseado em IP ou nome de domínio), geralmente o caminho raiz é /open-api/V2/rest/< módulo funcional 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 interface do usuário 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 um 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 informável (reportable): "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 descritas na tabela abaixo.

Atributo
Tipo
Opcional
Descrição

permission

string

N

Descreve as permissões para o item de configuração.

Valores opcionais:

  • Permitir modificação deste item de configuração: "10"

  • Permitir visualização deste item de configuração: "01"

  • Permitir tanto modificação quanto visualização deste item de configuração: "11"

Explicação dos bits:

  1. Bit 0: Permite visualização deste item de configuração

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

  1. Quando **type = enum**:

    • O value o campo (descrevendo o valor do item de configuração) é obrigatório se permission permite modificação ("10" ou "11").

    • O default (descrevendo o valor padrão do item de configuração) e values (descrevendo os valores selecionáveis para o item de configuração) os campos são opcionais.

  2. Quando **type = numeric**:

    • O value o campo é obrigatório se permission permite 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)

  3. Quando **type = object**:

    • O value o campo é obrigatório se permission permite modificação ("10" ou "11").

    • O default o campo é opcional.

  4. Quando **type = boolean**:

    • O value o campo é obrigatório se permission permite modificação ("10" ou "11").

    • O default o campo é opcional.

  5. Quando **type = string**:

    • O value o campo é obrigatório se permission permite modificação ("10" ou "11").

    • O default o campo é opcional. |

3. Web API

Tipo de Dados

Tipo
Descrição

string

Tipo de dado string. Codificação UTF8.

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 sufixo "Z".

Resultados Genéricos de Resposta

Atributo
Tipo
Opcional
Descrição

error

int

N

Código de erro:

0: Sucesso

400: Erro de parâmetro

401: Falha na autenticação

500: Exceção do servidor

data

object

N

Corpo dos dados da resposta

message

string

N

Descrição da resposta:

Quando error é igual a 0, o conteúdo é success

Quando error não é igual a 0, é uma string não vazia, e o conteúdo é uma descrição do erro.

Exemplo de Resposta:

Lista de Recursos

Tipo
Descrição

Som suportado

- alert1 (Som de Alerta 1)

  • alert2 (Som de Alerta 2)

  • alert3 (Som de Alerta 3)

  • alert4 (Som de Alerta 4)

  • alert5 (Som de Alerta 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) | | Suporta deep | - bootComplete (Inicialização do sistema concluída)

  • networkConnected (Rede conectada)

  • networkDisconnected (Rede desconectada)

  • systemShutdown (Desligamento do sistema) -deviceDiscovered (Detectar dispositivo)

  • system Armed (Sistema armado ativado)

  • system Disarmed (Sistema armado desativado)

  • factoryReset (Redefinir dispositivo) |

3.1 A Função do Gateway

a. Access Token

Permitir que os usuários acessem o token.

  • Observação: O token será limpo após a redefinição do dispositivo.

  • Observação: 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_token

  • MétodoGET

  • Cabeçalho

    • Content-Type: application/json ::: Parâmetros da Solicitação:

Atributo

Tipo

Opcional

Descrição

app_name

string

Y

Descrição do nome da aplicação.

Resposta de dados bem-sucedida:

Atributo

Tipo

Opcional

Descrição

token

string

N

O token de acesso da interface. É válido por longo prazo, por favor salve-o

app_name

string

Y

Descrição do nome da aplicação.

:::dicas Condição: Usuário aciona 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 em caso 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/runtime

  • MétodoGET

  • Cabeçalho

    • Content-Type: application/json

    • Autorization: Bearer ::: Parâmetros da Solicitação: nenhum Resposta de dados bem-sucedida:

Atributo

Tipo

Opcional

Descrição

ram_used

int

N

Porcentagem de uso da RAM. [0-100]

cpu_used

int

N

Porcentagem de uso da CPU. [0-100]

power_up_time

date

N

Última hora de ligamento

cpu_temp

int

N

Temperatura da CPU:

Unidade: Celsius

cpu_temp_unit

string

N

Unidade da Temperatura da CPU:

Opcional

valores:'c', 'f'

sd_card_used

int

Y

Uso do cartão SD (porcentagem):

Intervalo:[0-100] com uma casa decimal de precisão

*Nota: Se o cartão SD não estiver inserido ou não formatado, o valor está vazio.

:::dicas 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 ::: 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/config

  • MétodoPUT

  • Cabeçalho

    • Content-Type: application/json

    • Autorization: Bearer ::: Parâmetros da solicitaçã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 solicitaçã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 as 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/bridge

  • MétodoGET

  • Cabeçalho

    • Content-Type: application/json ::: Parâmetros da solicitaçã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/mute

  • MétodoPUT

  • Cabeçalho

    • Content-Type: application/json

    • Authorization: Bearer ::: Parâmetros da Solicitação: nenhum Resposta de dados bem-sucedida: Objeto vazio {} :::dicas 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 ::: Exemplo de Resposta:

f. Reativar som do Gateway

Permite que usuários autorizados reativem o som do gateway através desta interface. :::dicas

  • URL/open-api/v2/rest/bridge/unmute

  • MétodoPUT

  • Cabeçalho

    • Content-Type: application/json

    • Authorization: Bearer ::: Parâmetros da Solicitação: nenhum Resposta de dados bem-sucedida: Objeto vazio {} :::dicas 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 ::: Exemplo de Resposta:

g. Cancelar 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_alarm

  • MétodoPUT

  • Cabeçalho

    • Content-Type: application/json

    • Authorization: Bearer ::: Parâmetros da Solicitação: nenhum Resposta de dados bem-sucedida: Objeto vazio {} :::dicas 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 ::: Exemplo de Resposta:

3.2 Função de Hardware

a. Reiniciar Gateway

Permitir que usuário autorizado reinicie o gateway através desta interface :::dicas

  • URL/open-api/V2/rest/hardware/reboot

  • MétodoPOST

  • Cabeçalho

    • Content-Type: application/json

    • Autorization: Bearer ::: Parâmetros da Solicitação: nenhum Resposta de dados bem-sucedida: Objeto vazio {} :::dicas 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 :::

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/speaker

  • MétodoPOST

  • Cabeçalho

    • Content-Type: application/json

    • Authorization: Bearer ::: Parâmetros da solicitação:

Atributo

Tipo

Opcional

Descrição

type

string

N

Parâmetros opcionais: 1.play_sound (tocar o som) 2.play_beep (tocar o bip)

sound

SoundObject

Y (N se type for play_sound.)

O som.

beep

BeepObject

Y (N se type for play_beep.)

O bip

SoundObject

Atributo

Tipo

Opcional

Descrição

name

string

N

O nome do som. Os valores suportados podem ser verificados em [Resource List - Supported sound]

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 terminar. Unidade: segundo. [0,1799]

BeepObject

Atributo

Tipo

Opcional

Descrição

name

string

N

O nome do deep. Os valores suportados podem ser verificados em [Resource List - Supported deep]

volume

int

N

O volume do deep. [0-100]

Resposta de dados bem-sucedida: Objeto vazio {} :::dicas 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 ::: Exemplo de Resposta:

3.3 Função de Gerenciamento de Dispositivos

a. Tipo de Dispositivo Suportado

Tipo de Dispositivo

Valor

Versão iHost

Plug

plug

≥ 2.1.0

Interruptor

switch

≥ 2.1.0

Luz

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

Ventilador com luz

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:

Comutação 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 Percentual (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:

Inversão do Motor (motor-reverse):

Exemplo de Declaração de Capacidade:

Atributo de Estado:

Protocolo (Consulta de Status e Instruções de Controle):

Definir Motor para Avançar:

Calibração do Motor (motor-clb)

Exemplo de Declaração de Capacidade:

Atributos (Estado):

Protocolo (Relatório de Status):

Relatar que o Motor Está Sendo Calibrado:

Estado de Ligação na Inicialização (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:

Interruptor 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 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 do 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 Tensão (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 Falha (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

Fluxo 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 de Ímã de 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 Retençã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 (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 do 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 do 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 do 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 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):

Relatório 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 Automático de Irrigação (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

**Nomes dos Modos **
**Valores Opcionais **

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 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 possuem 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 alcançado. Crie até 50 grupos

≥2.1.0

110009

O endereço IP do dispositivo de câmera está incorreto

≥2.1.0

110010

Erro de Autorização de Acesso do Dispositivo de Câmera

≥2.1.0

110011

Erro no endereço de fluxo do dispositivo de câmera

≥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

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 fluxo 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. Procurar Subdispositivo

Permitir que usuários autorizados habilitem ou desabilitem a busca de subdispositivos do gateway por meio desta interface

  • 💡Nota: Atualmente só suporta a busca por subdispositivos Zigbee.

  • 💡Nota: 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 solicitação:

Atributo

Tipo

Opcional

Descrição

enable

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 solicitaçã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 Manualmente o Subdispositivo

Permitir que usuários autorizados adicionem um único subdispositivo por meio desta interface.

  • Nota: 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 solicitaçã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, capabilities 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 do fluxo da câmera.

SettingsObject

Atributo

Tipo

Opcional

Descrição

streamSetting

StreamSettingObject

N

Configuração do serviço de fluxo

StreamSettingObject

Atributo

Tipo

Opcional

Descrição

type

string

N

Configuração do serviço de fluxo

permission

string

N

Permissão da capacidade. Suporta apenas "11" (modificável).

value

StreamSettingValueObject

N

Valores específicos de configuração

StreamSettingValueObject

Atributo

Tipo

Opcional

Descrição

stream_url

string

N

Formato da URL do fluxo

Formato:<schema>://<hostname>:<port>/<username>:<password>@<service_path>

Exemplo:rtsp://admin:[email protected]:554/streaming/channel01

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 solicitaçã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 dados de falha: Objeto vazio :::tips Condição

  1. Erro de acesso ao endereço do fluxo da câmera (erro de formato, falha de autorização, exceção de rede, etc.)

  2. Dispositivo já existe

  3. 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 do fluxo 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 meio desta interface. :::tips

  • URL:/open-api/V2/rest/devices

  • Método: GET

  • Cabeçalho

    • Content-Type: application/json

    • Autorization: Bearer ::: Parâmetros da Solicitaçã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 de acordo com as regras padrão de exibiçã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 da aplicação a que pertence. Se app_name for preenchido ao obter o certificado da interface aberta, então todos os dispositivos subsequentes conectados por meio 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, por favor verifique 【Support Device Capabilities】

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 💡Nota: Verifique os Exemplos de Capacidades de Dispositivo Suportadas para [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 são "read" (legível), "write" (gravável), "readWrite" (legível e gravável).

configuration

object

Y

Informações de configuração da capacidade. Atualmente é usado 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 solicitaçã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 de Dispositivo Especificado

Permitir que usuários autorizados modifiquem as informações básicas do subdispositivo e emitam comandos de controle através 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 solicitaçã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, verifique [Support Device Capabilities]

configuration

object

Y

Informações de configuração da capacidade, atualmente somente a capability 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

Permitir que usuários autorizados excluam subdispositivos através 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 o status do dispositivo; para detalhes do protocolo específico, 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 de 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 através desta interface. :::tips

  • URL/open-api/v2/rest/devices/{serial_number}

  • MétodoDELETE

  • Cabeç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 solicitaçã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 Estado do Dispositivo

Permite que usuários autorizados consultem o estado do dispositivo através 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 solicitação:

Atributo

Tipo

Opcional

Descrição

query_state

object

N

Consultar o estado do dispositivo; para detalhes do protocolo específico, consulte "Supported Device Capabilities."

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 ::: Exemplo de Resposta:

3.4 Gerenciamento de Segurança

a. Obter Lista de Segurança

Permite que usuários autorizados modifiquem as configurações do gateway através desta interface. :::tips

  • URL/open-api/v2/rest/security

  • MétodoGET

  • Cabeç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

Resposta lista de dispositivos

ResponseDeviceObject

Atributo

Tipo

Opcional

Descrição

sid

int

N

id de segurança

name

string

N

Nome de segurança

enable

bool

N

Se está habilitado

  • true Habilitado

  • false Desabilitado |

:::dicas 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 ::: Exemplo de Resposta:

b. Habilitar Modo de Segurança Especificado

Permite que usuários autorizados habilitem um modo de segurança especificado através desta interface. :::tips

  • URL/open-api/v2/rest/security/{security_id}/enable

  • MétodoPUT

  • Cabeç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 solicitaçã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 Especificado

Permite que usuários autorizados desabilitem um modo de segurança especificado através desta interface. :::tips

  • URL/open-api/v2/rest/security/{security_id}/disable

  • MétodoPUT

  • Cabeç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 solicitaçã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. Habilitação de Segurança com Um Clique

Permite que usuários autorizados habilitem o modo de configuração de segurança com um clique através desta interface. :::tips

  • URL/open-api/v2/rest/security/enable

  • MétodoPUT

  • Cabeç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 solicitaçã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 através desta interface. :::tips

  • URL/open-api/v2/rest/security/disable

  • MétodoPUT

  • Cabeç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 solicitaçã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

1.0.jpg

Acesso de gateway de terceiros

2.0.jpg

Etapas de Acesso

  1. Determine a classificação do dispositivo no gateway. Para detalhes, verifique [Supported Device Type].

  2. Determine as capacidades que o dispositivo pode acessar. Para detalhes, verifique [Supported Device Capabilities].

  3. Solicite a interface [Discovery Request] para adicionar o dispositivo ao gateway.

    1. 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 de dispositivo emitidas pelo gateway.

  4. Se o status do dispositivo de terceiros mudar, você precisa chamar a interface [Device States Change Report] para enviar o status mais recente de volta ao gateway.

  5. Após a adição, o dispositivo de terceiros aparecerá na Lista de Dispositivos, com a maioria das funções do gateway (outros dispositivos não terceiros). 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 estado do protocolo de estado do dispositivo.

Processo do Programa

a. Acesso de Dispositivo

3.0.jpg

b. Acesso de Gateway de Terceiros

4.0.jpg

4.2 Exemplo de Acesso

Interruptor, Tomada

Sincronizar dispositivos de terceiros

Relatar estado do dispositivo

Relatar offline/online

Receber as instruções sobre o gateway para controlar o dispositivo

Consultar dispositivo

4.3 API Web

Interface de Solicitação de Gateway de Terceiros

Formato de Solicitação

Permitir que usuários autorizados enviem solicitações de evento ao gateway através desta interface. :::tips

  • URL:/open-api/V2/rest/thirdparty/event

  • Método:POST

  • Cabeçalho

    • Content-Type: application/json

    • Autorization: Bearer ::: Parâmetros da solicitaçã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çãoNota: 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 estado 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 Dispositivo] - [Descrição das Tags]

PayloadObject De acordo com os diferentes header.name há diferentes estruturas de solicitação.

Formato de Resposta

:::tips **Código de Status: **200 OK Parâmetros de 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 mensagem da solicitaçã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

  • Nota: Após o dispositivo ser sincronizado com o gateway, ele fica online por padrão, ou seja, online=true. Alterações 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 agora.

capabilities

CapabilityObject[]

N

Lista de capacidades

state

object

N

Informação 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:Ser usado para armazenar canais do dispositivoSer usado para armazenar unidades de temperaturaOutros dados personalizados de terceiros

firmware_version

string

N

Versão do firmware

service_address

string

N

Endereço do serviço. Por exemplo http://192.168.31.14/service_address

Exemplo de Solicitação :

Parâmetros de 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 resposta correta:

Exemplo de resposta de erro:

DeviceStatesChangeReport Relatório de alteração do estado do dispositivo

  • Nota: Relatórios repetidos de estado podem acionar falsamente cenas associadas.

Parâmetros da solicitação: PayloadObject:

Atributo

Tipo

Opcional

Descrição

state

object

N

Estado do dispositivo, Veja [Supported device cabilities] para detalhes

Exemplo de Solicitação :

Parâmetros de resposta: PayloadObject: Objeto Vazio Exemplo de uma resposta bem-sucedida:

DeviceOnlineChangeReport Relatório de status online do dispositivo

  • Nota: Relatórios repetidos de estado 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 de resposta: PayloadObject: Objeto Vazio Exemplo de uma resposta bem-sucedida:

DeviceInformationUpdatedReport Relatório de Informação de Dispositivo Atualizada

  • Nota: A atualização 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. **Nota: **Este parâmetro somente atualizará o value do definição chave dentro do CapabilityObject, e atualizações são permitidas apenas se o permission para o definição key é 11 ou 01. Para a definição de estrutura específica do definição em CapabilityObject, consulte a descrição detalhada na seção 2.3 Categorias de Exibição de Dispositivo & Capacidades de 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 uma resposta bem-sucedida:

Gateway envia a interface de instrução através do endereço de serviço do dispositivo

  • Nota:

  1. 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 como expirado.

  2. 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 através da interface do endereço de serviço do dispositivo. :::tips

  • URL

  • Método:POST

  • Cabeçalho

    • Content-Type: application/json ::: Parâmetros da solicitação:

Atributo

Tipo

Opcional

Descrição

directive

DirectiveObject

N

Informações da estrutura do objeto Directive

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 Dispositivo] - [Descrição das Tags]

PayloadObject: De acordo com diferentes header.name, existe uma estrutura de solicitação específica para cada um.

Exemplo de Solicitação :

Formato de 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: Diretriz 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 da 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 de resposta: :::

UpdateDeviceStates

Parâmetros da solicitação: PayloadObject:

Atributo

Tipo

Opcional

Descrição

state

object

N

Estado do dispositivo, Veja [Supported device cabilities] para detalhes.

Exemplo de Solicitação :

Parâmetros de 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, Veja [Supported device cabilities] para detalhes.

Exemplo de Solicitação :

Parâmetros de resposta: PayloadObject:

Atributo

Tipo

Opcional

Descrição

state

object

N

Estado do dispositivo, Veja [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 parte de capacidades de dispositivo suportadas. Observe que o campo permission não pode ser alterado, passe o mesmo valor durante a sincronização.

Exemplo de Solicitação :

Parâmetros de 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 evento da interface de desenvolvimento ao receber as mensagens empurradas pelo gateway. Deve-se notar que o gateway atualmente usa o protocolo HTTP1.1, então SSE no lado do navegador terá um limite máximo de não mais que 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étodoGET ::: Parâmetros da solicitação:

Nome
Tipo
Opcional
Descrição

access_token

string

N

Token de Acesso

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

Nome
Tipo
Opcional
Descrição

payload

ResponseDeviceObjectObject - Interface igual à Get Device List

N

informação 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: :::

Nome
Tipo
Opcional
Descrição

endpoint

EndpointObject

N

Informação do Dispositivo

payload

object。 Estrutura igual ao estado do dispositivo

N

Dados de Status do Dispositivo

EndpointObject:

Parâmetro
Tipo
Opcional
Descrição

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 através de 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: :::

Nome
Tipo
Opcional
Descrição

endpoint

EndpointObject

N

Informação do Dispositivo

payload

DeviceChangeObject

N

Dados de Alteração do Dispositivo

EndpointObject:

Atributo
Tipo
Opcional
Descrição

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 através de interfaces abertas, este campo é obrigatório.

DeviceChangeObject

Nome
Tipo
Opcional
Descrição

name

string

N

Nome do Dispositivo

capabilities

CapabilityObject []

Y

Lista de capacidades do dispositivo.

tags

object

Y

tagsobject | Nulável | 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: :::

** Nome **
** Tipo **
** Opcional**
** Descrição **

endpoint

EndpointObject

N

Informação do Dispositivo

EndpointObject:

Atributo
Tipo
Opcional
Descrição

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 através de 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: :::

Nome
Tipo
Opcional
Descrição

endpoint

EndpointObject

N

Informação do Dispositivo

payload

DeviceChangeObject

N

Dados de Alteração do Dispositivo

EndpointObject:

Atributo
Tipo
Opcional
Descrição

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 através de interfaces abertas, este campo é obrigatório.

DeviceChangeObject

Nome
Tipo
Opcional
Descrição

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ção do Dispositivo

SecurityStateObject

Atributo

Tipo

Opcional

Descrição

alarm_state

string

N

  • arming | Armado

  • disarming | Desarmado |

Exemplo:

5.5 Módulo de Segurança

a. Evento de Atualização do Estado de Armar

:::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 armar e desarmar

ArmStateObject:

Atributo

Tipo

Opcional

Descrição

arm_state

string

N

  • arming | Armado

  • disarming | Desarmado | | detail | DetailObject | N | Detalhes de armar/desarmar |

DetailObject:

Atributo

Tipo

Opcional

Descrição

sid

int

N

ID do modo de segurança

name

string

N

Nome de segurança

Exemplo

6. TTS (Texto para Fala) Função do Motor

6.1 Instrução

Papel-chave

  • Provedor de Serviço TTS: O provedor do serviço do motor TTS é responsável por registrar o motor TTS no gateway e fornecer serviços TTS

  • Servidor Gateway:iHost

  • Cliente Open API do Gateway

6.1.1 Registro do Serviço do Motor TTS

  1. 【Provedor de Serviço TTS】Chame a interface para registrar o motor TTS no gateway.

  2. 【Servidor Gateway】Após o registro bem-sucedido, o gateway armazenará as informações básicas do motor TTS (incluindo o endereço do 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 motor TTS dentro do gateway.

image.png

6.1.2 Obter a Lista de Áudios Sintetizados

  1. 【Cliente Open API do Gateway】Chame a interface para obter a lista de serviços de motor TTS registrados. Você pode obter a lista atual de motores TTS registrados (incluindo o ID do motor TTS alocado pelo gateway).

  2. 【Cliente Open API do Gateway】Chame a interface para obter a lista de áudios de um motor TTS especificado. O gateway emitirá uma instrução síncrona de lista de áudio ao Provedor de Serviço TTS especificado e retornará o resultado.

image.png

6.1.3 Síntese de Fala especificando um Motor de Fala

  1. 【Cliente Open API do Gateway】Chame a interface para obter a lista de serviços de motor TTS registrados. Você pode obter a lista atual de motores TTS registrados (incluindo o ID do motor TTS alocado pelo gateway).

  2. 【Cliente Open API do Gateway】Chame a interface para obter a lista de áudios de um motor TTS especificado. O gateway emitirá uma instrução síncrona de lista de áudio ao Provedor de Serviço TTS especificado e retornará o resultado.

image.png

6.1.4 Sintetizar Áudio e Reproduzir Fala TTS.

  1. 【Cliente Open API do Gateway】Chame a interface para obter a lista de serviços de motor TTS registrados. Você pode obter a lista atual de motores TTS registrados (incluindo o ID do motor TTS alocado pelo gateway).

  2. 【Cliente Open API do Gateway】Chame a interface para obter a lista de áudios de um motor TTS especificado. O gateway emitirá uma instrução síncrona de lista de áudio ao Provedor de Serviço TTS especificado e retornará o resultado. (incluindo o endereço do arquivo de áudio TTS)

  3. 【Cliente Open API 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 Motor TTS

6.2.1 Capacidade Aberta do Gateway

a. Obter a lista de serviços de motor TTS registrados

:::dicas

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

  • MétodoGET

  • Cabeçalho

    • Content-Type: application/json

    • Autorização: Bearer ::: Parâmetros da Requisição: nenhum Resposta de dados correta:

Atributo

Tipo

Opcional

Descrição

engines

EngineObject []

N

Lista de motores TTS registrados

Estrutura EngineObject

Atributo

Tipo

Opcional

Descrição

id

string

N

ID do motor atribuído pelo gateway

name

string

N

Nome do serviço do motor TS

:::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. Obter lista de áudio de um motor TTS especificado

:::dicas

  • URL/open-api/V2/rest/tts/engine/{id}/audio-list

  • MétodoGET

  • Cabeçalho

    • Content-Type: application/json

    • Autorização: Bearer ::: Parâmetros da Requisição: nenhum Resposta de dados correta:

Atributo

Tipo

Opcional

Descrição

audio_list

AudioObject []

N

Lista de áudios

Estrutura 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 requisiçã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: **

  • 190000 O motor está funcionando de forma anormal

Exemplo de Resposta:: :::

c .Realizar síntese de fala usando o motor TTS especificado

:::dicas

  • URL/open-api/V2/rest/tts/engine/{id}/synthesize

  • MétodoPOST

  • Cabeçalho

    • Content-Type: application/json

    • Autorização: Bearer ::: Parâmetros da Requisiçã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 fala de síntese. A lista específica de códigos de idioma suportados é fornecida pelo provedor do serviço do motor de fala TTS. Observe que o serviço do motor 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 motor será usado para síntese.

options

object

Y

Campo transparente. É usado para passar os parâmetros de configuração necessários para síntese ao serviço do motor de fala TTS.

Resposta de dados correta:

Atributo

Tipo

Opcional

Descrição

audio

AudioObject

N

Lista de áudios

Estrutura 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 requisiçã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: **

  • 190000 O motor está funcionando de forma anormal

Exemplo de Resposta:: :::

6.2.2 Comunicação Entre Gateway e Serviço TTS

a. Registro do serviço do motor TTS

Enviar requisição ao gateway pelo Provedor de Serviço TTS

:::dicas

  • URL/open-api/V2/rest/thirdparty/event

  • MétodoPOST

  • Cabeçalho

    • Content-Type: application/json

    • Autorização: Bearer ::: Parâmetros da Requisição:

Atributo

Tipo

Opcional

Descrição

event

EventObject

N

Estrutura do Objeto de Evento de Requisição Informaçã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 requisição. Parâmetro opcional.

  • RegisterTTSEngine | | message_id | string | N | ID da mensagem de requisição, UUID_V4 | | version | string | N | Número da versão do protocolo de requisiçã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 Requisiçã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 requisição recebida aqui: header.message_id | | version | string | N | Número da versão do protocolo de requisição. Atualmente fixo em 1 |

PayloadObject

Atributo

Tipo

Opcional

Descrição

engine_id

string

N

ID do motor atribuído pelo gateway

:::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:: ::: Exemplo de Resposta Correta::

**Parâmetros de resposta anormais: **

Atributo

Tipo

Opcional

Descrição

type

string

N

Tipo de Erro

  • INVALID_PARAMETERS (Erro de parâmetros)

  • 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étodoPOST

  • Cabeçalho

    • Content-Type: application/json ::: Parâmetros da Solicitação:

Atributo

Tipo

Opcional

Descrição

directive

DirectiveObject

N

Informação 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 requisição. Parâmetro opcional:

  • SyncTTSAudioList | | message_id | string | N | ID da mensagem de requisição, UUID_V4 | | version | string | N | Número da versão do protocolo de requisição. Atualmente fixo em 1 |

Exemplo de Requisiçã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 requisição recebida aqui: header.message_id | | version | string | N | Número da versão do protocolo de requisição. Atualmente fixo em 1 |

PayloadObject:

Atributo

Tipo

Opcional

Descrição

audio_list

AudioObject []

N

Lista de Áudio TTS

Estrutura 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 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:: ::: Exemplo de Resposta Correta::

**Parâmetros de resposta anormais: **

Atributo

Tipo

Opcional

Descrição

type

string

N

Tipo de Erro

  • INVALID_PARAMETERS (Erro de parâmetros)

  • 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étodoPOST

  • Cabeçalho

    • Content-Type: application/json ::: Parâmetros da Solicitação:

Atributo

Tipo

Opcional

Descrição

directive

DirectiveObject

N

Informação 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 requisição. Parâmetro opcional:

  • SynthesizeSpeech | | message_id | string | N | ID da mensagem de requisição: UUID_V4 | | version | string | N | Número da versão do protocolo de requisiçã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 fala de síntese. A lista específica de códigos de idioma suportados é fornecida pelo provedor do serviço do motor de fala TTS. Observe que o serviço do motor 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 motor será usado para síntese.

options

object

Y

Campo transparente. É usado para passar os parâmetros de configuração necessários para síntese ao serviço do motor de fala TTS.

Exemplo de Requisiçã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 requisição recebida aqui: header.message_id | | version | string | N | Número da versão do protocolo de requisição. Atualmente fixo em 1 |

PayloadObject

Atributo

Tipo

Opcional

Descrição

audio

AudioObject

N

Áudio TTS

Estrutura 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 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:: ::: Exemplo de Resposta Correta::

**Parâmetros de resposta anormais: **

Atributo

Tipo

Opcional

Descrição

type

string

N

Tipo de Erro

  • INVALID_PARAMETERS (Erro de parâmetros)

  • 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-player

  • MétodoPOST

  • Cabeçalho

    • Content-Type: application/json

    • Autorização: Bearer ::: Parâmetros da Requisiçã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 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:: :::

8. Cartão de UI Personalizado

Os cartões de UI personalizados permitem exibir qualquer conteúdo que desejar dentro do cartão. Esse conteúdo pode ser uma página web, uma imagem ou qualquer serviço com UI. Você só precisa fornecer a URL do conteúdo que deseja exibir. O cartão de UI se ajustará automaticamente em largura e altura, e o conteúdo será renderizado usando um iFrame.

8.1 Instrução

Papel-chave

  • Provedor de Serviço de UI: O provedor responsável por criar cartões de UI personalizados no gateway.

  • Servidor Gateway: O servidor gateway (iHost).

  • Cliente Open API do Gateway: O cliente Open API para o gateway.

8.1.1 Criando um Cartão de UI Personalizado

  • [Provedor de Serviço de UI]: Chama a API para criar um cartão de UI personalizado no gateway.

  • [Servidor Gateway]: Após o registro bem-sucedido, o gateway armazena as informações básicas do cartão de UI (incluindo configuração de tamanho e URL do recurso do cartão) e atribui um ID interno do cartão de UI dentro do gateway.

image.png

8.1.2 Recuperando a Lista de Cartões de UI

  • [Provedor de Serviço de UI]: Chama a API para recuperar a lista de cartões de UI.

  • [Servidor Gateway]: Retorna a lista de cartões de UI armazenados no gateway, incluindo cartões de UI personalizados não criados pelo chamador.

image.png

8.1.3 Modificando a Configuração de um Cartão de UI Especificado

  • [Provedor de Serviço de UI]: Chama a API para modificar a configuração de um cartão de UI especificado, como a configuração de tamanho e o URL do recurso.

  • [Servidor Gateway]: Após a modificação bem-sucedida, o gateway armazena as informações atualizadas do cartão de UI, incluindo a nova configuração de tamanho e o URL do recurso.

image.png

8.1.4 Excluindo um Cartão de UI Personalizado

  1. [Provedor de Serviço de UI]: Chama a API para excluir um cartão de UI personalizado especificado.

  2. [Servidor Gateway]: O gateway removerá todas as informações relacionadas ao cartão de UI especificado.

image.png

8.2 Módulo de Cartão de UI Personalizado

8.2.1 Criando um Cartão de UI Personalizado

O Provedor de Serviço de UI envia uma requisição ao gateway para criar um cartão de UI personalizado.

:::dicas

  • URL/open-api/v2/rest/ui/cards

  • MétodoPOST

  • Cabeçalho

    • Content-Type: application/json

    • Autorização: Bearer ::: Parâmetros da Requisiçã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 de CastSettingsObject:

  • 2×2

Parâmetros Opcionais de 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 UI

:::dicas 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 ::: Exemplo de requisição:

Exemplo de Resposta:

8.2.2 Recuperar Lista de Cartões UI

:::dicas

  • URL/open-api/v2/rest/ui/cards

  • MétodoGET

  • Cabeçalho

    • Content-Type: application/json

    • Autorização: Bearer ::: Parâmetros da Requisição: Nenhum Parâmetros de Resposta:

Atributo

Tipo

Opcional

Descrição

data

CardObject[]

N

Lista de Cartões UI

Objeto CardObjec:

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

usado

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

Nota: Atualmente, os cartões cast suportam apenas a especificação 2x2. A especificação 2x2 não será efetiva. |

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 UI Especificado

Usuários autorizados podem modificar a configuração de um cartão UI existente através desta interface. Provedores de serviço de cartão personalizado só podem modificar cartões UI que tenham criado.

:::dicas

  • URL/open-api/v2/rest/ui/cards/{id}

  • MétodoPUT

  • Cabeçalho

    • Content-Type: application/json

    • Autorização: Bearer ::: Parâmetros da Requisiçã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

usado

string

Y, Ou usado ou src deve ser fornecido, mas pelo menos um desses parâmetros é requerido.

Especificação Atual:

Parâmetro Opcional:

  • 2x2

| | src | string | Y, Ou usado ou src deve ser fornecido, mas pelo menos um desses parâmetros é requerido. | URL do Recurso: http://example.html |

WebSettingsObject:

Atributo

Tipo

Opcional

Descrição

usado

string

Y, Ou usado ou src deve ser fornecido, mas pelo menos um desses parâmetros é requerido.

Especificação Atual:

Parâmetro Opcional:

  • 1x1

  • 2x1 | | src | string | Y, Ou usado ou src deve ser fornecido, mas pelo menos um desses parâmetros é requerido. | URL do Recurso: http://example.html |

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. O cartão UI sendo modificado deve ter sido criado pelo provedor de cartão UI personalizado que chamou 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 Requisição: **

8.2.4 Excluir Cartão UI Personalizado

Usuários autorizados têm permissão para excluir um cartão UI existente usando esta interface. Provedores de cartão personalizado só podem excluir cartões UI que eles tenham criado.

:::dicas

  • URL/open-api/v2/rest/ui/cards/{id}

  • MétodoDELETE

  • Cabeçalho

    • Content-Type: application/json

    • Autorização: Bearer ::: Parâmetros da Requisição: Nenhum Resposta de dados bem-sucedida: :::dicas Condições: Os parâmetros da requisição são legais e a verificação de identidade do usuário foi aprovada. O cartão UI sendo modificado deve ter sido criado pelo provedor de cartão UI personalizado que chamou a interface. **Código de Status: ** 200 OK Código de Erro:

  • 406: Sem permissão para acessar este recurso. ::: **Exemplo de Resposta: **

Last updated