Correcting error where properties may not exist
### Fix * Bumping pyowletapi to 2023.11.1 * Sensors and binary sensors are now only created where the sock contains that property, this stops errors where different sock versions have different properties
This commit is contained in:
@@ -85,12 +85,13 @@ async def async_setup_entry(
|
|||||||
|
|
||||||
coordinators: OwletCoordinator = hass.data[DOMAIN][config_entry.entry_id].values()
|
coordinators: OwletCoordinator = hass.data[DOMAIN][config_entry.entry_id].values()
|
||||||
|
|
||||||
async_add_entities(
|
sensors = []
|
||||||
OwletBinarySensor(coordinator, sensor)
|
for coordinator in coordinators:
|
||||||
for coordinator in coordinators
|
for sensor in SENSORS:
|
||||||
for sensor in SENSORS
|
if sensor.key in coordinator.sock.properties:
|
||||||
)
|
sensors.append(OwletBinarySensor(coordinator, sensor))
|
||||||
|
|
||||||
|
async_add_entities(sensors)
|
||||||
|
|
||||||
class OwletBinarySensor(OwletBaseEntity, BinarySensorEntity):
|
class OwletBinarySensor(OwletBaseEntity, BinarySensorEntity):
|
||||||
"""Representation of an Owlet binary sensor."""
|
"""Representation of an Owlet binary sensor."""
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"iot_class": "cloud_polling",
|
"iot_class": "cloud_polling",
|
||||||
"issue_tracker": "https://github.com/ryanbdclark/owlet/issues",
|
"issue_tracker": "https://github.com/ryanbdclark/owlet/issues",
|
||||||
"requirements": [
|
"requirements": [
|
||||||
"pyowletapi==2023.9.1"
|
"pyowletapi==2023.11.1"
|
||||||
],
|
],
|
||||||
"version": "2023.9.1"
|
"version": "2023.11.1"
|
||||||
}
|
}
|
||||||
@@ -30,7 +30,7 @@ class OwletSensorEntityDescription(SensorEntityDescription):
|
|||||||
"""Represent the owlet sensor entity description."""
|
"""Represent the owlet sensor entity description."""
|
||||||
|
|
||||||
|
|
||||||
SENSORS_ALL: tuple[OwletSensorEntityDescription, ...] = (
|
SENSORS: tuple[OwletSensorEntityDescription, ...] = (
|
||||||
OwletSensorEntityDescription(
|
OwletSensorEntityDescription(
|
||||||
key="battery_percentage",
|
key="battery_percentage",
|
||||||
translation_key="batterypercent",
|
translation_key="batterypercent",
|
||||||
@@ -85,9 +85,6 @@ SENSORS_ALL: tuple[OwletSensorEntityDescription, ...] = (
|
|||||||
icon="mdi:cursor-move",
|
icon="mdi:cursor-move",
|
||||||
entity_registry_enabled_default=False,
|
entity_registry_enabled_default=False,
|
||||||
),
|
),
|
||||||
)
|
|
||||||
|
|
||||||
SENSORS_OLD: tuple[OwletSensorEntityDescription, ...] = (
|
|
||||||
OwletSensorEntityDescription(
|
OwletSensorEntityDescription(
|
||||||
key="oxygen_10_av",
|
key="oxygen_10_av",
|
||||||
translation_key="o2saturation10a",
|
translation_key="o2saturation10a",
|
||||||
@@ -118,13 +115,10 @@ async def async_setup_entry(
|
|||||||
|
|
||||||
sensors = []
|
sensors = []
|
||||||
|
|
||||||
sensor_list = SENSORS_ALL
|
|
||||||
for coordinator in coordinators:
|
for coordinator in coordinators:
|
||||||
if coordinator.sock.revision < 5:
|
for sensor in SENSORS:
|
||||||
sensor_list += SENSORS_OLD
|
if sensor.key in coordinator.sock.properties:
|
||||||
|
sensors.append(OwletSensor(coordinator, sensor))
|
||||||
for sensor in sensor_list:
|
|
||||||
sensors.append(OwletSensor(coordinator, sensor))
|
|
||||||
|
|
||||||
async_add_entities(sensors)
|
async_add_entities(sensors)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user