homeassistant-stubs 2025.8.3__py3-none-any.whl → 2025.9.0b1__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/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 +10 -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/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/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 +8 -10
- 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/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/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/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 +4 -3
- homeassistant-stubs/helpers/entity_registry.pyi +6 -4
- 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.0b1.dist-info}/METADATA +2 -2
- {homeassistant_stubs-2025.8.3.dist-info → homeassistant_stubs-2025.9.0b1.dist-info}/RECORD +225 -200
- 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.0b1.dist-info}/WHEEL +0 -0
- {homeassistant_stubs-2025.8.3.dist-info → homeassistant_stubs-2025.9.0b1.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
from .
|
|
2
|
-
from .
|
|
1
|
+
from . import HABITICA_KEY as HABITICA_KEY
|
|
2
|
+
from .const import ASSETS_URL as ASSETS_URL
|
|
3
|
+
from .coordinator import HabiticaConfigEntry as HabiticaConfigEntry, HabiticaDataUpdateCoordinator as HabiticaDataUpdateCoordinator, HabiticaPartyCoordinator as HabiticaPartyCoordinator
|
|
4
|
+
from .entity import HabiticaBase as HabiticaBase, HabiticaPartyBase as HabiticaPartyBase
|
|
3
5
|
from _typeshed import Incomplete
|
|
4
6
|
from enum import StrEnum
|
|
5
|
-
from habiticalib import Avatar as Avatar
|
|
6
|
-
from homeassistant.components.image import ImageEntity as ImageEntity, ImageEntityDescription as ImageEntityDescription
|
|
7
|
+
from habiticalib import Avatar as Avatar, ContentData as ContentData
|
|
8
|
+
from homeassistant.components.image import Image as Image, ImageEntity as ImageEntity, ImageEntityDescription as ImageEntityDescription
|
|
7
9
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
8
10
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
9
11
|
|
|
@@ -11,6 +13,7 @@ PARALLEL_UPDATES: int
|
|
|
11
13
|
|
|
12
14
|
class HabiticaImageEntity(StrEnum):
|
|
13
15
|
AVATAR = 'avatar'
|
|
16
|
+
QUEST_IMAGE = 'quest_image'
|
|
14
17
|
|
|
15
18
|
async def async_setup_entry(hass: HomeAssistant, config_entry: HabiticaConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
16
19
|
|
|
@@ -23,3 +26,15 @@ class HabiticaImage(HabiticaBase, ImageEntity):
|
|
|
23
26
|
def __init__(self, hass: HomeAssistant, coordinator: HabiticaDataUpdateCoordinator) -> None: ...
|
|
24
27
|
def _handle_coordinator_update(self) -> None: ...
|
|
25
28
|
async def async_image(self) -> bytes | None: ...
|
|
29
|
+
|
|
30
|
+
class HabiticaPartyImage(HabiticaPartyBase, ImageEntity):
|
|
31
|
+
entity_description: Incomplete
|
|
32
|
+
_attr_content_type: str
|
|
33
|
+
_attr_image_url: Incomplete
|
|
34
|
+
_attr_image_last_updated: Incomplete
|
|
35
|
+
def __init__(self, hass: HomeAssistant, coordinator: HabiticaPartyCoordinator, config_entry: HabiticaConfigEntry, content: ContentData) -> None: ...
|
|
36
|
+
_cached_image: Incomplete
|
|
37
|
+
def _handle_coordinator_update(self) -> None: ...
|
|
38
|
+
@property
|
|
39
|
+
def image_url(self) -> str | None: ...
|
|
40
|
+
async def _async_load_image_from_url(self, url: str) -> Image | None: ...
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
from . import HABITICA_KEY as HABITICA_KEY
|
|
1
2
|
from .const import ASSETS_URL as ASSETS_URL
|
|
2
3
|
from .coordinator import HabiticaConfigEntry as HabiticaConfigEntry
|
|
3
|
-
from .entity import HabiticaBase as HabiticaBase
|
|
4
|
-
from .util import get_attribute_points as get_attribute_points, get_attributes_total as get_attributes_total, inventory_list as inventory_list, pending_damage as pending_damage, pending_quest_items as pending_quest_items
|
|
4
|
+
from .entity import HabiticaBase as HabiticaBase, HabiticaPartyBase as HabiticaPartyBase
|
|
5
|
+
from .util import collected_quest_items as collected_quest_items, get_attribute_points as get_attribute_points, get_attributes_total as get_attributes_total, inventory_list as inventory_list, pending_damage as pending_damage, pending_quest_items as pending_quest_items, quest_attributes as quest_attributes, quest_boss as quest_boss
|
|
5
6
|
from _typeshed import Incomplete
|
|
6
7
|
from collections.abc import Callable as Callable
|
|
7
8
|
from dataclasses import dataclass
|
|
8
9
|
from enum import StrEnum
|
|
9
|
-
from habiticalib import ContentData as ContentData, TaskData as TaskData, UserData as UserData
|
|
10
|
+
from habiticalib import ContentData as ContentData, GroupData as GroupData, TaskData as TaskData, UserData as UserData
|
|
10
11
|
from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription
|
|
11
12
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
12
13
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
@@ -23,6 +24,12 @@ class HabiticaSensorEntityDescription(SensorEntityDescription):
|
|
|
23
24
|
attributes_fn: Callable[[UserData, ContentData], dict[str, Any] | None] | None = ...
|
|
24
25
|
entity_picture: str | None = ...
|
|
25
26
|
|
|
27
|
+
@dataclass(kw_only=True, frozen=True)
|
|
28
|
+
class HabiticaPartySensorEntityDescription(SensorEntityDescription):
|
|
29
|
+
value_fn: Callable[[GroupData, ContentData], StateType]
|
|
30
|
+
entity_picture: Callable[[GroupData], str | None] | str | None = ...
|
|
31
|
+
attributes_fn: Callable[[GroupData, ContentData], dict[str, Any] | None] | None = ...
|
|
32
|
+
|
|
26
33
|
@dataclass(kw_only=True, frozen=True)
|
|
27
34
|
class HabiticaTaskSensorEntityDescription(SensorEntityDescription):
|
|
28
35
|
value_fn: Callable[[list[TaskData]], list[TaskData]]
|
|
@@ -52,8 +59,16 @@ class HabiticaSensorEntity(StrEnum):
|
|
|
52
59
|
QUEST_SCROLLS = 'quest_scrolls'
|
|
53
60
|
PENDING_DAMAGE = 'pending_damage'
|
|
54
61
|
PENDING_QUEST_ITEMS = 'pending_quest_items'
|
|
62
|
+
MEMBER_COUNT = 'member_count'
|
|
63
|
+
GROUP_LEADER = 'group_leader'
|
|
64
|
+
QUEST = 'quest'
|
|
65
|
+
BOSS = 'boss'
|
|
66
|
+
BOSS_HP = 'boss_hp'
|
|
67
|
+
BOSS_HP_REMAINING = 'boss_hp_remaining'
|
|
68
|
+
COLLECTED_ITEMS = 'collected_items'
|
|
55
69
|
|
|
56
70
|
SENSOR_DESCRIPTIONS: tuple[HabiticaSensorEntityDescription, ...]
|
|
71
|
+
SENSOR_DESCRIPTIONS_PARTY: tuple[HabiticaPartySensorEntityDescription, ...]
|
|
57
72
|
|
|
58
73
|
async def async_setup_entry(hass: HomeAssistant, config_entry: HabiticaConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
59
74
|
|
|
@@ -65,3 +80,12 @@ class HabiticaSensor(HabiticaBase, SensorEntity):
|
|
|
65
80
|
def extra_state_attributes(self) -> dict[str, float | None] | None: ...
|
|
66
81
|
@property
|
|
67
82
|
def entity_picture(self) -> str | None: ...
|
|
83
|
+
|
|
84
|
+
class HabiticaPartySensor(HabiticaPartyBase, SensorEntity):
|
|
85
|
+
entity_description: HabiticaPartySensorEntityDescription
|
|
86
|
+
@property
|
|
87
|
+
def native_value(self) -> StateType: ...
|
|
88
|
+
@property
|
|
89
|
+
def entity_picture(self) -> str | None: ...
|
|
90
|
+
@property
|
|
91
|
+
def extra_state_attributes(self) -> dict[str, Any] | None: ...
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import datetime
|
|
2
2
|
from _typeshed import Incomplete
|
|
3
3
|
from dateutil.rrule import rrule
|
|
4
|
-
from habiticalib import ContentData as ContentData, TaskData as TaskData, UserData as UserData
|
|
5
|
-
from typing import Literal
|
|
4
|
+
from habiticalib import ContentData as ContentData, GroupData as GroupData, QuestBoss as QuestBoss, TaskData as TaskData, UserData as UserData
|
|
5
|
+
from typing import Any, Literal
|
|
6
6
|
|
|
7
7
|
def next_due_date(task: TaskData, today: datetime.datetime) -> datetime.date | None: ...
|
|
8
8
|
|
|
@@ -16,3 +16,6 @@ def get_attributes_total(user: UserData, content: ContentData, attribute: str) -
|
|
|
16
16
|
def inventory_list(user: UserData, content: ContentData, item_type: str) -> dict[str, int]: ...
|
|
17
17
|
def pending_quest_items(user: UserData, content: ContentData) -> int | None: ...
|
|
18
18
|
def pending_damage(user: UserData, content: ContentData) -> float | None: ...
|
|
19
|
+
def quest_attributes(party: GroupData, content: ContentData) -> dict[str, Any]: ...
|
|
20
|
+
def quest_boss(party: GroupData, content: ContentData) -> QuestBoss | None: ...
|
|
21
|
+
def collected_quest_items(party: GroupData, content: ContentData) -> dict[str, Any]: ...
|
|
@@ -21,18 +21,11 @@ BSH_AMBIENT_LIGHT_COLOR_CUSTOM_COLOR: str
|
|
|
21
21
|
BSH_DOOR_STATE_CLOSED: str
|
|
22
22
|
BSH_DOOR_STATE_LOCKED: str
|
|
23
23
|
BSH_DOOR_STATE_OPEN: str
|
|
24
|
-
SERVICE_OPTION_ACTIVE: str
|
|
25
|
-
SERVICE_OPTION_SELECTED: str
|
|
26
|
-
SERVICE_PAUSE_PROGRAM: str
|
|
27
|
-
SERVICE_RESUME_PROGRAM: str
|
|
28
|
-
SERVICE_SELECT_PROGRAM: str
|
|
29
24
|
SERVICE_SET_PROGRAM_AND_OPTIONS: str
|
|
30
25
|
SERVICE_SETTING: str
|
|
31
|
-
SERVICE_START_PROGRAM: str
|
|
32
26
|
ATTR_AFFECTS_TO: str
|
|
33
27
|
ATTR_KEY: str
|
|
34
28
|
ATTR_PROGRAM: str
|
|
35
|
-
ATTR_UNIT: str
|
|
36
29
|
ATTR_VALUE: str
|
|
37
30
|
AFFECTS_TO_ACTIVE_PROGRAM: str
|
|
38
31
|
AFFECTS_TO_SELECTED_PROGRAM: str
|
|
@@ -1,19 +1,15 @@
|
|
|
1
|
-
from .const import AFFECTS_TO_ACTIVE_PROGRAM as AFFECTS_TO_ACTIVE_PROGRAM, AFFECTS_TO_SELECTED_PROGRAM as AFFECTS_TO_SELECTED_PROGRAM, ATTR_AFFECTS_TO as ATTR_AFFECTS_TO, ATTR_KEY as ATTR_KEY, ATTR_PROGRAM as ATTR_PROGRAM,
|
|
1
|
+
from .const import AFFECTS_TO_ACTIVE_PROGRAM as AFFECTS_TO_ACTIVE_PROGRAM, AFFECTS_TO_SELECTED_PROGRAM as AFFECTS_TO_SELECTED_PROGRAM, ATTR_AFFECTS_TO as ATTR_AFFECTS_TO, ATTR_KEY as ATTR_KEY, ATTR_PROGRAM as ATTR_PROGRAM, ATTR_VALUE as ATTR_VALUE, DOMAIN as DOMAIN, PROGRAM_ENUM_OPTIONS as PROGRAM_ENUM_OPTIONS, SERVICE_SETTING as SERVICE_SETTING, SERVICE_SET_PROGRAM_AND_OPTIONS as SERVICE_SET_PROGRAM_AND_OPTIONS, TRANSLATION_KEYS_PROGRAMS_MAP as TRANSLATION_KEYS_PROGRAMS_MAP
|
|
2
2
|
from .coordinator import HomeConnectConfigEntry as HomeConnectConfigEntry
|
|
3
3
|
from .utils import bsh_key_to_translation_key as bsh_key_to_translation_key, get_dict_from_home_connect_error as get_dict_from_home_connect_error
|
|
4
4
|
from _typeshed import Incomplete
|
|
5
5
|
from aiohomeconnect.client import Client as HomeConnectClient
|
|
6
|
-
from aiohomeconnect.model import CommandKey
|
|
7
6
|
from homeassistant.const import ATTR_DEVICE_ID as ATTR_DEVICE_ID
|
|
8
7
|
from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
|
|
9
8
|
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
|
|
10
|
-
from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity, async_create_issue as async_create_issue
|
|
11
9
|
|
|
12
10
|
CONFIG_SCHEMA: Incomplete
|
|
13
11
|
PROGRAM_OPTIONS: Incomplete
|
|
14
12
|
SERVICE_SETTING_SCHEMA: Incomplete
|
|
15
|
-
SERVICE_OPTION_SCHEMA: Incomplete
|
|
16
|
-
SERVICE_PROGRAM_SCHEMA: Incomplete
|
|
17
13
|
|
|
18
14
|
def _require_program_or_at_least_one_option(data: dict) -> dict: ...
|
|
19
15
|
|
|
@@ -21,16 +17,7 @@ SERVICE_PROGRAM_AND_OPTIONS_SCHEMA: Incomplete
|
|
|
21
17
|
SERVICE_COMMAND_SCHEMA: Incomplete
|
|
22
18
|
|
|
23
19
|
async def _get_client_and_ha_id(hass: HomeAssistant, device_id: str) -> tuple[HomeConnectClient, str]: ...
|
|
24
|
-
async def _async_service_program(call: ServiceCall, start: bool) -> None: ...
|
|
25
|
-
async def _async_service_set_program_options(call: ServiceCall, active: bool) -> None: ...
|
|
26
|
-
async def _async_service_command(call: ServiceCall, command_key: CommandKey) -> None: ...
|
|
27
|
-
async def async_service_option_active(call: ServiceCall) -> None: ...
|
|
28
|
-
async def async_service_option_selected(call: ServiceCall) -> None: ...
|
|
29
20
|
async def async_service_setting(call: ServiceCall) -> None: ...
|
|
30
|
-
async def async_service_pause_program(call: ServiceCall) -> None: ...
|
|
31
|
-
async def async_service_resume_program(call: ServiceCall) -> None: ...
|
|
32
|
-
async def async_service_select_program(call: ServiceCall) -> None: ...
|
|
33
21
|
async def async_service_set_program_and_options(call: ServiceCall) -> None: ...
|
|
34
|
-
async def async_service_start_program(call: ServiceCall) -> None: ...
|
|
35
22
|
@callback
|
|
36
23
|
def async_setup_services(hass: HomeAssistant) -> None: ...
|
|
@@ -9,7 +9,6 @@ _LOGGER: Incomplete
|
|
|
9
9
|
FIRMWARE_REFRESH_INTERVAL: Incomplete
|
|
10
10
|
|
|
11
11
|
class FirmwareUpdateCoordinator(DataUpdateCoordinator[FirmwareManifest]):
|
|
12
|
-
hass: Incomplete
|
|
13
12
|
session: Incomplete
|
|
14
13
|
client: Incomplete
|
|
15
14
|
def __init__(self, hass: HomeAssistant, config_entry: ConfigEntry, session: ClientSession, url: str) -> None: ...
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
from .const import DOMAIN as DOMAIN
|
|
1
|
+
from .const import DOMAIN as DOMAIN, RESULT_CANNOT_CONNECT as RESULT_CANNOT_CONNECT, RESULT_INVALID_AUTH as RESULT_INVALID_AUTH, RESULT_UNKNOWN_ERROR as RESULT_UNKNOWN_ERROR
|
|
2
2
|
from _typeshed import Incomplete
|
|
3
3
|
from collections.abc import Mapping
|
|
4
|
-
from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
|
|
4
|
+
from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, SOURCE_USER as SOURCE_USER
|
|
5
5
|
from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME
|
|
6
|
+
from homeassistant.helpers.service_info.zeroconf import ZeroconfServiceInfo as ZeroconfServiceInfo
|
|
6
7
|
from pyHomee import Homee
|
|
7
8
|
from typing import Any
|
|
8
9
|
|
|
@@ -12,9 +13,14 @@ AUTH_SCHEMA: Incomplete
|
|
|
12
13
|
class HomeeConfigFlow(ConfigFlow, domain=DOMAIN):
|
|
13
14
|
VERSION: int
|
|
14
15
|
homee: Homee
|
|
16
|
+
_host: str
|
|
17
|
+
_name: str
|
|
15
18
|
_reauth_host: str
|
|
16
19
|
_reauth_username: str
|
|
20
|
+
async def _connect_homee(self) -> dict[str, str]: ...
|
|
17
21
|
async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
|
22
|
+
async def async_step_zeroconf(self, discovery_info: ZeroconfServiceInfo) -> ConfigFlowResult: ...
|
|
23
|
+
async def async_step_zeroconf_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
|
18
24
|
async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
|
|
19
25
|
async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
|
20
26
|
async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
|
@@ -2,6 +2,9 @@ from _typeshed import Incomplete
|
|
|
2
2
|
from homeassistant.const import DEGREE as DEGREE, LIGHT_LUX as LIGHT_LUX, PERCENTAGE as PERCENTAGE, REVOLUTIONS_PER_MINUTE as REVOLUTIONS_PER_MINUTE, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfPower as UnitOfPower, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime, UnitOfVolume as UnitOfVolume
|
|
3
3
|
|
|
4
4
|
DOMAIN: str
|
|
5
|
+
RESULT_CANNOT_CONNECT: str
|
|
6
|
+
RESULT_INVALID_AUTH: str
|
|
7
|
+
RESULT_UNKNOWN_ERROR: str
|
|
5
8
|
HOMEE_UNIT_TO_HA_UNIT: Incomplete
|
|
6
9
|
OPEN_CLOSE_MAP: Incomplete
|
|
7
10
|
OPEN_CLOSE_MAP_REVERSED: Incomplete
|
|
@@ -66,7 +66,7 @@ class HomeAccessory(Accessory):
|
|
|
66
66
|
@ha_callback
|
|
67
67
|
def async_update_state(self, new_state: State) -> None: ...
|
|
68
68
|
@ha_callback
|
|
69
|
-
def async_call_service(self, domain: str, service: str, service_data: dict[str, Any]
|
|
69
|
+
def async_call_service(self, domain: str, service: str, service_data: dict[str, Any], value: Any | None = None) -> None: ...
|
|
70
70
|
@ha_callback
|
|
71
71
|
def async_reload(self) -> None: ...
|
|
72
72
|
@ha_callback
|
|
@@ -44,6 +44,8 @@ CONF_LINKED_HUMIDITY_SENSOR: str
|
|
|
44
44
|
CONF_LINKED_OBSTRUCTION_SENSOR: str
|
|
45
45
|
CONF_LINKED_PM25_SENSOR: str
|
|
46
46
|
CONF_LINKED_TEMPERATURE_SENSOR: str
|
|
47
|
+
CONF_LINKED_VALVE_DURATION: str
|
|
48
|
+
CONF_LINKED_VALVE_END_TIME: str
|
|
47
49
|
CONF_LOW_BATTERY_THRESHOLD: str
|
|
48
50
|
CONF_MAX_FPS: str
|
|
49
51
|
CONF_MAX_HEIGHT: str
|
|
@@ -196,10 +198,12 @@ CHAR_ON: str
|
|
|
196
198
|
CHAR_OUTLET_IN_USE: str
|
|
197
199
|
CHAR_POSITION_STATE: str
|
|
198
200
|
CHAR_PROGRAMMABLE_SWITCH_EVENT: str
|
|
201
|
+
CHAR_REMAINING_DURATION: str
|
|
199
202
|
CHAR_REMOTE_KEY: str
|
|
200
203
|
CHAR_ROTATION_DIRECTION: str
|
|
201
204
|
CHAR_ROTATION_SPEED: str
|
|
202
205
|
CHAR_SATURATION: str
|
|
206
|
+
CHAR_SET_DURATION: str
|
|
203
207
|
CHAR_SERIAL_NUMBER: str
|
|
204
208
|
CHAR_SERVICE_LABEL_INDEX: str
|
|
205
209
|
CHAR_SERVICE_LABEL_NAMESPACE: str
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from .accessories import HomeAccessory as HomeAccessory, HomeDriver as HomeDriver, TYPES as TYPES
|
|
2
|
-
from .const import CHAR_ACTIVE as CHAR_ACTIVE, CHAR_CONFIGURED_NAME as CHAR_CONFIGURED_NAME, CHAR_IN_USE as CHAR_IN_USE, CHAR_NAME as CHAR_NAME, CHAR_ON as CHAR_ON, CHAR_OUTLET_IN_USE as CHAR_OUTLET_IN_USE, CHAR_VALVE_TYPE as CHAR_VALVE_TYPE, SERV_OUTLET as SERV_OUTLET, SERV_SWITCH as SERV_SWITCH, SERV_VALVE as SERV_VALVE, TYPE_FAUCET as TYPE_FAUCET, TYPE_SHOWER as TYPE_SHOWER, TYPE_SPRINKLER as TYPE_SPRINKLER, TYPE_VALVE as TYPE_VALVE
|
|
2
|
+
from .const import CHAR_ACTIVE as CHAR_ACTIVE, CHAR_CONFIGURED_NAME as CHAR_CONFIGURED_NAME, CHAR_IN_USE as CHAR_IN_USE, CHAR_NAME as CHAR_NAME, CHAR_ON as CHAR_ON, CHAR_OUTLET_IN_USE as CHAR_OUTLET_IN_USE, CHAR_REMAINING_DURATION as CHAR_REMAINING_DURATION, CHAR_SET_DURATION as CHAR_SET_DURATION, CHAR_VALVE_TYPE as CHAR_VALVE_TYPE, CONF_LINKED_VALVE_DURATION as CONF_LINKED_VALVE_DURATION, CONF_LINKED_VALVE_END_TIME as CONF_LINKED_VALVE_END_TIME, SERV_OUTLET as SERV_OUTLET, SERV_SWITCH as SERV_SWITCH, SERV_VALVE as SERV_VALVE, TYPE_FAUCET as TYPE_FAUCET, TYPE_SHOWER as TYPE_SHOWER, TYPE_SPRINKLER as TYPE_SPRINKLER, TYPE_VALVE as TYPE_VALVE
|
|
3
3
|
from .util import cleanup_name_for_homekit as cleanup_name_for_homekit
|
|
4
4
|
from _typeshed import Incomplete
|
|
5
5
|
from homeassistant.components import button as button, input_button as input_button
|
|
@@ -57,13 +57,23 @@ class ValveBase(HomeAccessory):
|
|
|
57
57
|
open_states: Incomplete
|
|
58
58
|
on_service: Incomplete
|
|
59
59
|
off_service: Incomplete
|
|
60
|
+
chars: Incomplete
|
|
61
|
+
linked_duration_entity: str | None
|
|
62
|
+
linked_end_time_entity: str | None
|
|
60
63
|
char_active: Incomplete
|
|
61
64
|
char_in_use: Incomplete
|
|
62
65
|
char_valve_type: Incomplete
|
|
66
|
+
char_set_duration: Incomplete
|
|
67
|
+
char_remaining_duration: Incomplete
|
|
63
68
|
def __init__(self, valve_type: str, open_states: set[str], on_service: str, off_service: str, *args: Any, **kwargs: Any) -> None: ...
|
|
64
69
|
def set_state(self, value: bool) -> None: ...
|
|
65
70
|
@callback
|
|
66
71
|
def async_update_state(self, new_state: State) -> None: ...
|
|
72
|
+
def _update_duration_chars(self) -> None: ...
|
|
73
|
+
def set_duration(self, value: int) -> None: ...
|
|
74
|
+
def get_duration(self) -> int: ...
|
|
75
|
+
def get_remaining_duration(self) -> int: ...
|
|
76
|
+
def _get_entity_state(self, entity_id: str | None) -> str | None: ...
|
|
67
77
|
|
|
68
78
|
class ValveSwitch(ValveBase):
|
|
69
79
|
def __init__(self, hass: HomeAssistant, driver: HomeDriver, name: str, entity_id: str, aid: int, config: dict[str, Any], *args: Any) -> None: ...
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import socket
|
|
2
|
-
from .const import AUDIO_CODEC_COPY as AUDIO_CODEC_COPY, AUDIO_CODEC_OPUS as AUDIO_CODEC_OPUS, CONF_AUDIO_CODEC as CONF_AUDIO_CODEC, CONF_AUDIO_MAP as CONF_AUDIO_MAP, CONF_AUDIO_PACKET_SIZE as CONF_AUDIO_PACKET_SIZE, CONF_FEATURE as CONF_FEATURE, CONF_FEATURE_LIST as CONF_FEATURE_LIST, CONF_LINKED_BATTERY_CHARGING_SENSOR as CONF_LINKED_BATTERY_CHARGING_SENSOR, CONF_LINKED_BATTERY_SENSOR as CONF_LINKED_BATTERY_SENSOR, CONF_LINKED_DOORBELL_SENSOR as CONF_LINKED_DOORBELL_SENSOR, CONF_LINKED_FILTER_CHANGE_INDICATION as CONF_LINKED_FILTER_CHANGE_INDICATION, CONF_LINKED_FILTER_LIFE_LEVEL as CONF_LINKED_FILTER_LIFE_LEVEL, CONF_LINKED_HUMIDITY_SENSOR as CONF_LINKED_HUMIDITY_SENSOR, CONF_LINKED_MOTION_SENSOR as CONF_LINKED_MOTION_SENSOR, CONF_LINKED_OBSTRUCTION_SENSOR as CONF_LINKED_OBSTRUCTION_SENSOR, CONF_LINKED_PM25_SENSOR as CONF_LINKED_PM25_SENSOR, CONF_LINKED_TEMPERATURE_SENSOR as CONF_LINKED_TEMPERATURE_SENSOR, CONF_LOW_BATTERY_THRESHOLD as CONF_LOW_BATTERY_THRESHOLD, CONF_MAX_FPS as CONF_MAX_FPS, CONF_MAX_HEIGHT as CONF_MAX_HEIGHT, CONF_MAX_WIDTH as CONF_MAX_WIDTH, CONF_STREAM_ADDRESS as CONF_STREAM_ADDRESS, CONF_STREAM_COUNT as CONF_STREAM_COUNT, CONF_STREAM_SOURCE as CONF_STREAM_SOURCE, CONF_SUPPORT_AUDIO as CONF_SUPPORT_AUDIO, CONF_THRESHOLD_CO as CONF_THRESHOLD_CO, CONF_THRESHOLD_CO2 as CONF_THRESHOLD_CO2, CONF_VIDEO_CODEC as CONF_VIDEO_CODEC, CONF_VIDEO_MAP as CONF_VIDEO_MAP, CONF_VIDEO_PACKET_SIZE as CONF_VIDEO_PACKET_SIZE, CONF_VIDEO_PROFILE_NAMES as CONF_VIDEO_PROFILE_NAMES, DEFAULT_AUDIO_CODEC as DEFAULT_AUDIO_CODEC, DEFAULT_AUDIO_MAP as DEFAULT_AUDIO_MAP, DEFAULT_AUDIO_PACKET_SIZE as DEFAULT_AUDIO_PACKET_SIZE, DEFAULT_LOW_BATTERY_THRESHOLD as DEFAULT_LOW_BATTERY_THRESHOLD, DEFAULT_MAX_FPS as DEFAULT_MAX_FPS, DEFAULT_MAX_HEIGHT as DEFAULT_MAX_HEIGHT, DEFAULT_MAX_WIDTH as DEFAULT_MAX_WIDTH, DEFAULT_STREAM_COUNT as DEFAULT_STREAM_COUNT, DEFAULT_SUPPORT_AUDIO as DEFAULT_SUPPORT_AUDIO, DEFAULT_VIDEO_CODEC as DEFAULT_VIDEO_CODEC, DEFAULT_VIDEO_MAP as DEFAULT_VIDEO_MAP, DEFAULT_VIDEO_PACKET_SIZE as DEFAULT_VIDEO_PACKET_SIZE, DEFAULT_VIDEO_PROFILE_NAMES as DEFAULT_VIDEO_PROFILE_NAMES, DOMAIN as DOMAIN, FEATURE_ON_OFF as FEATURE_ON_OFF, FEATURE_PLAY_PAUSE as FEATURE_PLAY_PAUSE, FEATURE_PLAY_STOP as FEATURE_PLAY_STOP, FEATURE_TOGGLE_MUTE as FEATURE_TOGGLE_MUTE, MAX_NAME_LENGTH as MAX_NAME_LENGTH, TYPE_AIR_PURIFIER as TYPE_AIR_PURIFIER, TYPE_FAN as TYPE_FAN, TYPE_FAUCET as TYPE_FAUCET, TYPE_OUTLET as TYPE_OUTLET, TYPE_SHOWER as TYPE_SHOWER, TYPE_SPRINKLER as TYPE_SPRINKLER, TYPE_SWITCH as TYPE_SWITCH, TYPE_VALVE as TYPE_VALVE, VIDEO_CODEC_COPY as VIDEO_CODEC_COPY, VIDEO_CODEC_H264_OMX as VIDEO_CODEC_H264_OMX, VIDEO_CODEC_H264_QSV as VIDEO_CODEC_H264_QSV, VIDEO_CODEC_H264_V4L2M2M as VIDEO_CODEC_H264_V4L2M2M, VIDEO_CODEC_LIBX264 as VIDEO_CODEC_LIBX264
|
|
2
|
+
from .const import AUDIO_CODEC_COPY as AUDIO_CODEC_COPY, AUDIO_CODEC_OPUS as AUDIO_CODEC_OPUS, CONF_AUDIO_CODEC as CONF_AUDIO_CODEC, CONF_AUDIO_MAP as CONF_AUDIO_MAP, CONF_AUDIO_PACKET_SIZE as CONF_AUDIO_PACKET_SIZE, CONF_FEATURE as CONF_FEATURE, CONF_FEATURE_LIST as CONF_FEATURE_LIST, CONF_LINKED_BATTERY_CHARGING_SENSOR as CONF_LINKED_BATTERY_CHARGING_SENSOR, CONF_LINKED_BATTERY_SENSOR as CONF_LINKED_BATTERY_SENSOR, CONF_LINKED_DOORBELL_SENSOR as CONF_LINKED_DOORBELL_SENSOR, CONF_LINKED_FILTER_CHANGE_INDICATION as CONF_LINKED_FILTER_CHANGE_INDICATION, CONF_LINKED_FILTER_LIFE_LEVEL as CONF_LINKED_FILTER_LIFE_LEVEL, CONF_LINKED_HUMIDITY_SENSOR as CONF_LINKED_HUMIDITY_SENSOR, CONF_LINKED_MOTION_SENSOR as CONF_LINKED_MOTION_SENSOR, CONF_LINKED_OBSTRUCTION_SENSOR as CONF_LINKED_OBSTRUCTION_SENSOR, CONF_LINKED_PM25_SENSOR as CONF_LINKED_PM25_SENSOR, CONF_LINKED_TEMPERATURE_SENSOR as CONF_LINKED_TEMPERATURE_SENSOR, CONF_LINKED_VALVE_DURATION as CONF_LINKED_VALVE_DURATION, CONF_LINKED_VALVE_END_TIME as CONF_LINKED_VALVE_END_TIME, CONF_LOW_BATTERY_THRESHOLD as CONF_LOW_BATTERY_THRESHOLD, CONF_MAX_FPS as CONF_MAX_FPS, CONF_MAX_HEIGHT as CONF_MAX_HEIGHT, CONF_MAX_WIDTH as CONF_MAX_WIDTH, CONF_STREAM_ADDRESS as CONF_STREAM_ADDRESS, CONF_STREAM_COUNT as CONF_STREAM_COUNT, CONF_STREAM_SOURCE as CONF_STREAM_SOURCE, CONF_SUPPORT_AUDIO as CONF_SUPPORT_AUDIO, CONF_THRESHOLD_CO as CONF_THRESHOLD_CO, CONF_THRESHOLD_CO2 as CONF_THRESHOLD_CO2, CONF_VIDEO_CODEC as CONF_VIDEO_CODEC, CONF_VIDEO_MAP as CONF_VIDEO_MAP, CONF_VIDEO_PACKET_SIZE as CONF_VIDEO_PACKET_SIZE, CONF_VIDEO_PROFILE_NAMES as CONF_VIDEO_PROFILE_NAMES, DEFAULT_AUDIO_CODEC as DEFAULT_AUDIO_CODEC, DEFAULT_AUDIO_MAP as DEFAULT_AUDIO_MAP, DEFAULT_AUDIO_PACKET_SIZE as DEFAULT_AUDIO_PACKET_SIZE, DEFAULT_LOW_BATTERY_THRESHOLD as DEFAULT_LOW_BATTERY_THRESHOLD, DEFAULT_MAX_FPS as DEFAULT_MAX_FPS, DEFAULT_MAX_HEIGHT as DEFAULT_MAX_HEIGHT, DEFAULT_MAX_WIDTH as DEFAULT_MAX_WIDTH, DEFAULT_STREAM_COUNT as DEFAULT_STREAM_COUNT, DEFAULT_SUPPORT_AUDIO as DEFAULT_SUPPORT_AUDIO, DEFAULT_VIDEO_CODEC as DEFAULT_VIDEO_CODEC, DEFAULT_VIDEO_MAP as DEFAULT_VIDEO_MAP, DEFAULT_VIDEO_PACKET_SIZE as DEFAULT_VIDEO_PACKET_SIZE, DEFAULT_VIDEO_PROFILE_NAMES as DEFAULT_VIDEO_PROFILE_NAMES, DOMAIN as DOMAIN, FEATURE_ON_OFF as FEATURE_ON_OFF, FEATURE_PLAY_PAUSE as FEATURE_PLAY_PAUSE, FEATURE_PLAY_STOP as FEATURE_PLAY_STOP, FEATURE_TOGGLE_MUTE as FEATURE_TOGGLE_MUTE, MAX_NAME_LENGTH as MAX_NAME_LENGTH, TYPE_AIR_PURIFIER as TYPE_AIR_PURIFIER, TYPE_FAN as TYPE_FAN, TYPE_FAUCET as TYPE_FAUCET, TYPE_OUTLET as TYPE_OUTLET, TYPE_SHOWER as TYPE_SHOWER, TYPE_SPRINKLER as TYPE_SPRINKLER, TYPE_SWITCH as TYPE_SWITCH, TYPE_VALVE as TYPE_VALVE, VIDEO_CODEC_COPY as VIDEO_CODEC_COPY, VIDEO_CODEC_H264_OMX as VIDEO_CODEC_H264_OMX, VIDEO_CODEC_H264_QSV as VIDEO_CODEC_H264_QSV, VIDEO_CODEC_H264_V4L2M2M as VIDEO_CODEC_H264_V4L2M2M, VIDEO_CODEC_LIBX264 as VIDEO_CODEC_LIBX264
|
|
3
3
|
from .models import HomeKitConfigEntry as HomeKitConfigEntry
|
|
4
4
|
from _typeshed import Incomplete
|
|
5
|
-
from homeassistant.components import binary_sensor as binary_sensor, media_player as media_player, persistent_notification as persistent_notification, sensor as sensor
|
|
5
|
+
from homeassistant.components import binary_sensor as binary_sensor, input_number as input_number, media_player as media_player, persistent_notification as persistent_notification, sensor as sensor
|
|
6
6
|
from homeassistant.components.media_player import MediaPlayerDeviceClass as MediaPlayerDeviceClass, MediaPlayerEntityFeature as MediaPlayerEntityFeature
|
|
7
7
|
from homeassistant.components.remote import RemoteEntityFeature as RemoteEntityFeature
|
|
8
8
|
from homeassistant.const import ATTR_CODE as ATTR_CODE, ATTR_DEVICE_CLASS as ATTR_DEVICE_CLASS, ATTR_SUPPORTED_FEATURES as ATTR_SUPPORTED_FEATURES, CONF_NAME as CONF_NAME, CONF_PORT as CONF_PORT, CONF_TYPE as CONF_TYPE, UnitOfTemperature as UnitOfTemperature
|
|
@@ -31,6 +31,7 @@ LOCK_SCHEMA: Incomplete
|
|
|
31
31
|
MEDIA_PLAYER_SCHEMA: Incomplete
|
|
32
32
|
SWITCH_TYPE_SCHEMA: Incomplete
|
|
33
33
|
SENSOR_SCHEMA: Incomplete
|
|
34
|
+
VALVE_SCHEMA: Incomplete
|
|
34
35
|
HOMEKIT_CHAR_TRANSLATIONS: Incomplete
|
|
35
36
|
|
|
36
37
|
def validate_entity_config(values: dict) -> dict[str, dict]: ...
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
from .const import ADMIN_SERVICES as ADMIN_SERVICES, ALL_KEYS as ALL_KEYS,
|
|
1
|
+
from .const import ADMIN_SERVICES as ADMIN_SERVICES, ALL_KEYS as ALL_KEYS, CONF_MANUFACTURER as CONF_MANUFACTURER, CONF_UNAUTHENTICATED_MODE as CONF_UNAUTHENTICATED_MODE, CONF_UPNP_UDN as CONF_UPNP_UDN, CONNECTION_TIMEOUT as CONNECTION_TIMEOUT, DEFAULT_DEVICE_NAME as DEFAULT_DEVICE_NAME, DEFAULT_MANUFACTURER as DEFAULT_MANUFACTURER, DEFAULT_NOTIFY_SERVICE_NAME as DEFAULT_NOTIFY_SERVICE_NAME, DOMAIN as DOMAIN, KEY_DEVICE_BASIC_INFORMATION as KEY_DEVICE_BASIC_INFORMATION, KEY_DEVICE_INFORMATION as KEY_DEVICE_INFORMATION, KEY_DEVICE_SIGNAL as KEY_DEVICE_SIGNAL, KEY_DIALUP_MOBILE_DATASWITCH as KEY_DIALUP_MOBILE_DATASWITCH, KEY_LAN_HOST_INFO as KEY_LAN_HOST_INFO, KEY_MONITORING_CHECK_NOTIFICATIONS as KEY_MONITORING_CHECK_NOTIFICATIONS, KEY_MONITORING_MONTH_STATISTICS as KEY_MONITORING_MONTH_STATISTICS, KEY_MONITORING_STATUS as KEY_MONITORING_STATUS, KEY_MONITORING_TRAFFIC_STATISTICS as KEY_MONITORING_TRAFFIC_STATISTICS, KEY_NET_CURRENT_PLMN as KEY_NET_CURRENT_PLMN, KEY_NET_NET_MODE as KEY_NET_NET_MODE, KEY_SMS_SMS_COUNT as KEY_SMS_SMS_COUNT, KEY_WLAN_HOST_LIST as KEY_WLAN_HOST_LIST, KEY_WLAN_WIFI_FEATURE_SWITCH as KEY_WLAN_WIFI_FEATURE_SWITCH, KEY_WLAN_WIFI_GUEST_NETWORK_SWITCH as KEY_WLAN_WIFI_GUEST_NETWORK_SWITCH, SERVICE_RESUME_INTEGRATION as SERVICE_RESUME_INTEGRATION, SERVICE_SUSPEND_INTEGRATION as SERVICE_SUSPEND_INTEGRATION, UPDATE_SIGNAL as UPDATE_SIGNAL
|
|
2
2
|
from .utils import get_device_macs as get_device_macs, non_verifying_requests_session as non_verifying_requests_session
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
4
|
from collections.abc import Callable as Callable
|
|
5
5
|
from dataclasses import dataclass, field
|
|
6
6
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
7
|
-
from homeassistant.const import ATTR_HW_VERSION as ATTR_HW_VERSION, ATTR_MODEL as ATTR_MODEL, ATTR_SW_VERSION as ATTR_SW_VERSION, CONF_MAC as CONF_MAC, CONF_NAME as CONF_NAME, CONF_PASSWORD as CONF_PASSWORD, CONF_RECIPIENT as CONF_RECIPIENT, CONF_URL as CONF_URL, CONF_USERNAME as CONF_USERNAME, CONF_VERIFY_SSL as CONF_VERIFY_SSL, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP, Platform as Platform
|
|
7
|
+
from homeassistant.const import ATTR_CONFIG_ENTRY_ID as ATTR_CONFIG_ENTRY_ID, ATTR_HW_VERSION as ATTR_HW_VERSION, ATTR_MODEL as ATTR_MODEL, ATTR_SW_VERSION as ATTR_SW_VERSION, CONF_MAC as CONF_MAC, CONF_NAME as CONF_NAME, CONF_PASSWORD as CONF_PASSWORD, CONF_RECIPIENT as CONF_RECIPIENT, CONF_URL as CONF_URL, CONF_USERNAME as CONF_USERNAME, CONF_VERIFY_SSL as CONF_VERIFY_SSL, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP, Platform as Platform
|
|
8
8
|
from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall
|
|
9
9
|
from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
|
|
10
10
|
from homeassistant.helpers import discovery as discovery
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
from . import Router as Router
|
|
2
|
-
from .const import
|
|
2
|
+
from .const import DOMAIN as DOMAIN
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
4
|
from homeassistant.components.notify import ATTR_TARGET as ATTR_TARGET, BaseNotificationService as BaseNotificationService
|
|
5
|
-
from homeassistant.const import CONF_RECIPIENT as CONF_RECIPIENT
|
|
5
|
+
from homeassistant.const import ATTR_CONFIG_ENTRY_ID as ATTR_CONFIG_ENTRY_ID, CONF_RECIPIENT as CONF_RECIPIENT
|
|
6
6
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
7
7
|
from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
|
|
8
8
|
from typing import Any
|
|
@@ -14,11 +14,15 @@ from typing import Any
|
|
|
14
14
|
_LOGGER: Incomplete
|
|
15
15
|
PARALLEL_UPDATES: int
|
|
16
16
|
|
|
17
|
+
async def async_reset_cutting_blade_usage_time(session: AutomowerSession, mower_id: str) -> None: ...
|
|
18
|
+
def reset_cutting_blade_usage_time_availability(data: MowerAttributes) -> bool: ...
|
|
19
|
+
|
|
17
20
|
@dataclass(frozen=True, kw_only=True)
|
|
18
21
|
class AutomowerButtonEntityDescription(ButtonEntityDescription):
|
|
19
22
|
available_fn: Callable[[MowerAttributes], bool] = ...
|
|
20
23
|
exists_fn: Callable[[MowerAttributes], bool] = ...
|
|
21
24
|
press_fn: Callable[[AutomowerSession, str], Awaitable[Any]]
|
|
25
|
+
poll_after_sending: bool = ...
|
|
22
26
|
|
|
23
27
|
MOWER_BUTTON_TYPES: tuple[AutomowerButtonEntityDescription, ...]
|
|
24
28
|
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import asyncio
|
|
1
2
|
from .const import DOMAIN as DOMAIN
|
|
2
3
|
from _typeshed import Incomplete
|
|
3
4
|
from aioautomower.model import MowerDictionary
|
|
4
5
|
from aioautomower.session import AutomowerSession as AutomowerSession
|
|
5
6
|
from collections.abc import Callable as Callable
|
|
7
|
+
from datetime import datetime
|
|
6
8
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
7
9
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
|
8
10
|
from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed
|
|
@@ -13,6 +15,7 @@ _LOGGER: Incomplete
|
|
|
13
15
|
MAX_WS_RECONNECT_TIME: int
|
|
14
16
|
SCAN_INTERVAL: Incomplete
|
|
15
17
|
DEFAULT_RECONNECT_TIME: int
|
|
18
|
+
PING_INTERVAL: int
|
|
16
19
|
type AutomowerConfigEntry = ConfigEntry[AutomowerDataUpdateCoordinator]
|
|
17
20
|
|
|
18
21
|
class AutomowerDataUpdateCoordinator(DataUpdateCoordinator[MowerDictionary]):
|
|
@@ -23,11 +26,16 @@ class AutomowerDataUpdateCoordinator(DataUpdateCoordinator[MowerDictionary]):
|
|
|
23
26
|
new_devices_callbacks: list[Callable[[set[str]], None]]
|
|
24
27
|
new_zones_callbacks: list[Callable[[str, set[str]], None]]
|
|
25
28
|
new_areas_callbacks: list[Callable[[str, set[int]], None]]
|
|
29
|
+
pong: datetime | None
|
|
30
|
+
websocket_alive: bool
|
|
31
|
+
websocket_callbacks: list[Callable[[bool], None]]
|
|
32
|
+
_watchdog_task: asyncio.Task | None
|
|
26
33
|
def __init__(self, hass: HomeAssistant, config_entry: AutomowerConfigEntry, api: AutomowerSession) -> None: ...
|
|
27
34
|
@override
|
|
28
35
|
@callback
|
|
29
36
|
def async_update_listeners(self) -> None: ...
|
|
30
37
|
async def _async_update_data(self) -> MowerDictionary: ...
|
|
38
|
+
update_interval: Incomplete
|
|
31
39
|
@callback
|
|
32
40
|
def _on_data_update(self) -> None: ...
|
|
33
41
|
@callback
|
|
@@ -38,6 +46,8 @@ class AutomowerDataUpdateCoordinator(DataUpdateCoordinator[MowerDictionary]):
|
|
|
38
46
|
@callback
|
|
39
47
|
def async_set_updated_data(self, data: MowerDictionary) -> None: ...
|
|
40
48
|
async def client_listen(self, hass: HomeAssistant, entry: AutomowerConfigEntry, automower_client: AutomowerSession) -> None: ...
|
|
49
|
+
def _should_poll(self) -> bool: ...
|
|
50
|
+
async def _pong_watchdog(self) -> None: ...
|
|
41
51
|
def _async_add_remove_devices(self) -> None: ...
|
|
42
52
|
def _async_add_remove_stay_out_zones(self) -> None: ...
|
|
43
53
|
def _async_add_remove_work_areas(self) -> None: ...
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
from . import AutomowerConfigEntry as AutomowerConfigEntry
|
|
2
|
+
from .const import ERROR_KEYS as ERROR_KEYS
|
|
3
|
+
from .coordinator import AutomowerDataUpdateCoordinator as AutomowerDataUpdateCoordinator
|
|
4
|
+
from .entity import AutomowerBaseEntity as AutomowerBaseEntity
|
|
5
|
+
from _typeshed import Incomplete
|
|
6
|
+
from aioautomower.model import SingleMessageData as SingleMessageData
|
|
7
|
+
from collections.abc import Callable as Callable
|
|
8
|
+
from homeassistant.components.event import EventEntity as EventEntity, EventEntityDescription as EventEntityDescription
|
|
9
|
+
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
|
10
|
+
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
11
|
+
|
|
12
|
+
_LOGGER: Incomplete
|
|
13
|
+
PARALLEL_UPDATES: int
|
|
14
|
+
ATTR_SEVERITY: str
|
|
15
|
+
ATTR_LATITUDE: str
|
|
16
|
+
ATTR_LONGITUDE: str
|
|
17
|
+
ATTR_DATE_TIME: str
|
|
18
|
+
|
|
19
|
+
async def async_setup_entry(hass: HomeAssistant, config_entry: AutomowerConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
20
|
+
|
|
21
|
+
class AutomowerMessageEventEntity(AutomowerBaseEntity, EventEntity):
|
|
22
|
+
entity_description: EventEntityDescription
|
|
23
|
+
_message_cb: Callable[[SingleMessageData], None]
|
|
24
|
+
_attr_translation_key: str
|
|
25
|
+
_attr_event_types = ERROR_KEYS
|
|
26
|
+
_attr_unique_id: Incomplete
|
|
27
|
+
websocket_alive: bool
|
|
28
|
+
def __init__(self, mower_id: str, coordinator: AutomowerDataUpdateCoordinator) -> None: ...
|
|
29
|
+
@property
|
|
30
|
+
def available(self) -> bool: ...
|
|
31
|
+
@callback
|
|
32
|
+
def _handle(self, msg: SingleMessageData) -> None: ...
|
|
33
|
+
async def async_added_to_hass(self) -> None: ...
|
|
34
|
+
async def async_will_remove_from_hass(self) -> None: ...
|
|
35
|
+
def _handle_websocket_update(self, is_alive: bool) -> None: ...
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from . import AutomowerConfigEntry as AutomowerConfigEntry
|
|
2
|
-
from .const import ERROR_STATES as ERROR_STATES
|
|
2
|
+
from .const import ERROR_KEYS as ERROR_KEYS, ERROR_STATES as ERROR_STATES
|
|
3
3
|
from .coordinator import AutomowerDataUpdateCoordinator as AutomowerDataUpdateCoordinator
|
|
4
4
|
from .entity import AutomowerBaseEntity as AutomowerBaseEntity, WorkAreaAvailableEntity as WorkAreaAvailableEntity, _work_area_translation_key as _work_area_translation_key
|
|
5
5
|
from _typeshed import Incomplete
|
|
@@ -17,7 +17,6 @@ from typing import Any
|
|
|
17
17
|
_LOGGER: Incomplete
|
|
18
18
|
PARALLEL_UPDATES: int
|
|
19
19
|
ATTR_WORK_AREA_ID_ASSIGNMENT: str
|
|
20
|
-
ERROR_KEYS: Incomplete
|
|
21
20
|
ERROR_KEY_LIST: Incomplete
|
|
22
21
|
INACTIVE_REASONS: list
|
|
23
22
|
RESTRICTED_REASONS: list
|
|
@@ -10,5 +10,4 @@ PLATFORMS: list[Platform]
|
|
|
10
10
|
_LOGGER: Incomplete
|
|
11
11
|
|
|
12
12
|
async def async_setup_entry(hass: HomeAssistant, entry: IdasenDeskConfigEntry) -> bool: ...
|
|
13
|
-
async def _async_update_listener(hass: HomeAssistant, entry: IdasenDeskConfigEntry) -> None: ...
|
|
14
13
|
async def async_unload_entry(hass: HomeAssistant, entry: IdasenDeskConfigEntry) -> bool: ...
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from .const import CONF_CANDLE_LIGHT_MINUTES as CONF_CANDLE_LIGHT_MINUTES, CONF_DIASPORA as CONF_DIASPORA, CONF_HAVDALAH_OFFSET_MINUTES as CONF_HAVDALAH_OFFSET_MINUTES, DEFAULT_CANDLE_LIGHT as DEFAULT_CANDLE_LIGHT, DEFAULT_DIASPORA as DEFAULT_DIASPORA, DEFAULT_HAVDALAH_OFFSET_MINUTES as DEFAULT_HAVDALAH_OFFSET_MINUTES, DEFAULT_LANGUAGE as DEFAULT_LANGUAGE, DOMAIN as DOMAIN
|
|
2
|
-
from .
|
|
2
|
+
from .coordinator import JewishCalendarData as JewishCalendarData, JewishCalendarUpdateCoordinator as JewishCalendarUpdateCoordinator
|
|
3
|
+
from .entity import JewishCalendarConfigEntry as JewishCalendarConfigEntry
|
|
3
4
|
from .services import async_setup_services as async_setup_services
|
|
4
5
|
from _typeshed import Incomplete
|
|
5
6
|
from homeassistant.const import CONF_ELEVATION as CONF_ELEVATION, CONF_LANGUAGE as CONF_LANGUAGE, CONF_LATITUDE as CONF_LATITUDE, CONF_LONGITUDE as CONF_LONGITUDE, CONF_TIME_ZONE as CONF_TIME_ZONE, Platform as Platform
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import datetime as dt
|
|
2
|
+
from .const import DOMAIN as DOMAIN
|
|
3
|
+
from _typeshed import Incomplete
|
|
4
|
+
from dataclasses import dataclass
|
|
5
|
+
from hdate import HDateInfo, Location as Location, Zmanim
|
|
6
|
+
from hdate.translator import Language as Language
|
|
7
|
+
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
8
|
+
from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HomeAssistant as HomeAssistant, callback as callback
|
|
9
|
+
from homeassistant.helpers import event as event
|
|
10
|
+
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator
|
|
11
|
+
|
|
12
|
+
_LOGGER: Incomplete
|
|
13
|
+
type JewishCalendarConfigEntry = ConfigEntry[JewishCalendarUpdateCoordinator]
|
|
14
|
+
|
|
15
|
+
@dataclass
|
|
16
|
+
class JewishCalendarData:
|
|
17
|
+
language: Language
|
|
18
|
+
diaspora: bool
|
|
19
|
+
location: Location
|
|
20
|
+
candle_lighting_offset: int
|
|
21
|
+
havdalah_offset: int
|
|
22
|
+
dateinfo: HDateInfo | None = ...
|
|
23
|
+
zmanim: Zmanim | None = ...
|
|
24
|
+
|
|
25
|
+
class JewishCalendarUpdateCoordinator(DataUpdateCoordinator[JewishCalendarData]):
|
|
26
|
+
config_entry: JewishCalendarConfigEntry
|
|
27
|
+
event_unsub: CALLBACK_TYPE | None
|
|
28
|
+
data: Incomplete
|
|
29
|
+
_unsub_update: CALLBACK_TYPE | None
|
|
30
|
+
def __init__(self, hass: HomeAssistant, config_entry: JewishCalendarConfigEntry, data: JewishCalendarData) -> None: ...
|
|
31
|
+
async def _async_update_data(self) -> JewishCalendarData: ...
|
|
32
|
+
@callback
|
|
33
|
+
def async_schedule_future_update(self) -> None: ...
|
|
34
|
+
@callback
|
|
35
|
+
def _handle_midnight_update(self, _now: dt.datetime) -> None: ...
|
|
36
|
+
async def async_shutdown(self) -> None: ...
|
|
37
|
+
def make_zmanim(self, date: dt.date) -> Zmanim: ...
|
|
38
|
+
@property
|
|
39
|
+
def zmanim(self) -> Zmanim: ...
|
|
40
|
+
@property
|
|
41
|
+
def dateinfo(self) -> HDateInfo: ...
|
|
@@ -1,44 +1,24 @@
|
|
|
1
1
|
import abc
|
|
2
2
|
import datetime as dt
|
|
3
3
|
from .const import DOMAIN as DOMAIN
|
|
4
|
+
from .coordinator import JewishCalendarConfigEntry as JewishCalendarConfigEntry, JewishCalendarUpdateCoordinator as JewishCalendarUpdateCoordinator
|
|
4
5
|
from _typeshed import Incomplete
|
|
5
6
|
from abc import abstractmethod
|
|
6
|
-
from
|
|
7
|
-
from hdate import HDateInfo, Location as Location, Zmanim
|
|
8
|
-
from hdate.translator import Language as Language
|
|
9
|
-
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
7
|
+
from hdate import Zmanim as Zmanim
|
|
10
8
|
from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, callback as callback
|
|
11
9
|
from homeassistant.helpers import event as event
|
|
12
10
|
from homeassistant.helpers.device_registry import DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
|
|
13
|
-
from homeassistant.helpers.entity import
|
|
11
|
+
from homeassistant.helpers.entity import EntityDescription as EntityDescription
|
|
12
|
+
from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
|
|
14
13
|
|
|
15
|
-
|
|
16
|
-
type JewishCalendarConfigEntry = ConfigEntry[JewishCalendarData]
|
|
17
|
-
|
|
18
|
-
@dataclass
|
|
19
|
-
class JewishCalendarDataResults:
|
|
20
|
-
dateinfo: HDateInfo
|
|
21
|
-
zmanim: Zmanim
|
|
22
|
-
|
|
23
|
-
@dataclass
|
|
24
|
-
class JewishCalendarData:
|
|
25
|
-
language: Language
|
|
26
|
-
diaspora: bool
|
|
27
|
-
location: Location
|
|
28
|
-
candle_lighting_offset: int
|
|
29
|
-
havdalah_offset: int
|
|
30
|
-
results: JewishCalendarDataResults | None = ...
|
|
31
|
-
|
|
32
|
-
class JewishCalendarEntity(Entity, metaclass=abc.ABCMeta):
|
|
14
|
+
class JewishCalendarEntity(CoordinatorEntity[JewishCalendarUpdateCoordinator], metaclass=abc.ABCMeta):
|
|
33
15
|
_attr_has_entity_name: bool
|
|
34
16
|
_attr_should_poll: bool
|
|
35
17
|
_update_unsub: CALLBACK_TYPE | None
|
|
36
18
|
entity_description: Incomplete
|
|
37
19
|
_attr_unique_id: Incomplete
|
|
38
20
|
_attr_device_info: Incomplete
|
|
39
|
-
data: Incomplete
|
|
40
21
|
def __init__(self, config_entry: JewishCalendarConfigEntry, description: EntityDescription) -> None: ...
|
|
41
|
-
def make_zmanim(self, date: dt.date) -> Zmanim: ...
|
|
42
22
|
async def async_added_to_hass(self) -> None: ...
|
|
43
23
|
async def async_will_remove_from_hass(self) -> None: ...
|
|
44
24
|
@abstractmethod
|
|
@@ -46,4 +26,3 @@ class JewishCalendarEntity(Entity, metaclass=abc.ABCMeta):
|
|
|
46
26
|
def _schedule_update(self) -> None: ...
|
|
47
27
|
@callback
|
|
48
28
|
def _update(self, now: dt.datetime | None = None) -> None: ...
|
|
49
|
-
def create_results(self, now: dt.datetime | None = None) -> None: ...
|
|
@@ -38,7 +38,7 @@ class JewishCalendarBaseSensor(JewishCalendarEntity, SensorEntity):
|
|
|
38
38
|
_attr_entity_category: Incomplete
|
|
39
39
|
entity_description: JewishCalendarBaseSensorDescription
|
|
40
40
|
def _update_times(self, zmanim: Zmanim) -> list[dt.datetime | None]: ...
|
|
41
|
-
def get_dateinfo(self
|
|
41
|
+
def get_dateinfo(self) -> HDateInfo: ...
|
|
42
42
|
|
|
43
43
|
class JewishCalendarSensor(JewishCalendarBaseSensor):
|
|
44
44
|
entity_description: JewishCalendarSensorDescription
|
|
@@ -4,19 +4,20 @@ from .knx_module import KNXModule as KNXModule
|
|
|
4
4
|
from .schema import SceneSchema as SceneSchema
|
|
5
5
|
from _typeshed import Incomplete
|
|
6
6
|
from homeassistant import config_entries as config_entries
|
|
7
|
-
from homeassistant.components.scene import
|
|
7
|
+
from homeassistant.components.scene import BaseScene as BaseScene
|
|
8
8
|
from homeassistant.const import CONF_ENTITY_CATEGORY as CONF_ENTITY_CATEGORY, CONF_NAME as CONF_NAME, Platform as Platform
|
|
9
9
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
10
10
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
11
11
|
from homeassistant.helpers.typing import ConfigType as ConfigType
|
|
12
12
|
from typing import Any
|
|
13
|
-
from xknx.devices import Scene as XknxScene
|
|
13
|
+
from xknx.devices import Device as XknxDevice, Scene as XknxScene
|
|
14
14
|
|
|
15
15
|
async def async_setup_entry(hass: HomeAssistant, config_entry: config_entries.ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
16
16
|
|
|
17
|
-
class KNXScene(KnxYamlEntity,
|
|
17
|
+
class KNXScene(KnxYamlEntity, BaseScene):
|
|
18
18
|
_device: XknxScene
|
|
19
19
|
_attr_entity_category: Incomplete
|
|
20
20
|
_attr_unique_id: Incomplete
|
|
21
21
|
def __init__(self, knx_module: KNXModule, config: ConfigType) -> None: ...
|
|
22
|
-
async def
|
|
22
|
+
async def _async_activate(self, **kwargs: Any) -> None: ...
|
|
23
|
+
def after_update_callback(self, device: XknxDevice) -> None: ...
|