mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 05:07:41 +00:00
Improve withings diagnostics (#119128)
This commit is contained in:
parent
522a1e9d56
commit
53f1cd8e72
@ -26,11 +26,30 @@ async def async_get_config_entry_diagnostics(
|
|||||||
|
|
||||||
withings_data = entry.runtime_data
|
withings_data = entry.runtime_data
|
||||||
|
|
||||||
|
positional_measurements: dict[str, list[str]] = {}
|
||||||
|
measurements: list[str] = []
|
||||||
|
|
||||||
|
for measurement in withings_data.measurement_coordinator.data:
|
||||||
|
measurement_type, measurement_position = measurement
|
||||||
|
measurement_type_name = measurement_type.name.lower()
|
||||||
|
if measurement_position is not None:
|
||||||
|
measurement_position_name = measurement_position.name.lower()
|
||||||
|
if measurement_type_name not in positional_measurements:
|
||||||
|
positional_measurements[measurement_type_name] = []
|
||||||
|
positional_measurements[measurement_type_name].append(
|
||||||
|
measurement_position_name
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
measurements.append(measurement_type_name)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"has_valid_external_webhook_url": has_valid_external_webhook_url,
|
"has_valid_external_webhook_url": has_valid_external_webhook_url,
|
||||||
"has_cloudhooks": has_cloudhooks,
|
"has_cloudhooks": has_cloudhooks,
|
||||||
"webhooks_connected": withings_data.measurement_coordinator.webhooks_connected,
|
"webhooks_connected": withings_data.measurement_coordinator.webhooks_connected,
|
||||||
"received_measurements": list(withings_data.measurement_coordinator.data),
|
"received_measurements": {
|
||||||
|
"positional": positional_measurements,
|
||||||
|
"non_positional": measurements,
|
||||||
|
},
|
||||||
"received_sleep_data": withings_data.sleep_coordinator.data is not None,
|
"received_sleep_data": withings_data.sleep_coordinator.data is not None,
|
||||||
"received_workout_data": withings_data.workout_coordinator.data is not None,
|
"received_workout_data": withings_data.workout_coordinator.data is not None,
|
||||||
"received_activity_data": withings_data.activity_coordinator.data is not None,
|
"received_activity_data": withings_data.activity_coordinator.data is not None,
|
||||||
|
@ -779,11 +779,11 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"value": 489,
|
"value": 489,
|
||||||
"type": 1,
|
"type": 175,
|
||||||
"unit": -2,
|
"unit": -2,
|
||||||
"algo": 218235904,
|
"algo": 218235904,
|
||||||
"fm": 3,
|
"fm": 3,
|
||||||
"position": 2
|
"position": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"value": 2308,
|
"value": 2308,
|
||||||
|
@ -4,172 +4,59 @@
|
|||||||
'has_cloudhooks': True,
|
'has_cloudhooks': True,
|
||||||
'has_valid_external_webhook_url': True,
|
'has_valid_external_webhook_url': True,
|
||||||
'received_activity_data': False,
|
'received_activity_data': False,
|
||||||
'received_measurements': list([
|
'received_measurements': dict({
|
||||||
list([
|
'non_positional': list([
|
||||||
1,
|
'weight',
|
||||||
None,
|
'fat_free_mass',
|
||||||
|
'fat_mass_weight',
|
||||||
|
'muscle_mass',
|
||||||
|
'hydration',
|
||||||
|
'bone_mass',
|
||||||
|
'extracellular_water',
|
||||||
|
'intracellular_water',
|
||||||
|
'visceral_fat',
|
||||||
|
'unknown',
|
||||||
|
'fat_ratio',
|
||||||
|
'height',
|
||||||
|
'temperature',
|
||||||
|
'body_temperature',
|
||||||
|
'skin_temperature',
|
||||||
|
'diastolic_blood_pressure',
|
||||||
|
'systolic_blood_pressure',
|
||||||
|
'heart_rate',
|
||||||
|
'sp02',
|
||||||
|
'pulse_wave_velocity',
|
||||||
|
'vo2',
|
||||||
|
'vascular_age',
|
||||||
|
'electrodermal_activity_right_foot',
|
||||||
|
'electrodermal_activity_left_foot',
|
||||||
|
'electrodermal_activity_feet',
|
||||||
]),
|
]),
|
||||||
list([
|
'positional': dict({
|
||||||
5,
|
'fat_free_mass_for_segments': list([
|
||||||
None,
|
'torso',
|
||||||
]),
|
'left_leg',
|
||||||
list([
|
'left_arm',
|
||||||
8,
|
'right_leg',
|
||||||
None,
|
'right_arm',
|
||||||
]),
|
]),
|
||||||
list([
|
'fat_mass_for_segments': list([
|
||||||
76,
|
'torso',
|
||||||
None,
|
'left_leg',
|
||||||
]),
|
'left_arm',
|
||||||
list([
|
'right_leg',
|
||||||
77,
|
'right_arm',
|
||||||
None,
|
]),
|
||||||
]),
|
'muscle_mass_for_segments': list([
|
||||||
list([
|
'torso',
|
||||||
88,
|
'left_leg',
|
||||||
None,
|
'left_arm',
|
||||||
]),
|
'right_leg',
|
||||||
list([
|
'right_arm',
|
||||||
168,
|
'left_wrist',
|
||||||
None,
|
]),
|
||||||
]),
|
}),
|
||||||
list([
|
}),
|
||||||
169,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
170,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
173,
|
|
||||||
12,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
173,
|
|
||||||
10,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
173,
|
|
||||||
3,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
173,
|
|
||||||
11,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
173,
|
|
||||||
2,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
174,
|
|
||||||
12,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
174,
|
|
||||||
10,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
174,
|
|
||||||
3,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
174,
|
|
||||||
11,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
174,
|
|
||||||
2,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
175,
|
|
||||||
12,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
175,
|
|
||||||
10,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
175,
|
|
||||||
3,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
175,
|
|
||||||
11,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
175,
|
|
||||||
2,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
0,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
6,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
1,
|
|
||||||
2,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
4,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
12,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
71,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
73,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
9,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
10,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
11,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
54,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
91,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
123,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
155,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
198,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
197,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
196,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
]),
|
|
||||||
'received_sleep_data': True,
|
'received_sleep_data': True,
|
||||||
'received_workout_data': True,
|
'received_workout_data': True,
|
||||||
'webhooks_connected': True,
|
'webhooks_connected': True,
|
||||||
@ -180,172 +67,59 @@
|
|||||||
'has_cloudhooks': False,
|
'has_cloudhooks': False,
|
||||||
'has_valid_external_webhook_url': False,
|
'has_valid_external_webhook_url': False,
|
||||||
'received_activity_data': False,
|
'received_activity_data': False,
|
||||||
'received_measurements': list([
|
'received_measurements': dict({
|
||||||
list([
|
'non_positional': list([
|
||||||
1,
|
'weight',
|
||||||
None,
|
'fat_free_mass',
|
||||||
|
'fat_mass_weight',
|
||||||
|
'muscle_mass',
|
||||||
|
'hydration',
|
||||||
|
'bone_mass',
|
||||||
|
'extracellular_water',
|
||||||
|
'intracellular_water',
|
||||||
|
'visceral_fat',
|
||||||
|
'unknown',
|
||||||
|
'fat_ratio',
|
||||||
|
'height',
|
||||||
|
'temperature',
|
||||||
|
'body_temperature',
|
||||||
|
'skin_temperature',
|
||||||
|
'diastolic_blood_pressure',
|
||||||
|
'systolic_blood_pressure',
|
||||||
|
'heart_rate',
|
||||||
|
'sp02',
|
||||||
|
'pulse_wave_velocity',
|
||||||
|
'vo2',
|
||||||
|
'vascular_age',
|
||||||
|
'electrodermal_activity_right_foot',
|
||||||
|
'electrodermal_activity_left_foot',
|
||||||
|
'electrodermal_activity_feet',
|
||||||
]),
|
]),
|
||||||
list([
|
'positional': dict({
|
||||||
5,
|
'fat_free_mass_for_segments': list([
|
||||||
None,
|
'torso',
|
||||||
]),
|
'left_leg',
|
||||||
list([
|
'left_arm',
|
||||||
8,
|
'right_leg',
|
||||||
None,
|
'right_arm',
|
||||||
]),
|
]),
|
||||||
list([
|
'fat_mass_for_segments': list([
|
||||||
76,
|
'torso',
|
||||||
None,
|
'left_leg',
|
||||||
]),
|
'left_arm',
|
||||||
list([
|
'right_leg',
|
||||||
77,
|
'right_arm',
|
||||||
None,
|
]),
|
||||||
]),
|
'muscle_mass_for_segments': list([
|
||||||
list([
|
'torso',
|
||||||
88,
|
'left_leg',
|
||||||
None,
|
'left_arm',
|
||||||
]),
|
'right_leg',
|
||||||
list([
|
'right_arm',
|
||||||
168,
|
'left_wrist',
|
||||||
None,
|
]),
|
||||||
]),
|
}),
|
||||||
list([
|
}),
|
||||||
169,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
170,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
173,
|
|
||||||
12,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
173,
|
|
||||||
10,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
173,
|
|
||||||
3,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
173,
|
|
||||||
11,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
173,
|
|
||||||
2,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
174,
|
|
||||||
12,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
174,
|
|
||||||
10,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
174,
|
|
||||||
3,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
174,
|
|
||||||
11,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
174,
|
|
||||||
2,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
175,
|
|
||||||
12,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
175,
|
|
||||||
10,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
175,
|
|
||||||
3,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
175,
|
|
||||||
11,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
175,
|
|
||||||
2,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
0,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
6,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
1,
|
|
||||||
2,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
4,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
12,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
71,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
73,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
9,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
10,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
11,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
54,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
91,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
123,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
155,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
198,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
197,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
196,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
]),
|
|
||||||
'received_sleep_data': True,
|
'received_sleep_data': True,
|
||||||
'received_workout_data': True,
|
'received_workout_data': True,
|
||||||
'webhooks_connected': False,
|
'webhooks_connected': False,
|
||||||
@ -356,172 +130,59 @@
|
|||||||
'has_cloudhooks': False,
|
'has_cloudhooks': False,
|
||||||
'has_valid_external_webhook_url': True,
|
'has_valid_external_webhook_url': True,
|
||||||
'received_activity_data': False,
|
'received_activity_data': False,
|
||||||
'received_measurements': list([
|
'received_measurements': dict({
|
||||||
list([
|
'non_positional': list([
|
||||||
1,
|
'weight',
|
||||||
None,
|
'fat_free_mass',
|
||||||
|
'fat_mass_weight',
|
||||||
|
'muscle_mass',
|
||||||
|
'hydration',
|
||||||
|
'bone_mass',
|
||||||
|
'extracellular_water',
|
||||||
|
'intracellular_water',
|
||||||
|
'visceral_fat',
|
||||||
|
'unknown',
|
||||||
|
'fat_ratio',
|
||||||
|
'height',
|
||||||
|
'temperature',
|
||||||
|
'body_temperature',
|
||||||
|
'skin_temperature',
|
||||||
|
'diastolic_blood_pressure',
|
||||||
|
'systolic_blood_pressure',
|
||||||
|
'heart_rate',
|
||||||
|
'sp02',
|
||||||
|
'pulse_wave_velocity',
|
||||||
|
'vo2',
|
||||||
|
'vascular_age',
|
||||||
|
'electrodermal_activity_right_foot',
|
||||||
|
'electrodermal_activity_left_foot',
|
||||||
|
'electrodermal_activity_feet',
|
||||||
]),
|
]),
|
||||||
list([
|
'positional': dict({
|
||||||
5,
|
'fat_free_mass_for_segments': list([
|
||||||
None,
|
'torso',
|
||||||
]),
|
'left_leg',
|
||||||
list([
|
'left_arm',
|
||||||
8,
|
'right_leg',
|
||||||
None,
|
'right_arm',
|
||||||
]),
|
]),
|
||||||
list([
|
'fat_mass_for_segments': list([
|
||||||
76,
|
'torso',
|
||||||
None,
|
'left_leg',
|
||||||
]),
|
'left_arm',
|
||||||
list([
|
'right_leg',
|
||||||
77,
|
'right_arm',
|
||||||
None,
|
]),
|
||||||
]),
|
'muscle_mass_for_segments': list([
|
||||||
list([
|
'torso',
|
||||||
88,
|
'left_leg',
|
||||||
None,
|
'left_arm',
|
||||||
]),
|
'right_leg',
|
||||||
list([
|
'right_arm',
|
||||||
168,
|
'left_wrist',
|
||||||
None,
|
]),
|
||||||
]),
|
}),
|
||||||
list([
|
}),
|
||||||
169,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
170,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
173,
|
|
||||||
12,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
173,
|
|
||||||
10,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
173,
|
|
||||||
3,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
173,
|
|
||||||
11,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
173,
|
|
||||||
2,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
174,
|
|
||||||
12,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
174,
|
|
||||||
10,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
174,
|
|
||||||
3,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
174,
|
|
||||||
11,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
174,
|
|
||||||
2,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
175,
|
|
||||||
12,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
175,
|
|
||||||
10,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
175,
|
|
||||||
3,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
175,
|
|
||||||
11,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
175,
|
|
||||||
2,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
0,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
6,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
1,
|
|
||||||
2,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
4,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
12,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
71,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
73,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
9,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
10,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
11,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
54,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
91,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
123,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
155,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
198,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
197,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
list([
|
|
||||||
196,
|
|
||||||
None,
|
|
||||||
]),
|
|
||||||
]),
|
|
||||||
'received_sleep_data': True,
|
'received_sleep_data': True,
|
||||||
'received_workout_data': True,
|
'received_workout_data': True,
|
||||||
'webhooks_connected': True,
|
'webhooks_connected': True,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user