Connect before sending the first messages

This commit is contained in:
Sven van Heugten 2025-01-06 21:02:04 +01:00
parent 248a79a57d
commit 1c3e14479a

View file

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