diff --git a/NightLight.Core/Core.fs b/NightLight.Core/Core.fs index e8a4396..b78a026 100644 --- a/NightLight.Core/Core.fs +++ b/NightLight.Core/Core.fs @@ -17,7 +17,9 @@ let internal generateZigbeeCommandToFixLight partOfDay light = generateZigbeeCommand light.FriendlyName color brightness -type Event = ReceivedZigbeeEvent of payload: string +type Event = + | ReceivedZigbeeEvent of payload: string + | PartOfDayChanged let onEventReceived (partOfDay: PartOfDay) (event: Event) = result { @@ -33,7 +35,5 @@ let onEventReceived (partOfDay: PartOfDay) (event: Event) = match maybeLight with | Some light -> generateZigbeeCommandToFixLight partOfDay light |> Seq.singleton | None -> Seq.empty + | PartOfDayChanged -> return lights |> Seq.map (generateZigbeeCommandToFixLight partOfDay) } - -let onPartOfDayChanged (partOfDay: PartOfDay) = - lights |> Seq.map (generateZigbeeCommandToFixLight partOfDay) diff --git a/NightLight/Program.fs b/NightLight/Program.fs index c8f3c85..783678f 100644 --- a/NightLight/Program.fs +++ b/NightLight/Program.fs @@ -94,7 +94,8 @@ let mainAsync _ = let currentPartOfDay = getPartOfDay DateTime.Now if previousPartOfDay <> Some currentPartOfDay then - do! onPartOfDayChanged currentPartOfDay |> publishZigbeeCommands mqttClient logger + do! PartOfDayChanged |> handleEvent mqttClient logger currentPartOfDay + previousPartOfDay <- Some currentPartOfDay do! Async.Sleep 10_000