WIP
All checks were successful
Build and deploy / build (push) Successful in 10m15s
Build and deploy / Deploy container (push) Has been skipped

This commit is contained in:
2025-10-19 07:21:57 +02:00
parent a0c5189ada
commit 1766a7b175
10 changed files with 536 additions and 392 deletions

48
config/helper.lua Normal file
View File

@@ -0,0 +1,48 @@
local utils = require("automation:utils")
local module = {}
--- @param topic string
--- @return string
function module.mqtt_z2m(topic)
return "zigbee2mqtt/" .. topic
end
--- @param topic string
--- @return string
function module.mqtt_automation(topic)
return "automation/" .. topic
end
--- @return fun(self: OnOffInterface, state: {state: boolean, power: number})
function module.auto_off()
local timeout = utils.Timeout.new()
return function(self, state)
if state.state and state.power < 100 then
timeout:start(3, function()
self:set_on(false)
end)
else
timeout:cancel()
end
end
end
--- @param duration number
--- @return fun(self: OnOffInterface, state: {state: boolean})
function module.off_timeout(duration)
local timeout = utils.Timeout.new()
return function(self, state)
if state.state then
timeout:start(duration, function()
self:set_on(false)
end)
else
timeout:cancel()
end
end
end
return module