Entrar ou criar conta

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.

Automação corporativa de ambientes com OpenHAB
Ligado ao treinamento Automação corporativa de ambientes com OpenHAB

Roteiro para estudo em ambiente de laboratório ou de teste. Execute apenas em equipamentos, redes e contas que você tenha autorização para usar, com backup e homologação próprios. Comandos podem causar indisponibilidade ou perda de dados. Software e marcas citados pertencem aos seus titulares. Termos de Uso.

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.