From a42fd2aaeb5de513c7f4d66eec67429b1688d570 Mon Sep 17 00:00:00 2001 From: Marc-Olivier Arsenault Date: Tue, 23 Jan 2024 08:46:50 -0500 Subject: [PATCH] Missing float data (#262) * default bed and extruder temp * add test --- custom_components/moonraker/sensor.py | 8 ++++---- tests/test_sensor.py | 12 ++++++++++++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/custom_components/moonraker/sensor.py b/custom_components/moonraker/sensor.py index e6204ec..b945afc 100755 --- a/custom_components/moonraker/sensor.py +++ b/custom_components/moonraker/sensor.py @@ -81,7 +81,7 @@ class MoonrakerSensorDescription(SensorEntityDescription): key="extruder_temp", name="Extruder Temperature", value_fn=lambda sensor: float( - sensor.coordinator.data["status"]["extruder"]["temperature"] + sensor.coordinator.data["status"]["extruder"]["temperature"] or 0.0 ), subscriptions=[("extruder", "temperature")], icon="mdi:printer-3d-nozzle-heat", @@ -91,7 +91,7 @@ class MoonrakerSensorDescription(SensorEntityDescription): key="extruder_target", name="Extruder Target", value_fn=lambda sensor: float( - sensor.coordinator.data["status"]["extruder"]["target"] + sensor.coordinator.data["status"]["extruder"]["target"] or 0.0 ), subscriptions=[("extruder", "target")], icon="mdi:printer-3d-nozzle-heat", @@ -101,7 +101,7 @@ class MoonrakerSensorDescription(SensorEntityDescription): key="bed_target", name="Bed Target", value_fn=lambda sensor: float( - sensor.coordinator.data["status"]["heater_bed"]["target"] + sensor.coordinator.data["status"]["heater_bed"]["target"] or 0.0 ), subscriptions=[("heater_bed", "target")], icon="mdi:radiator", @@ -111,7 +111,7 @@ class MoonrakerSensorDescription(SensorEntityDescription): key="bed_temp", name="Bed Temperature", value_fn=lambda sensor: float( - sensor.coordinator.data["status"]["heater_bed"]["temperature"] + sensor.coordinator.data["status"]["heater_bed"]["temperature"] or 0.0 ), subscriptions=[("heater_bed", "temperature")], icon="mdi:radiator", diff --git a/tests/test_sensor.py b/tests/test_sensor.py index 33e1221..e6935e7 100755 --- a/tests/test_sensor.py +++ b/tests/test_sensor.py @@ -209,6 +209,18 @@ async def test_opt_sensor_missing(hass, get_data, get_printer_objects_list): assert state is None +async def test_missing_heater_bed(hass, get_data): + """test.""" + get_data["status"]["heater_bed"]["target"] = None + + config_entry = MockConfigEntry(domain=DOMAIN, data=MOCK_CONFIG, entry_id="test") + config_entry.add_to_hass(hass) + assert await async_setup_entry(hass, config_entry) + await hass.async_block_till_done() + + assert hass.states.get("sensor.mainsail_bed_target").state == "0.0" + + async def test_eta(hass): """test.""" config_entry = MockConfigEntry(domain=DOMAIN, data=MOCK_CONFIG, entry_id="test")