Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
744bb6a
Add missing flow form field translation in tuya (#173745)
frenck Jun 14, 2026
a63f2f1
Replace duplicate constants with homeassistant.const imports in Tesle…
frenck Jun 14, 2026
46a38cc
Add missing flow form field translation in flux_led (#173746)
frenck Jun 14, 2026
9bc5e2b
Fix flow form field translation key in lookin (#173751)
frenck Jun 14, 2026
9ec0f2f
Add missing flow form field translation in gogogate2 (#173753)
frenck Jun 14, 2026
efa3334
Bump lxml to 6.1.1 (#173748)
gjohansson-ST Jun 14, 2026
0fdb3eb
Bump aioamazondevices to 14.0.4 (#173761)
frenck Jun 14, 2026
b4319c4
Bump aioacaia to 0.1.18 (#173762)
frenck Jun 14, 2026
987c19d
Replace duplicate SERVICE_RELOAD constant with homeassistant.const im…
frenck Jun 14, 2026
742bfb0
Bump anova-wifi to 0.17.1 (#173764)
frenck Jun 14, 2026
b75c839
Bump python-linkplay to 0.2.14 (#173770)
frenck Jun 14, 2026
bd68e9f
Bump syrupy to 5.3.2 (#173767)
frenck Jun 14, 2026
8aca342
Bump snapcast to 2.3.8 (#173765)
frenck Jun 14, 2026
501d956
Bump pylint to 4.0.6 (#173769)
frenck Jun 14, 2026
8017e80
Bump aiopulse to 0.4.7 (#173763)
frenck Jun 14, 2026
6c116cf
Bump reolink_aio to 0.21.1 (#173772)
starkillerOG Jun 14, 2026
e01215d
Fix exception translation placeholder mismatch in Swiss Public Transp…
frenck Jun 14, 2026
3fda722
Add missing flow form field translation in blink (#173756)
frenck Jun 14, 2026
52b2738
Add missing flow form field translation in motionblinds_ble (#173758)
frenck Jun 14, 2026
11a4533
Fix flow form field translation key in meteoclimatic (#173754)
frenck Jun 14, 2026
377fdce
Add missing flow form field translation in melnor (#173752)
frenck Jun 14, 2026
687c91d
Add missing flow form field translation in lacrosse_view (#173750)
frenck Jun 14, 2026
3aec970
Add missing flow form field translations in islamic_prayer_times (#17…
frenck Jun 14, 2026
8c452c2
Add missing flow form field translation in hue (#173747)
frenck Jun 14, 2026
af60e24
Remove listener from holiday calendar when entity is disabled (#173759)
gjohansson-ST Jun 14, 2026
5433bee
Skip Miele fan set_percentage when already at the target step (#173725)
frenck Jun 14, 2026
401fae6
Bump py-synologydsm-api to 2.10.0 (#173774)
mib1185 Jun 14, 2026
825d99d
Bump uv to 0.11.21 (#173768)
frenck Jun 14, 2026
f7342ea
Add missing translation_domain to nasweb exception raises (#173732)
frenck Jun 14, 2026
26b7d1e
Slugify OwnTracks beacon name in entity ID (#173629)
frenck Jun 14, 2026
7454f40
Bump uiprotect to 13.1.2 (#173728)
RaHehl Jun 14, 2026
26b0079
Bump pyenphase to 2.4.9 (#173785)
frenck Jun 14, 2026
b7a29bf
Bump pyrainbird to 6.3.1 (#173786)
frenck Jun 14, 2026
e4e8f90
Bump yalexs-ble to 3.3.1 (#173792)
frenck Jun 14, 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
2 changes: 1 addition & 1 deletion homeassistant/components/acaia/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,5 @@
"iot_class": "local_push",
"loggers": ["aioacaia"],
"quality_scale": "platinum",
"requirements": ["aioacaia==0.1.17"]
"requirements": ["aioacaia==0.1.18"]
}
2 changes: 1 addition & 1 deletion homeassistant/components/acmeda/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@
"documentation": "https://www.home-assistant.io/integrations/acmeda",
"iot_class": "local_push",
"loggers": ["aiopulse"],
"requirements": ["aiopulse==0.4.6"]
"requirements": ["aiopulse==0.4.7"]
}
2 changes: 1 addition & 1 deletion homeassistant/components/alexa_devices/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@
"iot_class": "cloud_polling",
"loggers": ["aioamazondevices"],
"quality_scale": "platinum",
"requirements": ["aioamazondevices==14.0.3"]
"requirements": ["aioamazondevices==14.0.4"]
}
2 changes: 1 addition & 1 deletion homeassistant/components/anova/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@
"integration_type": "hub",
"iot_class": "cloud_push",
"loggers": ["anova_wifi"],
"requirements": ["anova-wifi==0.17.0"]
"requirements": ["anova-wifi==0.17.1"]
}
2 changes: 1 addition & 1 deletion homeassistant/components/august/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,5 @@
"integration_type": "hub",
"iot_class": "cloud_push",
"loggers": ["pubnub", "yalexs"],
"requirements": ["yalexs==9.2.7", "yalexs-ble==3.3.0"]
"requirements": ["yalexs==9.2.7", "yalexs-ble==3.3.1"]
}
6 changes: 6 additions & 0 deletions homeassistant/components/blink/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,12 @@
"description": "The credentials for {username} need to be updated",
"title": "Re-authenticate Blink"
},
"reconfigure": {
"data": {
"password": "[%key:common::config_flow::data::password%]",
"username": "[%key:common::config_flow::data::username%]"
}
},
"user": {
"data": {
"password": "[%key:common::config_flow::data::password%]",
Expand Down
3 changes: 1 addition & 2 deletions homeassistant/components/conversation/__init__.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 ConfigEntry
from homeassistant.const import MATCH_ALL
from homeassistant.const import MATCH_ALL, SERVICE_RELOAD
from homeassistant.core import (
HomeAssistant,
ServiceCall,
Expand Down Expand Up @@ -53,7 +53,6 @@
METADATA_CUSTOM_FILE,
METADATA_CUSTOM_SENTENCE,
SERVICE_PROCESS,
SERVICE_RELOAD,
ConversationEntityFeature,
)
from .default_agent import async_setup_default_agent
Expand Down
2 changes: 0 additions & 2 deletions homeassistant/components/conversation/const.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@
ATTR_CONVERSATION_ID = "conversation_id"

SERVICE_PROCESS = "process"
# pylint: disable-next=home-assistant-duplicate-const
SERVICE_RELOAD = "reload"

DATA_COMPONENT: HassKey[EntityComponent[ConversationEntity]] = HassKey(DOMAIN)

Expand Down
2 changes: 1 addition & 1 deletion homeassistant/components/enphase_envoy/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"iot_class": "local_polling",
"loggers": ["pyenphase"],
"quality_scale": "platinum",
"requirements": ["pyenphase==2.4.8"],
"requirements": ["pyenphase==2.4.9"],
"zeroconf": [
{
"type": "_enphase-envoy._tcp.local."
Expand Down
5 changes: 5 additions & 0 deletions homeassistant/components/flux_led/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,11 @@
"discovery_confirm": {
"description": "Do you want to set up {model} {id} ({ipaddr})?"
},
"pick_device": {
"data": {
"device": "[%key:common::config_flow::data::device%]"
}
},
"user": {
"data": {
"host": "[%key:common::config_flow::data::host%]"
Expand Down
1 change: 1 addition & 0 deletions homeassistant/components/gogogate2/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
"step": {
"user": {
"data": {
"device": "[%key:common::config_flow::data::device%]",
"ip_address": "[%key:common::config_flow::data::ip%]",
"password": "[%key:common::config_flow::data::password%]",
"username": "[%key:common::config_flow::data::username%]"
Expand Down
7 changes: 7 additions & 0 deletions homeassistant/components/holiday/calendar.py
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,13 @@ async def async_added_to_hass(self) -> None:
"""Set up first update."""
self._update_state_and_setup_listener()

async def async_will_remove_from_hass(self) -> None:
"""Cancel listener when removing."""
await super().async_will_remove_from_hass()
if self.unsub:
self.unsub()
self.unsub = None

def update_event(self, now: datetime) -> CalendarEvent | None:
"""Return the next upcoming event."""
next_holiday = None
Expand Down
3 changes: 2 additions & 1 deletion homeassistant/components/hue/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@
"step": {
"init": {
"data": {
"host": "[%key:common::config_flow::data::host%]"
"host": "[%key:common::config_flow::data::host%]",
"id": "Hue bridge"
},
"data_description": {
"host": "The hostname or IP address of your Hue bridge."
Expand Down
4 changes: 4 additions & 0 deletions homeassistant/components/islamic_prayer_times/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@
},
"step": {
"user": {
"data": {
"location": "[%key:common::config_flow::data::location%]",
"name": "[%key:common::config_flow::data::name%]"
},
"description": "Do you want to set up Islamic Prayer Times?",
"title": "Set up Islamic Prayer Times"
}
Expand Down
5 changes: 5 additions & 0 deletions homeassistant/components/lacrosse_view/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,11 @@
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"step": {
"location": {
"data": {
"location": "[%key:common::config_flow::data::location%]"
}
},
"user": {
"data": {
"password": "[%key:common::config_flow::data::password%]",
Expand Down
2 changes: 1 addition & 1 deletion homeassistant/components/linkplay/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@
"integration_type": "hub",
"iot_class": "local_polling",
"loggers": ["linkplay"],
"requirements": ["python-linkplay==0.2.12"],
"requirements": ["python-linkplay==0.2.14"],
"zeroconf": ["_linkplay._tcp.local."]
}
2 changes: 1 addition & 1 deletion homeassistant/components/lookin/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
},
"user": {
"data": {
"ip_address": "[%key:common::config_flow::data::ip%]"
"host": "[%key:common::config_flow::data::host%]"
}
}
}
Expand Down
5 changes: 5 additions & 0 deletions homeassistant/components/melnor/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@
"bluetooth_confirm": {
"description": "Do you want to add the Melnor Bluetooth valve `{name}` to Home Assistant?",
"title": "Discovered Melnor Bluetooth valve"
},
"pick_device": {
"data": {
"address": "[%key:common::config_flow::data::device%]"
}
}
}
},
Expand Down
4 changes: 2 additions & 2 deletions homeassistant/components/meteoclimatic/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@
"step": {
"user": {
"data": {
"code": "Station code"
"station_code": "Station code"
},
"data_description": {
"code": "Looks like ESCAT4300000043206B"
"station_code": "Looks like ESCAT4300000043206B"
}
}
}
Expand Down
2 changes: 2 additions & 0 deletions homeassistant/components/miele/fan.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,8 @@ async def async_set_percentage(self, percentage: int) -> None:
_LOGGER.debug("Calc ventilation_step: %s", ventilation_step)
if ventilation_step == 0:
await self.async_turn_off()
elif ventilation_step == self.device.state_ventilation_step:
return
else:
try:
await self.api.send_action(
Expand Down
3 changes: 3 additions & 0 deletions homeassistant/components/motionblinds_ble/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@
},
"step": {
"confirm": {
"data": {
"blind_type": "Blind type"
},
"description": "What kind of blind is {display_name}?"
},
"user": {
Expand Down
22 changes: 12 additions & 10 deletions homeassistant/components/nasweb/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,25 +50,27 @@ async def async_setup_entry(hass: HomeAssistant, entry: NASwebConfigEntry) -> bo
)
if not await webio_api.refresh_device_info():
_LOGGER.error("[%s] Refresh device info failed", entry.data[CONF_HOST])
# pylint: disable-next=home-assistant-exception-translation-key-domain-mismatch
raise ConfigEntryError(
translation_domain=DOMAIN,
translation_key="config_entry_error_internal_error",
translation_placeholders={"support_email": SUPPORT_EMAIL},
)
webio_serial = webio_api.get_serial_number()
if webio_serial is None:
_LOGGER.error("[%s] Serial number not available", entry.data[CONF_HOST])
# pylint: disable-next=home-assistant-exception-translation-key-domain-mismatch
raise ConfigEntryError(
translation_domain=DOMAIN,
translation_key="config_entry_error_internal_error",
translation_placeholders={"support_email": SUPPORT_EMAIL},
)
if entry.unique_id != webio_serial:
_LOGGER.error(
"[%s] Serial number doesn't match config entry", entry.data[CONF_HOST]
)
# pylint: disable-next=home-assistant-exception-translation-key-domain-mismatch
raise ConfigEntryError(translation_key="config_entry_error_serial_mismatch")
raise ConfigEntryError(
translation_domain=DOMAIN,
translation_key="config_entry_error_serial_mismatch",
)

coordinator = NASwebCoordinator(
hass, webio_api, name=f"NASweb[{webio_api.get_name()}]"
Expand All @@ -79,15 +81,15 @@ async def async_setup_entry(hass: HomeAssistant, entry: NASwebConfigEntry) -> bo
webhook_url = nasweb_data.get_webhook_url(hass)
if not await webio_api.status_subscription(webhook_url, True):
_LOGGER.error("Failed to subscribe for status updates from webio")
# pylint: disable-next=home-assistant-exception-translation-key-domain-mismatch
raise ConfigEntryError(
translation_domain=DOMAIN,
translation_key="config_entry_error_internal_error",
translation_placeholders={"support_email": SUPPORT_EMAIL},
)
if not await nasweb_data.notify_coordinator.check_connection(webio_serial):
_LOGGER.error("Did not receive status from device")
# pylint: disable-next=home-assistant-exception-translation-key-domain-mismatch
raise ConfigEntryError(
translation_domain=DOMAIN,
translation_key="config_entry_error_no_status_update",
translation_placeholders={"support_email": SUPPORT_EMAIL},
)
Expand All @@ -96,14 +98,14 @@ async def async_setup_entry(hass: HomeAssistant, entry: NASwebConfigEntry) -> bo
f"[{entry.data[CONF_HOST]}] Check connection reached timeout"
) from error
except AuthError as error:
# pylint: disable-next=home-assistant-exception-translation-key-domain-mismatch
raise ConfigEntryError(
translation_key="config_entry_error_invalid_authentication"
translation_domain=DOMAIN,
translation_key="config_entry_error_invalid_authentication",
) from error
except NoURLAvailableError as error:
# pylint: disable-next=home-assistant-exception-translation-key-domain-mismatch
raise ConfigEntryError(
translation_key="config_entry_error_missing_internal_url"
translation_domain=DOMAIN,
translation_key="config_entry_error_missing_internal_url",
) from error

device_registry = dr.async_get(hass)
Expand Down
2 changes: 1 addition & 1 deletion homeassistant/components/nasweb/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@
"config_entry_error_no_status_update": {
"message": "Did not receive any status updates within the expected time window. Make sure the Home Assistant internal URL is reachable from the NASweb device. If the issue persists contact support at {support_email}"
},
"serial_mismatch": {
"config_entry_error_serial_mismatch": {
"message": "Connected to different NASweb device (serial number mismatch)."
}
}
Expand Down
3 changes: 2 additions & 1 deletion homeassistant/components/owntracks/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
)
from homeassistant.helpers.typing import ConfigType
from homeassistant.setup import async_when_setup
from homeassistant.util import slugify
from homeassistant.util.json import json_loads

from .config_flow import CONF_SECRET
Expand Down Expand Up @@ -311,6 +312,6 @@ def async_see_beacons(self, hass, dev_id, kwargs_param):
# kwargs location is the beacon's configured lat/lon
kwargs.pop("battery", None)
for beacon in self.mobile_beacons_active[dev_id]:
kwargs["dev_id"] = f"{BEACON_DEV_ID}_{beacon}"
kwargs["dev_id"] = slugify(f"{BEACON_DEV_ID}_{beacon}")
kwargs["host_name"] = beacon
self.async_see(**kwargs)
2 changes: 1 addition & 1 deletion homeassistant/components/rainbird/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@
"integration_type": "hub",
"iot_class": "local_polling",
"loggers": ["pyrainbird"],
"requirements": ["pyrainbird==6.3.0"]
"requirements": ["pyrainbird==6.3.1"]
}
2 changes: 1 addition & 1 deletion homeassistant/components/reolink/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,5 @@
"iot_class": "local_push",
"loggers": ["reolink_aio"],
"quality_scale": "platinum",
"requirements": ["reolink-aio==0.21.0"]
"requirements": ["reolink-aio==0.21.1"]
}
2 changes: 1 addition & 1 deletion homeassistant/components/scrape/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/scrape",
"iot_class": "cloud_polling",
"requirements": ["beautifulsoup4==4.13.3", "lxml==6.0.1"]
"requirements": ["beautifulsoup4==4.13.3", "lxml==6.1.1"]
}
2 changes: 1 addition & 1 deletion homeassistant/components/snapcast/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@
"integration_type": "hub",
"iot_class": "local_push",
"loggers": ["construct", "snapcast"],
"requirements": ["snapcast==2.3.7"]
"requirements": ["snapcast==2.3.8"]
}
3 changes: 1 addition & 2 deletions homeassistant/components/swiss_public_transport/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,12 +86,11 @@ async def async_setup_entry(
},
) from e
except OpendataTransportError as e:
# pylint: disable-next=home-assistant-exception-placeholder-mismatch
raise ConfigEntryError(
translation_domain=DOMAIN,
translation_key="invalid_data",
translation_placeholders={
**PLACEHOLDERS,
"stationboard_url": PLACEHOLDERS["stationboard_url"],
"config_title": entry.title,
"error": str(e),
},
Expand Down
2 changes: 1 addition & 1 deletion homeassistant/components/synology_dsm/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"integration_type": "device",
"iot_class": "local_polling",
"loggers": ["synology_dsm"],
"requirements": ["py-synologydsm-api==2.9.0"],
"requirements": ["py-synologydsm-api==2.10.0"],
"ssdp": [
{
"deviceType": "urn:schemas-upnp-org:device:Basic:1",
Expand Down
Loading
Loading