Initial Home Assistant Configuration

This commit is contained in:
root
2025-09-11 10:47:34 +03:00
commit ac8b542e1b
2360 changed files with 41412 additions and 0 deletions
@@ -0,0 +1,86 @@
"""Button definitions."""
from __future__ import annotations
import logging
from homeassistant.components.button import (
ButtonDeviceClass,
ButtonEntityDescription,
ButtonEntity,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
EntityCategory,
)
from homeassistant.core import HomeAssistant
from . import NordpoolPlanner, NordpoolPlannerEntity
from .const import (
CONF_END_TIME_ENTITY,
CONF_USED_TIME_RESET_ENTITY,
DOMAIN,
)
_LOGGER = logging.getLogger(__name__)
CONF_USED_TIME_RESET_ENTITY_DESCRIPTION = ButtonEntityDescription(
key=CONF_USED_TIME_RESET_ENTITY,
device_class=ButtonDeviceClass.RESTART,
entity_category=EntityCategory.DIAGNOSTIC
)
async def async_setup_entry(
hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities
):
"""Create action button entities for platform."""
planner: NordpoolPlanner = hass.data[DOMAIN][config_entry.entry_id]
entities = []
if config_entry.data.get(CONF_END_TIME_ENTITY):
entities.append(
NordpoolPlannerButton(
planner,
entity_description=CONF_USED_TIME_RESET_ENTITY_DESCRIPTION,
)
)
async_add_entities(entities)
return True
class NordpoolPlannerButton(NordpoolPlannerEntity, ButtonEntity):
"""Button config entity."""
def __init__(
self,
planner,
entity_description: ButtonEntityDescription,
) -> None:
"""Initialize the entity."""
super().__init__(planner)
self.entity_description = entity_description
self._attr_name = (
self._planner.name
+ " "
+ entity_description.key.replace("_entity", "").replace("_", " ")
)
self._attr_unique_id = (
("nordpool_planner_" + self._attr_name)
.lower()
.replace(".", "")
.replace(" ", "_")
)
async def async_added_to_hass(self) -> None:
"""Load the last known state when added to hass."""
await super().async_added_to_hass()
self._planner.register_input_entity_id(
self.entity_id, self.entity_description.key
)
def press(self) -> None:
"""Press the button."""
self._planner.low_hours = 0