Correct device class and state class for wind direction sensors (#141393)

* Fix state class on wind direction sensors

* Update snapshots
pull/141477/head
Robert Resch 2025-03-26 13:48:08 +01:00 committed by GitHub
parent 21d5885ded
commit aa493ff97d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 203 additions and 186 deletions

View File

@ -213,7 +213,8 @@ SENSOR_TYPES: tuple[NetatmoSensorEntityDescription, ...] = (
netatmo_name="wind_angle",
entity_registry_enabled_default=False,
native_unit_of_measurement=DEGREE,
state_class=SensorStateClass.MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT_ANGLE,
device_class=SensorDeviceClass.WIND_DIRECTION,
),
NetatmoSensorEntityDescription(
key="windstrength",
@ -235,7 +236,8 @@ SENSOR_TYPES: tuple[NetatmoSensorEntityDescription, ...] = (
netatmo_name="gust_angle",
entity_registry_enabled_default=False,
native_unit_of_measurement=DEGREE,
state_class=SensorStateClass.MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT_ANGLE,
device_class=SensorDeviceClass.WIND_DIRECTION,
),
NetatmoSensorEntityDescription(
key="guststrength",
@ -345,7 +347,8 @@ PUBLIC_WEATHER_STATION_TYPES: tuple[
key="windangle_value",
entity_registry_enabled_default=False,
native_unit_of_measurement=DEGREE,
state_class=SensorStateClass.MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT_ANGLE,
device_class=SensorDeviceClass.WIND_DIRECTION,
value_fn=lambda area: area.get_latest_wind_angles(),
),
NetatmoPublicWeatherSensorEntityDescription(
@ -360,7 +363,8 @@ PUBLIC_WEATHER_STATION_TYPES: tuple[
translation_key="gust_angle",
entity_registry_enabled_default=False,
native_unit_of_measurement=DEGREE,
state_class=SensorStateClass.MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT_ANGLE,
device_class=SensorDeviceClass.WIND_DIRECTION,
value_fn=lambda area: area.get_latest_gust_angles(),
),
NetatmoPublicWeatherSensorEntityDescription(

View File

@ -89,7 +89,8 @@ WEATHER_SENSOR_TYPES: tuple[SensorEntityDescription, ...] = (
key=ATTR_API_WIND_BEARING,
name="Wind bearing",
native_unit_of_measurement=DEGREE,
state_class=SensorStateClass.MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT_ANGLE,
device_class=SensorDeviceClass.WIND_DIRECTION,
),
SensorEntityDescription(
key=ATTR_API_HUMIDITY,

View File

@ -236,7 +236,8 @@ SENSOR_TYPES = (
key="winddirection",
name="Wind direction",
icon="mdi:compass",
state_class=SensorStateClass.MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT_ANGLE,
device_class=SensorDeviceClass.WIND_DIRECTION,
native_unit_of_measurement=DEGREE,
),
SensorEntityDescription(

View File

@ -161,7 +161,8 @@ SENSOR_TYPES = (
RfxtrxSensorEntityDescription(
key="Wind direction",
translation_key="wind_direction",
state_class=SensorStateClass.MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT_ANGLE,
device_class=SensorDeviceClass.WIND_DIRECTION,
native_unit_of_measurement=DEGREE,
),
RfxtrxSensorEntityDescription(

View File

@ -89,7 +89,8 @@ SENSOR_TYPES: tuple[TrafikverketSensorEntityDescription, ...] = (
translation_key="wind_direction",
value_fn=lambda data: data.winddirection,
native_unit_of_measurement=DEGREE,
state_class=SensorStateClass.MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT_ANGLE,
device_class=SensorDeviceClass.WIND_DIRECTION,
),
TrafikverketSensorEntityDescription(
key="wind_speed",

View File

@ -82,7 +82,8 @@ SENSOR_TYPES: tuple[ZamgSensorEntityDescription, ...] = (
key="wind_bearing",
name="Wind Bearing",
native_unit_of_measurement=DEGREE,
state_class=SensorStateClass.MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT_ANGLE,
device_class=SensorDeviceClass.WIND_DIRECTION,
para_name="DD",
),
ZamgSensorEntityDescription(

View File

@ -1501,7 +1501,7 @@
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'state_class': <SensorStateClass.MEASUREMENT_ANGLE: 'measurement_angle'>,
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
@ -1520,7 +1520,7 @@
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_device_class': <SensorDeviceClass.WIND_DIRECTION: 'wind_direction'>,
'original_icon': None,
'original_name': 'Gust angle',
'platform': 'netatmo',
@ -1535,10 +1535,11 @@
StateSnapshot({
'attributes': ReadOnlyDict({
'attribution': 'Data provided by Netatmo',
'device_class': 'wind_direction',
'friendly_name': 'Home avg Gust angle',
'latitude': 32.17901225,
'longitude': -117.17901225,
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'state_class': <SensorStateClass.MEASUREMENT_ANGLE: 'measurement_angle'>,
'unit_of_measurement': '°',
}),
'context': <ANY>,
@ -1659,60 +1660,6 @@
'state': '63.2',
})
# ---
# name: test_entity[sensor.home_avg_none-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.home_avg_none',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': None,
'platform': 'netatmo',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': 'Home-avg-windangle_value',
'unit_of_measurement': '°',
})
# ---
# name: test_entity[sensor.home_avg_none-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'attribution': 'Data provided by Netatmo',
'friendly_name': 'Home avg None',
'latitude': 32.17901225,
'longitude': -117.17901225,
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': '°',
}),
'context': <ANY>,
'entity_id': 'sensor.home_avg_none',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '17.0',
})
# ---
# name: test_entity[sensor.home_avg_precipitation-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
@ -1939,6 +1886,61 @@
'state': '22.7',
})
# ---
# name: test_entity[sensor.home_avg_wind_direction-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT_ANGLE: 'measurement_angle'>,
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.home_avg_wind_direction',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SensorDeviceClass.WIND_DIRECTION: 'wind_direction'>,
'original_icon': None,
'original_name': 'Wind direction',
'platform': 'netatmo',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': 'Home-avg-windangle_value',
'unit_of_measurement': '°',
})
# ---
# name: test_entity[sensor.home_avg_wind_direction-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'attribution': 'Data provided by Netatmo',
'device_class': 'wind_direction',
'friendly_name': 'Home avg Wind direction',
'latitude': 32.17901225,
'longitude': -117.17901225,
'state_class': <SensorStateClass.MEASUREMENT_ANGLE: 'measurement_angle'>,
'unit_of_measurement': '°',
}),
'context': <ANY>,
'entity_id': 'sensor.home_avg_wind_direction',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '17.0',
})
# ---
# name: test_entity[sensor.home_avg_wind_speed-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
@ -2061,7 +2063,7 @@
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'state_class': <SensorStateClass.MEASUREMENT_ANGLE: 'measurement_angle'>,
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
@ -2080,7 +2082,7 @@
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_device_class': <SensorDeviceClass.WIND_DIRECTION: 'wind_direction'>,
'original_icon': None,
'original_name': 'Gust angle',
'platform': 'netatmo',
@ -2095,10 +2097,11 @@
StateSnapshot({
'attributes': ReadOnlyDict({
'attribution': 'Data provided by Netatmo',
'device_class': 'wind_direction',
'friendly_name': 'Home max Gust angle',
'latitude': 32.17901225,
'longitude': -117.17901225,
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'state_class': <SensorStateClass.MEASUREMENT_ANGLE: 'measurement_angle'>,
'unit_of_measurement': '°',
}),
'context': <ANY>,
@ -2219,60 +2222,6 @@
'state': '76',
})
# ---
# name: test_entity[sensor.home_max_none-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.home_max_none',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': None,
'platform': 'netatmo',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': 'Home-max-windangle_value',
'unit_of_measurement': '°',
})
# ---
# name: test_entity[sensor.home_max_none-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'attribution': 'Data provided by Netatmo',
'friendly_name': 'Home max None',
'latitude': 32.17901225,
'longitude': -117.17901225,
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': '°',
}),
'context': <ANY>,
'entity_id': 'sensor.home_max_none',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '17',
})
# ---
# name: test_entity[sensor.home_max_precipitation-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
@ -2499,6 +2448,61 @@
'state': '27.4',
})
# ---
# name: test_entity[sensor.home_max_wind_direction-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT_ANGLE: 'measurement_angle'>,
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.home_max_wind_direction',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SensorDeviceClass.WIND_DIRECTION: 'wind_direction'>,
'original_icon': None,
'original_name': 'Wind direction',
'platform': 'netatmo',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': 'Home-max-windangle_value',
'unit_of_measurement': '°',
})
# ---
# name: test_entity[sensor.home_max_wind_direction-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'attribution': 'Data provided by Netatmo',
'device_class': 'wind_direction',
'friendly_name': 'Home max Wind direction',
'latitude': 32.17901225,
'longitude': -117.17901225,
'state_class': <SensorStateClass.MEASUREMENT_ANGLE: 'measurement_angle'>,
'unit_of_measurement': '°',
}),
'context': <ANY>,
'entity_id': 'sensor.home_max_wind_direction',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '17',
})
# ---
# name: test_entity[sensor.home_max_wind_speed-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
@ -2621,7 +2625,7 @@
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'state_class': <SensorStateClass.MEASUREMENT_ANGLE: 'measurement_angle'>,
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
@ -2640,7 +2644,7 @@
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_device_class': <SensorDeviceClass.WIND_DIRECTION: 'wind_direction'>,
'original_icon': None,
'original_name': 'Gust angle',
'platform': 'netatmo',
@ -2655,10 +2659,11 @@
StateSnapshot({
'attributes': ReadOnlyDict({
'attribution': 'Data provided by Netatmo',
'device_class': 'wind_direction',
'friendly_name': 'Home min Gust angle',
'latitude': 32.17901225,
'longitude': -117.17901225,
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'state_class': <SensorStateClass.MEASUREMENT_ANGLE: 'measurement_angle'>,
'unit_of_measurement': '°',
}),
'context': <ANY>,
@ -2779,60 +2784,6 @@
'state': '56',
})
# ---
# name: test_entity[sensor.home_min_none-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.home_min_none',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': None,
'platform': 'netatmo',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': 'Home-min-windangle_value',
'unit_of_measurement': '°',
})
# ---
# name: test_entity[sensor.home_min_none-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'attribution': 'Data provided by Netatmo',
'friendly_name': 'Home min None',
'latitude': 32.17901225,
'longitude': -117.17901225,
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': '°',
}),
'context': <ANY>,
'entity_id': 'sensor.home_min_none',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '17',
})
# ---
# name: test_entity[sensor.home_min_precipitation-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
@ -3059,6 +3010,61 @@
'state': '19.8',
})
# ---
# name: test_entity[sensor.home_min_wind_direction-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT_ANGLE: 'measurement_angle'>,
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.home_min_wind_direction',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SensorDeviceClass.WIND_DIRECTION: 'wind_direction'>,
'original_icon': None,
'original_name': 'Wind direction',
'platform': 'netatmo',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': 'Home-min-windangle_value',
'unit_of_measurement': '°',
})
# ---
# name: test_entity[sensor.home_min_wind_direction-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'attribution': 'Data provided by Netatmo',
'device_class': 'wind_direction',
'friendly_name': 'Home min Wind direction',
'latitude': 32.17901225,
'longitude': -117.17901225,
'state_class': <SensorStateClass.MEASUREMENT_ANGLE: 'measurement_angle'>,
'unit_of_measurement': '°',
}),
'context': <ANY>,
'entity_id': 'sensor.home_min_wind_direction',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '17',
})
# ---
# name: test_entity[sensor.home_min_wind_speed-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
@ -6253,7 +6259,7 @@
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'state_class': <SensorStateClass.MEASUREMENT_ANGLE: 'measurement_angle'>,
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
@ -6272,7 +6278,7 @@
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_device_class': <SensorDeviceClass.WIND_DIRECTION: 'wind_direction'>,
'original_icon': None,
'original_name': 'Gust angle',
'platform': 'netatmo',
@ -6287,8 +6293,9 @@
StateSnapshot({
'attributes': ReadOnlyDict({
'attribution': 'Data provided by Netatmo',
'device_class': 'wind_direction',
'friendly_name': 'Villa Garden Gust angle',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'state_class': <SensorStateClass.MEASUREMENT_ANGLE: 'measurement_angle'>,
'unit_of_measurement': '°',
}),
'context': <ANY>,
@ -6524,7 +6531,7 @@
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'state_class': <SensorStateClass.MEASUREMENT_ANGLE: 'measurement_angle'>,
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
@ -6543,7 +6550,7 @@
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_device_class': <SensorDeviceClass.WIND_DIRECTION: 'wind_direction'>,
'original_icon': None,
'original_name': 'Wind angle',
'platform': 'netatmo',
@ -6558,8 +6565,9 @@
StateSnapshot({
'attributes': ReadOnlyDict({
'attribution': 'Data provided by Netatmo',
'device_class': 'wind_direction',
'friendly_name': 'Villa Garden Wind angle',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'state_class': <SensorStateClass.MEASUREMENT_ANGLE: 'measurement_angle'>,
'unit_of_measurement': '°',
}),
'context': <ANY>,