From c6775920f59b940cfe6fdd2b020c99875054bf95 Mon Sep 17 00:00:00 2001 From: Robert Hillis Date: Mon, 26 Jun 2023 16:39:10 -0400 Subject: [PATCH] Tweak Dremel 3D Printer sensors (#94552) --- .../components/dremel_3d_printer/sensor.py | 21 +++++++------------ .../components/dremel_3d_printer/strings.json | 4 ++-- .../dremel_3d_printer/test_sensor.py | 15 ++++++------- 3 files changed, 18 insertions(+), 22 deletions(-) diff --git a/homeassistant/components/dremel_3d_printer/sensor.py b/homeassistant/components/dremel_3d_printer/sensor.py index 71e60dc04fc..660e7a90487 100644 --- a/homeassistant/components/dremel_3d_printer/sensor.py +++ b/homeassistant/components/dremel_3d_printer/sensor.py @@ -56,11 +56,11 @@ SENSOR_TYPES: tuple[Dremel3DPrinterSensorEntityDescription, ...] = ( ), Dremel3DPrinterSensorEntityDescription( key="remaining_time", - translation_key="remaining_time", + translation_key="completion_time", device_class=SensorDeviceClass.TIMESTAMP, available_fn=lambda api, key: api.get_job_status()[key] > 0, value_fn=ignore_variance( - lambda api, key: utcnow() - timedelta(seconds=api.get_job_status()[key]), + lambda api, key: utcnow() + timedelta(seconds=api.get_job_status()[key]), timedelta(minutes=2), ), ), @@ -170,26 +170,22 @@ SENSOR_TYPES: tuple[Dremel3DPrinterSensorEntityDescription, ...] = ( Dremel3DPrinterSensorEntityDescription( key="elapsed_time", translation_key="elapsed_time", - device_class=SensorDeviceClass.TIMESTAMP, + native_unit_of_measurement=UnitOfTime.SECONDS, + device_class=SensorDeviceClass.DURATION, entity_category=EntityCategory.DIAGNOSTIC, entity_registry_enabled_default=False, available_fn=lambda api, _: api.get_printing_status() == "building", - value_fn=ignore_variance( - lambda api, key: utcnow() - timedelta(seconds=api.get_job_status()[key]), - timedelta(minutes=2), - ), + value_fn=lambda api, key: api.get_job_status()[key], ), Dremel3DPrinterSensorEntityDescription( key="estimated_total_time", translation_key="estimated_total_time", - device_class=SensorDeviceClass.TIMESTAMP, + native_unit_of_measurement=UnitOfTime.SECONDS, + device_class=SensorDeviceClass.DURATION, entity_category=EntityCategory.DIAGNOSTIC, entity_registry_enabled_default=False, available_fn=lambda api, key: api.get_job_status()[key] > 0, - value_fn=ignore_variance( - lambda api, key: utcnow() - timedelta(seconds=api.get_job_status()[key]), - timedelta(minutes=2), - ), + value_fn=lambda api, key: api.get_job_status()[key], ), Dremel3DPrinterSensorEntityDescription( key="job_status", @@ -245,7 +241,6 @@ SENSOR_TYPES: tuple[Dremel3DPrinterSensorEntityDescription, ...] = ( translation_key="hours_used", icon="mdi:clock", native_unit_of_measurement=UnitOfTime.HOURS, - device_class=SensorDeviceClass.DURATION, entity_category=EntityCategory.DIAGNOSTIC, entity_registry_enabled_default=False, value_fn=lambda api, key: api.get_printer_info()[key], diff --git a/homeassistant/components/dremel_3d_printer/strings.json b/homeassistant/components/dremel_3d_printer/strings.json index 08d2a001d2d..77a9eac7a13 100644 --- a/homeassistant/components/dremel_3d_printer/strings.json +++ b/homeassistant/components/dremel_3d_printer/strings.json @@ -20,8 +20,8 @@ "job_phase": { "name": "Job phase" }, - "remaining_time": { - "name": "Remaining time" + "completion_time": { + "name": "Completion time" }, "progress": { "name": "Progress" diff --git a/tests/components/dremel_3d_printer/test_sensor.py b/tests/components/dremel_3d_printer/test_sensor.py index b38a5feff36..49d66fe1e61 100644 --- a/tests/components/dremel_3d_printer/test_sensor.py +++ b/tests/components/dremel_3d_printer/test_sensor.py @@ -38,8 +38,8 @@ async def test_sensors( assert await async_setup_component(hass, DOMAIN, {}) state = hass.states.get("sensor.dremel_3d45_job_phase") assert state.state == "building" - state = hass.states.get("sensor.dremel_3d45_remaining_time") - assert state.state == "2023-05-31T12:27:44+00:00" + state = hass.states.get("sensor.dremel_3d45_completion_time") + assert state.state == "2023-05-31T14:32:16+00:00" assert state.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.TIMESTAMP state = hass.states.get("sensor.dremel_3d45_progress") assert state.state == "13.9" @@ -85,11 +85,13 @@ async def test_sensors( state = hass.states.get("sensor.dremel_3d45_filament") assert state.state == "ECO-ABS" state = hass.states.get("sensor.dremel_3d45_elapsed_time") - assert state.state == "2023-05-31T13:30:00+00:00" - assert state.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.TIMESTAMP + assert state.state == "0" + assert state.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.DURATION + assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == UnitOfTime.SECONDS state = hass.states.get("sensor.dremel_3d45_estimated_total_time") - assert state.state == "2023-05-31T12:17:40+00:00" - assert state.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.TIMESTAMP + assert state.state == "4340" + assert state.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.DURATION + assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == UnitOfTime.SECONDS state = hass.states.get("sensor.dremel_3d45_job_status") assert state.state == "building" state = hass.states.get("sensor.dremel_3d45_job_name") @@ -107,4 +109,3 @@ async def test_sensors( state = hass.states.get("sensor.dremel_3d45_hours_used") assert state.state == "7" assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) is UnitOfTime.HOURS - assert state.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.DURATION