Entrar ou criar conta

ULC Lab · implementação reproduzível

Laboratório: Automação de Iluminação com OpenHAB, MQTT e Grafana

Você vai implementar uma automação de iluminação simulada, integrando OpenHAB, um broker MQTT e monitoramento com Grafana, em até 2 horas. O laboratório usa VMs Linux e dispositivos simulados, sem hardware dedicado.

OpenHAB do zero à automação corporativa
Ligado ao treinamento OpenHAB do zero à automação corporativa
ULC-LAB-IOT-0003 · Status de validaçãoNão validado pela Upnetix: roteiro derivado da documentação oficial, para você executar e validar
Duração estimada
120 min
Passos
13
Validações
5
Versões da documentação consultada
OpenHAB 3.4 · Eclipse Mosquitto 2.0 · Grafana 10.0 · Telegraf 1.29 · Python 3.10
Objetivo

Este laboratório mostra como orquestrar automação de ambientes usando OpenHAB, MQTT e Grafana, simulando sensores e atuadores. Você aprende a integrar múltiplos protocolos, visualizar dados em tempo real e aplicar boas práticas de segurança e monitoramento em um cenário corporativo.

Topologia

Três VMs em uma rede privada: OpenHAB (192.168.56.10), Mosquitto MQTT Broker (192.168.56.11), Grafana (192.168.56.12). Um script Python simula sensores/atuadores MQTT na máquina do OpenHAB. OpenHAB publica comandos e lê estados via MQTT. Grafana monitora tópicos MQTT via Telegraf.

   [Sensor/Atuador Simulado]
             |
         (MQTT)
             |
   [Mosquitto Broker 192.168.56.11]
         /            \
[OpenHAB 192.168.56.10]   [Telegraf]
         |                  |
      (REST)             (MQTT)
         |                  |
       [Grafana 192.168.56.12]

Equipamentos e software

ItemRequisito, licença ou versão
VM Linux (OpenHAB)2 vCPU, 2GB RAM, Ubuntu 22.04 ou Debian 11
VM Linux (Mosquitto)1 vCPU, 512MB RAM, Ubuntu 22.04 ou Debian 11
VM Linux (Grafana/Telegraf)2 vCPU, 2GB RAM, Ubuntu 22.04 ou Debian 11
OpenHABEPL-2.0 · 3.4
Eclipse MosquittoEPL-2.0 · 2.0
GrafanaAGPL-3.0 · 10.0
TelegrafMIT · 1.29
PythonPSF · 3.10

Roteiro

  1. Preparar as VMs e a rede privada

    Crie três VMs Linux em uma rede virtual privada (NAT ou bridge). Use endereços 192.168.56.10, 192.168.56.11 e 192.168.56.12. Isso isola o ambiente e evita conflitos.

    O que você deve ver: As três VMs se pingam mutuamente.

  2. Instalar e configurar o Mosquitto MQTT Broker

    No 192.168.56.11, instale o Mosquitto. MQTT é o padrão para integração IoT leve e interoperável.

    sudo apt update && sudo apt install -y mosquitto mosquitto-clients
    sudo systemctl enable --now mosquitto

    O que você deve ver: Mosquitto rodando na porta 1883.

  3. Instalar o OpenHAB

    No 192.168.56.10, instale o OpenHAB usando o repositório oficial. OpenHAB é a plataforma central de automação.

    wget -qO - 'https://openhab.org/downloads/openhab-key.gpg' | sudo apt-key add -
    echo 'deb https://openhab.jfrog.io/artifactory/openhab-linuxpkg stable main' | sudo tee /etc/apt/sources.list.d/openhab.list
    sudo apt update && sudo apt install -y openhab
    sudo systemctl enable --now openhab

    O que você deve ver: OpenHAB disponível em http://192.168.56.10:8080

  4. Instalar Grafana e Telegraf

    No 192.168.56.12, instale Grafana e Telegraf. Grafana permite dashboards, Telegraf coleta dados MQTT.

    sudo apt update && sudo apt install -y grafana telegraf
    sudo systemctl enable --now grafana-server telegraf

    O que você deve ver: Grafana disponível em http://192.168.56.12:3000

  5. Configurar tópico MQTT e usuário

    No Mosquitto, crie um usuário e senha para autenticação básica. Segurança mínima para evitar acesso anônimo.

    sudo mosquitto_passwd -c /etc/mosquitto/passwd openhabuser
    # Edite /etc/mosquitto/conf.d/auth.conf e adicione:
    allow_anonymous false
    password_file /etc/mosquitto/passwd
    sudo systemctl restart mosquitto

    O que você deve ver: Mosquitto só aceita conexões autenticadas.

  6. Testar o broker MQTT

    Teste publicação e subscrição MQTT localmente. Isso garante que o broker está funcional.

    mosquitto_sub -h 127.0.0.1 -t 'test/topic' -u openhabuser -P <senha> &
    echo 'hello' | mosquitto_pub -h 127.0.0.1 -t 'test/topic' -u openhabuser -P <senha>

    O que você deve ver: Mensagem 'hello' recebida pelo subscriber.

  7. Configurar o binding MQTT no OpenHAB

    No OpenHAB, instale o binding MQTT pela interface Paper UI (Configurações > Add-ons > Bindings > MQTT Binding). O binding conecta o OpenHAB ao broker.

    O que você deve ver: MQTT Binding listado como instalado.

  8. Adicionar broker MQTT no OpenHAB

    Adicione um broker MQTT em OpenHAB (Configurações > Things > + > MQTT Broker). Use IP 192.168.56.11, porta 1883, usuário e senha criados.

    O que você deve ver: Broker MQTT aparece como ONLINE.

  9. Criar um Thing e Item para lâmpada MQTT

    No OpenHAB, crie um Generic MQTT Thing com um canal do tipo Switch ligado ao tópico 'lab/lamp1/set' (comando) e 'lab/lamp1/state' (estado). Isso simula uma lâmpada controlável.

    O que você deve ver: Thing e Item criados e visíveis no OpenHAB.

  10. Simular sensor/atuador MQTT com Python

    Na VM OpenHAB, crie um script Python que subscribe em 'lab/lamp1/set' e publica em 'lab/lamp1/state'. Isso simula a resposta de um dispositivo real.

    pip install paho-mqtt
    cat > lamp_sim.py <<EOF
    import paho.mqtt.client as mqtt
    broker = '192.168.56.11'
    user = 'openhabuser'
    pwd = '<senha>'
    state = 'OFF'
    def on_message(client, userdata, msg):
        global state
        if msg.topic == 'lab/lamp1/set':
            state = msg.payload.decode()
            client.publish('lab/lamp1/state', state)
    client = mqtt.Client()
    client.username_pw_set(user, pwd)
    client.connect(broker, 1883)
    client.subscribe('lab/lamp1/set')
    client.on_message = on_message
    client.loop_forever()
    EOF
    python3 lamp_sim.py &

    O que você deve ver: Script rodando, pronto para receber comandos.

  11. Controlar a lâmpada via OpenHAB

    No OpenHAB, acione o Item da lâmpada pela interface. O comando será enviado via MQTT, e o estado será atualizado pelo script Python.

    O que você deve ver: Ao ligar/desligar, o estado do Item muda e reflete o status enviado pelo script.

  12. Configurar Telegraf para coletar MQTT

    No 192.168.56.12, configure Telegraf para coletar o tópico 'lab/lamp1/state' do Mosquitto. Isso permite visualizar o status da lâmpada no Grafana.

    sudo nano /etc/telegraf/telegraf.conf
    # Adicione:
    [[inputs.mqtt_consumer]]
      servers = ["tcp://192.168.56.11:1883"]
      topics = ["lab/lamp1/state"]
      username = "openhabuser"
      password = "<senha>"
      data_format = "value"
    sudo systemctl restart telegraf

    O que você deve ver: Telegraf coleta o estado da lâmpada.

  13. Criar dashboard no Grafana

    No Grafana, adicione o datasource InfluxDB (padrão do Telegraf) e crie um dashboard para visualizar o estado da lâmpada em tempo real.

    O que você deve ver: Dashboard mostra o status ON/OFF da lâmpada.

Como saber que funcionou

TesteComandoCritério
Testar ping entre as VMsping 192.168.56.11Resposta de todas as VMs.
Testar publicação MQTT do OpenHABAo acionar a lâmpada, o script Python imprime o novo estado.
Verificar atualização do estado no OpenHABO Item da lâmpada reflete o comando enviado.
Checar coleta de dados no Telegrafsudo systemctl status telegrafTelegraf rodando sem erros.
Visualizar status no GrafanaDashboard exibe ON/OFF em tempo real.

Troubleshooting

SintomaCausa provávelCorreção
OpenHAB não conecta ao broker MQTTUsuário/senha incorretos ou firewall bloqueando porta 1883Verifique credenciais e regras de firewall.
Script Python não recebe comandosBroker não acessível ou tópico incorretoConfirme IP do broker e nomes dos tópicos.
Telegraf não coleta dados MQTTConfiguração errada de servidor ou autenticaçãoRevise telegraf.conf e reinicie o serviço.
Dashboard do Grafana vazioDatasource mal configurado ou dados não chegando ao InfluxDBVerifique conexão do Grafana ao InfluxDB e logs do Telegraf.
Mosquitto não aceita conexões externasbind_address restrito no MosquittoEdite /etc/mosquitto/mosquitto.conf para permitir 0.0.0.0 ou IP da VM.

Segurança e hardening

  • Use autenticação no Mosquitto; nunca permita anonymous em produção
  • Restrinja firewall das VMs para aceitar conexões apenas das VMs do laboratório
  • Altere as senhas padrão do OpenHAB e Grafana
  • Não exponha portas MQTT, OpenHAB ou Grafana para a internet sem VPN ou proxy seguro
  • Monitore logs de autenticação e acesso

Checklist final

Referências

  1. Mosquitto Documentation · OASIS (MQTT) (mqtt.org)
  2. Grafana Documentation · Grafana Labs (grafana.com)
Verificação editorial
Publicado
09/09/2026
Última revisão
09/09/2026
Versão do conteúdo
1.0
Referências
2 oficiais
Revisão técnica
redação e revisão por IA, URLs conferidas na publicação
Status
Atual
Encontrou um erro? Escreva para comercial@upnetix.com.br com o endereço da página. A revisão semestral por IA nunca altera comandos ou configurações sem passar pela fila de revisão.