EntrarComeçar grátis
← Voltar pra Página Inicial

Conectar via MQTT

Broker, autenticação, tópicos e payloads que o painel CurtoLab espera.

Configuração do broker

ParâmetroValor
Hostlab.curtocircuito.com.br
Port (sem TLS)1883
Port (TLS)8883 (em breve)
Username<ACCESS_TOKEN do device>
Password(deixe vazio)
Client IDÚnico por device. Recomendado: o próprio Access Token ou curtolab-<seu-device-id>
Keepalive60s recomendado
TLS em breve: a porta 8883 está reservada mas o certificado está em configuração final. Pra ambiente de produção sensível, espere o anúncio. Pra prototipagem, 1883 funciona.

Tópicos principais

Telemetria (device → cloud)

Topic:   v1/devices/me/telemetry
Payload: {"temperature": 23.5, "humidity": 60}
QoS:     0 ou 1

Pode mandar quantas chaves quiser num único payload. Cada chave vira uma "telemetry key" indexada pelo TB, disponível pra widgets e regras.

Telemetria com timestamp customizado

Por default, o broker carimba a hora de chegada. Pra mandar histórico ou timestamp específico:

{
  "ts": 1735689600000,
  "values": {"temperature": 23.5, "humidity": 60}
}

Atributos do device (estado, configuração)

Topic:   v1/devices/me/attributes
Payload: {"firmwareVersion": "1.2.3", "interval": 30}

Use atributos pra estado que muda raramente (versão FW, configuração). Telemetria pra valores que mudam o tempo todo (sensor, GPS).

RPC (cloud → device)

O device pode receber comandos do painel. Subscribe:

Topic: v1/devices/me/rpc/request/+

Quando alguém clica num botão no dashboard ou faz POST /api/v1/<deviceId>/rpc, chega:

Topic:   v1/devices/me/rpc/request/123
Payload: {"method": "setLed", "params": {"state": "on"}}

O device responde:

Topic:   v1/devices/me/rpc/response/123
Payload: {"success": true}

Sequência de conexão típica

  1. MQTT CONNECT com username = Access Token do device
  2. PUBLISH inicial em v1/devices/me/attributes com firmwareVersion e config atual (útil pra debug)
  3. SUBSCRIBE em v1/devices/me/rpc/request/+ pra receber comandos
  4. Loop: PUBLISH em v1/devices/me/telemetry a cada N segundos

Teste rápido (mosquitto_pub)

# Substitua YOUR_TOKEN pelo Access Token do device
mosquitto_pub \
  -h lab.curtocircuito.com.br \
  -p 1883 \
  -u "YOUR_TOKEN" \
  -t "v1/devices/me/telemetry" \
  -m '{"temperature": 23.5}'

No painel, abra o device → aba Última telemetria. Em ~1s o valor aparece.

Erros comuns

"Connection refused: not authorized"

Access Token errado ou device foi deletado. Confira em Dispositivos → seu device → Detalhes → Credenciais.

"Telemetria não aparece no painel"

  • Tópico tem que ser exatamente v1/devices/me/telemetry (com /me/, não o ID do device).
  • Payload tem que ser JSON válido. {x: 1} sem aspas dá erro silencioso.
  • QoS 0 não confirma — se quer garantia, use QoS 1.

Rate limit

Plano Free: ~100 mensagens/segundo por tenant. Pra mais, faça upgrade ou contate suporte.

Próximos passos