From 73218bb9b9a81aa6ae0ae579a149a5a0636ce2d0 Mon Sep 17 00:00:00 2001 From: Dreaded_X Date: Fri, 22 Aug 2025 03:07:55 +0200 Subject: [PATCH] Store brightness in f32 instead of f64 --- automation_devices/src/zigbee/light.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/automation_devices/src/zigbee/light.rs b/automation_devices/src/zigbee/light.rs index e47bf1a..53ddfa9 100644 --- a/automation_devices/src/zigbee/light.rs +++ b/automation_devices/src/zigbee/light.rs @@ -52,7 +52,7 @@ impl LightState for StateOnOff {} pub struct StateBrightness { #[serde(deserialize_with = "state_deserializer")] state: bool, - brightness: f64, + brightness: f32, } impl LightState for StateBrightness {} @@ -255,7 +255,7 @@ where } } -const FACTOR: f64 = 30.0; +const FACTOR: f32 = 30.0; #[async_trait] impl Brightness for Light @@ -267,14 +267,14 @@ where let state = self.state().await; let state: StateBrightness = state.deref().clone().into(); let brightness = - 100.0 * f64::log10(state.brightness / FACTOR + 1.0) / f64::log10(254.0 / FACTOR + 1.0); + 100.0 * f32::log10(state.brightness / FACTOR + 1.0) / f32::log10(254.0 / FACTOR + 1.0); Ok(brightness.clamp(0.0, 100.0).round() as u8) } async fn set_brightness(&self, brightness: u8) -> Result<(), ErrorCode> { let brightness = - FACTOR * ((FACTOR / (FACTOR + 254.0)).powf(-(brightness as f64) / 100.0) - 1.0); + FACTOR * ((FACTOR / (FACTOR + 254.0)).powf(-(brightness as f32) / 100.0) - 1.0); let message = json!({ "brightness": brightness.clamp(0.0, 254.0).round() as u8