From 118dc03fdcaab5fde3ac0916b77f61c6e4d0fa3e Mon Sep 17 00:00:00 2001 From: Sven van Heugten Date: Sat, 3 Jan 2026 18:20:47 +0100 Subject: [PATCH] Transform onZigbeeEventReceived to onEventReceived We'll add different events later. --- NightLight.Core/Core.fs | 22 +++++++++++++--------- NightLight/Program.fs | 3 ++- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/NightLight.Core/Core.fs b/NightLight.Core/Core.fs index 742b43d..e8a4396 100644 --- a/NightLight.Core/Core.fs +++ b/NightLight.Core/Core.fs @@ -17,18 +17,22 @@ let internal generateZigbeeCommandToFixLight partOfDay light = generateZigbeeCommand light.FriendlyName color brightness -let onZigbeeEventReceived (partOfDay: PartOfDay) (decodedPayload: string) = +type Event = ReceivedZigbeeEvent of payload: string + +let onEventReceived (partOfDay: PartOfDay) (event: Event) = result { - let! zigbeeEvent = parseZigbeeEvent decodedPayload + match event with + | ReceivedZigbeeEvent payload -> + let! zigbeeEvent = parseZigbeeEvent payload - return - match zigbeeEvent with - | DeviceAnnounce friendlyName -> - let maybeLight = tryFindLight friendlyName + return + match zigbeeEvent with + | DeviceAnnounce friendlyName -> + let maybeLight = tryFindLight friendlyName - match maybeLight with - | Some light -> generateZigbeeCommandToFixLight partOfDay light |> Seq.singleton - | None -> Seq.empty + match maybeLight with + | Some light -> generateZigbeeCommandToFixLight partOfDay light |> Seq.singleton + | None -> Seq.empty } let onPartOfDayChanged (partOfDay: PartOfDay) = diff --git a/NightLight/Program.fs b/NightLight/Program.fs index 9d390d2..cc22b9d 100644 --- a/NightLight/Program.fs +++ b/NightLight/Program.fs @@ -42,7 +42,8 @@ let private onMqttMessageReceived (mqttClient: IMqttClient) (logger: ILogger) (m logger.LogInformation("Received message with payload {Payload}", decodedPayload) let commandsResult = - decodedPayload |> onZigbeeEventReceived (getPartOfDay DateTime.Now) + ReceivedZigbeeEvent decodedPayload + |> onEventReceived (getPartOfDay DateTime.Now) match commandsResult with | Ok commands -> publishZigbeeCommands mqttClient logger commands