Add entity translations to withings (#99194)
* Add entity translations to Withings * Add entity translations to Withings
This commit is contained in:
parent
743ce46311
commit
868fdd81da
4 changed files with 132 additions and 36 deletions
|
@ -36,7 +36,7 @@ BINARY_SENSORS = [
|
|||
key=Measurement.IN_BED.value,
|
||||
measurement=Measurement.IN_BED,
|
||||
measure_type=NotifyAppli.BED_IN,
|
||||
name="In bed",
|
||||
translation_key="in_bed",
|
||||
icon="mdi:bed",
|
||||
update_type=UpdateType.WEBHOOK,
|
||||
device_class=BinarySensorDeviceClass.OCCUPANCY,
|
||||
|
|
|
@ -548,6 +548,7 @@ class BaseWithingsSensor(Entity):
|
|||
|
||||
_attr_should_poll = False
|
||||
entity_description: WithingsEntityDescription
|
||||
_attr_has_entity_name = True
|
||||
|
||||
def __init__(
|
||||
self, data_manager: DataManager, description: WithingsEntityDescription
|
||||
|
@ -555,9 +556,6 @@ class BaseWithingsSensor(Entity):
|
|||
"""Initialize the Withings sensor."""
|
||||
self._data_manager = data_manager
|
||||
self.entity_description = description
|
||||
self._attr_name = (
|
||||
f"Withings {description.measurement.value} {data_manager.profile}"
|
||||
)
|
||||
self._attr_unique_id = get_attribute_unique_id(
|
||||
description, data_manager.user_id
|
||||
)
|
||||
|
|
|
@ -51,7 +51,6 @@ SENSORS = [
|
|||
key=Measurement.WEIGHT_KG.value,
|
||||
measurement=Measurement.WEIGHT_KG,
|
||||
measure_type=MeasureType.WEIGHT,
|
||||
name="Weight",
|
||||
native_unit_of_measurement=UnitOfMass.KILOGRAMS,
|
||||
device_class=SensorDeviceClass.WEIGHT,
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
|
@ -61,7 +60,7 @@ SENSORS = [
|
|||
key=Measurement.FAT_MASS_KG.value,
|
||||
measurement=Measurement.FAT_MASS_KG,
|
||||
measure_type=MeasureType.FAT_MASS_WEIGHT,
|
||||
name="Fat Mass",
|
||||
translation_key="fat_mass",
|
||||
native_unit_of_measurement=UnitOfMass.KILOGRAMS,
|
||||
device_class=SensorDeviceClass.WEIGHT,
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
|
@ -71,7 +70,7 @@ SENSORS = [
|
|||
key=Measurement.FAT_FREE_MASS_KG.value,
|
||||
measurement=Measurement.FAT_FREE_MASS_KG,
|
||||
measure_type=MeasureType.FAT_FREE_MASS,
|
||||
name="Fat Free Mass",
|
||||
translation_key="fat_free_mass",
|
||||
native_unit_of_measurement=UnitOfMass.KILOGRAMS,
|
||||
device_class=SensorDeviceClass.WEIGHT,
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
|
@ -81,7 +80,7 @@ SENSORS = [
|
|||
key=Measurement.MUSCLE_MASS_KG.value,
|
||||
measurement=Measurement.MUSCLE_MASS_KG,
|
||||
measure_type=MeasureType.MUSCLE_MASS,
|
||||
name="Muscle Mass",
|
||||
translation_key="muscle_mass",
|
||||
native_unit_of_measurement=UnitOfMass.KILOGRAMS,
|
||||
device_class=SensorDeviceClass.WEIGHT,
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
|
@ -91,7 +90,7 @@ SENSORS = [
|
|||
key=Measurement.BONE_MASS_KG.value,
|
||||
measurement=Measurement.BONE_MASS_KG,
|
||||
measure_type=MeasureType.BONE_MASS,
|
||||
name="Bone Mass",
|
||||
translation_key="bone_mass",
|
||||
native_unit_of_measurement=UnitOfMass.KILOGRAMS,
|
||||
device_class=SensorDeviceClass.WEIGHT,
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
|
@ -101,7 +100,7 @@ SENSORS = [
|
|||
key=Measurement.HEIGHT_M.value,
|
||||
measurement=Measurement.HEIGHT_M,
|
||||
measure_type=MeasureType.HEIGHT,
|
||||
name="Height",
|
||||
translation_key="height",
|
||||
native_unit_of_measurement=UnitOfLength.METERS,
|
||||
device_class=SensorDeviceClass.DISTANCE,
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
|
@ -112,7 +111,6 @@ SENSORS = [
|
|||
key=Measurement.TEMP_C.value,
|
||||
measurement=Measurement.TEMP_C,
|
||||
measure_type=MeasureType.TEMPERATURE,
|
||||
name="Temperature",
|
||||
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
|
||||
device_class=SensorDeviceClass.TEMPERATURE,
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
|
@ -122,7 +120,7 @@ SENSORS = [
|
|||
key=Measurement.BODY_TEMP_C.value,
|
||||
measurement=Measurement.BODY_TEMP_C,
|
||||
measure_type=MeasureType.BODY_TEMPERATURE,
|
||||
name="Body Temperature",
|
||||
translation_key="body_temperature",
|
||||
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
|
||||
device_class=SensorDeviceClass.TEMPERATURE,
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
|
@ -132,7 +130,7 @@ SENSORS = [
|
|||
key=Measurement.SKIN_TEMP_C.value,
|
||||
measurement=Measurement.SKIN_TEMP_C,
|
||||
measure_type=MeasureType.SKIN_TEMPERATURE,
|
||||
name="Skin Temperature",
|
||||
translation_key="skin_temperature",
|
||||
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
|
||||
device_class=SensorDeviceClass.TEMPERATURE,
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
|
@ -142,7 +140,7 @@ SENSORS = [
|
|||
key=Measurement.FAT_RATIO_PCT.value,
|
||||
measurement=Measurement.FAT_RATIO_PCT,
|
||||
measure_type=MeasureType.FAT_RATIO,
|
||||
name="Fat Ratio",
|
||||
translation_key="fat_ratio",
|
||||
native_unit_of_measurement=PERCENTAGE,
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
update_type=UpdateType.POLL,
|
||||
|
@ -151,7 +149,7 @@ SENSORS = [
|
|||
key=Measurement.DIASTOLIC_MMHG.value,
|
||||
measurement=Measurement.DIASTOLIC_MMHG,
|
||||
measure_type=MeasureType.DIASTOLIC_BLOOD_PRESSURE,
|
||||
name="Diastolic Blood Pressure",
|
||||
translation_key="diastolic_blood_pressure",
|
||||
native_unit_of_measurement=UOM_MMHG,
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
update_type=UpdateType.POLL,
|
||||
|
@ -160,7 +158,7 @@ SENSORS = [
|
|||
key=Measurement.SYSTOLIC_MMGH.value,
|
||||
measurement=Measurement.SYSTOLIC_MMGH,
|
||||
measure_type=MeasureType.SYSTOLIC_BLOOD_PRESSURE,
|
||||
name="Systolic Blood Pressure",
|
||||
translation_key="systolic_blood_pressure",
|
||||
native_unit_of_measurement=UOM_MMHG,
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
update_type=UpdateType.POLL,
|
||||
|
@ -169,7 +167,7 @@ SENSORS = [
|
|||
key=Measurement.HEART_PULSE_BPM.value,
|
||||
measurement=Measurement.HEART_PULSE_BPM,
|
||||
measure_type=MeasureType.HEART_RATE,
|
||||
name="Heart Pulse",
|
||||
translation_key="heart_pulse",
|
||||
native_unit_of_measurement=UOM_BEATS_PER_MINUTE,
|
||||
icon="mdi:heart-pulse",
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
|
@ -179,7 +177,7 @@ SENSORS = [
|
|||
key=Measurement.SPO2_PCT.value,
|
||||
measurement=Measurement.SPO2_PCT,
|
||||
measure_type=MeasureType.SP02,
|
||||
name="SP02",
|
||||
translation_key="spo2",
|
||||
native_unit_of_measurement=PERCENTAGE,
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
update_type=UpdateType.POLL,
|
||||
|
@ -188,7 +186,7 @@ SENSORS = [
|
|||
key=Measurement.HYDRATION.value,
|
||||
measurement=Measurement.HYDRATION,
|
||||
measure_type=MeasureType.HYDRATION,
|
||||
name="Hydration",
|
||||
translation_key="hydration",
|
||||
native_unit_of_measurement=UnitOfMass.KILOGRAMS,
|
||||
device_class=SensorDeviceClass.WEIGHT,
|
||||
icon="mdi:water",
|
||||
|
@ -200,7 +198,7 @@ SENSORS = [
|
|||
key=Measurement.PWV.value,
|
||||
measurement=Measurement.PWV,
|
||||
measure_type=MeasureType.PULSE_WAVE_VELOCITY,
|
||||
name="Pulse Wave Velocity",
|
||||
translation_key="pulse_wave_velocity",
|
||||
native_unit_of_measurement=UnitOfSpeed.METERS_PER_SECOND,
|
||||
device_class=SensorDeviceClass.SPEED,
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
|
@ -210,7 +208,7 @@ SENSORS = [
|
|||
key=Measurement.SLEEP_BREATHING_DISTURBANCES_INTENSITY.value,
|
||||
measurement=Measurement.SLEEP_BREATHING_DISTURBANCES_INTENSITY,
|
||||
measure_type=GetSleepSummaryField.BREATHING_DISTURBANCES_INTENSITY,
|
||||
name="Breathing disturbances intensity",
|
||||
translation_key="breathing_disturbances_intensity",
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
entity_registry_enabled_default=False,
|
||||
update_type=UpdateType.POLL,
|
||||
|
@ -219,7 +217,7 @@ SENSORS = [
|
|||
key=Measurement.SLEEP_DEEP_DURATION_SECONDS.value,
|
||||
measurement=Measurement.SLEEP_DEEP_DURATION_SECONDS,
|
||||
measure_type=GetSleepSummaryField.DEEP_SLEEP_DURATION,
|
||||
name="Deep sleep",
|
||||
translation_key="deep_sleep",
|
||||
native_unit_of_measurement=UnitOfTime.SECONDS,
|
||||
icon="mdi:sleep",
|
||||
device_class=SensorDeviceClass.DURATION,
|
||||
|
@ -231,7 +229,7 @@ SENSORS = [
|
|||
key=Measurement.SLEEP_TOSLEEP_DURATION_SECONDS.value,
|
||||
measurement=Measurement.SLEEP_TOSLEEP_DURATION_SECONDS,
|
||||
measure_type=GetSleepSummaryField.DURATION_TO_SLEEP,
|
||||
name="Time to sleep",
|
||||
translation_key="time_to_sleep",
|
||||
native_unit_of_measurement=UnitOfTime.SECONDS,
|
||||
icon="mdi:sleep",
|
||||
device_class=SensorDeviceClass.DURATION,
|
||||
|
@ -243,7 +241,7 @@ SENSORS = [
|
|||
key=Measurement.SLEEP_TOWAKEUP_DURATION_SECONDS.value,
|
||||
measurement=Measurement.SLEEP_TOWAKEUP_DURATION_SECONDS,
|
||||
measure_type=GetSleepSummaryField.DURATION_TO_WAKEUP,
|
||||
name="Time to wakeup",
|
||||
translation_key="time_to_wakeup",
|
||||
native_unit_of_measurement=UnitOfTime.SECONDS,
|
||||
icon="mdi:sleep-off",
|
||||
device_class=SensorDeviceClass.DURATION,
|
||||
|
@ -255,7 +253,7 @@ SENSORS = [
|
|||
key=Measurement.SLEEP_HEART_RATE_AVERAGE.value,
|
||||
measurement=Measurement.SLEEP_HEART_RATE_AVERAGE,
|
||||
measure_type=GetSleepSummaryField.HR_AVERAGE,
|
||||
name="Average heart rate",
|
||||
translation_key="average_heart_rate",
|
||||
native_unit_of_measurement=UOM_BEATS_PER_MINUTE,
|
||||
icon="mdi:heart-pulse",
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
|
@ -266,6 +264,7 @@ SENSORS = [
|
|||
key=Measurement.SLEEP_HEART_RATE_MAX.value,
|
||||
measurement=Measurement.SLEEP_HEART_RATE_MAX,
|
||||
measure_type=GetSleepSummaryField.HR_MAX,
|
||||
translation_key="fat_mass",
|
||||
name="Maximum heart rate",
|
||||
native_unit_of_measurement=UOM_BEATS_PER_MINUTE,
|
||||
icon="mdi:heart-pulse",
|
||||
|
@ -277,7 +276,7 @@ SENSORS = [
|
|||
key=Measurement.SLEEP_HEART_RATE_MIN.value,
|
||||
measurement=Measurement.SLEEP_HEART_RATE_MIN,
|
||||
measure_type=GetSleepSummaryField.HR_MIN,
|
||||
name="Minimum heart rate",
|
||||
translation_key="maximum_heart_rate",
|
||||
native_unit_of_measurement=UOM_BEATS_PER_MINUTE,
|
||||
icon="mdi:heart-pulse",
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
|
@ -288,7 +287,7 @@ SENSORS = [
|
|||
key=Measurement.SLEEP_LIGHT_DURATION_SECONDS.value,
|
||||
measurement=Measurement.SLEEP_LIGHT_DURATION_SECONDS,
|
||||
measure_type=GetSleepSummaryField.LIGHT_SLEEP_DURATION,
|
||||
name="Light sleep",
|
||||
translation_key="light_sleep",
|
||||
native_unit_of_measurement=UnitOfTime.SECONDS,
|
||||
icon="mdi:sleep",
|
||||
device_class=SensorDeviceClass.DURATION,
|
||||
|
@ -300,7 +299,7 @@ SENSORS = [
|
|||
key=Measurement.SLEEP_REM_DURATION_SECONDS.value,
|
||||
measurement=Measurement.SLEEP_REM_DURATION_SECONDS,
|
||||
measure_type=GetSleepSummaryField.REM_SLEEP_DURATION,
|
||||
name="REM sleep",
|
||||
translation_key="rem_sleep",
|
||||
native_unit_of_measurement=UnitOfTime.SECONDS,
|
||||
icon="mdi:sleep",
|
||||
device_class=SensorDeviceClass.DURATION,
|
||||
|
@ -312,7 +311,7 @@ SENSORS = [
|
|||
key=Measurement.SLEEP_RESPIRATORY_RATE_AVERAGE.value,
|
||||
measurement=Measurement.SLEEP_RESPIRATORY_RATE_AVERAGE,
|
||||
measure_type=GetSleepSummaryField.RR_AVERAGE,
|
||||
name="Average respiratory rate",
|
||||
translation_key="average_respiratory_rate",
|
||||
native_unit_of_measurement=UOM_BREATHS_PER_MINUTE,
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
entity_registry_enabled_default=False,
|
||||
|
@ -322,7 +321,7 @@ SENSORS = [
|
|||
key=Measurement.SLEEP_RESPIRATORY_RATE_MAX.value,
|
||||
measurement=Measurement.SLEEP_RESPIRATORY_RATE_MAX,
|
||||
measure_type=GetSleepSummaryField.RR_MAX,
|
||||
name="Maximum respiratory rate",
|
||||
translation_key="maximum_respiratory_rate",
|
||||
native_unit_of_measurement=UOM_BREATHS_PER_MINUTE,
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
entity_registry_enabled_default=False,
|
||||
|
@ -332,7 +331,7 @@ SENSORS = [
|
|||
key=Measurement.SLEEP_RESPIRATORY_RATE_MIN.value,
|
||||
measurement=Measurement.SLEEP_RESPIRATORY_RATE_MIN,
|
||||
measure_type=GetSleepSummaryField.RR_MIN,
|
||||
name="Minimum respiratory rate",
|
||||
translation_key="minimum_respiratory_rate",
|
||||
native_unit_of_measurement=UOM_BREATHS_PER_MINUTE,
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
entity_registry_enabled_default=False,
|
||||
|
@ -342,7 +341,7 @@ SENSORS = [
|
|||
key=Measurement.SLEEP_SCORE.value,
|
||||
measurement=Measurement.SLEEP_SCORE,
|
||||
measure_type=GetSleepSummaryField.SLEEP_SCORE,
|
||||
name="Sleep score",
|
||||
translation_key="sleep_score",
|
||||
native_unit_of_measurement=SCORE_POINTS,
|
||||
icon="mdi:medal",
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
|
@ -353,7 +352,7 @@ SENSORS = [
|
|||
key=Measurement.SLEEP_SNORING.value,
|
||||
measurement=Measurement.SLEEP_SNORING,
|
||||
measure_type=GetSleepSummaryField.SNORING,
|
||||
name="Snoring",
|
||||
translation_key="snoring",
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
entity_registry_enabled_default=False,
|
||||
update_type=UpdateType.POLL,
|
||||
|
@ -362,7 +361,7 @@ SENSORS = [
|
|||
key=Measurement.SLEEP_SNORING_EPISODE_COUNT.value,
|
||||
measurement=Measurement.SLEEP_SNORING_EPISODE_COUNT,
|
||||
measure_type=GetSleepSummaryField.SNORING_EPISODE_COUNT,
|
||||
name="Snoring episode count",
|
||||
translation_key="snoring_episode_count",
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
entity_registry_enabled_default=False,
|
||||
update_type=UpdateType.POLL,
|
||||
|
@ -371,7 +370,7 @@ SENSORS = [
|
|||
key=Measurement.SLEEP_WAKEUP_COUNT.value,
|
||||
measurement=Measurement.SLEEP_WAKEUP_COUNT,
|
||||
measure_type=GetSleepSummaryField.WAKEUP_COUNT,
|
||||
name="Wakeup count",
|
||||
translation_key="wakeup_count",
|
||||
native_unit_of_measurement=UOM_FREQUENCY,
|
||||
icon="mdi:sleep-off",
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
|
@ -382,7 +381,7 @@ SENSORS = [
|
|||
key=Measurement.SLEEP_WAKEUP_DURATION_SECONDS.value,
|
||||
measurement=Measurement.SLEEP_WAKEUP_DURATION_SECONDS,
|
||||
measure_type=GetSleepSummaryField.WAKEUP_DURATION,
|
||||
name="Wakeup time",
|
||||
translation_key="wakeup_time",
|
||||
native_unit_of_measurement=UnitOfTime.SECONDS,
|
||||
icon="mdi:sleep-off",
|
||||
device_class=SensorDeviceClass.DURATION,
|
||||
|
|
|
@ -27,5 +27,104 @@
|
|||
"create_entry": {
|
||||
"default": "Successfully authenticated with Withings."
|
||||
}
|
||||
},
|
||||
"entity": {
|
||||
"binary_sensor": {
|
||||
"in_bed": {
|
||||
"name": "In bed"
|
||||
}
|
||||
},
|
||||
"sensor": {
|
||||
"fat_mass": {
|
||||
"name": "Fat mass"
|
||||
},
|
||||
"fat_free_mass": {
|
||||
"name": "Fat free mass"
|
||||
},
|
||||
"muscle_mass": {
|
||||
"name": "Muscle mass"
|
||||
},
|
||||
"bone_mass": {
|
||||
"name": "Bone mass"
|
||||
},
|
||||
"height": {
|
||||
"name": "Height"
|
||||
},
|
||||
"body_temperature": {
|
||||
"name": "Body temperature"
|
||||
},
|
||||
"skin_temperature": {
|
||||
"name": "Skin temperature"
|
||||
},
|
||||
"fat_ratio": {
|
||||
"name": "Fat ratio"
|
||||
},
|
||||
"diastolic_blood_pressure": {
|
||||
"name": "Diastolic blood pressure"
|
||||
},
|
||||
"systolic_blood_pressure": {
|
||||
"name": "Systolic blood pressure"
|
||||
},
|
||||
"heart_pulse": {
|
||||
"name": "Heart pulse"
|
||||
},
|
||||
"spo2": {
|
||||
"name": "SpO2"
|
||||
},
|
||||
"hydration": {
|
||||
"name": "Hydration"
|
||||
},
|
||||
"pulse_wave_velocity": {
|
||||
"name": "Pulse wave velocity"
|
||||
},
|
||||
"breathing_disturbances_intensity": {
|
||||
"name": "Breathing disturbances intensity"
|
||||
},
|
||||
"deep_sleep": {
|
||||
"name": "Deep sleep"
|
||||
},
|
||||
"time_to_sleep": {
|
||||
"name": "Time to sleep"
|
||||
},
|
||||
"time_to_wakeup": {
|
||||
"name": "Time to wakeup"
|
||||
},
|
||||
"average_heart_rate": {
|
||||
"name": "Average heart rate"
|
||||
},
|
||||
"maximum_heart_rate": {
|
||||
"name": "Maximum heart rate"
|
||||
},
|
||||
"light_sleep": {
|
||||
"name": "Light sleep"
|
||||
},
|
||||
"rem_sleep": {
|
||||
"name": "REM sleep"
|
||||
},
|
||||
"average_respiratory_rate": {
|
||||
"name": "Average respiratory rate"
|
||||
},
|
||||
"maximum_respiratory_rate": {
|
||||
"name": "Maximum respiratory rate"
|
||||
},
|
||||
"minimum_respiratory_rate": {
|
||||
"name": "Minimum respiratory rate"
|
||||
},
|
||||
"sleep_score": {
|
||||
"name": "Sleep score"
|
||||
},
|
||||
"snoring": {
|
||||
"name": "Snoring"
|
||||
},
|
||||
"snoring_episode_count": {
|
||||
"name": "Snoring episode count"
|
||||
},
|
||||
"wakeup_count": {
|
||||
"name": "Wakeup count"
|
||||
},
|
||||
"wakeup_time": {
|
||||
"name": "Wakeup time"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue