Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
9fd4834
Reorder device location context towards the end of the Assist LLM ins…
skye-harris May 24, 2026
2d0d202
Fix exception translation placeholder mismatch in roborock (#172014)
allenporter May 24, 2026
ae13556
Remove positional message strings from roborock exceptions (#172016)
allenporter May 24, 2026
6634c4c
Replace duplicate constant ATTR_ELEVATION in fitbit (#172018)
allenporter May 24, 2026
9cbb14b
Bump inkbird-ble to 1.1.2 (#172011)
bdraco May 24, 2026
c056242
Bump habluetooth to 6.7.1 (#172000)
bdraco May 24, 2026
49e2207
Bump python-izone to 1.2.10 (#172021)
Swamp-Ig May 24, 2026
7598fdb
Fix exception translation placeholder mismatch in google_photos (#172…
allenporter May 24, 2026
488c04f
Remove myself as code owner from blue_current integration (#171998)
NickKoepr May 24, 2026
9ce047b
Replace duplicate constants in tplink_omada with homeassistant.const …
maxmichels May 24, 2026
d252071
Replace duplicate constants in elevenlabs with homeassistant.const im…
maxmichels May 24, 2026
f091871
Replace duplicate constants in zeroconf with homeassistant.const impo…
maxmichels May 24, 2026
f0c9156
Replace duplicate constants in version with homeassistant.const impor…
maxmichels May 24, 2026
3016198
Add devcontainer-lock.json file (#171982)
ludeeus May 24, 2026
c49ed54
Replace duplicate constants in energyid with homeassistant.const impo…
maxmichels May 24, 2026
2f7b3cb
Replace duplicate constants in hegel with homeassistant.const imports…
maxmichels May 24, 2026
afe7d0c
Bump gios to 7.1.0 (#171962)
bieniu May 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .devcontainer/devcontainer-lock.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"features": {
"ghcr.io/devcontainers/features/github-cli:1": {
"version": "1.1.0",
"resolved": "ghcr.io/devcontainers/features/github-cli@sha256:d22f50b70ed75339b4eed1ba9ecde3a1791f90e88d37936517e3bace0bbad671",
"integrity": "sha256:d22f50b70ed75339b4eed1ba9ecde3a1791f90e88d37936517e3bace0bbad671"
}
}
}
4 changes: 2 additions & 2 deletions CODEOWNERS

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion homeassistant/components/blue_current/manifest.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"domain": "blue_current",
"name": "Blue Current",
"codeowners": ["@gleeuwen", "@NickKoepr", "@jtodorova23"],
"codeowners": ["@gleeuwen", "@jtodorova23"],
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/blue_current",
"integration_type": "hub",
Expand Down
2 changes: 1 addition & 1 deletion homeassistant/components/bluetooth/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,6 @@
"bluetooth-auto-recovery==1.5.3",
"bluetooth-data-tools==1.29.11",
"dbus-fast==5.0.3",
"habluetooth==6.5.0"
"habluetooth==6.7.1"
]
}
4 changes: 2 additions & 2 deletions homeassistant/components/elevenlabs/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from httpx import ConnectError

from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_API_KEY, Platform
from homeassistant.const import CONF_API_KEY, CONF_MODEL, Platform
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import (
ConfigEntryAuthFailed,
Expand All @@ -17,7 +17,7 @@
)
from homeassistant.helpers.httpx_client import get_async_client

from .const import CONF_MODEL, CONF_STT_MODEL
from .const import CONF_STT_MODEL

_LOGGER = logging.getLogger(__name__)

Expand Down
3 changes: 1 addition & 2 deletions homeassistant/components/elevenlabs/config_flow.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import voluptuous as vol

from homeassistant.config_entries import ConfigFlow, ConfigFlowResult, OptionsFlow
from homeassistant.const import CONF_API_KEY
from homeassistant.const import CONF_API_KEY, CONF_MODEL
from homeassistant.core import HomeAssistant
from homeassistant.helpers.httpx_client import get_async_client
from homeassistant.helpers.selector import (
Expand All @@ -20,7 +20,6 @@
from . import ElevenLabsConfigEntry
from .const import (
CONF_CONFIGURE_VOICE,
CONF_MODEL,
CONF_SIMILARITY,
CONF_STABILITY,
CONF_STT_AUTO_LANGUAGE,
Expand Down
5 changes: 0 additions & 5 deletions homeassistant/components/elevenlabs/const.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
"""Constants for the ElevenLabs text-to-speech integration."""

# pylint: disable-next=home-assistant-duplicate-const
ATTR_MODEL = "model"

CONF_VOICE = "voice"
# pylint: disable-next=home-assistant-duplicate-const
CONF_MODEL = "model"
CONF_CONFIGURE_VOICE = "configure_voice"
CONF_STABILITY = "stability"
CONF_SIMILARITY = "similarity"
Expand Down
3 changes: 1 addition & 2 deletions homeassistant/components/elevenlabs/tts.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,14 @@
TtsAudioType,
Voice,
)
from homeassistant.const import EntityCategory
from homeassistant.const import ATTR_MODEL, EntityCategory
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback

from . import ElevenLabsConfigEntry
from .const import (
ATTR_MODEL,
CONF_SIMILARITY,
CONF_STABILITY,
CONF_STYLE,
Expand Down
3 changes: 1 addition & 2 deletions homeassistant/components/energyid/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from energyid_webhooks.client_v2 import WebhookClient

from homeassistant.config_entries import ConfigEntry
from homeassistant.const import STATE_UNAVAILABLE, STATE_UNKNOWN
from homeassistant.const import CONF_DEVICE_ID, STATE_UNAVAILABLE, STATE_UNKNOWN
from homeassistant.core import (
CALLBACK_TYPE,
Event,
Expand All @@ -28,7 +28,6 @@
)

from .const import (
CONF_DEVICE_ID,
CONF_DEVICE_NAME,
CONF_ENERGYID_KEY,
CONF_HA_ENTITY_UUID,
Expand Down
2 changes: 1 addition & 1 deletion homeassistant/components/energyid/config_flow.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@
ConfigFlowResult,
ConfigSubentryFlow,
)
from homeassistant.const import CONF_DEVICE_ID
from homeassistant.core import callback
from homeassistant.helpers.aiohttp_client import async_get_clientsession
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.instance_id import async_get as async_get_instance_id

from .const import (
CONF_DEVICE_ID,
CONF_DEVICE_NAME,
CONF_PROVISIONING_KEY,
CONF_PROVISIONING_SECRET,
Expand Down
2 changes: 0 additions & 2 deletions homeassistant/components/energyid/const.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@
# --- Config Flow and Entry Data ---
CONF_PROVISIONING_KEY: Final = "provisioning_key"
CONF_PROVISIONING_SECRET: Final = "provisioning_secret"
# pylint: disable-next=home-assistant-duplicate-const
CONF_DEVICE_ID: Final = "device_id"
CONF_DEVICE_NAME: Final = "device_name"

# --- Subentry (Mapping) Data ---
Expand Down
2 changes: 0 additions & 2 deletions homeassistant/components/fitbit/const.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@

ATTR_DURATION: Final = "duration"
ATTR_DISTANCE: Final = "distance"
# pylint: disable-next=home-assistant-duplicate-const
ATTR_ELEVATION: Final = "elevation"
ATTR_HEIGHT: Final = "height"
ATTR_WEIGHT: Final = "weight"
ATTR_BODY: Final = "body"
Expand Down
2 changes: 1 addition & 1 deletion homeassistant/components/gios/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@
"iot_class": "cloud_polling",
"loggers": ["dacite", "gios"],
"quality_scale": "platinum",
"requirements": ["gios==7.0.0"]
"requirements": ["gios==7.1.0"]
}
2 changes: 0 additions & 2 deletions homeassistant/components/google_photos/services.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,11 +84,9 @@ async def _async_handle_upload(call: ServiceCall) -> ServiceResponse:

scopes = config_entry.data["token"]["scope"].split(" ")
if UPLOAD_SCOPE not in scopes:
# pylint: disable-next=home-assistant-exception-placeholder-mismatch
raise HomeAssistantError(
translation_domain=DOMAIN,
translation_key="missing_upload_permission",
translation_placeholders={"target": DOMAIN},
)
coordinator = config_entry.runtime_data
client_api = coordinator.client
Expand Down
4 changes: 2 additions & 2 deletions homeassistant/components/hegel/config_flow.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@
from yarl import URL

from homeassistant.config_entries import ConfigFlow, ConfigFlowResult
from homeassistant.const import CONF_HOST
from homeassistant.const import CONF_HOST, CONF_MODEL
from homeassistant.helpers.service_info.ssdp import SsdpServiceInfo

from .const import CONF_MODEL, DEFAULT_PORT, DOMAIN, MODEL_INPUTS
from .const import DEFAULT_PORT, DOMAIN, MODEL_INPUTS

_LOGGER = logging.getLogger(__name__)

Expand Down
2 changes: 0 additions & 2 deletions homeassistant/components/hegel/const.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@
DOMAIN = "hegel"
DEFAULT_PORT = 50001

# pylint: disable-next=home-assistant-duplicate-const
CONF_MODEL = "model"
CONF_MAX_VOLUME = "max_volume" # 1.0 means amp's internal max

HEARTBEAT_TIMEOUT_MINUTES = 3
Expand Down
3 changes: 2 additions & 1 deletion homeassistant/components/hegel/media_player.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,15 @@
MediaPlayerEntityFeature,
MediaPlayerState,
)
from homeassistant.const import CONF_MODEL
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import HomeAssistantError, ServiceValidationError
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from homeassistant.helpers.event import async_track_time_interval

from . import HegelConfigEntry
from .const import CONF_MODEL, DOMAIN, HEARTBEAT_TIMEOUT_MINUTES, MODEL_INPUTS
from .const import DOMAIN, HEARTBEAT_TIMEOUT_MINUTES, MODEL_INPUTS

_LOGGER = logging.getLogger(__name__)

Expand Down
2 changes: 1 addition & 1 deletion homeassistant/components/inkbird/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -63,5 +63,5 @@
"documentation": "https://www.home-assistant.io/integrations/inkbird",
"integration_type": "device",
"iot_class": "local_push",
"requirements": ["inkbird-ble==1.1.1"]
"requirements": ["inkbird-ble==1.1.2"]
}
2 changes: 1 addition & 1 deletion homeassistant/components/izone/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@
"integration_type": "hub",
"iot_class": "local_polling",
"loggers": ["pizone"],
"requirements": ["python-izone==1.2.9"]
"requirements": ["python-izone==1.2.10"]
}
6 changes: 0 additions & 6 deletions homeassistant/components/roborock/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,9 +95,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: RoborockConfigEntry) ->
prefer_cache=False,
)
except RoborockInvalidCredentials as err:
# pylint: disable-next=home-assistant-exception-message-with-translation
raise ConfigEntryAuthFailed(
"Invalid credentials",
translation_domain=DOMAIN,
translation_key="invalid_credentials",
) from err
Expand All @@ -118,9 +116,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: RoborockConfigEntry) ->
) from err
except RoborockException as err:
_LOGGER.debug("Failed to get Roborock home data: %s", err)
# pylint: disable-next=home-assistant-exception-message-with-translation
raise ConfigEntryNotReady(
"Failed to get Roborock home data",
translation_domain=DOMAIN,
translation_key="home_data_fail",
) from err
Expand Down Expand Up @@ -178,9 +174,7 @@ async def shutdown_roborock(_: Event | None = None) -> None:
len(v1_coords) + len(a01_coords) + len(b01_q7_coords) + len(b01_q10_coords) == 0
and enabled_devices
):
# pylint: disable-next=home-assistant-exception-message-with-translation
raise ConfigEntryNotReady(
"No devices were able to successfully setup",
translation_domain=DOMAIN,
translation_key="no_coordinators",
)
Expand Down
2 changes: 0 additions & 2 deletions homeassistant/components/roborock/coordinator.py
Original file line number Diff line number Diff line change
Expand Up @@ -161,11 +161,9 @@ async def _async_setup(self) -> None:
_LOGGER.info("Home discovery skipped while device is busy/cleaning")
except RoborockException as err:
_LOGGER.debug("Failed to get maps: %s", err)
# pylint: disable-next=home-assistant-exception-placeholder-mismatch
raise UpdateFailed(
translation_domain=DOMAIN,
translation_key="map_failure",
translation_placeholders={"error": str(err)},
) from err
else:
# Force a map refresh on first setup
Expand Down
3 changes: 1 addition & 2 deletions homeassistant/components/tplink_omada/services.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import voluptuous as vol

from homeassistant.config_entries import ConfigEntry, ConfigEntryState
from homeassistant.const import ATTR_CONFIG_ENTRY_ID
from homeassistant.core import HomeAssistant, ServiceCall, callback
from homeassistant.exceptions import HomeAssistantError, ServiceValidationError
from homeassistant.helpers import config_validation as cv, selector
Expand All @@ -15,8 +16,6 @@

SERVICE_RECONNECT_CLIENT = "reconnect_client"

# pylint: disable-next=home-assistant-duplicate-const
ATTR_CONFIG_ENTRY_ID = "config_entry_id"
ATTR_MAC = "mac"


Expand Down
10 changes: 2 additions & 8 deletions homeassistant/components/version/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,11 @@

from pyhaversion import HaVersion

from homeassistant.const import CONF_SOURCE
from homeassistant.core import HomeAssistant
from homeassistant.helpers.aiohttp_client import async_get_clientsession

from .const import (
BOARD_MAP,
CONF_BOARD,
CONF_CHANNEL,
CONF_IMAGE,
CONF_SOURCE,
PLATFORMS,
)
from .const import BOARD_MAP, CONF_BOARD, CONF_CHANNEL, CONF_IMAGE, PLATFORMS
from .coordinator import VersionConfigEntry, VersionDataUpdateCoordinator

_LOGGER = logging.getLogger(__name__)
Expand Down
9 changes: 7 additions & 2 deletions homeassistant/components/version/binary_sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,16 @@
BinarySensorEntity,
BinarySensorEntityDescription,
)
from homeassistant.const import CONF_NAME, EntityCategory, __version__ as HA_VERSION
from homeassistant.const import (
CONF_NAME,
CONF_SOURCE,
EntityCategory,
__version__ as HA_VERSION,
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback

from .const import CONF_SOURCE, DEFAULT_NAME
from .const import DEFAULT_NAME
from .coordinator import VersionConfigEntry
from .entity import VersionEntity

Expand Down
4 changes: 1 addition & 3 deletions homeassistant/components/version/const.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

from pyhaversion.consts import HaVersionChannel, HaVersionSource

from homeassistant.const import CONF_NAME, Platform
from homeassistant.const import CONF_NAME, CONF_SOURCE, Platform

DOMAIN: Final = "version"
LOGGER: Final[Logger] = getLogger(__package__)
Expand All @@ -23,8 +23,6 @@
CONF_CHANNEL: Final = "channel"
CONF_IMAGE: Final = "image"
CONF_VERSION_SOURCE: Final = "version_source"
# pylint: disable-next=home-assistant-duplicate-const
CONF_SOURCE: Final = "source"

ATTR_CHANNEL: Final = CONF_CHANNEL
ATTR_VERSION_SOURCE: Final = CONF_VERSION_SOURCE
Expand Down
4 changes: 2 additions & 2 deletions homeassistant/components/version/sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
from typing import Any

from homeassistant.components.sensor import SensorEntity, SensorEntityDescription
from homeassistant.const import CONF_NAME
from homeassistant.const import CONF_NAME, CONF_SOURCE
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from homeassistant.helpers.typing import StateType

from .const import CONF_SOURCE, DEFAULT_NAME
from .const import DEFAULT_NAME
from .coordinator import VersionConfigEntry
from .entity import VersionEntity

Expand Down
5 changes: 1 addition & 4 deletions homeassistant/components/zeroconf/discovery.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
from zeroconf.asyncio import AsyncServiceBrowser, AsyncServiceInfo

from homeassistant import config_entries
from homeassistant.const import ATTR_DOMAIN, ATTR_NAME
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers import discovery_flow
from homeassistant.helpers.discovery_flow import DiscoveryKey
Expand Down Expand Up @@ -41,10 +42,6 @@
HOMEKIT_MODEL_LOWER = "md"
HOMEKIT_MODEL_UPPER = "MD"

# pylint: disable-next=home-assistant-duplicate-const
ATTR_DOMAIN: Final = "domain"
# pylint: disable-next=home-assistant-duplicate-const
ATTR_NAME: Final = "name"
ATTR_PROPERTIES: Final = "properties"

DUPLICATE_INSTANCE_ID_ISSUE_ID = "duplicate_instance_id"
Expand Down
Loading
Loading