homeassistant-stubs 2025.7.3__py3-none-any.whl → 2025.8.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of homeassistant-stubs might be problematic. Click here for more details.
- homeassistant-stubs/bootstrap.pyi +1 -1
- homeassistant-stubs/components/airnow/__init__.pyi +0 -1
- homeassistant-stubs/components/airnow/config_flow.pyi +2 -2
- homeassistant-stubs/components/airos/__init__.pyi +9 -0
- homeassistant-stubs/components/airos/config_flow.pyi +14 -0
- homeassistant-stubs/components/airos/const.pyi +5 -0
- homeassistant-stubs/components/airos/coordinator.pyi +16 -0
- homeassistant-stubs/components/airos/diagnostics.pyi +13 -0
- homeassistant-stubs/components/airos/entity.pyi +11 -0
- homeassistant-stubs/components/airos/sensor.pyi +29 -0
- homeassistant-stubs/components/airq/const.pyi +0 -1
- homeassistant-stubs/components/airq/sensor.pyi +2 -2
- homeassistant-stubs/components/airthings/__init__.pyi +1 -3
- homeassistant-stubs/components/airthings/coordinator.pyi +3 -1
- homeassistant-stubs/components/airthings/sensor.pyi +1 -1
- homeassistant-stubs/components/alexa_devices/__init__.pyi +6 -0
- homeassistant-stubs/components/alexa_devices/config_flow.pyi +10 -0
- homeassistant-stubs/components/alexa_devices/coordinator.pyi +4 -3
- homeassistant-stubs/components/alexa_devices/services.pyi +24 -0
- homeassistant-stubs/components/amberelectric/__init__.pyi +7 -1
- homeassistant-stubs/components/amberelectric/const.pyi +8 -1
- homeassistant-stubs/components/amberelectric/coordinator.pyi +1 -2
- homeassistant-stubs/components/amberelectric/helpers.pyi +6 -0
- homeassistant-stubs/components/amberelectric/sensor.pyi +2 -2
- homeassistant-stubs/components/amberelectric/services.pyi +15 -0
- homeassistant-stubs/components/analytics/__init__.pyi +1 -0
- homeassistant-stubs/components/analytics/analytics.pyi +3 -0
- homeassistant-stubs/components/analytics/http.pyi +10 -0
- homeassistant-stubs/components/analytics_insights/__init__.pyi +0 -1
- homeassistant-stubs/components/analytics_insights/config_flow.pyi +2 -2
- homeassistant-stubs/components/androidtv_remote/__init__.pyi +2 -6
- homeassistant-stubs/components/androidtv_remote/config_flow.pyi +6 -6
- homeassistant-stubs/components/androidtv_remote/diagnostics.pyi +1 -1
- homeassistant-stubs/components/androidtv_remote/entity.pyi +2 -2
- homeassistant-stubs/components/androidtv_remote/helpers.pyi +3 -1
- homeassistant-stubs/components/androidtv_remote/media_player.pyi +4 -4
- homeassistant-stubs/components/androidtv_remote/remote.pyi +1 -1
- homeassistant-stubs/components/assist_pipeline/__init__.pyi +2 -2
- homeassistant-stubs/components/assist_pipeline/const.pyi +0 -1
- homeassistant-stubs/components/assist_pipeline/pipeline.pyi +2 -5
- homeassistant-stubs/components/asuswrt/router.pyi +3 -1
- homeassistant-stubs/components/awair/const.pyi +1 -0
- homeassistant-stubs/components/awair/sensor.pyi +1 -1
- homeassistant-stubs/components/backup/__init__.pyi +6 -2
- homeassistant-stubs/components/backup/coordinator.pyi +0 -1
- homeassistant-stubs/components/backup/manager.pyi +6 -3
- homeassistant-stubs/components/backup/onboarding.pyi +1 -1
- homeassistant-stubs/components/backup/services.pyi +7 -0
- homeassistant-stubs/components/backup/websocket.pyi +4 -1
- homeassistant-stubs/components/blue_current/__init__.pyi +5 -5
- homeassistant-stubs/components/blue_current/const.pyi +11 -0
- homeassistant-stubs/components/blue_current/switch.pyi +40 -0
- homeassistant-stubs/components/bosch_alarm/__init__.pyi +1 -1
- homeassistant-stubs/components/bosch_alarm/services.pyi +3 -2
- homeassistant-stubs/components/bring/__init__.pyi +5 -0
- homeassistant-stubs/components/bring/const.pyi +4 -0
- homeassistant-stubs/components/bring/services.pyi +14 -0
- homeassistant-stubs/components/cloud/backup.pyi +3 -3
- homeassistant-stubs/components/cloud/repairs.pyi +3 -3
- homeassistant-stubs/components/cloud/subscription.pyi +2 -1
- homeassistant-stubs/components/cloud/tts.pyi +2 -1
- homeassistant-stubs/components/command_line/sensor.pyi +0 -2
- homeassistant-stubs/components/demo/vacuum.pyi +0 -3
- homeassistant-stubs/components/derivative/__init__.pyi +5 -1
- homeassistant-stubs/components/derivative/config_flow.pyi +2 -0
- homeassistant-stubs/components/derivative/sensor.pyi +7 -4
- homeassistant-stubs/components/devolo_home_control/config_flow.pyi +3 -7
- homeassistant-stubs/components/devolo_home_control/entity.pyi +0 -1
- homeassistant-stubs/components/devolo_home_network/coordinator.pyi +2 -2
- homeassistant-stubs/components/devolo_home_network/device_tracker.pyi +2 -2
- homeassistant-stubs/components/devolo_home_network/entity.pyi +1 -1
- homeassistant-stubs/components/devolo_home_network/sensor.pyi +1 -1
- homeassistant-stubs/components/discovergy/__init__.pyi +1 -0
- homeassistant-stubs/components/discovergy/coordinator.pyi +1 -0
- homeassistant-stubs/components/dnsip/__init__.pyi +0 -1
- homeassistant-stubs/components/dnsip/config_flow.pyi +2 -2
- homeassistant-stubs/components/downloader/services.pyi +1 -0
- homeassistant-stubs/components/ecovacs/binary_sensor.pyi +13 -3
- homeassistant-stubs/components/ecovacs/sensor.pyi +13 -0
- homeassistant-stubs/components/ecovacs/vacuum.pyi +1 -7
- homeassistant-stubs/components/eheimdigital/config_flow.pyi +2 -1
- homeassistant-stubs/components/elevenlabs/config_flow.pyi +1 -1
- homeassistant-stubs/components/elevenlabs/const.pyi +0 -2
- homeassistant-stubs/components/elevenlabs/tts.pyi +2 -3
- homeassistant-stubs/components/enphase_envoy/__init__.pyi +0 -2
- homeassistant-stubs/components/enphase_envoy/config_flow.pyi +2 -2
- homeassistant-stubs/components/esphome/config_flow.pyi +2 -0
- homeassistant-stubs/components/esphome/encryption_key_storage.pyi +29 -0
- homeassistant-stubs/components/esphome/entity.pyi +3 -1
- homeassistant-stubs/components/esphome/entry_data.pyi +14 -6
- homeassistant-stubs/components/esphome/manager.pyi +3 -1
- homeassistant-stubs/components/feedreader/__init__.pyi +0 -1
- homeassistant-stubs/components/feedreader/config_flow.pyi +3 -3
- homeassistant-stubs/components/forecast_solar/__init__.pyi +0 -1
- homeassistant-stubs/components/forecast_solar/config_flow.pyi +2 -2
- homeassistant-stubs/components/fritz/__init__.pyi +0 -1
- homeassistant-stubs/components/fritz/config_flow.pyi +2 -2
- homeassistant-stubs/components/fritzbox_callmonitor/__init__.pyi +0 -1
- homeassistant-stubs/components/fritzbox_callmonitor/config_flow.pyi +2 -2
- homeassistant-stubs/components/frontend/__init__.pyi +1 -0
- homeassistant-stubs/components/fujitsu_fglair/climate.pyi +1 -1
- homeassistant-stubs/components/generic_hygrostat/__init__.pyi +3 -1
- homeassistant-stubs/components/generic_hygrostat/config_flow.pyi +1 -0
- homeassistant-stubs/components/generic_hygrostat/humidifier.pyi +3 -3
- homeassistant-stubs/components/generic_thermostat/__init__.pyi +5 -1
- homeassistant-stubs/components/generic_thermostat/climate.pyi +3 -3
- homeassistant-stubs/components/generic_thermostat/config_flow.pyi +1 -0
- homeassistant-stubs/components/geo_location/trigger.pyi +0 -1
- homeassistant-stubs/components/gios/const.pyi +2 -0
- homeassistant-stubs/components/gios/sensor.pyi +1 -1
- homeassistant-stubs/components/google_assistant_sdk/application_credentials.pyi +1 -0
- homeassistant-stubs/components/google_cloud/const.pyi +1 -0
- homeassistant-stubs/components/google_cloud/stt.pyi +3 -2
- homeassistant-stubs/components/guardian/__init__.pyi +1 -1
- homeassistant-stubs/components/guardian/services.pyi +2 -1
- homeassistant-stubs/components/habitica/button.pyi +3 -4
- homeassistant-stubs/components/habitica/coordinator.pyi +2 -3
- homeassistant-stubs/components/habitica/entity.pyi +1 -1
- homeassistant-stubs/components/habitica/sensor.pyi +3 -18
- homeassistant-stubs/components/habitica/switch.pyi +4 -3
- homeassistant-stubs/components/habitica/util.pyi +2 -1
- homeassistant-stubs/components/heos/__init__.pyi +1 -1
- homeassistant-stubs/components/heos/config_flow.pyi +3 -0
- homeassistant-stubs/components/heos/services.pyi +3 -2
- homeassistant-stubs/components/here_travel_time/__init__.pyi +3 -1
- homeassistant-stubs/components/here_travel_time/config_flow.pyi +3 -2
- homeassistant-stubs/components/here_travel_time/const.pyi +1 -0
- homeassistant-stubs/components/here_travel_time/coordinator.pyi +1 -1
- homeassistant-stubs/components/here_travel_time/model.pyi +2 -1
- homeassistant-stubs/components/history_stats/__init__.pyi +5 -1
- homeassistant-stubs/components/history_stats/config_flow.pyi +14 -0
- homeassistant-stubs/components/history_stats/coordinator.pyi +3 -1
- homeassistant-stubs/components/history_stats/data.pyi +2 -1
- homeassistant-stubs/components/history_stats/helpers.pyi +1 -1
- homeassistant-stubs/components/history_stats/sensor.pyi +7 -4
- homeassistant-stubs/components/holiday/__init__.pyi +0 -1
- homeassistant-stubs/components/holiday/config_flow.pyi +2 -2
- homeassistant-stubs/components/home_connect/__init__.pyi +1 -1
- homeassistant-stubs/components/home_connect/services.pyi +3 -2
- homeassistant-stubs/components/homeassistant/__init__.pyi +2 -1
- homeassistant-stubs/components/homeassistant/triggers/time.pyi +2 -1
- homeassistant-stubs/components/homeassistant_hardware/coordinator.pyi +2 -1
- homeassistant-stubs/components/homee/__init__.pyi +1 -1
- homeassistant-stubs/components/homee/config_flow.pyi +5 -0
- homeassistant-stubs/components/homekit/__init__.pyi +2 -1
- homeassistant-stubs/components/http/__init__.pyi +1 -2
- homeassistant-stubs/components/huawei_lte/__init__.pyi +1 -2
- homeassistant-stubs/components/huawei_lte/config_flow.pyi +5 -4
- homeassistant-stubs/components/huawei_lte/const.pyi +1 -1
- homeassistant-stubs/components/huawei_lte/diagnostics.pyi +18 -0
- homeassistant-stubs/components/husqvarna_automower/button.pyi +2 -2
- homeassistant-stubs/components/husqvarna_automower/calendar.pyi +3 -0
- homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +15 -13
- homeassistant-stubs/components/husqvarna_automower/entity.pyi +2 -6
- homeassistant-stubs/components/husqvarna_automower/lawn_mower.pyi +2 -2
- homeassistant-stubs/components/husqvarna_automower/sensor.pyi +5 -0
- homeassistant-stubs/components/hydrawise/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/hydrawise/const.pyi +1 -0
- homeassistant-stubs/components/hydrawise/coordinator.pyi +9 -2
- homeassistant-stubs/components/hydrawise/entity.pyi +1 -1
- homeassistant-stubs/components/hydrawise/sensor.pyi +1 -1
- homeassistant-stubs/components/hydrawise/switch.pyi +1 -1
- homeassistant-stubs/components/hydrawise/valve.pyi +1 -1
- homeassistant-stubs/components/hyperion/__init__.pyi +0 -1
- homeassistant-stubs/components/hyperion/config_flow.pyi +2 -2
- homeassistant-stubs/components/imgw_pib/sensor.pyi +7 -1
- homeassistant-stubs/components/immich/__init__.pyi +6 -0
- homeassistant-stubs/components/immich/media_source.pyi +1 -0
- homeassistant-stubs/components/immich/services.pyi +18 -0
- homeassistant-stubs/components/input_text/__init__.pyi +1 -1
- homeassistant-stubs/components/integration/__init__.pyi +5 -1
- homeassistant-stubs/components/integration/config_flow.pyi +1 -0
- homeassistant-stubs/components/integration/sensor.pyi +5 -6
- homeassistant-stubs/components/iron_os/__init__.pyi +0 -3
- homeassistant-stubs/components/iron_os/const.pyi +4 -0
- homeassistant-stubs/components/iron_os/coordinator.pyi +1 -1
- homeassistant-stubs/components/iron_os/number.pyi +20 -4
- homeassistant-stubs/components/iron_os/switch.pyi +2 -0
- homeassistant-stubs/components/isy994/__init__.pyi +0 -1
- homeassistant-stubs/components/isy994/config_flow.pyi +3 -3
- homeassistant-stubs/components/jellyfin/browse_media.pyi +2 -1
- homeassistant-stubs/components/jellyfin/media_player.pyi +5 -2
- homeassistant-stubs/components/jewish_calendar/binary_sensor.pyi +5 -15
- homeassistant-stubs/components/jewish_calendar/config_flow.pyi +2 -2
- homeassistant-stubs/components/jewish_calendar/entity.pyi +19 -5
- homeassistant-stubs/components/jewish_calendar/sensor.pyi +11 -7
- homeassistant-stubs/components/knx/__init__.pyi +6 -40
- homeassistant-stubs/components/knx/binary_sensor.pyi +3 -2
- homeassistant-stubs/components/knx/button.pyi +1 -1
- homeassistant-stubs/components/knx/climate.pyi +1 -1
- homeassistant-stubs/components/knx/config_flow.pyi +14 -21
- homeassistant-stubs/components/knx/const.pyi +1 -1
- homeassistant-stubs/components/knx/cover.pyi +3 -2
- homeassistant-stubs/components/knx/date.pyi +1 -1
- homeassistant-stubs/components/knx/datetime.pyi +1 -1
- homeassistant-stubs/components/knx/entity.pyi +1 -1
- homeassistant-stubs/components/knx/fan.pyi +1 -1
- homeassistant-stubs/components/knx/knx_module.pyi +43 -0
- homeassistant-stubs/components/knx/light.pyi +3 -2
- homeassistant-stubs/components/knx/notify.pyi +1 -1
- homeassistant-stubs/components/knx/number.pyi +1 -1
- homeassistant-stubs/components/knx/scene.pyi +1 -1
- homeassistant-stubs/components/knx/select.pyi +1 -1
- homeassistant-stubs/components/knx/sensor.pyi +1 -1
- homeassistant-stubs/components/knx/services.pyi +2 -2
- homeassistant-stubs/components/knx/storage/config_store.pyi +4 -0
- homeassistant-stubs/components/knx/storage/const.pyi +8 -7
- homeassistant-stubs/components/knx/storage/entity_store_schema.pyi +3 -10
- homeassistant-stubs/components/knx/storage/knx_selector.pyi +4 -0
- homeassistant-stubs/components/knx/storage/migration.pyi +5 -0
- homeassistant-stubs/components/knx/storage/util.pyi +16 -0
- homeassistant-stubs/components/knx/switch.pyi +3 -2
- homeassistant-stubs/components/knx/text.pyi +1 -1
- homeassistant-stubs/components/knx/time.pyi +1 -1
- homeassistant-stubs/components/knx/weather.pyi +1 -1
- homeassistant-stubs/components/knx/websocket.pyi +1 -1
- homeassistant-stubs/components/lamarzocco/config_flow.pyi +2 -2
- homeassistant-stubs/components/lcn/binary_sensor.pyi +1 -20
- homeassistant-stubs/components/lcn/helpers.pyi +1 -0
- homeassistant-stubs/components/lcn/light.pyi +2 -1
- homeassistant-stubs/components/letpot/coordinator.pyi +3 -4
- homeassistant-stubs/components/letpot/switch.pyi +1 -1
- homeassistant-stubs/components/letpot/time.pyi +1 -1
- homeassistant-stubs/components/lifx/const.pyi +1 -0
- homeassistant-stubs/components/lifx/coordinator.pyi +5 -1
- homeassistant-stubs/components/lifx/light.pyi +1 -1
- homeassistant-stubs/components/lifx/manager.pyi +1 -1
- homeassistant-stubs/components/linkplay/select.pyi +35 -0
- homeassistant-stubs/components/litterrobot/sensor.pyi +3 -0
- homeassistant-stubs/components/matrix/__init__.pyi +1 -1
- homeassistant-stubs/components/matrix/services.pyi +3 -2
- homeassistant-stubs/components/matter/entity.pyi +2 -2
- homeassistant-stubs/components/matter/light.pyi +1 -1
- homeassistant-stubs/components/matter/number.pyi +29 -1
- homeassistant-stubs/components/matter/select.pyi +2 -2
- homeassistant-stubs/components/matter/vacuum.pyi +2 -1
- homeassistant-stubs/components/mcp_server/server.pyi +1 -1
- homeassistant-stubs/components/mealie/const.pyi +2 -0
- homeassistant-stubs/components/mealie/services.pyi +4 -1
- homeassistant-stubs/components/media_player/const.pyi +2 -2
- homeassistant-stubs/components/media_source/const.pyi +3 -0
- homeassistant-stubs/components/media_source/local_source.pyi +1 -1
- homeassistant-stubs/components/media_source/models.pyi +6 -2
- homeassistant-stubs/components/met_eireann/__init__.pyi +2 -17
- homeassistant-stubs/components/met_eireann/coordinator.pyi +28 -0
- homeassistant-stubs/components/met_eireann/weather.pyi +1 -3
- homeassistant-stubs/components/miele/__init__.pyi +5 -0
- homeassistant-stubs/components/miele/coordinator.pyi +1 -1
- homeassistant-stubs/components/miele/entity.pyi +2 -0
- homeassistant-stubs/components/miele/sensor.pyi +7 -6
- homeassistant-stubs/components/miele/services.pyi +24 -0
- homeassistant-stubs/components/miele/vacuum.pyi +0 -2
- homeassistant-stubs/components/modem_callerid/sensor.pyi +2 -2
- homeassistant-stubs/components/mold_indicator/__init__.pyi +8 -1
- homeassistant-stubs/components/mold_indicator/config_flow.pyi +2 -0
- homeassistant-stubs/components/mold_indicator/sensor.pyi +2 -2
- homeassistant-stubs/components/mqtt/climate.pyi +1 -37
- homeassistant-stubs/components/mqtt/config_flow.pyi +38 -6
- homeassistant-stubs/components/mqtt/const.pyi +33 -2
- homeassistant-stubs/components/mqtt/repairs.pyi +15 -0
- homeassistant-stubs/components/mqtt/vacuum.pyi +4 -3
- homeassistant-stubs/components/nasweb/const.pyi +1 -0
- homeassistant-stubs/components/nasweb/coordinator.pyi +3 -1
- homeassistant-stubs/components/nasweb/sensor.pyi +54 -0
- homeassistant-stubs/components/netatmo/climate.pyi +1 -1
- homeassistant-stubs/components/netatmo/const.pyi +1 -0
- homeassistant-stubs/components/nextdns/__init__.pyi +2 -3
- homeassistant-stubs/components/nextdns/coordinator.pyi +10 -2
- homeassistant-stubs/components/nordpool/const.pyi +1 -0
- homeassistant-stubs/components/nordpool/services.pyi +5 -1
- homeassistant-stubs/components/number/const.pyi +2 -1
- homeassistant-stubs/components/nut/__init__.pyi +0 -1
- homeassistant-stubs/components/onewire/__init__.pyi +0 -1
- homeassistant-stubs/components/onewire/config_flow.pyi +2 -2
- homeassistant-stubs/components/onkyo/__init__.pyi +2 -3
- homeassistant-stubs/components/onkyo/config_flow.pyi +9 -6
- homeassistant-stubs/components/onkyo/const.pyi +7 -65
- homeassistant-stubs/components/onkyo/media_player.pyi +16 -44
- homeassistant-stubs/components/onkyo/receiver.pyi +24 -25
- homeassistant-stubs/components/onkyo/services.pyi +3 -3
- homeassistant-stubs/components/onkyo/util.pyi +3 -0
- homeassistant-stubs/components/open_router/__init__.pyi +15 -0
- homeassistant-stubs/components/open_router/ai_task.pyi +17 -0
- homeassistant-stubs/components/open_router/config_flow.pyi +30 -0
- homeassistant-stubs/components/open_router/const.pyi +8 -0
- homeassistant-stubs/components/open_router/conversation.pyi +20 -0
- homeassistant-stubs/components/open_router/entity.pyi +33 -0
- homeassistant-stubs/components/openai_conversation/__init__.pyi +4 -2
- homeassistant-stubs/components/openai_conversation/ai_task.pyi +16 -0
- homeassistant-stubs/components/openai_conversation/config_flow.pyi +2 -3
- homeassistant-stubs/components/openai_conversation/const.pyi +9 -1
- homeassistant-stubs/components/openai_conversation/conversation.pyi +6 -22
- homeassistant-stubs/components/openai_conversation/entity.pyi +36 -0
- homeassistant-stubs/components/opower/__init__.pyi +8 -0
- homeassistant-stubs/components/opower/config_flow.pyi +30 -0
- homeassistant-stubs/components/opower/const.pyi +4 -0
- homeassistant-stubs/components/opower/coordinator.pyi +24 -0
- homeassistant-stubs/components/opower/sensor.pyi +35 -0
- homeassistant-stubs/components/pegel_online/__init__.pyi +1 -1
- homeassistant-stubs/components/pegel_online/sensor.pyi +2 -0
- homeassistant-stubs/components/pi_hole/__init__.pyi +6 -2
- homeassistant-stubs/components/pi_hole/config_flow.pyi +1 -2
- homeassistant-stubs/components/pi_hole/const.pyi +1 -0
- homeassistant-stubs/components/pi_hole/sensor.pyi +5 -0
- homeassistant-stubs/components/pi_hole/update.pyi +3 -3
- homeassistant-stubs/components/ping/__init__.pyi +0 -1
- homeassistant-stubs/components/ping/config_flow.pyi +3 -3
- homeassistant-stubs/components/plugwise/select.pyi +1 -1
- homeassistant-stubs/components/proximity/__init__.pyi +0 -1
- homeassistant-stubs/components/proximity/config_flow.pyi +3 -3
- homeassistant-stubs/components/purpleair/__init__.pyi +0 -1
- homeassistant-stubs/components/purpleair/config_flow.pyi +2 -2
- homeassistant-stubs/components/pyload/config_flow.pyi +4 -0
- homeassistant-stubs/components/recorder/pool.pyi +2 -1
- homeassistant-stubs/components/renault/__init__.pyi +1 -1
- homeassistant-stubs/components/renault/services.pyi +3 -2
- homeassistant-stubs/components/reolink/__init__.pyi +0 -1
- homeassistant-stubs/components/reolink/config_flow.pyi +2 -2
- homeassistant-stubs/components/reolink/number.pyi +1 -1
- homeassistant-stubs/components/reolink/sensor.pyi +1 -1
- homeassistant-stubs/components/rest/sensor.pyi +1 -3
- homeassistant-stubs/components/roborock/__init__.pyi +0 -1
- homeassistant-stubs/components/roborock/config_flow.pyi +2 -2
- homeassistant-stubs/components/roborock/vacuum.pyi +0 -2
- homeassistant-stubs/components/roku/__init__.pyi +0 -1
- homeassistant-stubs/components/roku/config_flow.pyi +2 -2
- homeassistant-stubs/components/russound_rio/const.pyi +2 -0
- homeassistant-stubs/components/russound_rio/media_player.pyi +6 -0
- homeassistant-stubs/components/scrape/sensor.pyi +1 -2
- 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/shelly/button.pyi +2 -2
- homeassistant-stubs/components/shelly/climate.pyi +2 -2
- homeassistant-stubs/components/shelly/coordinator.pyi +5 -1
- homeassistant-stubs/components/shelly/entity.pyi +3 -0
- homeassistant-stubs/components/shelly/event.pyi +2 -2
- homeassistant-stubs/components/shelly/sensor.pyi +2 -2
- homeassistant-stubs/components/shelly/utils.pyi +2 -2
- homeassistant-stubs/components/sleepiq/const.pyi +2 -0
- homeassistant-stubs/components/sleepiq/number.pyi +7 -3
- homeassistant-stubs/components/sleepiq/select.pyi +15 -2
- homeassistant-stubs/components/smhi/coordinator.pyi +3 -0
- homeassistant-stubs/components/smhi/entity.pyi +3 -1
- homeassistant-stubs/components/smhi/sensor.pyi +30 -0
- homeassistant-stubs/components/smhi/weather.pyi +4 -2
- homeassistant-stubs/components/sonarr/__init__.pyi +0 -1
- homeassistant-stubs/components/sonarr/config_flow.pyi +2 -2
- homeassistant-stubs/components/speedtestdotnet/__init__.pyi +0 -1
- homeassistant-stubs/components/speedtestdotnet/config_flow.pyi +2 -2
- homeassistant-stubs/components/sql/__init__.pyi +0 -1
- homeassistant-stubs/components/sql/config_flow.pyi +2 -2
- homeassistant-stubs/components/squeezebox/__init__.pyi +3 -2
- homeassistant-stubs/components/squeezebox/browse_media.pyi +3 -1
- homeassistant-stubs/components/squeezebox/const.pyi +2 -3
- homeassistant-stubs/components/squeezebox/coordinator.pyi +2 -2
- homeassistant-stubs/components/squeezebox/media_player.pyi +3 -2
- homeassistant-stubs/components/statistics/__init__.pyi +3 -1
- homeassistant-stubs/components/statistics/config_flow.pyi +1 -0
- homeassistant-stubs/components/statistics/sensor.pyi +5 -5
- homeassistant-stubs/components/stookwijzer/__init__.pyi +4 -0
- homeassistant-stubs/components/stookwijzer/const.pyi +2 -0
- homeassistant-stubs/components/stookwijzer/services.pyi +17 -0
- homeassistant-stubs/components/switch_as_x/__init__.pyi +2 -2
- homeassistant-stubs/components/switch_as_x/entity.pyi +1 -3
- homeassistant-stubs/components/switchbot_cloud/__init__.pyi +2 -0
- homeassistant-stubs/components/switchbot_cloud/const.pyi +1 -0
- homeassistant-stubs/components/switchbot_cloud/fan.pyi +26 -0
- homeassistant-stubs/components/switchbot_cloud/light.pyi +40 -0
- homeassistant-stubs/components/switchbot_cloud/vacuum.pyi +17 -1
- homeassistant-stubs/components/synology_dsm/__init__.pyi +0 -1
- homeassistant-stubs/components/synology_dsm/config_flow.pyi +2 -2
- homeassistant-stubs/components/tankerkoenig/__init__.pyi +10 -0
- homeassistant-stubs/components/tankerkoenig/binary_sensor.pyi +23 -0
- homeassistant-stubs/components/tankerkoenig/config_flow.pyi +33 -0
- homeassistant-stubs/components/tankerkoenig/const.pyi +13 -0
- homeassistant-stubs/components/tankerkoenig/coordinator.pyi +22 -0
- homeassistant-stubs/components/tankerkoenig/diagnostics.pyi +10 -0
- homeassistant-stubs/components/tankerkoenig/entity.pyi +11 -0
- homeassistant-stubs/components/tankerkoenig/sensor.pyi +28 -0
- homeassistant-stubs/components/telegram_bot/webhooks.pyi +3 -1
- homeassistant-stubs/components/threshold/__init__.pyi +5 -1
- homeassistant-stubs/components/threshold/binary_sensor.pyi +3 -4
- homeassistant-stubs/components/threshold/config_flow.pyi +1 -0
- homeassistant-stubs/components/time_date/config_flow.pyi +1 -2
- homeassistant-stubs/components/trafikverket_train/__init__.pyi +0 -1
- homeassistant-stubs/components/trafikverket_train/config_flow.pyi +2 -2
- homeassistant-stubs/components/trend/__init__.pyi +3 -1
- homeassistant-stubs/components/trend/binary_sensor.pyi +3 -4
- homeassistant-stubs/components/trend/config_flow.pyi +1 -0
- homeassistant-stubs/components/tts/entity.pyi +0 -2
- homeassistant-stubs/components/unifi/hub/entity_loader.pyi +3 -2
- homeassistant-stubs/components/unifiprotect/__init__.pyi +5 -5
- homeassistant-stubs/components/unifiprotect/config_flow.pyi +5 -5
- homeassistant-stubs/components/unifiprotect/repairs.pyi +0 -6
- homeassistant-stubs/components/unifiprotect/services.pyi +1 -1
- homeassistant-stubs/components/uptime_kuma/__init__.pyi +14 -0
- homeassistant-stubs/components/uptime_kuma/config_flow.pyi +26 -0
- homeassistant-stubs/components/uptime_kuma/const.pyi +7 -0
- homeassistant-stubs/components/uptime_kuma/coordinator.pyi +30 -0
- homeassistant-stubs/components/uptime_kuma/diagnostics.pyi +9 -0
- homeassistant-stubs/components/uptime_kuma/sensor.pyi +46 -0
- homeassistant-stubs/components/uptime_kuma/update.pyi +39 -0
- homeassistant-stubs/components/vacuum/__init__.pyi +8 -0
- homeassistant-stubs/components/velbus/__init__.pyi +1 -1
- homeassistant-stubs/components/velbus/const.pyi +0 -1
- homeassistant-stubs/components/velbus/services.pyi +4 -4
- homeassistant-stubs/components/vodafone_station/__init__.pyi +0 -1
- homeassistant-stubs/components/vodafone_station/config_flow.pyi +2 -2
- homeassistant-stubs/components/volvo/__init__.pyi +15 -0
- homeassistant-stubs/components/volvo/api.pyi +14 -0
- homeassistant-stubs/components/volvo/application_credentials.pyi +9 -0
- homeassistant-stubs/components/volvo/config_flow.pyi +36 -0
- homeassistant-stubs/components/volvo/const.pyi +8 -0
- homeassistant-stubs/components/volvo/coordinator.pyi +46 -0
- homeassistant-stubs/components/volvo/entity.pyi +33 -0
- homeassistant-stubs/components/volvo/sensor.pyi +35 -0
- homeassistant-stubs/components/wallbox/__init__.pyi +4 -5
- homeassistant-stubs/components/wallbox/coordinator.pyi +8 -2
- homeassistant-stubs/components/wallbox/lock.pyi +5 -4
- homeassistant-stubs/components/wallbox/number.pyi +6 -5
- homeassistant-stubs/components/wallbox/select.pyi +4 -3
- homeassistant-stubs/components/wallbox/sensor.pyi +5 -4
- homeassistant-stubs/components/wallbox/switch.pyi +5 -4
- homeassistant-stubs/components/waqi/__init__.pyi +3 -5
- homeassistant-stubs/components/waqi/coordinator.pyi +3 -2
- homeassistant-stubs/components/waqi/sensor.pyi +2 -13
- homeassistant-stubs/components/webostv/__init__.pyi +0 -1
- homeassistant-stubs/components/webostv/config_flow.pyi +3 -3
- homeassistant-stubs/components/websocket_api/commands.pyi +4 -0
- homeassistant-stubs/components/wiz/fan.pyi +34 -0
- homeassistant-stubs/components/wled/__init__.pyi +0 -1
- homeassistant-stubs/components/wled/config_flow.pyi +2 -2
- homeassistant-stubs/components/workday/__init__.pyi +0 -1
- homeassistant-stubs/components/workday/config_flow.pyi +2 -2
- homeassistant-stubs/components/yale_smart_alarm/__init__.pyi +0 -1
- homeassistant-stubs/components/yale_smart_alarm/config_flow.pyi +2 -2
- homeassistant-stubs/components/yalexs_ble/lock.pyi +14 -2
- homeassistant-stubs/components/zone/condition.pyi +22 -0
- homeassistant-stubs/components/zone/trigger.pyi +2 -1
- homeassistant-stubs/components/zwave_js/__init__.pyi +12 -10
- homeassistant-stubs/components/zwave_js/api.pyi +36 -35
- homeassistant-stubs/components/zwave_js/binary_sensor.pyi +7 -7
- homeassistant-stubs/components/zwave_js/button.pyi +5 -5
- homeassistant-stubs/components/zwave_js/climate.pyi +5 -5
- homeassistant-stubs/components/zwave_js/config_flow.pyi +7 -4
- homeassistant-stubs/components/zwave_js/const.pyi +0 -3
- homeassistant-stubs/components/zwave_js/cover.pyi +7 -7
- homeassistant-stubs/components/zwave_js/device_automation_helpers.pyi +1 -1
- homeassistant-stubs/components/zwave_js/diagnostics.pyi +5 -5
- homeassistant-stubs/components/zwave_js/entity.pyi +0 -4
- homeassistant-stubs/components/zwave_js/event.pyi +4 -4
- homeassistant-stubs/components/zwave_js/fan.pyi +6 -6
- homeassistant-stubs/components/zwave_js/helpers.pyi +10 -6
- homeassistant-stubs/components/zwave_js/humidifier.pyi +4 -4
- homeassistant-stubs/components/zwave_js/light.pyi +15 -5
- homeassistant-stubs/components/zwave_js/lock.pyi +3 -3
- homeassistant-stubs/components/zwave_js/models.pyi +12 -0
- homeassistant-stubs/components/zwave_js/number.pyi +6 -6
- homeassistant-stubs/components/zwave_js/select.pyi +8 -8
- homeassistant-stubs/components/zwave_js/sensor.pyi +10 -10
- homeassistant-stubs/components/zwave_js/siren.pyi +4 -4
- homeassistant-stubs/components/zwave_js/switch.pyi +7 -7
- homeassistant-stubs/components/zwave_js/triggers/event.pyi +1 -2
- homeassistant-stubs/components/zwave_js/triggers/trigger_helpers.pyi +1 -1
- homeassistant-stubs/components/zwave_js/update.pyi +28 -18
- homeassistant-stubs/config.pyi +0 -2
- homeassistant-stubs/config_entries.pyi +3 -0
- homeassistant-stubs/const.pyi +2 -0
- homeassistant-stubs/core.pyi +12 -8
- homeassistant-stubs/helpers/condition.pyi +25 -6
- homeassistant-stubs/helpers/config_validation.pyi +0 -2
- homeassistant-stubs/helpers/device.pyi +2 -0
- homeassistant-stubs/helpers/device_registry.pyi +16 -8
- homeassistant-stubs/helpers/entity.pyi +3 -1
- homeassistant-stubs/helpers/entity_platform.pyi +30 -9
- homeassistant-stubs/helpers/frame.pyi +1 -1
- homeassistant-stubs/helpers/helper_integration.pyi +2 -1
- homeassistant-stubs/helpers/llm.pyi +5 -1
- homeassistant-stubs/helpers/schema_config_entry_flow.pyi +1 -0
- homeassistant-stubs/helpers/selector.pyi +42 -37
- homeassistant-stubs/helpers/service.pyi +9 -26
- homeassistant-stubs/helpers/target.pyi +59 -0
- homeassistant-stubs/helpers/trigger.pyi +3 -1
- homeassistant-stubs/helpers/trigger_template_entity.pyi +5 -1
- homeassistant-stubs/loader.pyi +2 -9
- homeassistant-stubs/runner.pyi +1 -0
- homeassistant-stubs/util/resource.pyi +7 -0
- homeassistant-stubs/util/unit_conversion.pyi +1 -1
- {homeassistant_stubs-2025.7.3.dist-info → homeassistant_stubs-2025.8.0.dist-info}/METADATA +2 -2
- {homeassistant_stubs-2025.7.3.dist-info → homeassistant_stubs-2025.8.0.dist-info}/RECORD +493 -424
- homeassistant-stubs/components/backup/basic_websocket.pyi +0 -12
- homeassistant-stubs/helpers/backup.pyi +0 -24
- {homeassistant_stubs-2025.7.3.dist-info → homeassistant_stubs-2025.8.0.dist-info}/WHEEL +0 -0
- {homeassistant_stubs-2025.7.3.dist-info → homeassistant_stubs-2025.8.0.dist-info}/licenses/LICENSE +0 -0
homeassistant-stubs/const.pyi
CHANGED
|
@@ -210,6 +210,7 @@ CONF_PLATFORM: Final[str]
|
|
|
210
210
|
CONF_PORT: Final[str]
|
|
211
211
|
CONF_PREFIX: Final[str]
|
|
212
212
|
CONF_PROFILE_NAME: Final[str]
|
|
213
|
+
CONF_PROMPT: Final[str]
|
|
213
214
|
CONF_PROTOCOL: Final[str]
|
|
214
215
|
CONF_PROXY_SSL: Final[str]
|
|
215
216
|
CONF_QUOTE: Final[str]
|
|
@@ -569,6 +570,7 @@ class UnitOfPrecipitationDepth(StrEnum):
|
|
|
569
570
|
MILLIMETERS = 'mm'
|
|
570
571
|
CENTIMETERS = 'cm'
|
|
571
572
|
|
|
573
|
+
CONCENTRATION_GRAMS_PER_CUBIC_METER: Final[str]
|
|
572
574
|
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER: Final[str]
|
|
573
575
|
CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER: Final[str]
|
|
574
576
|
CONCENTRATION_MICROGRAMS_PER_CUBIC_FOOT: Final[str]
|
homeassistant-stubs/core.pyi
CHANGED
|
@@ -50,12 +50,14 @@ class ConfigSource(enum.StrEnum, deprecated={'DEFAULT': ('core_config.ConfigSour
|
|
|
50
50
|
|
|
51
51
|
class EventStateEventData(TypedDict):
|
|
52
52
|
entity_id: str
|
|
53
|
-
new_state: State | None
|
|
54
53
|
|
|
55
54
|
class EventStateChangedData(EventStateEventData):
|
|
55
|
+
new_state: State | None
|
|
56
56
|
old_state: State | None
|
|
57
57
|
|
|
58
58
|
class EventStateReportedData(EventStateEventData):
|
|
59
|
+
last_reported: datetime.datetime
|
|
60
|
+
new_state: State
|
|
59
61
|
old_last_reported: datetime.datetime
|
|
60
62
|
|
|
61
63
|
def _deprecated_core_config() -> Any: ...
|
|
@@ -328,15 +330,17 @@ class CompressedState(TypedDict):
|
|
|
328
330
|
lu: NotRequired[float]
|
|
329
331
|
|
|
330
332
|
class State:
|
|
333
|
+
entity_id: str
|
|
334
|
+
domain: str
|
|
335
|
+
object_id: str
|
|
336
|
+
state: str
|
|
337
|
+
attributes: ReadOnlyDict[str, Any]
|
|
338
|
+
last_changed: datetime.datetime
|
|
339
|
+
last_reported: datetime.datetime
|
|
340
|
+
last_updated: datetime.datetime
|
|
341
|
+
context: Context
|
|
331
342
|
__slots__: Incomplete
|
|
332
343
|
_cache: dict[str, Any]
|
|
333
|
-
entity_id: Incomplete
|
|
334
|
-
state: Incomplete
|
|
335
|
-
attributes: Incomplete
|
|
336
|
-
last_reported: Incomplete
|
|
337
|
-
last_updated: Incomplete
|
|
338
|
-
last_changed: Incomplete
|
|
339
|
-
context: Incomplete
|
|
340
344
|
state_info: Incomplete
|
|
341
345
|
last_updated_timestamp: Incomplete
|
|
342
346
|
def __init__(self, entity_id: str, state: str, attributes: Mapping[str, Any] | None = None, last_changed: datetime.datetime | None = None, last_reported: datetime.datetime | None = None, last_updated: datetime.datetime | None = None, context: Context | None = None, validate_entity_id: bool | None = True, state_info: StateInfo | None = None, last_updated_timestamp: float | None = None) -> None: ...
|
|
@@ -1,25 +1,43 @@
|
|
|
1
1
|
import abc
|
|
2
2
|
import logging
|
|
3
|
+
from .integration_platform import async_process_integration_platforms as async_process_integration_platforms
|
|
3
4
|
from .template import Template as Template, render_complex as render_complex
|
|
4
5
|
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
|
|
5
6
|
from .typing import ConfigType as ConfigType, TemplateVarsType as TemplateVarsType
|
|
6
7
|
from _typeshed import Incomplete
|
|
7
|
-
from collections.abc import Callable, Container, Generator
|
|
8
|
+
from collections.abc import Callable, Container, Coroutine, Generator, Iterable
|
|
8
9
|
from contextlib import contextmanager
|
|
9
10
|
from datetime import time as dt_time, timedelta
|
|
10
|
-
from homeassistant.
|
|
11
|
-
from homeassistant.const import ATTR_DEVICE_CLASS as ATTR_DEVICE_CLASS, ATTR_GPS_ACCURACY as ATTR_GPS_ACCURACY, ATTR_LATITUDE as ATTR_LATITUDE, ATTR_LONGITUDE as ATTR_LONGITUDE, 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, CONF_ZONE as CONF_ZONE, 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
|
|
11
|
+
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
|
|
12
12
|
from homeassistant.core import HomeAssistant as HomeAssistant, State as State, callback as callback
|
|
13
13
|
from homeassistant.exceptions import ConditionError as ConditionError, ConditionErrorContainer as ConditionErrorContainer, ConditionErrorIndex as ConditionErrorIndex, ConditionErrorMessage as ConditionErrorMessage, HomeAssistantError as HomeAssistantError, TemplateError as TemplateError
|
|
14
|
-
from homeassistant.loader import IntegrationNotFound as IntegrationNotFound, async_get_integration as async_get_integration
|
|
14
|
+
from homeassistant.loader import Integration as Integration, IntegrationNotFound as IntegrationNotFound, async_get_integration as async_get_integration, async_get_integrations as async_get_integrations
|
|
15
15
|
from homeassistant.util.async_ import run_callback_threadsafe as run_callback_threadsafe
|
|
16
|
+
from homeassistant.util.hass_dict import HassKey as HassKey
|
|
17
|
+
from homeassistant.util.yaml import load_yaml_dict as load_yaml_dict
|
|
18
|
+
from homeassistant.util.yaml.loader import JSON_TYPE as JSON_TYPE
|
|
16
19
|
from typing import Any, Protocol
|
|
17
20
|
|
|
18
21
|
ASYNC_FROM_CONFIG_FORMAT: str
|
|
19
22
|
FROM_CONFIG_FORMAT: str
|
|
20
23
|
VALIDATE_CONFIG_FORMAT: str
|
|
24
|
+
_LOGGER: Incomplete
|
|
21
25
|
_PLATFORM_ALIASES: dict[str | None, str | None]
|
|
22
26
|
INPUT_ENTITY_ID: Incomplete
|
|
27
|
+
CONDITION_DESCRIPTION_CACHE: HassKey[dict[str, dict[str, Any] | None]]
|
|
28
|
+
CONDITION_PLATFORM_SUBSCRIPTIONS: HassKey[list[Callable[[set[str]], Coroutine[Any, Any, None]]]]
|
|
29
|
+
CONDITIONS: HassKey[dict[str, str]]
|
|
30
|
+
_FIELD_SCHEMA: Incomplete
|
|
31
|
+
_CONDITION_SCHEMA: Incomplete
|
|
32
|
+
|
|
33
|
+
def starts_with_dot(key: str) -> str: ...
|
|
34
|
+
|
|
35
|
+
_CONDITIONS_SCHEMA: Incomplete
|
|
36
|
+
|
|
37
|
+
async def async_setup(hass: HomeAssistant) -> None: ...
|
|
38
|
+
@callback
|
|
39
|
+
def async_subscribe_platform_events(hass: HomeAssistant, on_event: Callable[[set[str]], Coroutine[Any, Any, None]]) -> Callable[[], None]: ...
|
|
40
|
+
async def _register_condition_platform(hass: HomeAssistant, integration_domain: str, platform: ConditionProtocol) -> None: ...
|
|
23
41
|
|
|
24
42
|
class Condition(abc.ABC, metaclass=abc.ABCMeta):
|
|
25
43
|
def __init__(self, hass: HomeAssistant, config: ConfigType) -> None: ...
|
|
@@ -54,8 +72,6 @@ def async_template(hass: HomeAssistant, value_template: Template, variables: Tem
|
|
|
54
72
|
def async_template_from_config(config: ConfigType) -> ConditionCheckerType: ...
|
|
55
73
|
def time(hass: HomeAssistant, before: dt_time | str | None = None, after: dt_time | str | None = None, weekday: str | Container[str] | None = None) -> bool: ...
|
|
56
74
|
def time_from_config(config: ConfigType) -> ConditionCheckerType: ...
|
|
57
|
-
def zone(hass: HomeAssistant, zone_ent: str | State | None, entity: str | State | None) -> bool: ...
|
|
58
|
-
def zone_from_config(config: ConfigType) -> ConditionCheckerType: ...
|
|
59
75
|
async def async_trigger_from_config(hass: HomeAssistant, config: ConfigType) -> ConditionCheckerType: ...
|
|
60
76
|
def numeric_state_validate_config(hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
|
|
61
77
|
def state_validate_config(hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
|
|
@@ -66,3 +82,6 @@ async def async_conditions_from_config(hass: HomeAssistant, condition_configs: l
|
|
|
66
82
|
def async_extract_entities(config: ConfigType | Template) -> set[str]: ...
|
|
67
83
|
@callback
|
|
68
84
|
def async_extract_devices(config: ConfigType | Template) -> set[str]: ...
|
|
85
|
+
def _load_conditions_file(hass: HomeAssistant, integration: Integration) -> JSON_TYPE: ...
|
|
86
|
+
def _load_conditions_files(hass: HomeAssistant, integrations: Iterable[Integration]) -> dict[str, JSON_TYPE]: ...
|
|
87
|
+
async def async_get_all_descriptions(hass: HomeAssistant) -> dict[str, dict[str, Any] | None]: ...
|
|
@@ -190,11 +190,9 @@ STATE_CONDITION_ATTRIBUTE_SCHEMA: Incomplete
|
|
|
190
190
|
|
|
191
191
|
def STATE_CONDITION_SCHEMA(value: Any) -> dict[str, Any]: ...
|
|
192
192
|
|
|
193
|
-
SUN_CONDITION_SCHEMA: Incomplete
|
|
194
193
|
TEMPLATE_CONDITION_SCHEMA: Incomplete
|
|
195
194
|
TIME_CONDITION_SCHEMA: Incomplete
|
|
196
195
|
TRIGGER_CONDITION_SCHEMA: Incomplete
|
|
197
|
-
ZONE_CONDITION_SCHEMA: Incomplete
|
|
198
196
|
AND_CONDITION_SCHEMA: Incomplete
|
|
199
197
|
AND_CONDITION_SHORTHAND_SCHEMA: Incomplete
|
|
200
198
|
OR_CONDITION_SCHEMA: Incomplete
|
|
@@ -4,6 +4,8 @@ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callb
|
|
|
4
4
|
@callback
|
|
5
5
|
def async_entity_id_to_device_id(hass: HomeAssistant, entity_id_or_uuid: str) -> str | None: ...
|
|
6
6
|
@callback
|
|
7
|
+
def async_entity_id_to_device(hass: HomeAssistant, entity_id_or_uuid: str) -> dr.DeviceEntry | None: ...
|
|
8
|
+
@callback
|
|
7
9
|
def async_device_info_to_link_from_entity(hass: HomeAssistant, entity_id_or_uuid: str) -> dr.DeviceInfo | None: ...
|
|
8
10
|
@callback
|
|
9
11
|
def async_device_info_to_link_from_device_id(hass: HomeAssistant, device_id: str | None) -> dr.DeviceInfo | None: ...
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from . import entity_registry as entity_registry, storage as storage, translation as translation
|
|
2
2
|
from .debounce import Debouncer as Debouncer
|
|
3
|
+
from .deprecation import deprecated_function as deprecated_function
|
|
3
4
|
from .frame import ReportBehavior as ReportBehavior, report_usage as report_usage
|
|
4
5
|
from .json import JSON_DUMP as JSON_DUMP, find_paths_unserializable_data as find_paths_unserializable_data, json_bytes as json_bytes, json_fragment as json_fragment
|
|
5
6
|
from .registry import BaseRegistry as BaseRegistry, BaseRegistryItems as BaseRegistryItems, RegistryIndexType as RegistryIndexType
|
|
@@ -68,15 +69,20 @@ DEVICE_INFO_TYPES: Incomplete
|
|
|
68
69
|
DEVICE_INFO_KEYS: Incomplete
|
|
69
70
|
LOW_PRIO_CONFIG_ENTRY_DOMAINS: Incomplete
|
|
70
71
|
|
|
71
|
-
class
|
|
72
|
-
action: Literal['create'
|
|
72
|
+
class _EventDeviceRegistryUpdatedData_Create(TypedDict):
|
|
73
|
+
action: Literal['create']
|
|
73
74
|
device_id: str
|
|
74
75
|
|
|
76
|
+
class _EventDeviceRegistryUpdatedData_Remove(TypedDict):
|
|
77
|
+
action: Literal['remove']
|
|
78
|
+
device_id: str
|
|
79
|
+
device: dict[str, Any]
|
|
80
|
+
|
|
75
81
|
class _EventDeviceRegistryUpdatedData_Update(TypedDict):
|
|
76
82
|
action: Literal['update']
|
|
77
83
|
device_id: str
|
|
78
84
|
changes: dict[str, Any]
|
|
79
|
-
type EventDeviceRegistryUpdatedData =
|
|
85
|
+
type EventDeviceRegistryUpdatedData = _EventDeviceRegistryUpdatedData_Create | _EventDeviceRegistryUpdatedData_Remove | _EventDeviceRegistryUpdatedData_Update
|
|
80
86
|
|
|
81
87
|
class DeviceEntryType(StrEnum):
|
|
82
88
|
SERVICE = 'service'
|
|
@@ -99,6 +105,9 @@ def _validate_device_info(config_entry: ConfigEntry, device_info: DeviceInfo) ->
|
|
|
99
105
|
_cached_parse_url: Incomplete
|
|
100
106
|
|
|
101
107
|
def _validate_configuration_url(value: Any) -> str | None: ...
|
|
108
|
+
def format_mac(mac: str) -> str: ...
|
|
109
|
+
def _normalize_connections(connections: Iterable[tuple[str, str]]) -> set[tuple[str, str]]: ...
|
|
110
|
+
def _normalize_connections_validator(instance: Any, attribute: Any, connections: Iterable[tuple[str, str]]) -> None: ...
|
|
102
111
|
|
|
103
112
|
class DeviceEntry:
|
|
104
113
|
area_id: str | None
|
|
@@ -121,7 +130,7 @@ class DeviceEntry:
|
|
|
121
130
|
name: str | None
|
|
122
131
|
primary_config_entry: str | None
|
|
123
132
|
serial_number: str | None
|
|
124
|
-
|
|
133
|
+
_suggested_area: str | None
|
|
125
134
|
sw_version: str | None
|
|
126
135
|
via_device_id: str | None
|
|
127
136
|
is_new: bool
|
|
@@ -134,6 +143,8 @@ class DeviceEntry:
|
|
|
134
143
|
def json_repr(self) -> bytes | None: ...
|
|
135
144
|
@under_cached_property
|
|
136
145
|
def as_storage_fragment(self) -> json_fragment: ...
|
|
146
|
+
@property
|
|
147
|
+
def suggested_area(self) -> str | None: ...
|
|
137
148
|
def __init__(self, area_id, config_entries, config_entries_subentries, configuration_url, connections, created_at, disabled_by, entry_type, hw_version, id, identifiers, labels, manufacturer, model, model_id, modified_at, name_by_user, name, primary_config_entry, serial_number, suggested_area, sw_version, via_device_id, is_new, cache) -> None: ...
|
|
138
149
|
def __lt__(self, other): ...
|
|
139
150
|
def __le__(self, other): ...
|
|
@@ -163,8 +174,6 @@ class DeletedDeviceEntry:
|
|
|
163
174
|
def __gt__(self, other): ...
|
|
164
175
|
def __ge__(self, other): ...
|
|
165
176
|
|
|
166
|
-
def format_mac(mac: str) -> str: ...
|
|
167
|
-
|
|
168
177
|
class DeviceRegistryStore(storage.Store[dict[str, list[dict[str, Any]]]]):
|
|
169
178
|
async def _async_migrate_func(self, old_major_version: int, old_minor_version: int, old_data: dict[str, list[dict[str, Any]]]) -> dict[str, Any]: ...
|
|
170
179
|
|
|
@@ -203,7 +212,7 @@ class DeviceRegistry(BaseRegistry[dict[str, list[dict[str, Any]]]]):
|
|
|
203
212
|
@callback
|
|
204
213
|
def async_get_or_create(self, *, config_entry_id: str, config_subentry_id: str | None | UndefinedType = ..., configuration_url: str | URL | None | UndefinedType = ..., connections: set[tuple[str, str]] | None | UndefinedType = ..., created_at: str | datetime | UndefinedType = ..., default_manufacturer: str | None | UndefinedType = ..., default_model: str | None | UndefinedType = ..., default_name: str | None | UndefinedType = ..., disabled_by: DeviceEntryDisabler | None | UndefinedType = ..., entry_type: DeviceEntryType | None | UndefinedType = ..., hw_version: str | None | UndefinedType = ..., identifiers: set[tuple[str, str]] | None | UndefinedType = ..., manufacturer: str | None | UndefinedType = ..., model: str | None | UndefinedType = ..., model_id: str | None | UndefinedType = ..., modified_at: str | datetime | UndefinedType = ..., name: str | None | UndefinedType = ..., serial_number: str | None | UndefinedType = ..., suggested_area: str | None | UndefinedType = ..., sw_version: str | None | UndefinedType = ..., translation_key: str | None = None, translation_placeholders: Mapping[str, str] | None = None, via_device: tuple[str, str] | None | UndefinedType = ...) -> DeviceEntry: ...
|
|
205
214
|
@callback
|
|
206
|
-
def async_update_device(self, device_id: str, *, add_config_entry_id: str | UndefinedType = ..., add_config_subentry_id: str | None | UndefinedType = ..., allow_collisions: bool = False, area_id: str | None | UndefinedType = ..., configuration_url: str | URL | None | UndefinedType = ..., device_info_type: str | UndefinedType = ..., disabled_by: DeviceEntryDisabler | None | UndefinedType = ..., entry_type: DeviceEntryType | None | UndefinedType = ..., hw_version: str | None | UndefinedType = ..., labels: set[str] | UndefinedType = ..., manufacturer: str | None | UndefinedType = ..., merge_connections: set[tuple[str, str]] | UndefinedType = ..., merge_identifiers: set[tuple[str, str]] | UndefinedType = ..., model: str | None | UndefinedType = ..., model_id: str | None | UndefinedType = ..., name_by_user: str | None | UndefinedType = ..., name: str | None | UndefinedType = ..., new_connections: set[tuple[str, str]] | UndefinedType = ..., new_identifiers: set[tuple[str, str]] | UndefinedType = ..., remove_config_entry_id: str | UndefinedType = ..., remove_config_subentry_id: str | None | UndefinedType = ..., serial_number: str | None | UndefinedType = ..., suggested_area: str | None | UndefinedType = ..., sw_version: str | None | UndefinedType = ..., via_device_id: str | None | UndefinedType = ...) -> DeviceEntry | None: ...
|
|
215
|
+
def async_update_device(self, device_id: str, *, add_config_entry_id: str | UndefinedType = ..., add_config_subentry_id: str | None | UndefinedType = ..., allow_collisions: bool = False, area_id: str | None | UndefinedType = ..., configuration_url: str | URL | None | UndefinedType = ..., device_info_type: str | UndefinedType = ..., disabled_by: DeviceEntryDisabler | None | UndefinedType = ..., entry_type: DeviceEntryType | None | UndefinedType = ..., hw_version: str | None | UndefinedType = ..., labels: set[str] | UndefinedType = ..., manufacturer: str | None | UndefinedType = ..., merge_connections: set[tuple[str, str]] | UndefinedType = ..., merge_identifiers: set[tuple[str, str]] | UndefinedType = ..., model: str | None | UndefinedType = ..., model_id: str | None | UndefinedType = ..., name_by_user: str | None | UndefinedType = ..., name: str | None | UndefinedType = ..., new_connections: set[tuple[str, str]] | UndefinedType = ..., new_identifiers: set[tuple[str, str]] | UndefinedType = ..., remove_config_entry_id: str | UndefinedType = ..., remove_config_subentry_id: str | None | UndefinedType = ..., serial_number: str | None | UndefinedType = ..., _suggested_area: str | None | UndefinedType = ..., suggested_area: str | None | UndefinedType = ..., sw_version: str | None | UndefinedType = ..., via_device_id: str | None | UndefinedType = ...) -> DeviceEntry | None: ...
|
|
207
216
|
@callback
|
|
208
217
|
def _validate_connections(self, device_id: str, connections: set[tuple[str, str]], allow_collisions: bool) -> set[tuple[str, str]]: ...
|
|
209
218
|
@callback
|
|
@@ -239,4 +248,3 @@ def async_config_entry_disabled_by_changed(registry: DeviceRegistry, config_entr
|
|
|
239
248
|
def async_cleanup(hass: HomeAssistant, dev_reg: DeviceRegistry, ent_reg: entity_registry.EntityRegistry) -> None: ...
|
|
240
249
|
@callback
|
|
241
250
|
def async_setup_cleanup(hass: HomeAssistant, dev_reg: DeviceRegistry) -> None: ...
|
|
242
|
-
def _normalize_connections(connections: set[tuple[str, str]]) -> set[tuple[str, str]]: ...
|
|
@@ -3,7 +3,7 @@ import dataclasses
|
|
|
3
3
|
import time
|
|
4
4
|
from . import device_registry as dr, entity_registry as er, singleton as singleton
|
|
5
5
|
from .device_registry import DeviceInfo as DeviceInfo, EventDeviceRegistryUpdatedData as EventDeviceRegistryUpdatedData
|
|
6
|
-
from .entity_platform import EntityPlatform as EntityPlatform
|
|
6
|
+
from .entity_platform import EntityPlatform as EntityPlatform, PlatformData as PlatformData
|
|
7
7
|
from .event import async_track_device_registry_updated_event as async_track_device_registry_updated_event, async_track_entity_registry_updated_event as async_track_entity_registry_updated_event
|
|
8
8
|
from .frame import report_non_thread_safe_operation as report_non_thread_safe_operation
|
|
9
9
|
from .typing import StateType as StateType, UNDEFINED as UNDEFINED, UndefinedType as UndefinedType
|
|
@@ -54,6 +54,7 @@ class StateInfo(TypedDict):
|
|
|
54
54
|
|
|
55
55
|
class EntityPlatformState(Enum):
|
|
56
56
|
NOT_ADDED = ...
|
|
57
|
+
ADDING = ...
|
|
57
58
|
ADDED = ...
|
|
58
59
|
REMOVED = ...
|
|
59
60
|
|
|
@@ -91,6 +92,7 @@ class Entity(cached_properties=CACHED_PROPERTIES_WITH_ATTR_, metaclass=ABCCached
|
|
|
91
92
|
entity_id: str
|
|
92
93
|
hass: HomeAssistant
|
|
93
94
|
platform: EntityPlatform
|
|
95
|
+
platform_data: PlatformData
|
|
94
96
|
entity_description: EntityDescription
|
|
95
97
|
_slow_reported: bool
|
|
96
98
|
_deprecated_supported_features_reported: bool
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
from . import device_registry as dev_reg, service as service, translation as translation
|
|
3
|
+
from .deprecation import deprecated_function as deprecated_function
|
|
3
4
|
from .entity import Entity as Entity
|
|
4
5
|
from .entity_registry import EntityRegistry as EntityRegistry, RegistryEntryDisabler as RegistryEntryDisabler, RegistryEntryHider as RegistryEntryHider
|
|
5
6
|
from .event import async_call_later as async_call_later
|
|
@@ -42,22 +43,28 @@ class EntityPlatformModule(Protocol):
|
|
|
42
43
|
def setup_platform(self, hass: HomeAssistant, config: ConfigType, add_entities: AddEntitiesCallback, discovery_info: DiscoveryInfoType | None = None) -> None: ...
|
|
43
44
|
async def async_setup_entry(self, hass: HomeAssistant, entry: config_entries.ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
44
45
|
|
|
45
|
-
class
|
|
46
|
+
class PlatformData:
|
|
46
47
|
hass: Incomplete
|
|
47
|
-
logger: Incomplete
|
|
48
48
|
domain: Incomplete
|
|
49
49
|
platform_name: Incomplete
|
|
50
|
+
component_translations: dict[str, str]
|
|
51
|
+
platform_translations: dict[str, str]
|
|
52
|
+
object_id_component_translations: dict[str, str]
|
|
53
|
+
object_id_platform_translations: dict[str, str]
|
|
54
|
+
default_language_platform_translations: dict[str, str]
|
|
55
|
+
def __init__(self, hass: HomeAssistant, *, domain: str, platform_name: str) -> None: ...
|
|
56
|
+
async def _async_get_translations(self, language: str, category: str, integration: str) -> dict[str, str]: ...
|
|
57
|
+
async def async_load_translations(self) -> None: ...
|
|
58
|
+
|
|
59
|
+
class EntityPlatform:
|
|
60
|
+
hass: Incomplete
|
|
61
|
+
logger: Incomplete
|
|
50
62
|
platform: Incomplete
|
|
51
63
|
scan_interval: Incomplete
|
|
52
64
|
scan_interval_seconds: Incomplete
|
|
53
65
|
entity_namespace: Incomplete
|
|
54
66
|
config_entry: config_entries.ConfigEntry | None
|
|
55
67
|
entities: dict[str, Entity]
|
|
56
|
-
component_translations: dict[str, str]
|
|
57
|
-
platform_translations: dict[str, str]
|
|
58
|
-
object_id_component_translations: dict[str, str]
|
|
59
|
-
object_id_platform_translations: dict[str, str]
|
|
60
|
-
default_language_platform_translations: dict[str, str]
|
|
61
68
|
_tasks: list[asyncio.Task[None]]
|
|
62
69
|
_setup_complete: bool
|
|
63
70
|
_async_polling_timer: asyncio.TimerHandle | None
|
|
@@ -68,6 +75,7 @@ class EntityPlatform:
|
|
|
68
75
|
parallel_updates_created: Incomplete
|
|
69
76
|
domain_entities: Incomplete
|
|
70
77
|
domain_platform_entities: Incomplete
|
|
78
|
+
platform_data: Incomplete
|
|
71
79
|
def __init__(self, *, hass: HomeAssistant, logger: Logger, domain: str, platform_name: str, platform: EntityPlatformModule | None, scan_interval: timedelta, entity_namespace: str | None) -> None: ...
|
|
72
80
|
def __repr__(self) -> str: ...
|
|
73
81
|
@callback
|
|
@@ -79,8 +87,6 @@ class EntityPlatform:
|
|
|
79
87
|
def async_cancel_retry_setup(self) -> None: ...
|
|
80
88
|
async def async_setup_entry(self, config_entry: config_entries.ConfigEntry) -> bool: ...
|
|
81
89
|
async def _async_setup_platform(self, async_create_setup_awaitable: Callable[[], Awaitable[None]], tries: int = 0) -> bool: ...
|
|
82
|
-
async def _async_get_translations(self, language: str, category: str, integration: str) -> dict[str, str]: ...
|
|
83
|
-
async def async_load_translations(self) -> None: ...
|
|
84
90
|
def _schedule_add_entities(self, new_entities: Iterable[Entity], update_before_add: bool = False) -> None: ...
|
|
85
91
|
@callback
|
|
86
92
|
def _async_schedule_add_entities(self, new_entities: Iterable[Entity], update_before_add: bool = False) -> None: ...
|
|
@@ -105,6 +111,21 @@ class EntityPlatform:
|
|
|
105
111
|
@callback
|
|
106
112
|
def async_register_entity_service(self, name: str, schema: VolDictType | VolSchemaType | None, func: str | Callable[..., Any], required_features: Iterable[int] | None = None, supports_response: SupportsResponse = ...) -> None: ...
|
|
107
113
|
async def _async_update_entity_states(self) -> None: ...
|
|
114
|
+
@property
|
|
115
|
+
def domain(self) -> str: ...
|
|
116
|
+
@property
|
|
117
|
+
def platform_name(self) -> str: ...
|
|
118
|
+
@property
|
|
119
|
+
def component_translations(self) -> dict[str, str]: ...
|
|
120
|
+
@property
|
|
121
|
+
def platform_translations(self) -> dict[str, str]: ...
|
|
122
|
+
@property
|
|
123
|
+
def object_id_component_translations(self) -> dict[str, str]: ...
|
|
124
|
+
@property
|
|
125
|
+
def object_id_platform_translations(self) -> dict[str, str]: ...
|
|
126
|
+
@property
|
|
127
|
+
def default_language_platform_translations(self) -> dict[str, str]: ...
|
|
128
|
+
async def async_load_translations(self) -> None: ...
|
|
108
129
|
|
|
109
130
|
@callback
|
|
110
131
|
def async_calculate_suggested_object_id(entity: Entity, device: dev_reg.DeviceEntry | None) -> str | None: ...
|
|
@@ -47,7 +47,7 @@ class ReportBehavior(enum.Enum):
|
|
|
47
47
|
ERROR = ...
|
|
48
48
|
|
|
49
49
|
def report_usage(what: str, *, breaks_in_ha_version: str | None = None, core_behavior: ReportBehavior = ..., core_integration_behavior: ReportBehavior = ..., custom_integration_behavior: ReportBehavior = ..., exclude_integrations: set[str] | None = None, integration_domain: str | None = None, level: int = ...) -> None: ...
|
|
50
|
-
def _report_usage(hass: HomeAssistant, what: str, *, breaks_in_ha_version: str | None, core_behavior: ReportBehavior, core_integration_behavior: ReportBehavior, custom_integration_behavior: ReportBehavior,
|
|
50
|
+
def _report_usage(hass: HomeAssistant, what: str, *, breaks_in_ha_version: str | None, core_behavior: ReportBehavior, core_integration_behavior: ReportBehavior, custom_integration_behavior: ReportBehavior, integration_domain: str | None, integration_frame: IntegrationFrame | None, integration_frame_err: MissingIntegrationFrame | None, level: int) -> None: ...
|
|
51
51
|
def _report_usage_integration_domain(hass: HomeAssistant | None, what: str, breaks_in_ha_version: str | None, integration: Integration, core_integration_behavior: ReportBehavior, custom_integration_behavior: ReportBehavior, level: int) -> None: ...
|
|
52
52
|
def _report_usage_integration_frame(hass: HomeAssistant, what: str, breaks_in_ha_version: str | None, integration_frame: IntegrationFrame, level: int = ..., error: bool = False) -> None: ...
|
|
53
53
|
def _report_usage_no_integration(what: str, core_behavior: ReportBehavior, breaks_in_ha_version: str | None, err: MissingIntegrationFrame | None) -> None: ...
|
|
@@ -3,4 +3,5 @@ from collections.abc import Callable as Callable, Coroutine
|
|
|
3
3
|
from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Event as Event, HomeAssistant as HomeAssistant, valid_entity_id as valid_entity_id
|
|
4
4
|
from typing import Any
|
|
5
5
|
|
|
6
|
-
def async_handle_source_entity_changes(hass: HomeAssistant, *, helper_config_entry_id: str, set_source_entity_id_or_uuid: Callable[[str], None], source_device_id: str | None, source_entity_id_or_uuid: str, source_entity_removed: Callable[[], Coroutine[Any, Any, None]]) -> CALLBACK_TYPE: ...
|
|
6
|
+
def async_handle_source_entity_changes(hass: HomeAssistant, *, add_helper_config_entry_to_device: bool = True, helper_config_entry_id: str, set_source_entity_id_or_uuid: Callable[[str], None], source_device_id: str | None, source_entity_id_or_uuid: str, source_entity_removed: Callable[[], Coroutine[Any, Any, None]] | None = None) -> CALLBACK_TYPE: ...
|
|
7
|
+
def async_remove_helper_config_entry_from_source_device(hass: HomeAssistant, *, helper_config_entry_id: str, source_device_id: str) -> None: ...
|
|
@@ -84,6 +84,10 @@ class IntentTool(Tool):
|
|
|
84
84
|
def __init__(self, name: str, intent_handler: intent.IntentHandler) -> None: ...
|
|
85
85
|
async def async_call(self, hass: HomeAssistant, tool_input: ToolInput, llm_context: LLMContext) -> JsonObjectType: ...
|
|
86
86
|
|
|
87
|
+
class IntentResponseDict(dict):
|
|
88
|
+
original: Incomplete
|
|
89
|
+
def __init__(self, intent_response: Any) -> None: ...
|
|
90
|
+
|
|
87
91
|
class NamespacedTool(Tool):
|
|
88
92
|
namespace: Incomplete
|
|
89
93
|
name: Incomplete
|
|
@@ -114,7 +118,7 @@ class AssistAPI(API):
|
|
|
114
118
|
def _async_get_tools(self, llm_context: LLMContext, exposed_entities: dict | None) -> list[Tool]: ...
|
|
115
119
|
|
|
116
120
|
def _get_exposed_entities(hass: HomeAssistant, assistant: str, include_state: bool = True) -> dict[str, dict[str, dict[str, Any]]]: ...
|
|
117
|
-
def
|
|
121
|
+
def selector_serializer(schema: Any) -> Any: ...
|
|
118
122
|
def _get_cached_action_parameters(hass: HomeAssistant, domain: str, action: str) -> tuple[str | None, vol.Schema]: ...
|
|
119
123
|
|
|
120
124
|
class ActionTool(Tool):
|
|
@@ -22,6 +22,7 @@ class SchemaFlowFormStep(SchemaFlowStep):
|
|
|
22
22
|
next_step: Callable[[dict[str, Any]], Coroutine[Any, Any, str | None]] | str | None = ...
|
|
23
23
|
suggested_values: Callable[[SchemaCommonFlowHandler], Coroutine[Any, Any, dict[str, Any]]] | None | UndefinedType = ...
|
|
24
24
|
preview: str | None = ...
|
|
25
|
+
description_placeholders: Callable[[SchemaCommonFlowHandler], Coroutine[Any, Any, dict[str, str]]] | UndefinedType = ...
|
|
25
26
|
|
|
26
27
|
@dataclass(slots=True)
|
|
27
28
|
class SchemaFlowMenuStep(SchemaFlowStep):
|
|
@@ -26,7 +26,7 @@ class Selector[_T: Mapping[str, Any]]:
|
|
|
26
26
|
@cache
|
|
27
27
|
def _entity_feature_flag(domain: str, enum_name: str, feature_name: str) -> int: ...
|
|
28
28
|
def _validate_supported_feature(supported_feature: str) -> int: ...
|
|
29
|
-
def _validate_supported_features(supported_features:
|
|
29
|
+
def _validate_supported_features(supported_features: list[str]) -> int: ...
|
|
30
30
|
|
|
31
31
|
BASE_SELECTOR_CONFIG_SCHEMA: Incomplete
|
|
32
32
|
|
|
@@ -34,6 +34,7 @@ class BaseSelectorConfig(TypedDict, total=False):
|
|
|
34
34
|
read_only: bool
|
|
35
35
|
|
|
36
36
|
ENTITY_FILTER_SELECTOR_CONFIG_SCHEMA: Incomplete
|
|
37
|
+
LEGACY_ENTITY_SELECTOR_CONFIG_SCHEMA: Incomplete
|
|
37
38
|
|
|
38
39
|
class EntityFilterSelectorConfig(TypedDict, total=False):
|
|
39
40
|
integration: str
|
|
@@ -42,6 +43,7 @@ class EntityFilterSelectorConfig(TypedDict, total=False):
|
|
|
42
43
|
supported_features: list[str]
|
|
43
44
|
|
|
44
45
|
DEVICE_FILTER_SELECTOR_CONFIG_SCHEMA: Incomplete
|
|
46
|
+
LEGACY_DEVICE_SELECTOR_CONFIG_SCHEMA: Incomplete
|
|
45
47
|
|
|
46
48
|
class DeviceFilterSelectorConfig(TypedDict, total=False):
|
|
47
49
|
integration: str
|
|
@@ -165,23 +167,6 @@ class ConstantSelector(Selector[ConstantSelectorConfig]):
|
|
|
165
167
|
def __init__(self, config: ConstantSelectorConfig) -> None: ...
|
|
166
168
|
def __call__(self, data: Any) -> Any: ...
|
|
167
169
|
|
|
168
|
-
class QrErrorCorrectionLevel(StrEnum):
|
|
169
|
-
LOW = 'low'
|
|
170
|
-
MEDIUM = 'medium'
|
|
171
|
-
QUARTILE = 'quartile'
|
|
172
|
-
HIGH = 'high'
|
|
173
|
-
|
|
174
|
-
class QrCodeSelectorConfig(BaseSelectorConfig, total=False):
|
|
175
|
-
data: str
|
|
176
|
-
scale: int
|
|
177
|
-
error_correction_level: QrErrorCorrectionLevel
|
|
178
|
-
|
|
179
|
-
class QrCodeSelector(Selector[QrCodeSelectorConfig]):
|
|
180
|
-
selector_type: str
|
|
181
|
-
CONFIG_SCHEMA: Incomplete
|
|
182
|
-
def __init__(self, config: QrCodeSelectorConfig) -> None: ...
|
|
183
|
-
def __call__(self, data: Any) -> Any: ...
|
|
184
|
-
|
|
185
170
|
class ConversationAgentSelectorConfig(BaseSelectorConfig, total=False):
|
|
186
171
|
language: str
|
|
187
172
|
|
|
@@ -243,6 +228,7 @@ class EntitySelectorConfig(BaseSelectorConfig, EntityFilterSelectorConfig, total
|
|
|
243
228
|
exclude_entities: list[str]
|
|
244
229
|
include_entities: list[str]
|
|
245
230
|
multiple: bool
|
|
231
|
+
reorder: bool
|
|
246
232
|
filter: EntityFilterSelectorConfig | list[EntityFilterSelectorConfig]
|
|
247
233
|
|
|
248
234
|
class EntitySelector(Selector[EntitySelectorConfig]):
|
|
@@ -251,6 +237,15 @@ class EntitySelector(Selector[EntitySelectorConfig]):
|
|
|
251
237
|
def __init__(self, config: EntitySelectorConfig | None = None) -> None: ...
|
|
252
238
|
def __call__(self, data: Any) -> str | list[str]: ...
|
|
253
239
|
|
|
240
|
+
class FileSelectorConfig(BaseSelectorConfig):
|
|
241
|
+
accept: str
|
|
242
|
+
|
|
243
|
+
class FileSelector(Selector[FileSelectorConfig]):
|
|
244
|
+
selector_type: str
|
|
245
|
+
CONFIG_SCHEMA: Incomplete
|
|
246
|
+
def __init__(self, config: FileSelectorConfig) -> None: ...
|
|
247
|
+
def __call__(self, data: Any) -> str: ...
|
|
248
|
+
|
|
254
249
|
class FloorSelectorConfig(BaseSelectorConfig, total=False):
|
|
255
250
|
entity: EntityFilterSelectorConfig | list[EntityFilterSelectorConfig]
|
|
256
251
|
device: DeviceFilterSelectorConfig | list[DeviceFilterSelectorConfig]
|
|
@@ -310,7 +305,7 @@ class MediaSelector(Selector[MediaSelectorConfig]):
|
|
|
310
305
|
CONFIG_SCHEMA: Incomplete
|
|
311
306
|
DATA_SCHEMA: Incomplete
|
|
312
307
|
def __init__(self, config: MediaSelectorConfig | None = None) -> None: ...
|
|
313
|
-
def __call__(self, data: Any) -> dict[str,
|
|
308
|
+
def __call__(self, data: Any) -> dict[str, str]: ...
|
|
314
309
|
|
|
315
310
|
class NumberSelectorConfig(BaseSelectorConfig, total=False):
|
|
316
311
|
min: float
|
|
@@ -318,6 +313,7 @@ class NumberSelectorConfig(BaseSelectorConfig, total=False):
|
|
|
318
313
|
step: float | Literal['any']
|
|
319
314
|
unit_of_measurement: str
|
|
320
315
|
mode: NumberSelectorMode
|
|
316
|
+
translation_key: str
|
|
321
317
|
|
|
322
318
|
class NumberSelectorMode(StrEnum):
|
|
323
319
|
BOX = 'box'
|
|
@@ -349,6 +345,23 @@ class ObjectSelector(Selector[ObjectSelectorConfig]):
|
|
|
349
345
|
def __init__(self, config: ObjectSelectorConfig | None = None) -> None: ...
|
|
350
346
|
def __call__(self, data: Any) -> Any: ...
|
|
351
347
|
|
|
348
|
+
class QrErrorCorrectionLevel(StrEnum):
|
|
349
|
+
LOW = 'low'
|
|
350
|
+
MEDIUM = 'medium'
|
|
351
|
+
QUARTILE = 'quartile'
|
|
352
|
+
HIGH = 'high'
|
|
353
|
+
|
|
354
|
+
class QrCodeSelectorConfig(BaseSelectorConfig, total=False):
|
|
355
|
+
data: str
|
|
356
|
+
scale: int
|
|
357
|
+
error_correction_level: QrErrorCorrectionLevel
|
|
358
|
+
|
|
359
|
+
class QrCodeSelector(Selector[QrCodeSelectorConfig]):
|
|
360
|
+
selector_type: str
|
|
361
|
+
CONFIG_SCHEMA: Incomplete
|
|
362
|
+
def __init__(self, config: QrCodeSelectorConfig) -> None: ...
|
|
363
|
+
def __call__(self, data: Any) -> Any: ...
|
|
364
|
+
|
|
352
365
|
select_option: Incomplete
|
|
353
366
|
|
|
354
367
|
class SelectOptionDict(TypedDict):
|
|
@@ -373,6 +386,16 @@ class SelectSelector(Selector[SelectSelectorConfig]):
|
|
|
373
386
|
def __init__(self, config: SelectSelectorConfig) -> None: ...
|
|
374
387
|
def __call__(self, data: Any) -> Any: ...
|
|
375
388
|
|
|
389
|
+
class StateSelectorConfig(BaseSelectorConfig, total=False):
|
|
390
|
+
entity_id: str
|
|
391
|
+
hide_states: list[str]
|
|
392
|
+
|
|
393
|
+
class StateSelector(Selector[StateSelectorConfig]):
|
|
394
|
+
selector_type: str
|
|
395
|
+
CONFIG_SCHEMA: Incomplete
|
|
396
|
+
def __init__(self, config: StateSelectorConfig) -> None: ...
|
|
397
|
+
def __call__(self, data: Any) -> str: ...
|
|
398
|
+
|
|
376
399
|
class StatisticSelectorConfig(BaseSelectorConfig, total=False):
|
|
377
400
|
multiple: bool
|
|
378
401
|
|
|
@@ -386,15 +409,6 @@ class TargetSelectorConfig(BaseSelectorConfig, total=False):
|
|
|
386
409
|
entity: EntityFilterSelectorConfig | list[EntityFilterSelectorConfig]
|
|
387
410
|
device: DeviceFilterSelectorConfig | list[DeviceFilterSelectorConfig]
|
|
388
411
|
|
|
389
|
-
class StateSelectorConfig(BaseSelectorConfig, total=False):
|
|
390
|
-
entity_id: Required[str]
|
|
391
|
-
|
|
392
|
-
class StateSelector(Selector[StateSelectorConfig]):
|
|
393
|
-
selector_type: str
|
|
394
|
-
CONFIG_SCHEMA: Incomplete
|
|
395
|
-
def __init__(self, config: StateSelectorConfig) -> None: ...
|
|
396
|
-
def __call__(self, data: Any) -> str: ...
|
|
397
|
-
|
|
398
412
|
class TargetSelector(Selector[TargetSelectorConfig]):
|
|
399
413
|
selector_type: str
|
|
400
414
|
CONFIG_SCHEMA: Incomplete
|
|
@@ -462,12 +476,3 @@ class TriggerSelector(Selector[TriggerSelectorConfig]):
|
|
|
462
476
|
CONFIG_SCHEMA = BASE_SELECTOR_CONFIG_SCHEMA
|
|
463
477
|
def __init__(self, config: TriggerSelectorConfig | None = None) -> None: ...
|
|
464
478
|
def __call__(self, data: Any) -> Any: ...
|
|
465
|
-
|
|
466
|
-
class FileSelectorConfig(BaseSelectorConfig):
|
|
467
|
-
accept: str
|
|
468
|
-
|
|
469
|
-
class FileSelector(Selector[FileSelectorConfig]):
|
|
470
|
-
selector_type: str
|
|
471
|
-
CONFIG_SCHEMA: Incomplete
|
|
472
|
-
def __init__(self, config: FileSelectorConfig) -> None: ...
|
|
473
|
-
def __call__(self, data: Any) -> str: ...
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import
|
|
2
|
-
from . import
|
|
1
|
+
import logging
|
|
2
|
+
from . import device_registry as device_registry, entity_registry as entity_registry, selector as selector, target as target_helpers, template as template, translation as translation
|
|
3
|
+
from .deprecation import deprecated_class as deprecated_class, deprecated_function as deprecated_function
|
|
3
4
|
from .entity import Entity as Entity
|
|
4
|
-
from .group import expand_entity_ids as expand_entity_ids
|
|
5
5
|
from .selector import TargetSelector as TargetSelector
|
|
6
6
|
from .typing import ConfigType as ConfigType, TemplateVarsType as TemplateVarsType, VolDictType as VolDictType, VolSchemaType as VolSchemaType
|
|
7
7
|
from _typeshed import Incomplete
|
|
8
8
|
from collections.abc import Callable as Callable, Coroutine, Iterable
|
|
9
9
|
from functools import cache
|
|
10
10
|
from homeassistant.auth.permissions.const import CAT_ENTITIES as CAT_ENTITIES, POLICY_CONTROL as POLICY_CONTROL
|
|
11
|
-
from homeassistant.const import
|
|
11
|
+
from homeassistant.const import ATTR_ENTITY_ID as ATTR_ENTITY_ID, CONF_ACTION as CONF_ACTION, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_SELECTOR as CONF_SELECTOR, CONF_SERVICE_DATA as CONF_SERVICE_DATA, CONF_SERVICE_DATA_TEMPLATE as CONF_SERVICE_DATA_TEMPLATE, CONF_SERVICE_TEMPLATE as CONF_SERVICE_TEMPLATE, CONF_TARGET as CONF_TARGET, ENTITY_MATCH_ALL as ENTITY_MATCH_ALL, ENTITY_MATCH_NONE as ENTITY_MATCH_NONE
|
|
12
12
|
from homeassistant.core import Context as Context, EntityServiceResponse as EntityServiceResponse, HassJob as HassJob, HassJobType as HassJobType, HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse, callback as callback
|
|
13
13
|
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceNotSupported as ServiceNotSupported, TemplateError as TemplateError, Unauthorized as Unauthorized, UnknownUser as UnknownUser
|
|
14
14
|
from homeassistant.loader import Integration as Integration, async_get_integrations as async_get_integrations, bind_hass as bind_hass
|
|
@@ -17,7 +17,7 @@ from homeassistant.util.hass_dict import HassKey as HassKey
|
|
|
17
17
|
from homeassistant.util.yaml import load_yaml_dict as load_yaml_dict
|
|
18
18
|
from homeassistant.util.yaml.loader import JSON_TYPE as JSON_TYPE
|
|
19
19
|
from types import ModuleType
|
|
20
|
-
from typing import Any,
|
|
20
|
+
from typing import Any, TypedDict, override
|
|
21
21
|
|
|
22
22
|
CONF_SERVICE_ENTITY_ID: str
|
|
23
23
|
_LOGGER: Incomplete
|
|
@@ -44,28 +44,12 @@ class ServiceParams(TypedDict):
|
|
|
44
44
|
service_data: dict[str, Any]
|
|
45
45
|
target: dict | None
|
|
46
46
|
|
|
47
|
-
class ServiceTargetSelector:
|
|
48
|
-
__slots__: Incomplete
|
|
49
|
-
entity_ids: Incomplete
|
|
50
|
-
device_ids: Incomplete
|
|
51
|
-
area_ids: Incomplete
|
|
52
|
-
floor_ids: Incomplete
|
|
53
|
-
label_ids: Incomplete
|
|
47
|
+
class ServiceTargetSelector(target_helpers.TargetSelectorData):
|
|
54
48
|
def __init__(self, service_call: ServiceCall) -> None: ...
|
|
55
|
-
@property
|
|
56
|
-
def has_any_selector(self) -> bool: ...
|
|
57
49
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
indirectly_referenced: set[str] = dataclasses.field(default_factory=set)
|
|
62
|
-
missing_devices: set[str] = dataclasses.field(default_factory=set)
|
|
63
|
-
missing_areas: set[str] = dataclasses.field(default_factory=set)
|
|
64
|
-
missing_floors: set[str] = dataclasses.field(default_factory=set)
|
|
65
|
-
missing_labels: set[str] = dataclasses.field(default_factory=set)
|
|
66
|
-
referenced_devices: set[str] = dataclasses.field(default_factory=set)
|
|
67
|
-
referenced_areas: set[str] = dataclasses.field(default_factory=set)
|
|
68
|
-
def log_missing(self, missing_entities: set[str]) -> None: ...
|
|
50
|
+
class SelectedEntities(target_helpers.SelectedEntities):
|
|
51
|
+
@override
|
|
52
|
+
def log_missing(self, missing_entities: set[str], logger: logging.Logger | None = None) -> None: ...
|
|
69
53
|
|
|
70
54
|
@bind_hass
|
|
71
55
|
def call_from_config(hass: HomeAssistant, config: ConfigType, blocking: bool = False, variables: TemplateVarsType = None, validate_config: bool = True) -> None: ...
|
|
@@ -80,7 +64,6 @@ def extract_entity_ids(hass: HomeAssistant, service_call: ServiceCall, expand_gr
|
|
|
80
64
|
async def async_extract_entities[_EntityT: Entity](hass: HomeAssistant, entities: Iterable[_EntityT], service_call: ServiceCall, expand_group: bool = True) -> list[_EntityT]: ...
|
|
81
65
|
@bind_hass
|
|
82
66
|
async def async_extract_entity_ids(hass: HomeAssistant, service_call: ServiceCall, expand_group: bool = True) -> set[str]: ...
|
|
83
|
-
def _has_match(ids: str | list[str] | None) -> TypeGuard[str | list[str]]: ...
|
|
84
67
|
@bind_hass
|
|
85
68
|
def async_extract_referenced_entity_ids(hass: HomeAssistant, service_call: ServiceCall, expand_group: bool = True) -> SelectedEntities: ...
|
|
86
69
|
@bind_hass
|