From 0b2d174eb9adf47ee3d63b7dc0e148b4ab3437ae Mon Sep 17 00:00:00 2001 From: Jeff Koenig Date: Tue, 19 Sep 2023 22:25:04 -0400 Subject: [PATCH 1/3] feat: add speed factor sensor --- custom_components/moonraker/sensor.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/custom_components/moonraker/sensor.py b/custom_components/moonraker/sensor.py index 132f47d..5aec860 100755 --- a/custom_components/moonraker/sensor.py +++ b/custom_components/moonraker/sensor.py @@ -395,6 +395,18 @@ async def async_setup_optional_sensors(coordinator, entry, async_add_entities): unit=PERCENTAGE, ) sensors.append(desc) + elif obj == "gcode_move": + desc = MoonrakerSensorDescription( + key="speed_factor", + name="Speed factor", + value_fn=lambda sensor: round( + sensor.coordinator.data["status"]["gcode_move"]["speed_factor"] * 100, 2 + ), + subscriptions=[("gcode_move", "speed_factor")], + icon="mdi:speedometer", + unit=PERCENTAGE, + ) + sensors.append(desc) coordinator.load_sensor_data(sensors) await coordinator.async_refresh() From 18488980877b7cdbd71c47d91a7fa351ed8b2244 Mon Sep 17 00:00:00 2001 From: Jeff Koenig Date: Fri, 17 Nov 2023 22:25:49 -0500 Subject: [PATCH 2/3] fix: tests --- tests/conftest.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/conftest.py b/tests/conftest.py index 3e06889..8688455 100755 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -138,6 +138,9 @@ def get_data_fixture(): "output_pin pwm": { "value": 0.5, }, + "gcode_move": { + "speed_factor": 2.0, + } }, "printer.info": { "result": { From 6231bd3d49108aca872a67c882b574769183b224 Mon Sep 17 00:00:00 2001 From: Jeff Koenig Date: Sat, 18 Nov 2023 11:00:00 -0500 Subject: [PATCH 3/3] chore: update fixture to test sensor and correct linting --- custom_components/moonraker/sensor.py | 4 +++- tests/conftest.py | 2 +- tests/test_sensor.py | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/custom_components/moonraker/sensor.py b/custom_components/moonraker/sensor.py index 5aec860..6e2c7a8 100755 --- a/custom_components/moonraker/sensor.py +++ b/custom_components/moonraker/sensor.py @@ -400,7 +400,9 @@ async def async_setup_optional_sensors(coordinator, entry, async_add_entities): key="speed_factor", name="Speed factor", value_fn=lambda sensor: round( - sensor.coordinator.data["status"]["gcode_move"]["speed_factor"] * 100, 2 + sensor.coordinator.data["status"]["gcode_move"]["speed_factor"] + * 100, + 2, ), subscriptions=[("gcode_move", "speed_factor")], icon="mdi:speedometer", diff --git a/tests/conftest.py b/tests/conftest.py index 8688455..ca05534 100755 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -140,7 +140,7 @@ def get_data_fixture(): }, "gcode_move": { "speed_factor": 2.0, - } + }, }, "printer.info": { "result": { diff --git a/tests/test_sensor.py b/tests/test_sensor.py index 18b20c0..5a3c2d5 100755 --- a/tests/test_sensor.py +++ b/tests/test_sensor.py @@ -105,6 +105,7 @@ async def test_sensor_services_update(hass, get_data): ("mainsail_toolhead_position_z", "10.2"), ("mainsail_slicer_print_duration_estimate", "8232.0"), ("mainsail_object_height", "62.6"), + ("mainsail_speed_factor", "200.0"), ], ) async def test_sensors(