From 1b36e958e1b5a6e3e2bc543010bc5fa857a8857e Mon Sep 17 00:00:00 2001 From: root Date: Wed, 3 Jun 2026 02:21:21 -0600 Subject: [PATCH] Fix ArduinoJson temperature null handling --- .../xterra-controller/xterra-controller.ino | 28 ++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/firmware/esp32/xterra-controller/xterra-controller.ino b/firmware/esp32/xterra-controller/xterra-controller.ino index e6bed14..bb37dc4 100644 --- a/firmware/esp32/xterra-controller/xterra-controller.ino +++ b/firmware/esp32/xterra-controller/xterra-controller.ino @@ -32,10 +32,30 @@ void buildStatusDocument(JsonDocument& doc) { battery["temperature_f"] = batteryTemp; JsonObject temps = doc.createNestedObject("temps"); - temps["fridge_zone_1"] = sensors.fridgeZone1Online ? sensors.fridgeZone1 : nullptr; - temps["fridge_zone_2"] = sensors.fridgeZone2Online ? sensors.fridgeZone2 : nullptr; - temps["rear_seat"] = sensors.rearSeatOnline ? sensors.rearSeat : nullptr; - temps["outside"] = sensors.outsideAirOnline ? sensors.outsideAir : nullptr; + + if (sensors.fridgeZone1Online) { + temps["fridge_zone_1"] = sensors.fridgeZone1; + } else { + temps["fridge_zone_1"] = nullptr; + } + + if (sensors.fridgeZone2Online) { + temps["fridge_zone_2"] = sensors.fridgeZone2; + } else { + temps["fridge_zone_2"] = nullptr; + } + + if (sensors.rearSeatOnline) { + temps["rear_seat"] = sensors.rearSeat; + } else { + temps["rear_seat"] = nullptr; + } + + if (sensors.outsideAirOnline) { + temps["outside"] = sensors.outsideAir; + } else { + temps["outside"] = nullptr; + } JsonObject sensorHealth = doc.createNestedObject("sensor_health"); sensorHealth["fridge_zone_1"] = sensors.fridgeZone1Online;