Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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: 2 additions & 0 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/airos/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@
"documentation": "https://www.home-assistant.io/integrations/airos",
"integration_type": "device",
"iot_class": "local_polling",
"quality_scale": "bronze",
"quality_scale": "silver",
"requirements": ["airos==0.5.6"]
}
14 changes: 7 additions & 7 deletions homeassistant/components/airos/quality_scale.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@ rules:
config-entry-unloading: done
docs-configuration-parameters: done
docs-installation-parameters: done
entity-unavailable: todo
entity-unavailable: done
integration-owner: done
log-when-unavailable: todo
parallel-updates: todo
reauthentication-flow: todo
log-when-unavailable: done
parallel-updates: done
reauthentication-flow: done
test-coverage: done

# Gold
Expand All @@ -48,9 +48,9 @@ rules:
docs-examples: todo
docs-known-limitations: done
docs-supported-devices: done
docs-supported-functions: todo
docs-supported-functions: done
docs-troubleshooting: done
docs-use-cases: todo
docs-use-cases: done
dynamic-devices: todo
entity-category: done
entity-device-class: done
Expand All @@ -60,7 +60,7 @@ rules:
icon-translations:
status: exempt
comment: no (custom) icons used or envisioned
reconfiguration-flow: todo
reconfiguration-flow: done
repair-issues: todo
stale-devices: todo

Expand Down
1 change: 1 addition & 0 deletions homeassistant/components/group/cover.py
Original file line number Diff line number Diff line change
Expand Up @@ -282,6 +282,7 @@ def async_update_group_state(self) -> None:
self._attr_is_closed = True
self._attr_is_closing = False
self._attr_is_opening = False
self._update_assumed_state_from_members()
for entity_id in self._entity_ids:
if not (state := self.hass.states.get(entity_id)):
continue
Expand Down
11 changes: 11 additions & 0 deletions homeassistant/components/group/entity.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,17 @@ def async_defer_or_update_ha_state(self) -> None:
def async_update_group_state(self) -> None:
"""Abstract method to update the entity."""

@callback
def _update_assumed_state_from_members(self) -> None:
"""Update assumed_state based on member entities."""
self._attr_assumed_state = False
for entity_id in self._entity_ids:
if (state := self.hass.states.get(entity_id)) is None:
continue
if state.attributes.get(ATTR_ASSUMED_STATE):
self._attr_assumed_state = True
return

@callback
def async_update_supported_features(
self,
Expand Down
1 change: 1 addition & 0 deletions homeassistant/components/group/fan.py
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,7 @@ def _set_attr_most_frequent(self, attr: str, flag: int, entity_attr: str) -> Non
@callback
def async_update_group_state(self) -> None:
"""Update state and attributes."""
self._update_assumed_state_from_members()

states = [
state
Expand Down
2 changes: 2 additions & 0 deletions homeassistant/components/group/light.py
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,8 @@ async def async_turn_off(self, **kwargs: Any) -> None:
@callback
def async_update_group_state(self) -> None:
"""Query all members and determine the light group state."""
self._update_assumed_state_from_members()

states = [
state
for entity_id in self._entity_ids
Expand Down
2 changes: 2 additions & 0 deletions homeassistant/components/group/switch.py
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,8 @@ async def async_turn_off(self, **kwargs: Any) -> None:
@callback
def async_update_group_state(self) -> None:
"""Query all members and determine the switch group state."""
self._update_assumed_state_from_members()

states = [
state.state
for entity_id in self._entity_ids
Expand Down
16 changes: 14 additions & 2 deletions homeassistant/components/isy994/config_flow.py
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,9 @@ async def async_step_user(
step_id="user",
data_schema=_data_schema(self.discovered_conf),
errors=errors,
description_placeholders={
"sample_ip": "http://192.168.10.100:80",
},
)

async def _async_set_unique_id_or_update(
Expand Down Expand Up @@ -302,7 +305,10 @@ async def async_step_reauth_confirm(
CONF_HOST: existing_data[CONF_HOST],
}
return self.async_show_form(
description_placeholders={CONF_HOST: existing_data[CONF_HOST]},
description_placeholders={
CONF_HOST: existing_data[CONF_HOST],
"sample_ip": "http://192.168.10.100:80",
},
step_id="reauth_confirm",
data_schema=vol.Schema(
{
Expand Down Expand Up @@ -347,7 +353,13 @@ async def async_step_init(
}
)

return self.async_show_form(step_id="init", data_schema=options_schema)
return self.async_show_form(
step_id="init",
data_schema=options_schema,
description_placeholders={
"sample_ip": "http://192.168.10.100:80",
},
)


class InvalidHost(HomeAssistantError):
Expand Down
4 changes: 2 additions & 2 deletions homeassistant/components/isy994/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"password": "[%key:common::config_flow::data::password%]",
"tls": "The TLS version of the ISY controller."
},
"description": "The host entry must be in full URL format, e.g., http://192.168.10.100:80",
"description": "The host entry must be in full URL format, e.g., {sample_ip}",
"title": "Connect to your ISY"
},
"reauth_confirm": {
Expand All @@ -26,7 +26,7 @@
"unknown": "[%key:common::config_flow::error::unknown%]",
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"invalid_host": "The host entry was not in full URL format, e.g., http://192.168.10.100:80"
"invalid_host": "The host entry was not in full URL format, e.g., {sample_ip}"
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
Expand Down
Loading
Loading