mirror of
https://github.com/home-assistant/core.git
synced 2025-07-17 10:17:09 +00:00
add constant CONF_SLEEP_PERIOD (#59195)
This commit is contained in:
parent
a9c5f68d64
commit
6a149706ab
@ -36,6 +36,7 @@ from .const import (
|
||||
BATTERY_DEVICES_WITH_PERMANENT_CONNECTION,
|
||||
BLOCK,
|
||||
CONF_COAP_PORT,
|
||||
CONF_SLEEP_PERIOD,
|
||||
DATA_CONFIG_ENTRY,
|
||||
DEFAULT_COAP_PORT,
|
||||
DEVICE,
|
||||
@ -143,7 +144,7 @@ async def async_setup_block_entry(hass: HomeAssistant, entry: ConfigEntry) -> bo
|
||||
if device_entry and entry.entry_id not in device_entry.config_entries:
|
||||
device_entry = None
|
||||
|
||||
sleep_period = entry.data.get("sleep_period")
|
||||
sleep_period = entry.data.get(CONF_SLEEP_PERIOD)
|
||||
|
||||
@callback
|
||||
def _async_device_online(_: Any) -> None:
|
||||
@ -152,7 +153,7 @@ async def async_setup_block_entry(hass: HomeAssistant, entry: ConfigEntry) -> bo
|
||||
|
||||
if sleep_period is None:
|
||||
data = {**entry.data}
|
||||
data["sleep_period"] = get_block_device_sleep_period(device.settings)
|
||||
data[CONF_SLEEP_PERIOD] = get_block_device_sleep_period(device.settings)
|
||||
data["model"] = device.settings["device"]["type"]
|
||||
hass.config_entries.async_update_entry(entry, data=data)
|
||||
|
||||
@ -194,7 +195,7 @@ async def async_block_device_setup(
|
||||
|
||||
platforms = BLOCK_SLEEPING_PLATFORMS
|
||||
|
||||
if not entry.data.get("sleep_period"):
|
||||
if not entry.data.get(CONF_SLEEP_PERIOD):
|
||||
hass.data[DOMAIN][DATA_CONFIG_ENTRY][entry.entry_id][
|
||||
REST
|
||||
] = ShellyDeviceRestWrapper(hass, device)
|
||||
@ -239,7 +240,7 @@ class BlockDeviceWrapper(update_coordinator.DataUpdateCoordinator):
|
||||
"""Initialize the Shelly device wrapper."""
|
||||
self.device_id: str | None = None
|
||||
|
||||
if sleep_period := entry.data["sleep_period"]:
|
||||
if sleep_period := entry.data[CONF_SLEEP_PERIOD]:
|
||||
update_interval = SLEEP_PERIOD_MULTIPLIER * sleep_period
|
||||
else:
|
||||
update_interval = (
|
||||
@ -369,7 +370,7 @@ class BlockDeviceWrapper(update_coordinator.DataUpdateCoordinator):
|
||||
|
||||
async def _async_update_data(self) -> None:
|
||||
"""Fetch data."""
|
||||
if sleep_period := self.entry.data.get("sleep_period"):
|
||||
if sleep_period := self.entry.data.get(CONF_SLEEP_PERIOD):
|
||||
# Sleeping device, no point polling it, just mark it unavailable
|
||||
raise update_coordinator.UpdateFailed(
|
||||
f"Sleeping device did not update within {sleep_period} seconds interval"
|
||||
@ -477,7 +478,7 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
||||
|
||||
platforms = BLOCK_SLEEPING_PLATFORMS
|
||||
|
||||
if not entry.data.get("sleep_period"):
|
||||
if not entry.data.get(CONF_SLEEP_PERIOD):
|
||||
hass.data[DOMAIN][DATA_CONFIG_ENTRY][entry.entry_id][REST] = None
|
||||
platforms = BLOCK_PLATFORMS
|
||||
|
||||
|
@ -17,6 +17,7 @@ from homeassistant.components.binary_sensor import (
|
||||
STATE_ON,
|
||||
BinarySensorEntity,
|
||||
)
|
||||
from homeassistant.components.shelly.const import CONF_SLEEP_PERIOD
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import ENTITY_CATEGORY_DIAGNOSTIC
|
||||
from homeassistant.core import HomeAssistant
|
||||
@ -174,7 +175,7 @@ async def async_setup_entry(
|
||||
hass, config_entry, async_add_entities, RPC_SENSORS, RpcBinarySensor
|
||||
)
|
||||
|
||||
if config_entry.data["sleep_period"]:
|
||||
if config_entry.data[CONF_SLEEP_PERIOD]:
|
||||
await async_setup_entry_attribute_entities(
|
||||
hass,
|
||||
config_entry,
|
||||
|
@ -20,7 +20,7 @@ from homeassistant.data_entry_flow import FlowResult
|
||||
from homeassistant.helpers import aiohttp_client
|
||||
from homeassistant.helpers.typing import DiscoveryInfoType
|
||||
|
||||
from .const import AIOSHELLY_DEVICE_TIMEOUT_SEC, DOMAIN
|
||||
from .const import AIOSHELLY_DEVICE_TIMEOUT_SEC, CONF_SLEEP_PERIOD, DOMAIN
|
||||
from .utils import (
|
||||
get_block_device_name,
|
||||
get_block_device_sleep_period,
|
||||
@ -63,7 +63,7 @@ async def validate_input(
|
||||
await rpc_device.shutdown()
|
||||
return {
|
||||
"title": get_rpc_device_name(rpc_device),
|
||||
"sleep_period": 0,
|
||||
CONF_SLEEP_PERIOD: 0,
|
||||
"model": rpc_device.model,
|
||||
"gen": 2,
|
||||
}
|
||||
@ -78,7 +78,7 @@ async def validate_input(
|
||||
block_device.shutdown()
|
||||
return {
|
||||
"title": get_block_device_name(block_device),
|
||||
"sleep_period": get_block_device_sleep_period(block_device.settings),
|
||||
CONF_SLEEP_PERIOD: get_block_device_sleep_period(block_device.settings),
|
||||
"model": block_device.model,
|
||||
"gen": 1,
|
||||
}
|
||||
@ -130,7 +130,7 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
||||
title=device_info["title"],
|
||||
data={
|
||||
**user_input,
|
||||
"sleep_period": device_info["sleep_period"],
|
||||
CONF_SLEEP_PERIOD: device_info[CONF_SLEEP_PERIOD],
|
||||
"model": device_info["model"],
|
||||
"gen": device_info["gen"],
|
||||
},
|
||||
@ -166,7 +166,7 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
||||
data={
|
||||
**user_input,
|
||||
CONF_HOST: self.host,
|
||||
"sleep_period": device_info["sleep_period"],
|
||||
CONF_SLEEP_PERIOD: device_info[CONF_SLEEP_PERIOD],
|
||||
"model": device_info["model"],
|
||||
"gen": device_info["gen"],
|
||||
},
|
||||
@ -224,7 +224,7 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
||||
title=self.device_info["title"],
|
||||
data={
|
||||
"host": self.host,
|
||||
"sleep_period": self.device_info["sleep_period"],
|
||||
CONF_SLEEP_PERIOD: self.device_info[CONF_SLEEP_PERIOD],
|
||||
"model": self.device_info["model"],
|
||||
"gen": self.device_info["gen"],
|
||||
},
|
||||
|
@ -54,6 +54,7 @@ AIOSHELLY_DEVICE_TIMEOUT_SEC: Final = 10
|
||||
|
||||
# Multiplier used to calculate the "update_interval" for sleeping devices.
|
||||
SLEEP_PERIOD_MULTIPLIER: Final = 1.2
|
||||
CONF_SLEEP_PERIOD: Final = "sleep_period"
|
||||
|
||||
# Multiplier used to calculate the "update_interval" for non-sleeping devices.
|
||||
UPDATE_PERIOD_MULTIPLIER: Final = 2.2
|
||||
|
@ -23,7 +23,7 @@ from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||
from homeassistant.helpers.typing import StateType
|
||||
|
||||
from .const import SHAIR_MAX_WORK_HOURS
|
||||
from .const import CONF_SLEEP_PERIOD, SHAIR_MAX_WORK_HOURS
|
||||
from .entity import (
|
||||
BlockAttributeDescription,
|
||||
RestAttributeDescription,
|
||||
@ -317,7 +317,7 @@ async def async_setup_entry(
|
||||
hass, config_entry, async_add_entities, RPC_SENSORS, RpcSensor
|
||||
)
|
||||
|
||||
if config_entry.data["sleep_period"]:
|
||||
if config_entry.data[CONF_SLEEP_PERIOD]:
|
||||
await async_setup_entry_attribute_entities(
|
||||
hass, config_entry, async_add_entities, SENSORS, BlockSleepingSensor
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user