Skip to main content

Introdução

O Hermes permite que você personalize comportamentos dos dispositivos e sensores usando scripts em Lua. Use esta linguagem para criar automações, reagir a eventos e comandar atuadores de forma simples e flexível.

Estrutura Básica

Os principais objetos globais disponíveis são:

  • Sensor — acesso e controle dos sensores cadastrados no seu config.ini
  • Device — acesso e controle dos atuadores
  • EventBus — inscrição e reação a eventos
  • Log — registros de mensagens para o console (info, erro, aviso, sucesso)

Exemplo Prático

if false then
require("definitions")
end

-- Sincroniza bomba d’água (Device 0) e sensor de fluxo (Sensor 0)
EventBus.subscribe(EventBus.EventType.DEVICE_STATE_CHANGE, 0, function(event)
local flowSensor = Sensor.get(0)

if flowSensor == nil then
Log.error(string.format("Erro: Sensor de fluxo com ID 0 não encontrado"))
return
end

-- Se o novo estado é 'ligado' (1), ativa e reseta o sensor
if event.value == 1 then
flowSensor:resume()
flowSensor:resetTimer()
Log.info(string.format("[%d us] Bomba LIGADA (Device %d): Sensor de fluxo ativado", event.timestamp, event.sourceId))
else
flowSensor:pause()
Log.info(string.format("[%d us] Bomba DESLIGADA (Device %d): Sensor de fluxo pausado", event.timestamp, event.sourceId))
end
end)

Log.success("Sincronização inicializada: Sensor 0 acompanha Device 0")

O que este script faz?

  • Toda vez que o atuador “bomba d’água” (ID 0) muda de estado:
    • Se ligar, retoma e reinicia o timer do sensor de fluxo
    • Se desligar, pausa o sensor
  • Exibe logs informativos para acompanhamento
  • Se o sensor não for encontrado, registra um erro

Dicas

  • Você pode acessar qualquer um dos dispositivos ou sensores definidos nas configurações alterando o ID em Device.get(ID) ou Sensor.get(ID)
  • Use outros eventos do EventBus para automatizações mais complexas
  • Consulte os métodos disponíveis de cada objeto nas próximas seções deste guia