homeassistant-stubs 2025.9.4__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 +8 -0
- 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/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.4.dist-info → homeassistant_stubs-2025.10.0b0.dist-info}/METADATA +2 -2
- {homeassistant_stubs-2025.9.4.dist-info → homeassistant_stubs-2025.10.0b0.dist-info}/RECORD +304 -246
- homeassistant-stubs/components/home_connect/time.pyi +0 -29
- {homeassistant_stubs-2025.9.4.dist-info → homeassistant_stubs-2025.10.0b0.dist-info}/WHEEL +0 -0
- {homeassistant_stubs-2025.9.4.dist-info → homeassistant_stubs-2025.10.0b0.dist-info}/licenses/LICENSE +0 -0
|
@@ -7,12 +7,13 @@ from _typeshed import Incomplete
|
|
|
7
7
|
from bleak_retry_connector import BleakSlotManager as BleakSlotManager
|
|
8
8
|
from bluetooth_adapters import BluetoothAdapters as BluetoothAdapters
|
|
9
9
|
from collections.abc import Callable as Callable
|
|
10
|
-
from habluetooth import BaseHaScanner as BaseHaScanner, BluetoothManager
|
|
10
|
+
from habluetooth import BaseHaScanner as BaseHaScanner, BluetoothManager, HaScanner
|
|
11
11
|
from homeassistant import config_entries as config_entries
|
|
12
12
|
from homeassistant.const import EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP, EVENT_LOGGING_CHANGED as EVENT_LOGGING_CHANGED
|
|
13
13
|
from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Event as Event, HomeAssistant as HomeAssistant, callback as hass_callback
|
|
14
14
|
from homeassistant.helpers import discovery_flow as discovery_flow
|
|
15
15
|
from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
|
|
16
|
+
from homeassistant.util.package import is_docker_env as is_docker_env
|
|
16
17
|
|
|
17
18
|
_LOGGER: Incomplete
|
|
18
19
|
|
|
@@ -46,3 +47,8 @@ class HomeAssistantBluetoothManager(BluetoothManager):
|
|
|
46
47
|
def async_remove_scanner(self, source: str) -> None: ...
|
|
47
48
|
@hass_callback
|
|
48
49
|
def _handle_config_entry_removed(self, entry: config_entries.ConfigEntry) -> None: ...
|
|
50
|
+
def on_scanner_start(self, scanner: BaseHaScanner) -> None: ...
|
|
51
|
+
@hass_callback
|
|
52
|
+
def async_check_scanning_mode(self, scanner: HaScanner) -> None: ...
|
|
53
|
+
@hass_callback
|
|
54
|
+
def async_check_degraded_mode(self, scanner: HaScanner) -> None: ...
|
|
@@ -5,13 +5,15 @@ from .models import BluetoothChange as BluetoothChange
|
|
|
5
5
|
from .util import InvalidConfigEntryID as InvalidConfigEntryID, InvalidSource as InvalidSource, config_entry_id_to_source as config_entry_id_to_source
|
|
6
6
|
from _typeshed import Incomplete
|
|
7
7
|
from collections.abc import Callable as Callable, Iterable
|
|
8
|
-
from habluetooth import HaBluetoothSlotAllocations as HaBluetoothSlotAllocations, HaScannerRegistration as HaScannerRegistration
|
|
8
|
+
from habluetooth import BaseHaScanner as BaseHaScanner, HaBluetoothSlotAllocations as HaBluetoothSlotAllocations, HaScannerModeChange as HaScannerModeChange, HaScannerRegistration as HaScannerRegistration
|
|
9
9
|
from home_assistant_bluetooth import BluetoothServiceInfoBleak as BluetoothServiceInfoBleak
|
|
10
10
|
from homeassistant.components import websocket_api as websocket_api
|
|
11
11
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
|
12
12
|
from homeassistant.helpers.json import json_bytes as json_bytes
|
|
13
13
|
from typing import Any
|
|
14
14
|
|
|
15
|
+
@callback
|
|
16
|
+
def _async_get_source_from_config_entry(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg_id: int, config_entry_id: str | None, validate_source: bool = True) -> str | None: ...
|
|
15
17
|
@callback
|
|
16
18
|
def async_setup(hass: HomeAssistant) -> None: ...
|
|
17
19
|
def serialize_service_info(service_info: BluetoothServiceInfoBleak, time_diff: float) -> dict[str, Any]: ...
|
|
@@ -44,3 +46,6 @@ async def ws_subscribe_connection_allocations(hass: HomeAssistant, connection: w
|
|
|
44
46
|
@websocket_api.require_admin
|
|
45
47
|
@websocket_api.async_response
|
|
46
48
|
async def ws_subscribe_scanner_details(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
|
|
49
|
+
@websocket_api.require_admin
|
|
50
|
+
@websocket_api.async_response
|
|
51
|
+
async def ws_subscribe_scanner_state(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
from .const import DOMAIN as DOMAIN
|
|
1
|
+
from .const import CONF_COMMUNITY as CONF_COMMUNITY, DEFAULT_COMMUNITY as DEFAULT_COMMUNITY, DEFAULT_PORT as DEFAULT_PORT, DOMAIN as DOMAIN, SECTION_ADVANCED_SETTINGS as SECTION_ADVANCED_SETTINGS
|
|
2
2
|
from .coordinator import BrotherConfigEntry as BrotherConfigEntry, BrotherDataUpdateCoordinator as BrotherDataUpdateCoordinator
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
4
|
from homeassistant.components.snmp import async_get_snmp_engine as async_get_snmp_engine
|
|
5
|
-
from homeassistant.const import CONF_HOST as CONF_HOST, CONF_TYPE as CONF_TYPE, Platform as Platform
|
|
5
|
+
from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PORT as CONF_PORT, CONF_TYPE as CONF_TYPE, Platform as Platform
|
|
6
6
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
7
7
|
from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
|
|
8
8
|
|
|
9
|
+
_LOGGER: Incomplete
|
|
9
10
|
PLATFORMS: Incomplete
|
|
10
11
|
|
|
11
12
|
async def async_setup_entry(hass: HomeAssistant, entry: BrotherConfigEntry) -> bool: ...
|
|
12
13
|
async def async_unload_entry(hass: HomeAssistant, entry: BrotherConfigEntry) -> bool: ...
|
|
14
|
+
async def async_migrate_entry(hass: HomeAssistant, entry: BrotherConfigEntry) -> bool: ...
|
|
@@ -1,22 +1,25 @@
|
|
|
1
|
-
from .const import DOMAIN as DOMAIN, PRINTER_TYPES as PRINTER_TYPES
|
|
1
|
+
from .const import CONF_COMMUNITY as CONF_COMMUNITY, DEFAULT_COMMUNITY as DEFAULT_COMMUNITY, DEFAULT_PORT as DEFAULT_PORT, DOMAIN as DOMAIN, PRINTER_TYPES as PRINTER_TYPES, SECTION_ADVANCED_SETTINGS as SECTION_ADVANCED_SETTINGS
|
|
2
2
|
from _typeshed import Incomplete
|
|
3
3
|
from brother import Brother
|
|
4
4
|
from homeassistant.components.snmp import async_get_snmp_engine as async_get_snmp_engine
|
|
5
5
|
from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
|
|
6
|
-
from homeassistant.const import CONF_HOST as CONF_HOST, CONF_TYPE as CONF_TYPE
|
|
6
|
+
from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PORT as CONF_PORT, CONF_TYPE as CONF_TYPE
|
|
7
7
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
8
|
+
from homeassistant.data_entry_flow import section as section
|
|
8
9
|
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
|
|
9
10
|
from homeassistant.helpers.service_info.zeroconf import ZeroconfServiceInfo as ZeroconfServiceInfo
|
|
10
11
|
from homeassistant.util.network import is_host_valid as is_host_valid
|
|
11
12
|
from typing import Any
|
|
12
13
|
|
|
13
14
|
DATA_SCHEMA: Incomplete
|
|
15
|
+
ZEROCONF_SCHEMA: Incomplete
|
|
14
16
|
RECONFIGURE_SCHEMA: Incomplete
|
|
15
17
|
|
|
16
18
|
async def validate_input(hass: HomeAssistant, user_input: dict[str, Any], expected_mac: str | None = None) -> tuple[str, str]: ...
|
|
17
19
|
|
|
18
20
|
class BrotherConfigFlow(ConfigFlow, domain=DOMAIN):
|
|
19
21
|
VERSION: int
|
|
22
|
+
MINOR_VERSION: int
|
|
20
23
|
brother: Brother
|
|
21
24
|
host: str | None
|
|
22
25
|
def __init__(self) -> None: ...
|
|
@@ -5,7 +5,7 @@ from _typeshed import Incomplete
|
|
|
5
5
|
from bthome_ble import SensorUpdate as SensorUpdate
|
|
6
6
|
from homeassistant.components.bluetooth.passive_update_processor import PassiveBluetoothDataUpdate as PassiveBluetoothDataUpdate, PassiveBluetoothProcessorEntity as PassiveBluetoothProcessorEntity
|
|
7
7
|
from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
|
|
8
|
-
from homeassistant.const import CONCENTRATION_MICROGRAMS_PER_CUBIC_METER as CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, DEGREE as DEGREE, EntityCategory as EntityCategory, LIGHT_LUX as LIGHT_LUX, PERCENTAGE as PERCENTAGE, SIGNAL_STRENGTH_DECIBELS_MILLIWATT as SIGNAL_STRENGTH_DECIBELS_MILLIWATT, UnitOfConductivity as UnitOfConductivity, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfLength as UnitOfLength, UnitOfMass as UnitOfMass, UnitOfPower as UnitOfPower, UnitOfPressure as UnitOfPressure, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime, UnitOfVolume as UnitOfVolume, UnitOfVolumeFlowRate as UnitOfVolumeFlowRate
|
|
8
|
+
from homeassistant.const import CONCENTRATION_MICROGRAMS_PER_CUBIC_METER as CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, DEGREE as DEGREE, EntityCategory as EntityCategory, LIGHT_LUX as LIGHT_LUX, PERCENTAGE as PERCENTAGE, REVOLUTIONS_PER_MINUTE as REVOLUTIONS_PER_MINUTE, SIGNAL_STRENGTH_DECIBELS_MILLIWATT as SIGNAL_STRENGTH_DECIBELS_MILLIWATT, UnitOfConductivity as UnitOfConductivity, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfLength as UnitOfLength, UnitOfMass as UnitOfMass, UnitOfPower as UnitOfPower, UnitOfPressure as UnitOfPressure, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime, UnitOfVolume as UnitOfVolume, UnitOfVolumeFlowRate as UnitOfVolumeFlowRate
|
|
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.sensor import sensor_device_info_to_hass_device_info as sensor_device_info_to_hass_device_info
|
|
@@ -3,7 +3,7 @@ import collections
|
|
|
3
3
|
from .const import CAMERA_IMAGE_TIMEOUT as CAMERA_IMAGE_TIMEOUT, CAMERA_STREAM_SOURCE_TIMEOUT as CAMERA_STREAM_SOURCE_TIMEOUT, CONF_DURATION as CONF_DURATION, CONF_LOOKBACK as CONF_LOOKBACK, CameraState as CameraState, DATA_CAMERA_PREFS as DATA_CAMERA_PREFS, DATA_COMPONENT as DATA_COMPONENT, DOMAIN as DOMAIN, PREF_ORIENTATION as PREF_ORIENTATION, PREF_PRELOAD_STREAM as PREF_PRELOAD_STREAM, SERVICE_RECORD as SERVICE_RECORD, StreamType as StreamType
|
|
4
4
|
from .helper import get_camera_from_entity_id as get_camera_from_entity_id
|
|
5
5
|
from .img_util import scale_jpeg_camera_image as scale_jpeg_camera_image
|
|
6
|
-
from .prefs import CameraPreferences as CameraPreferences, DynamicStreamSettings as DynamicStreamSettings
|
|
6
|
+
from .prefs import CameraPreferences as CameraPreferences, DynamicStreamSettings as DynamicStreamSettings, get_dynamic_camera_stream_settings as get_dynamic_camera_stream_settings
|
|
7
7
|
from .webrtc import CameraWebRTCProvider as CameraWebRTCProvider, DATA_ICE_SERVERS as DATA_ICE_SERVERS, WebRTCAnswer as WebRTCAnswer, WebRTCCandidate as WebRTCCandidate, WebRTCClientConfiguration as WebRTCClientConfiguration, WebRTCError as WebRTCError, WebRTCMessage as WebRTCMessage, WebRTCSendMessage as WebRTCSendMessage, async_get_supported_provider as async_get_supported_provider, async_register_ice_servers as async_register_ice_servers, async_register_webrtc_provider as async_register_webrtc_provider, async_register_ws as async_register_ws
|
|
8
8
|
from _typeshed import Incomplete
|
|
9
9
|
from aiohttp import web
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from .const import DOMAIN as DOMAIN, PREF_ORIENTATION as PREF_ORIENTATION, PREF_PRELOAD_STREAM as PREF_PRELOAD_STREAM
|
|
1
|
+
from .const import DATA_CAMERA_PREFS as DATA_CAMERA_PREFS, DOMAIN as DOMAIN, PREF_ORIENTATION as PREF_ORIENTATION, PREF_PRELOAD_STREAM as PREF_PRELOAD_STREAM
|
|
2
2
|
from _typeshed import Incomplete
|
|
3
3
|
from dataclasses import dataclass
|
|
4
4
|
from homeassistant.components.stream import Orientation as Orientation
|
|
@@ -25,3 +25,5 @@ class CameraPreferences:
|
|
|
25
25
|
async def async_load(self) -> None: ...
|
|
26
26
|
async def async_update(self, entity_id: str, *, preload_stream: bool | UndefinedType = ..., orientation: Orientation | UndefinedType = ...) -> dict[str, bool | Orientation]: ...
|
|
27
27
|
async def get_dynamic_stream_settings(self, entity_id: str) -> DynamicStreamSettings: ...
|
|
28
|
+
|
|
29
|
+
async def get_dynamic_camera_stream_settings(hass: HomeAssistant, entity_id: str) -> DynamicStreamSettings: ...
|
|
@@ -17,6 +17,7 @@ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callb
|
|
|
17
17
|
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
|
|
18
18
|
from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
|
|
19
19
|
from homeassistant.helpers.dispatcher import async_dispatcher_send as async_dispatcher_send
|
|
20
|
+
from homeassistant.loader import async_get_custom_components as async_get_custom_components, async_get_loaded_integration as async_get_loaded_integration
|
|
20
21
|
from homeassistant.util.location import async_detect_location_info as async_detect_location_info
|
|
21
22
|
from http import HTTPStatus
|
|
22
23
|
from typing import Any, Concatenate
|
|
@@ -82,6 +83,7 @@ class CloudForgotPasswordView(HomeAssistantView):
|
|
|
82
83
|
class DownloadSupportPackageView(HomeAssistantView):
|
|
83
84
|
url: str
|
|
84
85
|
name: str
|
|
86
|
+
async def _get_integration_info(self, hass: HomeAssistant) -> dict[str, Any]: ...
|
|
85
87
|
async def _generate_markdown(self, hass: HomeAssistant, hass_info: dict[str, Any], domains_info: dict[str, dict[str, str]]) -> str: ...
|
|
86
88
|
async def get(self, request: web.Request) -> web.Response: ...
|
|
87
89
|
|
|
@@ -9,7 +9,7 @@ from homeassistant.core import HomeAssistant as HomeAssistant
|
|
|
9
9
|
from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed
|
|
10
10
|
from homeassistant.helpers import device_registry as dr
|
|
11
11
|
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
|
|
12
|
-
from typing import TypeVar
|
|
12
|
+
from typing import Any, TypeVar
|
|
13
13
|
|
|
14
14
|
type ComelitConfigEntry = ConfigEntry[ComelitBaseCoordinator]
|
|
15
15
|
T = TypeVar('T', bound=dict[str, dict[int, ComelitSerialBridgeObject]] | AlarmDataObject)
|
|
@@ -25,6 +25,7 @@ class ComelitBaseCoordinator(DataUpdateCoordinator[T], metaclass=abc.ABCMeta):
|
|
|
25
25
|
async def _async_update_data(self) -> T: ...
|
|
26
26
|
@abstractmethod
|
|
27
27
|
async def _async_update_system_data(self) -> T: ...
|
|
28
|
+
async def _async_remove_stale_devices(self, previous_list: dict[int, Any], current_list: dict[int, Any], dev_type: str) -> None: ...
|
|
28
29
|
|
|
29
30
|
class ComelitSerialBridge(ComelitBaseCoordinator[dict[str, dict[int, ComelitSerialBridgeObject]]]):
|
|
30
31
|
_hw_version: str
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from .coordinator import ComelitConfigEntry as ComelitConfigEntry, ComelitSerialBridge as ComelitSerialBridge, ComelitVedoSystem as ComelitVedoSystem
|
|
2
2
|
from .entity import ComelitBridgeBaseEntity as ComelitBridgeBaseEntity
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
|
-
from aiocomelit import ComelitSerialBridgeObject as ComelitSerialBridgeObject, ComelitVedoZoneObject as ComelitVedoZoneObject
|
|
4
|
+
from aiocomelit.api import ComelitSerialBridgeObject as ComelitSerialBridgeObject, ComelitVedoZoneObject as ComelitVedoZoneObject
|
|
5
5
|
from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription
|
|
6
6
|
from homeassistant.const import CONF_TYPE as CONF_TYPE, UnitOfPower as UnitOfPower
|
|
7
7
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from .coordinator import CompitConfigEntry as CompitConfigEntry, CompitDataUpdateCoordinator as CompitDataUpdateCoordinator
|
|
2
|
+
from _typeshed import Incomplete
|
|
3
|
+
from homeassistant.const import CONF_EMAIL as CONF_EMAIL, CONF_PASSWORD as CONF_PASSWORD, Platform as Platform
|
|
4
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
5
|
+
from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
|
|
6
|
+
from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
|
|
7
|
+
|
|
8
|
+
PLATFORMS: Incomplete
|
|
9
|
+
|
|
10
|
+
async def async_setup_entry(hass: HomeAssistant, entry: CompitConfigEntry) -> bool: ...
|
|
11
|
+
async def async_unload_entry(hass: HomeAssistant, entry: CompitConfigEntry) -> bool: ...
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
from .const import DOMAIN as DOMAIN, MANUFACTURER_NAME as MANUFACTURER_NAME
|
|
3
|
+
from .coordinator import CompitConfigEntry as CompitConfigEntry, CompitDataUpdateCoordinator as CompitDataUpdateCoordinator
|
|
4
|
+
from _typeshed import Incomplete
|
|
5
|
+
from compit_inext_api import Param as Param, Parameter as Parameter
|
|
6
|
+
from compit_inext_api.consts import CompitParameter
|
|
7
|
+
from homeassistant.components.climate import ClimateEntity as ClimateEntity, ClimateEntityFeature as ClimateEntityFeature, FAN_AUTO as FAN_AUTO, FAN_HIGH as FAN_HIGH, FAN_LOW as FAN_LOW, FAN_MEDIUM as FAN_MEDIUM, FAN_OFF as FAN_OFF, HVACMode as HVACMode, PRESET_AWAY as PRESET_AWAY, PRESET_ECO as PRESET_ECO, PRESET_HOME as PRESET_HOME, PRESET_NONE as PRESET_NONE
|
|
8
|
+
from homeassistant.const import ATTR_TEMPERATURE as ATTR_TEMPERATURE, UnitOfTemperature as UnitOfTemperature
|
|
9
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
10
|
+
from homeassistant.exceptions import ServiceValidationError as ServiceValidationError
|
|
11
|
+
from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
|
|
12
|
+
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
13
|
+
from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
|
|
14
|
+
from propcache.api import cached_property
|
|
15
|
+
from typing import Any
|
|
16
|
+
|
|
17
|
+
_LOGGER: logging.Logger
|
|
18
|
+
CLIMATE_DEVICE_CLASS: int
|
|
19
|
+
PARALLEL_UPDATES: int
|
|
20
|
+
COMPIT_MODE_MAP: Incomplete
|
|
21
|
+
COMPIT_FANSPEED_MAP: Incomplete
|
|
22
|
+
COMPIT_PRESET_MAP: Incomplete
|
|
23
|
+
HVAC_MODE_TO_COMPIT_MODE: Incomplete
|
|
24
|
+
FAN_MODE_TO_COMPIT_FAN_MODE: Incomplete
|
|
25
|
+
PRESET_MODE_TO_COMPIT_PRESET_MODE: Incomplete
|
|
26
|
+
|
|
27
|
+
async def async_setup_entry(hass: HomeAssistant, entry: CompitConfigEntry, async_add_devices: AddConfigEntryEntitiesCallback) -> None: ...
|
|
28
|
+
|
|
29
|
+
class CompitClimate(CoordinatorEntity[CompitDataUpdateCoordinator], ClimateEntity):
|
|
30
|
+
_attr_temperature_unit: Incomplete
|
|
31
|
+
_attr_hvac_modes: Incomplete
|
|
32
|
+
_attr_name: Incomplete
|
|
33
|
+
_attr_has_entity_name: bool
|
|
34
|
+
_attr_supported_features: Incomplete
|
|
35
|
+
_attr_unique_id: Incomplete
|
|
36
|
+
_attr_device_info: Incomplete
|
|
37
|
+
parameters: Incomplete
|
|
38
|
+
device_id: Incomplete
|
|
39
|
+
available_presets: Parameter | None
|
|
40
|
+
available_fan_modes: Parameter | None
|
|
41
|
+
def __init__(self, coordinator: CompitDataUpdateCoordinator, device_id: int, parameters: dict[str, Parameter], device_name: str) -> None: ...
|
|
42
|
+
@property
|
|
43
|
+
def available(self) -> bool: ...
|
|
44
|
+
@property
|
|
45
|
+
def current_temperature(self) -> float | None: ...
|
|
46
|
+
@property
|
|
47
|
+
def target_temperature(self) -> float | None: ...
|
|
48
|
+
@cached_property
|
|
49
|
+
def preset_modes(self) -> list[str] | None: ...
|
|
50
|
+
@cached_property
|
|
51
|
+
def fan_modes(self) -> list[str] | None: ...
|
|
52
|
+
@property
|
|
53
|
+
def preset_mode(self) -> str | None: ...
|
|
54
|
+
@property
|
|
55
|
+
def fan_mode(self) -> str | None: ...
|
|
56
|
+
@property
|
|
57
|
+
def hvac_mode(self) -> HVACMode | None: ...
|
|
58
|
+
async def async_set_temperature(self, **kwargs: Any) -> None: ...
|
|
59
|
+
async def async_set_hvac_mode(self, hvac_mode: HVACMode) -> None: ...
|
|
60
|
+
async def async_set_preset_mode(self, preset_mode: str) -> None: ...
|
|
61
|
+
async def async_set_fan_mode(self, fan_mode: str) -> None: ...
|
|
62
|
+
async def set_parameter_value(self, parameter: CompitParameter, value: int) -> None: ...
|
|
63
|
+
def get_parameter_value(self, parameter: CompitParameter) -> Param | None: ...
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from .const import DOMAIN as DOMAIN
|
|
2
|
+
from _typeshed import Incomplete
|
|
3
|
+
from collections.abc import Mapping
|
|
4
|
+
from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, SOURCE_REAUTH as SOURCE_REAUTH
|
|
5
|
+
from homeassistant.const import CONF_EMAIL as CONF_EMAIL, CONF_PASSWORD as CONF_PASSWORD
|
|
6
|
+
from homeassistant.helpers.aiohttp_client import async_create_clientsession as async_create_clientsession
|
|
7
|
+
from typing import Any
|
|
8
|
+
|
|
9
|
+
_LOGGER: Incomplete
|
|
10
|
+
STEP_USER_DATA_SCHEMA: Incomplete
|
|
11
|
+
STEP_REAUTH_SCHEMA: Incomplete
|
|
12
|
+
|
|
13
|
+
class CompitConfigFlow(ConfigFlow, domain=DOMAIN):
|
|
14
|
+
VERSION: int
|
|
15
|
+
async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
|
16
|
+
async def async_step_reauth(self, data: Mapping[str, Any]) -> ConfigFlowResult: ...
|
|
17
|
+
async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
from .const import DOMAIN as DOMAIN
|
|
3
|
+
from _typeshed import Incomplete
|
|
4
|
+
from compit_inext_api import CompitApiConnector as CompitApiConnector, DeviceInstance
|
|
5
|
+
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
6
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
7
|
+
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator
|
|
8
|
+
|
|
9
|
+
SCAN_INTERVAL: Incomplete
|
|
10
|
+
_LOGGER: logging.Logger
|
|
11
|
+
type CompitConfigEntry = ConfigEntry[CompitDataUpdateCoordinator]
|
|
12
|
+
|
|
13
|
+
class CompitDataUpdateCoordinator(DataUpdateCoordinator[dict[int, DeviceInstance]]):
|
|
14
|
+
connector: Incomplete
|
|
15
|
+
def __init__(self, hass: HomeAssistant, config_entry: ConfigEntry, connector: CompitApiConnector) -> None: ...
|
|
16
|
+
async def _async_update_data(self) -> dict[int, DeviceInstance]: ...
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
2
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
3
|
+
from typing import Any
|
|
4
|
+
|
|
5
|
+
async def async_get_config_entry_diagnostics(hass: HomeAssistant, config_entry: ConfigEntry) -> dict[str, Any]: ...
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
from .coordinator import DropletConfigEntry as DropletConfigEntry, DropletDataCoordinator as DropletDataCoordinator
|
|
2
|
+
from _typeshed import Incomplete
|
|
3
|
+
from homeassistant.const import Platform as Platform
|
|
4
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
5
|
+
|
|
6
|
+
PLATFORMS: list[Platform]
|
|
7
|
+
logger: Incomplete
|
|
8
|
+
|
|
9
|
+
async def async_setup_entry(hass: HomeAssistant, config_entry: DropletConfigEntry) -> bool: ...
|
|
10
|
+
async def async_unload_entry(hass: HomeAssistant, config_entry: DropletConfigEntry) -> bool: ...
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from .const import DOMAIN as DOMAIN
|
|
2
|
+
from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
|
|
3
|
+
from homeassistant.const import CONF_CODE as CONF_CODE, CONF_DEVICE_ID as CONF_DEVICE_ID, CONF_IP_ADDRESS as CONF_IP_ADDRESS, CONF_PORT as CONF_PORT
|
|
4
|
+
from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
|
|
5
|
+
from homeassistant.helpers.service_info.zeroconf import ZeroconfServiceInfo as ZeroconfServiceInfo
|
|
6
|
+
from pydroplet.droplet import DropletDiscovery
|
|
7
|
+
from typing import Any
|
|
8
|
+
|
|
9
|
+
class DropletConfigFlow(ConfigFlow, domain=DOMAIN):
|
|
10
|
+
_droplet_discovery: DropletDiscovery
|
|
11
|
+
async def async_step_zeroconf(self, discovery_info: ZeroconfServiceInfo) -> ConfigFlowResult: ...
|
|
12
|
+
async def async_step_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
|
13
|
+
async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
from .const import CONNECT_DELAY as CONNECT_DELAY, DOMAIN as DOMAIN
|
|
2
|
+
from _typeshed import Incomplete
|
|
3
|
+
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
4
|
+
from homeassistant.const import CONF_CODE as CONF_CODE, CONF_IP_ADDRESS as CONF_IP_ADDRESS, CONF_PORT as CONF_PORT
|
|
5
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
6
|
+
from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
|
|
7
|
+
from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
|
|
8
|
+
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
|
|
9
|
+
|
|
10
|
+
VERSION_TIMEOUT: int
|
|
11
|
+
_LOGGER: Incomplete
|
|
12
|
+
TIMEOUT: int
|
|
13
|
+
type DropletConfigEntry = ConfigEntry[DropletDataCoordinator]
|
|
14
|
+
|
|
15
|
+
class DropletDataCoordinator(DataUpdateCoordinator[None]):
|
|
16
|
+
config_entry: DropletConfigEntry
|
|
17
|
+
droplet: Incomplete
|
|
18
|
+
unique_id: Incomplete
|
|
19
|
+
def __init__(self, hass: HomeAssistant, entry: DropletConfigEntry) -> None: ...
|
|
20
|
+
async def _async_setup(self) -> None: ...
|
|
21
|
+
async def _async_update_data(self) -> None: ...
|
|
22
|
+
async def setup(self) -> bool: ...
|
|
23
|
+
def get_availability(self) -> bool: ...
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
from .const import DOMAIN as DOMAIN, KEY_CURRENT_FLOW_RATE as KEY_CURRENT_FLOW_RATE, KEY_SERVER_CONNECTIVITY as KEY_SERVER_CONNECTIVITY, KEY_SIGNAL_QUALITY as KEY_SIGNAL_QUALITY, KEY_VOLUME as KEY_VOLUME
|
|
2
|
+
from .coordinator import DropletConfigEntry as DropletConfigEntry, DropletDataCoordinator as DropletDataCoordinator
|
|
3
|
+
from _typeshed import Incomplete
|
|
4
|
+
from collections.abc import Callable as Callable
|
|
5
|
+
from dataclasses import dataclass
|
|
6
|
+
from datetime import datetime
|
|
7
|
+
from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
|
|
8
|
+
from homeassistant.const import EntityCategory as EntityCategory, UnitOfVolume as UnitOfVolume, UnitOfVolumeFlowRate as UnitOfVolumeFlowRate
|
|
9
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
10
|
+
from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
|
|
11
|
+
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
12
|
+
from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
|
|
13
|
+
from pydroplet.droplet import Droplet as Droplet
|
|
14
|
+
|
|
15
|
+
ML_L_CONVERSION: int
|
|
16
|
+
|
|
17
|
+
@dataclass(kw_only=True, frozen=True)
|
|
18
|
+
class DropletSensorEntityDescription(SensorEntityDescription):
|
|
19
|
+
value_fn: Callable[[Droplet], float | str | None]
|
|
20
|
+
last_reset_fn: Callable[[Droplet], datetime | None] = ...
|
|
21
|
+
|
|
22
|
+
SENSORS: list[DropletSensorEntityDescription]
|
|
23
|
+
|
|
24
|
+
async def async_setup_entry(hass: HomeAssistant, config_entry: DropletConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
25
|
+
|
|
26
|
+
class DropletSensor(CoordinatorEntity[DropletDataCoordinator], SensorEntity):
|
|
27
|
+
entity_description: DropletSensorEntityDescription
|
|
28
|
+
_attr_has_entity_name: bool
|
|
29
|
+
_attr_unique_id: Incomplete
|
|
30
|
+
_attr_device_info: Incomplete
|
|
31
|
+
def __init__(self, coordinator: DropletDataCoordinator, entity_description: DropletSensorEntityDescription) -> None: ...
|
|
32
|
+
@property
|
|
33
|
+
def available(self) -> bool: ...
|
|
34
|
+
@property
|
|
35
|
+
def native_value(self) -> float | str | None: ...
|
|
36
|
+
@property
|
|
37
|
+
def last_reset(self) -> datetime | None: ...
|
|
@@ -5,6 +5,7 @@ from _typeshed import Incomplete
|
|
|
5
5
|
from collections.abc import Callable as Callable
|
|
6
6
|
from dataclasses import dataclass
|
|
7
7
|
from deebot_client.capabilities import CapabilitySet
|
|
8
|
+
from deebot_client.device import Device as Device
|
|
8
9
|
from deebot_client.events.base import Event as Event
|
|
9
10
|
from homeassistant.components.number import NumberEntity as NumberEntity, NumberEntityDescription as NumberEntityDescription, NumberMode as NumberMode
|
|
10
11
|
from homeassistant.const import DEGREE as DEGREE, EntityCategory as EntityCategory
|
|
@@ -22,7 +23,9 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: EcovacsConfigEntr
|
|
|
22
23
|
|
|
23
24
|
class EcovacsNumberEntity[EventT: Event](EcovacsDescriptionEntity[CapabilitySet[EventT, [int]]], NumberEntity):
|
|
24
25
|
entity_description: EcovacsNumberEntityDescription
|
|
25
|
-
|
|
26
|
+
_attr_native_min_value: Incomplete
|
|
26
27
|
_attr_native_max_value: Incomplete
|
|
28
|
+
def __init__(self, device: Device, capability: CapabilitySet[EventT, [int]], entity_description: EcovacsNumberEntityDescription) -> None: ...
|
|
29
|
+
_attr_native_value: Incomplete
|
|
27
30
|
async def async_added_to_hass(self) -> None: ...
|
|
28
31
|
async def async_set_native_value(self, value: float) -> None: ...
|
|
@@ -29,6 +29,7 @@ PORT_PROTOCOL_MAP: Incomplete
|
|
|
29
29
|
async def validate_input(data: dict[str, str], mac: str | None) -> dict[str, str]: ...
|
|
30
30
|
def _address_from_discovery(device: ElkSystem) -> str: ...
|
|
31
31
|
def _make_url_from_data(data: dict[str, str]) -> str: ...
|
|
32
|
+
def _get_protocol_from_url(url: str) -> str: ...
|
|
32
33
|
def _placeholders_from_device(device: ElkSystem) -> dict[str, str]: ...
|
|
33
34
|
|
|
34
35
|
class Elkm1ConfigFlow(ConfigFlow, domain=DOMAIN):
|
|
@@ -42,6 +43,7 @@ class Elkm1ConfigFlow(ConfigFlow, domain=DOMAIN):
|
|
|
42
43
|
async def _async_handle_discovery(self) -> ConfigFlowResult: ...
|
|
43
44
|
def is_matching(self, other_flow: Self) -> bool: ...
|
|
44
45
|
async def async_step_discovery_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
|
46
|
+
async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
|
45
47
|
async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
|
46
48
|
async def _async_create_or_error(self, user_input: dict[str, Any], importing: bool) -> tuple[dict[str, str] | None, ConfigFlowResult | None]: ...
|
|
47
49
|
async def async_step_discovered_connection(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
|
@@ -2,13 +2,14 @@ from . import ElkM1ConfigEntry as ElkM1ConfigEntry
|
|
|
2
2
|
from .const import ATTR_VALUE as ATTR_VALUE, ELK_USER_CODE_SERVICE_SCHEMA as ELK_USER_CODE_SERVICE_SCHEMA
|
|
3
3
|
from .entity import ElkAttachedEntity as ElkAttachedEntity, ElkEntity as ElkEntity, create_elk_entities as create_elk_entities
|
|
4
4
|
from _typeshed import Incomplete
|
|
5
|
+
from elkm1_lib.const import ZoneType
|
|
5
6
|
from elkm1_lib.counters import Counter as Counter
|
|
6
7
|
from elkm1_lib.elements import Element as Element
|
|
7
8
|
from elkm1_lib.keypads import Keypad as Keypad
|
|
8
9
|
from elkm1_lib.panel import Panel as Panel
|
|
9
10
|
from elkm1_lib.settings import Setting as Setting
|
|
10
11
|
from elkm1_lib.zones import Zone as Zone
|
|
11
|
-
from homeassistant.components.sensor import SensorEntity as SensorEntity
|
|
12
|
+
from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorStateClass as SensorStateClass
|
|
12
13
|
from homeassistant.const import EntityCategory as EntityCategory, UnitOfElectricPotential as UnitOfElectricPotential
|
|
13
14
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
14
15
|
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
|
|
@@ -22,6 +23,8 @@ SERVICE_SENSOR_COUNTER_SET: str
|
|
|
22
23
|
SERVICE_SENSOR_ZONE_BYPASS: str
|
|
23
24
|
SERVICE_SENSOR_ZONE_TRIGGER: str
|
|
24
25
|
UNDEFINED_TEMPERATURE: int
|
|
26
|
+
_DEVICE_CLASS_MAP: dict[ZoneType, SensorDeviceClass]
|
|
27
|
+
_STATE_CLASS_MAP: dict[ZoneType, SensorStateClass]
|
|
25
28
|
ELK_SET_COUNTER_SERVICE_SCHEMA: VolDictType
|
|
26
29
|
|
|
27
30
|
async def async_setup_entry(hass: HomeAssistant, config_entry: ElkM1ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
@@ -78,6 +81,10 @@ class ElkZone(ElkSensor):
|
|
|
78
81
|
@property
|
|
79
82
|
def temperature_unit(self) -> str | None: ...
|
|
80
83
|
@property
|
|
84
|
+
def device_class(self) -> SensorDeviceClass | None: ...
|
|
85
|
+
@property
|
|
86
|
+
def state_class(self) -> SensorStateClass | None: ...
|
|
87
|
+
@property
|
|
81
88
|
def native_unit_of_measurement(self) -> str | None: ...
|
|
82
89
|
_attr_native_value: Incomplete
|
|
83
90
|
def _element_changed(self, element: Element, changeset: dict[str, Any]) -> None: ...
|
|
@@ -27,7 +27,7 @@ async def async_setup_platform(hass: HomeAssistant, config: ConfigType, async_ad
|
|
|
27
27
|
@dataclass(slots=True)
|
|
28
28
|
class SourceAdapter:
|
|
29
29
|
source_type: Literal['grid', 'gas', 'water']
|
|
30
|
-
flow_type: Literal['flow_from', 'flow_to'
|
|
30
|
+
flow_type: Literal['flow_from', 'flow_to'] | None
|
|
31
31
|
stat_energy_key: Literal['stat_energy_from', 'stat_energy_to']
|
|
32
32
|
total_money_key: Literal['stat_cost', 'stat_compensation']
|
|
33
33
|
name_suffix: str
|
|
@@ -35,9 +35,13 @@ class EsphomeAssistSatellite(EsphomeAssistEntity, assist_satellite.AssistSatelli
|
|
|
35
35
|
_tts_streaming_task: asyncio.Task | None
|
|
36
36
|
_udp_server: VoiceAssistantUDPServer | None
|
|
37
37
|
_satellite_config: Incomplete
|
|
38
|
+
_active_pipeline_index: int
|
|
38
39
|
def __init__(self, entry: ESPHomeConfigEntry) -> None: ...
|
|
40
|
+
def _get_entity_id(self, suffix: str) -> str | None: ...
|
|
39
41
|
@property
|
|
40
42
|
def pipeline_entity_id(self) -> str | None: ...
|
|
43
|
+
def get_pipeline_entity(self, index: int) -> str | None: ...
|
|
44
|
+
def get_wake_word_entity(self, index: int) -> str | None: ...
|
|
41
45
|
@property
|
|
42
46
|
def vad_sensitivity_entity_id(self) -> str | None: ...
|
|
43
47
|
@callback
|
|
@@ -60,7 +64,7 @@ class EsphomeAssistSatellite(EsphomeAssistEntity, assist_satellite.AssistSatelli
|
|
|
60
64
|
def handle_timer_event(self, event_type: TimerEventType, timer_info: TimerInfo) -> None: ...
|
|
61
65
|
async def handle_announcement_finished(self, announce_finished: VoiceAssistantAnnounceFinished) -> None: ...
|
|
62
66
|
@callback
|
|
63
|
-
def
|
|
67
|
+
def async_set_wake_words(self, wake_word_ids: list[str]) -> None: ...
|
|
64
68
|
def _update_tts_format(self) -> None: ...
|
|
65
69
|
async def _stream_tts_audio(self, tts_result: tts.ResultStream, sample_rate: int = 16000, sample_width: int = 2, sample_channels: int = 1, samples_per_chunk: int = 512) -> None: ...
|
|
66
70
|
async def _wrap_audio_stream(self) -> AsyncIterable[bytes]: ...
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from .const import DOMAIN as DOMAIN
|
|
1
2
|
from .entity import EsphomeEntity as EsphomeEntity, convert_api_error_ha_error as convert_api_error_ha_error, esphome_float_state_property as esphome_float_state_property, esphome_state_property as esphome_state_property, platform_async_setup_entry as platform_async_setup_entry
|
|
2
3
|
from .enum_mapper import EsphomeEnumMapper as EsphomeEnumMapper
|
|
3
4
|
from _typeshed import Incomplete
|
|
@@ -5,6 +6,7 @@ from aioesphomeapi import ClimateAction, ClimateFanMode, ClimateInfo, ClimateMod
|
|
|
5
6
|
from homeassistant.components.climate import ATTR_HVAC_MODE as ATTR_HVAC_MODE, ATTR_TARGET_TEMP_HIGH as ATTR_TARGET_TEMP_HIGH, ATTR_TARGET_TEMP_LOW as ATTR_TARGET_TEMP_LOW, ClimateEntity as ClimateEntity, ClimateEntityFeature as ClimateEntityFeature, FAN_AUTO as FAN_AUTO, FAN_DIFFUSE as FAN_DIFFUSE, FAN_FOCUS as FAN_FOCUS, FAN_HIGH as FAN_HIGH, FAN_LOW as FAN_LOW, FAN_MEDIUM as FAN_MEDIUM, FAN_MIDDLE as FAN_MIDDLE, FAN_OFF as FAN_OFF, FAN_ON as FAN_ON, HVACAction as HVACAction, HVACMode as HVACMode, PRESET_ACTIVITY as PRESET_ACTIVITY, PRESET_AWAY as PRESET_AWAY, PRESET_BOOST as PRESET_BOOST, PRESET_COMFORT as PRESET_COMFORT, PRESET_ECO as PRESET_ECO, PRESET_HOME as PRESET_HOME, PRESET_NONE as PRESET_NONE, PRESET_SLEEP as PRESET_SLEEP, SWING_BOTH as SWING_BOTH, SWING_HORIZONTAL as SWING_HORIZONTAL, SWING_OFF as SWING_OFF, SWING_VERTICAL as SWING_VERTICAL
|
|
6
7
|
from homeassistant.const import ATTR_TEMPERATURE as ATTR_TEMPERATURE, PRECISION_HALVES as PRECISION_HALVES, PRECISION_TENTHS as PRECISION_TENTHS, PRECISION_WHOLE as PRECISION_WHOLE, UnitOfTemperature as UnitOfTemperature
|
|
7
8
|
from homeassistant.core import callback as callback
|
|
9
|
+
from homeassistant.exceptions import ServiceValidationError as ServiceValidationError
|
|
8
10
|
from typing import Any
|
|
9
11
|
|
|
10
12
|
PARALLEL_UPDATES: int
|
|
@@ -67,6 +67,8 @@ class EsphomeFlowHandler(ConfigFlow, domain=DOMAIN):
|
|
|
67
67
|
def _async_create_entry(self) -> ConfigFlowResult: ...
|
|
68
68
|
@callback
|
|
69
69
|
def _async_make_config_data(self) -> dict[str, Any]: ...
|
|
70
|
+
@callback
|
|
71
|
+
def _async_abort_wrong_device(self, entry: ConfigEntry, expected_mac: str, actual_mac: str) -> ConfigFlowResult: ...
|
|
70
72
|
async def _async_validated_connection(self) -> ConfigFlowResult: ...
|
|
71
73
|
async def _async_reauth_validated_connection(self) -> ConfigFlowResult: ...
|
|
72
74
|
async def _async_reconfig_validated_connection(self) -> ConfigFlowResult: ...
|
|
@@ -7,10 +7,13 @@ from bleak_esphome.backend.device import ESPHomeBluetoothDevice as ESPHomeBlueto
|
|
|
7
7
|
from collections import defaultdict
|
|
8
8
|
from collections.abc import Callable as Callable, Iterable
|
|
9
9
|
from dataclasses import dataclass, field
|
|
10
|
+
from homeassistant import config_entries as config_entries
|
|
10
11
|
from homeassistant.components.assist_satellite import AssistSatelliteConfiguration as AssistSatelliteConfiguration
|
|
11
12
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
12
13
|
from homeassistant.const import Platform as Platform
|
|
13
14
|
from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HomeAssistant as HomeAssistant, callback as callback
|
|
15
|
+
from homeassistant.helpers import discovery_flow as discovery_flow
|
|
16
|
+
from homeassistant.helpers.service_info.esphome import ESPHomeServiceInfo as ESPHomeServiceInfo
|
|
14
17
|
from homeassistant.helpers.storage import Store as Store
|
|
15
18
|
from typing import Any, Final, TypedDict
|
|
16
19
|
|
|
@@ -64,7 +67,8 @@ class RuntimeEntryData:
|
|
|
64
67
|
original_options: dict[str, Any] = field(default_factory=dict)
|
|
65
68
|
media_player_formats: dict[str, list[MediaPlayerSupportedFormat]] = field(default_factory=Incomplete)
|
|
66
69
|
assist_satellite_config_update_callbacks: list[Callable[[AssistSatelliteConfiguration], None]] = field(default_factory=list)
|
|
67
|
-
|
|
70
|
+
assist_satellite_set_wake_words_callbacks: list[Callable[[list[str]], None]] = field(default_factory=list)
|
|
71
|
+
assist_satellite_wake_words: dict[int, str] = field(default_factory=dict)
|
|
68
72
|
device_id_to_name: dict[int, str] = field(default_factory=dict)
|
|
69
73
|
entity_removal_callbacks: dict[EntityInfoKey, list[CALLBACK_TYPE]] = field(default_factory=dict)
|
|
70
74
|
@property
|
|
@@ -102,15 +106,15 @@ class RuntimeEntryData:
|
|
|
102
106
|
@callback
|
|
103
107
|
def async_on_disconnect(self) -> None: ...
|
|
104
108
|
@callback
|
|
105
|
-
def async_on_connect(self, device_info: DeviceInfo, api_version: APIVersion) -> None: ...
|
|
109
|
+
def async_on_connect(self, hass: HomeAssistant, device_info: DeviceInfo, api_version: APIVersion) -> None: ...
|
|
106
110
|
@callback
|
|
107
111
|
def async_register_assist_satellite_config_updated_callback(self, callback_: Callable[[AssistSatelliteConfiguration], None]) -> CALLBACK_TYPE: ...
|
|
108
112
|
@callback
|
|
109
113
|
def async_assist_satellite_config_updated(self, config: AssistSatelliteConfiguration) -> None: ...
|
|
110
114
|
@callback
|
|
111
|
-
def
|
|
115
|
+
def async_register_assist_satellite_set_wake_words_callback(self, callback_: Callable[[list[str]], None]) -> CALLBACK_TYPE: ...
|
|
112
116
|
@callback
|
|
113
|
-
def async_assist_satellite_set_wake_word(self, wake_word_id: str) -> None: ...
|
|
117
|
+
def async_assist_satellite_set_wake_word(self, wake_word_index: int, wake_word_id: str | None) -> None: ...
|
|
114
118
|
@callback
|
|
115
119
|
def async_register_entity_removal_callback(self, info_type: type[EntityInfo], device_id: int, key: int, callback_: CALLBACK_TYPE) -> CALLBACK_TYPE: ...
|
|
116
120
|
@callback
|
|
@@ -16,7 +16,7 @@ class EsphomeLock(EsphomeEntity[LockInfo, LockEntityState], LockEntity):
|
|
|
16
16
|
def _on_static_info_update(self, static_info: EntityInfo) -> None: ...
|
|
17
17
|
@property
|
|
18
18
|
@esphome_state_property
|
|
19
|
-
def is_locked(self) -> bool: ...
|
|
19
|
+
def is_locked(self) -> bool | None: ...
|
|
20
20
|
@property
|
|
21
21
|
@esphome_state_property
|
|
22
22
|
def is_locking(self) -> bool: ...
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from .const import DOMAIN as DOMAIN
|
|
1
|
+
from .const import DOMAIN as DOMAIN, NO_WAKE_WORD as NO_WAKE_WORD
|
|
2
2
|
from .entity import EsphomeAssistEntity as EsphomeAssistEntity, EsphomeEntity as EsphomeEntity, convert_api_error_ha_error as convert_api_error_ha_error, esphome_state_property as esphome_state_property, platform_async_setup_entry as platform_async_setup_entry
|
|
3
3
|
from .entry_data import ESPHomeConfigEntry as ESPHomeConfigEntry, RuntimeEntryData as RuntimeEntryData
|
|
4
4
|
from _typeshed import Incomplete
|
|
@@ -26,7 +26,7 @@ class EsphomeSelect(EsphomeEntity[SelectInfo, SelectState], SelectEntity):
|
|
|
26
26
|
async def async_select_option(self, option: str) -> None: ...
|
|
27
27
|
|
|
28
28
|
class EsphomeAssistPipelineSelect(EsphomeAssistEntity, AssistPipelineSelect):
|
|
29
|
-
def __init__(self, hass: HomeAssistant, entry_data: RuntimeEntryData) -> None: ...
|
|
29
|
+
def __init__(self, hass: HomeAssistant, entry_data: RuntimeEntryData, index: int = 0) -> None: ...
|
|
30
30
|
|
|
31
31
|
class EsphomeVadSensitivitySelect(EsphomeAssistEntity, VadSensitivitySelect):
|
|
32
32
|
def __init__(self, hass: HomeAssistant, entry_data: RuntimeEntryData) -> None: ...
|
|
@@ -37,7 +37,8 @@ class EsphomeAssistSatelliteWakeWordSelect(EsphomeAssistEntity, SelectEntity, re
|
|
|
37
37
|
_attr_options: list[str]
|
|
38
38
|
_attr_unique_id: Incomplete
|
|
39
39
|
_wake_words: dict[str, str]
|
|
40
|
-
|
|
40
|
+
_wake_word_index: Incomplete
|
|
41
|
+
def __init__(self, entry_data: RuntimeEntryData, index: int = 0) -> None: ...
|
|
41
42
|
@property
|
|
42
43
|
def available(self) -> bool: ...
|
|
43
44
|
async def async_added_to_hass(self) -> None: ...
|