Introduce decodeMqttApplicationMessage

This commit is contained in:
Sven van Heugten 2026-01-03 19:37:31 +01:00
parent 27c6646237
commit 7ea6e49001

View file

@ -47,13 +47,12 @@ let private handleEvent (mqttClient: IMqttClient) (logger: ILogger) (state: Stat
logger.LogError("Error {Error} while {Event}", e, event) logger.LogError("Error {Error} while {Event}", e, event)
async.Return state async.Return state
let private mqttMessageToReceivedZigbeeEvent (message: MqttApplicationMessage) = let private decodeMqttApplicationMessage (message: MqttApplicationMessage) =
let payload = message.Payload let payload = message.Payload
let decodedPayload = Encoding.UTF8.GetString(&payload) let decodedPayload = Encoding.UTF8.GetString(&payload)
ReceivedZigbeeEvent { Topic = message.Topic
{ Topic = message.Topic Payload = decodedPayload }
Payload = decodedPayload }
[<EntryPoint>] [<EntryPoint>]
let mainAsync _ = let mainAsync _ =
@ -82,7 +81,7 @@ let mainAsync _ =
mqttClient.add_ApplicationMessageReceivedAsync (fun e -> mqttClient.add_ApplicationMessageReceivedAsync (fun e ->
async { async {
let event = mqttMessageToReceivedZigbeeEvent e.ApplicationMessage let event = ReceivedZigbeeEvent <| decodeMqttApplicationMessage e.ApplicationMessage
do! stateLock.WaitAsync() |> Async.AwaitTask do! stateLock.WaitAsync() |> Async.AwaitTask