Add icon translations to Withings (#108385)

* Add icon translations to Withings

* Add icon translations to Withings

* Add icon translations to Withings

* Add icon translations to Withings

* Add icon translations to Withings
This commit is contained in:
Joost Lekkerkerker 2024-01-21 21:34:44 +01:00 committed by GitHub
parent e94493f83d
commit 883711fb35
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 124 additions and 47 deletions

View file

@ -47,7 +47,6 @@ async def async_setup_entry(
class WithingsBinarySensor(WithingsEntity, BinarySensorEntity):
"""Implementation of a Withings sensor."""
_attr_icon = "mdi:bed"
_attr_translation_key = "in_bed"
_attr_device_class = BinarySensorDeviceClass.OCCUPANCY
coordinator: WithingsBedPresenceDataUpdateCoordinator

View file

@ -0,0 +1,124 @@
{
"entity": {
"binary_sensor": {
"in_bed": {
"default": "mdi:bed-outline",
"state": {
"on": "mdi:bed",
"off": "mdi:bed-empty"
}
}
},
"sensor": {
"bone_mass": {
"default": "mdi:bone"
},
"heart_pulse": {
"default": "mdi:heart-pulse"
},
"hydration": {
"default": "mdi:water"
},
"deep_sleep": {
"default": "mdi:sleep"
},
"time_to_sleep": {
"default": "mdi:sleep"
},
"time_to_wakeup": {
"default": "mdi:sleep-off"
},
"average_heart_rate": {
"default": "mdi:heart-pulse"
},
"maximum_heart_rate": {
"default": "mdi:heart-pulse"
},
"minimum_heart_rate": {
"default": "mdi:heart-pulse"
},
"light_sleep": {
"default": "mdi:sleep"
},
"rem_sleep": {
"default": "mdi:sleep"
},
"sleep_score": {
"default": "mdi:medal"
},
"wakeup_count": {
"default": "mdi:sleep-off"
},
"wakeup_time": {
"default": "mdi:sleep-off"
},
"activity_steps_today": {
"default": "mdi:shoe-print"
},
"activity_distance_today": {
"default": "mdi:map-marker-distance"
},
"activity_elevation_today": {
"default": "mdi:stairs-up"
},
"step_goal": {
"default": "mdi:shoe-print"
},
"sleep_goal": {
"default": "mdi:bed-clock"
},
"workout_distance": {
"default": "mdi:map-marker-distance"
},
"workout_type": {
"state": {
"walk": "mdi:walk",
"run": "mdi:run",
"hiking": "mdi:hiking",
"skating": "mdi:skateboarding",
"bicycling": "mdi:bike",
"swimming": "mdi:swim",
"surfing": "mdi:surfing",
"kitesurfing": "mdi:kitesurfing",
"windsurfing": "mdi:kitesurfing",
"tennis": "mdi:tennis",
"table_tennis": "mdi:table-tennis",
"squash": "mdi:racquetball",
"badminton": "mdi:badminton",
"lift_weights": "mdi:weight-lifter",
"basket_ball": "mdi:basketball",
"soccer": "mdi:soccer",
"football": "mdi:football",
"rugby": "mdi:rugby",
"volley_ball": "mdi:volleyball",
"waterpolo": "mdi:water-polo",
"horse_riding": "mdi:horse-human",
"golf": "mdi:golf",
"yoga": "mdi:yoga",
"dancing": "mdi:human-female-dance",
"boxing": "mdi:boxing-glove",
"fencing": "mdi:fencing",
"martial_arts": "mdi:karate",
"skiing": "mdi:ski",
"snowboarding": "mdi:snowboard",
"rowing": "mdi:rowing",
"baseball": "mdi:baseball",
"handball": "mdi:handball",
"hockey": "mdi:hockey-sticks",
"ice_hockey": "mdi:hockey-sticks",
"climbing": "mdi:carabiner",
"ice_skating": "mdi:skate"
}
},
"workout_elevation": {
"default": "mdi:stairs-up"
},
"workout_pause_duration": {
"default": "mdi:timer-pause"
},
"workout_duration": {
"default": "mdi:timer"
}
}
}
}

View file

@ -107,7 +107,6 @@ MEASUREMENT_SENSORS: dict[
key="bone_mass_kg",
measurement_type=MeasurementType.BONE_MASS,
translation_key="bone_mass",
icon="mdi:bone",
native_unit_of_measurement=UnitOfMass.KILOGRAMS,
suggested_display_precision=2,
device_class=SensorDeviceClass.WEIGHT,
@ -173,7 +172,6 @@ MEASUREMENT_SENSORS: dict[
measurement_type=MeasurementType.HEART_RATE,
translation_key="heart_pulse",
native_unit_of_measurement=UOM_BEATS_PER_MINUTE,
icon="mdi:heart-pulse",
state_class=SensorStateClass.MEASUREMENT,
),
MeasurementType.SP02: WithingsMeasurementSensorEntityDescription(
@ -189,7 +187,6 @@ MEASUREMENT_SENSORS: dict[
translation_key="hydration",
native_unit_of_measurement=UnitOfMass.KILOGRAMS,
device_class=SensorDeviceClass.WEIGHT,
icon="mdi:water",
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,
),
@ -283,7 +280,6 @@ SLEEP_SENSORS = [
value_fn=lambda sleep_summary: sleep_summary.deep_sleep_duration,
translation_key="deep_sleep",
native_unit_of_measurement=UnitOfTime.SECONDS,
icon="mdi:sleep",
device_class=SensorDeviceClass.DURATION,
state_class=SensorStateClass.MEASUREMENT,
),
@ -292,7 +288,6 @@ SLEEP_SENSORS = [
value_fn=lambda sleep_summary: sleep_summary.sleep_latency,
translation_key="time_to_sleep",
native_unit_of_measurement=UnitOfTime.SECONDS,
icon="mdi:sleep",
device_class=SensorDeviceClass.DURATION,
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,
@ -302,7 +297,6 @@ SLEEP_SENSORS = [
value_fn=lambda sleep_summary: sleep_summary.wake_up_latency,
translation_key="time_to_wakeup",
native_unit_of_measurement=UnitOfTime.SECONDS,
icon="mdi:sleep-off",
device_class=SensorDeviceClass.DURATION,
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,
@ -312,7 +306,6 @@ SLEEP_SENSORS = [
value_fn=lambda sleep_summary: sleep_summary.average_heart_rate,
translation_key="average_heart_rate",
native_unit_of_measurement=UOM_BEATS_PER_MINUTE,
icon="mdi:heart-pulse",
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,
),
@ -321,7 +314,6 @@ SLEEP_SENSORS = [
value_fn=lambda sleep_summary: sleep_summary.max_heart_rate,
translation_key="maximum_heart_rate",
native_unit_of_measurement=UOM_BEATS_PER_MINUTE,
icon="mdi:heart-pulse",
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,
),
@ -330,7 +322,6 @@ SLEEP_SENSORS = [
value_fn=lambda sleep_summary: sleep_summary.min_heart_rate,
translation_key="minimum_heart_rate",
native_unit_of_measurement=UOM_BEATS_PER_MINUTE,
icon="mdi:heart-pulse",
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,
),
@ -339,7 +330,6 @@ SLEEP_SENSORS = [
value_fn=lambda sleep_summary: sleep_summary.light_sleep_duration,
translation_key="light_sleep",
native_unit_of_measurement=UnitOfTime.SECONDS,
icon="mdi:sleep",
device_class=SensorDeviceClass.DURATION,
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,
@ -349,7 +339,6 @@ SLEEP_SENSORS = [
value_fn=lambda sleep_summary: sleep_summary.rem_sleep_duration,
translation_key="rem_sleep",
native_unit_of_measurement=UnitOfTime.SECONDS,
icon="mdi:sleep",
device_class=SensorDeviceClass.DURATION,
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,
@ -383,7 +372,6 @@ SLEEP_SENSORS = [
value_fn=lambda sleep_summary: sleep_summary.sleep_score,
translation_key="sleep_score",
native_unit_of_measurement=SCORE_POINTS,
icon="mdi:medal",
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,
),
@ -406,7 +394,6 @@ SLEEP_SENSORS = [
value_fn=lambda sleep_summary: sleep_summary.wake_up_count,
translation_key="wakeup_count",
native_unit_of_measurement=UOM_FREQUENCY,
icon="mdi:sleep-off",
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,
),
@ -415,7 +402,6 @@ SLEEP_SENSORS = [
value_fn=lambda sleep_summary: sleep_summary.total_time_awake,
translation_key="wakeup_time",
native_unit_of_measurement=UnitOfTime.SECONDS,
icon="mdi:sleep-off",
device_class=SensorDeviceClass.DURATION,
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,
@ -435,7 +421,6 @@ ACTIVITY_SENSORS = [
key="activity_steps_today",
value_fn=lambda activity: activity.steps,
translation_key="activity_steps_today",
icon="mdi:shoe-print",
native_unit_of_measurement="steps",
state_class=SensorStateClass.TOTAL,
),
@ -444,7 +429,6 @@ ACTIVITY_SENSORS = [
value_fn=lambda activity: activity.distance,
translation_key="activity_distance_today",
suggested_display_precision=0,
icon="mdi:map-marker-distance",
native_unit_of_measurement=UnitOfLength.METERS,
device_class=SensorDeviceClass.DISTANCE,
state_class=SensorStateClass.TOTAL,
@ -453,7 +437,6 @@ ACTIVITY_SENSORS = [
key="activity_floors_climbed_today",
value_fn=lambda activity: activity.elevation,
translation_key="activity_elevation_today",
icon="mdi:stairs-up",
native_unit_of_measurement=UnitOfLength.METERS,
device_class=SensorDeviceClass.DISTANCE,
state_class=SensorStateClass.TOTAL,
@ -532,7 +515,6 @@ GOALS_SENSORS: dict[str, WithingsGoalsSensorEntityDescription] = {
STEP_GOAL: WithingsGoalsSensorEntityDescription(
key="step_goal",
value_fn=lambda goals: goals.steps,
icon="mdi:shoe-print",
translation_key="step_goal",
native_unit_of_measurement="steps",
state_class=SensorStateClass.MEASUREMENT,
@ -540,7 +522,6 @@ GOALS_SENSORS: dict[str, WithingsGoalsSensorEntityDescription] = {
SLEEP_GOAL: WithingsGoalsSensorEntityDescription(
key="sleep_goal",
value_fn=lambda goals: goals.sleep,
icon="mdi:bed-clock",
translation_key="sleep_goal",
native_unit_of_measurement=UnitOfTime.SECONDS,
suggested_unit_of_measurement=UnitOfTime.HOURS,
@ -592,13 +573,11 @@ WORKOUT_SENSORS = [
device_class=SensorDeviceClass.DISTANCE,
native_unit_of_measurement=UnitOfLength.METERS,
suggested_display_precision=0,
icon="mdi:map-marker-distance",
),
WithingsWorkoutSensorEntityDescription(
key="workout_floors_climbed",
value_fn=lambda workout: workout.elevation,
translation_key="workout_elevation",
icon="mdi:stairs-up",
native_unit_of_measurement=UnitOfLength.METERS,
device_class=SensorDeviceClass.DISTANCE,
),
@ -611,7 +590,6 @@ WORKOUT_SENSORS = [
key="workout_pause_duration",
value_fn=lambda workout: workout.pause_duration or 0,
translation_key="workout_pause_duration",
icon="mdi:timer-pause",
device_class=SensorDeviceClass.DURATION,
native_unit_of_measurement=UnitOfTime.SECONDS,
suggested_unit_of_measurement=UnitOfTime.MINUTES,
@ -622,7 +600,6 @@ WORKOUT_SENSORS = [
workout.end_date - workout.start_date
).total_seconds(),
translation_key="workout_duration",
icon="mdi:timer",
device_class=SensorDeviceClass.DURATION,
native_unit_of_measurement=UnitOfTime.SECONDS,
suggested_unit_of_measurement=UnitOfTime.MINUTES,

View file

@ -34,7 +34,6 @@
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'henk Average heart rate',
'icon': 'mdi:heart-pulse',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'bpm',
}),
@ -79,7 +78,6 @@
'attributes': ReadOnlyDict({
'device_class': 'weight',
'friendly_name': 'henk Bone mass',
'icon': 'mdi:bone',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfMass.KILOGRAMS: 'kg'>,
}),
@ -121,7 +119,6 @@
'attributes': ReadOnlyDict({
'device_class': 'duration',
'friendly_name': 'henk Deep sleep',
'icon': 'mdi:sleep',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfTime.SECONDS: 's'>,
}),
@ -151,7 +148,6 @@
'attributes': ReadOnlyDict({
'device_class': 'distance',
'friendly_name': 'henk Distance travelled last workout',
'icon': 'mdi:map-marker-distance',
'unit_of_measurement': <UnitOfLength.METERS: 'm'>,
}),
'context': <ANY>,
@ -166,7 +162,6 @@
'attributes': ReadOnlyDict({
'device_class': 'distance',
'friendly_name': 'henk Distance travelled today',
'icon': 'mdi:map-marker-distance',
'last_reset': '2023-10-20T00:00:00-07:00',
'state_class': <SensorStateClass.TOTAL: 'total'>,
'unit_of_measurement': <UnitOfLength.METERS: 'm'>,
@ -183,7 +178,6 @@
'attributes': ReadOnlyDict({
'device_class': 'distance',
'friendly_name': 'henk Elevation change last workout',
'icon': 'mdi:stairs-up',
'unit_of_measurement': <UnitOfLength.METERS: 'm'>,
}),
'context': <ANY>,
@ -198,7 +192,6 @@
'attributes': ReadOnlyDict({
'device_class': 'distance',
'friendly_name': 'henk Elevation change today',
'icon': 'mdi:stairs-up',
'last_reset': '2023-10-20T00:00:00-07:00',
'state_class': <SensorStateClass.TOTAL: 'total'>,
'unit_of_measurement': <UnitOfLength.METERS: 'm'>,
@ -273,7 +266,6 @@
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'henk Heart pulse',
'icon': 'mdi:heart-pulse',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'bpm',
}),
@ -304,7 +296,6 @@
'attributes': ReadOnlyDict({
'device_class': 'weight',
'friendly_name': 'henk Hydration',
'icon': 'mdi:water',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfMass.KILOGRAMS: 'kg'>,
}),
@ -351,7 +342,6 @@
'attributes': ReadOnlyDict({
'device_class': 'duration',
'friendly_name': 'henk Last workout duration',
'icon': 'mdi:timer',
'unit_of_measurement': <UnitOfTime.SECONDS: 's'>,
}),
'context': <ANY>,
@ -442,7 +432,6 @@
'attributes': ReadOnlyDict({
'device_class': 'duration',
'friendly_name': 'henk Light sleep',
'icon': 'mdi:sleep',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfTime.SECONDS: 's'>,
}),
@ -457,7 +446,6 @@
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'henk Maximum heart rate',
'icon': 'mdi:heart-pulse',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'bpm',
}),
@ -486,7 +474,6 @@
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'henk Minimum heart rate',
'icon': 'mdi:heart-pulse',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'bpm',
}),
@ -547,7 +534,6 @@
'attributes': ReadOnlyDict({
'device_class': 'duration',
'friendly_name': 'henk Pause during last workout',
'icon': 'mdi:timer-pause',
'unit_of_measurement': <UnitOfTime.SECONDS: 's'>,
}),
'context': <ANY>,
@ -577,7 +563,6 @@
'attributes': ReadOnlyDict({
'device_class': 'duration',
'friendly_name': 'henk REM sleep',
'icon': 'mdi:sleep',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfTime.SECONDS: 's'>,
}),
@ -608,7 +593,6 @@
'attributes': ReadOnlyDict({
'device_class': 'duration',
'friendly_name': 'henk Sleep goal',
'icon': 'mdi:bed-clock',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfTime.SECONDS: 's'>,
}),
@ -623,7 +607,6 @@
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'henk Sleep score',
'icon': 'mdi:medal',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'points',
}),
@ -694,7 +677,6 @@
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'henk Step goal',
'icon': 'mdi:shoe-print',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'steps',
}),
@ -709,7 +691,6 @@
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'henk Steps today',
'icon': 'mdi:shoe-print',
'last_reset': '2023-10-20T00:00:00-07:00',
'state_class': <SensorStateClass.TOTAL: 'total'>,
'unit_of_measurement': 'steps',
@ -755,7 +736,6 @@
'attributes': ReadOnlyDict({
'device_class': 'duration',
'friendly_name': 'henk Time to sleep',
'icon': 'mdi:sleep',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfTime.SECONDS: 's'>,
}),
@ -771,7 +751,6 @@
'attributes': ReadOnlyDict({
'device_class': 'duration',
'friendly_name': 'henk Time to wakeup',
'icon': 'mdi:sleep-off',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfTime.SECONDS: 's'>,
}),
@ -827,7 +806,6 @@
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'henk Wakeup count',
'icon': 'mdi:sleep-off',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'times',
}),
@ -843,7 +821,6 @@
'attributes': ReadOnlyDict({
'device_class': 'duration',
'friendly_name': 'henk Wakeup time',
'icon': 'mdi:sleep-off',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfTime.SECONDS: 's'>,
}),