From 03593aa21bf52df157d1346b69fee9ee48389cb2 Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Thu, 13 Jan 2022 08:42:50 +0100 Subject: [PATCH] Import persistent notification (part 2) (#63899) --- .../components/aladdin_connect/cover.py | 4 +++- .../components/alpha_vantage/sensor.py | 3 ++- .../components/androidtv/media_player.py | 4 +++- homeassistant/components/arlo/__init__.py | 4 +++- homeassistant/components/broadlink/remote.py | 22 +++++++++++-------- .../components/cloud/alexa_config.py | 4 +++- homeassistant/components/cloud/client.py | 5 ++--- homeassistant/components/decora_wifi/light.py | 5 +++-- homeassistant/components/demo/__init__.py | 7 ++++-- homeassistant/components/demo/button.py | 5 +++-- 10 files changed, 40 insertions(+), 23 deletions(-) diff --git a/homeassistant/components/aladdin_connect/cover.py b/homeassistant/components/aladdin_connect/cover.py index f05b27eea8d..7865a71aef9 100644 --- a/homeassistant/components/aladdin_connect/cover.py +++ b/homeassistant/components/aladdin_connect/cover.py @@ -7,6 +7,7 @@ from typing import Any, Final from aladdin_connect import AladdinConnectClient import voluptuous as vol +from homeassistant.components import persistent_notification from homeassistant.components.cover import ( PLATFORM_SCHEMA as BASE_PLATFORM_SCHEMA, CoverDeviceClass, @@ -55,7 +56,8 @@ def setup_platform( ) except (TypeError, KeyError, NameError, ValueError) as ex: _LOGGER.error("%s", ex) - hass.components.persistent_notification.create( + persistent_notification.create( + hass, "Error: {ex}
You will need to restart hass after fixing.", title=NOTIFICATION_TITLE, notification_id=NOTIFICATION_ID, diff --git a/homeassistant/components/alpha_vantage/sensor.py b/homeassistant/components/alpha_vantage/sensor.py index c46c33a8dc8..09f9bdcd7e4 100644 --- a/homeassistant/components/alpha_vantage/sensor.py +++ b/homeassistant/components/alpha_vantage/sensor.py @@ -8,6 +8,7 @@ from alpha_vantage.foreignexchange import ForeignExchange from alpha_vantage.timeseries import TimeSeries import voluptuous as vol +from homeassistant.components import persistent_notification from homeassistant.components.sensor import PLATFORM_SCHEMA, SensorEntity from homeassistant.const import ATTR_ATTRIBUTION, CONF_API_KEY, CONF_CURRENCY, CONF_NAME from homeassistant.core import HomeAssistant @@ -79,7 +80,7 @@ def setup_platform( if not symbols and not conversions: msg = "No symbols or currencies configured." - hass.components.persistent_notification.create(msg, "Sensor alpha_vantage") + persistent_notification.create(hass, msg, "Sensor alpha_vantage") _LOGGER.warning(msg) return diff --git a/homeassistant/components/androidtv/media_player.py b/homeassistant/components/androidtv/media_player.py index 8526ce1c524..a2795da24c6 100644 --- a/homeassistant/components/androidtv/media_player.py +++ b/homeassistant/components/androidtv/media_player.py @@ -17,6 +17,7 @@ from androidtv.constants import APPS, KEYS from androidtv.exceptions import LockNotAcquiredException import voluptuous as vol +from homeassistant.components import persistent_notification from homeassistant.components.media_player import PLATFORM_SCHEMA, MediaPlayerEntity from homeassistant.components.media_player.const import ( SUPPORT_NEXT_TRACK, @@ -534,7 +535,8 @@ class ADBDevice(MediaPlayerEntity): self.async_write_ha_state() msg = f"Output from service '{SERVICE_LEARN_SENDEVENT}' from {self.entity_id}: '{output}'" - self.hass.components.persistent_notification.async_create( + persistent_notification.async_create( + self.hass, msg, title="Android TV", ) diff --git a/homeassistant/components/arlo/__init__.py b/homeassistant/components/arlo/__init__.py index 3a869856504..f7a368c7a4c 100644 --- a/homeassistant/components/arlo/__init__.py +++ b/homeassistant/components/arlo/__init__.py @@ -8,6 +8,7 @@ from pyarlo import PyArlo from requests.exceptions import ConnectTimeout, HTTPError import voluptuous as vol +from homeassistant.components import persistent_notification from homeassistant.const import CONF_PASSWORD, CONF_SCAN_INTERVAL, CONF_USERNAME from homeassistant.core import HomeAssistant, ServiceCall from homeassistant.helpers import config_validation as cv @@ -70,7 +71,8 @@ def setup(hass: HomeAssistant, config: ConfigType) -> bool: except (ConnectTimeout, HTTPError) as ex: _LOGGER.error("Unable to connect to Netgear Arlo: %s", str(ex)) - hass.components.persistent_notification.create( + persistent_notification.create( + hass, f"Error: {ex}
You will need to restart hass after fixing.", title=NOTIFICATION_TITLE, notification_id=NOTIFICATION_ID, diff --git a/homeassistant/components/broadlink/remote.py b/homeassistant/components/broadlink/remote.py index e3db8c79ef5..b7d81e5ba42 100644 --- a/homeassistant/components/broadlink/remote.py +++ b/homeassistant/components/broadlink/remote.py @@ -15,6 +15,7 @@ from broadlink.exceptions import ( ) import voluptuous as vol +from homeassistant.components import persistent_notification from homeassistant.components.remote import ( ATTR_ALTERNATIVE, ATTR_COMMAND_TYPE, @@ -317,7 +318,8 @@ class BroadlinkRemote(BroadlinkEntity, RemoteEntity, RestoreEntity): _LOGGER.debug("Failed to enter learning mode: %s", err) raise - self.hass.components.persistent_notification.async_create( + persistent_notification.async_create( + self.hass, f"Press the '{command}' button.", title="Learn command", notification_id="learn_command", @@ -339,8 +341,8 @@ class BroadlinkRemote(BroadlinkEntity, RemoteEntity, RestoreEntity): ) finally: - self.hass.components.persistent_notification.async_dismiss( - notification_id="learn_command" + persistent_notification.async_dismiss( + self.hass, notification_id="learn_command" ) async def _async_learn_rf_command(self, command): @@ -354,7 +356,8 @@ class BroadlinkRemote(BroadlinkEntity, RemoteEntity, RestoreEntity): _LOGGER.debug("Failed to sweep frequency: %s", err) raise - self.hass.components.persistent_notification.async_create( + persistent_notification.async_create( + self.hass, f"Press and hold the '{command}' button.", title="Sweep frequency", notification_id="sweep_frequency", @@ -375,8 +378,8 @@ class BroadlinkRemote(BroadlinkEntity, RemoteEntity, RestoreEntity): ) finally: - self.hass.components.persistent_notification.async_dismiss( - notification_id="sweep_frequency" + persistent_notification.async_dismiss( + self.hass, notification_id="sweep_frequency" ) await asyncio.sleep(1) @@ -388,7 +391,8 @@ class BroadlinkRemote(BroadlinkEntity, RemoteEntity, RestoreEntity): _LOGGER.debug("Failed to enter learning mode: %s", err) raise - self.hass.components.persistent_notification.async_create( + persistent_notification.async_create( + self.hass, f"Press the '{command}' button again.", title="Learn command", notification_id="learn_command", @@ -410,8 +414,8 @@ class BroadlinkRemote(BroadlinkEntity, RemoteEntity, RestoreEntity): ) finally: - self.hass.components.persistent_notification.async_dismiss( - notification_id="learn_command" + persistent_notification.async_dismiss( + self.hass, notification_id="learn_command" ) async def async_delete_command(self, **kwargs): diff --git a/homeassistant/components/cloud/alexa_config.py b/homeassistant/components/cloud/alexa_config.py index 0d1bdf66c12..eeddc76c7a3 100644 --- a/homeassistant/components/cloud/alexa_config.py +++ b/homeassistant/components/cloud/alexa_config.py @@ -9,6 +9,7 @@ import aiohttp import async_timeout from hass_nabucasa import Cloud, cloud_api +from homeassistant.components import persistent_notification from homeassistant.components.alexa import ( DOMAIN as ALEXA_DOMAIN, config as alexa_config, @@ -158,7 +159,8 @@ class AlexaConfig(alexa_config.AbstractConfig): if body["reason"] in ("RefreshTokenNotFound", "UnknownRegion"): if self.should_report_state: await self._prefs.async_update(alexa_report_state=False) - self.hass.components.persistent_notification.async_create( + persistent_notification.async_create( + self.hass, f"There was an error reporting state to Alexa ({body['reason']}). " "Please re-link your Alexa skill via the Alexa app to " "continue using it.", diff --git a/homeassistant/components/cloud/client.py b/homeassistant/components/cloud/client.py index 0d10152a0a5..5c33cd06cef 100644 --- a/homeassistant/components/cloud/client.py +++ b/homeassistant/components/cloud/client.py @@ -10,6 +10,7 @@ from typing import Any import aiohttp from hass_nabucasa.client import CloudClient as Interface +from homeassistant.components import persistent_notification from homeassistant.components.alexa import ( errors as alexa_errors, smart_home as alexa_sh, @@ -163,9 +164,7 @@ class CloudClient(Interface): @callback def user_message(self, identifier: str, title: str, message: str) -> None: """Create a message for user to UI.""" - self._hass.components.persistent_notification.async_create( - message, title, identifier - ) + persistent_notification.async_create(self._hass, message, title, identifier) @callback def dispatcher_message(self, identifier: str, data: Any = None) -> None: diff --git a/homeassistant/components/decora_wifi/light.py b/homeassistant/components/decora_wifi/light.py index 3d3eea1f5b9..4f1f9f059d8 100644 --- a/homeassistant/components/decora_wifi/light.py +++ b/homeassistant/components/decora_wifi/light.py @@ -10,6 +10,7 @@ from decora_wifi.models.residence import Residence from decora_wifi.models.residential_account import ResidentialAccount import voluptuous as vol +from homeassistant.components import persistent_notification from homeassistant.components.light import ( ATTR_BRIGHTNESS, ATTR_TRANSITION, @@ -54,8 +55,8 @@ def setup_platform( if success is None: msg = "Failed to log into myLeviton Services. Check credentials." _LOGGER.error(msg) - hass.components.persistent_notification.create( - msg, title=NOTIFICATION_TITLE, notification_id=NOTIFICATION_ID + persistent_notification.create( + hass, msg, title=NOTIFICATION_TITLE, notification_id=NOTIFICATION_ID ) return diff --git a/homeassistant/components/demo/__init__.py b/homeassistant/components/demo/__init__.py index 5ac1945c185..3ad84825090 100644 --- a/homeassistant/components/demo/__init__.py +++ b/homeassistant/components/demo/__init__.py @@ -4,6 +4,7 @@ import datetime from random import random from homeassistant import bootstrap, config_entries +from homeassistant.components import persistent_notification from homeassistant.components.recorder.statistics import ( async_add_external_statistics, get_last_statistics, @@ -163,8 +164,10 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: return False # Set up example persistent notification - hass.components.persistent_notification.async_create( - "This is an example of a persistent notification.", title="Example Notification" + persistent_notification.async_create( + hass, + "This is an example of a persistent notification.", + title="Example Notification", ) async def demo_start_listener(_event): diff --git a/homeassistant/components/demo/button.py b/homeassistant/components/demo/button.py index 0839792c476..626403009ce 100644 --- a/homeassistant/components/demo/button.py +++ b/homeassistant/components/demo/button.py @@ -1,6 +1,7 @@ """Demo platform that offers a fake button entity.""" from __future__ import annotations +from homeassistant.components import persistent_notification from homeassistant.components.button import ButtonEntity from homeassistant.config_entries import ConfigEntry from homeassistant.const import DEVICE_DEFAULT_NAME @@ -60,6 +61,6 @@ class DemoButton(ButtonEntity): async def async_press(self) -> None: """Send out a persistent notification.""" - self.hass.components.persistent_notification.async_create( - "Button pressed", title="Button" + persistent_notification.async_create( + self.hass, "Button pressed", title="Button" )