mirror of
https://github.com/home-assistant/core.git
synced 2025-07-09 06:17:07 +00:00
Use async_at_started in Netatmo (#100996)
* Use async_at_started in Netatmo * Make nice
This commit is contained in:
parent
56e7e20904
commit
1b43d79717
@ -1,10 +1,10 @@
|
|||||||
"""The Netatmo integration."""
|
"""The Netatmo integration."""
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from datetime import datetime
|
|
||||||
from http import HTTPStatus
|
from http import HTTPStatus
|
||||||
import logging
|
import logging
|
||||||
import secrets
|
import secrets
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
import aiohttp
|
import aiohttp
|
||||||
import pyatmo
|
import pyatmo
|
||||||
@ -26,16 +26,9 @@ from homeassistant.const import (
|
|||||||
CONF_CLIENT_ID,
|
CONF_CLIENT_ID,
|
||||||
CONF_CLIENT_SECRET,
|
CONF_CLIENT_SECRET,
|
||||||
CONF_WEBHOOK_ID,
|
CONF_WEBHOOK_ID,
|
||||||
EVENT_HOMEASSISTANT_STARTED,
|
|
||||||
EVENT_HOMEASSISTANT_STOP,
|
EVENT_HOMEASSISTANT_STOP,
|
||||||
)
|
)
|
||||||
from homeassistant.core import (
|
from homeassistant.core import DOMAIN as HOMEASSISTANT_DOMAIN, HomeAssistant
|
||||||
DOMAIN as HOMEASSISTANT_DOMAIN,
|
|
||||||
CoreState,
|
|
||||||
Event,
|
|
||||||
HomeAssistant,
|
|
||||||
ServiceCall,
|
|
||||||
)
|
|
||||||
from homeassistant.exceptions import ConfigEntryAuthFailed, ConfigEntryNotReady
|
from homeassistant.exceptions import ConfigEntryAuthFailed, ConfigEntryNotReady
|
||||||
from homeassistant.helpers import (
|
from homeassistant.helpers import (
|
||||||
aiohttp_client,
|
aiohttp_client,
|
||||||
@ -45,6 +38,7 @@ from homeassistant.helpers import (
|
|||||||
from homeassistant.helpers.dispatcher import async_dispatcher_send
|
from homeassistant.helpers.dispatcher import async_dispatcher_send
|
||||||
from homeassistant.helpers.event import async_call_later
|
from homeassistant.helpers.event import async_call_later
|
||||||
from homeassistant.helpers.issue_registry import IssueSeverity, async_create_issue
|
from homeassistant.helpers.issue_registry import IssueSeverity, async_create_issue
|
||||||
|
from homeassistant.helpers.start import async_at_started
|
||||||
from homeassistant.helpers.typing import ConfigType
|
from homeassistant.helpers.typing import ConfigType
|
||||||
|
|
||||||
from . import api
|
from . import api
|
||||||
@ -185,7 +179,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|||||||
await data_handler.async_setup()
|
await data_handler.async_setup()
|
||||||
|
|
||||||
async def unregister_webhook(
|
async def unregister_webhook(
|
||||||
call_or_event_or_dt: ServiceCall | Event | datetime | None,
|
_: Any,
|
||||||
) -> None:
|
) -> None:
|
||||||
if CONF_WEBHOOK_ID not in entry.data:
|
if CONF_WEBHOOK_ID not in entry.data:
|
||||||
return
|
return
|
||||||
@ -204,7 +198,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|||||||
)
|
)
|
||||||
|
|
||||||
async def register_webhook(
|
async def register_webhook(
|
||||||
call_or_event_or_dt: ServiceCall | Event | datetime | None,
|
_: Any,
|
||||||
) -> None:
|
) -> None:
|
||||||
if CONF_WEBHOOK_ID not in entry.data:
|
if CONF_WEBHOOK_ID not in entry.data:
|
||||||
data = {**entry.data, CONF_WEBHOOK_ID: secrets.token_hex()}
|
data = {**entry.data, CONF_WEBHOOK_ID: secrets.token_hex()}
|
||||||
@ -254,11 +248,8 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|||||||
if cloud.async_is_connected(hass):
|
if cloud.async_is_connected(hass):
|
||||||
await register_webhook(None)
|
await register_webhook(None)
|
||||||
cloud.async_listen_connection_change(hass, manage_cloudhook)
|
cloud.async_listen_connection_change(hass, manage_cloudhook)
|
||||||
|
|
||||||
elif hass.state == CoreState.running:
|
|
||||||
await register_webhook(None)
|
|
||||||
else:
|
else:
|
||||||
hass.bus.async_listen_once(EVENT_HOMEASSISTANT_STARTED, register_webhook)
|
async_at_started(hass, register_webhook)
|
||||||
|
|
||||||
hass.services.async_register(DOMAIN, "register_webhook", register_webhook)
|
hass.services.async_register(DOMAIN, "register_webhook", register_webhook)
|
||||||
hass.services.async_register(DOMAIN, "unregister_webhook", unregister_webhook)
|
hass.services.async_register(DOMAIN, "unregister_webhook", unregister_webhook)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user