mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 21:27:38 +00:00
Handle missing attributes in meater objects (#76072)
This commit is contained in:
parent
d69d7a8761
commit
404d530b5f
@ -43,14 +43,18 @@ class MeaterSensorEntityDescription(
|
|||||||
|
|
||||||
def _elapsed_time_to_timestamp(probe: MeaterProbe) -> datetime | None:
|
def _elapsed_time_to_timestamp(probe: MeaterProbe) -> datetime | None:
|
||||||
"""Convert elapsed time to timestamp."""
|
"""Convert elapsed time to timestamp."""
|
||||||
if not probe.cook:
|
if not probe.cook or not hasattr(probe.cook, "time_elapsed"):
|
||||||
return None
|
return None
|
||||||
return dt_util.utcnow() - timedelta(seconds=probe.cook.time_elapsed)
|
return dt_util.utcnow() - timedelta(seconds=probe.cook.time_elapsed)
|
||||||
|
|
||||||
|
|
||||||
def _remaining_time_to_timestamp(probe: MeaterProbe) -> datetime | None:
|
def _remaining_time_to_timestamp(probe: MeaterProbe) -> datetime | None:
|
||||||
"""Convert remaining time to timestamp."""
|
"""Convert remaining time to timestamp."""
|
||||||
if not probe.cook or probe.cook.time_remaining < 0:
|
if (
|
||||||
|
not probe.cook
|
||||||
|
or not hasattr(probe.cook, "time_remaining")
|
||||||
|
or probe.cook.time_remaining < 0
|
||||||
|
):
|
||||||
return None
|
return None
|
||||||
return dt_util.utcnow() + timedelta(seconds=probe.cook.time_remaining)
|
return dt_util.utcnow() + timedelta(seconds=probe.cook.time_remaining)
|
||||||
|
|
||||||
@ -99,7 +103,9 @@ SENSOR_TYPES = (
|
|||||||
native_unit_of_measurement=TEMP_CELSIUS,
|
native_unit_of_measurement=TEMP_CELSIUS,
|
||||||
state_class=SensorStateClass.MEASUREMENT,
|
state_class=SensorStateClass.MEASUREMENT,
|
||||||
available=lambda probe: probe is not None and probe.cook is not None,
|
available=lambda probe: probe is not None and probe.cook is not None,
|
||||||
value=lambda probe: probe.cook.target_temperature if probe.cook else None,
|
value=lambda probe: probe.cook.target_temperature
|
||||||
|
if probe.cook and hasattr(probe.cook, "target_temperature")
|
||||||
|
else None,
|
||||||
),
|
),
|
||||||
# Peak temperature
|
# Peak temperature
|
||||||
MeaterSensorEntityDescription(
|
MeaterSensorEntityDescription(
|
||||||
@ -109,7 +115,9 @@ SENSOR_TYPES = (
|
|||||||
native_unit_of_measurement=TEMP_CELSIUS,
|
native_unit_of_measurement=TEMP_CELSIUS,
|
||||||
state_class=SensorStateClass.MEASUREMENT,
|
state_class=SensorStateClass.MEASUREMENT,
|
||||||
available=lambda probe: probe is not None and probe.cook is not 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,
|
value=lambda probe: probe.cook.peak_temperature
|
||||||
|
if probe.cook and hasattr(probe.cook, "peak_temperature")
|
||||||
|
else None,
|
||||||
),
|
),
|
||||||
# Remaining time in seconds. When unknown/calculating default is used. Default: -1
|
# 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.
|
# Exposed as a TIMESTAMP sensor where the timestamp is current time + remaining time.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user