From 7311b1cb81491241b40918379b7330d01e6a96e3 Mon Sep 17 00:00:00 2001 From: Erik Date: Wed, 4 May 2022 13:23:05 +0200 Subject: [PATCH 1/4] Fix meater sensor --- homeassistant/components/meater/sensor.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/meater/sensor.py b/homeassistant/components/meater/sensor.py index 70582f39d9ed39..042652ee0317be 100644 --- a/homeassistant/components/meater/sensor.py +++ b/homeassistant/components/meater/sensor.py @@ -108,7 +108,8 @@ def _remaining_time_to_timestamp(probe: MeaterProbe) -> datetime | None: available=lambda probe: probe is not None and probe.cook is not None, value=lambda probe: probe.cook.peak_temperature if probe.cook else None, ), - # Time since the start of cook in seconds. Default: 0. + # Remaining time in seconds. When unknown/calculating default is used. Default: -1 + # Exposed as a TIMESTAMP sensor where the timestamp is current time + remaining time. MeaterSensorEntityDescription( key="cook_time_remaining", device_class=SensorDeviceClass.TIMESTAMP, @@ -116,7 +117,8 @@ def _remaining_time_to_timestamp(probe: MeaterProbe) -> datetime | None: available=lambda probe: probe is not None and probe.cook is not None, value=_remaining_time_to_timestamp, ), - # Remaining time in seconds. When unknown/calculating default is used. Default: -1 + # Time since the start of cook in seconds. Default: 0. Exposed as a TIMESTAMP sensor + # where the timestamp is current time - elapsed time. MeaterSensorEntityDescription( key="cook_time_elapsed", device_class=SensorDeviceClass.TIMESTAMP, @@ -147,7 +149,7 @@ def async_update_data(): # Add entities for temperature probes which we've not yet seen for dev in devices: - if dev in known_probes: + if dev.id in known_probes: continue entities.extend( @@ -156,7 +158,7 @@ def async_update_data(): for sensor_description in SENSOR_TYPES ] ) - known_probes.add(dev) + known_probes.add(dev.id) async_add_entities(entities) From 629557e0fc4052d43a3975231ab15d6d8ed36299 Mon Sep 17 00:00:00 2001 From: Erik Date: Wed, 4 May 2022 13:38:54 +0200 Subject: [PATCH 2/4] Cleanup MeaterEntityDescription --- homeassistant/components/meater/sensor.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/homeassistant/components/meater/sensor.py b/homeassistant/components/meater/sensor.py index 042652ee0317be..28f3654ed78d05 100644 --- a/homeassistant/components/meater/sensor.py +++ b/homeassistant/components/meater/sensor.py @@ -27,15 +27,20 @@ @dataclass -class MeaterSensorEntityDescription(SensorEntityDescription): - """Describes meater sensor entity.""" +class MeaterSensorEntityDescriptionMixin: + """Mixin for MeaterSensorEntityDescription.""" - available: Callable[ - [MeaterProbe | None], bool | type[NotImplementedError] - ] = lambda x: NotImplementedError + available: Callable[[MeaterProbe | None], bool | type[NotImplementedError]] value: Callable[ [MeaterProbe], datetime | float | str | None | type[NotImplementedError] - ] = lambda x: NotImplementedError + ] + + +@dataclass +class MeaterSensorEntityDescription( + SensorEntityDescription, MeaterSensorEntityDescriptionMixin +): + """Describes meater sensor entity.""" def _elapsed_time_to_timestamp(probe: MeaterProbe) -> datetime | None: From dd614808ddfe5c0f63a5c1767dd55949307c86f4 Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Wed, 4 May 2022 15:38:30 +0200 Subject: [PATCH 3/4] Apply suggestions from code review Co-authored-by: Martin Hjelmare --- homeassistant/components/meater/sensor.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/meater/sensor.py b/homeassistant/components/meater/sensor.py index 28f3654ed78d05..6555fcfe3c7da6 100644 --- a/homeassistant/components/meater/sensor.py +++ b/homeassistant/components/meater/sensor.py @@ -30,9 +30,9 @@ class MeaterSensorEntityDescriptionMixin: """Mixin for MeaterSensorEntityDescription.""" - available: Callable[[MeaterProbe | None], bool | type[NotImplementedError]] + available: Callable[[MeaterProbe | None], bool] value: Callable[ - [MeaterProbe], datetime | float | str | None | type[NotImplementedError] + [MeaterProbe], datetime | float | str | None ] From a0b13de1e2a27a0b3673a5f844351743eb1e5f87 Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Wed, 4 May 2022 15:42:02 +0200 Subject: [PATCH 4/4] Update sensor.py --- homeassistant/components/meater/sensor.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/homeassistant/components/meater/sensor.py b/homeassistant/components/meater/sensor.py index 6555fcfe3c7da6..17e8db9e473ac2 100644 --- a/homeassistant/components/meater/sensor.py +++ b/homeassistant/components/meater/sensor.py @@ -31,9 +31,7 @@ class MeaterSensorEntityDescriptionMixin: """Mixin for MeaterSensorEntityDescription.""" available: Callable[[MeaterProbe | None], bool] - value: Callable[ - [MeaterProbe], datetime | float | str | None - ] + value: Callable[[MeaterProbe], datetime | float | str | None] @dataclass