From df05898a658a58251dc18237b5a1eea55d9a55a2 Mon Sep 17 00:00:00 2001 From: Michael Housh Date: Wed, 20 Nov 2024 15:07:33 -0500 Subject: [PATCH] fix: Fixes dewpoint and enthalpy not converting to imperial units. --- Sources/Models/TemperatureAndHumiditySensor.swift | 7 +++++-- Sources/SensorsService/SensorsService.swift | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Sources/Models/TemperatureAndHumiditySensor.swift b/Sources/Models/TemperatureAndHumiditySensor.swift index 77dae47..a68e65d 100644 --- a/Sources/Models/TemperatureAndHumiditySensor.swift +++ b/Sources/Models/TemperatureAndHumiditySensor.swift @@ -60,7 +60,10 @@ public struct TemperatureAndHumiditySensor: Identifiable, Sendable { !temperature.value.isNaN, !humidity.value.isNaN else { return nil } - return try? await psychrometrics.dewPoint(.dryBulb(temperature, relativeHumidity: humidity)) + return try? await psychrometrics.dewPoint(.dryBulb( + .fahrenheit(temperature.fahrenheit), + relativeHumidity: humidity + )) } } @@ -73,7 +76,7 @@ public struct TemperatureAndHumiditySensor: Identifiable, Sendable { !humidity.value.isNaN else { return nil } return try? await psychrometrics.enthalpy.moistAir( - .dryBulb(temperature, relativeHumidity: humidity, altitude: altitude) + .dryBulb(.fahrenheit(temperature.fahrenheit), relativeHumidity: humidity, altitude: altitude, units: .imperial) ) } } diff --git a/Sources/SensorsService/SensorsService.swift b/Sources/SensorsService/SensorsService.swift index 460a96e..0f97755 100644 --- a/Sources/SensorsService/SensorsService.swift +++ b/Sources/SensorsService/SensorsService.swift @@ -135,7 +135,7 @@ public actor SensorsService: Service { private func publishUpdates() async throws { for sensor in sensors.filter(\.needsProcessed) { - try await publish(sensor.dewPoint?.value, to: sensor.topics.dewPoint) + try await publish(sensor.dewPoint?.fahrenheit, to: sensor.topics.dewPoint) try await publish(sensor.enthalpy?.value, to: sensor.topics.enthalpy) try sensors.hasProcessed(sensor) } @@ -207,6 +207,6 @@ extension Humidity: BufferInitalizable { extension Temperature: BufferInitalizable { init?(buffer: ByteBuffer) { guard let value = Double(buffer: buffer) else { return nil } - self.init(value) + self.init(value, units: .celsius) } }