From 3d47e80de6d37dfe1a8b9cbf56433f290247e1ae Mon Sep 17 00:00:00 2001 From: pyr0ball Date: Sun, 12 Jul 2026 00:57:28 -0700 Subject: [PATCH] fix: convert dial Fahrenheit input to Celsius before climate.control The dual-arc setpoint dial uses a Fahrenheit-range scale (60-90) to match the Lennox reference UI, but climate.control expects Celsius throughout this codebase. Dragging the dial was sending raw Fahrenheit values straight into target_temperature_low/high, which would have commanded wildly wrong setpoints on live hardware. Also fixes a stale comment pointing at the wrong file after the panel.yaml extraction. --- firmware/components/display-classic.yaml | 4 ++-- firmware/components/sensors.yaml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/firmware/components/display-classic.yaml b/firmware/components/display-classic.yaml index 851e397..8acd8dc 100644 --- a/firmware/components/display-classic.yaml +++ b/firmware/components/display-classic.yaml @@ -108,7 +108,7 @@ lvgl: then: - climate.control: id: main_thermostat - target_temperature_low: !lambda "return x;" + target_temperature_low: !lambda "return (x - 32.0f) * 5.0f / 9.0f;" - lvgl.label.update: id: heat_to_value_label text: @@ -138,7 +138,7 @@ lvgl: then: - climate.control: id: main_thermostat - target_temperature_high: !lambda "return x;" + target_temperature_high: !lambda "return (x - 32.0f) * 5.0f / 9.0f;" - lvgl.label.update: id: cool_to_value_label text: diff --git a/firmware/components/sensors.yaml b/firmware/components/sensors.yaml index a78a4d3..99bb40b 100644 --- a/firmware/components/sensors.yaml +++ b/firmware/components/sensors.yaml @@ -1,6 +1,6 @@ sensor: - platform: bme280_i2c - i2c_id: i2c_bus # shared bus declared in display.yaml — GPIO8 SDA / GPIO9 SCL + i2c_id: i2c_bus # shared bus declared in panel.yaml — GPIO8 SDA / GPIO9 SCL address: 0x76 # BME280 default; try 0x77 if SDO is pulled high update_interval: 30s temperature: