Improve withings diagnostics (#119128)

This commit is contained in:
Joost Lekkerkerker 2024-06-08 12:27:24 +02:00 committed by GitHub
parent 522a1e9d56
commit 53f1cd8e72
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 178 additions and 498 deletions

View File

@ -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,

View File

@ -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,

View File

@ -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,