diff --git a/NightLight/Program.fs b/NightLight/Program.fs index 08739ca..eecfc4b 100644 --- a/NightLight/Program.fs +++ b/NightLight/Program.fs @@ -76,7 +76,7 @@ let mainAsync _ = let mqttClientOptions = MqttClientOptionsBuilder().WithTcpServer(server).Build() - let stateLock = new SemaphoreSlim(1, 1) + do! mqttClient.ConnectAsync mqttClientOptions |> Async.AwaitTask |> Async.Ignore let! initialState = let emptyNightLightStateMachine = NightLightStateMachine() @@ -84,6 +84,7 @@ let mainAsync _ = TimeChanged DateTime.Now |> handleEvent mqttClient logger emptyNightLightStateMachine + let stateLock = new SemaphoreSlim(1, 1) let mutable state = initialState mqttClient.add_ApplicationMessageReceivedAsync (fun e -> @@ -101,8 +102,6 @@ let mainAsync _ = |> Async.StartAsTask :> Task) - do! mqttClient.ConnectAsync mqttClientOptions |> Async.AwaitTask |> Async.Ignore - do! [ "zigbee2mqtt/bridge/event"; $"zigbee2mqtt/{remoteControlFriendlyName.Get}" ] |> Seq.map (fun topic -> async { return! mqttClient.SubscribeAsync topic |> Async.AwaitTask })