From 7ccc523c43ff87617dc4fb034df2d728b8bff5e7 Mon Sep 17 00:00:00 2001 From: Sven van Heugten Date: Sat, 3 Jan 2026 18:33:29 +0100 Subject: [PATCH] Introduce the handleEvent function in Program We'll add a second reference to it later. --- NightLight/Program.fs | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/NightLight/Program.fs b/NightLight/Program.fs index cc22b9d..c8f3c85 100644 --- a/NightLight/Program.fs +++ b/NightLight/Program.fs @@ -35,22 +35,24 @@ let private publishZigbeeCommands (mqttClient: IMqttClient) (logger: ILogger) (c |> Async.Ignore } +let private handleEvent (mqttClient: IMqttClient) (logger: ILogger) (partOfDay: PartOfDay) (event: Event) = + let commandsResult = event |> onEventReceived partOfDay + + match commandsResult with + | Ok commands -> publishZigbeeCommands mqttClient logger commands + | Error UnknownType -> async.Return() + | Error e -> + logger.LogError("Error {Error} while {Event}", e, event) + async.Return() + let private onMqttMessageReceived (mqttClient: IMqttClient) (logger: ILogger) (message: MqttApplicationMessage) = let payload = message.Payload let decodedPayload = Encoding.UTF8.GetString(&payload) logger.LogInformation("Received message with payload {Payload}", decodedPayload) - let commandsResult = - ReceivedZigbeeEvent decodedPayload - |> onEventReceived (getPartOfDay DateTime.Now) - - match commandsResult with - | Ok commands -> publishZigbeeCommands mqttClient logger commands - | Error UnknownType -> async.Return() - | Error e -> - logger.LogError("Error {Error} while processing {Payload}", e, payload) - async.Return() + ReceivedZigbeeEvent decodedPayload + |> handleEvent mqttClient logger (getPartOfDay DateTime.Now) [] let mainAsync _ =