Turn PartOfDayChanged into an event

This commit is contained in:
Sven van Heugten 2026-01-03 18:34:08 +01:00
parent 7ccc523c43
commit eebd72f40c
2 changed files with 6 additions and 5 deletions

View file

@ -17,7 +17,9 @@ let internal generateZigbeeCommandToFixLight partOfDay light =
generateZigbeeCommand light.FriendlyName color brightness generateZigbeeCommand light.FriendlyName color brightness
type Event = ReceivedZigbeeEvent of payload: string type Event =
| ReceivedZigbeeEvent of payload: string
| PartOfDayChanged
let onEventReceived (partOfDay: PartOfDay) (event: Event) = let onEventReceived (partOfDay: PartOfDay) (event: Event) =
result { result {
@ -33,7 +35,5 @@ let onEventReceived (partOfDay: PartOfDay) (event: Event) =
match maybeLight with match maybeLight with
| Some light -> generateZigbeeCommandToFixLight partOfDay light |> Seq.singleton | Some light -> generateZigbeeCommandToFixLight partOfDay light |> Seq.singleton
| None -> Seq.empty | None -> Seq.empty
| PartOfDayChanged -> return lights |> Seq.map (generateZigbeeCommandToFixLight partOfDay)
} }
let onPartOfDayChanged (partOfDay: PartOfDay) =
lights |> Seq.map (generateZigbeeCommandToFixLight partOfDay)

View file

@ -94,7 +94,8 @@ let mainAsync _ =
let currentPartOfDay = getPartOfDay DateTime.Now let currentPartOfDay = getPartOfDay DateTime.Now
if previousPartOfDay <> Some currentPartOfDay then if previousPartOfDay <> Some currentPartOfDay then
do! onPartOfDayChanged currentPartOfDay |> publishZigbeeCommands mqttClient logger do! PartOfDayChanged |> handleEvent mqttClient logger currentPartOfDay
previousPartOfDay <- Some currentPartOfDay previousPartOfDay <- Some currentPartOfDay
do! Async.Sleep 10_000 do! Async.Sleep 10_000