mirror of
https://github.com/home-assistant/core.git
synced 2026-02-21 02:18:47 +00:00
78 lines
1.8 KiB
Python
78 lines
1.8 KiB
Python
"""Constants for the utility meter component."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from datetime import timedelta
|
|
from typing import TYPE_CHECKING, Final, TypedDict
|
|
|
|
from homeassistant.util.hass_dict import HassKey
|
|
|
|
if TYPE_CHECKING:
|
|
from .sensor import UtilityMeterSensor
|
|
|
|
DOMAIN = "utility_meter"
|
|
|
|
QUARTER_HOURLY = "quarter-hourly"
|
|
HOURLY = "hourly"
|
|
DAILY = "daily"
|
|
WEEKLY = "weekly"
|
|
MONTHLY = "monthly"
|
|
BIMONTHLY = "bimonthly"
|
|
QUARTERLY = "quarterly"
|
|
YEARLY = "yearly"
|
|
|
|
METER_TYPES = [
|
|
QUARTER_HOURLY,
|
|
HOURLY,
|
|
DAILY,
|
|
WEEKLY,
|
|
MONTHLY,
|
|
BIMONTHLY,
|
|
QUARTERLY,
|
|
YEARLY,
|
|
]
|
|
|
|
DATA_UTILITY: HassKey[dict[str, MeterInformation]] = HassKey(DOMAIN)
|
|
DATA_TARIFF_SENSORS: Final = "utility_meter_sensors"
|
|
|
|
CONF_METER = "meter"
|
|
CONF_SOURCE_SENSOR: Final = "source"
|
|
CONF_METER_TYPE = "cycle"
|
|
CONF_METER_OFFSET: Final = "offset"
|
|
CONF_METER_DELTA_VALUES: Final = "delta_values"
|
|
CONF_METER_NET_CONSUMPTION: Final = "net_consumption"
|
|
CONF_METER_PERIODICALLY_RESETTING: Final = "periodically_resetting"
|
|
CONF_PAUSED = "paused"
|
|
CONF_TARIFFS = "tariffs"
|
|
CONF_TARIFF = "tariff"
|
|
CONF_TARIFF_ENTITY: Final = "tariff_entity"
|
|
CONF_CRON_PATTERN = "cron"
|
|
CONF_SENSOR_ALWAYS_AVAILABLE: Final = "always_available"
|
|
|
|
ATTR_TARIFF = "tariff"
|
|
ATTR_TARIFFS = "tariffs"
|
|
ATTR_VALUE = "value"
|
|
ATTR_CRON_PATTERN = "cron pattern"
|
|
ATTR_NEXT_RESET = "next_reset"
|
|
|
|
SIGNAL_START_PAUSE_METER = "utility_meter_start_pause"
|
|
SIGNAL_RESET_METER = "utility_meter_reset"
|
|
|
|
SERVICE_RESET = "reset"
|
|
SERVICE_CALIBRATE_METER = "calibrate"
|
|
|
|
|
|
class MeterInformation(TypedDict, total=False):
|
|
"""Meter information."""
|
|
|
|
always_available: bool
|
|
delta_values: bool
|
|
name: str
|
|
net_consumption: bool
|
|
offset: timedelta
|
|
periodically_resetting: bool
|
|
source: str
|
|
tariff_entity: str | None
|
|
unique_id: str
|
|
utility_meter_sensors: list[UtilityMeterSensor]
|