API REST
Referência da API HTTP disponível no TechLabsOS mais novo para consulta de telemetria, estado do equipamento e acionamento do relé.
Visão geral
A API expõe dois endpoints principais: GET /api para leitura completa do dispositivo e POST /api/relay para controle do relé quando o modo manual estiver habilitado.
Autenticação
Bearer token obrigatório nas rotas de consulta e comando.
Formato
Respostas em application/json com blocos success, message e data.
CORS
As rotas aceitam OPTIONS e liberam origem *.
Autenticação
Inclua o token no cabeçalho Authorization em todas as chamadas protegidas.
Authorization: Bearer SEU_TOKEN_AQUI
Se o token for inválido ou ausente, a requisição é interrompida pela validação interna antes da montagem da resposta da API.
Endpoint de leitura
Consulta consolidada de sistema, rede, monitoramento e conectividade.
Exemplo
curl -X GET "http://IP_DO_EQUIPAMENTO/api" \ -H "Authorization: Bearer SEU_TOKEN_AQUI"
Campos retornados
system
Informações como uptime, hostname, nome do software, versão, build e revisão da placa.
network
Tipo de rede, MAC, IP local, gateway, máscara, DNS e status do cabo.
monitoring
Temperatura, tensões DC, nomes dos canais, entradas digitais e estado lógico do relé.
connectivity
Status das integrações, incluindo SNMP, API habilitada e comunidade configurada.
Resposta exemplo
{
"success": true,
"data": {
"system": {
"uptime": 12854,
"hostname": "plus-v3",
"softwareName": "TechLabsOS",
"softwareVersion": "0.6.1",
"softwareBuild": "2026-07",
"boardVersion": "Plus v3"
},
"network": {
"networkType": "ethernet",
"macAddress": "AA:BB:CC:DD:EE:FF",
"localIP": "192.168.94.4",
"gatewayIP": "192.168.94.1",
"subnetMask": "255.255.255.0",
"dnsIP1": "8.8.8.8",
"dnsIP2": "1.1.1.1",
"cable": true
},
"monitoring": {
"tempName0": "Temperatura interna",
"temp0": 31.4,
"voltageDCName0": "Fonte A",
"voltageDCName1": "Fonte B",
"voltageDCName2": "Banco",
"voltageDC0": 12.9,
"voltageDC1": 12.7,
"voltageDC2": 13.1,
"sensorInputName0": "Porta",
"sensorInputName1": "Alarme",
"sensorInputValue0": 0,
"sensorInputValue1": 1,
"relay0Name": "Relé 1",
"relay0Value": 1
},
"connectivity": {
"snmp": true,
"api": true,
"community": "public"
}
}
}
Endpoint de comando do relé
Aciona ou desliga o relé via comando textual ou booleano normalizado pela API.
Parâmetros aceitos
| Campo | Obrigatório | Descrição |
|---|---|---|
cmd |
Não* | Aceita on, off, true, false, 1 ou 0. |
state |
Não* | Alternativa ao campo cmd com a mesma interpretação. |
* Pelo menos um dos dois campos deve ser enviado no corpo da requisição.
Exemplo
curl -X POST "http://IP_DO_EQUIPAMENTO/api/relay" \ -H "Authorization: Bearer SEU_TOKEN_AQUI" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "cmd=on"
Resposta de sucesso
{
"success": true,
"message": "Relay updated successfully.",
"data": {
"relay0Name": "Relé 1",
"relay0Value": 1,
"relay0State": "on",
"relay0Config": 1
}
}
Códigos de retorno esperados
200
Consulta concluída ou relé atualizado com sucesso.
400
Comando inválido para o relé. Use on/off, true/false ou 1/0.
409
Controle bloqueado porque o relé não está configurado em modo manual.
OPTIONS para pré-validação CORS, com liberação dos métodos GET, POST e OPTIONS conforme cada endpoint.