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 seuconfig.iniDevice— acesso e controle dos atuadoresEventBus— inscrição e reação a eventosLog— 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)ouSensor.get(ID) - Use outros eventos do
EventBuspara automatizações mais complexas - Consulte os métodos disponíveis de cada objeto nas próximas seções deste guia