From 1110ca5dc61a1fb9312e878a0d07eb1ea7ed573c Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Fri, 20 Feb 2026 11:32:45 +0100 Subject: [PATCH 01/11] Use shorthand attributes in geonetnz_volcano (#163596) --- .../components/geonetnz_volcano/sensor.py | 24 ++++--------------- 1 file changed, 4 insertions(+), 20 deletions(-) diff --git a/homeassistant/components/geonetnz_volcano/sensor.py b/homeassistant/components/geonetnz_volcano/sensor.py index c55cbd76615b4f..55fb7a477bf3a3 100644 --- a/homeassistant/components/geonetnz_volcano/sensor.py +++ b/homeassistant/components/geonetnz_volcano/sensor.py @@ -58,11 +58,12 @@ def async_add_sensor(feed_manager, external_id, unit_system): class GeonetnzVolcanoSensor(SensorEntity): """Represents an external event with GeoNet NZ Volcano feed data.""" + _attr_icon = DEFAULT_ICON + _attr_native_unit_of_measurement = "alert level" _attr_should_poll = False def __init__(self, config_entry_id, feed_manager, external_id, unit_system): """Initialize entity with data from feed entry.""" - self._config_entry_id = config_entry_id self._feed_manager = feed_manager self._external_id = external_id self._attr_unique_id = f"{config_entry_id}_{external_id}" @@ -71,8 +72,6 @@ def __init__(self, config_entry_id, feed_manager, external_id, unit_system): self._distance = None self._latitude = None self._longitude = None - self._attribution = None - self._alert_level = None self._activity = None self._hazards = None self._feed_last_update = None @@ -124,7 +123,7 @@ def _update_from_feed(self, feed_entry, last_update, last_update_successful): self._latitude = round(feed_entry.coordinates[0], 5) self._longitude = round(feed_entry.coordinates[1], 5) self._attr_attribution = feed_entry.attribution - self._alert_level = feed_entry.alert_level + self._attr_native_value = feed_entry.alert_level self._activity = feed_entry.activity self._hazards = feed_entry.hazards self._feed_last_update = dt_util.as_utc(last_update) if last_update else None @@ -133,25 +132,10 @@ def _update_from_feed(self, feed_entry, last_update, last_update_successful): ) @property - def native_value(self): - """Return the state of the sensor.""" - return self._alert_level - - @property - def icon(self): - """Return the icon to use in the frontend, if any.""" - return DEFAULT_ICON - - @property - def name(self) -> str | None: + def name(self) -> str: """Return the name of the entity.""" return f"Volcano {self._title}" - @property - def native_unit_of_measurement(self): - """Return the unit of measurement.""" - return "alert level" - @property def extra_state_attributes(self) -> dict[str, Any]: """Return the device state attributes.""" From 12591a95c69c3b14b963377a2a985382829533c3 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Fri, 20 Feb 2026 11:33:18 +0100 Subject: [PATCH 02/11] Use shorthand attributes in torque (#163597) --- homeassistant/components/torque/sensor.py | 29 ++++------------------- 1 file changed, 5 insertions(+), 24 deletions(-) diff --git a/homeassistant/components/torque/sensor.py b/homeassistant/components/torque/sensor.py index 8d4183e2961709..01dbf0237abf36 100644 --- a/homeassistant/components/torque/sensor.py +++ b/homeassistant/components/torque/sensor.py @@ -131,34 +131,15 @@ def get(self, request: web.Request) -> str | None: class TorqueSensor(SensorEntity): """Representation of a Torque sensor.""" + _attr_icon = "mdi:car" + def __init__(self, name, unit): """Initialize the sensor.""" - self._name = name - self._unit = unit - self._state = None - - @property - def name(self): - """Return the name of the sensor.""" - return self._name - - @property - def native_unit_of_measurement(self): - """Return the unit of measurement.""" - return self._unit - - @property - def native_value(self): - """Return the state of the sensor.""" - return self._state - - @property - def icon(self): - """Return the default icon of the sensor.""" - return "mdi:car" + self._attr_name = name + self._attr_native_unit_of_measurement = unit @callback def async_on_update(self, value): """Receive an update.""" - self._state = value + self._attr_native_value = value self.async_write_ha_state() From 5d818cd2ba6b4353ac070cfe32b20f4675502c55 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Fri, 20 Feb 2026 11:37:40 +0100 Subject: [PATCH 03/11] Use shorthand attributes in transport_nsw (#163598) --- .../components/transport_nsw/sensor.py | 31 ++++--------------- 1 file changed, 6 insertions(+), 25 deletions(-) diff --git a/homeassistant/components/transport_nsw/sensor.py b/homeassistant/components/transport_nsw/sensor.py index 49a11a57f65b08..1f247a0c699dd1 100644 --- a/homeassistant/components/transport_nsw/sensor.py +++ b/homeassistant/components/transport_nsw/sensor.py @@ -78,25 +78,16 @@ class TransportNSWSensor(SensorEntity): _attr_attribution = "Data provided by Transport NSW" _attr_device_class = SensorDeviceClass.DURATION + _attr_native_unit_of_measurement = UnitOfTime.MINUTES _attr_state_class = SensorStateClass.MEASUREMENT def __init__(self, data, stop_id, name): """Initialize the sensor.""" self.data = data - self._name = name + self._attr_name = name self._stop_id = stop_id - self._times = self._state = None - self._icon = ICONS[None] - - @property - def name(self): - """Return the name of the sensor.""" - return self._name - - @property - def native_value(self): - """Return the state of the sensor.""" - return self._state + self._times = None + self._attr_icon = ICONS[None] @property def extra_state_attributes(self) -> dict[str, Any] | None: @@ -113,22 +104,12 @@ def extra_state_attributes(self) -> dict[str, Any] | None: } return None - @property - def native_unit_of_measurement(self): - """Return the unit this state is expressed in.""" - return UnitOfTime.MINUTES - - @property - def icon(self): - """Icon to use in the frontend, if any.""" - return self._icon - def update(self) -> None: """Get the latest data from Transport NSW and update the states.""" self.data.update() self._times = self.data.info - self._state = self._times[ATTR_DUE_IN] - self._icon = ICONS[self._times[ATTR_MODE]] + self._attr_native_value = self._times[ATTR_DUE_IN] + self._attr_icon = ICONS[self._times[ATTR_MODE]] def _get_value(value): From eccaac4e94865567eac47f573c91457941a98f68 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Fri, 20 Feb 2026 11:38:11 +0100 Subject: [PATCH 04/11] Use shorthand attributes in rmvtransport (#163599) --- .../components/rmvtransport/sensor.py | 28 +++++-------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/homeassistant/components/rmvtransport/sensor.py b/homeassistant/components/rmvtransport/sensor.py index 4128831f8663ec..b85a731bac0d3f 100644 --- a/homeassistant/components/rmvtransport/sensor.py +++ b/homeassistant/components/rmvtransport/sensor.py @@ -122,6 +122,7 @@ class RMVDepartureSensor(SensorEntity): """Implementation of an RMV departure sensor.""" _attr_attribution = ATTRIBUTION + _attr_native_unit_of_measurement = UnitOfTime.MINUTES def __init__( self, @@ -137,7 +138,7 @@ def __init__( ): """Initialize the sensor.""" self._station = station - self._name = name + self._attr_name = name self._state = None self.data = RMVDepartureData( station, @@ -149,12 +150,7 @@ def __init__( max_journeys, timeout, ) - self._icon = ICONS[None] - - @property - def name(self): - """Return the name of the sensor.""" - return self._name + self._attr_icon = ICONS[None] @property def available(self) -> bool: @@ -181,32 +177,22 @@ def extra_state_attributes(self) -> dict[str, Any]: except IndexError: return {} - @property - def icon(self): - """Icon to use in the frontend, if any.""" - return self._icon - - @property - def native_unit_of_measurement(self): - """Return the unit this state is expressed in.""" - return UnitOfTime.MINUTES - async def async_update(self) -> None: """Get the latest data and update the state.""" await self.data.async_update() - if self._name == DEFAULT_NAME: - self._name = self.data.station + if self._attr_name == DEFAULT_NAME: + self._attr_name = self.data.station self._station = self.data.station if not self.data.departures: self._state = None - self._icon = ICONS[None] + self._attr_icon = ICONS[None] return self._state = self.data.departures[0].get("minutes") - self._icon = ICONS[self.data.departures[0].get("product")] + self._attr_icon = ICONS[self.data.departures[0].get("product")] class RMVDepartureData: From 63e4eaf79ed4d2cbc7ce94a370ed7492d15f5285 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Fri, 20 Feb 2026 11:41:56 +0100 Subject: [PATCH 05/11] Use shorthand attributes in netdata (#163605) --- homeassistant/components/netdata/sensor.py | 63 ++++++---------------- 1 file changed, 16 insertions(+), 47 deletions(-) diff --git a/homeassistant/components/netdata/sensor.py b/homeassistant/components/netdata/sensor.py index 4346cbe868950a..41adcd2095e243 100644 --- a/homeassistant/components/netdata/sensor.py +++ b/homeassistant/components/netdata/sensor.py @@ -113,35 +113,15 @@ class NetdataSensor(SensorEntity): def __init__(self, netdata, name, sensor, sensor_name, element, icon, unit, invert): """Initialize the Netdata sensor.""" self.netdata = netdata - self._state = None self._sensor = sensor self._element = element - self._sensor_name = self._sensor if sensor_name is None else sensor_name - self._name = name - self._icon = icon - self._unit_of_measurement = unit + if sensor_name is None: + sensor_name = self._sensor + self._attr_name = f"{name} {sensor_name}" + self._attr_icon = icon + self._attr_native_unit_of_measurement = unit self._invert = invert - @property - def name(self): - """Return the name of the sensor.""" - return f"{self._name} {self._sensor_name}" - - @property - def native_unit_of_measurement(self): - """Return the unit the value is expressed in.""" - return self._unit_of_measurement - - @property - def icon(self): - """Return the icon to use in the frontend, if any.""" - return self._icon - - @property - def native_value(self): - """Return the state of the resources.""" - return self._state - @property def available(self) -> bool: """Could the resource be accessed during the last update call.""" @@ -151,9 +131,9 @@ async def async_update(self) -> None: """Get the latest data from Netdata REST API.""" await self.netdata.async_update() resource_data = self.netdata.api.metrics.get(self._sensor) - self._state = round(resource_data["dimensions"][self._element]["value"], 2) * ( - -1 if self._invert else 1 - ) + self._attr_native_value = round( + resource_data["dimensions"][self._element]["value"], 2 + ) * (-1 if self._invert else 1) class NetdataAlarms(SensorEntity): @@ -162,29 +142,18 @@ class NetdataAlarms(SensorEntity): def __init__(self, netdata, name, host, port): """Initialize the Netdata alarm sensor.""" self.netdata = netdata - self._state = None - self._name = name + self._attr_name = f"{name} Alarms" self._host = host self._port = port @property - def name(self): - """Return the name of the sensor.""" - return f"{self._name} Alarms" - - @property - def native_value(self): - """Return the state of the resources.""" - return self._state - - @property - def icon(self): + def icon(self) -> str: """Status symbol if type is symbol.""" - if self._state == "ok": + if self._attr_native_value == "ok": return "mdi:check" - if self._state == "warning": + if self._attr_native_value == "warning": return "mdi:alert-outline" - if self._state == "critical": + if self._attr_native_value == "critical": return "mdi:alert" return "mdi:crosshairs-question" @@ -197,7 +166,7 @@ async def async_update(self) -> None: """Get the latest alarms from Netdata REST API.""" await self.netdata.async_update() alarms = self.netdata.api.alarms["alarms"] - self._state = None + self._attr_native_value = None number_of_alarms = len(alarms) number_of_relevant_alarms = number_of_alarms @@ -211,9 +180,9 @@ async def async_update(self) -> None: ): number_of_relevant_alarms = number_of_relevant_alarms - 1 elif alarms[alarm]["status"] == "CRITICAL": - self._state = "critical" + self._attr_native_value = "critical" return - self._state = "ok" if number_of_relevant_alarms == 0 else "warning" + self._attr_native_value = "ok" if number_of_relevant_alarms == 0 else "warning" class NetdataData: From cff5a12d5fa4b549a68edeba4efcfaf0b094548d Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Fri, 20 Feb 2026 11:43:23 +0100 Subject: [PATCH 06/11] Use shorthand attributes in reddit (#163600) --- homeassistant/components/reddit/sensor.py | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/homeassistant/components/reddit/sensor.py b/homeassistant/components/reddit/sensor.py index 0f758d565fa56e..963d7999c26b97 100644 --- a/homeassistant/components/reddit/sensor.py +++ b/homeassistant/components/reddit/sensor.py @@ -99,8 +99,12 @@ def setup_platform( class RedditSensor(SensorEntity): """Representation of a Reddit sensor.""" + _attr_icon = "mdi:reddit" + def __init__(self, reddit, subreddit: str, limit: int, sort_by: str) -> None: """Initialize the Reddit sensor.""" + self._attr_name = f"reddit_{subreddit}" + self._attr_native_value = 0 self._reddit = reddit self._subreddit = subreddit self._limit = limit @@ -108,16 +112,6 @@ def __init__(self, reddit, subreddit: str, limit: int, sort_by: str) -> None: self._subreddit_data: list = [] - @property - def name(self): - """Return the name of the sensor.""" - return f"reddit_{self._subreddit}" - - @property - def native_value(self): - """Return the state of the sensor.""" - return len(self._subreddit_data) - @property def extra_state_attributes(self) -> dict[str, Any]: """Return the state attributes.""" @@ -127,11 +121,6 @@ def extra_state_attributes(self) -> dict[str, Any]: CONF_SORT_BY: self._sort_by, } - @property - def icon(self): - """Return the icon to use in the frontend.""" - return "mdi:reddit" - def update(self) -> None: """Update data from Reddit API.""" self._subreddit_data = [] @@ -156,3 +145,5 @@ def update(self) -> None: except praw.exceptions.PRAWException as err: _LOGGER.error("Reddit error %s", err) + + self._attr_native_value = len(self._subreddit_data) From 4937c6521b691ce2f5cb10b02a3458762da91bb9 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Fri, 20 Feb 2026 11:43:44 +0100 Subject: [PATCH 07/11] Add type hint for icon property (#163609) --- homeassistant/components/atag/sensor.py | 2 +- homeassistant/components/input_datetime/__init__.py | 2 +- homeassistant/components/input_number/__init__.py | 2 +- homeassistant/components/itunes/media_player.py | 2 +- homeassistant/components/starline/sensor.py | 2 +- homeassistant/components/xiaomi_aqara/switch.py | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/homeassistant/components/atag/sensor.py b/homeassistant/components/atag/sensor.py index ca5bbd5e6140e2..48865503002e72 100644 --- a/homeassistant/components/atag/sensor.py +++ b/homeassistant/components/atag/sensor.py @@ -64,6 +64,6 @@ def native_value(self): return self.coordinator.atag.report[self._id].state @property - def icon(self): + def icon(self) -> str: """Return icon.""" return self.coordinator.atag.report[self._id].icon diff --git a/homeassistant/components/input_datetime/__init__.py b/homeassistant/components/input_datetime/__init__.py index ba183090277c7c..fb7394902331db 100644 --- a/homeassistant/components/input_datetime/__init__.py +++ b/homeassistant/components/input_datetime/__init__.py @@ -310,7 +310,7 @@ def has_time(self) -> bool: return self._config[CONF_HAS_TIME] @property - def icon(self): + def icon(self) -> str | None: """Return the icon to be used for this entity.""" return self._config.get(CONF_ICON) diff --git a/homeassistant/components/input_number/__init__.py b/homeassistant/components/input_number/__init__.py index 8d5cf877f8af44..81d1479be03b6c 100644 --- a/homeassistant/components/input_number/__init__.py +++ b/homeassistant/components/input_number/__init__.py @@ -243,7 +243,7 @@ def name(self): return self._config.get(CONF_NAME) @property - def icon(self): + def icon(self) -> str | None: """Return the icon to be used for this entity.""" return self._config.get(CONF_ICON) diff --git a/homeassistant/components/itunes/media_player.py b/homeassistant/components/itunes/media_player.py index 92e3aefe9750e6..373f1003b0a816 100644 --- a/homeassistant/components/itunes/media_player.py +++ b/homeassistant/components/itunes/media_player.py @@ -451,7 +451,7 @@ def name(self): return self.device_name @property - def icon(self): + def icon(self) -> str: """Return the icon to use in the frontend, if any.""" if self.selected is True: return "mdi:volume-high" diff --git a/homeassistant/components/starline/sensor.py b/homeassistant/components/starline/sensor.py index fee189dbf3b141..5fff61144dc3a7 100644 --- a/homeassistant/components/starline/sensor.py +++ b/homeassistant/components/starline/sensor.py @@ -120,7 +120,7 @@ def __init__( self.entity_description = description @property - def icon(self): + def icon(self) -> str | None: """Icon to use in the frontend, if any.""" if self._key == "battery": return icon_for_battery_level( diff --git a/homeassistant/components/xiaomi_aqara/switch.py b/homeassistant/components/xiaomi_aqara/switch.py index 6afd878f807798..69cba6491cdb71 100644 --- a/homeassistant/components/xiaomi_aqara/switch.py +++ b/homeassistant/components/xiaomi_aqara/switch.py @@ -158,7 +158,7 @@ def __init__( super().__init__(device, name, xiaomi_hub, config_entry) @property - def icon(self): + def icon(self) -> str: """Return the icon to use in the frontend, if any.""" if self._data_key == "status": return "mdi:power-plug" From f80e1dd25bcfb87dee2e03c83b1f5ca229974ce8 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Fri, 20 Feb 2026 11:49:04 +0100 Subject: [PATCH 08/11] Use shorthand attributes in homematic (#163610) --- homeassistant/components/homematic/entity.py | 26 +++++--------------- homeassistant/components/homematic/sensor.py | 2 +- 2 files changed, 7 insertions(+), 21 deletions(-) diff --git a/homeassistant/components/homematic/entity.py b/homeassistant/components/homematic/entity.py index 4cba934f3b1922..f9e8de703fb4f8 100644 --- a/homeassistant/components/homematic/entity.py +++ b/homeassistant/components/homematic/entity.py @@ -45,15 +45,16 @@ def __init__( entity_description: EntityDescription | None = None, ) -> None: """Initialize a generic HomeMatic device.""" - self._name = config.get(ATTR_NAME) + self._attr_name = config.get(ATTR_NAME) self._address = config.get(ATTR_ADDRESS) self._interface = config.get(ATTR_INTERFACE) self._channel = config.get(ATTR_CHANNEL) self._state = config.get(ATTR_PARAM) - self._unique_id = config.get(ATTR_UNIQUE_ID) + if unique_id := config.get(ATTR_UNIQUE_ID): + self._attr_unique_id = unique_id.replace(" ", "_") self._data: dict[str, Any] = {} self._connected = False - self._available = False + self._attr_available = False self._channel_map: dict[str, str] = {} if entity_description is not None: @@ -67,21 +68,6 @@ async def async_added_to_hass(self) -> None: """Load data init callbacks.""" self._subscribe_homematic_events() - @property - def unique_id(self): - """Return unique ID. HomeMatic entity IDs are unique by default.""" - return self._unique_id.replace(" ", "_") - - @property - def name(self): - """Return the name of the device.""" - return self._name - - @property - def available(self) -> bool: - """Return true if device is available.""" - return self._available - @property def extra_state_attributes(self) -> dict[str, Any]: """Return device specific state attributes.""" @@ -116,7 +102,7 @@ def update(self) -> None: self._load_data_from_hm() # Link events from pyhomematic - self._available = not self._hmdevice.UNREACH + self._attr_available = not self._hmdevice.UNREACH except Exception as err: # noqa: BLE001 self._connected = False _LOGGER.error("Exception while linking %s: %s", self._address, str(err)) @@ -132,7 +118,7 @@ def _hm_event_callback(self, device, caller, attribute, value): # Availability has changed if self.available != (not self._hmdevice.UNREACH): - self._available = not self._hmdevice.UNREACH + self._attr_available = not self._hmdevice.UNREACH has_changed = True # If it has changed data point, update Home Assistant diff --git a/homeassistant/components/homematic/sensor.py b/homeassistant/components/homematic/sensor.py index 0ddc319626e0c8..04b6546674cd7a 100644 --- a/homeassistant/components/homematic/sensor.py +++ b/homeassistant/components/homematic/sensor.py @@ -344,4 +344,4 @@ def _init_data_struct(self) -> None: if self._state: self._data.update({self._state: None}) else: - _LOGGER.critical("Unable to initialize sensor: %s", self._name) + _LOGGER.critical("Unable to initialize sensor: %s", self.name) From d6f30795188ea4b2cd9aadc7cd3d762836dd2ebd Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Fri, 20 Feb 2026 11:49:48 +0100 Subject: [PATCH 09/11] Use shorthand attributes in london_air (#163601) --- homeassistant/components/london_air/sensor.py | 26 ++++--------------- 1 file changed, 5 insertions(+), 21 deletions(-) diff --git a/homeassistant/components/london_air/sensor.py b/homeassistant/components/london_air/sensor.py index 33b21473735cd1..3560e9b332145e 100644 --- a/homeassistant/components/london_air/sensor.py +++ b/homeassistant/components/london_air/sensor.py @@ -107,36 +107,20 @@ def update(self): class AirSensor(SensorEntity): """Single authority air sensor.""" - ICON = "mdi:cloud-outline" + _attr_icon = "mdi:cloud-outline" def __init__(self, name, api_data): """Initialize the sensor.""" - self._name = name + self._attr_name = self._key = name self._api_data = api_data self._site_data = None - self._state = None self._updated = None - @property - def name(self): - """Return the name of the sensor.""" - return self._name - - @property - def native_value(self): - """Return the state of the sensor.""" - return self._state - @property def site_data(self): """Return the dict of sites data.""" return self._site_data - @property - def icon(self): - """Icon to use in the frontend, if any.""" - return self.ICON - @property def extra_state_attributes(self) -> dict[str, Any]: """Return other details about the sensor state.""" @@ -151,7 +135,7 @@ def update(self) -> None: sites_status: list = [] self._api_data.update() if self._api_data.data: - self._site_data = self._api_data.data[self._name] + self._site_data = self._api_data.data[self._key] self._updated = self._site_data[0]["updated"] sites_status.extend( site["pollutants_status"] @@ -160,9 +144,9 @@ def update(self) -> None: ) if sites_status: - self._state = max(set(sites_status), key=sites_status.count) + self._attr_native_value = max(set(sites_status), key=sites_status.count) else: - self._state = None + self._attr_native_value = None def parse_species(species_data): From f32c49e59f809000a388e226c9e5c59883c1b972 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 20 Feb 2026 09:49:36 +0000 Subject: [PATCH 10/11] Update Teslemetry quality scale to silver All bronze and silver quality scale rules are satisfied. Gold is blocked by dynamic-devices (todo) and platinum by strict-typing (todo). https://claude.ai/code/session_01VeoUKLRUuy73sxx92j6JFm --- homeassistant/components/teslemetry/manifest.json | 1 + 1 file changed, 1 insertion(+) diff --git a/homeassistant/components/teslemetry/manifest.json b/homeassistant/components/teslemetry/manifest.json index d630060ea5d50f..e1d0a5f1168615 100644 --- a/homeassistant/components/teslemetry/manifest.json +++ b/homeassistant/components/teslemetry/manifest.json @@ -8,5 +8,6 @@ "integration_type": "hub", "iot_class": "cloud_polling", "loggers": ["tesla-fleet-api"], + "quality_scale": "silver", "requirements": ["tesla-fleet-api==1.4.3", "teslemetry-stream==0.9.0"] } From 2af12ffaf12d743210333e836c5701b429bd64e4 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 20 Feb 2026 10:19:22 +0000 Subject: [PATCH 11/11] Remove teslemetry from INTEGRATIONS_WITHOUT_SCALE Now that teslemetry has a quality_scale in its manifest, it must be removed from the INTEGRATIONS_WITHOUT_SCALE list in hassfest. https://claude.ai/code/session_01VeoUKLRUuy73sxx92j6JFm --- script/hassfest/quality_scale.py | 1 - 1 file changed, 1 deletion(-) diff --git a/script/hassfest/quality_scale.py b/script/hassfest/quality_scale.py index 4924065b325f15..4b6940af8c8ff0 100644 --- a/script/hassfest/quality_scale.py +++ b/script/hassfest/quality_scale.py @@ -1954,7 +1954,6 @@ class Rule: "template", "tesla_fleet", "tesla_wall_connector", - "teslemetry", "tessie", "tfiac", "thermobeacon",