diff --git a/homeassistant/components/withings/binary_sensor.py b/homeassistant/components/withings/binary_sensor.py index 6b072030bda..e1351d7c019 100644 --- a/homeassistant/components/withings/binary_sensor.py +++ b/homeassistant/components/withings/binary_sensor.py @@ -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, diff --git a/homeassistant/components/withings/common.py b/homeassistant/components/withings/common.py index 17e3c551bcc..76124cfff91 100644 --- a/homeassistant/components/withings/common.py +++ b/homeassistant/components/withings/common.py @@ -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 ) diff --git a/homeassistant/components/withings/sensor.py b/homeassistant/components/withings/sensor.py index c2cdd89a17f..4f98daacc42 100644 --- a/homeassistant/components/withings/sensor.py +++ b/homeassistant/components/withings/sensor.py @@ -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, diff --git a/homeassistant/components/withings/strings.json b/homeassistant/components/withings/strings.json index 8f8a32c95e7..424a0edadce 100644 --- a/homeassistant/components/withings/strings.json +++ b/homeassistant/components/withings/strings.json @@ -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" + } + } } }