Improve Withings sleep and weight default units (#140665)

This commit is contained in:
Abílio Costa 2025-03-20 17:45:52 +00:00 committed by GitHub
parent 32c6fb8629
commit eca10ea591
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 44 additions and 20 deletions

View File

@ -122,7 +122,7 @@ MEASUREMENT_SENSORS: dict[
measurement_type=MeasurementType.HEIGHT,
translation_key="height",
native_unit_of_measurement=UnitOfLength.METERS,
suggested_display_precision=1,
suggested_display_precision=2,
device_class=SensorDeviceClass.DISTANCE,
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,
@ -326,6 +326,7 @@ SLEEP_SENSORS = [
value_fn=lambda sleep_summary: sleep_summary.deep_sleep_duration,
translation_key="deep_sleep",
native_unit_of_measurement=UnitOfTime.SECONDS,
suggested_unit_of_measurement=UnitOfTime.HOURS,
device_class=SensorDeviceClass.DURATION,
state_class=SensorStateClass.MEASUREMENT,
),
@ -334,6 +335,7 @@ SLEEP_SENSORS = [
value_fn=lambda sleep_summary: sleep_summary.sleep_latency,
translation_key="time_to_sleep",
native_unit_of_measurement=UnitOfTime.SECONDS,
suggested_unit_of_measurement=UnitOfTime.HOURS,
device_class=SensorDeviceClass.DURATION,
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,
@ -343,6 +345,7 @@ SLEEP_SENSORS = [
value_fn=lambda sleep_summary: sleep_summary.wake_up_latency,
translation_key="time_to_wakeup",
native_unit_of_measurement=UnitOfTime.SECONDS,
suggested_unit_of_measurement=UnitOfTime.HOURS,
device_class=SensorDeviceClass.DURATION,
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,
@ -376,6 +379,7 @@ SLEEP_SENSORS = [
value_fn=lambda sleep_summary: sleep_summary.light_sleep_duration,
translation_key="light_sleep",
native_unit_of_measurement=UnitOfTime.SECONDS,
suggested_unit_of_measurement=UnitOfTime.HOURS,
device_class=SensorDeviceClass.DURATION,
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,
@ -385,6 +389,7 @@ SLEEP_SENSORS = [
value_fn=lambda sleep_summary: sleep_summary.rem_sleep_duration,
translation_key="rem_sleep",
native_unit_of_measurement=UnitOfTime.SECONDS,
suggested_unit_of_measurement=UnitOfTime.HOURS,
device_class=SensorDeviceClass.DURATION,
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,
@ -451,6 +456,7 @@ SLEEP_SENSORS = [
value_fn=lambda sleep_summary: sleep_summary.total_time_awake,
translation_key="wakeup_time",
native_unit_of_measurement=UnitOfTime.SECONDS,
suggested_unit_of_measurement=UnitOfTime.HOURS,
device_class=SensorDeviceClass.DURATION,
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,

View File

@ -503,6 +503,9 @@
}),
'name': None,
'options': dict({
'sensor.private': dict({
'suggested_unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
}),
}),
'original_device_class': <SensorDeviceClass.DURATION: 'duration'>,
'original_icon': None,
@ -512,7 +515,7 @@
'supported_features': 0,
'translation_key': 'deep_sleep',
'unique_id': 'withings_12345_sleep_deep_duration_seconds',
'unit_of_measurement': <UnitOfTime.SECONDS: 's'>,
'unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
})
# ---
# name: test_all_entities[sensor.henk_deep_sleep-state]
@ -521,14 +524,14 @@
'device_class': 'duration',
'friendly_name': 'henk Deep sleep',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfTime.SECONDS: 's'>,
'unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
}),
'context': <ANY>,
'entity_id': 'sensor.henk_deep_sleep',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '5820',
'state': '1.617',
})
# ---
# name: test_all_entities[sensor.henk_diastolic_blood_pressure-entry]
@ -1778,7 +1781,7 @@
'name': None,
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
'suggested_display_precision': 2,
}),
}),
'original_device_class': <SensorDeviceClass.DISTANCE: 'distance'>,
@ -2242,6 +2245,9 @@
}),
'name': None,
'options': dict({
'sensor.private': dict({
'suggested_unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
}),
}),
'original_device_class': <SensorDeviceClass.DURATION: 'duration'>,
'original_icon': None,
@ -2251,7 +2257,7 @@
'supported_features': 0,
'translation_key': 'light_sleep',
'unique_id': 'withings_12345_sleep_light_duration_seconds',
'unit_of_measurement': <UnitOfTime.SECONDS: 's'>,
'unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
})
# ---
# name: test_all_entities[sensor.henk_light_sleep-state]
@ -2260,14 +2266,14 @@
'device_class': 'duration',
'friendly_name': 'henk Light sleep',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfTime.SECONDS: 's'>,
'unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
}),
'context': <ANY>,
'entity_id': 'sensor.henk_light_sleep',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '10440',
'state': '2.900',
})
# ---
# name: test_all_entities[sensor.henk_maximum_heart_rate-entry]
@ -2988,6 +2994,9 @@
}),
'name': None,
'options': dict({
'sensor.private': dict({
'suggested_unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
}),
}),
'original_device_class': <SensorDeviceClass.DURATION: 'duration'>,
'original_icon': None,
@ -2997,7 +3006,7 @@
'supported_features': 0,
'translation_key': 'rem_sleep',
'unique_id': 'withings_12345_sleep_rem_duration_seconds',
'unit_of_measurement': <UnitOfTime.SECONDS: 's'>,
'unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
})
# ---
# name: test_all_entities[sensor.henk_rem_sleep-state]
@ -3006,14 +3015,14 @@
'device_class': 'duration',
'friendly_name': 'henk REM sleep',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfTime.SECONDS: 's'>,
'unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
}),
'context': <ANY>,
'entity_id': 'sensor.henk_rem_sleep',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '2400',
'state': '0.667',
})
# ---
# name: test_all_entities[sensor.henk_skin_temperature-entry]
@ -3616,6 +3625,9 @@
}),
'name': None,
'options': dict({
'sensor.private': dict({
'suggested_unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
}),
}),
'original_device_class': <SensorDeviceClass.DURATION: 'duration'>,
'original_icon': None,
@ -3625,7 +3637,7 @@
'supported_features': 0,
'translation_key': 'time_to_sleep',
'unique_id': 'withings_12345_sleep_tosleep_duration_seconds',
'unit_of_measurement': <UnitOfTime.SECONDS: 's'>,
'unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
})
# ---
# name: test_all_entities[sensor.henk_time_to_sleep-state]
@ -3634,14 +3646,14 @@
'device_class': 'duration',
'friendly_name': 'henk Time to sleep',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfTime.SECONDS: 's'>,
'unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
}),
'context': <ANY>,
'entity_id': 'sensor.henk_time_to_sleep',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '540',
'state': '0.150',
})
# ---
# name: test_all_entities[sensor.henk_time_to_wakeup-entry]
@ -3668,6 +3680,9 @@
}),
'name': None,
'options': dict({
'sensor.private': dict({
'suggested_unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
}),
}),
'original_device_class': <SensorDeviceClass.DURATION: 'duration'>,
'original_icon': None,
@ -3677,7 +3692,7 @@
'supported_features': 0,
'translation_key': 'time_to_wakeup',
'unique_id': 'withings_12345_sleep_towakeup_duration_seconds',
'unit_of_measurement': <UnitOfTime.SECONDS: 's'>,
'unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
})
# ---
# name: test_all_entities[sensor.henk_time_to_wakeup-state]
@ -3686,14 +3701,14 @@
'device_class': 'duration',
'friendly_name': 'henk Time to wakeup',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfTime.SECONDS: 's'>,
'unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
}),
'context': <ANY>,
'entity_id': 'sensor.henk_time_to_wakeup',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '1140',
'state': '0.317',
})
# ---
# name: test_all_entities[sensor.henk_total_calories_burnt_today-entry]
@ -3971,6 +3986,9 @@
}),
'name': None,
'options': dict({
'sensor.private': dict({
'suggested_unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
}),
}),
'original_device_class': <SensorDeviceClass.DURATION: 'duration'>,
'original_icon': None,
@ -3980,7 +3998,7 @@
'supported_features': 0,
'translation_key': 'wakeup_time',
'unique_id': 'withings_12345_sleep_wakeup_duration_seconds',
'unit_of_measurement': <UnitOfTime.SECONDS: 's'>,
'unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
})
# ---
# name: test_all_entities[sensor.henk_wakeup_time-state]
@ -3989,14 +4007,14 @@
'device_class': 'duration',
'friendly_name': 'henk Wakeup time',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfTime.SECONDS: 's'>,
'unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
}),
'context': <ANY>,
'entity_id': 'sensor.henk_wakeup_time',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '3060',
'state': '0.850',
})
# ---
# name: test_all_entities[sensor.henk_weight-entry]