homeassistant-stubs 2025.9.3__py3-none-any.whl → 2025.10.0b0__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/components/acaia/coordinator.pyi +1 -0
- homeassistant-stubs/components/accuweather/__init__.pyi +3 -3
- homeassistant-stubs/components/accuweather/config_flow.pyi +5 -0
- homeassistant-stubs/components/accuweather/const.pyi +1 -0
- homeassistant-stubs/components/accuweather/coordinator.pyi +17 -4
- homeassistant-stubs/components/accuweather/weather.pyi +5 -2
- homeassistant-stubs/components/airos/binary_sensor.pyi +2 -2
- homeassistant-stubs/components/airos/config_flow.pyi +1 -1
- homeassistant-stubs/components/airos/coordinator.pyi +4 -4
- homeassistant-stubs/components/airos/sensor.pyi +2 -2
- homeassistant-stubs/components/airzone/select.pyi +1 -0
- homeassistant-stubs/components/alexa_devices/coordinator.pyi +2 -0
- homeassistant-stubs/components/analytics/__init__.pyi +4 -21
- homeassistant-stubs/components/analytics/analytics.pyi +42 -5
- homeassistant-stubs/components/androidtv/__init__.pyi +5 -1
- homeassistant-stubs/components/androidtv/media_player.pyi +1 -10
- homeassistant-stubs/components/androidtv/services.pyi +16 -0
- homeassistant-stubs/components/androidtv_remote/entity.pyi +1 -3
- homeassistant-stubs/components/assist_pipeline/__init__.pyi +1 -1
- homeassistant-stubs/components/assist_pipeline/const.pyi +1 -0
- homeassistant-stubs/components/assist_pipeline/pipeline.pyi +7 -4
- homeassistant-stubs/components/assist_pipeline/select.pyi +1 -1
- homeassistant-stubs/components/asuswrt/bridge.pyi +12 -0
- homeassistant-stubs/components/auth/login_flow.pyi +1 -1
- homeassistant-stubs/components/blue_current/__init__.pyi +11 -5
- homeassistant-stubs/components/blue_current/const.pyi +6 -0
- homeassistant-stubs/components/bluetooth/__init__.pyi +2 -2
- homeassistant-stubs/components/bluetooth/api.pyi +5 -2
- homeassistant-stubs/components/bluetooth/manager.pyi +7 -1
- homeassistant-stubs/components/bluetooth/websocket_api.pyi +6 -1
- homeassistant-stubs/components/brother/__init__.pyi +4 -2
- homeassistant-stubs/components/brother/config_flow.pyi +5 -2
- homeassistant-stubs/components/brother/const.pyi +4 -0
- homeassistant-stubs/components/bthome/sensor.pyi +1 -1
- homeassistant-stubs/components/camera/__init__.pyi +1 -1
- homeassistant-stubs/components/camera/prefs.pyi +3 -1
- homeassistant-stubs/components/cloud/http_api.pyi +2 -0
- homeassistant-stubs/components/comelit/coordinator.pyi +2 -1
- homeassistant-stubs/components/comelit/sensor.pyi +1 -1
- homeassistant-stubs/components/compit/__init__.pyi +11 -0
- homeassistant-stubs/components/compit/climate.pyi +63 -0
- homeassistant-stubs/components/compit/config_flow.pyi +17 -0
- homeassistant-stubs/components/compit/const.pyi +2 -0
- homeassistant-stubs/components/compit/coordinator.pyi +16 -0
- homeassistant-stubs/components/derivative/diagnostics.pyi +5 -0
- homeassistant-stubs/components/droplet/__init__.pyi +10 -0
- homeassistant-stubs/components/droplet/config_flow.pyi +13 -0
- homeassistant-stubs/components/droplet/const.pyi +7 -0
- homeassistant-stubs/components/droplet/coordinator.pyi +23 -0
- homeassistant-stubs/components/droplet/sensor.pyi +37 -0
- homeassistant-stubs/components/ecovacs/number.pyi +4 -1
- homeassistant-stubs/components/elkm1/config_flow.pyi +2 -0
- homeassistant-stubs/components/elkm1/sensor.pyi +8 -1
- homeassistant-stubs/components/energy/sensor.pyi +1 -1
- homeassistant-stubs/components/esphome/assist_satellite.pyi +5 -1
- homeassistant-stubs/components/esphome/climate.pyi +2 -0
- homeassistant-stubs/components/esphome/config_flow.pyi +2 -0
- homeassistant-stubs/components/esphome/const.pyi +1 -0
- homeassistant-stubs/components/esphome/entry_data.pyi +8 -4
- homeassistant-stubs/components/esphome/lock.pyi +1 -1
- homeassistant-stubs/components/esphome/select.pyi +4 -3
- homeassistant-stubs/components/fritz/sensor.pyi +2 -1
- homeassistant-stubs/components/frontend/__init__.pyi +5 -2
- homeassistant-stubs/components/geocaching/entity.pyi +14 -0
- homeassistant-stubs/components/geocaching/sensor.pyi +25 -5
- homeassistant-stubs/components/go2rtc/__init__.pyi +3 -0
- homeassistant-stubs/components/google/__init__.pyi +0 -1
- homeassistant-stubs/components/google/config_flow.pyi +3 -3
- homeassistant-stubs/components/google_cloud/__init__.pyi +0 -1
- homeassistant-stubs/components/google_cloud/config_flow.pyi +2 -2
- homeassistant-stubs/components/google_photos/media_source.pyi +2 -2
- homeassistant-stubs/components/habitica/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/habitica/const.pyi +1 -0
- homeassistant-stubs/components/habitica/sensor.pyi +3 -1
- homeassistant-stubs/components/habitica/services.pyi +2 -1
- homeassistant-stubs/components/habitica/util.pyi +1 -0
- homeassistant-stubs/components/here_travel_time/__init__.pyi +3 -1
- homeassistant-stubs/components/history_stats/config_flow.pyi +7 -2
- homeassistant-stubs/components/history_stats/diagnostics.pyi +5 -0
- homeassistant-stubs/components/home_connect/application_credentials.pyi +0 -1
- homeassistant-stubs/components/home_connect/coordinator.pyi +0 -1
- homeassistant-stubs/components/homeassistant_hardware/firmware_config_flow.pyi +38 -11
- homeassistant-stubs/components/homee/alarm_control_panel.pyi +3 -2
- homeassistant-stubs/components/homee/binary_sensor.pyi +4 -2
- homeassistant-stubs/components/homee/button.pyi +3 -1
- homeassistant-stubs/components/homee/climate.pyi +3 -1
- homeassistant-stubs/components/homee/cover.pyi +3 -1
- homeassistant-stubs/components/homee/event.pyi +3 -1
- homeassistant-stubs/components/homee/fan.pyi +3 -1
- homeassistant-stubs/components/homee/helpers.pyi +6 -0
- homeassistant-stubs/components/homee/light.pyi +2 -0
- homeassistant-stubs/components/homee/lock.pyi +4 -2
- homeassistant-stubs/components/homee/number.pyi +3 -1
- homeassistant-stubs/components/homee/select.pyi +3 -1
- homeassistant-stubs/components/homee/sensor.pyi +2 -2
- homeassistant-stubs/components/homee/siren.pyi +4 -1
- homeassistant-stubs/components/homee/switch.pyi +4 -2
- homeassistant-stubs/components/homee/valve.pyi +3 -1
- homeassistant-stubs/components/homekit/type_switches.pyi +7 -1
- homeassistant-stubs/components/homewizard/sensor.pyi +3 -1
- homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +1 -1
- homeassistant-stubs/components/image/__init__.pyi +1 -0
- homeassistant-stubs/components/image_upload/__init__.pyi +1 -1
- homeassistant-stubs/components/image_upload/const.pyi +1 -0
- homeassistant-stubs/components/image_upload/media_source.pyi +5 -1
- homeassistant-stubs/components/immich/media_source.pyi +2 -2
- homeassistant-stubs/components/integration/__init__.pyi +0 -1
- homeassistant-stubs/components/integration/config_flow.pyi +1 -0
- homeassistant-stubs/components/lamarzocco/__init__.pyi +4 -2
- homeassistant-stubs/components/lamarzocco/config_flow.pyi +4 -2
- homeassistant-stubs/components/lamarzocco/const.pyi +1 -0
- homeassistant-stubs/components/lawn_mower/intent.pyi +8 -0
- homeassistant-stubs/components/letpot/number.pyi +34 -0
- homeassistant-stubs/components/libre_hardware_monitor/__init__.pyi +9 -0
- homeassistant-stubs/components/libre_hardware_monitor/config_flow.pyi +12 -0
- homeassistant-stubs/components/libre_hardware_monitor/const.pyi +4 -0
- homeassistant-stubs/components/libre_hardware_monitor/coordinator.pyi +21 -0
- homeassistant-stubs/components/libre_hardware_monitor/sensor.pyi +34 -0
- homeassistant-stubs/components/litterrobot/select.pyi +1 -1
- homeassistant-stubs/components/litterrobot/switch.pyi +5 -1
- homeassistant-stubs/components/logbook/helpers.pyi +4 -3
- homeassistant-stubs/components/mastodon/const.pyi +1 -0
- homeassistant-stubs/components/mastodon/services.pyi +1 -1
- homeassistant-stubs/components/matter/models.pyi +1 -0
- homeassistant-stubs/components/matter/sensor.pyi +1 -0
- homeassistant-stubs/components/mcp_server/session.pyi +2 -2
- homeassistant-stubs/components/media_source/__init__.pyi +2 -10
- homeassistant-stubs/components/media_source/helper.pyi +16 -0
- homeassistant-stubs/components/media_source/http.pyi +13 -0
- homeassistant-stubs/components/media_source/local_source.pyi +19 -11
- homeassistant-stubs/components/metoffice/sensor.pyi +1 -1
- homeassistant-stubs/components/miele/const.pyi +193 -17
- homeassistant-stubs/components/miele/sensor.pyi +12 -3
- homeassistant-stubs/components/miele/vacuum.pyi +1 -2
- homeassistant-stubs/components/min_max/sensor.pyi +1 -1
- homeassistant-stubs/components/modbus/__init__.pyi +1 -1
- homeassistant-stubs/components/modbus/binary_sensor.pyi +2 -2
- homeassistant-stubs/components/modbus/climate.pyi +2 -2
- homeassistant-stubs/components/modbus/const.pyi +1 -0
- homeassistant-stubs/components/modbus/cover.pyi +2 -2
- homeassistant-stubs/components/modbus/entity.pyi +4 -4
- homeassistant-stubs/components/modbus/fan.pyi +2 -2
- homeassistant-stubs/components/modbus/light.pyi +2 -2
- homeassistant-stubs/components/modbus/modbus.pyi +1 -2
- homeassistant-stubs/components/modbus/sensor.pyi +2 -2
- homeassistant-stubs/components/modbus/switch.pyi +2 -2
- homeassistant-stubs/components/modbus/validators.pyi +1 -1
- homeassistant-stubs/components/motionmount/select.pyi +1 -0
- homeassistant-stubs/components/mqtt/config_flow.pyi +61 -60
- homeassistant-stubs/components/mqtt/const.pyi +6 -0
- homeassistant-stubs/components/mqtt/device_automation.pyi +1 -1
- homeassistant-stubs/components/mqtt/entity.pyi +2 -2
- homeassistant-stubs/components/mqtt/image.pyi +1 -5
- homeassistant-stubs/components/mqtt/light/schema_json.pyi +0 -1
- homeassistant-stubs/components/mqtt/schemas.pyi +1 -1
- homeassistant-stubs/components/mqtt/tag.pyi +1 -1
- homeassistant-stubs/components/music_assistant/__init__.pyi +2 -1
- homeassistant-stubs/components/music_assistant/config_flow.pyi +1 -1
- homeassistant-stubs/components/music_assistant/const.pyi +1 -0
- homeassistant-stubs/components/nordpool/coordinator.pyi +4 -2
- homeassistant-stubs/components/ntfy/config_flow.pyi +4 -2
- homeassistant-stubs/components/ntfy/const.pyi +6 -0
- homeassistant-stubs/components/ntfy/entity.pyi +18 -0
- homeassistant-stubs/components/ntfy/event.pyi +29 -0
- homeassistant-stubs/components/ntfy/notify.pyi +19 -13
- homeassistant-stubs/components/{home_connect → ntfy}/repairs.pyi +7 -3
- homeassistant-stubs/components/number/const.pyi +1 -1
- homeassistant-stubs/components/openai_conversation/ai_task.pyi +5 -1
- homeassistant-stubs/components/openai_conversation/const.pyi +1 -0
- homeassistant-stubs/components/openai_conversation/entity.pyi +2 -2
- homeassistant-stubs/components/openuv/__init__.pyi +1 -1
- homeassistant-stubs/components/openuv/binary_sensor.pyi +2 -2
- homeassistant-stubs/components/openuv/coordinator.pyi +14 -1
- homeassistant-stubs/components/opnsense/__init__.pyi +11 -0
- homeassistant-stubs/components/opnsense/const.pyi +5 -0
- homeassistant-stubs/components/opnsense/device_tracker.pyi +23 -0
- homeassistant-stubs/components/portainer/__init__.pyi +11 -0
- homeassistant-stubs/components/portainer/binary_sensor.pyi +39 -0
- homeassistant-stubs/components/portainer/config_flow.pyi +20 -0
- homeassistant-stubs/components/portainer/const.pyi +2 -0
- homeassistant-stubs/components/portainer/coordinator.pyi +29 -0
- homeassistant-stubs/components/portainer/entity.pyi +22 -0
- homeassistant-stubs/components/prusalink/coordinator.pyi +2 -0
- homeassistant-stubs/components/radio_browser/media_source.pyi +3 -0
- homeassistant-stubs/components/recorder/models/statistics.pyi +1 -0
- homeassistant-stubs/components/recorder/statistics.pyi +1 -1
- homeassistant-stubs/components/recorder/util.pyi +1 -0
- homeassistant-stubs/components/recorder/websocket_api.pyi +1 -1
- homeassistant-stubs/components/reolink/entity.pyi +10 -0
- homeassistant-stubs/components/reolink/light.pyi +7 -1
- homeassistant-stubs/components/reolink/number.pyi +10 -1
- homeassistant-stubs/components/reolink/select.pyi +11 -3
- homeassistant-stubs/components/reolink/siren.pyi +11 -1
- homeassistant-stubs/components/reolink/switch.pyi +11 -1
- homeassistant-stubs/components/roborock/config_flow.pyi +1 -1
- homeassistant-stubs/components/roborock/const.pyi +1 -0
- homeassistant-stubs/components/roborock/coordinator.pyi +1 -1
- homeassistant-stubs/components/route_b_smart_meter/__init__.pyi +10 -0
- homeassistant-stubs/components/route_b_smart_meter/config_flow.pyi +22 -0
- homeassistant-stubs/components/route_b_smart_meter/const.pyi +9 -0
- homeassistant-stubs/components/route_b_smart_meter/coordinator.pyi +26 -0
- homeassistant-stubs/components/route_b_smart_meter/sensor.pyi +30 -0
- homeassistant-stubs/components/scrape/__init__.pyi +0 -1
- homeassistant-stubs/components/scrape/config_flow.pyi +1 -0
- homeassistant-stubs/components/scrape/coordinator.pyi +5 -1
- homeassistant-stubs/components/sensor/const.pyi +2 -1
- homeassistant-stubs/components/sensor/device_condition.pyi +1 -0
- homeassistant-stubs/components/sensor/device_trigger.pyi +1 -0
- homeassistant-stubs/components/sftp_storage/__init__.pyi +21 -0
- homeassistant-stubs/components/sftp_storage/backup.pyi +24 -0
- homeassistant-stubs/components/sftp_storage/client.pyi +48 -0
- homeassistant-stubs/components/sftp_storage/config_flow.pyi +25 -0
- homeassistant-stubs/components/sftp_storage/const.pyi +16 -0
- homeassistant-stubs/components/shelly/__init__.pyi +2 -2
- homeassistant-stubs/components/shelly/binary_sensor.pyi +5 -1
- homeassistant-stubs/components/shelly/button.pyi +10 -2
- homeassistant-stubs/components/shelly/const.pyi +5 -2
- homeassistant-stubs/components/shelly/cover.pyi +6 -0
- homeassistant-stubs/components/shelly/entity.pyi +1 -3
- homeassistant-stubs/components/shelly/light.pyi +18 -10
- homeassistant-stubs/components/shelly/number.pyi +1 -1
- homeassistant-stubs/components/shelly/repairs.pyi +4 -2
- homeassistant-stubs/components/shelly/select.pyi +1 -1
- homeassistant-stubs/components/shelly/sensor.pyi +12 -8
- homeassistant-stubs/components/shelly/switch.pyi +1 -1
- homeassistant-stubs/components/shelly/text.pyi +1 -1
- homeassistant-stubs/components/shelly/utils.pyi +7 -2
- homeassistant-stubs/components/sql/__init__.pyi +2 -2
- homeassistant-stubs/components/sql/config_flow.pyi +6 -2
- homeassistant-stubs/components/sql/const.pyi +1 -0
- homeassistant-stubs/components/sql/sensor.pyi +1 -1
- homeassistant-stubs/components/squeezebox/browse_media.pyi +1 -1
- homeassistant-stubs/components/ssdp/server.pyi +2 -3
- homeassistant-stubs/components/starlink/sensor.pyi +8 -1
- homeassistant-stubs/components/statistics/__init__.pyi +0 -1
- homeassistant-stubs/components/statistics/config_flow.pyi +1 -0
- homeassistant-stubs/components/switchbot_cloud/__init__.pyi +1 -0
- homeassistant-stubs/components/switchbot_cloud/binary_sensor.pyi +7 -0
- homeassistant-stubs/components/switchbot_cloud/climate.pyi +7 -3
- homeassistant-stubs/components/switchbot_cloud/const.pyi +13 -0
- homeassistant-stubs/components/switchbot_cloud/humidifier.pyi +48 -0
- homeassistant-stubs/components/switchbot_cloud/light.pyi +1 -0
- homeassistant-stubs/components/switchbot_cloud/sensor.pyi +13 -1
- homeassistant-stubs/components/synology_dsm/media_source.pyi +2 -2
- homeassistant-stubs/components/synology_dsm/sensor.pyi +3 -0
- homeassistant-stubs/components/systemmonitor/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/systemmonitor/const.pyi +1 -0
- homeassistant-stubs/components/systemmonitor/coordinator.pyi +2 -0
- homeassistant-stubs/components/systemmonitor/sensor.pyi +2 -0
- homeassistant-stubs/components/telegram_bot/__init__.pyi +2 -1
- homeassistant-stubs/components/telegram_bot/bot.pyi +1 -0
- homeassistant-stubs/components/telegram_bot/const.pyi +13 -0
- homeassistant-stubs/components/threshold/__init__.pyi +0 -1
- homeassistant-stubs/components/threshold/config_flow.pyi +1 -0
- homeassistant-stubs/components/tolo/config_flow.pyi +5 -3
- homeassistant-stubs/components/tts/__init__.pyi +5 -0
- homeassistant-stubs/components/uptimerobot/config_flow.pyi +1 -0
- homeassistant-stubs/components/vacuum/intent.pyi +1 -1
- homeassistant-stubs/components/volvo/__init__.pyi +1 -1
- homeassistant-stubs/components/volvo/api.pyi +4 -0
- homeassistant-stubs/components/volvo/coordinator.pyi +28 -15
- homeassistant-stubs/components/wake_on_lan/__init__.pyi +0 -1
- homeassistant-stubs/components/wake_on_lan/config_flow.pyi +1 -0
- homeassistant-stubs/components/webhook/trigger.pyi +2 -1
- homeassistant-stubs/components/workday/calendar.pyi +25 -0
- homeassistant-stubs/components/yalexs_ble/__init__.pyi +0 -1
- homeassistant-stubs/components/yalexs_ble/config_flow.pyi +2 -2
- homeassistant-stubs/components/zwave_js/__init__.pyi +1 -1
- homeassistant-stubs/components/zwave_js/config_flow.pyi +6 -3
- homeassistant-stubs/components/zwave_js/const.pyi +3 -0
- homeassistant-stubs/components/zwave_js/device_trigger.pyi +1 -1
- homeassistant-stubs/components/zwave_js/triggers/event.pyi +24 -9
- homeassistant-stubs/components/zwave_js/triggers/value_updated.pyi +11 -7
- homeassistant-stubs/config_entries.pyi +6 -1
- homeassistant-stubs/const.pyi +7 -46
- homeassistant-stubs/data_entry_flow.pyi +16 -3
- homeassistant-stubs/generated/entity_platforms.pyi +46 -0
- homeassistant-stubs/helpers/condition.pyi +3 -1
- homeassistant-stubs/helpers/config_validation.pyi +1 -1
- homeassistant-stubs/helpers/deprecation.pyi +1 -0
- homeassistant-stubs/helpers/device_registry.pyi +4 -3
- homeassistant-stubs/helpers/entity_component.pyi +1 -3
- homeassistant-stubs/helpers/event.pyi +2 -1
- homeassistant-stubs/helpers/intent.pyi +5 -8
- homeassistant-stubs/helpers/schema_config_entry_flow.pyi +5 -1
- homeassistant-stubs/helpers/selector.pyi +16 -16
- homeassistant-stubs/helpers/service.pyi +12 -14
- homeassistant-stubs/helpers/service_info/esphome.pyi +12 -0
- homeassistant-stubs/helpers/{template.pyi → template/__init__.pyi} +14 -97
- homeassistant-stubs/helpers/template/context.pyi +16 -0
- homeassistant-stubs/helpers/template/extensions/__init__.pyi +8 -0
- homeassistant-stubs/helpers/template/extensions/base.pyi +21 -0
- homeassistant-stubs/helpers/template/extensions/base64.pyi +9 -0
- homeassistant-stubs/helpers/template/extensions/collection.pyi +18 -0
- homeassistant-stubs/helpers/template/extensions/crypto.pyi +13 -0
- homeassistant-stubs/helpers/template/extensions/math.pyi +43 -0
- homeassistant-stubs/helpers/template/extensions/regex.pyi +14 -0
- homeassistant-stubs/helpers/template/extensions/string.pyi +9 -0
- homeassistant-stubs/helpers/template/helpers.pyi +4 -0
- homeassistant-stubs/helpers/template/render_info.pyi +39 -0
- homeassistant-stubs/helpers/trigger.pyi +16 -5
- homeassistant-stubs/helpers/trigger_template_entity.pyi +2 -1
- homeassistant-stubs/runner.pyi +16 -0
- homeassistant-stubs/util/unit_conversion.pyi +6 -0
- {homeassistant_stubs-2025.9.3.dist-info → homeassistant_stubs-2025.10.0b0.dist-info}/METADATA +2 -2
- {homeassistant_stubs-2025.9.3.dist-info → homeassistant_stubs-2025.10.0b0.dist-info}/RECORD +308 -250
- homeassistant-stubs/components/home_connect/time.pyi +0 -29
- {homeassistant_stubs-2025.9.3.dist-info → homeassistant_stubs-2025.10.0b0.dist-info}/WHEEL +0 -0
- {homeassistant_stubs-2025.9.3.dist-info → homeassistant_stubs-2025.10.0b0.dist-info}/licenses/LICENSE +0 -0
|
@@ -3,12 +3,13 @@ from .const import DATA_BATTERY_CAPACITY as DATA_BATTERY_CAPACITY, DOMAIN as DOM
|
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
4
|
from abc import abstractmethod
|
|
5
5
|
from collections.abc import Callable as Callable, Coroutine
|
|
6
|
+
from dataclasses import dataclass
|
|
6
7
|
from datetime import timedelta
|
|
7
8
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
8
9
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
9
10
|
from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed
|
|
10
11
|
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
|
|
11
|
-
from typing import Any
|
|
12
|
+
from typing import Any, Generic, TypeVar
|
|
12
13
|
from volvocarsapi.api import VolvoCarsApi as VolvoCarsApi
|
|
13
14
|
from volvocarsapi.models import VolvoCarsApiBaseModel, VolvoCarsValueStatusField, VolvoCarsVehicle as VolvoCarsVehicle
|
|
14
15
|
|
|
@@ -17,39 +18,51 @@ SLOW_INTERVAL: int
|
|
|
17
18
|
MEDIUM_INTERVAL: int
|
|
18
19
|
FAST_INTERVAL: int
|
|
19
20
|
_LOGGER: Incomplete
|
|
20
|
-
|
|
21
|
+
|
|
22
|
+
@dataclass
|
|
23
|
+
class VolvoContext:
|
|
24
|
+
api: VolvoCarsApi
|
|
25
|
+
vehicle: VolvoCarsVehicle
|
|
26
|
+
|
|
27
|
+
@dataclass
|
|
28
|
+
class VolvoRuntimeData:
|
|
29
|
+
interval_coordinators: tuple[VolvoBaseIntervalCoordinator, ...]
|
|
30
|
+
type VolvoConfigEntry = ConfigEntry[VolvoRuntimeData]
|
|
21
31
|
type CoordinatorData = dict[str, VolvoCarsApiBaseModel | None]
|
|
22
32
|
|
|
23
33
|
def _is_invalid_api_field(field: VolvoCarsApiBaseModel | None) -> bool: ...
|
|
34
|
+
T = TypeVar('T', bound=dict, default=dict[str, Any])
|
|
24
35
|
|
|
25
|
-
class VolvoBaseCoordinator(DataUpdateCoordinator[
|
|
36
|
+
class VolvoBaseCoordinator(DataUpdateCoordinator[T], Generic[T]):
|
|
26
37
|
config_entry: VolvoConfigEntry
|
|
27
|
-
|
|
28
|
-
|
|
38
|
+
context: Incomplete
|
|
39
|
+
def __init__(self, hass: HomeAssistant, entry: VolvoConfigEntry, context: VolvoContext, update_interval: timedelta | None, name: str) -> None: ...
|
|
40
|
+
def get_api_field(self, api_field: str | None) -> VolvoCarsApiBaseModel | None: ...
|
|
41
|
+
|
|
42
|
+
class VolvoBaseIntervalCoordinator(VolvoBaseCoordinator[CoordinatorData], metaclass=abc.ABCMeta):
|
|
29
43
|
_api_calls: list[Callable[[], Coroutine[Any, Any, Any]]]
|
|
30
|
-
def __init__(self, hass: HomeAssistant, entry: VolvoConfigEntry,
|
|
44
|
+
def __init__(self, hass: HomeAssistant, entry: VolvoConfigEntry, context: VolvoContext, update_interval: timedelta, name: str) -> None: ...
|
|
31
45
|
update_interval: Incomplete
|
|
32
46
|
async def _async_setup(self) -> None: ...
|
|
33
47
|
async def _async_update_data(self) -> CoordinatorData: ...
|
|
34
|
-
def get_api_field(self, api_field: str | None) -> VolvoCarsApiBaseModel | None: ...
|
|
35
48
|
@abstractmethod
|
|
36
49
|
async def _async_determine_api_calls(self) -> list[Callable[[], Coroutine[Any, Any, Any]]]: ...
|
|
37
50
|
|
|
38
|
-
class VolvoVerySlowIntervalCoordinator(
|
|
39
|
-
def __init__(self, hass: HomeAssistant, entry: VolvoConfigEntry,
|
|
51
|
+
class VolvoVerySlowIntervalCoordinator(VolvoBaseIntervalCoordinator):
|
|
52
|
+
def __init__(self, hass: HomeAssistant, entry: VolvoConfigEntry, context: VolvoContext) -> None: ...
|
|
40
53
|
async def _async_determine_api_calls(self) -> list[Callable[[], Coroutine[Any, Any, Any]]]: ...
|
|
41
54
|
async def _async_update_data(self) -> CoordinatorData: ...
|
|
42
55
|
|
|
43
|
-
class VolvoSlowIntervalCoordinator(
|
|
44
|
-
def __init__(self, hass: HomeAssistant, entry: VolvoConfigEntry,
|
|
56
|
+
class VolvoSlowIntervalCoordinator(VolvoBaseIntervalCoordinator):
|
|
57
|
+
def __init__(self, hass: HomeAssistant, entry: VolvoConfigEntry, context: VolvoContext) -> None: ...
|
|
45
58
|
async def _async_determine_api_calls(self) -> list[Callable[[], Coroutine[Any, Any, Any]]]: ...
|
|
46
59
|
|
|
47
|
-
class VolvoMediumIntervalCoordinator(
|
|
60
|
+
class VolvoMediumIntervalCoordinator(VolvoBaseIntervalCoordinator):
|
|
48
61
|
_supported_capabilities: list[str]
|
|
49
|
-
def __init__(self, hass: HomeAssistant, entry: VolvoConfigEntry,
|
|
62
|
+
def __init__(self, hass: HomeAssistant, entry: VolvoConfigEntry, context: VolvoContext) -> None: ...
|
|
50
63
|
async def _async_determine_api_calls(self) -> list[Callable[[], Coroutine[Any, Any, Any]]]: ...
|
|
51
64
|
async def _async_get_energy_state(self) -> dict[str, VolvoCarsValueStatusField | None]: ...
|
|
52
65
|
|
|
53
|
-
class VolvoFastIntervalCoordinator(
|
|
54
|
-
def __init__(self, hass: HomeAssistant, entry: VolvoConfigEntry,
|
|
66
|
+
class VolvoFastIntervalCoordinator(VolvoBaseIntervalCoordinator):
|
|
67
|
+
def __init__(self, hass: HomeAssistant, entry: VolvoConfigEntry, context: VolvoContext) -> None: ...
|
|
55
68
|
async def _async_determine_api_calls(self) -> list[Callable[[], Coroutine[Any, Any, Any]]]: ...
|
|
@@ -13,4 +13,3 @@ CONFIG_SCHEMA: Incomplete
|
|
|
13
13
|
async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
|
|
14
14
|
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
|
|
15
15
|
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
|
|
16
|
-
async def update_listener(hass: HomeAssistant, entry: ConfigEntry) -> None: ...
|
|
@@ -17,4 +17,5 @@ OPTIONS_FLOW: Incomplete
|
|
|
17
17
|
class WakeonLanConfigFlowHandler(SchemaConfigFlowHandler, domain=DOMAIN):
|
|
18
18
|
config_flow = CONFIG_FLOW
|
|
19
19
|
options_flow = OPTIONS_FLOW
|
|
20
|
+
options_flow_reloads: bool
|
|
20
21
|
def async_config_entry_title(self, options: Mapping[str, Any]) -> str: ...
|
|
@@ -4,8 +4,9 @@ from aiohttp import web as web
|
|
|
4
4
|
from dataclasses import dataclass
|
|
5
5
|
from homeassistant.const import CONF_PLATFORM as CONF_PLATFORM, CONF_WEBHOOK_ID as CONF_WEBHOOK_ID
|
|
6
6
|
from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HassJob as HassJob, HomeAssistant as HomeAssistant, callback as callback
|
|
7
|
+
from homeassistant.helpers.template import Template as Template
|
|
7
8
|
from homeassistant.helpers.trigger import TriggerActionType as TriggerActionType, TriggerInfo as TriggerInfo
|
|
8
|
-
from homeassistant.helpers.typing import ConfigType as ConfigType
|
|
9
|
+
from homeassistant.helpers.typing import ConfigType as ConfigType, TemplateVarsType as TemplateVarsType
|
|
9
10
|
|
|
10
11
|
_LOGGER: Incomplete
|
|
11
12
|
DEPENDENCIES: Incomplete
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
from . import WorkdayConfigEntry as WorkdayConfigEntry
|
|
2
|
+
from .const import CONF_EXCLUDES as CONF_EXCLUDES, CONF_OFFSET as CONF_OFFSET, CONF_WORKDAYS as CONF_WORKDAYS
|
|
3
|
+
from .entity import BaseWorkdayEntity as BaseWorkdayEntity
|
|
4
|
+
from _typeshed import Incomplete
|
|
5
|
+
from datetime import datetime
|
|
6
|
+
from holidays import HolidayBase as HolidayBase
|
|
7
|
+
from homeassistant.components.calendar import CalendarEntity as CalendarEntity, CalendarEvent as CalendarEvent
|
|
8
|
+
from homeassistant.const import CONF_NAME as CONF_NAME
|
|
9
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
10
|
+
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
11
|
+
|
|
12
|
+
CALENDAR_DAYS_AHEAD: int
|
|
13
|
+
|
|
14
|
+
async def async_setup_entry(hass: HomeAssistant, entry: WorkdayConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
15
|
+
|
|
16
|
+
class WorkdayCalendarEntity(BaseWorkdayEntity, CalendarEntity):
|
|
17
|
+
_attr_unique_id: Incomplete
|
|
18
|
+
_attr_event: Incomplete
|
|
19
|
+
event_list: list[CalendarEvent]
|
|
20
|
+
_name: Incomplete
|
|
21
|
+
def __init__(self, obj_holidays: HolidayBase, workdays: list[str], excludes: list[str], days_offset: int, name: str, entry_id: str) -> None: ...
|
|
22
|
+
def update_data(self, now: datetime) -> None: ...
|
|
23
|
+
@property
|
|
24
|
+
def event(self) -> CalendarEvent | None: ...
|
|
25
|
+
async def async_get_events(self, hass: HomeAssistant, start_date: datetime, end_date: datetime) -> list[CalendarEvent]: ...
|
|
@@ -13,6 +13,5 @@ type YALEXSBLEConfigEntry = ConfigEntry[YaleXSBLEData]
|
|
|
13
13
|
PLATFORMS: list[Platform]
|
|
14
14
|
|
|
15
15
|
async def async_setup_entry(hass: HomeAssistant, entry: YALEXSBLEConfigEntry) -> bool: ...
|
|
16
|
-
async def _async_update_listener(hass: HomeAssistant, entry: YALEXSBLEConfigEntry) -> None: ...
|
|
17
16
|
async def _async_wait_for_first_update(push_lock: PushLock, local_name: str) -> None: ...
|
|
18
17
|
async def async_unload_entry(hass: HomeAssistant, entry: YALEXSBLEConfigEntry) -> bool: ...
|
|
@@ -5,7 +5,7 @@ from _typeshed import Incomplete
|
|
|
5
5
|
from bleak_retry_connector import BLEDevice as BLEDevice
|
|
6
6
|
from collections.abc import Mapping
|
|
7
7
|
from homeassistant.components.bluetooth import BluetoothServiceInfoBleak as BluetoothServiceInfoBleak, async_ble_device_from_address as async_ble_device_from_address, async_discovered_service_info as async_discovered_service_info
|
|
8
|
-
from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult,
|
|
8
|
+
from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlowWithReload as OptionsFlowWithReload
|
|
9
9
|
from homeassistant.const import CONF_ADDRESS as CONF_ADDRESS
|
|
10
10
|
from homeassistant.core import callback as callback
|
|
11
11
|
from homeassistant.data_entry_flow import AbortFlow as AbortFlow
|
|
@@ -41,6 +41,6 @@ class YalexsConfigFlow(ConfigFlow, domain=DOMAIN):
|
|
|
41
41
|
@callback
|
|
42
42
|
def async_get_options_flow(config_entry: ConfigEntry) -> YaleXSBLEOptionsFlowHandler: ...
|
|
43
43
|
|
|
44
|
-
class YaleXSBLEOptionsFlowHandler(
|
|
44
|
+
class YaleXSBLEOptionsFlowHandler(OptionsFlowWithReload):
|
|
45
45
|
async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
|
46
46
|
async def async_step_device_options(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
from .addon import get_addon_manager as get_addon_manager
|
|
3
3
|
from .api import async_register_api as async_register_api
|
|
4
|
-
from .const import ATTR_ACKNOWLEDGED_FRAMES as ATTR_ACKNOWLEDGED_FRAMES, ATTR_COMMAND_CLASS as ATTR_COMMAND_CLASS, ATTR_COMMAND_CLASS_NAME as ATTR_COMMAND_CLASS_NAME, ATTR_DATA_TYPE as ATTR_DATA_TYPE, ATTR_DATA_TYPE_LABEL as ATTR_DATA_TYPE_LABEL, ATTR_DIRECTION as ATTR_DIRECTION, ATTR_ENDPOINT as ATTR_ENDPOINT, ATTR_EVENT as ATTR_EVENT, ATTR_EVENT_DATA as ATTR_EVENT_DATA, ATTR_EVENT_LABEL as ATTR_EVENT_LABEL, ATTR_EVENT_TYPE as ATTR_EVENT_TYPE, ATTR_EVENT_TYPE_LABEL as ATTR_EVENT_TYPE_LABEL, ATTR_HOME_ID as ATTR_HOME_ID, ATTR_LABEL as ATTR_LABEL, ATTR_NODE_ID as ATTR_NODE_ID, ATTR_PARAMETERS as ATTR_PARAMETERS, ATTR_PROPERTY as ATTR_PROPERTY, ATTR_PROPERTY_KEY as ATTR_PROPERTY_KEY, ATTR_PROPERTY_KEY_NAME as ATTR_PROPERTY_KEY_NAME, ATTR_PROPERTY_NAME as ATTR_PROPERTY_NAME, ATTR_STATUS as ATTR_STATUS, ATTR_TEST_NODE_ID as ATTR_TEST_NODE_ID, ATTR_TYPE as ATTR_TYPE, ATTR_VALUE as ATTR_VALUE, ATTR_VALUE_RAW as ATTR_VALUE_RAW, CONF_ADDON_DEVICE as CONF_ADDON_DEVICE, CONF_ADDON_LR_S2_ACCESS_CONTROL_KEY as CONF_ADDON_LR_S2_ACCESS_CONTROL_KEY, CONF_ADDON_LR_S2_AUTHENTICATED_KEY as CONF_ADDON_LR_S2_AUTHENTICATED_KEY, CONF_ADDON_NETWORK_KEY as CONF_ADDON_NETWORK_KEY, CONF_ADDON_S0_LEGACY_KEY as CONF_ADDON_S0_LEGACY_KEY, CONF_ADDON_S2_ACCESS_CONTROL_KEY as CONF_ADDON_S2_ACCESS_CONTROL_KEY, CONF_ADDON_S2_AUTHENTICATED_KEY as CONF_ADDON_S2_AUTHENTICATED_KEY, CONF_ADDON_S2_UNAUTHENTICATED_KEY as CONF_ADDON_S2_UNAUTHENTICATED_KEY, CONF_DATA_COLLECTION_OPTED_IN as CONF_DATA_COLLECTION_OPTED_IN, CONF_INSTALLER_MODE as CONF_INSTALLER_MODE, CONF_INTEGRATION_CREATED_ADDON as CONF_INTEGRATION_CREATED_ADDON, CONF_KEEP_OLD_DEVICES as CONF_KEEP_OLD_DEVICES, CONF_LR_S2_ACCESS_CONTROL_KEY as CONF_LR_S2_ACCESS_CONTROL_KEY, CONF_LR_S2_AUTHENTICATED_KEY as CONF_LR_S2_AUTHENTICATED_KEY, CONF_NETWORK_KEY as CONF_NETWORK_KEY, CONF_S0_LEGACY_KEY as CONF_S0_LEGACY_KEY, CONF_S2_ACCESS_CONTROL_KEY as CONF_S2_ACCESS_CONTROL_KEY, CONF_S2_AUTHENTICATED_KEY as CONF_S2_AUTHENTICATED_KEY, CONF_S2_UNAUTHENTICATED_KEY as CONF_S2_UNAUTHENTICATED_KEY, CONF_USB_PATH as CONF_USB_PATH, CONF_USE_ADDON as CONF_USE_ADDON, DOMAIN as DOMAIN, EVENT_DEVICE_ADDED_TO_REGISTRY as EVENT_DEVICE_ADDED_TO_REGISTRY, EVENT_VALUE_UPDATED as EVENT_VALUE_UPDATED, LIB_LOGGER as LIB_LOGGER, LOGGER as LOGGER, LR_ADDON_VERSION as LR_ADDON_VERSION, USER_AGENT as USER_AGENT, ZWAVE_JS_NOTIFICATION_EVENT as ZWAVE_JS_NOTIFICATION_EVENT, ZWAVE_JS_VALUE_NOTIFICATION_EVENT as ZWAVE_JS_VALUE_NOTIFICATION_EVENT, ZWAVE_JS_VALUE_UPDATED_EVENT as ZWAVE_JS_VALUE_UPDATED_EVENT
|
|
4
|
+
from .const import ATTR_ACKNOWLEDGED_FRAMES as ATTR_ACKNOWLEDGED_FRAMES, ATTR_COMMAND_CLASS as ATTR_COMMAND_CLASS, ATTR_COMMAND_CLASS_NAME as ATTR_COMMAND_CLASS_NAME, ATTR_DATA_TYPE as ATTR_DATA_TYPE, ATTR_DATA_TYPE_LABEL as ATTR_DATA_TYPE_LABEL, ATTR_DIRECTION as ATTR_DIRECTION, ATTR_ENDPOINT as ATTR_ENDPOINT, ATTR_EVENT as ATTR_EVENT, ATTR_EVENT_DATA as ATTR_EVENT_DATA, ATTR_EVENT_LABEL as ATTR_EVENT_LABEL, ATTR_EVENT_TYPE as ATTR_EVENT_TYPE, ATTR_EVENT_TYPE_LABEL as ATTR_EVENT_TYPE_LABEL, ATTR_HOME_ID as ATTR_HOME_ID, ATTR_LABEL as ATTR_LABEL, ATTR_NODE_ID as ATTR_NODE_ID, ATTR_PARAMETERS as ATTR_PARAMETERS, ATTR_PROPERTY as ATTR_PROPERTY, ATTR_PROPERTY_KEY as ATTR_PROPERTY_KEY, ATTR_PROPERTY_KEY_NAME as ATTR_PROPERTY_KEY_NAME, ATTR_PROPERTY_NAME as ATTR_PROPERTY_NAME, ATTR_STATUS as ATTR_STATUS, ATTR_TEST_NODE_ID as ATTR_TEST_NODE_ID, ATTR_TYPE as ATTR_TYPE, ATTR_VALUE as ATTR_VALUE, ATTR_VALUE_RAW as ATTR_VALUE_RAW, CONF_ADDON_DEVICE as CONF_ADDON_DEVICE, CONF_ADDON_LR_S2_ACCESS_CONTROL_KEY as CONF_ADDON_LR_S2_ACCESS_CONTROL_KEY, CONF_ADDON_LR_S2_AUTHENTICATED_KEY as CONF_ADDON_LR_S2_AUTHENTICATED_KEY, CONF_ADDON_NETWORK_KEY as CONF_ADDON_NETWORK_KEY, CONF_ADDON_S0_LEGACY_KEY as CONF_ADDON_S0_LEGACY_KEY, CONF_ADDON_S2_ACCESS_CONTROL_KEY as CONF_ADDON_S2_ACCESS_CONTROL_KEY, CONF_ADDON_S2_AUTHENTICATED_KEY as CONF_ADDON_S2_AUTHENTICATED_KEY, CONF_ADDON_S2_UNAUTHENTICATED_KEY as CONF_ADDON_S2_UNAUTHENTICATED_KEY, CONF_ADDON_SOCKET as CONF_ADDON_SOCKET, CONF_DATA_COLLECTION_OPTED_IN as CONF_DATA_COLLECTION_OPTED_IN, CONF_INSTALLER_MODE as CONF_INSTALLER_MODE, CONF_INTEGRATION_CREATED_ADDON as CONF_INTEGRATION_CREATED_ADDON, CONF_KEEP_OLD_DEVICES as CONF_KEEP_OLD_DEVICES, CONF_LR_S2_ACCESS_CONTROL_KEY as CONF_LR_S2_ACCESS_CONTROL_KEY, CONF_LR_S2_AUTHENTICATED_KEY as CONF_LR_S2_AUTHENTICATED_KEY, CONF_NETWORK_KEY as CONF_NETWORK_KEY, CONF_S0_LEGACY_KEY as CONF_S0_LEGACY_KEY, CONF_S2_ACCESS_CONTROL_KEY as CONF_S2_ACCESS_CONTROL_KEY, CONF_S2_AUTHENTICATED_KEY as CONF_S2_AUTHENTICATED_KEY, CONF_S2_UNAUTHENTICATED_KEY as CONF_S2_UNAUTHENTICATED_KEY, CONF_SOCKET_PATH as CONF_SOCKET_PATH, CONF_USB_PATH as CONF_USB_PATH, CONF_USE_ADDON as CONF_USE_ADDON, DOMAIN as DOMAIN, ESPHOME_ADDON_VERSION as ESPHOME_ADDON_VERSION, EVENT_DEVICE_ADDED_TO_REGISTRY as EVENT_DEVICE_ADDED_TO_REGISTRY, EVENT_VALUE_UPDATED as EVENT_VALUE_UPDATED, LIB_LOGGER as LIB_LOGGER, LOGGER as LOGGER, LR_ADDON_VERSION as LR_ADDON_VERSION, USER_AGENT as USER_AGENT, ZWAVE_JS_NOTIFICATION_EVENT as ZWAVE_JS_NOTIFICATION_EVENT, ZWAVE_JS_VALUE_NOTIFICATION_EVENT as ZWAVE_JS_VALUE_NOTIFICATION_EVENT, ZWAVE_JS_VALUE_UPDATED_EVENT as ZWAVE_JS_VALUE_UPDATED_EVENT
|
|
5
5
|
from .discovery import async_discover_node_values as async_discover_node_values, async_discover_single_value as async_discover_single_value
|
|
6
6
|
from .helpers import async_disable_server_logging_if_needed as async_disable_server_logging_if_needed, async_enable_server_logging_if_needed as async_enable_server_logging_if_needed, async_enable_statistics as async_enable_statistics, get_device_id as get_device_id, get_device_id_ext as get_device_id_ext, get_network_identifier_for_notification as get_network_identifier_for_notification, get_unique_id as get_unique_id, get_valueless_base_unique_id as get_valueless_base_unique_id
|
|
7
7
|
from .migrate import async_migrate_discovered_value as async_migrate_discovered_value
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
import voluptuous as vol
|
|
3
3
|
from .addon import get_addon_manager as get_addon_manager
|
|
4
|
-
from .const import ADDON_SLUG as ADDON_SLUG, CONF_ADDON_DEVICE as CONF_ADDON_DEVICE, CONF_ADDON_LR_S2_ACCESS_CONTROL_KEY as CONF_ADDON_LR_S2_ACCESS_CONTROL_KEY, CONF_ADDON_LR_S2_AUTHENTICATED_KEY as CONF_ADDON_LR_S2_AUTHENTICATED_KEY, CONF_ADDON_NETWORK_KEY as CONF_ADDON_NETWORK_KEY, CONF_ADDON_S0_LEGACY_KEY as CONF_ADDON_S0_LEGACY_KEY, CONF_ADDON_S2_ACCESS_CONTROL_KEY as CONF_ADDON_S2_ACCESS_CONTROL_KEY, CONF_ADDON_S2_AUTHENTICATED_KEY as CONF_ADDON_S2_AUTHENTICATED_KEY, CONF_ADDON_S2_UNAUTHENTICATED_KEY as CONF_ADDON_S2_UNAUTHENTICATED_KEY, CONF_INTEGRATION_CREATED_ADDON as CONF_INTEGRATION_CREATED_ADDON, CONF_KEEP_OLD_DEVICES as CONF_KEEP_OLD_DEVICES, CONF_LR_S2_ACCESS_CONTROL_KEY as CONF_LR_S2_ACCESS_CONTROL_KEY, CONF_LR_S2_AUTHENTICATED_KEY as CONF_LR_S2_AUTHENTICATED_KEY, CONF_S0_LEGACY_KEY as CONF_S0_LEGACY_KEY, CONF_S2_ACCESS_CONTROL_KEY as CONF_S2_ACCESS_CONTROL_KEY, CONF_S2_AUTHENTICATED_KEY as CONF_S2_AUTHENTICATED_KEY, CONF_S2_UNAUTHENTICATED_KEY as CONF_S2_UNAUTHENTICATED_KEY, CONF_USB_PATH as CONF_USB_PATH, CONF_USE_ADDON as CONF_USE_ADDON, DOMAIN as DOMAIN
|
|
4
|
+
from .const import ADDON_SLUG as ADDON_SLUG, CONF_ADDON_DEVICE as CONF_ADDON_DEVICE, CONF_ADDON_LR_S2_ACCESS_CONTROL_KEY as CONF_ADDON_LR_S2_ACCESS_CONTROL_KEY, CONF_ADDON_LR_S2_AUTHENTICATED_KEY as CONF_ADDON_LR_S2_AUTHENTICATED_KEY, CONF_ADDON_NETWORK_KEY as CONF_ADDON_NETWORK_KEY, CONF_ADDON_S0_LEGACY_KEY as CONF_ADDON_S0_LEGACY_KEY, CONF_ADDON_S2_ACCESS_CONTROL_KEY as CONF_ADDON_S2_ACCESS_CONTROL_KEY, CONF_ADDON_S2_AUTHENTICATED_KEY as CONF_ADDON_S2_AUTHENTICATED_KEY, CONF_ADDON_S2_UNAUTHENTICATED_KEY as CONF_ADDON_S2_UNAUTHENTICATED_KEY, CONF_ADDON_SOCKET as CONF_ADDON_SOCKET, CONF_INTEGRATION_CREATED_ADDON as CONF_INTEGRATION_CREATED_ADDON, CONF_KEEP_OLD_DEVICES as CONF_KEEP_OLD_DEVICES, CONF_LR_S2_ACCESS_CONTROL_KEY as CONF_LR_S2_ACCESS_CONTROL_KEY, CONF_LR_S2_AUTHENTICATED_KEY as CONF_LR_S2_AUTHENTICATED_KEY, CONF_S0_LEGACY_KEY as CONF_S0_LEGACY_KEY, CONF_S2_ACCESS_CONTROL_KEY as CONF_S2_ACCESS_CONTROL_KEY, CONF_S2_AUTHENTICATED_KEY as CONF_S2_AUTHENTICATED_KEY, CONF_S2_UNAUTHENTICATED_KEY as CONF_S2_UNAUTHENTICATED_KEY, CONF_SOCKET_PATH as CONF_SOCKET_PATH, CONF_USB_PATH as CONF_USB_PATH, CONF_USE_ADDON as CONF_USE_ADDON, DOMAIN as DOMAIN
|
|
5
5
|
from .helpers import CannotConnect as CannotConnect, async_get_version_info as async_get_version_info, async_wait_for_driver_ready_event as async_wait_for_driver_ready_event
|
|
6
6
|
from .models import ZwaveJSConfigEntry as ZwaveJSConfigEntry
|
|
7
7
|
from _typeshed import Incomplete
|
|
8
8
|
from homeassistant.components import usb as usb
|
|
9
9
|
from homeassistant.components.hassio import AddonError as AddonError, AddonInfo as AddonInfo, AddonManager as AddonManager, AddonState as AddonState
|
|
10
|
-
from homeassistant.config_entries import ConfigEntryState as ConfigEntryState, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, SOURCE_USB as SOURCE_USB
|
|
10
|
+
from homeassistant.config_entries import ConfigEntryState as ConfigEntryState, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, SOURCE_ESPHOME as SOURCE_ESPHOME, SOURCE_USB as SOURCE_USB
|
|
11
11
|
from homeassistant.const import CONF_NAME as CONF_NAME, CONF_URL as CONF_URL
|
|
12
12
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
|
13
13
|
from homeassistant.data_entry_flow import AbortFlow as AbortFlow
|
|
14
14
|
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
|
|
15
15
|
from homeassistant.helpers import selector as selector
|
|
16
16
|
from homeassistant.helpers.hassio import is_hassio as is_hassio
|
|
17
|
+
from homeassistant.helpers.service_info.esphome import ESPHomeServiceInfo as ESPHomeServiceInfo
|
|
17
18
|
from homeassistant.helpers.service_info.hassio import HassioServiceInfo as HassioServiceInfo
|
|
18
19
|
from homeassistant.helpers.service_info.usb import UsbServiceInfo as UsbServiceInfo
|
|
19
20
|
from homeassistant.helpers.service_info.zeroconf import ZeroconfServiceInfo as ZeroconfServiceInfo
|
|
@@ -54,6 +55,7 @@ class ZWaveJSConfigFlow(ConfigFlow, domain=DOMAIN):
|
|
|
54
55
|
lr_s2_access_control_key: str | None
|
|
55
56
|
lr_s2_authenticated_key: str | None
|
|
56
57
|
usb_path: str | None
|
|
58
|
+
socket_path: str | None
|
|
57
59
|
ws_address: str | None
|
|
58
60
|
restart_addon: bool
|
|
59
61
|
integration_created_addon: bool
|
|
@@ -70,7 +72,7 @@ class ZWaveJSConfigFlow(ConfigFlow, domain=DOMAIN):
|
|
|
70
72
|
_addon_config_updates: dict[str, Any]
|
|
71
73
|
_migrating: bool
|
|
72
74
|
_reconfigure_config_entry: ZwaveJSConfigEntry | None
|
|
73
|
-
|
|
75
|
+
_adapter_discovered: bool
|
|
74
76
|
_recommended_install: bool
|
|
75
77
|
_rf_region: str | None
|
|
76
78
|
def __init__(self) -> None: ...
|
|
@@ -121,6 +123,7 @@ class ZWaveJSConfigFlow(ConfigFlow, domain=DOMAIN):
|
|
|
121
123
|
async def async_step_migration_done(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
|
122
124
|
async def async_step_finish_addon_setup_migrate(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
|
123
125
|
async def async_step_finish_addon_setup_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
|
126
|
+
async def async_step_esphome(self, discovery_info: ESPHomeServiceInfo) -> ConfigFlowResult: ...
|
|
124
127
|
async def async_revert_addon_config(self, reason: str) -> ConfigFlowResult: ...
|
|
125
128
|
async def _async_backup_network(self) -> None: ...
|
|
126
129
|
async def _async_restore_network_backup(self) -> None: ...
|
|
@@ -2,6 +2,7 @@ from _typeshed import Incomplete
|
|
|
2
2
|
from homeassistant.const import APPLICATION_NAME as APPLICATION_NAME
|
|
3
3
|
|
|
4
4
|
LR_ADDON_VERSION: Incomplete
|
|
5
|
+
ESPHOME_ADDON_VERSION: Incomplete
|
|
5
6
|
USER_AGENT: Incomplete
|
|
6
7
|
CONF_ADDON_DEVICE: str
|
|
7
8
|
CONF_ADDON_NETWORK_KEY: str
|
|
@@ -11,6 +12,7 @@ CONF_ADDON_S2_AUTHENTICATED_KEY: str
|
|
|
11
12
|
CONF_ADDON_S2_UNAUTHENTICATED_KEY: str
|
|
12
13
|
CONF_ADDON_LR_S2_ACCESS_CONTROL_KEY: str
|
|
13
14
|
CONF_ADDON_LR_S2_AUTHENTICATED_KEY: str
|
|
15
|
+
CONF_ADDON_SOCKET: str
|
|
14
16
|
CONF_INSTALLER_MODE: str
|
|
15
17
|
CONF_INTEGRATION_CREATED_ADDON: str
|
|
16
18
|
CONF_KEEP_OLD_DEVICES: str
|
|
@@ -21,6 +23,7 @@ CONF_S2_AUTHENTICATED_KEY: str
|
|
|
21
23
|
CONF_S2_UNAUTHENTICATED_KEY: str
|
|
22
24
|
CONF_LR_S2_ACCESS_CONTROL_KEY: str
|
|
23
25
|
CONF_LR_S2_AUTHENTICATED_KEY: str
|
|
26
|
+
CONF_SOCKET_PATH: str
|
|
24
27
|
CONF_USB_PATH: str
|
|
25
28
|
CONF_USE_ADDON: str
|
|
26
29
|
CONF_DATA_COLLECTION_OPTED_IN: str
|
|
@@ -7,7 +7,7 @@ from .triggers.value_updated import ATTR_FROM as ATTR_FROM, ATTR_TO as ATTR_TO
|
|
|
7
7
|
from _typeshed import Incomplete
|
|
8
8
|
from homeassistant.components.device_automation import DEVICE_TRIGGER_BASE_SCHEMA as DEVICE_TRIGGER_BASE_SCHEMA, InvalidDeviceAutomationConfig as InvalidDeviceAutomationConfig
|
|
9
9
|
from homeassistant.components.homeassistant.triggers import event as event, state as state
|
|
10
|
-
from homeassistant.const import CONF_DEVICE_ID as CONF_DEVICE_ID, CONF_DOMAIN as CONF_DOMAIN, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_PLATFORM as CONF_PLATFORM, CONF_TYPE as CONF_TYPE
|
|
10
|
+
from homeassistant.const import CONF_DEVICE_ID as CONF_DEVICE_ID, CONF_DOMAIN as CONF_DOMAIN, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_OPTIONS as CONF_OPTIONS, CONF_PLATFORM as CONF_PLATFORM, CONF_TYPE as CONF_TYPE
|
|
11
11
|
from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HomeAssistant as HomeAssistant
|
|
12
12
|
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
|
|
13
13
|
from homeassistant.helpers.trigger import TriggerActionType as TriggerActionType, TriggerInfo as TriggerInfo
|
|
@@ -3,11 +3,13 @@ from ..helpers import async_get_nodes_from_targets as async_get_nodes_from_targe
|
|
|
3
3
|
from .trigger_helpers import async_bypass_dynamic_config_validation as async_bypass_dynamic_config_validation
|
|
4
4
|
from _typeshed import Incomplete
|
|
5
5
|
from collections.abc import Callable as Callable
|
|
6
|
-
from homeassistant.const import ATTR_CONFIG_ENTRY_ID as ATTR_CONFIG_ENTRY_ID, ATTR_DEVICE_ID as ATTR_DEVICE_ID, ATTR_ENTITY_ID as ATTR_ENTITY_ID, CONF_PLATFORM as CONF_PLATFORM
|
|
6
|
+
from homeassistant.const import ATTR_CONFIG_ENTRY_ID as ATTR_CONFIG_ENTRY_ID, ATTR_DEVICE_ID as ATTR_DEVICE_ID, ATTR_ENTITY_ID as ATTR_ENTITY_ID, CONF_OPTIONS as CONF_OPTIONS, CONF_PLATFORM as CONF_PLATFORM
|
|
7
7
|
from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HassJob as HassJob, HomeAssistant as HomeAssistant, callback as callback
|
|
8
|
+
from homeassistant.helpers import device_registry as dr
|
|
8
9
|
from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
|
|
9
|
-
from homeassistant.helpers.trigger import Trigger as Trigger, TriggerActionType as TriggerActionType, TriggerInfo as TriggerInfo
|
|
10
|
+
from homeassistant.helpers.trigger import Trigger as Trigger, TriggerActionType as TriggerActionType, TriggerConfig as TriggerConfig, TriggerData as TriggerData, TriggerInfo as TriggerInfo, move_top_level_schema_fields_to_options as move_top_level_schema_fields_to_options
|
|
10
11
|
from homeassistant.helpers.typing import ConfigType as ConfigType
|
|
12
|
+
from typing import Any
|
|
11
13
|
from zwave_js_server.model.driver import Driver as Driver
|
|
12
14
|
|
|
13
15
|
RELATIVE_PLATFORM_TYPE: Incomplete
|
|
@@ -17,15 +19,28 @@ def validate_non_node_event_source(obj: dict) -> dict: ...
|
|
|
17
19
|
def validate_event_name(obj: dict) -> dict: ...
|
|
18
20
|
def validate_event_data(obj: dict) -> dict: ...
|
|
19
21
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
async def async_validate_trigger_config(hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
|
|
23
|
-
async def async_attach_trigger(hass: HomeAssistant, config: ConfigType, action: TriggerActionType, trigger_info: TriggerInfo, *, platform_type: str = ...) -> CALLBACK_TYPE: ...
|
|
22
|
+
_OPTIONS_SCHEMA_DICT: Incomplete
|
|
23
|
+
_CONFIG_SCHEMA: Incomplete
|
|
24
24
|
|
|
25
25
|
class EventTrigger(Trigger):
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
_hass: HomeAssistant
|
|
27
|
+
_options: dict[str, Any]
|
|
28
|
+
_event_source: str
|
|
29
|
+
_event_name: str
|
|
30
|
+
_event_data_filter: dict
|
|
31
|
+
_job: HassJob
|
|
32
|
+
_trigger_data: TriggerData
|
|
33
|
+
_unsubs: list[Callable]
|
|
34
|
+
_platform_type = PLATFORM_TYPE
|
|
35
|
+
@classmethod
|
|
36
|
+
async def async_validate_complete_config(cls, hass: HomeAssistant, complete_config: ConfigType) -> ConfigType: ...
|
|
29
37
|
@classmethod
|
|
30
38
|
async def async_validate_config(cls, hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
|
|
39
|
+
def __init__(self, hass: HomeAssistant, config: TriggerConfig) -> None: ...
|
|
31
40
|
async def async_attach(self, action: TriggerActionType, trigger_info: TriggerInfo) -> CALLBACK_TYPE: ...
|
|
41
|
+
@callback
|
|
42
|
+
def _async_on_event(self, event_data: dict, device: dr.DeviceEntry | None = None) -> None: ...
|
|
43
|
+
@callback
|
|
44
|
+
def _async_remove(self) -> None: ...
|
|
45
|
+
@callback
|
|
46
|
+
def _create_zwave_listeners(self) -> None: ...
|
|
@@ -4,11 +4,12 @@ from ..helpers import async_get_nodes_from_targets as async_get_nodes_from_targe
|
|
|
4
4
|
from .trigger_helpers import async_bypass_dynamic_config_validation as async_bypass_dynamic_config_validation
|
|
5
5
|
from _typeshed import Incomplete
|
|
6
6
|
from collections.abc import Callable as Callable
|
|
7
|
-
from homeassistant.const import ATTR_DEVICE_ID as ATTR_DEVICE_ID, ATTR_ENTITY_ID as ATTR_ENTITY_ID, CONF_PLATFORM as CONF_PLATFORM, MATCH_ALL as MATCH_ALL
|
|
7
|
+
from homeassistant.const import ATTR_DEVICE_ID as ATTR_DEVICE_ID, ATTR_ENTITY_ID as ATTR_ENTITY_ID, CONF_OPTIONS as CONF_OPTIONS, CONF_PLATFORM as CONF_PLATFORM, MATCH_ALL as MATCH_ALL
|
|
8
8
|
from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HassJob as HassJob, HomeAssistant as HomeAssistant, callback as callback
|
|
9
9
|
from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
|
|
10
|
-
from homeassistant.helpers.trigger import Trigger as Trigger, TriggerActionType as TriggerActionType, TriggerInfo as TriggerInfo
|
|
10
|
+
from homeassistant.helpers.trigger import Trigger as Trigger, TriggerActionType as TriggerActionType, TriggerConfig as TriggerConfig, TriggerInfo as TriggerInfo, move_top_level_schema_fields_to_options as move_top_level_schema_fields_to_options
|
|
11
11
|
from homeassistant.helpers.typing import ConfigType as ConfigType
|
|
12
|
+
from typing import Any
|
|
12
13
|
from zwave_js_server.model.driver import Driver as Driver
|
|
13
14
|
from zwave_js_server.model.value import Value as Value
|
|
14
15
|
|
|
@@ -16,15 +17,18 @@ RELATIVE_PLATFORM_TYPE: Incomplete
|
|
|
16
17
|
PLATFORM_TYPE: Incomplete
|
|
17
18
|
ATTR_FROM: str
|
|
18
19
|
ATTR_TO: str
|
|
19
|
-
|
|
20
|
+
_OPTIONS_SCHEMA_DICT: Incomplete
|
|
21
|
+
_CONFIG_SCHEMA: Incomplete
|
|
20
22
|
|
|
21
23
|
async def async_validate_trigger_config(hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
|
|
22
|
-
async def async_attach_trigger(hass: HomeAssistant,
|
|
24
|
+
async def async_attach_trigger(hass: HomeAssistant, options: ConfigType, action: TriggerActionType, trigger_info: TriggerInfo, *, platform_type: str = ...) -> CALLBACK_TYPE: ...
|
|
23
25
|
|
|
24
26
|
class ValueUpdatedTrigger(Trigger):
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
_hass: HomeAssistant
|
|
28
|
+
_options: dict[str, Any]
|
|
29
|
+
@classmethod
|
|
30
|
+
async def async_validate_complete_config(cls, hass: HomeAssistant, complete_config: ConfigType) -> ConfigType: ...
|
|
28
31
|
@classmethod
|
|
29
32
|
async def async_validate_config(cls, hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
|
|
33
|
+
def __init__(self, hass: HomeAssistant, config: TriggerConfig) -> None: ...
|
|
30
34
|
async def async_attach(self, action: TriggerActionType, trigger_info: TriggerInfo) -> CALLBACK_TYPE: ...
|
|
@@ -43,6 +43,7 @@ _LOGGER: Incomplete
|
|
|
43
43
|
SOURCE_BLUETOOTH: str
|
|
44
44
|
SOURCE_DHCP: str
|
|
45
45
|
SOURCE_DISCOVERY: str
|
|
46
|
+
SOURCE_ESPHOME: str
|
|
46
47
|
SOURCE_HARDWARE: str
|
|
47
48
|
SOURCE_HASSIO: str
|
|
48
49
|
SOURCE_HOMEKIT: str
|
|
@@ -127,12 +128,16 @@ class ConfigFlowContext(FlowContext, total=False):
|
|
|
127
128
|
unique_id: str | None
|
|
128
129
|
|
|
129
130
|
class ConfigFlowResult(FlowResult[ConfigFlowContext, str], total=False):
|
|
131
|
+
next_flow: tuple[FlowType, str]
|
|
130
132
|
minor_version: int
|
|
131
133
|
options: Mapping[str, Any]
|
|
132
134
|
result: ConfigEntry
|
|
133
135
|
subentries: Iterable[ConfigSubentryData]
|
|
134
136
|
version: int
|
|
135
137
|
|
|
138
|
+
class FlowType(StrEnum):
|
|
139
|
+
CONFIG_FLOW = 'config_flow'
|
|
140
|
+
|
|
136
141
|
def _validate_item(*, disabled_by: ConfigEntryDisabler | Any | None = None) -> None: ...
|
|
137
142
|
|
|
138
143
|
class ConfigSubentryData(TypedDict):
|
|
@@ -415,7 +420,7 @@ class ConfigFlow(ConfigEntryBaseFlow):
|
|
|
415
420
|
async def async_step_usb(self, discovery_info: UsbServiceInfo) -> ConfigFlowResult: ...
|
|
416
421
|
async def async_step_zeroconf(self, discovery_info: ZeroconfServiceInfo) -> ConfigFlowResult: ...
|
|
417
422
|
@callback
|
|
418
|
-
def async_create_entry(self, *, title: str, data: Mapping[str, Any], description: str | None = None, description_placeholders: Mapping[str, str] | None = None, options: Mapping[str, Any] | None = None, subentries: Iterable[ConfigSubentryData] | None = None) -> ConfigFlowResult: ...
|
|
423
|
+
def async_create_entry(self, *, title: str, data: Mapping[str, Any], description: str | None = None, description_placeholders: Mapping[str, str] | None = None, next_flow: tuple[FlowType, str] | None = None, options: Mapping[str, Any] | None = None, subentries: Iterable[ConfigSubentryData] | None = None) -> ConfigFlowResult: ...
|
|
419
424
|
@callback
|
|
420
425
|
def async_update_reload_and_abort(self, entry: ConfigEntry, *, unique_id: str | None | UndefinedType = ..., title: str | UndefinedType = ..., data: Mapping[str, Any] | UndefinedType = ..., data_updates: Mapping[str, Any] | UndefinedType = ..., options: Mapping[str, Any] | UndefinedType = ..., reason: str | UndefinedType = ..., reload_even_if_entry_is_unchanged: bool = True) -> ConfigFlowResult: ...
|
|
421
426
|
@callback
|
homeassistant-stubs/const.pyi
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from .core import EventStateChangedData as EventStateChangedData, EventStateReportedData as EventStateReportedData
|
|
2
|
+
from .generated.entity_platforms import EntityPlatforms as EntityPlatforms
|
|
2
3
|
from .helpers.deprecation import DeprecatedConstant as DeprecatedConstant, DeprecatedConstantEnum as DeprecatedConstantEnum, EnumWithDeprecatedMembers as EnumWithDeprecatedMembers, all_with_deprecated_constants as all_with_deprecated_constants, check_if_deprecated_constant as check_if_deprecated_constant, dir_with_deprecated_constants as dir_with_deprecated_constants
|
|
3
4
|
from .helpers.typing import NoEventData as NoEventData
|
|
4
5
|
from .util.event_type import EventType as EventType
|
|
@@ -18,52 +19,7 @@ REQUIRED_PYTHON_VER: Final[tuple[int, int, int]]
|
|
|
18
19
|
REQUIRED_NEXT_PYTHON_VER: Final[tuple[int, int, int]]
|
|
19
20
|
REQUIRED_NEXT_PYTHON_HA_RELEASE: Final[str]
|
|
20
21
|
PLATFORM_FORMAT: Final[str]
|
|
21
|
-
|
|
22
|
-
class Platform(StrEnum):
|
|
23
|
-
AI_TASK = 'ai_task'
|
|
24
|
-
AIR_QUALITY = 'air_quality'
|
|
25
|
-
ALARM_CONTROL_PANEL = 'alarm_control_panel'
|
|
26
|
-
ASSIST_SATELLITE = 'assist_satellite'
|
|
27
|
-
BINARY_SENSOR = 'binary_sensor'
|
|
28
|
-
BUTTON = 'button'
|
|
29
|
-
CALENDAR = 'calendar'
|
|
30
|
-
CAMERA = 'camera'
|
|
31
|
-
CLIMATE = 'climate'
|
|
32
|
-
CONVERSATION = 'conversation'
|
|
33
|
-
COVER = 'cover'
|
|
34
|
-
DATE = 'date'
|
|
35
|
-
DATETIME = 'datetime'
|
|
36
|
-
DEVICE_TRACKER = 'device_tracker'
|
|
37
|
-
EVENT = 'event'
|
|
38
|
-
FAN = 'fan'
|
|
39
|
-
GEO_LOCATION = 'geo_location'
|
|
40
|
-
HUMIDIFIER = 'humidifier'
|
|
41
|
-
IMAGE = 'image'
|
|
42
|
-
IMAGE_PROCESSING = 'image_processing'
|
|
43
|
-
LAWN_MOWER = 'lawn_mower'
|
|
44
|
-
LIGHT = 'light'
|
|
45
|
-
LOCK = 'lock'
|
|
46
|
-
MEDIA_PLAYER = 'media_player'
|
|
47
|
-
NOTIFY = 'notify'
|
|
48
|
-
NUMBER = 'number'
|
|
49
|
-
REMOTE = 'remote'
|
|
50
|
-
SCENE = 'scene'
|
|
51
|
-
SELECT = 'select'
|
|
52
|
-
SENSOR = 'sensor'
|
|
53
|
-
SIREN = 'siren'
|
|
54
|
-
STT = 'stt'
|
|
55
|
-
SWITCH = 'switch'
|
|
56
|
-
TEXT = 'text'
|
|
57
|
-
TIME = 'time'
|
|
58
|
-
TODO = 'todo'
|
|
59
|
-
TTS = 'tts'
|
|
60
|
-
UPDATE = 'update'
|
|
61
|
-
VACUUM = 'vacuum'
|
|
62
|
-
VALVE = 'valve'
|
|
63
|
-
WAKE_WORD = 'wake_word'
|
|
64
|
-
WATER_HEATER = 'water_heater'
|
|
65
|
-
WEATHER = 'weather'
|
|
66
|
-
|
|
22
|
+
Platform = EntityPlatforms
|
|
67
23
|
BASE_PLATFORMS: Final[Incomplete]
|
|
68
24
|
MATCH_ALL: Final[str]
|
|
69
25
|
ENTITY_MATCH_NONE: Final[str]
|
|
@@ -196,6 +152,7 @@ CONF_MONITORED_VARIABLES: Final[str]
|
|
|
196
152
|
CONF_NAME: Final[str]
|
|
197
153
|
CONF_OFFSET: Final[str]
|
|
198
154
|
CONF_OPTIMISTIC: Final[str]
|
|
155
|
+
CONF_OPTIONS: Final[str]
|
|
199
156
|
CONF_PACKAGES: Final[str]
|
|
200
157
|
CONF_PARALLEL: Final[str]
|
|
201
158
|
CONF_PARAMS: Final[str]
|
|
@@ -395,6 +352,7 @@ ATTR_PERSONS: Final[str]
|
|
|
395
352
|
class UnitOfApparentPower(StrEnum):
|
|
396
353
|
MILLIVOLT_AMPERE = 'mVA'
|
|
397
354
|
VOLT_AMPERE = 'VA'
|
|
355
|
+
KILO_VOLT_AMPERE = 'kVA'
|
|
398
356
|
|
|
399
357
|
class UnitOfPower(StrEnum):
|
|
400
358
|
MILLIWATT = 'mW'
|
|
@@ -496,6 +454,7 @@ class UnitOfPressure(StrEnum):
|
|
|
496
454
|
MBAR = 'mbar'
|
|
497
455
|
MMHG = 'mmHg'
|
|
498
456
|
INHG = 'inHg'
|
|
457
|
+
INH2O = 'inH₂O'
|
|
499
458
|
PSI = 'psi'
|
|
500
459
|
|
|
501
460
|
class UnitOfSoundPressure(StrEnum):
|
|
@@ -505,6 +464,7 @@ class UnitOfSoundPressure(StrEnum):
|
|
|
505
464
|
class UnitOfVolume(StrEnum):
|
|
506
465
|
CUBIC_FEET = 'ft³'
|
|
507
466
|
CENTUM_CUBIC_FEET = 'CCF'
|
|
467
|
+
MILLE_CUBIC_FEET = 'MCF'
|
|
508
468
|
CUBIC_METERS = 'm³'
|
|
509
469
|
LITERS = 'L'
|
|
510
470
|
MILLILITERS = 'mL'
|
|
@@ -590,6 +550,7 @@ class UnitOfSpeed(StrEnum):
|
|
|
590
550
|
BEAUFORT = 'Beaufort'
|
|
591
551
|
FEET_PER_SECOND = 'ft/s'
|
|
592
552
|
INCHES_PER_SECOND = 'in/s'
|
|
553
|
+
METERS_PER_MINUTE = 'm/min'
|
|
593
554
|
METERS_PER_SECOND = 'm/s'
|
|
594
555
|
KILOMETERS_PER_HOUR = 'km/h'
|
|
595
556
|
KNOTS = 'kn'
|
|
@@ -7,10 +7,10 @@ from .helpers.frame import ReportBehavior as ReportBehavior, report_usage as rep
|
|
|
7
7
|
from .loader import async_suggest_report_issue as async_suggest_report_issue
|
|
8
8
|
from _typeshed import Incomplete
|
|
9
9
|
from collections import defaultdict
|
|
10
|
-
from collections.abc import Callable
|
|
10
|
+
from collections.abc import Callable, Container, Coroutine, Hashable, Iterable, Mapping
|
|
11
11
|
from dataclasses import dataclass
|
|
12
12
|
from enum import StrEnum
|
|
13
|
-
from typing import Any, Generic, Required, TypeVar, TypedDict
|
|
13
|
+
from typing import Any, Concatenate, Generic, Required, TypeVar, TypedDict
|
|
14
14
|
|
|
15
15
|
_LOGGER: Incomplete
|
|
16
16
|
|
|
@@ -69,12 +69,19 @@ class FlowResult(TypedDict, Generic[_FlowContextT, _HandlerT], total=False):
|
|
|
69
69
|
progress_task: asyncio.Task[Any] | None
|
|
70
70
|
reason: str
|
|
71
71
|
required: bool
|
|
72
|
+
sort: bool
|
|
72
73
|
step_id: str
|
|
73
74
|
title: str
|
|
74
75
|
translation_domain: str
|
|
75
76
|
type: FlowResultType
|
|
76
77
|
url: str
|
|
77
78
|
|
|
79
|
+
class ProgressStepData[_FlowResultT](TypedDict):
|
|
80
|
+
tasks: dict[str, asyncio.Task[Any]]
|
|
81
|
+
abort_reason: str
|
|
82
|
+
abort_description_placeholders: Mapping[str, str]
|
|
83
|
+
next_step_result: _FlowResultT | None
|
|
84
|
+
|
|
78
85
|
def _map_error_to_schema_errors(schema_errors: dict[str, Any], error: vol.Invalid, data_schema: vol.Schema) -> None: ...
|
|
79
86
|
|
|
80
87
|
class FlowManager(abc.ABC, Generic[_FlowContextT, _FlowResultT, _HandlerT], metaclass=abc.ABCMeta):
|
|
@@ -132,6 +139,7 @@ class FlowHandler(Generic[_FlowContextT, _FlowResultT, _HandlerT]):
|
|
|
132
139
|
__progress_task: asyncio.Task[Any] | None
|
|
133
140
|
__no_progress_task_reported: bool
|
|
134
141
|
deprecated_show_progress: bool
|
|
142
|
+
_progress_step_data: ProgressStepData[_FlowResultT]
|
|
135
143
|
@property
|
|
136
144
|
def source(self) -> str | None: ...
|
|
137
145
|
@property
|
|
@@ -143,6 +151,8 @@ class FlowHandler(Generic[_FlowContextT, _FlowResultT, _HandlerT]):
|
|
|
143
151
|
def async_create_entry(self, *, title: str | None = None, data: Mapping[str, Any], description: str | None = None, description_placeholders: Mapping[str, str] | None = None) -> _FlowResultT: ...
|
|
144
152
|
@callback
|
|
145
153
|
def async_abort(self, *, reason: str, description_placeholders: Mapping[str, str] | None = None) -> _FlowResultT: ...
|
|
154
|
+
async def async_step__progress_step_abort(self, user_input: dict[str, Any] | None = None) -> _FlowResultT: ...
|
|
155
|
+
async def async_step__progress_step_progress_done(self, user_input: dict[str, Any] | None = None) -> _FlowResultT: ...
|
|
146
156
|
@callback
|
|
147
157
|
def async_external_step(self, *, step_id: str | None = None, url: str, description_placeholders: Mapping[str, str] | None = None) -> _FlowResultT: ...
|
|
148
158
|
@callback
|
|
@@ -154,7 +164,7 @@ class FlowHandler(Generic[_FlowContextT, _FlowResultT, _HandlerT]):
|
|
|
154
164
|
@callback
|
|
155
165
|
def async_show_progress_done(self, *, next_step_id: str) -> _FlowResultT: ...
|
|
156
166
|
@callback
|
|
157
|
-
def async_show_menu(self, *, step_id: str | None = None, menu_options: Container[str], description_placeholders: Mapping[str, str] | None = None) -> _FlowResultT: ...
|
|
167
|
+
def async_show_menu(self, *, step_id: str | None = None, menu_options: Container[str], sort: bool = False, description_placeholders: Mapping[str, str] | None = None) -> _FlowResultT: ...
|
|
158
168
|
@callback
|
|
159
169
|
def async_remove(self) -> None: ...
|
|
160
170
|
@staticmethod
|
|
@@ -175,3 +185,6 @@ class section:
|
|
|
175
185
|
options: SectionConfig
|
|
176
186
|
def __init__(self, schema: vol.Schema, options: SectionConfig | None = None) -> None: ...
|
|
177
187
|
def __call__(self, value: Any) -> Any: ...
|
|
188
|
+
type _FuncType[_T: FlowHandler[Any, Any, Any], _R: FlowResult[Any, Any], **_P] = Callable[Concatenate[_T, _P], Coroutine[Any, Any, _R]]
|
|
189
|
+
|
|
190
|
+
def progress_step[HandlerT: FlowHandler[Any, Any, Any], ResultT: FlowResult[Any, Any], **P](description_placeholders: dict[str, str] | Callable[[Any], dict[str, str]] | None = None) -> Callable[[_FuncType[HandlerT, ResultT, P]], _FuncType[HandlerT, ResultT, P]]: ...
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
from enum import StrEnum
|
|
2
|
+
|
|
3
|
+
class EntityPlatforms(StrEnum):
|
|
4
|
+
AI_TASK = 'ai_task'
|
|
5
|
+
AIR_QUALITY = 'air_quality'
|
|
6
|
+
ALARM_CONTROL_PANEL = 'alarm_control_panel'
|
|
7
|
+
ASSIST_SATELLITE = 'assist_satellite'
|
|
8
|
+
BINARY_SENSOR = 'binary_sensor'
|
|
9
|
+
BUTTON = 'button'
|
|
10
|
+
CALENDAR = 'calendar'
|
|
11
|
+
CAMERA = 'camera'
|
|
12
|
+
CLIMATE = 'climate'
|
|
13
|
+
CONVERSATION = 'conversation'
|
|
14
|
+
COVER = 'cover'
|
|
15
|
+
DATE = 'date'
|
|
16
|
+
DATETIME = 'datetime'
|
|
17
|
+
DEVICE_TRACKER = 'device_tracker'
|
|
18
|
+
EVENT = 'event'
|
|
19
|
+
FAN = 'fan'
|
|
20
|
+
GEO_LOCATION = 'geo_location'
|
|
21
|
+
HUMIDIFIER = 'humidifier'
|
|
22
|
+
IMAGE = 'image'
|
|
23
|
+
IMAGE_PROCESSING = 'image_processing'
|
|
24
|
+
LAWN_MOWER = 'lawn_mower'
|
|
25
|
+
LIGHT = 'light'
|
|
26
|
+
LOCK = 'lock'
|
|
27
|
+
MEDIA_PLAYER = 'media_player'
|
|
28
|
+
NOTIFY = 'notify'
|
|
29
|
+
NUMBER = 'number'
|
|
30
|
+
REMOTE = 'remote'
|
|
31
|
+
SCENE = 'scene'
|
|
32
|
+
SELECT = 'select'
|
|
33
|
+
SENSOR = 'sensor'
|
|
34
|
+
SIREN = 'siren'
|
|
35
|
+
STT = 'stt'
|
|
36
|
+
SWITCH = 'switch'
|
|
37
|
+
TEXT = 'text'
|
|
38
|
+
TIME = 'time'
|
|
39
|
+
TODO = 'todo'
|
|
40
|
+
TTS = 'tts'
|
|
41
|
+
UPDATE = 'update'
|
|
42
|
+
VACUUM = 'vacuum'
|
|
43
|
+
VALVE = 'valve'
|
|
44
|
+
WAKE_WORD = 'wake_word'
|
|
45
|
+
WATER_HEATER = 'water_heater'
|
|
46
|
+
WEATHER = 'weather'
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import abc
|
|
2
2
|
import logging
|
|
3
|
+
from . import selector as selector
|
|
3
4
|
from .automation import get_absolute_description_key as get_absolute_description_key, get_relative_description_key as get_relative_description_key
|
|
4
5
|
from .integration_platform import async_process_integration_platforms as async_process_integration_platforms
|
|
6
|
+
from .selector import TargetSelector as TargetSelector
|
|
5
7
|
from .template import Template as Template, render_complex as render_complex
|
|
6
8
|
from .trace import TraceElement as TraceElement, trace_append_element as trace_append_element, trace_path as trace_path, trace_path_get as trace_path_get, trace_stack_cv as trace_stack_cv, trace_stack_pop as trace_stack_pop, trace_stack_push as trace_stack_push, trace_stack_top as trace_stack_top
|
|
7
9
|
from .typing import ConfigType as ConfigType, TemplateVarsType as TemplateVarsType
|
|
@@ -9,7 +11,7 @@ from _typeshed import Incomplete
|
|
|
9
11
|
from collections.abc import Callable, Container, Coroutine, Generator, Iterable
|
|
10
12
|
from contextlib import contextmanager
|
|
11
13
|
from datetime import time as dt_time, timedelta
|
|
12
|
-
from homeassistant.const import ATTR_DEVICE_CLASS as ATTR_DEVICE_CLASS, CONF_ABOVE as CONF_ABOVE, CONF_AFTER as CONF_AFTER, CONF_ATTRIBUTE as CONF_ATTRIBUTE, CONF_BEFORE as CONF_BEFORE, CONF_BELOW as CONF_BELOW, CONF_CONDITION as CONF_CONDITION, CONF_DEVICE_ID as CONF_DEVICE_ID, CONF_ENABLED as CONF_ENABLED, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_FOR as CONF_FOR, CONF_ID as CONF_ID, CONF_MATCH as CONF_MATCH, CONF_STATE as CONF_STATE, CONF_VALUE_TEMPLATE as CONF_VALUE_TEMPLATE, CONF_WEEKDAY as CONF_WEEKDAY, ENTITY_MATCH_ALL as ENTITY_MATCH_ALL, ENTITY_MATCH_ANY as ENTITY_MATCH_ANY, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN, WEEKDAYS as WEEKDAYS
|
|
14
|
+
from homeassistant.const import ATTR_DEVICE_CLASS as ATTR_DEVICE_CLASS, CONF_ABOVE as CONF_ABOVE, CONF_AFTER as CONF_AFTER, CONF_ATTRIBUTE as CONF_ATTRIBUTE, CONF_BEFORE as CONF_BEFORE, CONF_BELOW as CONF_BELOW, CONF_CONDITION as CONF_CONDITION, CONF_DEVICE_ID as CONF_DEVICE_ID, CONF_ENABLED as CONF_ENABLED, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_FOR as CONF_FOR, CONF_ID as CONF_ID, CONF_MATCH as CONF_MATCH, CONF_SELECTOR as CONF_SELECTOR, CONF_STATE as CONF_STATE, CONF_VALUE_TEMPLATE as CONF_VALUE_TEMPLATE, CONF_WEEKDAY as CONF_WEEKDAY, ENTITY_MATCH_ALL as ENTITY_MATCH_ALL, ENTITY_MATCH_ANY as ENTITY_MATCH_ANY, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN, WEEKDAYS as WEEKDAYS
|
|
13
15
|
from homeassistant.core import HomeAssistant as HomeAssistant, State as State, callback as callback
|
|
14
16
|
from homeassistant.exceptions import ConditionError as ConditionError, ConditionErrorContainer as ConditionErrorContainer, ConditionErrorIndex as ConditionErrorIndex, ConditionErrorMessage as ConditionErrorMessage, HomeAssistantError as HomeAssistantError, TemplateError as TemplateError
|
|
15
17
|
from homeassistant.loader import Integration as Integration, IntegrationNotFound as IntegrationNotFound, async_get_integration as async_get_integration, async_get_integrations as async_get_integrations
|
|
@@ -149,7 +149,7 @@ def deprecated(key: str, replacement_key: str | None = None, default: Any | None
|
|
|
149
149
|
def removed(key: str, default: Any | None = None, raise_if_present: bool | None = True) -> Callable[[dict], dict]: ...
|
|
150
150
|
def renamed(old_key: str, new_key: str) -> Callable[[Any], Any]: ...
|
|
151
151
|
type ValueSchemas = dict[Hashable, VolSchemaType | Callable[[Any], dict[str, Any]]]
|
|
152
|
-
def key_value_schemas(key: str, value_schemas: ValueSchemas, default_schema: VolSchemaType | Callable[[Any], dict[str, Any]] | None = None, default_description: str | None = None) -> Callable[[Any], dict[Hashable, Any]]: ...
|
|
152
|
+
def key_value_schemas(key: str, value_schemas: ValueSchemas, default_schema: VolSchemaType | Callable[[Any], dict[str, Any]] | None = None, default_description: str | None = None, list_alternatives: bool = True) -> Callable[[Any], dict[Hashable, Any]]: ...
|
|
153
153
|
def key_dependency[_KT: Hashable, _VT](key: Hashable, dependency: Hashable) -> Callable[[dict[_KT, _VT]], dict[_KT, _VT]]: ...
|
|
154
154
|
def custom_serializer(schema: Any) -> Any: ...
|
|
155
155
|
def _custom_serializer(schema: Any, *, allow_section: bool) -> Any: ...
|