Skip to content

Commit 4aa3f0a

Browse files
authored
2025.12.1 (#158071)
2 parents ca4a2d4 + 0b52c80 commit 4aa3f0a

File tree

99 files changed

+2958
-384
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

99 files changed

+2958
-384
lines changed

CODEOWNERS

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

homeassistant/components/anglian_water/config_flow.py

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
vol.Required(CONF_PASSWORD): selector.TextSelector(
3131
selector.TextSelectorConfig(type=selector.TextSelectorType.PASSWORD)
3232
),
33+
vol.Required(CONF_ACCOUNT_NUMBER): selector.TextSelector(),
3334
}
3435
)
3536

@@ -68,34 +69,19 @@ async def async_step_user(
6869
self.hass,
6970
cookie_jar=CookieJar(quote_cookie=False),
7071
),
71-
account_number=user_input.get(CONF_ACCOUNT_NUMBER),
72+
account_number=user_input[CONF_ACCOUNT_NUMBER],
7273
)
7374
)
7475
if isinstance(validation_response, BaseAuth):
75-
account_number = (
76-
user_input.get(CONF_ACCOUNT_NUMBER)
77-
or validation_response.account_number
78-
)
79-
await self.async_set_unique_id(account_number)
76+
await self.async_set_unique_id(user_input[CONF_ACCOUNT_NUMBER])
8077
self._abort_if_unique_id_configured()
8178
return self.async_create_entry(
82-
title=account_number,
79+
title=user_input[CONF_ACCOUNT_NUMBER],
8380
data={
8481
**user_input,
8582
CONF_ACCESS_TOKEN: validation_response.refresh_token,
86-
CONF_ACCOUNT_NUMBER: account_number,
8783
},
8884
)
89-
if validation_response == "smart_meter_unavailable":
90-
return self.async_show_form(
91-
step_id="user",
92-
data_schema=STEP_USER_DATA_SCHEMA.extend(
93-
{
94-
vol.Required(CONF_ACCOUNT_NUMBER): selector.TextSelector(),
95-
}
96-
),
97-
errors={"base": validation_response},
98-
)
9985
errors["base"] = validation_response
10086

10187
return self.async_show_form(

homeassistant/components/anglian_water/manifest.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
"config_flow": true,
66
"documentation": "https://www.home-assistant.io/integrations/anglian_water",
77
"iot_class": "cloud_polling",
8+
"loggers": ["pyanglianwater"],
89
"quality_scale": "bronze",
910
"requirements": ["pyanglianwater==2.1.0"]
1011
}

homeassistant/components/doorbird/device.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,12 @@ def token(self) -> str:
102102
"""Get token for device."""
103103
return self._token
104104

105+
def _get_hass_url(self) -> str:
106+
"""Get the Home Assistant URL for this device."""
107+
if custom_url := self.custom_url:
108+
return custom_url
109+
return get_url(self._hass, prefer_external=False)
110+
105111
async def async_register_events(self) -> None:
106112
"""Register events on device."""
107113
if not self.door_station_events:
@@ -146,13 +152,7 @@ async def _configure_unconfigured_favorites(
146152

147153
async def _async_register_events(self) -> dict[str, Any]:
148154
"""Register events on device."""
149-
# Override url if another is specified in the configuration
150-
if custom_url := self.custom_url:
151-
hass_url = custom_url
152-
else:
153-
# Get the URL of this server
154-
hass_url = get_url(self._hass, prefer_external=False)
155-
155+
hass_url = self._get_hass_url()
156156
http_fav = await self._async_get_http_favorites()
157157
if any(
158158
# Note that a list comp is used here to ensure all
@@ -191,10 +191,14 @@ async def _async_get_event_config(
191191
self._get_event_name(event): event_type
192192
for event, event_type in DEFAULT_EVENT_TYPES
193193
}
194+
hass_url = self._get_hass_url()
194195
for identifier, data in http_fav.items():
195196
title: str | None = data.get("title")
196197
if not title or not title.startswith("Home Assistant"):
197198
continue
199+
value: str | None = data.get("value")
200+
if not value or not value.startswith(hass_url):
201+
continue # Not our favorite - different HA instance or stale
198202
event = title.partition("(")[2].strip(")")
199203
if input_type := favorite_input_type.get(identifier):
200204
events.append(DoorbirdEvent(event, input_type))

homeassistant/components/evohome/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@
66
"iot_class": "cloud_polling",
77
"loggers": ["evohome", "evohomeasync", "evohomeasync2"],
88
"quality_scale": "legacy",
9-
"requirements": ["evohome-async==1.0.5"]
9+
"requirements": ["evohome-async==1.0.6"]
1010
}

homeassistant/components/frontend/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,5 +23,5 @@
2323
"winter_mode": {}
2424
},
2525
"quality_scale": "internal",
26-
"requirements": ["home-assistant-frontend==20251203.0"]
26+
"requirements": ["home-assistant-frontend==20251203.1"]
2727
}

homeassistant/components/google_generative_ai_conversation/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ async def generate_content(call: ServiceCall) -> ServiceResponse:
149149
}
150150
),
151151
supports_response=SupportsResponse.ONLY,
152+
description_placeholders={"example_image_path": "/config/www/image.jpg"},
152153
)
153154
return True
154155

homeassistant/components/google_generative_ai_conversation/const.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
RECOMMENDED_CHAT_MODEL = "models/gemini-2.5-flash"
2424
RECOMMENDED_STT_MODEL = RECOMMENDED_CHAT_MODEL
2525
RECOMMENDED_TTS_MODEL = "models/gemini-2.5-flash-preview-tts"
26-
RECOMMENDED_IMAGE_MODEL = "models/gemini-2.5-flash-image-preview"
26+
RECOMMENDED_IMAGE_MODEL = "models/gemini-2.5-flash-image"
2727
CONF_TEMPERATURE = "temperature"
2828
RECOMMENDED_TEMPERATURE = 1.0
2929
CONF_TOP_P = "top_p"

homeassistant/components/google_generative_ai_conversation/strings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@
162162
"fields": {
163163
"filenames": {
164164
"description": "Attachments to add to the prompt (images, PDFs, etc)",
165-
"example": "/config/www/image.jpg",
165+
"example": "{example_image_path}",
166166
"name": "Attachment filenames"
167167
},
168168
"prompt": {

homeassistant/components/google_photos/services.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,4 +159,5 @@ def async_setup_services(hass: HomeAssistant) -> None:
159159
_async_handle_upload,
160160
schema=UPLOAD_SERVICE_SCHEMA,
161161
supports_response=SupportsResponse.OPTIONAL,
162+
description_placeholders={"example_image_path": "/config/www/image.jpg"},
162163
)

0 commit comments

Comments
 (0)