local devices = require("automation:devices") local helper = require("config.helper") local module = {} --- @class OnPresence --- @field [integer] fun(light: boolean) local callbacks = {} --- @param callback fun(light: boolean) function module.add_callback(callback) table.insert(callbacks, callback) end --- @param _ DeviceInterface --- @param light boolean local function callback(_, light) for _, f in ipairs(callbacks) do f(light) end end --- @type LightSensor? module.device = nil --- @param mqtt_client AsyncClient function module.setup(mqtt_client) module.device = devices.LightSensor.new({ identifier = "living_light_sensor", topic = helper.mqtt_z2m("living/light"), client = mqtt_client, min = 22000, max = 23500, callback = callback, }) return { module.device, } end return module