Skip to main content

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.

Execução Assíncrona

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: SUCCESS ou 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: SUCCESS ou 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, FORWARDED ou códigos de erro

Estrutura da Requisição Config

CommandReq

{
"version": 0,
"commands": [],
"restart": false
}

Campos:

  • version (uint16): Versão do formato de configuração
  • commands (array): Lista de objetos Command com as configurações a aplicar
  • restart (boolean): Se true, 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 alterada
  • section (string): Seção da configuração (ex: sensors, devices, transmission)
  • value (int64): Novo valor para a configuração
  • id (int8): Identificador do elemento dentro da seção
    • 0: 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ódigoDescrição
SUCCESSComando executado com sucesso
FORWARDEDComando encaminhado para outro dispositivo na rede mesh
TIMEOUTDispositivo não respondeu dentro de 30 segundos
LORA_TIMEOUTIris não conseguiu comunicar com o Hecate via LoRa no tempo limite
LORA_FAILUREFalha na comunicação LoRa entre Iris e Hecate
COMMAND_NOT_FOUNDComando não reconhecido pelo dispositivo
COMMAND_NOT_AVAILABLEComando indisponível neste dispositivo
ID_REQUIREDID válido é necessário para executar o comando
CRASH_DETECTEDDispositivo reiniciou inesperadamente devido a erro crítico
NVS_ERRORErro ao acessar memória não volátil (NVS)
FS_ERRORErro 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.

Restart Necessário

Quando enviado um comando "config", o dipositivo somente aplicará as configuraçoes após um restart.