Comandos
Os dispositivos IoTWeaver suportam comandos para controle remoto e gerenciamento através da API REST. A documentação completa da API está disponível no Swagger.
O envio de comandos não garante resposta imediata e os comandos são executados de forma assíncrona no dispositivo. A resposta da API apenas confirma que o comando foi recebido com sucesso. Recomenda-se verificar o status do dispositivo após o envio para confirmar a execução.
Timeout: Comandos que não recebem resposta em 30 segundos retornam TIMEOUT.
Comandos Disponíveis
ping
Verifica a conectividade e disponibilidade do dispositivo através de um sinal de ping/pong.
- Método: POST
- Body: Não aceita
- Resposta:
SUCCESSou códigos de erro
restart
Executa a reinicialização remota do dispositivo, útil para aplicar configurações ou resolver problemas sem intervenção física.
- Método: POST
- Body: Não aceita
- Resposta:
SUCCESSou códigos de erro
config
Atualiza as configurações do dispositivo com os parâmetros fornecidos. Único comando que requer um body na requisição.
- Método: POST
- Body: Objeto
CommandReq(veja estrutura abaixo) - Resposta:
SUCCESS,FORWARDEDou códigos de erro
Estrutura da Requisição Config
CommandReq
{
"version": 0,
"commands": [],
"restart": false
}
Campos:
version(uint16): Versão do formato de configuraçãocommands(array): Lista de objetosCommandcom as configurações a aplicarrestart(boolean): Setrue, reinicia o dispositivo após aplicar as configurações
Command
{
"key": "",
"section": "",
"value": 0,
"id": 0
}
Campos:
key(string): Nome da configuração a ser alteradasection(string): Seção da configuração (ex:sensors,devices,transmission)value(int64): Novo valor para a configuraçãoid(int8): Identificador do elemento dentro da seção0: Seções sem IDs específicos-1: Aplica a todos os elementos da seção- Valor específico: Afeta apenas o elemento com aquele ID (ex: sensor 3)
Códigos de Resposta
| Código | Descrição |
|---|---|
SUCCESS | Comando executado com sucesso |
FORWARDED | Comando encaminhado para outro dispositivo na rede mesh |
TIMEOUT | Dispositivo não respondeu dentro de 30 segundos |
LORA_TIMEOUT | Iris não conseguiu comunicar com o Hecate via LoRa no tempo limite |
LORA_FAILURE | Falha na comunicação LoRa entre Iris e Hecate |
COMMAND_NOT_FOUND | Comando não reconhecido pelo dispositivo |
COMMAND_NOT_AVAILABLE | Comando indisponível neste dispositivo |
ID_REQUIRED | ID válido é necessário para executar o comando |
CRASH_DETECTED | Dispositivo reiniciou inesperadamente devido a erro crítico |
NVS_ERROR | Erro ao acessar memória não volátil (NVS) |
FS_ERROR | Erro ao acessar sistema de arquivos |
ErrorResponse
{
"error": "descrição do erro"
}
Exemplos de Uso
Atualizar intervalo de um sensor específico
{
"version": 1,
"commands": [
{
"key": "interval",
"section": "sensors",
"value": 5000,
"id": 2
}
],
"restart": false
}
Atualiza o intervalo de leitura do sensor ID 2 para 5000ms sem reiniciar o dispositivo.
Habilitar todos os sensores e reiniciar
{
"version": 1,
"commands": [
{
"key": "enabled",
"section": "sensors",
"value": 1,
"id": -1
}
],
"restart": true
}
Habilita todos os sensores e executa reinicialização para aplicar as mudanças.
Múltiplas configurações simultâneas
{
"version": 1,
"commands": [
{
"key": "interval",
"section": "sensors",
"value": 10000,
"id": -1
},
{
"key": "enabled",
"section": "transmission",
"value": 1,
"id": 0
}
],
"restart": false
}
Altera o intervalo de todos os sensores para 10000ms e habilita a transmissão de dados, sem reiniciar.
Quando enviado um comando "config", o dipositivo somente aplicará as configuraçoes após um restart.