IoTsys
Menu

Documentacao

MQTT

Como conectar clientes IoT ao broker do IoTsys com autenticacao, topicos por tenant e mensagens padronizadas.

Conexao

Host
mqtt.iotsys.com.br
Porta
1883
QoS recomendado
1
Client ID
iotsys-{tipo}-{chip_id}

Sessao resiliente

Configure client ID unico, Last Will e reconexao. Isso permite que o dashboard marque offline quando a placa perde energia, Wi-Fi ou broker.

String clientId = "iotsys-esp32-" + String((uint32_t)ESP.getEfuseMac(), HEX);

mqtt.connect(
  clientId.c_str(),
  MQTT_USERNAME,
  MQTT_PASSWORD,
  TOPIC_AVAILABILITY,
  1,
  true,
  "offline"
);

mqtt.publish(TOPIC_AVAILABILITY, "online", true);

Topicos

Comando recebido pelo dispositivo

tenants/{tenant_id}/devices/{device_id}/command

Estado publicado pelo dispositivo

tenants/{tenant_id}/devices/{device_id}/state

Disponibilidade publicada pelo dispositivo

tenants/{tenant_id}/devices/{device_id}/availability

Teste com mosquitto

mosquitto_sub \
  -h mqtt.iotsys.com.br \
  -p 1883 \
  -u "$MQTT_USERNAME" \
  -P "$MQTT_PASSWORD" \
  -t "tenants/{tenant_id}/devices/{device_id}/command" \
  -q 1
mosquitto_pub \
  -h mqtt.iotsys.com.br \
  -p 1883 \
  -u "$MQTT_USERNAME" \
  -P "$MQTT_PASSWORD" \
  -t "tenants/{tenant_id}/devices/{device_id}/state" \
  -m '{"power_state":"ON"}' \
  -q 1

Regras operacionais

  • Assine apenas topicos de comando permitidos pela credencial.
  • Publique estado apos executar o comando no hardware.
  • Publique disponibilidade como mensagem retida para acelerar diagnostico.
  • Reconecte com backoff simples quando Wi-Fi ou MQTT cairem.
  • Nunca grave credenciais MQTT em logs, prints ou repositorios.
  • Use payloads pequenos e previsiveis; eventos grandes devem ir por REST API ou WebSocket especifico.
  • Para comandos criticos, inclua um identificador de comando e publique o estado final apos a acao fisica.