diff --git a/custom_components/owlet/binary_sensor.py b/custom_components/owlet/binary_sensor.py index 5377520..7854b66 100644 --- a/custom_components/owlet/binary_sensor.py +++ b/custom_components/owlet/binary_sensor.py @@ -42,7 +42,6 @@ SENSORS: tuple[OwletBinarySensorEntityDescription, ...] = ( key="high_oxygen_alert", translation_key="high_ox_alrt", device_class=BinarySensorDeviceClass.SOUND, - entity_registry_enabled_default=False, ), OwletBinarySensorEntityDescription( key="low_oxygen_alert", @@ -111,12 +110,9 @@ class OwletBinarySensor(OwletBaseEntity, BinarySensorEntity): """Return true if the binary sensor is on.""" state = self.sock.properties[self.entity_description.key] - entity = self.entity_description.key - - if self.sock.properties["charging"] and entity in ["sleep_state"]: - return None - - if entity == "sleep_state": + if self.entity_description.key == "sleep_state": + if self.sock.properties["charging"]: + return None if state in [8, 15]: state = False else: diff --git a/custom_components/owlet/entity.py b/custom_components/owlet/entity.py index 2c3356c..714e633 100644 --- a/custom_components/owlet/entity.py +++ b/custom_components/owlet/entity.py @@ -30,5 +30,5 @@ class OwletBaseEntity(CoordinatorEntity[OwletCoordinator], Entity): manufacturer=MANUFACTURER, model=self.sock.model, sw_version=self.sock.sw_version, - hw_version=self.sock.version, + hw_version=f"{self.sock.version}r{self.sock.revision}", ) diff --git a/custom_components/owlet/manifest.json b/custom_components/owlet/manifest.json index af73e88..3969988 100644 --- a/custom_components/owlet/manifest.json +++ b/custom_components/owlet/manifest.json @@ -1,11 +1,15 @@ { "domain": "owlet", "name": "Owlet Smart Sock", - "codeowners": ["@ryanbdclark"], + "codeowners": [ + "@ryanbdclark" + ], "config_flow": true, "documentation": "https://www.home-assistant.io/integrations/owlet", "iot_class": "cloud_polling", "issue_tracker": "https://github.com/ryanbdclark/owlet/issues", - "requirements": ["pyowletapi==2023.7.2"], - "version":"2023.8.1" -} + "requirements": [ + "pyowletapi==2023.9.1" + ], + "version": "2023.9.1" +} \ No newline at end of file diff --git a/custom_components/owlet/sensor.py b/custom_components/owlet/sensor.py index 6e2cf8a..b091dc3 100644 --- a/custom_components/owlet/sensor.py +++ b/custom_components/owlet/sensor.py @@ -30,7 +30,7 @@ class OwletSensorEntityDescription(SensorEntityDescription): """Represent the owlet sensor entity description.""" -SENSORS: tuple[OwletSensorEntityDescription, ...] = ( +SENSORS_ALL: tuple[OwletSensorEntityDescription, ...] = ( OwletSensorEntityDescription( key="battery_percentage", translation_key="batterypercent", @@ -45,13 +45,6 @@ SENSORS: tuple[OwletSensorEntityDescription, ...] = ( state_class=SensorStateClass.MEASUREMENT, icon="mdi:leaf", ), - OwletSensorEntityDescription( - key="oxygen_10_av", - translation_key="o2saturation10a", - native_unit_of_measurement=PERCENTAGE, - state_class=SensorStateClass.MEASUREMENT, - icon="mdi:leaf", - ), OwletSensorEntityDescription( key="heart_rate", translation_key="heartrate", @@ -92,6 +85,16 @@ SENSORS: tuple[OwletSensorEntityDescription, ...] = ( icon="mdi:cursor-move", entity_registry_enabled_default=False, ), +) + +SENSORS_OLD: tuple[OwletSensorEntityDescription, ...] = ( + OwletSensorEntityDescription( + key="oxygen_10_av", + translation_key="o2saturation10a", + native_unit_of_measurement=PERCENTAGE, + state_class=SensorStateClass.MEASUREMENT, + icon="mdi:leaf", + ), OwletSensorEntityDescription( key="movement_bucket", translation_key="movementbucket", @@ -113,11 +116,17 @@ async def async_setup_entry( hass.data[DOMAIN][config_entry.entry_id].values() ) - async_add_entities( - OwletSensor(coordinator, sensor) - for coordinator in coordinators - for sensor in SENSORS - ) + sensors = [] + + sensor_list = SENSORS_ALL + for coordinator in coordinators: + if coordinator.sock.revision < 5: + sensor_list += SENSORS_OLD + + for sensor in sensor_list: + sensors.append(OwletSensor(coordinator, sensor)) + + async_add_entities(sensors) class OwletSensor(OwletBaseEntity, SensorEntity):