diff --git a/.github/workflows/builder.yml b/.github/workflows/builder.yml index 81a327424feaea..168910ae3ac3cb 100644 --- a/.github/workflows/builder.yml +++ b/.github/workflows/builder.yml @@ -196,8 +196,9 @@ jobs: username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} + # home-assistant/builder doesn't support sha pinning - name: Build base image - uses: home-assistant/builder@71885366c80f6ead6ae8c364b61d910e0dc5addc # 2025.03.0 + uses: home-assistant/builder@2025.03.0 with: args: | $BUILD_ARGS \ @@ -262,8 +263,9 @@ jobs: username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} + # home-assistant/builder doesn't support sha pinning - name: Build base image - uses: home-assistant/builder@71885366c80f6ead6ae8c364b61d910e0dc5addc # 2025.03.0 + uses: home-assistant/builder@2025.03.0 with: args: | $BUILD_ARGS \ diff --git a/homeassistant/components/ntfy/event.py b/homeassistant/components/ntfy/event.py index ecb081f0beb1a6..8f5d8d7b621918 100644 --- a/homeassistant/components/ntfy/event.py +++ b/homeassistant/components/ntfy/event.py @@ -106,7 +106,10 @@ async def ws_connect(self) -> None: return except NtfyForbiddenError: if self._attr_available: - _LOGGER.error("Failed to subscribe to topic. Topic is protected") + _LOGGER.error( + "Failed to subscribe to topic %s. Topic is protected", + self.topic, + ) self._attr_available = False ir.async_create_issue( self.hass, diff --git a/homeassistant/components/prusalink/coordinator.py b/homeassistant/components/prusalink/coordinator.py index e6f54bc6fa5e29..8d994fa728ae37 100644 --- a/homeassistant/components/prusalink/coordinator.py +++ b/homeassistant/components/prusalink/coordinator.py @@ -21,12 +21,16 @@ from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant, callback +from homeassistant.helpers.debounce import Debouncer from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed from .const import DOMAIN _LOGGER = logging.getLogger(__name__) +# Allow automations using homeassistant.update_entity to collect +# rapidly-changing metrics. +_MINIMUM_REFRESH_INTERVAL = 1.0 T = TypeVar("T", PrinterStatus, LegacyPrinterStatus, JobInfo) @@ -49,6 +53,9 @@ def __init__( config_entry=config_entry, name=DOMAIN, update_interval=self._get_update_interval(None), + request_refresh_debouncer=Debouncer( + hass, _LOGGER, cooldown=_MINIMUM_REFRESH_INTERVAL, immediate=True + ), ) async def _async_update_data(self) -> T: