homeassistant-stubs 2025.8.3__py3-none-any.whl → 2025.9.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of homeassistant-stubs might be problematic. Click here for more details.
- homeassistant-stubs/auth/models.pyi +3 -1
- homeassistant-stubs/components/airos/binary_sensor.pyi +27 -0
- homeassistant-stubs/components/airos/sensor.pyi +4 -2
- homeassistant-stubs/components/airq/number.pyi +31 -0
- homeassistant-stubs/components/aladdin_connect/__init__.pyi +10 -5
- homeassistant-stubs/components/aladdin_connect/api.pyi +12 -0
- homeassistant-stubs/components/aladdin_connect/application_credentials.pyi +5 -0
- homeassistant-stubs/components/aladdin_connect/config_flow.pyi +15 -4
- homeassistant-stubs/components/aladdin_connect/const.pyi +10 -0
- homeassistant-stubs/components/aladdin_connect/coordinator.pyi +16 -0
- homeassistant-stubs/components/aladdin_connect/cover.pyi +25 -0
- homeassistant-stubs/components/aladdin_connect/entity.pyi +15 -0
- homeassistant-stubs/components/aladdin_connect/sensor.pyi +25 -0
- homeassistant-stubs/components/alexa_devices/__init__.pyi +1 -1
- homeassistant-stubs/components/alexa_devices/config_flow.pyi +2 -0
- homeassistant-stubs/components/alexa_devices/const.pyi +1 -1
- homeassistant-stubs/components/alexa_devices/sensor.pyi +1 -1
- homeassistant-stubs/components/alexa_devices/services.pyi +0 -1
- homeassistant-stubs/components/amberelectric/const.pyi +0 -1
- homeassistant-stubs/components/amberelectric/services.pyi +2 -1
- homeassistant-stubs/components/ambient_station/entity.pyi +1 -1
- homeassistant-stubs/components/android_ip_webcam/coordinator.pyi +0 -1
- homeassistant-stubs/components/apcupsd/binary_sensor.pyi +2 -6
- homeassistant-stubs/components/apcupsd/entity.pyi +11 -0
- homeassistant-stubs/components/apcupsd/sensor.pyi +2 -6
- homeassistant-stubs/components/asuswrt/bridge.pyi +12 -8
- homeassistant-stubs/components/asuswrt/helpers.pyi +8 -0
- homeassistant-stubs/components/auth/login_flow.pyi +1 -1
- homeassistant-stubs/components/auth/mfa_setup_flow.pyi +1 -1
- homeassistant-stubs/components/awair/const.pyi +1 -0
- homeassistant-stubs/components/awair/sensor.pyi +2 -2
- homeassistant-stubs/components/backup/config.pyi +0 -14
- homeassistant-stubs/components/bayesian/__init__.pyi +6 -4
- homeassistant-stubs/components/bayesian/binary_sensor.pyi +6 -5
- homeassistant-stubs/components/bayesian/config_flow.pyi +69 -0
- homeassistant-stubs/components/bayesian/const.pyi +5 -0
- homeassistant-stubs/components/bayesian/issues.pyi +1 -1
- homeassistant-stubs/components/bosch_alarm/const.pyi +0 -1
- homeassistant-stubs/components/bosch_alarm/services.pyi +2 -1
- homeassistant-stubs/components/braviatv/button.pyi +1 -1
- homeassistant-stubs/components/braviatv/coordinator.pyi +1 -0
- homeassistant-stubs/components/braviatv/entity.pyi +1 -1
- homeassistant-stubs/components/climate/__init__.pyi +1 -1
- homeassistant-stubs/components/cloud/alexa_config.pyi +2 -1
- homeassistant-stubs/components/cloud/subscription.pyi +2 -4
- homeassistant-stubs/components/co2signal/coordinator.pyi +3 -3
- homeassistant-stubs/components/co2signal/helpers.pyi +2 -3
- homeassistant-stubs/components/co2signal/sensor.pyi +3 -3
- homeassistant-stubs/components/config/config_entries.pyi +6 -3
- homeassistant-stubs/components/deconz/hub/hub.pyi +0 -1
- homeassistant-stubs/components/deconz/services.pyi +0 -1
- homeassistant-stubs/components/demo/media_player.pyi +2 -0
- homeassistant-stubs/components/device_automation/condition.pyi +2 -2
- homeassistant-stubs/components/enphase_envoy/binary_sensor.pyi +29 -1
- homeassistant-stubs/components/enphase_envoy/sensor.pyi +30 -1
- homeassistant-stubs/components/esphome/manager.pyi +1 -2
- homeassistant-stubs/components/esphome/media_player.pyi +5 -0
- homeassistant-stubs/components/fan/intent.pyi +7 -0
- homeassistant-stubs/components/fritz/coordinator.pyi +0 -1
- homeassistant-stubs/components/fyta/const.pyi +4 -0
- homeassistant-stubs/components/fyta/sensor.pyi +11 -0
- homeassistant-stubs/components/glances/coordinator.pyi +0 -1
- homeassistant-stubs/components/group/config_flow.pyi +2 -0
- homeassistant-stubs/components/habitica/__init__.pyi +6 -2
- homeassistant-stubs/components/habitica/binary_sensor.pyi +13 -4
- homeassistant-stubs/components/habitica/coordinator.pyi +18 -4
- homeassistant-stubs/components/habitica/entity.pyi +10 -1
- homeassistant-stubs/components/habitica/image.pyi +19 -4
- homeassistant-stubs/components/habitica/sensor.pyi +27 -3
- homeassistant-stubs/components/habitica/util.pyi +5 -2
- homeassistant-stubs/components/home_connect/const.pyi +0 -7
- homeassistant-stubs/components/home_connect/services.pyi +1 -14
- homeassistant-stubs/components/homeassistant_hardware/coordinator.pyi +0 -1
- homeassistant-stubs/components/homee/config_flow.pyi +8 -2
- homeassistant-stubs/components/homee/const.pyi +3 -0
- homeassistant-stubs/components/homekit/accessories.pyi +1 -1
- homeassistant-stubs/components/homekit/const.pyi +4 -0
- homeassistant-stubs/components/homekit/type_switches.pyi +11 -1
- homeassistant-stubs/components/homekit/util.pyi +3 -2
- homeassistant-stubs/components/huawei_lte/__init__.pyi +2 -2
- homeassistant-stubs/components/huawei_lte/const.pyi +0 -1
- homeassistant-stubs/components/huawei_lte/notify.pyi +2 -2
- homeassistant-stubs/components/husqvarna_automower/button.pyi +4 -0
- homeassistant-stubs/components/husqvarna_automower/const.pyi +1 -0
- homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +10 -0
- homeassistant-stubs/components/husqvarna_automower/event.pyi +35 -0
- homeassistant-stubs/components/husqvarna_automower/sensor.pyi +1 -2
- homeassistant-stubs/components/idasen_desk/__init__.pyi +0 -1
- homeassistant-stubs/components/jewish_calendar/__init__.pyi +2 -1
- homeassistant-stubs/components/jewish_calendar/coordinator.pyi +41 -0
- homeassistant-stubs/components/jewish_calendar/entity.pyi +5 -26
- homeassistant-stubs/components/jewish_calendar/sensor.pyi +1 -1
- homeassistant-stubs/components/knx/scene.pyi +5 -4
- homeassistant-stubs/components/knx/storage/entity_store_schema.pyi +5 -11
- homeassistant-stubs/components/knx/storage/knx_selector.pyi +57 -6
- homeassistant-stubs/components/knx/storage/serialize.pyi +10 -0
- homeassistant-stubs/components/knx/storage/util.pyi +2 -0
- homeassistant-stubs/components/knx/websocket.pyi +7 -3
- homeassistant-stubs/components/letpot/select.pyi +39 -0
- homeassistant-stubs/components/mastodon/__init__.pyi +1 -2
- homeassistant-stubs/components/mastodon/config_flow.pyi +2 -2
- homeassistant-stubs/components/mastodon/const.pyi +0 -1
- homeassistant-stubs/components/mastodon/diagnostics.pyi +2 -2
- homeassistant-stubs/components/mastodon/services.pyi +2 -1
- homeassistant-stubs/components/matter/lock.pyi +6 -0
- homeassistant-stubs/components/matter/sensor.pyi +2 -1
- homeassistant-stubs/components/mealie/const.pyi +0 -1
- homeassistant-stubs/components/mealie/services.pyi +2 -2
- homeassistant-stubs/components/media_player/__init__.pyi +4 -0
- homeassistant-stubs/components/media_player/intent.pyi +13 -3
- homeassistant-stubs/components/met_eireann/const.pyi +1 -1
- homeassistant-stubs/components/met_eireann/weather.pyi +4 -0
- homeassistant-stubs/components/miele/climate.pyi +3 -1
- homeassistant-stubs/components/miele/const.pyi +1 -0
- homeassistant-stubs/components/miele/coordinator.pyi +2 -3
- homeassistant-stubs/components/miele/entity.pyi +2 -3
- homeassistant-stubs/components/miele/sensor.pyi +25 -6
- homeassistant-stubs/components/modbus/binary_sensor.pyi +1 -2
- homeassistant-stubs/components/modbus/climate.pyi +1 -2
- homeassistant-stubs/components/modbus/const.pyi +2 -0
- homeassistant-stubs/components/modbus/entity.pyi +7 -16
- homeassistant-stubs/components/modbus/light.pyi +0 -1
- homeassistant-stubs/components/modbus/modbus.pyi +9 -11
- homeassistant-stubs/components/modbus/sensor.pyi +1 -3
- homeassistant-stubs/components/mqtt/alarm_control_panel.pyi +2 -23
- homeassistant-stubs/components/mqtt/config_flow.pyi +8 -2
- homeassistant-stubs/components/mqtt/const.pyi +40 -1
- homeassistant-stubs/components/mqtt/lock.pyi +1 -21
- homeassistant-stubs/components/mqtt/number.pyi +1 -0
- homeassistant-stubs/components/mqtt/sensor.pyi +1 -1
- homeassistant-stubs/components/music_assistant/actions.pyi +2 -1
- homeassistant-stubs/components/music_assistant/const.pyi +0 -1
- homeassistant-stubs/components/music_assistant/media_browser.pyi +1 -1
- homeassistant-stubs/components/number/__init__.pyi +3 -0
- homeassistant-stubs/components/number/const.pyi +2 -1
- homeassistant-stubs/components/open_router/entity.pyi +2 -2
- homeassistant-stubs/components/openai_conversation/entity.pyi +3 -3
- homeassistant-stubs/components/opower/__init__.pyi +1 -0
- homeassistant-stubs/components/opower/repairs.pyi +13 -0
- homeassistant-stubs/components/overseerr/const.pyi +0 -1
- homeassistant-stubs/components/overseerr/services.pyi +2 -1
- homeassistant-stubs/components/person/__init__.pyi +2 -1
- homeassistant-stubs/components/qbus/binary_sensor.pyi +43 -0
- homeassistant-stubs/components/qbus/climate.pyi +1 -1
- homeassistant-stubs/components/qbus/coordinator.pyi +4 -3
- homeassistant-stubs/components/qbus/cover.pyi +1 -1
- homeassistant-stubs/components/qbus/entity.pyi +6 -5
- homeassistant-stubs/components/qbus/light.pyi +1 -1
- homeassistant-stubs/components/qbus/scene.pyi +4 -6
- homeassistant-stubs/components/qbus/sensor.pyi +67 -0
- homeassistant-stubs/components/qbus/switch.pyi +1 -1
- homeassistant-stubs/components/recorder/statistics.pyi +1 -1
- homeassistant-stubs/components/recorder/websocket_api.pyi +1 -1
- homeassistant-stubs/components/rest_command/__init__.pyi +1 -1
- homeassistant-stubs/components/romy/coordinator.pyi +0 -1
- homeassistant-stubs/components/russound_rio/media_browser.pyi +8 -0
- homeassistant-stubs/components/russound_rio/media_player.pyi +3 -2
- homeassistant-stubs/components/ruuvitag_ble/sensor.pyi +2 -2
- homeassistant-stubs/components/scene/__init__.pyi +13 -4
- homeassistant-stubs/components/sensibo/select.pyi +0 -5
- homeassistant-stubs/components/sensor/__init__.pyi +3 -0
- homeassistant-stubs/components/sensor/const.pyi +3 -2
- homeassistant-stubs/components/sensor/recorder.pyi +1 -1
- homeassistant-stubs/components/sleep_as_android/__init__.pyi +16 -0
- homeassistant-stubs/components/sleep_as_android/config_flow.pyi +2 -0
- homeassistant-stubs/components/sleep_as_android/const.pyi +9 -0
- homeassistant-stubs/components/sleep_as_android/diagnostics.pyi +5 -0
- homeassistant-stubs/components/sleep_as_android/entity.pyi +20 -0
- homeassistant-stubs/components/sleep_as_android/event.pyi +33 -0
- homeassistant-stubs/components/sleep_as_android/sensor.pyi +25 -0
- homeassistant-stubs/components/solarlog/sensor.pyi +11 -1
- homeassistant-stubs/components/speedtestdotnet/coordinator.pyi +0 -1
- homeassistant-stubs/components/stookwijzer/const.pyi +0 -1
- homeassistant-stubs/components/stookwijzer/services.pyi +2 -1
- homeassistant-stubs/components/sun/condition.pyi +2 -2
- homeassistant-stubs/components/switchbot_cloud/__init__.pyi +1 -0
- homeassistant-stubs/components/switchbot_cloud/const.pyi +10 -0
- homeassistant-stubs/components/switchbot_cloud/cover.pyi +57 -0
- homeassistant-stubs/components/switchbot_cloud/fan.pyi +22 -1
- homeassistant-stubs/components/telegram_bot/__init__.pyi +2 -1
- homeassistant-stubs/components/telegram_bot/bot.pyi +4 -1
- homeassistant-stubs/components/telegram_bot/notify.pyi +21 -0
- homeassistant-stubs/components/unifi/switch.pyi +3 -0
- homeassistant-stubs/components/volvo/__init__.pyi +1 -1
- homeassistant-stubs/components/volvo/binary_sensor.pyi +42 -0
- homeassistant-stubs/components/volvo/const.pyi +1 -1
- homeassistant-stubs/components/volvo/coordinator.pyi +5 -0
- homeassistant-stubs/components/volvo/sensor.pyi +2 -2
- homeassistant-stubs/components/webostv/__init__.pyi +2 -2
- homeassistant-stubs/components/webostv/const.pyi +0 -1
- homeassistant-stubs/components/webostv/notify.pyi +2 -2
- homeassistant-stubs/components/websocket_api/http.pyi +1 -0
- homeassistant-stubs/components/wemo/coordinator.pyi +0 -1
- homeassistant-stubs/components/workday/__init__.pyi +6 -8
- homeassistant-stubs/components/workday/binary_sensor.pyi +9 -33
- homeassistant-stubs/components/workday/entity.pyi +34 -0
- homeassistant-stubs/components/workday/util.pyi +14 -0
- homeassistant-stubs/components/yalexs_ble/__init__.pyi +3 -1
- homeassistant-stubs/components/yalexs_ble/config_cache.pyi +10 -0
- homeassistant-stubs/components/yalexs_ble/config_flow.pyi +4 -0
- homeassistant-stubs/components/zone/condition.pyi +2 -2
- homeassistant-stubs/components/zwave_js/__init__.pyi +5 -5
- homeassistant-stubs/components/zwave_js/binary_sensor.pyi +18 -10
- homeassistant-stubs/components/zwave_js/const.pyi +0 -1
- homeassistant-stubs/components/zwave_js/discovery.pyi +7 -51
- homeassistant-stubs/components/zwave_js/discovery_data_template.pyi +1 -11
- homeassistant-stubs/components/zwave_js/entity.pyi +15 -5
- homeassistant-stubs/components/zwave_js/helpers.pyi +0 -7
- homeassistant-stubs/components/zwave_js/migrate.pyi +2 -2
- homeassistant-stubs/components/zwave_js/models.pyi +95 -1
- homeassistant-stubs/components/zwave_js/triggers/event.pyi +5 -4
- homeassistant-stubs/components/zwave_js/triggers/trigger_helpers.pyi +2 -2
- homeassistant-stubs/components/zwave_js/triggers/value_updated.pyi +3 -2
- homeassistant-stubs/components/zwave_js/update.pyi +0 -3
- homeassistant-stubs/config_entries.pyi +5 -0
- homeassistant-stubs/const.pyi +9 -5
- homeassistant-stubs/data_entry_flow.pyi +0 -1
- homeassistant-stubs/helpers/automation.pyi +2 -0
- homeassistant-stubs/helpers/condition.pyi +6 -6
- homeassistant-stubs/helpers/config_validation.pyi +3 -0
- homeassistant-stubs/helpers/data_entry_flow.pyi +1 -1
- homeassistant-stubs/helpers/device_registry.pyi +2 -2
- homeassistant-stubs/helpers/entity_registry.pyi +4 -3
- homeassistant-stubs/helpers/json.pyi +0 -7
- homeassistant-stubs/helpers/llm.pyi +1 -0
- homeassistant-stubs/helpers/schema_config_entry_flow.pyi +2 -1
- homeassistant-stubs/helpers/selector.pyi +2 -1
- homeassistant-stubs/helpers/target.pyi +3 -2
- homeassistant-stubs/helpers/trigger.pyi +6 -6
- homeassistant-stubs/util/unit_conversion.pyi +11 -1
- {homeassistant_stubs-2025.8.3.dist-info → homeassistant_stubs-2025.9.0.dist-info}/METADATA +2 -2
- {homeassistant_stubs-2025.8.3.dist-info → homeassistant_stubs-2025.9.0.dist-info}/RECORD +234 -208
- homeassistant-stubs/components/linear_garage_door/__init__.pyi +0 -10
- homeassistant-stubs/components/linear_garage_door/config_flow.pyi +0 -25
- homeassistant-stubs/components/linear_garage_door/const.pyi +0 -1
- homeassistant-stubs/components/linear_garage_door/coordinator.pyi +0 -26
- homeassistant-stubs/components/linear_garage_door/cover.pyi +0 -28
- homeassistant-stubs/components/linear_garage_door/diagnostics.pyi +0 -10
- homeassistant-stubs/components/linear_garage_door/entity.pyi +0 -17
- homeassistant-stubs/components/linear_garage_door/light.pyi +0 -23
- homeassistant-stubs/components/mastodon/notify.pyi +0 -24
- {homeassistant_stubs-2025.8.3.dist-info → homeassistant_stubs-2025.9.0.dist-info}/WHEEL +0 -0
- {homeassistant_stubs-2025.8.3.dist-info → homeassistant_stubs-2025.9.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import voluptuous as vol
|
|
2
|
+
from .binary_sensor import above_greater_than_below as above_greater_than_below, no_overlapping as no_overlapping
|
|
3
|
+
from .const import CONF_OBSERVATIONS as CONF_OBSERVATIONS, CONF_PRIOR as CONF_PRIOR, CONF_PROBABILITY_THRESHOLD as CONF_PROBABILITY_THRESHOLD, CONF_P_GIVEN_F as CONF_P_GIVEN_F, CONF_P_GIVEN_T as CONF_P_GIVEN_T, CONF_TEMPLATE as CONF_TEMPLATE, CONF_TO_STATE as CONF_TO_STATE, DEFAULT_NAME as DEFAULT_NAME, DEFAULT_PROBABILITY_THRESHOLD as DEFAULT_PROBABILITY_THRESHOLD, DOMAIN as DOMAIN
|
|
4
|
+
from _typeshed import Incomplete
|
|
5
|
+
from collections.abc import Mapping
|
|
6
|
+
from enum import StrEnum
|
|
7
|
+
from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass
|
|
8
|
+
from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlowResult as ConfigFlowResult, ConfigSubentry as ConfigSubentry, ConfigSubentryData as ConfigSubentryData, ConfigSubentryFlow as ConfigSubentryFlow, SubentryFlowResult as SubentryFlowResult
|
|
9
|
+
from homeassistant.const import CONF_ABOVE as CONF_ABOVE, CONF_BELOW as CONF_BELOW, CONF_DEVICE_CLASS as CONF_DEVICE_CLASS, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_NAME as CONF_NAME, CONF_PLATFORM as CONF_PLATFORM, CONF_STATE as CONF_STATE, CONF_VALUE_TEMPLATE as CONF_VALUE_TEMPLATE
|
|
10
|
+
from homeassistant.core import callback as callback
|
|
11
|
+
from homeassistant.helpers import selector as selector, translation as translation
|
|
12
|
+
from homeassistant.helpers.schema_config_entry_flow import SchemaCommonFlowHandler as SchemaCommonFlowHandler, SchemaConfigFlowHandler as SchemaConfigFlowHandler, SchemaFlowError as SchemaFlowError, SchemaFlowFormStep as SchemaFlowFormStep, SchemaFlowMenuStep as SchemaFlowMenuStep
|
|
13
|
+
from typing import Any
|
|
14
|
+
|
|
15
|
+
_LOGGER: Incomplete
|
|
16
|
+
USER: str
|
|
17
|
+
OBSERVATION_SELECTOR: str
|
|
18
|
+
ALLOWED_STATE_DOMAINS: Incomplete
|
|
19
|
+
ALLOWED_NUMERIC_DOMAINS: Incomplete
|
|
20
|
+
|
|
21
|
+
class ObservationTypes(StrEnum):
|
|
22
|
+
STATE = CONF_STATE
|
|
23
|
+
NUMERIC_STATE = 'numeric_state'
|
|
24
|
+
TEMPLATE = CONF_TEMPLATE
|
|
25
|
+
|
|
26
|
+
class OptionsFlowSteps(StrEnum):
|
|
27
|
+
INIT = 'init'
|
|
28
|
+
ADD_OBSERVATION = OBSERVATION_SELECTOR
|
|
29
|
+
|
|
30
|
+
OPTIONS_SCHEMA: Incomplete
|
|
31
|
+
CONFIG_SCHEMA: Incomplete
|
|
32
|
+
OBSERVATION_BOILERPLATE: Incomplete
|
|
33
|
+
STATE_SUBSCHEMA: Incomplete
|
|
34
|
+
NUMERIC_STATE_SUBSCHEMA: Incomplete
|
|
35
|
+
TEMPLATE_SUBSCHEMA: Incomplete
|
|
36
|
+
|
|
37
|
+
def _convert_percentages_to_fractions(data: dict[str, str | float | int]) -> dict[str, str | float]: ...
|
|
38
|
+
def _convert_fractions_to_percentages(data: dict[str, str | float]) -> dict[str, str | float]: ...
|
|
39
|
+
def _select_observation_schema(obs_type: ObservationTypes) -> vol.Schema: ...
|
|
40
|
+
async def _get_base_suggested_values(handler: SchemaCommonFlowHandler) -> dict[str, Any]: ...
|
|
41
|
+
def _get_observation_values_for_editing(subentry: ConfigSubentry) -> dict[str, Any]: ...
|
|
42
|
+
async def _validate_user(handler: SchemaCommonFlowHandler, user_input: dict[str, Any]) -> dict[str, Any]: ...
|
|
43
|
+
def _validate_observation_subentry(obs_type: ObservationTypes, user_input: dict[str, Any], other_subentries: list[dict[str, Any]] | None = None) -> dict[str, Any]: ...
|
|
44
|
+
async def _validate_subentry_from_config_entry(handler: SchemaCommonFlowHandler, user_input: dict[str, Any]) -> dict[str, Any]: ...
|
|
45
|
+
async def _get_description_placeholders(handler: SchemaCommonFlowHandler) -> dict[str, str]: ...
|
|
46
|
+
async def _get_observation_menu_options(handler: SchemaCommonFlowHandler) -> list[str]: ...
|
|
47
|
+
|
|
48
|
+
CONFIG_FLOW: dict[str, SchemaFlowMenuStep | SchemaFlowFormStep]
|
|
49
|
+
OPTIONS_FLOW: dict[str, SchemaFlowMenuStep | SchemaFlowFormStep]
|
|
50
|
+
|
|
51
|
+
class BayesianConfigFlowHandler(SchemaConfigFlowHandler, domain=DOMAIN):
|
|
52
|
+
VERSION: int
|
|
53
|
+
MINOR_VERSION: int
|
|
54
|
+
config_flow = CONFIG_FLOW
|
|
55
|
+
options_flow = OPTIONS_FLOW
|
|
56
|
+
@classmethod
|
|
57
|
+
@callback
|
|
58
|
+
def async_get_supported_subentry_types(cls, config_entry: ConfigEntry) -> dict[str, type[ConfigSubentryFlow]]: ...
|
|
59
|
+
def async_config_entry_title(self, options: Mapping[str, str]) -> str: ...
|
|
60
|
+
@callback
|
|
61
|
+
def async_create_entry(self, data: Mapping[str, Any], **kwargs: Any) -> ConfigFlowResult: ...
|
|
62
|
+
|
|
63
|
+
class ObservationSubentryFlowHandler(ConfigSubentryFlow):
|
|
64
|
+
async def step_common(self, user_input: dict[str, Any] | None, obs_type: ObservationTypes, reconfiguring: bool = False) -> SubentryFlowResult: ...
|
|
65
|
+
async def async_step_user(self, user_input: dict[str, Any] | None = None) -> SubentryFlowResult: ...
|
|
66
|
+
async def async_step_state(self, user_input: dict[str, Any] | None = None) -> SubentryFlowResult: ...
|
|
67
|
+
async def async_step_numeric_state(self, user_input: dict[str, Any] | None = None) -> SubentryFlowResult: ...
|
|
68
|
+
async def async_step_template(self, user_input: dict[str, Any] | None = None) -> SubentryFlowResult: ...
|
|
69
|
+
async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> SubentryFlowResult: ...
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import datetime as dt
|
|
2
|
-
from .const import
|
|
2
|
+
from .const import ATTR_DATETIME as ATTR_DATETIME, DOMAIN as DOMAIN, SERVICE_SET_DATE_TIME as SERVICE_SET_DATE_TIME
|
|
3
3
|
from .types import BoschAlarmConfigEntry as BoschAlarmConfigEntry
|
|
4
4
|
from _typeshed import Incomplete
|
|
5
5
|
from homeassistant.config_entries import ConfigEntryState as ConfigEntryState
|
|
6
|
+
from homeassistant.const import ATTR_CONFIG_ENTRY_ID as ATTR_CONFIG_ENTRY_ID
|
|
6
7
|
from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
|
|
7
8
|
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
|
|
8
9
|
from typing import Any
|
|
@@ -19,5 +19,5 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: BraviaTVConfigEnt
|
|
|
19
19
|
class BraviaTVButton(BraviaTVEntity, ButtonEntity):
|
|
20
20
|
entity_description: BraviaTVButtonDescription
|
|
21
21
|
_attr_unique_id: Incomplete
|
|
22
|
-
def __init__(self, coordinator: BraviaTVCoordinator, unique_id: str,
|
|
22
|
+
def __init__(self, coordinator: BraviaTVCoordinator, unique_id: str, description: BraviaTVButtonDescription) -> None: ...
|
|
23
23
|
async def async_press(self) -> None: ...
|
|
@@ -8,4 +8,4 @@ class BraviaTVEntity(CoordinatorEntity[BraviaTVCoordinator]):
|
|
|
8
8
|
_attr_has_entity_name: bool
|
|
9
9
|
_attr_unique_id: Incomplete
|
|
10
10
|
_attr_device_info: Incomplete
|
|
11
|
-
def __init__(self, coordinator: BraviaTVCoordinator, unique_id: str
|
|
11
|
+
def __init__(self, coordinator: BraviaTVCoordinator, unique_id: str) -> None: ...
|
|
@@ -36,7 +36,7 @@ CACHED_PROPERTIES_WITH_ATTR_: Incomplete
|
|
|
36
36
|
class ClimateEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_):
|
|
37
37
|
_entity_component_unrecorded_attributes: Incomplete
|
|
38
38
|
entity_description: ClimateEntityDescription
|
|
39
|
-
_attr_current_humidity:
|
|
39
|
+
_attr_current_humidity: float | None
|
|
40
40
|
_attr_current_temperature: float | None
|
|
41
41
|
_attr_fan_mode: str | None
|
|
42
42
|
_attr_fan_modes: list[str] | None
|
|
@@ -5,6 +5,7 @@ from _typeshed import Incomplete
|
|
|
5
5
|
from collections.abc import Callable as Callable
|
|
6
6
|
from datetime import datetime
|
|
7
7
|
from hass_nabucasa import Cloud as Cloud
|
|
8
|
+
from hass_nabucasa.alexa_api import AlexaAccessTokenDetails as AlexaAccessTokenDetails
|
|
8
9
|
from homeassistant.components import persistent_notification as persistent_notification
|
|
9
10
|
from homeassistant.components.alexa import config as alexa_config
|
|
10
11
|
from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass
|
|
@@ -36,7 +37,7 @@ class CloudAlexaConfig(alexa_config.AbstractConfig):
|
|
|
36
37
|
_cloud_user: Incomplete
|
|
37
38
|
_prefs: Incomplete
|
|
38
39
|
_cloud: Incomplete
|
|
39
|
-
_token:
|
|
40
|
+
_token: str | None
|
|
40
41
|
_token_valid: datetime | None
|
|
41
42
|
_cur_entity_prefs: Incomplete
|
|
42
43
|
_alexa_sync_unsub: Callable[[], None] | None
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
from .client import CloudClient as CloudClient
|
|
2
2
|
from .const import REQUEST_TIMEOUT as REQUEST_TIMEOUT
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
|
-
from hass_nabucasa import Cloud as Cloud
|
|
5
|
-
from hass_nabucasa.payments_api import SubscriptionInfo as SubscriptionInfo
|
|
6
|
-
from typing import Any
|
|
4
|
+
from hass_nabucasa import Cloud as Cloud, MigratePaypalAgreementInfo as MigratePaypalAgreementInfo, SubscriptionInfo as SubscriptionInfo
|
|
7
5
|
|
|
8
6
|
_LOGGER: Incomplete
|
|
9
7
|
|
|
10
8
|
async def async_subscription_info(cloud: Cloud[CloudClient]) -> SubscriptionInfo | None: ...
|
|
11
|
-
async def async_migrate_paypal_agreement(cloud: Cloud[CloudClient]) ->
|
|
9
|
+
async def async_migrate_paypal_agreement(cloud: Cloud[CloudClient]) -> MigratePaypalAgreementInfo | None: ...
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from .const import DOMAIN as DOMAIN
|
|
2
2
|
from .helpers import fetch_latest_carbon_intensity as fetch_latest_carbon_intensity
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
|
-
from aioelectricitymaps import
|
|
4
|
+
from aioelectricitymaps import ElectricityMaps as ElectricityMaps, HomeAssistantCarbonIntensityResponse
|
|
5
5
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
6
6
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
7
7
|
from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed
|
|
@@ -10,10 +10,10 @@ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as Da
|
|
|
10
10
|
_LOGGER: Incomplete
|
|
11
11
|
type CO2SignalConfigEntry = ConfigEntry[CO2SignalCoordinator]
|
|
12
12
|
|
|
13
|
-
class CO2SignalCoordinator(DataUpdateCoordinator[
|
|
13
|
+
class CO2SignalCoordinator(DataUpdateCoordinator[HomeAssistantCarbonIntensityResponse]):
|
|
14
14
|
config_entry: CO2SignalConfigEntry
|
|
15
15
|
client: Incomplete
|
|
16
16
|
def __init__(self, hass: HomeAssistant, config_entry: CO2SignalConfigEntry, client: ElectricityMaps) -> None: ...
|
|
17
17
|
@property
|
|
18
18
|
def entry_id(self) -> str: ...
|
|
19
|
-
async def _async_update_data(self) ->
|
|
19
|
+
async def _async_update_data(self) -> HomeAssistantCarbonIntensityResponse: ...
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
from aioelectricitymaps import ElectricityMaps as ElectricityMaps
|
|
2
|
-
from aioelectricitymaps.models import CarbonIntensityResponse as CarbonIntensityResponse
|
|
1
|
+
from aioelectricitymaps import ElectricityMaps as ElectricityMaps, HomeAssistantCarbonIntensityResponse as HomeAssistantCarbonIntensityResponse
|
|
3
2
|
from collections.abc import Mapping
|
|
4
3
|
from homeassistant.const import CONF_COUNTRY_CODE as CONF_COUNTRY_CODE, CONF_LATITUDE as CONF_LATITUDE, CONF_LONGITUDE as CONF_LONGITUDE
|
|
5
4
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
6
5
|
from typing import Any
|
|
7
6
|
|
|
8
|
-
async def fetch_latest_carbon_intensity(hass: HomeAssistant, em: ElectricityMaps, config: Mapping[str, Any]) ->
|
|
7
|
+
async def fetch_latest_carbon_intensity(hass: HomeAssistant, em: ElectricityMaps, config: Mapping[str, Any]) -> HomeAssistantCarbonIntensityResponse: ...
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from .const import ATTRIBUTION as ATTRIBUTION, DOMAIN as DOMAIN
|
|
2
2
|
from .coordinator import CO2SignalConfigEntry as CO2SignalConfigEntry, CO2SignalCoordinator as CO2SignalCoordinator
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
|
-
from aioelectricitymaps
|
|
4
|
+
from aioelectricitymaps import HomeAssistantCarbonIntensityResponse as HomeAssistantCarbonIntensityResponse
|
|
5
5
|
from collections.abc import Callable as Callable
|
|
6
6
|
from dataclasses import dataclass
|
|
7
7
|
from homeassistant.components.sensor import SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
|
|
@@ -14,8 +14,8 @@ from homeassistant.helpers.update_coordinator import CoordinatorEntity as Coordi
|
|
|
14
14
|
@dataclass(frozen=True, kw_only=True)
|
|
15
15
|
class CO2SensorEntityDescription(SensorEntityDescription):
|
|
16
16
|
unique_id: str | None = ...
|
|
17
|
-
unit_of_measurement_fn: Callable[[
|
|
18
|
-
value_fn: Callable[[
|
|
17
|
+
unit_of_measurement_fn: Callable[[HomeAssistantCarbonIntensityResponse], str | None] | None = ...
|
|
18
|
+
value_fn: Callable[[HomeAssistantCarbonIntensityResponse], float | None]
|
|
19
19
|
|
|
20
20
|
SENSORS: Incomplete
|
|
21
21
|
|
|
@@ -31,7 +31,7 @@ class ConfigManagerEntryResourceReloadView(HomeAssistantView):
|
|
|
31
31
|
name: str
|
|
32
32
|
async def post(self, request: web.Request, entry_id: str) -> web.Response: ...
|
|
33
33
|
|
|
34
|
-
def _prepare_config_flow_result_json(result: data_entry_flow.FlowResult, prepare_result_json: Callable[[data_entry_flow.FlowResult],
|
|
34
|
+
def _prepare_config_flow_result_json(result: data_entry_flow.FlowResult, prepare_result_json: Callable[[data_entry_flow.FlowResult], dict[str, Any]]) -> dict[str, Any]: ...
|
|
35
35
|
|
|
36
36
|
class ConfigManagerFlowIndexView(FlowManagerIndexView[config_entries.ConfigEntriesFlowManager]):
|
|
37
37
|
url: str
|
|
@@ -40,14 +40,14 @@ class ConfigManagerFlowIndexView(FlowManagerIndexView[config_entries.ConfigEntri
|
|
|
40
40
|
async def post(self, request: web.Request, data: dict[str, Any]) -> web.Response: ...
|
|
41
41
|
async def _post_impl(self, request: web.Request, data: dict[str, Any]) -> web.Response: ...
|
|
42
42
|
def get_context(self, data: dict[str, Any]) -> dict[str, Any]: ...
|
|
43
|
-
def _prepare_result_json(self, result: data_entry_flow.FlowResult) ->
|
|
43
|
+
def _prepare_result_json(self, result: data_entry_flow.FlowResult) -> dict[str, Any]: ...
|
|
44
44
|
|
|
45
45
|
class ConfigManagerFlowResourceView(FlowManagerResourceView[config_entries.ConfigEntriesFlowManager]):
|
|
46
46
|
url: str
|
|
47
47
|
name: str
|
|
48
48
|
async def get(self, request: web.Request, /, flow_id: str) -> web.Response: ...
|
|
49
49
|
async def post(self, request: web.Request, flow_id: str) -> web.Response: ...
|
|
50
|
-
def _prepare_result_json(self, result: data_entry_flow.FlowResult) ->
|
|
50
|
+
def _prepare_result_json(self, result: data_entry_flow.FlowResult) -> dict[str, Any]: ...
|
|
51
51
|
|
|
52
52
|
class ConfigManagerAvailableFlowView(HomeAssistantView):
|
|
53
53
|
url: str
|
|
@@ -105,4 +105,7 @@ async def _async_matching_config_entries_json_fragments(hass: HomeAssistant, typ
|
|
|
105
105
|
async def config_subentry_list(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
|
|
106
106
|
@websocket_api.require_admin
|
|
107
107
|
@websocket_api.async_response
|
|
108
|
+
async def config_subentry_update(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
|
|
109
|
+
@websocket_api.require_admin
|
|
110
|
+
@websocket_api.async_response
|
|
108
111
|
async def config_subentry_delete(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
|
|
@@ -6,7 +6,6 @@ from _typeshed import Incomplete
|
|
|
6
6
|
from collections.abc import Callable as Callable
|
|
7
7
|
from homeassistant.config_entries import SOURCE_HASSIO as SOURCE_HASSIO
|
|
8
8
|
from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, callback as callback
|
|
9
|
-
from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC
|
|
10
9
|
from homeassistant.helpers.dispatcher import async_dispatcher_send as async_dispatcher_send
|
|
11
10
|
from pydeconz import DeconzSession as DeconzSession
|
|
12
11
|
from pydeconz.interfaces.api_handlers import APIHandler as APIHandler, GroupedAPIHandler as GroupedAPIHandler
|
|
@@ -4,7 +4,6 @@ from .hub import DeconzHub as DeconzHub
|
|
|
4
4
|
from .util import get_master_hub as get_master_hub
|
|
5
5
|
from _typeshed import Incomplete
|
|
6
6
|
from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
|
|
7
|
-
from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC
|
|
8
7
|
from homeassistant.util.read_only_dict import ReadOnlyDict as ReadOnlyDict
|
|
9
8
|
|
|
10
9
|
DECONZ_SERVICES: str
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from _typeshed import Incomplete
|
|
2
2
|
from datetime import datetime
|
|
3
|
+
from homeassistant.components import media_source as media_source
|
|
3
4
|
from homeassistant.components.media_player import BrowseMedia as BrowseMedia, MediaClass as MediaClass, MediaPlayerDeviceClass as MediaPlayerDeviceClass, MediaPlayerEntity as MediaPlayerEntity, MediaPlayerEntityFeature as MediaPlayerEntityFeature, MediaPlayerState as MediaPlayerState, MediaType as MediaType, RepeatMode as RepeatMode, SearchMedia as SearchMedia, SearchMediaQuery as SearchMediaQuery
|
|
4
5
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
5
6
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
@@ -108,6 +109,7 @@ class DemoTVShowPlayer(AbstractDemoPlayer):
|
|
|
108
109
|
|
|
109
110
|
class DemoBrowsePlayer(AbstractDemoPlayer):
|
|
110
111
|
_attr_supported_features = BROWSE_PLAYER_SUPPORT
|
|
112
|
+
async def async_browse_media(self, media_content_type: MediaType | str | None = None, media_content_id: str | None = None) -> BrowseMedia: ...
|
|
111
113
|
|
|
112
114
|
class DemoGroupPlayer(AbstractDemoPlayer):
|
|
113
115
|
_attr_supported_features: Incomplete
|
|
@@ -21,8 +21,8 @@ class DeviceCondition(Condition):
|
|
|
21
21
|
_hass: Incomplete
|
|
22
22
|
def __init__(self, hass: HomeAssistant, config: ConfigType) -> None: ...
|
|
23
23
|
@classmethod
|
|
24
|
-
async def
|
|
25
|
-
async def
|
|
24
|
+
async def async_validate_config(cls, hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
|
|
25
|
+
async def async_get_checker(self) -> condition.ConditionCheckerType: ...
|
|
26
26
|
|
|
27
27
|
CONDITIONS: dict[str, type[Condition]]
|
|
28
28
|
|
|
@@ -9,7 +9,7 @@ from homeassistant.const import EntityCategory as EntityCategory
|
|
|
9
9
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
10
10
|
from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
|
|
11
11
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
12
|
-
from pyenphase import EnvoyEncharge as EnvoyEncharge, EnvoyEnpower as EnvoyEnpower
|
|
12
|
+
from pyenphase import EnvoyC6CC as EnvoyC6CC, EnvoyCollar as EnvoyCollar, EnvoyEncharge as EnvoyEncharge, EnvoyEnpower as EnvoyEnpower
|
|
13
13
|
|
|
14
14
|
PARALLEL_UPDATES: int
|
|
15
15
|
|
|
@@ -25,6 +25,18 @@ class EnvoyEnpowerBinarySensorEntityDescription(BinarySensorEntityDescription):
|
|
|
25
25
|
|
|
26
26
|
ENPOWER_SENSORS: Incomplete
|
|
27
27
|
|
|
28
|
+
@dataclass(frozen=True, kw_only=True)
|
|
29
|
+
class EnvoyCollarBinarySensorEntityDescription(BinarySensorEntityDescription):
|
|
30
|
+
value_fn: Callable[[EnvoyCollar], bool]
|
|
31
|
+
|
|
32
|
+
COLLAR_SENSORS: Incomplete
|
|
33
|
+
|
|
34
|
+
@dataclass(frozen=True, kw_only=True)
|
|
35
|
+
class EnvoyC6CCBinarySensorEntityDescription(BinarySensorEntityDescription):
|
|
36
|
+
value_fn: Callable[[EnvoyC6CC], bool]
|
|
37
|
+
|
|
38
|
+
C6CC_SENSORS: Incomplete
|
|
39
|
+
|
|
28
40
|
async def async_setup_entry(hass: HomeAssistant, config_entry: EnphaseConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
29
41
|
|
|
30
42
|
class EnvoyBaseBinarySensorEntity(EnvoyBaseEntity, BinarySensorEntity): ...
|
|
@@ -45,3 +57,19 @@ class EnvoyEnpowerBinarySensorEntity(EnvoyBaseBinarySensorEntity):
|
|
|
45
57
|
def __init__(self, coordinator: EnphaseUpdateCoordinator, description: EnvoyEnpowerBinarySensorEntityDescription) -> None: ...
|
|
46
58
|
@property
|
|
47
59
|
def is_on(self) -> bool: ...
|
|
60
|
+
|
|
61
|
+
class EnvoyCollarBinarySensorEntity(EnvoyBaseBinarySensorEntity):
|
|
62
|
+
entity_description: EnvoyCollarBinarySensorEntityDescription
|
|
63
|
+
_attr_unique_id: Incomplete
|
|
64
|
+
_attr_device_info: Incomplete
|
|
65
|
+
def __init__(self, coordinator: EnphaseUpdateCoordinator, description: EnvoyCollarBinarySensorEntityDescription) -> None: ...
|
|
66
|
+
@property
|
|
67
|
+
def is_on(self) -> bool: ...
|
|
68
|
+
|
|
69
|
+
class EnvoyC6CCBinarySensorEntity(EnvoyBaseBinarySensorEntity):
|
|
70
|
+
entity_description: EnvoyC6CCBinarySensorEntityDescription
|
|
71
|
+
_attr_unique_id: Incomplete
|
|
72
|
+
_attr_device_info: Incomplete
|
|
73
|
+
def __init__(self, coordinator: EnphaseUpdateCoordinator, description: EnvoyC6CCBinarySensorEntityDescription) -> None: ...
|
|
74
|
+
@property
|
|
75
|
+
def is_on(self) -> bool: ...
|
|
@@ -11,7 +11,7 @@ from homeassistant.core import HomeAssistant as HomeAssistant
|
|
|
11
11
|
from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
|
|
12
12
|
from homeassistant.helpers.entity import Entity as Entity
|
|
13
13
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
14
|
-
from pyenphase import EnvoyACBPower as EnvoyACBPower, EnvoyBatteryAggregate as EnvoyBatteryAggregate, EnvoyEncharge as EnvoyEncharge, EnvoyEnchargeAggregate as EnvoyEnchargeAggregate, EnvoyEnchargePower as EnvoyEnchargePower, EnvoyEnpower as EnvoyEnpower, EnvoyInverter as EnvoyInverter, EnvoySystemConsumption as EnvoySystemConsumption, EnvoySystemProduction as EnvoySystemProduction
|
|
14
|
+
from pyenphase import EnvoyACBPower as EnvoyACBPower, EnvoyBatteryAggregate as EnvoyBatteryAggregate, EnvoyC6CC as EnvoyC6CC, EnvoyCollar as EnvoyCollar, EnvoyEncharge as EnvoyEncharge, EnvoyEnchargeAggregate as EnvoyEnchargeAggregate, EnvoyEnchargePower as EnvoyEnchargePower, EnvoyEnpower as EnvoyEnpower, EnvoyInverter as EnvoyInverter, EnvoySystemConsumption as EnvoySystemConsumption, EnvoySystemProduction as EnvoySystemProduction
|
|
15
15
|
from pyenphase.models.meters import CtMeterStatus, CtState as CtState, CtStatusFlags as CtStatusFlags, CtType, EnvoyMeterData as EnvoyMeterData
|
|
16
16
|
|
|
17
17
|
_LOGGER: Incomplete
|
|
@@ -75,6 +75,18 @@ class EnvoyEnpowerSensorEntityDescription(SensorEntityDescription):
|
|
|
75
75
|
|
|
76
76
|
ENPOWER_SENSORS: Incomplete
|
|
77
77
|
|
|
78
|
+
@dataclass(frozen=True, kw_only=True)
|
|
79
|
+
class EnvoyCollarSensorEntityDescription(SensorEntityDescription):
|
|
80
|
+
value_fn: Callable[[EnvoyCollar], datetime.datetime | int | float | str]
|
|
81
|
+
|
|
82
|
+
COLLAR_SENSORS: Incomplete
|
|
83
|
+
|
|
84
|
+
@dataclass(frozen=True, kw_only=True)
|
|
85
|
+
class EnvoyC6CCSensorEntityDescription(SensorEntityDescription):
|
|
86
|
+
value_fn: Callable[[EnvoyC6CC], datetime.datetime]
|
|
87
|
+
|
|
88
|
+
C6CC_SENSORS: Incomplete
|
|
89
|
+
|
|
78
90
|
@dataclass(frozen=True)
|
|
79
91
|
class EnvoyEnchargeAggregateRequiredKeysMixin: ...
|
|
80
92
|
|
|
@@ -221,3 +233,20 @@ class AggregateBatteryEntity(EnvoySystemSensorEntity):
|
|
|
221
233
|
entity_description: EnvoyAggregateBatterySensorEntityDescription
|
|
222
234
|
@property
|
|
223
235
|
def native_value(self) -> int: ...
|
|
236
|
+
|
|
237
|
+
class EnvoyCollarEntity(EnvoySensorBaseEntity):
|
|
238
|
+
entity_description: EnvoyCollarSensorEntityDescription
|
|
239
|
+
_serial_number: Incomplete
|
|
240
|
+
_attr_unique_id: Incomplete
|
|
241
|
+
_attr_device_info: Incomplete
|
|
242
|
+
def __init__(self, coordinator: EnphaseUpdateCoordinator, description: EnvoyCollarSensorEntityDescription) -> None: ...
|
|
243
|
+
@property
|
|
244
|
+
def native_value(self) -> datetime.datetime | int | float | str: ...
|
|
245
|
+
|
|
246
|
+
class EnvoyC6CCEntity(EnvoySensorBaseEntity):
|
|
247
|
+
entity_description: EnvoyC6CCSensorEntityDescription
|
|
248
|
+
_attr_unique_id: Incomplete
|
|
249
|
+
_attr_device_info: Incomplete
|
|
250
|
+
def __init__(self, coordinator: EnphaseUpdateCoordinator, description: EnvoyC6CCSensorEntityDescription) -> None: ...
|
|
251
|
+
@property
|
|
252
|
+
def native_value(self) -> datetime.datetime: ...
|
|
@@ -5,7 +5,7 @@ from .domain_data import DomainData as DomainData
|
|
|
5
5
|
from .encryption_key_storage import async_get_encryption_key_storage as async_get_encryption_key_storage
|
|
6
6
|
from .entry_data import ESPHomeConfigEntry as ESPHomeConfigEntry, RuntimeEntryData as RuntimeEntryData
|
|
7
7
|
from _typeshed import Incomplete
|
|
8
|
-
from aioesphomeapi import APIClient as APIClient, APIVersion as APIVersion, DeviceInfo as EsphomeDeviceInfo,
|
|
8
|
+
from aioesphomeapi import APIClient as APIClient, APIVersion as APIVersion, DeviceInfo as EsphomeDeviceInfo, HomeassistantServiceCall as HomeassistantServiceCall, LogLevel, ReconnectLogic, UserService as UserService
|
|
9
9
|
from aioesphomeapi.api_pb2 import SubscribeLogsResponse as SubscribeLogsResponse
|
|
10
10
|
from homeassistant.components import bluetooth as bluetooth, tag as tag, zeroconf as zeroconf
|
|
11
11
|
from homeassistant.const import ATTR_DEVICE_ID as ATTR_DEVICE_ID, CONF_MODE as CONF_MODE, EVENT_HOMEASSISTANT_CLOSE as EVENT_HOMEASSISTANT_CLOSE, EVENT_LOGGING_CHANGED as EVENT_LOGGING_CHANGED, Platform as Platform
|
|
@@ -17,7 +17,6 @@ from homeassistant.helpers.event import async_track_state_change_event as async_
|
|
|
17
17
|
from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity, async_create_issue as async_create_issue, async_delete_issue as async_delete_issue
|
|
18
18
|
from homeassistant.helpers.service import async_set_service_schema as async_set_service_schema
|
|
19
19
|
from homeassistant.helpers.template import Template as Template
|
|
20
|
-
from homeassistant.util.async_ import create_eager_task as create_eager_task
|
|
21
20
|
from typing import Any, NamedTuple
|
|
22
21
|
|
|
23
22
|
DEVICE_CONFLICT_ISSUE_FORMAT: str
|
|
@@ -11,6 +11,7 @@ from typing import Any
|
|
|
11
11
|
PARALLEL_UPDATES: int
|
|
12
12
|
_LOGGER: Incomplete
|
|
13
13
|
_STATES: EsphomeEnumMapper[EspMediaPlayerState, MediaPlayerState]
|
|
14
|
+
_FEATURES: Incomplete
|
|
14
15
|
ATTR_BYPASS_PROXY: str
|
|
15
16
|
|
|
16
17
|
class EsphomeMediaPlayer(EsphomeEntity[MediaPlayerInfo, MediaPlayerEntityState], MediaPlayerEntity):
|
|
@@ -42,6 +43,10 @@ class EsphomeMediaPlayer(EsphomeEntity[MediaPlayerInfo, MediaPlayerEntityState],
|
|
|
42
43
|
async def async_media_stop(self) -> None: ...
|
|
43
44
|
@convert_api_error_ha_error
|
|
44
45
|
async def async_mute_volume(self, mute: bool) -> None: ...
|
|
46
|
+
@convert_api_error_ha_error
|
|
47
|
+
async def async_turn_on(self) -> None: ...
|
|
48
|
+
@convert_api_error_ha_error
|
|
49
|
+
async def async_turn_off(self) -> None: ...
|
|
45
50
|
|
|
46
51
|
def _is_url(url: str) -> bool: ...
|
|
47
52
|
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
from . import ATTR_PERCENTAGE as ATTR_PERCENTAGE, DOMAIN as DOMAIN, SERVICE_TURN_ON as SERVICE_TURN_ON
|
|
2
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
3
|
+
from homeassistant.helpers import intent as intent
|
|
4
|
+
|
|
5
|
+
INTENT_FAN_SET_SPEED: str
|
|
6
|
+
|
|
7
|
+
async def async_setup_intents(hass: HomeAssistant) -> None: ...
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from .const import CONF_MAX_ACCEPTABLE as CONF_MAX_ACCEPTABLE, CONF_MAX_GOOD as CONF_MAX_GOOD, CONF_MIN_ACCEPTABLE as CONF_MIN_ACCEPTABLE, CONF_MIN_GOOD as CONF_MIN_GOOD
|
|
1
2
|
from .coordinator import FytaConfigEntry as FytaConfigEntry, FytaCoordinator as FytaCoordinator
|
|
2
3
|
from .entity import FytaPlantEntity as FytaPlantEntity
|
|
3
4
|
from collections.abc import Callable as Callable
|
|
@@ -15,9 +16,14 @@ from typing import Final
|
|
|
15
16
|
class FytaSensorEntityDescription(SensorEntityDescription):
|
|
16
17
|
value_fn: Callable[[Plant], StateType | datetime]
|
|
17
18
|
|
|
19
|
+
@dataclass(frozen=True, kw_only=True)
|
|
20
|
+
class FytaMeasurementSensorEntityDescription(FytaSensorEntityDescription):
|
|
21
|
+
attribute_fn: Callable[[Plant], dict[str, float | None]]
|
|
22
|
+
|
|
18
23
|
PLANT_STATUS_LIST: list[str]
|
|
19
24
|
PLANT_MEASUREMENT_STATUS_LIST: list[str]
|
|
20
25
|
SENSORS: Final[list[FytaSensorEntityDescription]]
|
|
26
|
+
MEASUREMENT_SENSORS: Final[list[FytaMeasurementSensorEntityDescription]]
|
|
21
27
|
|
|
22
28
|
async def async_setup_entry(hass: HomeAssistant, entry: FytaConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
23
29
|
|
|
@@ -25,3 +31,8 @@ class FytaPlantSensor(FytaPlantEntity, SensorEntity):
|
|
|
25
31
|
entity_description: FytaSensorEntityDescription
|
|
26
32
|
@property
|
|
27
33
|
def native_value(self) -> StateType | datetime: ...
|
|
34
|
+
|
|
35
|
+
class FytaPlantMeasurementSensor(FytaPlantSensor):
|
|
36
|
+
entity_description: FytaMeasurementSensorEntityDescription
|
|
37
|
+
@property
|
|
38
|
+
def extra_state_attributes(self) -> dict[str, float | None]: ...
|
|
@@ -14,7 +14,6 @@ type GlancesConfigEntry = ConfigEntry[GlancesDataUpdateCoordinator]
|
|
|
14
14
|
|
|
15
15
|
class GlancesDataUpdateCoordinator(DataUpdateCoordinator[dict[str, Any]]):
|
|
16
16
|
config_entry: GlancesConfigEntry
|
|
17
|
-
hass: Incomplete
|
|
18
17
|
host: str
|
|
19
18
|
api: Incomplete
|
|
20
19
|
def __init__(self, hass: HomeAssistant, entry: GlancesConfigEntry, api: Glances) -> None: ...
|
|
@@ -38,6 +38,8 @@ SENSOR_CONFIG_SCHEMA: Incomplete
|
|
|
38
38
|
|
|
39
39
|
async def light_switch_options_schema(domain: str, handler: SchemaCommonFlowHandler | None) -> vol.Schema: ...
|
|
40
40
|
|
|
41
|
+
LIGHT_CONFIG_SCHEMA: Incomplete
|
|
42
|
+
SWITCH_CONFIG_SCHEMA: Incomplete
|
|
41
43
|
GROUP_TYPES: Incomplete
|
|
42
44
|
|
|
43
45
|
async def choose_options_step(options: dict[str, Any]) -> str: ...
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
from .const import CONF_API_USER as CONF_API_USER, DOMAIN as DOMAIN, X_CLIENT as X_CLIENT
|
|
2
|
-
from .coordinator import HabiticaConfigEntry as HabiticaConfigEntry, HabiticaDataUpdateCoordinator as HabiticaDataUpdateCoordinator
|
|
2
|
+
from .coordinator import HabiticaConfigEntry as HabiticaConfigEntry, HabiticaDataUpdateCoordinator as HabiticaDataUpdateCoordinator, HabiticaPartyCoordinator as HabiticaPartyCoordinator
|
|
3
3
|
from .services import async_setup_services as async_setup_services
|
|
4
4
|
from _typeshed import Incomplete
|
|
5
5
|
from homeassistant.const import CONF_API_KEY as CONF_API_KEY, CONF_URL as CONF_URL, CONF_VERIFY_SSL as CONF_VERIFY_SSL, Platform as Platform
|
|
6
|
-
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
6
|
+
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
|
7
7
|
from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
|
|
8
8
|
from homeassistant.helpers.typing import ConfigType as ConfigType
|
|
9
|
+
from homeassistant.util.hass_dict import HassKey as HassKey
|
|
10
|
+
from uuid import UUID
|
|
9
11
|
|
|
10
12
|
CONFIG_SCHEMA: Incomplete
|
|
13
|
+
HABITICA_KEY: HassKey[dict[UUID, HabiticaPartyCoordinator]]
|
|
11
14
|
PLATFORMS: Incomplete
|
|
12
15
|
|
|
13
16
|
async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
|
|
14
17
|
async def async_setup_entry(hass: HomeAssistant, config_entry: HabiticaConfigEntry) -> bool: ...
|
|
18
|
+
async def shutdown_party_coordinator(hass: HomeAssistant, party_added: UUID) -> None: ...
|
|
15
19
|
async def async_unload_entry(hass: HomeAssistant, entry: HabiticaConfigEntry) -> bool: ...
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
+
from . import HABITICA_KEY as HABITICA_KEY
|
|
1
2
|
from .const import ASSETS_URL as ASSETS_URL
|
|
2
|
-
from .coordinator import HabiticaConfigEntry as HabiticaConfigEntry
|
|
3
|
-
from .entity import HabiticaBase as HabiticaBase
|
|
3
|
+
from .coordinator import HabiticaConfigEntry as HabiticaConfigEntry, HabiticaPartyCoordinator as HabiticaPartyCoordinator
|
|
4
|
+
from .entity import HabiticaBase as HabiticaBase, HabiticaPartyBase as HabiticaPartyBase
|
|
5
|
+
from _typeshed import Incomplete
|
|
4
6
|
from collections.abc import Callable as Callable
|
|
5
7
|
from dataclasses import dataclass
|
|
6
8
|
from enum import StrEnum
|
|
7
|
-
from habiticalib import UserData as UserData
|
|
8
|
-
from homeassistant.components.binary_sensor import BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription
|
|
9
|
+
from habiticalib import ContentData as ContentData, UserData as UserData
|
|
10
|
+
from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription
|
|
9
11
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
10
12
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
11
13
|
|
|
@@ -18,6 +20,7 @@ class HabiticaBinarySensorEntityDescription(BinarySensorEntityDescription):
|
|
|
18
20
|
|
|
19
21
|
class HabiticaBinarySensor(StrEnum):
|
|
20
22
|
PENDING_QUEST = 'pending_quest'
|
|
23
|
+
QUEST_RUNNING = 'quest_running'
|
|
21
24
|
|
|
22
25
|
def get_scroll_image_for_pending_quest_invitation(user: UserData) -> str | None: ...
|
|
23
26
|
|
|
@@ -31,3 +34,9 @@ class HabiticaBinarySensorEntity(HabiticaBase, BinarySensorEntity):
|
|
|
31
34
|
def is_on(self) -> bool | None: ...
|
|
32
35
|
@property
|
|
33
36
|
def entity_picture(self) -> str | None: ...
|
|
37
|
+
|
|
38
|
+
class HabiticaPartyBinarySensorEntity(HabiticaPartyBase, BinarySensorEntity):
|
|
39
|
+
entity_description: Incomplete
|
|
40
|
+
def __init__(self, coordinator: HabiticaPartyCoordinator, config_entry: HabiticaConfigEntry, content: ContentData) -> None: ...
|
|
41
|
+
@property
|
|
42
|
+
def is_on(self) -> bool | None: ...
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
import abc
|
|
1
2
|
from .const import DOMAIN as DOMAIN
|
|
2
3
|
from _typeshed import Incomplete
|
|
4
|
+
from abc import abstractmethod
|
|
3
5
|
from collections.abc import Callable as Callable
|
|
4
6
|
from dataclasses import dataclass
|
|
5
|
-
from
|
|
7
|
+
from datetime import timedelta
|
|
8
|
+
from habiticalib import Avatar as Avatar, ContentData as ContentData, GroupData, Habitica as Habitica, TaskData as TaskData, UserData as UserData
|
|
6
9
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
7
10
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
8
11
|
from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady, HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
|
|
@@ -18,12 +21,23 @@ class HabiticaData:
|
|
|
18
21
|
tasks: list[TaskData]
|
|
19
22
|
type HabiticaConfigEntry = ConfigEntry[HabiticaDataUpdateCoordinator]
|
|
20
23
|
|
|
21
|
-
class
|
|
24
|
+
class HabiticaBaseCoordinator[_DataT](DataUpdateCoordinator[_DataT], metaclass=abc.ABCMeta):
|
|
22
25
|
config_entry: HabiticaConfigEntry
|
|
26
|
+
_update_interval: timedelta
|
|
23
27
|
habitica: Incomplete
|
|
24
|
-
content: ContentData
|
|
25
28
|
def __init__(self, hass: HomeAssistant, config_entry: HabiticaConfigEntry, habitica: Habitica) -> None: ...
|
|
29
|
+
@abstractmethod
|
|
30
|
+
async def _update_data(self) -> _DataT: ...
|
|
31
|
+
async def _async_update_data(self) -> _DataT: ...
|
|
32
|
+
|
|
33
|
+
class HabiticaDataUpdateCoordinator(HabiticaBaseCoordinator[HabiticaData]):
|
|
34
|
+
_update_interval: Incomplete
|
|
35
|
+
content: ContentData
|
|
26
36
|
async def _async_setup(self) -> None: ...
|
|
27
|
-
async def
|
|
37
|
+
async def _update_data(self) -> HabiticaData: ...
|
|
28
38
|
async def execute(self, func: Callable[[Habitica], Any]) -> None: ...
|
|
29
39
|
async def generate_avatar(self, avatar: Avatar) -> bytes: ...
|
|
40
|
+
|
|
41
|
+
class HabiticaPartyCoordinator(HabiticaBaseCoordinator[GroupData]):
|
|
42
|
+
_update_interval: Incomplete
|
|
43
|
+
async def _update_data(self) -> GroupData: ...
|