homeassistant-stubs 2024.9.3__py3-none-any.whl → 2024.10.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.
- homeassistant-stubs/components/__init__.pyi +0 -8
- homeassistant-stubs/components/abode/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/accuweather/sensor.pyi +1 -1
- homeassistant-stubs/components/acmeda/__init__.pyi +1 -0
- homeassistant-stubs/components/acmeda/cover.pyi +2 -2
- homeassistant-stubs/components/acmeda/{base.pyi → entity.pyi} +1 -1
- homeassistant-stubs/components/acmeda/sensor.pyi +2 -2
- homeassistant-stubs/components/actiontec/device_tracker.pyi +1 -1
- homeassistant-stubs/components/air_quality/__init__.pyi +2 -0
- homeassistant-stubs/components/airgradient/__init__.pyi +2 -10
- homeassistant-stubs/components/airgradient/button.pyi +4 -4
- homeassistant-stubs/components/airgradient/coordinator.pyi +13 -11
- homeassistant-stubs/components/airgradient/diagnostics.pyi +5 -0
- homeassistant-stubs/components/airgradient/number.pyi +2 -3
- homeassistant-stubs/components/airgradient/select.pyi +2 -3
- homeassistant-stubs/components/airgradient/sensor.pyi +9 -9
- homeassistant-stubs/components/airgradient/switch.pyi +2 -3
- homeassistant-stubs/components/airgradient/update.pyi +2 -3
- homeassistant-stubs/components/airnow/__init__.pyi +0 -1
- homeassistant-stubs/components/airnow/const.pyi +4 -1
- homeassistant-stubs/components/airnow/coordinator.pyi +1 -1
- homeassistant-stubs/components/airnow/sensor.pyi +2 -1
- homeassistant-stubs/components/airvisual/__init__.pyi +6 -14
- homeassistant-stubs/components/airvisual/diagnostics.pyi +3 -4
- homeassistant-stubs/components/airvisual/entity.pyi +13 -0
- homeassistant-stubs/components/airvisual/sensor.pyi +4 -3
- homeassistant-stubs/components/airvisual_pro/__init__.pyi +2 -11
- homeassistant-stubs/components/airvisual_pro/entity.pyi +12 -0
- homeassistant-stubs/components/airvisual_pro/sensor.pyi +2 -1
- homeassistant-stubs/components/airzone/diagnostics.pyi +1 -1
- homeassistant-stubs/components/airzone_cloud/diagnostics.pyi +1 -1
- homeassistant-stubs/components/airzone_cloud/sensor.pyi +1 -1
- homeassistant-stubs/components/alarm_control_panel/__init__.pyi +2 -0
- homeassistant-stubs/components/alert/__init__.pyi +3 -43
- homeassistant-stubs/components/alert/entity.pyi +45 -0
- homeassistant-stubs/components/alexa/capabilities.pyi +2 -1
- homeassistant-stubs/components/alexa/config.pyi +1 -1
- homeassistant-stubs/components/alexa/smart_home.pyi +1 -1
- homeassistant-stubs/components/amazon_polly/tts.pyi +3 -1
- homeassistant-stubs/components/amberelectric/__init__.pyi +5 -3
- homeassistant-stubs/components/amberelectric/binary_sensor.pyi +3 -3
- homeassistant-stubs/components/amberelectric/sensor.pyi +3 -3
- homeassistant-stubs/components/ambient_network/__init__.pyi +3 -3
- homeassistant-stubs/components/ambient_network/sensor.pyi +2 -3
- homeassistant-stubs/components/androidtv_remote/media_player.pyi +1 -2
- homeassistant-stubs/components/anova/__init__.pyi +3 -5
- homeassistant-stubs/components/anova/models.pyi +3 -0
- homeassistant-stubs/components/anova/sensor.pyi +2 -4
- homeassistant-stubs/components/anthemav/__init__.pyi +4 -3
- homeassistant-stubs/components/anthemav/media_player.pyi +2 -3
- homeassistant-stubs/components/apcupsd/__init__.pyi +3 -4
- homeassistant-stubs/components/apcupsd/binary_sensor.pyi +2 -4
- homeassistant-stubs/components/apcupsd/diagnostics.pyi +2 -4
- homeassistant-stubs/components/apcupsd/sensor.pyi +3 -3
- homeassistant-stubs/components/apple_tv/__init__.pyi +2 -19
- homeassistant-stubs/components/apple_tv/const.pyi +2 -0
- homeassistant-stubs/components/apple_tv/entity.pyi +21 -0
- homeassistant-stubs/components/apple_tv/media_player.pyi +2 -1
- homeassistant-stubs/components/apple_tv/remote.pyi +2 -1
- homeassistant-stubs/components/arcam_fmj/media_player.pyi +1 -2
- homeassistant-stubs/components/arris_tg2492lg/device_tracker.pyi +1 -1
- homeassistant-stubs/components/aruba/device_tracker.pyi +1 -1
- homeassistant-stubs/components/assist_pipeline/__init__.pyi +4 -3
- homeassistant-stubs/components/assist_pipeline/const.pyi +1 -0
- homeassistant-stubs/components/assist_pipeline/pipeline.pyi +1 -1
- homeassistant-stubs/components/assist_pipeline/repair_flows.pyi +11 -0
- homeassistant-stubs/components/assist_pipeline/select.pyi +1 -3
- homeassistant-stubs/components/assist_satellite/__init__.pyi +5 -0
- homeassistant-stubs/components/assist_satellite/connection_test.pyi +15 -0
- homeassistant-stubs/components/assist_satellite/const.pyi +12 -0
- homeassistant-stubs/components/assist_satellite/entity.pyi +88 -0
- homeassistant-stubs/components/assist_satellite/errors.pyi +4 -0
- homeassistant-stubs/components/assist_satellite/websocket_api.pyi +16 -0
- homeassistant-stubs/components/asuswrt/bridge.pyi +8 -1
- homeassistant-stubs/components/asuswrt/const.pyi +3 -0
- homeassistant-stubs/components/asuswrt/device_tracker.pyi +1 -3
- homeassistant-stubs/components/asuswrt/sensor.pyi +3 -2
- homeassistant-stubs/components/autarco/coordinator.pyi +6 -4
- homeassistant-stubs/components/autarco/sensor.pyi +18 -2
- homeassistant-stubs/components/automation/__init__.pyi +5 -3
- homeassistant-stubs/components/automation/config.pyi +6 -2
- homeassistant-stubs/components/automation/const.pyi +2 -0
- homeassistant-stubs/components/axis/hub/__init__.pyi +2 -0
- homeassistant-stubs/components/axis/hub/event_source.pyi +1 -1
- homeassistant-stubs/components/bang_olufsen/config_flow.pyi +1 -0
- homeassistant-stubs/components/bang_olufsen/const.pyi +6 -0
- homeassistant-stubs/components/bang_olufsen/media_player.pyi +21 -4
- homeassistant-stubs/components/bang_olufsen/util.pyi +1 -0
- homeassistant-stubs/components/bang_olufsen/websocket.pyi +2 -1
- homeassistant-stubs/components/bayesian/binary_sensor.pyi +9 -4
- homeassistant-stubs/components/bayesian/const.pyi +1 -0
- homeassistant-stubs/components/bayesian/helpers.pyi +2 -1
- homeassistant-stubs/components/binary_sensor/__init__.pyi +2 -0
- homeassistant-stubs/components/blueprint/__init__.pyi +1 -1
- homeassistant-stubs/components/blueprint/importer.pyi +1 -1
- homeassistant-stubs/components/blueprint/models.pyi +4 -3
- homeassistant-stubs/components/blueprint/websocket_api.pyi +1 -0
- homeassistant-stubs/components/bluesound/__init__.pyi +25 -0
- homeassistant-stubs/components/bluesound/config_flow.pyi +24 -0
- homeassistant-stubs/components/bluesound/const.pyi +8 -0
- homeassistant-stubs/components/bluesound/media_player.pyi +136 -0
- homeassistant-stubs/components/bluesound/utils.pyi +3 -0
- homeassistant-stubs/components/bluetooth/manager.pyi +3 -0
- homeassistant-stubs/components/bmw_connected_drive/device_tracker.pyi +1 -3
- homeassistant-stubs/components/bmw_connected_drive/diagnostics.pyi +1 -1
- homeassistant-stubs/components/braviatv/entity.pyi +1 -1
- homeassistant-stubs/components/braviatv/media_player.pyi +1 -2
- homeassistant-stubs/components/bryant_evolution/config_flow.pyi +3 -1
- homeassistant-stubs/components/bthome/device_trigger.pyi +4 -3
- homeassistant-stubs/components/button/__init__.pyi +2 -0
- homeassistant-stubs/components/calendar/__init__.pyi +7 -5
- homeassistant-stubs/components/calendar/const.pyi +5 -0
- homeassistant-stubs/components/calendar/trigger.pyi +2 -1
- homeassistant-stubs/components/camera/__init__.pyi +4 -4
- homeassistant-stubs/components/camera/const.pyi +12 -2
- homeassistant-stubs/components/camera/media_source.pyi +2 -4
- homeassistant-stubs/components/cert_expiry/entity.pyi +8 -0
- homeassistant-stubs/components/cert_expiry/sensor.pyi +3 -8
- homeassistant-stubs/components/climate/__init__.pyi +6 -2
- homeassistant-stubs/components/climate/const.pyi +1 -0
- homeassistant-stubs/components/climate/intent.pyi +1 -3
- homeassistant-stubs/components/cloud/alexa_config.pyi +1 -1
- homeassistant-stubs/components/cloud/google_config.pyi +1 -1
- homeassistant-stubs/components/co2signal/__init__.pyi +0 -1
- homeassistant-stubs/components/co2signal/config_flow.pyi +2 -1
- homeassistant-stubs/components/config/automation.pyi +1 -1
- homeassistant-stubs/components/config/category_registry.pyi +1 -1
- homeassistant-stubs/components/config/device_registry.pyi +1 -1
- homeassistant-stubs/components/config/entity_registry.pyi +1 -2
- homeassistant-stubs/components/config/floor_registry.pyi +1 -1
- homeassistant-stubs/components/config/label_registry.pyi +1 -1
- homeassistant-stubs/components/config/scene.pyi +1 -1
- homeassistant-stubs/components/config/script.pyi +0 -1
- homeassistant-stubs/components/cover/__init__.pyi +3 -1
- homeassistant-stubs/components/cover/const.pyi +2 -0
- homeassistant-stubs/components/cover/intent.pyi +1 -4
- homeassistant-stubs/components/crownstone/{devices.pyi → entity.pyi} +1 -1
- homeassistant-stubs/components/crownstone/light.pyi +2 -2
- homeassistant-stubs/components/deako/__init__.pyi +14 -0
- homeassistant-stubs/components/deako/config_flow.pyi +6 -0
- homeassistant-stubs/components/deako/const.pyi +2 -0
- homeassistant-stubs/components/deako/light.pyi +32 -0
- homeassistant-stubs/components/deconz/alarm_control_panel.pyi +3 -3
- homeassistant-stubs/components/deconz/binary_sensor.pyi +3 -3
- homeassistant-stubs/components/deconz/button.pyi +4 -4
- homeassistant-stubs/components/deconz/climate.pyi +3 -3
- homeassistant-stubs/components/deconz/cover.pyi +3 -3
- homeassistant-stubs/components/deconz/deconz_event.pyi +1 -1
- homeassistant-stubs/components/deconz/device_trigger.pyi +1 -2
- homeassistant-stubs/components/deconz/fan.pyi +3 -3
- homeassistant-stubs/components/deconz/hub/__init__.pyi +2 -0
- homeassistant-stubs/components/deconz/light.pyi +3 -3
- homeassistant-stubs/components/deconz/lock.pyi +3 -3
- homeassistant-stubs/components/deconz/number.pyi +3 -3
- homeassistant-stubs/components/deconz/scene.pyi +3 -3
- homeassistant-stubs/components/deconz/select.pyi +6 -6
- homeassistant-stubs/components/deconz/sensor.pyi +6 -5
- homeassistant-stubs/components/deconz/siren.pyi +3 -3
- homeassistant-stubs/components/deconz/switch.pyi +3 -3
- homeassistant-stubs/components/demo/lock.pyi +1 -2
- homeassistant-stubs/components/demo/notify.pyi +1 -1
- homeassistant-stubs/components/derivative/sensor.pyi +1 -1
- homeassistant-stubs/components/device_automation/__init__.pyi +1 -1
- homeassistant-stubs/components/device_tracker/__init__.pyi +1 -1
- homeassistant-stubs/components/device_tracker/config_entry.pyi +30 -4
- homeassistant-stubs/components/devolo_home_control/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/devolo_home_control/devolo_multi_level_switch.pyi +1 -1
- homeassistant-stubs/components/devolo_home_control/sensor.pyi +1 -1
- homeassistant-stubs/components/devolo_home_control/switch.pyi +1 -1
- homeassistant-stubs/components/devolo_home_network/__init__.pyi +1 -1
- homeassistant-stubs/components/devolo_home_network/const.pyi +1 -0
- homeassistant-stubs/components/devolo_home_network/device_tracker.pyi +2 -6
- homeassistant-stubs/components/devolo_home_network/entity.pyi +1 -1
- homeassistant-stubs/components/devolo_home_network/sensor.pyi +19 -14
- homeassistant-stubs/components/dhcp/__init__.pyi +7 -1
- homeassistant-stubs/components/discovergy/config_flow.pyi +1 -0
- homeassistant-stubs/components/dlna_dmr/config_flow.pyi +0 -1
- homeassistant-stubs/components/dlna_dms/dms.pyi +1 -2
- homeassistant-stubs/components/dlna_dms/media_source.pyi +1 -2
- homeassistant-stubs/components/downloader/__init__.pyi +1 -9
- homeassistant-stubs/components/downloader/config_flow.pyi +0 -1
- homeassistant-stubs/components/dsmr/const.pyi +1 -0
- homeassistant-stubs/components/dsmr/sensor.pyi +4 -2
- homeassistant-stubs/components/efergy/__init__.pyi +0 -9
- homeassistant-stubs/components/efergy/entity.pyi +11 -0
- homeassistant-stubs/components/efergy/sensor.pyi +2 -1
- homeassistant-stubs/components/elevenlabs/__init__.pyi +1 -0
- homeassistant-stubs/components/elevenlabs/config_flow.pyi +8 -2
- homeassistant-stubs/components/elevenlabs/const.pyi +11 -0
- homeassistant-stubs/components/elevenlabs/tts.pyi +7 -3
- homeassistant-stubs/components/elkm1/__init__.pyi +1 -34
- homeassistant-stubs/components/elkm1/alarm_control_panel.pyi +2 -1
- homeassistant-stubs/components/elkm1/binary_sensor.pyi +2 -1
- homeassistant-stubs/components/elkm1/climate.pyi +4 -1
- homeassistant-stubs/components/elkm1/entity.pyi +43 -0
- homeassistant-stubs/components/elkm1/light.pyi +2 -1
- homeassistant-stubs/components/elkm1/scene.pyi +2 -1
- homeassistant-stubs/components/elkm1/sensor.pyi +2 -1
- homeassistant-stubs/components/elkm1/switch.pyi +19 -1
- homeassistant-stubs/components/enphase_envoy/config_flow.pyi +3 -1
- homeassistant-stubs/components/enphase_envoy/coordinator.pyi +2 -0
- homeassistant-stubs/components/enphase_envoy/sensor.pyi +13 -1
- homeassistant-stubs/components/enphase_envoy/switch.pyi +1 -1
- homeassistant-stubs/components/esphome/__init__.pyi +3 -2
- homeassistant-stubs/components/esphome/assist_satellite.pyi +75 -0
- homeassistant-stubs/components/esphome/binary_sensor.pyi +3 -0
- homeassistant-stubs/components/esphome/const.pyi +1 -0
- homeassistant-stubs/components/esphome/entry_data.pyi +3 -2
- homeassistant-stubs/components/esphome/ffmpeg_proxy.pyi +49 -0
- homeassistant-stubs/components/esphome/manager.pyi +2 -9
- homeassistant-stubs/components/esphome/media_player.pyi +7 -1
- homeassistant-stubs/components/esphome/repairs.pyi +5 -0
- homeassistant-stubs/components/evil_genius_labs/__init__.pyi +0 -7
- homeassistant-stubs/components/evil_genius_labs/entity.pyi +9 -0
- homeassistant-stubs/components/evil_genius_labs/light.pyi +1 -1
- homeassistant-stubs/components/evil_genius_labs/util.pyi +1 -1
- homeassistant-stubs/components/evohome/const.pyi +5 -5
- homeassistant-stubs/components/fan/__init__.pyi +2 -0
- homeassistant-stubs/components/forecast_solar/coordinator.pyi +1 -1
- homeassistant-stubs/components/fritz/device_tracker.pyi +1 -3
- homeassistant-stubs/components/fritz/switch.pyi +1 -1
- homeassistant-stubs/components/fritzbox/__init__.pyi +1 -27
- homeassistant-stubs/components/fritzbox/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/fritzbox/button.pyi +1 -1
- homeassistant-stubs/components/fritzbox/climate.pyi +1 -1
- homeassistant-stubs/components/fritzbox/cover.pyi +1 -1
- homeassistant-stubs/components/fritzbox/entity.pyi +29 -0
- homeassistant-stubs/components/fritzbox/light.pyi +2 -2
- homeassistant-stubs/components/fritzbox/sensor.pyi +1 -1
- homeassistant-stubs/components/fritzbox/switch.pyi +1 -1
- homeassistant-stubs/components/frontend/__init__.pyi +1 -1
- homeassistant-stubs/components/frontend/storage.pyi +1 -1
- homeassistant-stubs/components/fujitsu_fglair/__init__.pyi +2 -1
- homeassistant-stubs/components/fujitsu_fglair/config_flow.pyi +3 -1
- homeassistant-stubs/components/fujitsu_fglair/const.pyi +3 -1
- homeassistant-stubs/components/fully_kiosk/diagnostics.pyi +1 -1
- homeassistant-stubs/components/generic_hygrostat/humidifier.pyi +6 -6
- homeassistant-stubs/components/geo_location/__init__.pyi +2 -0
- homeassistant-stubs/components/google/calendar.pyi +20 -6
- homeassistant-stubs/components/google_cloud/__init__.pyi +10 -0
- homeassistant-stubs/components/google_cloud/config_flow.pyi +27 -0
- homeassistant-stubs/components/google_cloud/const.pyi +19 -0
- homeassistant-stubs/components/google_cloud/helpers.pyi +14 -0
- homeassistant-stubs/components/google_cloud/stt.pyi +34 -0
- homeassistant-stubs/components/google_cloud/tts.pyi +47 -0
- homeassistant-stubs/components/google_photos/__init__.pyi +3 -0
- homeassistant-stubs/components/google_photos/api.pyi +15 -0
- homeassistant-stubs/components/google_photos/application_credentials.pyi +6 -0
- homeassistant-stubs/components/google_photos/config_flow.pyi +19 -0
- homeassistant-stubs/components/google_photos/const.pyi +8 -0
- homeassistant-stubs/components/google_photos/coordinator.pyi +17 -0
- homeassistant-stubs/components/google_photos/media_source.pyi +54 -0
- homeassistant-stubs/components/google_photos/services.pyi +15 -0
- homeassistant-stubs/components/google_photos/types.pyi +4 -0
- homeassistant-stubs/components/group/__init__.pyi +1 -3
- homeassistant-stubs/components/group/button.pyi +1 -1
- homeassistant-stubs/components/group/const.pyi +7 -3
- homeassistant-stubs/components/group/cover.pyi +1 -1
- homeassistant-stubs/components/group/entity.pyi +1 -1
- homeassistant-stubs/components/group/event.pyi +1 -1
- homeassistant-stubs/components/group/fan.pyi +1 -1
- homeassistant-stubs/components/group/lock.pyi +2 -2
- homeassistant-stubs/components/group/media_player.pyi +1 -1
- homeassistant-stubs/components/group/notify.pyi +1 -1
- homeassistant-stubs/components/group/registry.pyi +2 -1
- homeassistant-stubs/components/group/sensor.pyi +1 -1
- homeassistant-stubs/components/group/switch.pyi +1 -1
- homeassistant-stubs/components/guardian/__init__.pyi +0 -24
- homeassistant-stubs/components/guardian/binary_sensor.pyi +2 -1
- homeassistant-stubs/components/guardian/button.pyi +2 -1
- homeassistant-stubs/components/guardian/entity.pyi +29 -0
- homeassistant-stubs/components/guardian/sensor.pyi +2 -1
- homeassistant-stubs/components/guardian/switch.pyi +2 -1
- homeassistant-stubs/components/guardian/util.pyi +1 -1
- homeassistant-stubs/components/guardian/valve.pyi +2 -1
- homeassistant-stubs/components/history/websocket_api.pyi +1 -2
- homeassistant-stubs/components/homeassistant/__init__.pyi +1 -1
- homeassistant-stubs/components/homeassistant/triggers/time.pyi +9 -1
- homeassistant-stubs/components/homekit/config_flow.pyi +3 -3
- homeassistant-stubs/components/homekit/type_covers.pyi +1 -1
- homeassistant-stubs/components/homekit/type_fans.pyi +1 -1
- homeassistant-stubs/components/homekit/type_humidifiers.pyi +1 -1
- homeassistant-stubs/components/homekit/type_lights.pyi +1 -1
- homeassistant-stubs/components/homekit/type_locks.pyi +1 -1
- homeassistant-stubs/components/homekit/type_media_players.pyi +1 -1
- homeassistant-stubs/components/homekit/type_security_systems.pyi +1 -1
- homeassistant-stubs/components/homekit/type_switches.pyi +0 -1
- homeassistant-stubs/components/homekit/util.pyi +1 -0
- homeassistant-stubs/components/homekit_controller/config_flow.pyi +0 -1
- homeassistant-stubs/components/homekit_controller/lock.pyi +3 -3
- homeassistant-stubs/components/homeworks/__init__.pyi +0 -15
- homeassistant-stubs/components/homeworks/binary_sensor.pyi +2 -1
- homeassistant-stubs/components/homeworks/button.pyi +2 -1
- homeassistant-stubs/components/homeworks/config_flow.pyi +6 -2
- homeassistant-stubs/components/homeworks/entity.pyi +16 -0
- homeassistant-stubs/components/homeworks/light.pyi +2 -1
- homeassistant-stubs/components/homeworks/util.pyi +1 -0
- homeassistant-stubs/components/http/__init__.pyi +1 -1
- homeassistant-stubs/components/huawei_lte/__init__.pyi +1 -24
- homeassistant-stubs/components/huawei_lte/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/huawei_lte/button.pyi +1 -1
- homeassistant-stubs/components/huawei_lte/device_tracker.pyi +3 -4
- homeassistant-stubs/components/huawei_lte/entity.pyi +31 -0
- homeassistant-stubs/components/huawei_lte/select.pyi +2 -1
- homeassistant-stubs/components/huawei_lte/sensor.pyi +2 -1
- homeassistant-stubs/components/huawei_lte/switch.pyi +1 -1
- homeassistant-stubs/components/humidifier/__init__.pyi +7 -2
- homeassistant-stubs/components/husqvarna_automower/__init__.pyi +2 -0
- homeassistant-stubs/components/husqvarna_automower/button.pyi +20 -6
- homeassistant-stubs/components/husqvarna_automower/calendar.pyi +21 -0
- homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +1 -0
- homeassistant-stubs/components/husqvarna_automower/device_tracker.pyi +1 -3
- homeassistant-stubs/components/husqvarna_automower/entity.pyi +16 -2
- homeassistant-stubs/components/husqvarna_automower/number.pyi +4 -10
- homeassistant-stubs/components/husqvarna_automower/switch.pyi +12 -1
- homeassistant-stubs/components/image/__init__.pyi +1 -1
- homeassistant-stubs/components/image/const.pyi +4 -0
- homeassistant-stubs/components/image/media_source.pyi +2 -5
- homeassistant-stubs/components/ios/__init__.pyi +1 -15
- homeassistant-stubs/components/ios/const.pyi +16 -0
- homeassistant-stubs/components/ios/notify.pyi +1 -1
- homeassistant-stubs/components/ios/sensor.pyi +2 -2
- homeassistant-stubs/components/iotty/cover.pyi +36 -0
- homeassistant-stubs/components/iotty/entity.pyi +19 -0
- homeassistant-stubs/components/iotty/switch.pyi +2 -11
- homeassistant-stubs/components/iqvia/__init__.pyi +2 -15
- homeassistant-stubs/components/iqvia/entity.pyi +18 -0
- homeassistant-stubs/components/iqvia/sensor.pyi +1 -1
- homeassistant-stubs/components/isy994/const.pyi +2 -1
- homeassistant-stubs/components/jellyfin/browse_media.pyi +1 -2
- homeassistant-stubs/components/jellyfin/media_player.pyi +1 -2
- homeassistant-stubs/components/jellyfin/media_source.pyi +1 -1
- homeassistant-stubs/components/jellyfin/sensor.pyi +1 -0
- homeassistant-stubs/components/knx/__init__.pyi +4 -2
- homeassistant-stubs/components/knx/binary_sensor.pyi +2 -2
- homeassistant-stubs/components/knx/button.pyi +2 -2
- homeassistant-stubs/components/knx/climate.pyi +9 -3
- homeassistant-stubs/components/knx/config_flow.pyi +1 -1
- homeassistant-stubs/components/knx/const.pyi +9 -3
- homeassistant-stubs/components/knx/cover.pyi +2 -2
- homeassistant-stubs/components/knx/date.pyi +2 -2
- homeassistant-stubs/components/knx/datetime.pyi +2 -2
- homeassistant-stubs/components/knx/device_trigger.pyi +3 -5
- homeassistant-stubs/components/knx/diagnostics.pyi +1 -1
- homeassistant-stubs/components/knx/fan.pyi +2 -2
- homeassistant-stubs/components/knx/light.pyi +2 -2
- homeassistant-stubs/components/knx/notify.pyi +2 -2
- homeassistant-stubs/components/knx/number.pyi +2 -2
- homeassistant-stubs/components/knx/scene.pyi +2 -2
- homeassistant-stubs/components/knx/schema.pyi +8 -2
- homeassistant-stubs/components/knx/select.pyi +2 -2
- homeassistant-stubs/components/knx/sensor.pyi +2 -2
- homeassistant-stubs/components/knx/services.pyi +1 -1
- homeassistant-stubs/components/knx/switch.pyi +2 -2
- homeassistant-stubs/components/knx/text.pyi +2 -2
- homeassistant-stubs/components/knx/time.pyi +2 -2
- homeassistant-stubs/components/knx/weather.pyi +2 -2
- homeassistant-stubs/components/knx/websocket.pyi +1 -1
- homeassistant-stubs/components/lamarzocco/config_flow.pyi +5 -1
- homeassistant-stubs/components/laundrify/__init__.pyi +2 -0
- homeassistant-stubs/components/laundrify/binary_sensor.pyi +0 -1
- homeassistant-stubs/components/laundrify/config_flow.pyi +1 -0
- homeassistant-stubs/components/laundrify/sensor.pyi +41 -0
- homeassistant-stubs/components/lawn_mower/__init__.pyi +2 -0
- homeassistant-stubs/components/lcn/__init__.pyi +8 -30
- homeassistant-stubs/components/lcn/binary_sensor.pyi +7 -7
- homeassistant-stubs/components/lcn/climate.pyi +5 -5
- homeassistant-stubs/components/lcn/config_flow.pyi +8 -3
- homeassistant-stubs/components/lcn/const.pyi +1 -0
- homeassistant-stubs/components/lcn/cover.pyi +6 -6
- homeassistant-stubs/components/lcn/entity.pyi +28 -0
- homeassistant-stubs/components/lcn/helpers.pyi +2 -2
- homeassistant-stubs/components/lcn/light.pyi +6 -6
- homeassistant-stubs/components/lcn/scene.pyi +4 -5
- homeassistant-stubs/components/lcn/sensor.pyi +6 -6
- homeassistant-stubs/components/lcn/services.pyi +16 -0
- homeassistant-stubs/components/lcn/switch.pyi +6 -6
- homeassistant-stubs/components/lcn/websocket.pyi +3 -1
- homeassistant-stubs/components/lektrico/__init__.pyi +12 -0
- homeassistant-stubs/components/lektrico/button.pyi +27 -0
- homeassistant-stubs/components/lektrico/config_flow.pyi +24 -0
- homeassistant-stubs/components/lektrico/const.pyi +4 -0
- homeassistant-stubs/components/lektrico/coordinator.pyi +19 -0
- homeassistant-stubs/components/lektrico/entity.pyi +10 -0
- homeassistant-stubs/components/lektrico/number.pyi +29 -0
- homeassistant-stubs/components/lektrico/select.pyi +30 -0
- homeassistant-stubs/components/lektrico/sensor.pyi +34 -0
- homeassistant-stubs/components/lidarr/__init__.pyi +2 -11
- homeassistant-stubs/components/lidarr/entity.pyi +13 -0
- homeassistant-stubs/components/lidarr/sensor.pyi +2 -1
- homeassistant-stubs/components/light/__init__.pyi +4 -2
- homeassistant-stubs/components/linkplay/const.pyi +1 -1
- homeassistant-stubs/components/linkplay/media_player.pyi +9 -3
- homeassistant-stubs/components/linkplay/utils.pyi +1 -1
- homeassistant-stubs/components/local_todo/todo.pyi +1 -0
- homeassistant-stubs/components/lock/__init__.pyi +4 -2
- homeassistant-stubs/components/lock/const.pyi +11 -0
- homeassistant-stubs/components/lock/device_condition.pyi +2 -2
- homeassistant-stubs/components/lock/device_trigger.pyi +2 -2
- homeassistant-stubs/components/lock/reproduce_state.pyi +2 -2
- homeassistant-stubs/components/logbook/websocket_api.pyi +1 -2
- homeassistant-stubs/components/logger/websocket_api.pyi +1 -1
- homeassistant-stubs/components/madvr/__init__.pyi +1 -1
- homeassistant-stubs/components/madvr/config_flow.pyi +2 -1
- homeassistant-stubs/components/madvr/diagnostics.pyi +10 -0
- homeassistant-stubs/components/matter/button.pyi +25 -0
- homeassistant-stubs/components/matter/entity.pyi +1 -4
- homeassistant-stubs/components/matter/light.pyi +0 -1
- homeassistant-stubs/components/matter/models.pyi +5 -3
- homeassistant-stubs/components/matter/number.pyi +2 -2
- homeassistant-stubs/components/matter/sensor.pyi +9 -0
- homeassistant-stubs/components/matter/valve.pyi +33 -0
- homeassistant-stubs/components/media_player/__init__.pyi +11 -4
- homeassistant-stubs/components/media_player/const.pyi +67 -63
- homeassistant-stubs/components/mikrotik/device_tracker.pyi +1 -3
- homeassistant-stubs/components/minecraft_server/__init__.pyi +1 -0
- homeassistant-stubs/components/minecraft_server/diagnostics.pyi +1 -1
- homeassistant-stubs/components/modbus/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/modbus/climate.pyi +1 -1
- homeassistant-stubs/components/modbus/cover.pyi +1 -1
- homeassistant-stubs/components/modbus/fan.pyi +1 -1
- homeassistant-stubs/components/modbus/light.pyi +1 -1
- homeassistant-stubs/components/modbus/sensor.pyi +1 -1
- homeassistant-stubs/components/modbus/switch.pyi +1 -1
- homeassistant-stubs/components/mold_indicator/__init__.pyi +10 -0
- homeassistant-stubs/components/mold_indicator/config_flow.pyi +20 -0
- homeassistant-stubs/components/mold_indicator/const.pyi +6 -0
- homeassistant-stubs/components/mold_indicator/sensor.pyi +60 -0
- homeassistant-stubs/components/mopeka/__init__.pyi +1 -1
- homeassistant-stubs/components/motionmount/entity.pyi +3 -0
- homeassistant-stubs/components/motionmount/number.pyi +1 -0
- homeassistant-stubs/components/motionmount/select.pyi +5 -0
- homeassistant-stubs/components/mqtt/alarm_control_panel.pyi +1 -1
- homeassistant-stubs/components/mqtt/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/mqtt/button.pyi +1 -1
- homeassistant-stubs/components/mqtt/camera.pyi +1 -1
- homeassistant-stubs/components/mqtt/climate.pyi +1 -6
- homeassistant-stubs/components/mqtt/config_flow.pyi +1 -2
- homeassistant-stubs/components/mqtt/cover.pyi +1 -1
- homeassistant-stubs/components/mqtt/device_automation.pyi +1 -1
- homeassistant-stubs/components/mqtt/device_tracker.pyi +3 -3
- homeassistant-stubs/components/mqtt/device_trigger.pyi +1 -1
- homeassistant-stubs/components/mqtt/discovery.pyi +1 -1
- homeassistant-stubs/components/mqtt/{mixins.pyi → entity.pyi} +0 -3
- homeassistant-stubs/components/mqtt/event.pyi +1 -1
- homeassistant-stubs/components/mqtt/fan.pyi +1 -1
- homeassistant-stubs/components/mqtt/humidifier.pyi +1 -1
- homeassistant-stubs/components/mqtt/image.pyi +1 -1
- homeassistant-stubs/components/mqtt/lawn_mower.pyi +1 -1
- homeassistant-stubs/components/mqtt/light/__init__.pyi +1 -1
- homeassistant-stubs/components/mqtt/light/schema_basic.pyi +1 -1
- homeassistant-stubs/components/mqtt/light/schema_json.pyi +1 -1
- homeassistant-stubs/components/mqtt/light/schema_template.pyi +1 -1
- homeassistant-stubs/components/mqtt/lock.pyi +1 -1
- homeassistant-stubs/components/mqtt/notify.pyi +1 -1
- homeassistant-stubs/components/mqtt/number.pyi +1 -1
- homeassistant-stubs/components/mqtt/scene.pyi +1 -1
- homeassistant-stubs/components/mqtt/select.pyi +1 -1
- homeassistant-stubs/components/mqtt/sensor.pyi +1 -1
- homeassistant-stubs/components/mqtt/siren.pyi +1 -1
- homeassistant-stubs/components/mqtt/switch.pyi +1 -1
- homeassistant-stubs/components/mqtt/tag.pyi +1 -1
- homeassistant-stubs/components/mqtt/text.pyi +1 -1
- homeassistant-stubs/components/mqtt/trigger.pyi +3 -2
- homeassistant-stubs/components/mqtt/update.pyi +1 -1
- homeassistant-stubs/components/mqtt/vacuum.pyi +1 -1
- homeassistant-stubs/components/mqtt/valve.pyi +3 -3
- homeassistant-stubs/components/mqtt/water_heater.pyi +1 -1
- homeassistant-stubs/components/mysensors/__init__.pyi +1 -1
- homeassistant-stubs/components/mysensors/binary_sensor.pyi +3 -2
- homeassistant-stubs/components/mysensors/climate.pyi +3 -2
- homeassistant-stubs/components/mysensors/cover.pyi +3 -2
- homeassistant-stubs/components/mysensors/device_tracker.pyi +5 -10
- homeassistant-stubs/components/mysensors/handler.pyi +1 -1
- homeassistant-stubs/components/mysensors/light.pyi +3 -3
- homeassistant-stubs/components/mysensors/remote.pyi +1 -1
- homeassistant-stubs/components/mysensors/sensor.pyi +4 -3
- homeassistant-stubs/components/mysensors/switch.pyi +1 -1
- homeassistant-stubs/components/mysensors/text.pyi +2 -2
- homeassistant-stubs/components/nanoleaf/device_trigger.pyi +1 -2
- homeassistant-stubs/components/nest/device_trigger.pyi +1 -2
- homeassistant-stubs/components/nest/media_source.pyi +1 -2
- homeassistant-stubs/components/netatmo/device_trigger.pyi +1 -2
- homeassistant-stubs/components/netatmo/media_source.pyi +1 -2
- homeassistant-stubs/components/network/websocket.pyi +1 -1
- homeassistant-stubs/components/nextdns/__init__.pyi +1 -1
- homeassistant-stubs/components/nextdns/config_flow.pyi +11 -1
- homeassistant-stubs/components/nextdns/coordinator.pyi +1 -0
- homeassistant-stubs/components/nissan_leaf/__init__.pyi +3 -14
- homeassistant-stubs/components/nissan_leaf/binary_sensor.pyi +2 -1
- homeassistant-stubs/components/nissan_leaf/button.pyi +2 -1
- homeassistant-stubs/components/nissan_leaf/const.pyi +1 -0
- homeassistant-stubs/components/nissan_leaf/entity.pyi +18 -0
- homeassistant-stubs/components/nissan_leaf/sensor.pyi +2 -1
- homeassistant-stubs/components/nissan_leaf/switch.pyi +2 -1
- homeassistant-stubs/components/notify/__init__.pyi +3 -2
- homeassistant-stubs/components/notify/legacy.pyi +5 -6
- homeassistant-stubs/components/notify/repairs.pyi +1 -2
- homeassistant-stubs/components/notion/__init__.pyi +1 -23
- homeassistant-stubs/components/notion/binary_sensor.pyi +1 -2
- homeassistant-stubs/components/notion/entity.pyi +33 -0
- homeassistant-stubs/components/notion/sensor.pyi +1 -2
- homeassistant-stubs/components/onewire/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/onewire/sensor.pyi +1 -1
- homeassistant-stubs/components/onewire/switch.pyi +1 -1
- homeassistant-stubs/components/onkyo/media_player.pyi +84 -0
- homeassistant-stubs/components/onkyo/receiver.pyi +19 -0
- homeassistant-stubs/components/openuv/__init__.pyi +0 -11
- homeassistant-stubs/components/openuv/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/openuv/entity.pyi +14 -0
- homeassistant-stubs/components/openuv/sensor.pyi +1 -1
- homeassistant-stubs/components/otbr/config_flow.pyi +3 -2
- homeassistant-stubs/components/overkiz/{climate_entities → climate}/__init__.pyi +9 -0
- homeassistant-stubs/components/overkiz/{water_heater.pyi → cover/__init__.pyi} +5 -4
- homeassistant-stubs/components/overkiz/executor.pyi +1 -1
- homeassistant-stubs/components/overkiz/water_heater/__init__.pyi +17 -0
- homeassistant-stubs/components/pi_hole/__init__.pyi +1 -10
- homeassistant-stubs/components/pi_hole/binary_sensor.pyi +2 -1
- homeassistant-stubs/components/pi_hole/entity.pyi +13 -0
- homeassistant-stubs/components/pi_hole/sensor.pyi +2 -1
- homeassistant-stubs/components/pi_hole/switch.pyi +2 -1
- homeassistant-stubs/components/pi_hole/update.pyi +2 -1
- homeassistant-stubs/components/ping/binary_sensor.pyi +0 -8
- homeassistant-stubs/components/ping/device_tracker.pyi +1 -3
- homeassistant-stubs/components/plugwise/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/prusalink/__init__.pyi +1 -8
- homeassistant-stubs/components/prusalink/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/prusalink/button.pyi +1 -1
- homeassistant-stubs/components/prusalink/camera.pyi +1 -1
- homeassistant-stubs/components/prusalink/entity.pyi +9 -0
- homeassistant-stubs/components/prusalink/sensor.pyi +1 -1
- homeassistant-stubs/components/purpleair/__init__.pyi +1 -17
- homeassistant-stubs/components/purpleair/entity.pyi +21 -0
- homeassistant-stubs/components/purpleair/sensor.pyi +1 -1
- homeassistant-stubs/components/qnap_qsw/diagnostics.pyi +1 -1
- homeassistant-stubs/components/radarr/__init__.pyi +2 -15
- homeassistant-stubs/components/radarr/binary_sensor.pyi +2 -1
- homeassistant-stubs/components/radarr/calendar.pyi +2 -1
- homeassistant-stubs/components/radarr/entity.pyi +16 -0
- homeassistant-stubs/components/radarr/sensor.pyi +2 -1
- homeassistant-stubs/components/rainmachine/__init__.pyi +1 -18
- homeassistant-stubs/components/rainmachine/binary_sensor.pyi +2 -2
- homeassistant-stubs/components/rainmachine/button.pyi +2 -2
- homeassistant-stubs/components/rainmachine/entity.pyi +30 -0
- homeassistant-stubs/components/rainmachine/select.pyi +2 -2
- homeassistant-stubs/components/rainmachine/sensor.pyi +2 -2
- homeassistant-stubs/components/rainmachine/switch.pyi +2 -2
- homeassistant-stubs/components/rainmachine/update.pyi +2 -2
- homeassistant-stubs/components/recorder/const.pyi +2 -2
- homeassistant-stubs/components/recorder/core.pyi +3 -7
- homeassistant-stubs/components/recorder/history/legacy.pyi +9 -10
- homeassistant-stubs/components/recorder/history/modern.pyi +1 -1
- homeassistant-stubs/components/recorder/migration.pyi +28 -25
- homeassistant-stubs/components/recorder/models/__init__.pyi +2 -2
- homeassistant-stubs/components/recorder/models/legacy.pyi +1 -37
- homeassistant-stubs/components/recorder/models/time.pyi +0 -1
- homeassistant-stubs/components/recorder/statistics.pyi +2 -1
- homeassistant-stubs/components/recorder/tasks.pyi +4 -17
- homeassistant-stubs/components/recorder/util.pyi +6 -2
- homeassistant-stubs/components/recorder/websocket_api.pyi +6 -3
- homeassistant-stubs/components/remote/__init__.pyi +2 -0
- homeassistant-stubs/components/renault/device_tracker.pyi +8 -4
- homeassistant-stubs/components/renault/renault_hub.pyi +1 -1
- homeassistant-stubs/components/renault/renault_vehicle.pyi +2 -0
- homeassistant-stubs/components/renault/services.pyi +4 -0
- homeassistant-stubs/components/rfxtrx/__init__.pyi +2 -27
- homeassistant-stubs/components/rfxtrx/binary_sensor.pyi +2 -1
- homeassistant-stubs/components/rfxtrx/const.pyi +1 -0
- homeassistant-stubs/components/rfxtrx/cover.pyi +2 -1
- homeassistant-stubs/components/rfxtrx/device_action.pyi +1 -1
- homeassistant-stubs/components/rfxtrx/device_trigger.pyi +1 -2
- homeassistant-stubs/components/rfxtrx/entity.pyi +33 -0
- homeassistant-stubs/components/rfxtrx/event.pyi +2 -1
- homeassistant-stubs/components/rfxtrx/light.pyi +2 -1
- homeassistant-stubs/components/rfxtrx/sensor.pyi +2 -1
- homeassistant-stubs/components/rfxtrx/siren.pyi +2 -1
- homeassistant-stubs/components/rfxtrx/switch.pyi +3 -2
- homeassistant-stubs/components/ring/__init__.pyi +10 -9
- homeassistant-stubs/components/ring/binary_sensor.pyi +24 -20
- homeassistant-stubs/components/ring/button.pyi +2 -4
- homeassistant-stubs/components/ring/camera.pyi +2 -4
- homeassistant-stubs/components/ring/config_flow.pyi +2 -1
- homeassistant-stubs/components/ring/const.pyi +1 -1
- homeassistant-stubs/components/ring/coordinator.pyi +22 -7
- homeassistant-stubs/components/ring/diagnostics.pyi +2 -4
- homeassistant-stubs/components/ring/entity.pyi +27 -7
- homeassistant-stubs/components/ring/event.pyi +30 -0
- homeassistant-stubs/components/ring/light.pyi +2 -4
- homeassistant-stubs/components/ring/number.pyi +33 -0
- homeassistant-stubs/components/ring/sensor.pyi +6 -8
- homeassistant-stubs/components/ring/siren.pyi +30 -14
- homeassistant-stubs/components/ring/switch.pyi +25 -17
- homeassistant-stubs/components/roborock/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/roborock/button.pyi +1 -1
- homeassistant-stubs/components/roborock/diagnostics.pyi +1 -1
- homeassistant-stubs/components/roborock/image.pyi +1 -1
- homeassistant-stubs/components/roborock/number.pyi +3 -2
- homeassistant-stubs/components/roborock/select.pyi +2 -1
- homeassistant-stubs/components/roborock/sensor.pyi +1 -1
- homeassistant-stubs/components/roborock/switch.pyi +3 -2
- homeassistant-stubs/components/roborock/time.pyi +3 -2
- homeassistant-stubs/components/roborock/vacuum.pyi +1 -1
- homeassistant-stubs/components/samsungtv/device_trigger.pyi +1 -2
- homeassistant-stubs/components/scene/__init__.pyi +2 -0
- homeassistant-stubs/components/schedule/__init__.pyi +5 -1
- homeassistant-stubs/components/schedule/const.pyi +1 -0
- homeassistant-stubs/components/script/helpers.pyi +1 -1
- homeassistant-stubs/components/sensibo/diagnostics.pyi +1 -1
- homeassistant-stubs/components/sensor/device_condition.pyi +1 -2
- homeassistant-stubs/components/sensor/device_trigger.pyi +1 -2
- homeassistant-stubs/components/sensor/recorder.pyi +10 -6
- homeassistant-stubs/components/sensoterra/__init__.pyi +10 -0
- homeassistant-stubs/components/sensoterra/config_flow.pyi +11 -0
- homeassistant-stubs/components/sensoterra/const.pyi +9 -0
- homeassistant-stubs/components/sensoterra/coordinator.pyi +15 -0
- homeassistant-stubs/components/sensoterra/sensor.pyi +39 -0
- homeassistant-stubs/components/shelly/cover.pyi +7 -1
- homeassistant-stubs/components/shelly/device_trigger.pyi +1 -2
- homeassistant-stubs/components/shelly/update.pyi +1 -0
- homeassistant-stubs/components/simplisafe/__init__.pyi +4 -38
- homeassistant-stubs/components/simplisafe/alarm_control_panel.pyi +2 -1
- homeassistant-stubs/components/simplisafe/binary_sensor.pyi +2 -1
- homeassistant-stubs/components/simplisafe/button.pyi +2 -1
- homeassistant-stubs/components/simplisafe/const.pyi +6 -0
- homeassistant-stubs/components/simplisafe/entity.pyi +38 -0
- homeassistant-stubs/components/simplisafe/lock.pyi +2 -1
- homeassistant-stubs/components/simplisafe/sensor.pyi +2 -1
- homeassistant-stubs/components/siren/__init__.pyi +2 -0
- homeassistant-stubs/components/slack/__init__.pyi +1 -13
- homeassistant-stubs/components/slack/entity.pyi +15 -0
- homeassistant-stubs/components/slack/sensor.pyi +1 -1
- homeassistant-stubs/components/smlight/__init__.pyi +18 -0
- homeassistant-stubs/components/smlight/binary_sensor.pyi +46 -0
- homeassistant-stubs/components/smlight/button.pyi +32 -0
- homeassistant-stubs/components/smlight/config_flow.pyi +27 -0
- homeassistant-stubs/components/smlight/const.pyi +11 -0
- homeassistant-stubs/components/smlight/coordinator.pyi +49 -0
- homeassistant-stubs/components/smlight/diagnostics.pyi +5 -0
- homeassistant-stubs/components/smlight/entity.pyi +10 -0
- homeassistant-stubs/components/smlight/sensor.pyi +56 -0
- homeassistant-stubs/components/smlight/switch.pyi +39 -0
- homeassistant-stubs/components/smlight/update.pyi +48 -0
- homeassistant-stubs/components/solarlog/__init__.pyi +14 -0
- homeassistant-stubs/components/solarlog/config_flow.pyi +27 -0
- homeassistant-stubs/components/solarlog/const.pyi +4 -0
- homeassistant-stubs/components/solarlog/coordinator.pyi +19 -0
- homeassistant-stubs/components/solarlog/diagnostics.pyi +10 -0
- homeassistant-stubs/components/solarlog/entity.pyi +23 -0
- homeassistant-stubs/components/solarlog/sensor.pyi +36 -0
- homeassistant-stubs/components/squeezebox/__init__.pyi +24 -0
- homeassistant-stubs/components/squeezebox/binary_sensor.pyi +17 -0
- homeassistant-stubs/components/squeezebox/browse_media.pyi +18 -0
- homeassistant-stubs/components/squeezebox/config_flow.pyi +27 -0
- homeassistant-stubs/components/squeezebox/const.pyi +29 -0
- homeassistant-stubs/components/squeezebox/coordinator.pyi +14 -0
- homeassistant-stubs/components/squeezebox/entity.pyi +14 -0
- homeassistant-stubs/components/squeezebox/media_player.pyi +111 -0
- homeassistant-stubs/components/squeezebox/sensor.pyi +18 -0
- homeassistant-stubs/components/ssdp/__init__.pyi +3 -1
- homeassistant-stubs/components/starlink/device_tracker.pyi +2 -5
- homeassistant-stubs/components/starlink/diagnostics.pyi +1 -1
- homeassistant-stubs/components/stt/const.pyi +6 -2
- homeassistant-stubs/components/surepetcare/lock.pyi +3 -4
- homeassistant-stubs/components/switch/__init__.pyi +2 -0
- homeassistant-stubs/components/switchbot_cloud/__init__.pyi +2 -1
- homeassistant-stubs/components/switchbot_cloud/const.pyi +4 -0
- homeassistant-stubs/components/switchbot_cloud/entity.pyi +1 -1
- homeassistant-stubs/components/switchbot_cloud/vacuum.pyi +32 -0
- homeassistant-stubs/components/switcher_kis/__init__.pyi +1 -1
- homeassistant-stubs/components/switcher_kis/config_flow.pyi +23 -2
- homeassistant-stubs/components/switcher_kis/coordinator.pyi +2 -0
- homeassistant-stubs/components/switcher_kis/cover.pyi +2 -1
- homeassistant-stubs/components/switcher_kis/utils.pyi +1 -1
- homeassistant-stubs/components/tailscale/__init__.pyi +0 -13
- homeassistant-stubs/components/tailscale/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/tailscale/config_flow.pyi +2 -0
- homeassistant-stubs/components/tailscale/entity.pyi +15 -0
- homeassistant-stubs/components/tailscale/sensor.pyi +1 -1
- homeassistant-stubs/components/tailwind/cover.pyi +1 -1
- homeassistant-stubs/components/tami4/button.pyi +14 -1
- homeassistant-stubs/components/tautulli/__init__.pyi +0 -13
- homeassistant-stubs/components/tautulli/entity.pyi +15 -0
- homeassistant-stubs/components/tautulli/sensor.pyi +2 -1
- homeassistant-stubs/components/tcp/binary_sensor.pyi +2 -1
- homeassistant-stubs/components/tcp/common.pyi +0 -17
- homeassistant-stubs/components/tcp/entity.pyi +21 -0
- homeassistant-stubs/components/tcp/sensor.pyi +2 -1
- homeassistant-stubs/components/threshold/binary_sensor.pyi +3 -17
- homeassistant-stubs/components/threshold/const.pyi +20 -5
- homeassistant-stubs/components/tibber/services.pyi +2 -2
- homeassistant-stubs/components/tile/device_tracker.pyi +1 -3
- homeassistant-stubs/components/todo/__init__.pyi +1 -1
- homeassistant-stubs/components/todo/const.pyi +4 -0
- homeassistant-stubs/components/todo/intent.pyi +2 -2
- homeassistant-stubs/components/tolo/__init__.pyi +3 -22
- homeassistant-stubs/components/tolo/binary_sensor.pyi +2 -1
- homeassistant-stubs/components/tolo/button.pyi +2 -1
- homeassistant-stubs/components/tolo/climate.pyi +2 -1
- homeassistant-stubs/components/tolo/coordinator.pyi +20 -0
- homeassistant-stubs/components/tolo/entity.pyi +11 -0
- homeassistant-stubs/components/tolo/fan.pyi +2 -1
- homeassistant-stubs/components/tolo/light.pyi +2 -1
- homeassistant-stubs/components/tolo/number.pyi +2 -1
- homeassistant-stubs/components/tolo/select.pyi +2 -1
- homeassistant-stubs/components/tolo/sensor.pyi +2 -1
- homeassistant-stubs/components/tolo/switch.pyi +2 -1
- homeassistant-stubs/components/tplink/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/tplink/button.pyi +2 -1
- homeassistant-stubs/components/tplink/deprecate.pyi +18 -0
- homeassistant-stubs/components/tplink/entity.pyi +8 -4
- homeassistant-stubs/components/tplink/number.pyi +3 -1
- homeassistant-stubs/components/tplink/select.pyi +1 -1
- homeassistant-stubs/components/tplink/sensor.pyi +2 -1
- homeassistant-stubs/components/tplink/siren.pyi +22 -0
- homeassistant-stubs/components/tplink/switch.pyi +1 -1
- homeassistant-stubs/components/tplink_omada/__init__.pyi +2 -0
- homeassistant-stubs/components/tplink_omada/controller.pyi +10 -5
- homeassistant-stubs/components/tplink_omada/coordinator.pyi +7 -2
- homeassistant-stubs/components/tplink_omada/device_tracker.pyi +1 -3
- homeassistant-stubs/components/tplink_omada/entity.pyi +0 -1
- homeassistant-stubs/components/tplink_omada/update.pyi +8 -7
- homeassistant-stubs/components/trace/__init__.pyi +1 -2
- homeassistant-stubs/components/trace/const.pyi +7 -3
- homeassistant-stubs/components/tractive/device_tracker.pyi +3 -9
- homeassistant-stubs/components/tradfri/cover.pyi +1 -1
- homeassistant-stubs/components/tradfri/fan.pyi +1 -1
- homeassistant-stubs/components/tradfri/light.pyi +1 -1
- homeassistant-stubs/components/tradfri/sensor.pyi +1 -1
- homeassistant-stubs/components/tradfri/switch.pyi +1 -1
- homeassistant-stubs/components/tts/__init__.pyi +2 -1
- homeassistant-stubs/components/tts/const.pyi +6 -1
- homeassistant-stubs/components/tts/helper.pyi +2 -3
- homeassistant-stubs/components/tts/legacy.pyi +0 -1
- homeassistant-stubs/components/tts/media_source.pyi +3 -3
- homeassistant-stubs/components/unifi/device_tracker.pyi +2 -4
- homeassistant-stubs/components/unifi/hub/__init__.pyi +2 -0
- homeassistant-stubs/components/unifi/switch.pyi +1 -1
- homeassistant-stubs/components/unifiprotect/binary_sensor.pyi +1 -2
- homeassistant-stubs/components/unifiprotect/button.pyi +1 -2
- homeassistant-stubs/components/unifiprotect/entity.pyi +40 -3
- homeassistant-stubs/components/unifiprotect/event.pyi +1 -2
- homeassistant-stubs/components/unifiprotect/media_source.pyi +1 -1
- homeassistant-stubs/components/unifiprotect/number.pyi +1 -2
- homeassistant-stubs/components/unifiprotect/select.pyi +1 -2
- homeassistant-stubs/components/unifiprotect/sensor.pyi +1 -2
- homeassistant-stubs/components/unifiprotect/switch.pyi +1 -2
- homeassistant-stubs/components/unifiprotect/text.pyi +1 -2
- homeassistant-stubs/components/upcloud/__init__.pyi +2 -37
- homeassistant-stubs/components/upcloud/binary_sensor.pyi +2 -1
- homeassistant-stubs/components/upcloud/const.pyi +1 -0
- homeassistant-stubs/components/upcloud/entity.pyi +38 -0
- homeassistant-stubs/components/upcloud/switch.pyi +4 -1
- homeassistant-stubs/components/update/__init__.pyi +1 -0
- homeassistant-stubs/components/uvc/__init__.pyi +0 -0
- homeassistant-stubs/components/uvc/camera.pyi +54 -0
- homeassistant-stubs/components/vacuum/__init__.pyi +21 -14
- homeassistant-stubs/components/vallox/__init__.pyi +6 -9
- homeassistant-stubs/components/vallox/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/vallox/config_flow.pyi +5 -2
- homeassistant-stubs/components/vallox/const.pyi +3 -3
- homeassistant-stubs/components/vallox/date.pyi +1 -1
- homeassistant-stubs/components/vallox/entity.pyi +12 -0
- homeassistant-stubs/components/vallox/fan.pyi +2 -2
- homeassistant-stubs/components/vallox/number.pyi +1 -1
- homeassistant-stubs/components/vallox/sensor.pyi +2 -2
- homeassistant-stubs/components/vallox/switch.pyi +1 -1
- homeassistant-stubs/components/valve/__init__.pyi +3 -1
- homeassistant-stubs/components/valve/const.pyi +9 -0
- homeassistant-stubs/components/velbus/climate.pyi +4 -1
- homeassistant-stubs/components/wallbox/const.pyi +4 -0
- homeassistant-stubs/components/wallbox/coordinator.pyi +3 -1
- homeassistant-stubs/components/wallbox/number.pyi +1 -1
- homeassistant-stubs/components/wallbox/sensor.pyi +1 -1
- homeassistant-stubs/components/water_heater/__init__.pyi +2 -0
- homeassistant-stubs/components/weather/__init__.pyi +1 -1
- homeassistant-stubs/components/weather/const.pyi +5 -0
- homeassistant-stubs/components/weather/intent.pyi +1 -3
- homeassistant-stubs/components/weather/websocket_api.pyi +1 -2
- homeassistant-stubs/components/webostv/device_trigger.pyi +1 -2
- homeassistant-stubs/components/withings/config_flow.pyi +1 -1
- homeassistant-stubs/components/yale_smart_alarm/coordinator.pyi +1 -0
- homeassistant-stubs/components/yale_smart_alarm/entity.pyi +9 -1
- homeassistant-stubs/components/yale_smart_alarm/lock.pyi +10 -6
- homeassistant-stubs/components/yale_smart_alarm/switch.pyi +20 -0
- homeassistant-stubs/components/youtube/const.pyi +1 -0
- homeassistant-stubs/components/youtube/coordinator.pyi +1 -1
- homeassistant-stubs/components/youtube/sensor.pyi +1 -1
- homeassistant-stubs/components/zeroconf/__init__.pyi +4 -0
- homeassistant-stubs/components/zwave_js/__init__.pyi +1 -1
- homeassistant-stubs/components/zwave_js/binary_sensor.pyi +1 -0
- homeassistant-stubs/components/zwave_js/const.pyi +1 -0
- homeassistant-stubs/components/zwave_js/cover.pyi +5 -0
- homeassistant-stubs/components/zwave_js/device_condition.pyi +1 -1
- homeassistant-stubs/components/zwave_js/device_trigger.pyi +1 -2
- homeassistant-stubs/components/zwave_js/diagnostics.pyi +1 -2
- homeassistant-stubs/components/zwave_js/entity.pyi +1 -2
- homeassistant-stubs/components/zwave_js/lock.pyi +2 -3
- homeassistant-stubs/components/zwave_js/migrate.pyi +8 -7
- homeassistant-stubs/components/zwave_js/sensor.pyi +8 -4
- homeassistant-stubs/components/zwave_js/triggers/value_updated.pyi +1 -1
- homeassistant-stubs/config_entries.pyi +9 -4
- homeassistant-stubs/const.pyi +19 -8
- homeassistant-stubs/helpers/aiohttp_client.pyi +8 -7
- homeassistant-stubs/helpers/condition.pyi +2 -0
- homeassistant-stubs/helpers/config_validation.pyi +5 -1
- homeassistant-stubs/helpers/discovery.pyi +1 -1
- homeassistant-stubs/helpers/discovery_flow.pyi +12 -2
- homeassistant-stubs/helpers/frame.pyi +1 -1
- homeassistant-stubs/helpers/llm.pyi +5 -5
- homeassistant-stubs/helpers/script.pyi +1 -1
- homeassistant-stubs/helpers/state.pyi +2 -1
- homeassistant-stubs/helpers/template.pyi +5 -1
- homeassistant-stubs/util/aiohttp.pyi +10 -0
- homeassistant-stubs/util/package.pyi +3 -0
- homeassistant-stubs/util/ssl.pyi +8 -4
- homeassistant-stubs/util/unit_conversion.pyi +2 -0
- homeassistant-stubs/util/unit_system.pyi +1 -0
- {homeassistant_stubs-2024.9.3.dist-info → homeassistant_stubs-2024.10.0.dist-info}/METADATA +2 -2
- {homeassistant_stubs-2024.9.3.dist-info → homeassistant_stubs-2024.10.0.dist-info}/RECORD +850 -725
- homeassistant-stubs/components/esphome/voice_assistant.pyi +0 -66
- homeassistant-stubs/components/notion/model.pyi +0 -7
- homeassistant-stubs/components/overkiz/climate.pyi +0 -10
- homeassistant-stubs/components/overkiz/cover.pyi +0 -11
- homeassistant-stubs/components/overkiz/water_heater_entities/__init__.pyi +0 -8
- homeassistant-stubs/components/rainmachine/model.pyi +0 -7
- homeassistant-stubs/components/recorder/history/common.pyi +0 -4
- homeassistant-stubs/components/unifiprotect/models.pyi +0 -44
- /homeassistant-stubs/components/deconz/{deconz_device.pyi → entity.pyi} +0 -0
- /homeassistant-stubs/components/devolo_home_control/{devolo_device.pyi → entity.pyi} +0 -0
- /homeassistant-stubs/components/knx/{knx_entity.pyi → entity.pyi} +0 -0
- /homeassistant-stubs/components/modbus/{base_platform.pyi → entity.pyi} +0 -0
- /homeassistant-stubs/components/mysensors/{device.pyi → entity.pyi} +0 -0
- /homeassistant-stubs/components/onewire/{onewire_entities.pyi → entity.pyi} +0 -0
- /homeassistant-stubs/components/{overkiz/cover_entities → onkyo}/__init__.pyi +0 -0
- /homeassistant-stubs/components/overkiz/{climate_entities → climate}/atlantic_electrical_heater.pyi +0 -0
- /homeassistant-stubs/components/overkiz/{climate_entities → climate}/atlantic_electrical_heater_with_adjustable_temperature_setpoint.pyi +0 -0
- /homeassistant-stubs/components/overkiz/{climate_entities → climate}/atlantic_electrical_towel_dryer.pyi +0 -0
- /homeassistant-stubs/components/overkiz/{climate_entities → climate}/atlantic_heat_recovery_ventilation.pyi +0 -0
- /homeassistant-stubs/components/overkiz/{climate_entities → climate}/atlantic_pass_apc_heat_pump_main_component.pyi +0 -0
- /homeassistant-stubs/components/overkiz/{climate_entities → climate}/atlantic_pass_apc_heating_zone.pyi +0 -0
- /homeassistant-stubs/components/overkiz/{climate_entities → climate}/atlantic_pass_apc_zone_control.pyi +0 -0
- /homeassistant-stubs/components/overkiz/{climate_entities → climate}/atlantic_pass_apc_zone_control_zone.pyi +0 -0
- /homeassistant-stubs/components/overkiz/{climate_entities → climate}/hitachi_air_to_air_heat_pump_hlrrwifi.pyi +0 -0
- /homeassistant-stubs/components/overkiz/{climate_entities → climate}/hitachi_air_to_air_heat_pump_ovp.pyi +0 -0
- /homeassistant-stubs/components/overkiz/{climate_entities → climate}/somfy_heating_temperature_interface.pyi +0 -0
- /homeassistant-stubs/components/overkiz/{climate_entities → climate}/somfy_thermostat.pyi +0 -0
- /homeassistant-stubs/components/overkiz/{climate_entities → climate}/valve_heating_temperature_interface.pyi +0 -0
- /homeassistant-stubs/components/overkiz/{cover_entities → cover}/awning.pyi +0 -0
- /homeassistant-stubs/components/overkiz/{cover_entities → cover}/generic_cover.pyi +0 -0
- /homeassistant-stubs/components/overkiz/{cover_entities → cover}/vertical_cover.pyi +0 -0
- /homeassistant-stubs/components/overkiz/{water_heater_entities → water_heater}/atlantic_domestic_hot_water_production_mlb_component.pyi +0 -0
- /homeassistant-stubs/components/overkiz/{water_heater_entities → water_heater}/atlantic_pass_apc_dhw.pyi +0 -0
- /homeassistant-stubs/components/overkiz/{water_heater_entities → water_heater}/domestic_hot_water_production.pyi +0 -0
- /homeassistant-stubs/components/overkiz/{water_heater_entities → water_heater}/hitachi_dhw.pyi +0 -0
- /homeassistant-stubs/components/roborock/{device.pyi → entity.pyi} +0 -0
- /homeassistant-stubs/components/tradfri/{base_class.pyi → entity.pyi} +0 -0
- {homeassistant_stubs-2024.9.3.dist-info → homeassistant_stubs-2024.10.0.dist-info}/WHEEL +0 -0
- {homeassistant_stubs-2024.9.3.dist-info → homeassistant_stubs-2024.10.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,7 +1,6 @@
|
|
1
1
|
from .config_flow import get_client_controller as get_client_controller
|
2
2
|
from .const import CONF_ALLOW_INACTIVE_ZONES_TO_RUN as CONF_ALLOW_INACTIVE_ZONES_TO_RUN, CONF_DEFAULT_ZONE_RUN_TIME as CONF_DEFAULT_ZONE_RUN_TIME, CONF_DURATION as CONF_DURATION, CONF_USE_APP_RUN_TIMES as CONF_USE_APP_RUN_TIMES, DATA_API_VERSIONS as DATA_API_VERSIONS, DATA_MACHINE_FIRMWARE_UPDATE_STATUS as DATA_MACHINE_FIRMWARE_UPDATE_STATUS, DATA_PROGRAMS as DATA_PROGRAMS, DATA_PROVISION_SETTINGS as DATA_PROVISION_SETTINGS, DATA_RESTRICTIONS_CURRENT as DATA_RESTRICTIONS_CURRENT, DATA_RESTRICTIONS_UNIVERSAL as DATA_RESTRICTIONS_UNIVERSAL, DATA_ZONES as DATA_ZONES, DEFAULT_ZONE_RUN as DEFAULT_ZONE_RUN, DOMAIN as DOMAIN, LOGGER as LOGGER
|
3
3
|
from .coordinator import RainMachineDataUpdateCoordinator as RainMachineDataUpdateCoordinator
|
4
|
-
from .model import RainMachineEntityDescription as RainMachineEntityDescription
|
5
4
|
from _typeshed import Incomplete
|
6
5
|
from collections.abc import Callable as Callable
|
7
6
|
from dataclasses import dataclass
|
@@ -10,8 +9,7 @@ from homeassistant.const import CONF_DEVICE_ID as CONF_DEVICE_ID, CONF_IP_ADDRES
|
|
10
9
|
from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
|
11
10
|
from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady, HomeAssistantError as HomeAssistantError
|
12
11
|
from homeassistant.helpers import aiohttp_client as aiohttp_client
|
13
|
-
from homeassistant.helpers.
|
14
|
-
from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity, UpdateFailed as UpdateFailed
|
12
|
+
from homeassistant.helpers.update_coordinator import UpdateFailed as UpdateFailed
|
15
13
|
from homeassistant.util.dt import as_timestamp as as_timestamp, utcnow as utcnow
|
16
14
|
from homeassistant.util.network import is_ip_address as is_ip_address
|
17
15
|
from regenmaschine.controller import Controller as Controller
|
@@ -70,18 +68,3 @@ async def async_setup_entry(hass: HomeAssistant, entry: RainMachineConfigEntry)
|
|
70
68
|
async def async_unload_entry(hass: HomeAssistant, entry: RainMachineConfigEntry) -> bool: ...
|
71
69
|
async def async_migrate_entry(hass: HomeAssistant, entry: RainMachineConfigEntry) -> bool: ...
|
72
70
|
async def async_reload_entry(hass: HomeAssistant, entry: RainMachineConfigEntry) -> None: ...
|
73
|
-
|
74
|
-
class RainMachineEntity(CoordinatorEntity[RainMachineDataUpdateCoordinator]):
|
75
|
-
_attr_has_entity_name: bool
|
76
|
-
_attr_extra_state_attributes: Incomplete
|
77
|
-
_attr_unique_id: Incomplete
|
78
|
-
_entry: Incomplete
|
79
|
-
_data: Incomplete
|
80
|
-
_version_coordinator: Incomplete
|
81
|
-
entity_description: Incomplete
|
82
|
-
def __init__(self, entry: RainMachineConfigEntry, data: RainMachineData, description: RainMachineEntityDescription) -> None: ...
|
83
|
-
@property
|
84
|
-
def device_info(self) -> DeviceInfo: ...
|
85
|
-
def _handle_coordinator_update(self) -> None: ...
|
86
|
-
async def async_added_to_hass(self) -> None: ...
|
87
|
-
def update_from_latest_data(self) -> None: ...
|
@@ -1,6 +1,6 @@
|
|
1
|
-
from . import RainMachineConfigEntry as RainMachineConfigEntry
|
1
|
+
from . import RainMachineConfigEntry as RainMachineConfigEntry
|
2
2
|
from .const import DATA_PROVISION_SETTINGS as DATA_PROVISION_SETTINGS, DATA_RESTRICTIONS_CURRENT as DATA_RESTRICTIONS_CURRENT
|
3
|
-
from .
|
3
|
+
from .entity import RainMachineEntity as RainMachineEntity, RainMachineEntityDescription as RainMachineEntityDescription
|
4
4
|
from .util import EntityDomainReplacementStrategy as EntityDomainReplacementStrategy, async_finish_entity_domain_replacements as async_finish_entity_domain_replacements, key_exists as key_exists
|
5
5
|
from _typeshed import Incomplete
|
6
6
|
from dataclasses import dataclass
|
@@ -1,6 +1,6 @@
|
|
1
|
-
from . import RainMachineConfigEntry as RainMachineConfigEntry
|
1
|
+
from . import RainMachineConfigEntry as RainMachineConfigEntry
|
2
2
|
from .const import DATA_PROVISION_SETTINGS as DATA_PROVISION_SETTINGS
|
3
|
-
from .
|
3
|
+
from .entity import RainMachineEntity as RainMachineEntity, RainMachineEntityDescription as RainMachineEntityDescription
|
4
4
|
from _typeshed import Incomplete
|
5
5
|
from collections.abc import Awaitable, Callable as Callable
|
6
6
|
from dataclasses import dataclass
|
@@ -0,0 +1,30 @@
|
|
1
|
+
from . import RainMachineConfigEntry as RainMachineConfigEntry, RainMachineData as RainMachineData
|
2
|
+
from .const import DATA_API_VERSIONS as DATA_API_VERSIONS, DOMAIN as DOMAIN
|
3
|
+
from .coordinator import RainMachineDataUpdateCoordinator as RainMachineDataUpdateCoordinator
|
4
|
+
from _typeshed import Incomplete
|
5
|
+
from dataclasses import dataclass
|
6
|
+
from homeassistant.const import CONF_IP_ADDRESS as CONF_IP_ADDRESS, CONF_PORT as CONF_PORT
|
7
|
+
from homeassistant.core import callback as callback
|
8
|
+
from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
|
9
|
+
from homeassistant.helpers.entity import EntityDescription as EntityDescription
|
10
|
+
from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
|
11
|
+
|
12
|
+
@dataclass(frozen=True, kw_only=True)
|
13
|
+
class RainMachineEntityDescription(EntityDescription):
|
14
|
+
api_category: str
|
15
|
+
def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., api_category) -> None: ...
|
16
|
+
|
17
|
+
class RainMachineEntity(CoordinatorEntity[RainMachineDataUpdateCoordinator]):
|
18
|
+
_attr_has_entity_name: bool
|
19
|
+
_attr_extra_state_attributes: Incomplete
|
20
|
+
_attr_unique_id: Incomplete
|
21
|
+
_entry: Incomplete
|
22
|
+
_data: Incomplete
|
23
|
+
_version_coordinator: Incomplete
|
24
|
+
entity_description: Incomplete
|
25
|
+
def __init__(self, entry: RainMachineConfigEntry, data: RainMachineData, description: RainMachineEntityDescription) -> None: ...
|
26
|
+
@property
|
27
|
+
def device_info(self) -> DeviceInfo: ...
|
28
|
+
def _handle_coordinator_update(self) -> None: ...
|
29
|
+
async def async_added_to_hass(self) -> None: ...
|
30
|
+
def update_from_latest_data(self) -> None: ...
|
@@ -1,6 +1,6 @@
|
|
1
|
-
from . import RainMachineConfigEntry as RainMachineConfigEntry, RainMachineData as RainMachineData
|
1
|
+
from . import RainMachineConfigEntry as RainMachineConfigEntry, RainMachineData as RainMachineData
|
2
2
|
from .const import DATA_RESTRICTIONS_UNIVERSAL as DATA_RESTRICTIONS_UNIVERSAL
|
3
|
-
from .
|
3
|
+
from .entity import RainMachineEntity as RainMachineEntity, RainMachineEntityDescription as RainMachineEntityDescription
|
4
4
|
from .util import key_exists as key_exists
|
5
5
|
from _typeshed import Incomplete
|
6
6
|
from dataclasses import dataclass
|
@@ -1,6 +1,6 @@
|
|
1
|
-
from . import RainMachineConfigEntry as RainMachineConfigEntry, RainMachineData as RainMachineData
|
1
|
+
from . import RainMachineConfigEntry as RainMachineConfigEntry, RainMachineData as RainMachineData
|
2
2
|
from .const import DATA_PROGRAMS as DATA_PROGRAMS, DATA_PROVISION_SETTINGS as DATA_PROVISION_SETTINGS, DATA_ZONES as DATA_ZONES
|
3
|
-
from .
|
3
|
+
from .entity import RainMachineEntity as RainMachineEntity, RainMachineEntityDescription as RainMachineEntityDescription
|
4
4
|
from .util import EntityDomainReplacementStrategy as EntityDomainReplacementStrategy, RUN_STATE_MAP as RUN_STATE_MAP, RunStates as RunStates, async_finish_entity_domain_replacements as async_finish_entity_domain_replacements, key_exists as key_exists
|
5
5
|
from _typeshed import Incomplete
|
6
6
|
from dataclasses import dataclass
|
@@ -1,6 +1,6 @@
|
|
1
|
-
from . import RainMachineConfigEntry as RainMachineConfigEntry, RainMachineData as RainMachineData,
|
1
|
+
from . import RainMachineConfigEntry as RainMachineConfigEntry, RainMachineData as RainMachineData, async_update_programs_and_zones as async_update_programs_and_zones
|
2
2
|
from .const import CONF_ALLOW_INACTIVE_ZONES_TO_RUN as CONF_ALLOW_INACTIVE_ZONES_TO_RUN, CONF_DEFAULT_ZONE_RUN_TIME as CONF_DEFAULT_ZONE_RUN_TIME, CONF_DURATION as CONF_DURATION, CONF_USE_APP_RUN_TIMES as CONF_USE_APP_RUN_TIMES, DATA_PROGRAMS as DATA_PROGRAMS, DATA_PROVISION_SETTINGS as DATA_PROVISION_SETTINGS, DATA_RESTRICTIONS_UNIVERSAL as DATA_RESTRICTIONS_UNIVERSAL, DATA_ZONES as DATA_ZONES, DEFAULT_ZONE_RUN as DEFAULT_ZONE_RUN
|
3
|
-
from .
|
3
|
+
from .entity import RainMachineEntity as RainMachineEntity, RainMachineEntityDescription as RainMachineEntityDescription
|
4
4
|
from .util import RUN_STATE_MAP as RUN_STATE_MAP, key_exists as key_exists
|
5
5
|
from _typeshed import Incomplete
|
6
6
|
from collections.abc import Awaitable as Awaitable, Callable as Callable, Coroutine
|
@@ -1,6 +1,6 @@
|
|
1
|
-
from . import RainMachineConfigEntry as RainMachineConfigEntry
|
1
|
+
from . import RainMachineConfigEntry as RainMachineConfigEntry
|
2
2
|
from .const import DATA_MACHINE_FIRMWARE_UPDATE_STATUS as DATA_MACHINE_FIRMWARE_UPDATE_STATUS
|
3
|
-
from .
|
3
|
+
from .entity import RainMachineEntity as RainMachineEntity, RainMachineEntityDescription as RainMachineEntityDescription
|
4
4
|
from _typeshed import Incomplete
|
5
5
|
from enum import Enum
|
6
6
|
from homeassistant.components.update import UpdateDeviceClass as UpdateDeviceClass, UpdateEntity as UpdateEntity, UpdateEntityFeature as UpdateEntityFeature
|
@@ -22,15 +22,15 @@ ATTR_KEEP_DAYS: str
|
|
22
22
|
ATTR_REPACK: str
|
23
23
|
ATTR_APPLY_FILTER: str
|
24
24
|
KEEPALIVE_TIME: int
|
25
|
-
STATISTICS_ROWS_SCHEMA_VERSION: int
|
26
25
|
CONTEXT_ID_AS_BINARY_SCHEMA_VERSION: int
|
27
26
|
EVENT_TYPE_IDS_SCHEMA_VERSION: int
|
28
27
|
STATES_META_SCHEMA_VERSION: int
|
29
28
|
LAST_REPORTED_SCHEMA_VERSION: int
|
30
29
|
LEGACY_STATES_EVENT_ID_INDEX_SCHEMA_VERSION: int
|
31
30
|
INTEGRATION_PLATFORM_COMPILE_STATISTICS: str
|
32
|
-
INTEGRATION_PLATFORM_VALIDATE_STATISTICS: str
|
33
31
|
INTEGRATION_PLATFORM_LIST_STATISTIC_IDS: str
|
32
|
+
INTEGRATION_PLATFORM_UPDATE_STATISTICS_ISSUES: str
|
33
|
+
INTEGRATION_PLATFORM_VALIDATE_STATISTICS: str
|
34
34
|
INTEGRATION_PLATFORM_METHODS: Incomplete
|
35
35
|
|
36
36
|
class SupportedDialect(StrEnum):
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import asyncio
|
2
2
|
import threading
|
3
3
|
from . import migration as migration, statistics as statistics
|
4
|
-
from .const import DB_WORKER_PREFIX as DB_WORKER_PREFIX, DOMAIN as DOMAIN, KEEPALIVE_TIME as KEEPALIVE_TIME, LAST_REPORTED_SCHEMA_VERSION as LAST_REPORTED_SCHEMA_VERSION, MARIADB_PYMYSQL_URL_PREFIX as MARIADB_PYMYSQL_URL_PREFIX, MARIADB_URL_PREFIX as MARIADB_URL_PREFIX, MAX_QUEUE_BACKLOG_MIN_VALUE as MAX_QUEUE_BACKLOG_MIN_VALUE, MIN_AVAILABLE_MEMORY_FOR_QUEUE_BACKLOG as MIN_AVAILABLE_MEMORY_FOR_QUEUE_BACKLOG, MYSQLDB_PYMYSQL_URL_PREFIX as MYSQLDB_PYMYSQL_URL_PREFIX, MYSQLDB_URL_PREFIX as MYSQLDB_URL_PREFIX, SQLITE_MAX_BIND_VARS as SQLITE_MAX_BIND_VARS, SQLITE_URL_PREFIX as SQLITE_URL_PREFIX,
|
4
|
+
from .const import DB_WORKER_PREFIX as DB_WORKER_PREFIX, DOMAIN as DOMAIN, KEEPALIVE_TIME as KEEPALIVE_TIME, LAST_REPORTED_SCHEMA_VERSION as LAST_REPORTED_SCHEMA_VERSION, MARIADB_PYMYSQL_URL_PREFIX as MARIADB_PYMYSQL_URL_PREFIX, MARIADB_URL_PREFIX as MARIADB_URL_PREFIX, MAX_QUEUE_BACKLOG_MIN_VALUE as MAX_QUEUE_BACKLOG_MIN_VALUE, MIN_AVAILABLE_MEMORY_FOR_QUEUE_BACKLOG as MIN_AVAILABLE_MEMORY_FOR_QUEUE_BACKLOG, MYSQLDB_PYMYSQL_URL_PREFIX as MYSQLDB_PYMYSQL_URL_PREFIX, MYSQLDB_URL_PREFIX as MYSQLDB_URL_PREFIX, SQLITE_MAX_BIND_VARS as SQLITE_MAX_BIND_VARS, SQLITE_URL_PREFIX as SQLITE_URL_PREFIX, SupportedDialect as SupportedDialect
|
5
5
|
from .db_schema import Base as Base, EventData as EventData, EventTypes as EventTypes, Events as Events, SCHEMA_VERSION as SCHEMA_VERSION, StateAttributes as StateAttributes, States as States, StatesMeta as StatesMeta, Statistics as Statistics, StatisticsShortTerm as StatisticsShortTerm
|
6
6
|
from .executor import DBInterruptibleThreadPoolExecutor as DBInterruptibleThreadPoolExecutor
|
7
7
|
from .migration import EntityIDMigration as EntityIDMigration, EventIDPostMigration as EventIDPostMigration, EventTypeIDMigration as EventTypeIDMigration, EventsContextIDMigration as EventsContextIDMigration, StatesContextIDMigration as StatesContextIDMigration
|
@@ -87,7 +87,6 @@ class Recorder(threading.Thread):
|
|
87
87
|
event_session: Incomplete
|
88
88
|
_get_session: Incomplete
|
89
89
|
_completed_first_database_setup: Incomplete
|
90
|
-
async_migration_event: Incomplete
|
91
90
|
migration_in_progress: bool
|
92
91
|
migration_is_live: bool
|
93
92
|
use_legacy_events_index: bool
|
@@ -138,8 +137,8 @@ class Recorder(threading.Thread):
|
|
138
137
|
def _adjust_lru_size(self) -> None: ...
|
139
138
|
def async_periodic_statistics(self) -> None: ...
|
140
139
|
def async_adjust_statistics(self, statistic_id: str, start_time: datetime, sum_adjustment: float, adjustment_unit: str) -> None: ...
|
141
|
-
def async_clear_statistics(self, statistic_ids: list[str]) -> None: ...
|
142
|
-
def async_update_statistics_metadata(self, statistic_id: str, *, new_statistic_id: str | UndefinedType = ..., new_unit_of_measurement: str | None | UndefinedType =
|
140
|
+
def async_clear_statistics(self, statistic_ids: list[str], *, on_done: Callable[[], None] | None = None) -> None: ...
|
141
|
+
def async_update_statistics_metadata(self, statistic_id: str, *, new_statistic_id: str | UndefinedType = ..., new_unit_of_measurement: str | None | UndefinedType = ..., on_done: Callable[[], None] | None = None) -> None: ...
|
143
142
|
def async_update_states_metadata(self, entity_id: str, new_entity_id: str) -> None: ...
|
144
143
|
def async_change_statistics_unit(self, statistic_id: str, *, new_unit_of_measurement: str, old_unit_of_measurement: str) -> None: ...
|
145
144
|
def async_import_statistics(self, metadata: StatisticMetaData, stats: Iterable[StatisticData], table: type[Statistics | StatisticsShortTerm]) -> None: ...
|
@@ -157,7 +156,6 @@ class Recorder(threading.Thread):
|
|
157
156
|
def _guarded_process_one_task_or_event_or_recover(self, task: RecorderTask | Event) -> None: ...
|
158
157
|
def _process_one_task_or_event_or_recover(self, task: RecorderTask | Event) -> None: ...
|
159
158
|
def _setup_recorder(self) -> bool: ...
|
160
|
-
def _async_migration_started(self) -> None: ...
|
161
159
|
def _migrate_schema_offline(self, schema_status: migration.SchemaValidationStatus) -> tuple[bool, migration.SchemaValidationStatus]: ...
|
162
160
|
def _migrate_schema_live(self, schema_status: migration.SchemaValidationStatus) -> tuple[bool, migration.SchemaValidationStatus]: ...
|
163
161
|
def _migrate_schema(self, schema_status: migration.SchemaValidationStatus, live: bool) -> tuple[bool, migration.SchemaValidationStatus]: ...
|
@@ -172,8 +170,6 @@ class Recorder(threading.Thread):
|
|
172
170
|
def _close_event_session(self) -> None: ...
|
173
171
|
def _reopen_event_session(self) -> None: ...
|
174
172
|
def _open_event_session(self) -> None: ...
|
175
|
-
def _post_schema_migration(self, old_version: int, new_version: int) -> None: ...
|
176
|
-
def _post_migrate_entity_ids(self) -> bool: ...
|
177
173
|
def _send_keep_alive(self) -> None: ...
|
178
174
|
async def async_block_till_done(self) -> None: ...
|
179
175
|
def block_till_done(self) -> None: ...
|
@@ -1,16 +1,15 @@
|
|
1
|
-
from ... import recorder as recorder
|
2
1
|
from ..db_schema import RecorderRuns as RecorderRuns, StateAttributes as StateAttributes, States as States
|
3
2
|
from ..filters import Filters as Filters
|
4
|
-
from ..models import
|
5
|
-
from ..models.legacy import LegacyLazyState as LegacyLazyState,
|
3
|
+
from ..models import process_timestamp as process_timestamp, process_timestamp_to_utc_isoformat as process_timestamp_to_utc_isoformat
|
4
|
+
from ..models.legacy import LegacyLazyState as LegacyLazyState, legacy_row_to_compressed_state as legacy_row_to_compressed_state
|
6
5
|
from ..util import execute_stmt_lambda_element as execute_stmt_lambda_element, session_scope as session_scope
|
7
|
-
from .common import _schema_version as _schema_version
|
8
6
|
from .const import LAST_CHANGED_KEY as LAST_CHANGED_KEY, NEED_ATTRIBUTE_DOMAINS as NEED_ATTRIBUTE_DOMAINS, SIGNIFICANT_DOMAINS as SIGNIFICANT_DOMAINS, SIGNIFICANT_DOMAINS_ENTITY_ID_LIKE as SIGNIFICANT_DOMAINS_ENTITY_ID_LIKE, STATE_KEY as STATE_KEY
|
9
7
|
from _typeshed import Incomplete
|
10
8
|
from collections.abc import Callable as Callable, Iterable
|
11
9
|
from datetime import datetime
|
12
10
|
from homeassistant.const import COMPRESSED_STATE_LAST_UPDATED as COMPRESSED_STATE_LAST_UPDATED, COMPRESSED_STATE_STATE as COMPRESSED_STATE_STATE
|
13
11
|
from homeassistant.core import HomeAssistant as HomeAssistant, State as State, split_entity_id as split_entity_id
|
12
|
+
from homeassistant.helpers.recorder import get_instance as get_instance
|
14
13
|
from sqlalchemy import Column as Column
|
15
14
|
from sqlalchemy.engine.row import Row as Row
|
16
15
|
from sqlalchemy.orm.session import Session as Session
|
@@ -34,16 +33,16 @@ _QUERY_STATES_NO_LAST_CHANGED: Incomplete
|
|
34
33
|
_FIELD_MAP: Incomplete
|
35
34
|
_FIELD_MAP_PRE_SCHEMA_31: Incomplete
|
36
35
|
|
37
|
-
def _lambda_stmt_and_join_attributes(
|
36
|
+
def _lambda_stmt_and_join_attributes(no_attributes: bool, include_last_changed: bool = True) -> tuple[StatementLambdaElement, bool]: ...
|
38
37
|
def get_significant_states(hass: HomeAssistant, start_time: datetime, end_time: datetime | None = None, entity_ids: list[str] | None = None, filters: Filters | None = None, include_start_time_state: bool = True, significant_changes_only: bool = True, minimal_response: bool = False, no_attributes: bool = False, compressed_state_format: bool = False) -> dict[str, list[State | dict[str, Any]]]: ...
|
39
|
-
def _significant_states_stmt(
|
38
|
+
def _significant_states_stmt(start_time: datetime, end_time: datetime | None, entity_ids: list[str], significant_changes_only: bool, no_attributes: bool) -> StatementLambdaElement: ...
|
40
39
|
def get_significant_states_with_session(hass: HomeAssistant, session: Session, start_time: datetime, end_time: datetime | None = None, entity_ids: list[str] | None = None, filters: Filters | None = None, include_start_time_state: bool = True, significant_changes_only: bool = True, minimal_response: bool = False, no_attributes: bool = False, compressed_state_format: bool = False) -> dict[str, list[State | dict[str, Any]]]: ...
|
41
40
|
def get_full_significant_states_with_session(hass: HomeAssistant, session: Session, start_time: datetime, end_time: datetime | None = None, entity_ids: list[str] | None = None, filters: Filters | None = None, include_start_time_state: bool = True, significant_changes_only: bool = True, no_attributes: bool = False) -> dict[str, list[State]]: ...
|
42
|
-
def _state_changed_during_period_stmt(
|
41
|
+
def _state_changed_during_period_stmt(start_time: datetime, end_time: datetime | None, entity_id: str, no_attributes: bool, descending: bool, limit: int | None) -> StatementLambdaElement: ...
|
43
42
|
def state_changes_during_period(hass: HomeAssistant, start_time: datetime, end_time: datetime | None = None, entity_id: str | None = None, no_attributes: bool = False, descending: bool = False, limit: int | None = None, include_start_time_state: bool = True) -> dict[str, list[State]]: ...
|
44
|
-
def _get_last_state_changes_stmt(
|
43
|
+
def _get_last_state_changes_stmt(number_of_states: int, entity_id: str) -> StatementLambdaElement: ...
|
45
44
|
def get_last_state_changes(hass: HomeAssistant, number_of_states: int, entity_id: str) -> dict[str, list[State]]: ...
|
46
|
-
def _get_states_for_entities_stmt(
|
45
|
+
def _get_states_for_entities_stmt(run_start: datetime, utc_point_in_time: datetime, entity_ids: list[str], no_attributes: bool) -> StatementLambdaElement: ...
|
47
46
|
def _get_rows_with_session(hass: HomeAssistant, session: Session, utc_point_in_time: datetime, entity_ids: list[str], run: RecorderRuns | None = None, no_attributes: bool = False) -> Iterable[Row]: ...
|
48
|
-
def _get_single_entity_states_stmt(
|
47
|
+
def _get_single_entity_states_stmt(utc_point_in_time: datetime, entity_id: str, no_attributes: bool = False) -> StatementLambdaElement: ...
|
49
48
|
def _sorted_states_to_dict(hass: HomeAssistant, session: Session, states: Iterable[Row], start_time: datetime, entity_ids: list[str], include_start_time_state: bool = True, minimal_response: bool = False, no_attributes: bool = False, compressed_state_format: bool = False) -> dict[str, list[State | dict[str, Any]]]: ...
|
@@ -1,4 +1,3 @@
|
|
1
|
-
from ... import recorder as recorder
|
2
1
|
from ..const import LAST_REPORTED_SCHEMA_VERSION as LAST_REPORTED_SCHEMA_VERSION
|
3
2
|
from ..db_schema import SHARED_ATTR_OR_LEGACY_ATTRIBUTES as SHARED_ATTR_OR_LEGACY_ATTRIBUTES, StateAttributes as StateAttributes, States as States
|
4
3
|
from ..filters import Filters as Filters
|
@@ -10,6 +9,7 @@ from collections.abc import Callable as Callable, Iterable
|
|
10
9
|
from datetime import datetime
|
11
10
|
from homeassistant.const import COMPRESSED_STATE_LAST_UPDATED as COMPRESSED_STATE_LAST_UPDATED, COMPRESSED_STATE_STATE as COMPRESSED_STATE_STATE
|
12
11
|
from homeassistant.core import HomeAssistant as HomeAssistant, State as State, split_entity_id as split_entity_id
|
12
|
+
from homeassistant.helpers.recorder import get_instance as get_instance
|
13
13
|
from sqlalchemy import CompoundSelect as CompoundSelect, Select as Select, Subquery as Subquery
|
14
14
|
from sqlalchemy.engine.row import Row as Row
|
15
15
|
from sqlalchemy.orm.session import Session as Session
|
@@ -6,9 +6,9 @@ from .db_schema import BIG_INTEGER_SQL as BIG_INTEGER_SQL, Base as Base, CONTEXT
|
|
6
6
|
from .models import process_timestamp as process_timestamp
|
7
7
|
from .models.time import datetime_to_timestamp_or_none as datetime_to_timestamp_or_none
|
8
8
|
from .queries import batch_cleanup_entity_ids as batch_cleanup_entity_ids, delete_duplicate_short_term_statistics_row as delete_duplicate_short_term_statistics_row, delete_duplicate_statistics_row as delete_duplicate_statistics_row, find_entity_ids_to_migrate as find_entity_ids_to_migrate, find_event_type_to_migrate as find_event_type_to_migrate, find_events_context_ids_to_migrate as find_events_context_ids_to_migrate, find_states_context_ids_to_migrate as find_states_context_ids_to_migrate, find_unmigrated_short_term_statistics_rows as find_unmigrated_short_term_statistics_rows, find_unmigrated_statistics_rows as find_unmigrated_statistics_rows, has_entity_ids_to_migrate as has_entity_ids_to_migrate, has_event_type_to_migrate as has_event_type_to_migrate, has_events_context_ids_to_migrate as has_events_context_ids_to_migrate, has_states_context_ids_to_migrate as has_states_context_ids_to_migrate, has_used_states_event_ids as has_used_states_event_ids, migrate_single_short_term_statistics_row_to_timestamp as migrate_single_short_term_statistics_row_to_timestamp, migrate_single_statistics_row_to_timestamp as migrate_single_statistics_row_to_timestamp
|
9
|
-
from .statistics import get_start_time as get_start_time
|
10
|
-
from .tasks import
|
11
|
-
from .util import database_job_retry_wrapper as database_job_retry_wrapper, execute_stmt_lambda_element as execute_stmt_lambda_element, get_index_by_name as get_index_by_name, retryable_database_job as retryable_database_job, session_scope as session_scope
|
9
|
+
from .statistics import cleanup_statistics_timestamp_migration as cleanup_statistics_timestamp_migration, get_start_time as get_start_time
|
10
|
+
from .tasks import RecorderTask as RecorderTask
|
11
|
+
from .util import database_job_retry_wrapper as database_job_retry_wrapper, execute_stmt_lambda_element as execute_stmt_lambda_element, get_index_by_name as get_index_by_name, retryable_database_job as retryable_database_job, retryable_database_job_method as retryable_database_job_method, session_scope as session_scope
|
12
12
|
from _typeshed import Incomplete
|
13
13
|
from abc import ABC, abstractmethod
|
14
14
|
from collections.abc import Callable as Callable, Iterable
|
@@ -24,6 +24,8 @@ from typing import Any
|
|
24
24
|
|
25
25
|
LIVE_MIGRATION_MIN_SCHEMA_VERSION: int
|
26
26
|
MIGRATION_NOTE_OFFLINE: str
|
27
|
+
MIGRATION_NOTE_MINUTES: str
|
28
|
+
MIGRATION_NOTE_WHILE: str
|
27
29
|
_EMPTY_ENTITY_ID: str
|
28
30
|
_EMPTY_EVENT_TYPE: str
|
29
31
|
_LOGGER: Incomplete
|
@@ -233,8 +235,6 @@ class _SchemaVersion47Migrator(_SchemaVersionMigrator, target_version=47):
|
|
233
235
|
|
234
236
|
def _migrate_statistics_columns_to_timestamp_removing_duplicates(hass: HomeAssistant, instance: Recorder, session_maker: Callable[[], Session], engine: Engine) -> None: ...
|
235
237
|
def _correct_table_character_set_and_collation(table: str, session_maker: Callable[[], Session]) -> None: ...
|
236
|
-
def post_schema_migration(instance: Recorder, old_version: int, new_version: int) -> None: ...
|
237
|
-
def _wipe_old_string_statistics_columns(instance: Recorder) -> None: ...
|
238
238
|
def _wipe_old_string_time_columns(instance: Recorder, engine: Engine, session: Session) -> None: ...
|
239
239
|
def _migrate_columns_to_timestamp(instance: Recorder, session_maker: Callable[[], Session], engine: Engine) -> None: ...
|
240
240
|
def _migrate_statistics_columns_to_timestamp_one_by_one(instance: Recorder, session_maker: Callable[[], Session]) -> None: ...
|
@@ -242,7 +242,6 @@ def _migrate_statistics_columns_to_timestamp(instance: Recorder, session_maker:
|
|
242
242
|
def _context_id_to_bytes(context_id: str | None) -> bytes | None: ...
|
243
243
|
def _generate_ulid_bytes_at_time(timestamp: float | None) -> bytes: ...
|
244
244
|
def post_migrate_entity_ids(instance: Recorder) -> bool: ...
|
245
|
-
def cleanup_legacy_states_event_ids(instance: Recorder) -> bool: ...
|
246
245
|
def _initialize_database(session: Session) -> bool: ...
|
247
246
|
def initialize_database(session_maker: Callable[[], Session]) -> bool: ...
|
248
247
|
|
@@ -259,12 +258,13 @@ class CommitBeforeMigrationTask(MigrationTask):
|
|
259
258
|
def __init__(self, migrator) -> None: ...
|
260
259
|
|
261
260
|
@dataclass(frozen=True, kw_only=True)
|
262
|
-
class
|
261
|
+
class DataMigrationStatus:
|
263
262
|
needs_migrate: bool
|
264
263
|
migration_done: bool
|
265
264
|
def __init__(self, *, needs_migrate, migration_done) -> None: ...
|
266
265
|
|
267
266
|
class BaseRunTimeMigration(ABC, metaclass=abc.ABCMeta):
|
267
|
+
index_to_drop: tuple[str, str] | None
|
268
268
|
required_schema_version: int
|
269
269
|
migration_version: int
|
270
270
|
migration_id: str
|
@@ -273,60 +273,63 @@ class BaseRunTimeMigration(ABC, metaclass=abc.ABCMeta):
|
|
273
273
|
migration_changes: Incomplete
|
274
274
|
def __init__(self, schema_version: int, migration_changes: dict[str, int]) -> None: ...
|
275
275
|
def do_migrate(self, instance: Recorder, session: Session) -> None: ...
|
276
|
-
|
276
|
+
def migrate_data(self, instance: Recorder) -> bool: ...
|
277
277
|
@abstractmethod
|
278
|
-
def
|
279
|
-
def migration_done(self, instance: Recorder, session: Session
|
278
|
+
def migrate_data_impl(self, instance: Recorder) -> DataMigrationStatus: ...
|
279
|
+
def migration_done(self, instance: Recorder, session: Session) -> None: ...
|
280
280
|
@abstractmethod
|
281
|
-
def needs_migrate_impl(self, instance: Recorder, session: Session) ->
|
281
|
+
def needs_migrate_impl(self, instance: Recorder, session: Session) -> DataMigrationStatus: ...
|
282
282
|
def needs_migrate(self, instance: Recorder, session: Session) -> bool: ...
|
283
283
|
|
284
284
|
class BaseRunTimeMigrationWithQuery(BaseRunTimeMigration, metaclass=abc.ABCMeta):
|
285
285
|
@abstractmethod
|
286
286
|
def needs_migrate_query(self) -> StatementLambdaElement: ...
|
287
|
-
def needs_migrate_impl(self, instance: Recorder, session: Session) ->
|
287
|
+
def needs_migrate_impl(self, instance: Recorder, session: Session) -> DataMigrationStatus: ...
|
288
288
|
|
289
289
|
class StatesContextIDMigration(BaseRunTimeMigrationWithQuery):
|
290
290
|
required_schema_version = CONTEXT_ID_AS_BINARY_SCHEMA_VERSION
|
291
291
|
migration_id: str
|
292
|
-
|
293
|
-
|
292
|
+
migration_version: int
|
293
|
+
index_to_drop: Incomplete
|
294
|
+
def migrate_data_impl(self, instance: Recorder) -> DataMigrationStatus: ...
|
294
295
|
def needs_migrate_query(self) -> StatementLambdaElement: ...
|
295
296
|
|
296
297
|
class EventsContextIDMigration(BaseRunTimeMigrationWithQuery):
|
297
298
|
required_schema_version = CONTEXT_ID_AS_BINARY_SCHEMA_VERSION
|
298
299
|
migration_id: str
|
299
|
-
|
300
|
-
|
300
|
+
migration_version: int
|
301
|
+
index_to_drop: Incomplete
|
302
|
+
def migrate_data_impl(self, instance: Recorder) -> DataMigrationStatus: ...
|
301
303
|
def needs_migrate_query(self) -> StatementLambdaElement: ...
|
302
304
|
|
303
305
|
class EventTypeIDMigration(BaseRunTimeMigrationWithQuery):
|
304
306
|
required_schema_version = EVENT_TYPE_IDS_SCHEMA_VERSION
|
305
307
|
migration_id: str
|
306
308
|
task = CommitBeforeMigrationTask
|
307
|
-
|
308
|
-
def
|
309
|
-
def migration_done(self, instance: Recorder, session: Session | None) -> None: ...
|
309
|
+
def migrate_data_impl(self, instance: Recorder) -> DataMigrationStatus: ...
|
310
|
+
def migration_done(self, instance: Recorder, session: Session) -> None: ...
|
310
311
|
def needs_migrate_query(self) -> StatementLambdaElement: ...
|
311
312
|
|
312
313
|
class EntityIDMigration(BaseRunTimeMigrationWithQuery):
|
313
314
|
required_schema_version = STATES_META_SCHEMA_VERSION
|
314
315
|
migration_id: str
|
315
316
|
task = CommitBeforeMigrationTask
|
316
|
-
|
317
|
-
def
|
318
|
-
def migration_done(self, instance: Recorder, _session: Session | None) -> None: ...
|
317
|
+
def migrate_data_impl(self, instance: Recorder) -> DataMigrationStatus: ...
|
318
|
+
def migration_done(self, instance: Recorder, session: Session) -> None: ...
|
319
319
|
def needs_migrate_query(self) -> StatementLambdaElement: ...
|
320
320
|
|
321
321
|
class EventIDPostMigration(BaseRunTimeMigration):
|
322
322
|
migration_id: str
|
323
323
|
task = MigrationTask
|
324
324
|
migration_version: int
|
325
|
-
|
326
|
-
def migrate_data(instance: Recorder) -> bool: ...
|
325
|
+
def migrate_data_impl(self, instance: Recorder) -> DataMigrationStatus: ...
|
327
326
|
@staticmethod
|
328
327
|
def _legacy_event_id_foreign_key_exists(instance: Recorder) -> bool: ...
|
329
|
-
def needs_migrate_impl(self, instance: Recorder, session: Session) ->
|
328
|
+
def needs_migrate_impl(self, instance: Recorder, session: Session) -> DataMigrationStatus: ...
|
329
|
+
|
330
|
+
@dataclass(slots=True)
|
331
|
+
class EntityIDPostMigrationTask(RecorderTask):
|
332
|
+
def run(self, instance: Recorder) -> None: ...
|
330
333
|
|
331
334
|
def _mark_migration_done(session: Session, migration: type[BaseRunTimeMigration]) -> None: ...
|
332
335
|
def rebuild_sqlite_table(session_maker: Callable[[], Session], engine: Engine, table: type[Base]) -> bool: ...
|
@@ -3,6 +3,6 @@ from .database import DatabaseEngine as DatabaseEngine, DatabaseOptimizer as Dat
|
|
3
3
|
from .event import extract_event_type_ids as extract_event_type_ids
|
4
4
|
from .state import LazyState as LazyState, extract_metadata_ids as extract_metadata_ids, row_to_compressed_state as row_to_compressed_state
|
5
5
|
from .statistics import CalendarStatisticPeriod as CalendarStatisticPeriod, FixedStatisticPeriod as FixedStatisticPeriod, RollingWindowStatisticPeriod as RollingWindowStatisticPeriod, StatisticData as StatisticData, StatisticDataTimestamp as StatisticDataTimestamp, StatisticMetaData as StatisticMetaData, StatisticPeriod as StatisticPeriod, StatisticResult as StatisticResult
|
6
|
-
from .time import datetime_to_timestamp_or_none as datetime_to_timestamp_or_none,
|
6
|
+
from .time import datetime_to_timestamp_or_none as datetime_to_timestamp_or_none, process_timestamp as process_timestamp, process_timestamp_to_utc_isoformat as process_timestamp_to_utc_isoformat, timestamp_to_datetime_or_none as timestamp_to_datetime_or_none
|
7
7
|
|
8
|
-
__all__ = ['CalendarStatisticPeriod', 'DatabaseEngine', 'DatabaseOptimizer', 'FixedStatisticPeriod', 'LazyState', 'RollingWindowStatisticPeriod', 'StatisticData', 'StatisticDataTimestamp', 'StatisticMetaData', 'StatisticPeriod', 'StatisticResult', 'UnsupportedDialect', 'bytes_to_ulid_or_none', 'bytes_to_uuid_hex_or_none', 'datetime_to_timestamp_or_none', 'extract_event_type_ids', 'extract_metadata_ids', '
|
8
|
+
__all__ = ['CalendarStatisticPeriod', 'DatabaseEngine', 'DatabaseOptimizer', 'FixedStatisticPeriod', 'LazyState', 'RollingWindowStatisticPeriod', 'StatisticData', 'StatisticDataTimestamp', 'StatisticMetaData', 'StatisticPeriod', 'StatisticResult', 'UnsupportedDialect', 'bytes_to_ulid_or_none', 'bytes_to_uuid_hex_or_none', 'datetime_to_timestamp_or_none', 'extract_event_type_ids', 'extract_metadata_ids', 'process_timestamp', 'process_timestamp_to_utc_isoformat', 'row_to_compressed_state', 'timestamp_to_datetime_or_none', 'ulid_to_bytes_or_none', 'uuid_hex_to_bytes_or_none']
|
@@ -1,5 +1,5 @@
|
|
1
1
|
from .state_attributes import decode_attributes_from_source as decode_attributes_from_source
|
2
|
-
from .time import
|
2
|
+
from .time import process_timestamp as process_timestamp
|
3
3
|
from _typeshed import Incomplete
|
4
4
|
from datetime import datetime
|
5
5
|
from homeassistant.const import COMPRESSED_STATE_ATTRIBUTES as COMPRESSED_STATE_ATTRIBUTES, COMPRESSED_STATE_LAST_CHANGED as COMPRESSED_STATE_LAST_CHANGED, COMPRESSED_STATE_LAST_UPDATED as COMPRESSED_STATE_LAST_UPDATED, COMPRESSED_STATE_STATE as COMPRESSED_STATE_STATE
|
@@ -7,42 +7,6 @@ from homeassistant.core import Context as Context, State as State
|
|
7
7
|
from sqlalchemy.engine.row import Row as Row
|
8
8
|
from typing import Any
|
9
9
|
|
10
|
-
class LegacyLazyStatePreSchema31(State):
|
11
|
-
__slots__: Incomplete
|
12
|
-
_row: Incomplete
|
13
|
-
entity_id: Incomplete
|
14
|
-
state: Incomplete
|
15
|
-
_attributes: Incomplete
|
16
|
-
_last_changed: Incomplete
|
17
|
-
_last_reported: Incomplete
|
18
|
-
_last_updated: Incomplete
|
19
|
-
_context: Incomplete
|
20
|
-
attr_cache: Incomplete
|
21
|
-
def __init__(self, row: Row, attr_cache: dict[str, dict[str, Any]], start_time: datetime | None) -> None: ...
|
22
|
-
@property
|
23
|
-
def attributes(self) -> dict[str, Any]: ...
|
24
|
-
@attributes.setter
|
25
|
-
def attributes(self, value: dict[str, Any]) -> None: ...
|
26
|
-
@property
|
27
|
-
def context(self) -> Context: ...
|
28
|
-
@context.setter
|
29
|
-
def context(self, value: Context) -> None: ...
|
30
|
-
@property
|
31
|
-
def last_changed(self) -> datetime: ...
|
32
|
-
@last_changed.setter
|
33
|
-
def last_changed(self, value: datetime) -> None: ...
|
34
|
-
@property
|
35
|
-
def last_reported(self) -> datetime: ...
|
36
|
-
@last_reported.setter
|
37
|
-
def last_reported(self, value: datetime) -> None: ...
|
38
|
-
@property
|
39
|
-
def last_updated(self) -> datetime: ...
|
40
|
-
@last_updated.setter
|
41
|
-
def last_updated(self, value: datetime) -> None: ...
|
42
|
-
def as_dict(self) -> dict[str, Any]: ...
|
43
|
-
|
44
|
-
def legacy_row_to_compressed_state_pre_schema_31(row: Row, attr_cache: dict[str, dict[str, Any]], start_time: datetime | None) -> dict[str, Any]: ...
|
45
|
-
|
46
10
|
class LegacyLazyState(State):
|
47
11
|
__slots__: Incomplete
|
48
12
|
_row: Incomplete
|
@@ -14,6 +14,5 @@ def process_timestamp(ts: datetime) -> datetime: ...
|
|
14
14
|
def process_timestamp_to_utc_isoformat(ts: None) -> None: ...
|
15
15
|
@overload
|
16
16
|
def process_timestamp_to_utc_isoformat(ts: datetime) -> str: ...
|
17
|
-
def process_datetime_to_timestamp(ts: datetime) -> float: ...
|
18
17
|
def datetime_to_timestamp_or_none(dt: datetime | None) -> float | None: ...
|
19
18
|
def timestamp_to_datetime_or_none(ts: float | None) -> datetime | None: ...
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import dataclasses
|
2
2
|
from . import Recorder as Recorder
|
3
|
-
from .const import DOMAIN as DOMAIN, EVENT_RECORDER_5MIN_STATISTICS_GENERATED as EVENT_RECORDER_5MIN_STATISTICS_GENERATED, EVENT_RECORDER_HOURLY_STATISTICS_GENERATED as EVENT_RECORDER_HOURLY_STATISTICS_GENERATED, INTEGRATION_PLATFORM_COMPILE_STATISTICS as INTEGRATION_PLATFORM_COMPILE_STATISTICS, INTEGRATION_PLATFORM_LIST_STATISTIC_IDS as INTEGRATION_PLATFORM_LIST_STATISTIC_IDS, INTEGRATION_PLATFORM_VALIDATE_STATISTICS as INTEGRATION_PLATFORM_VALIDATE_STATISTICS, SupportedDialect as SupportedDialect
|
3
|
+
from .const import DOMAIN as DOMAIN, EVENT_RECORDER_5MIN_STATISTICS_GENERATED as EVENT_RECORDER_5MIN_STATISTICS_GENERATED, EVENT_RECORDER_HOURLY_STATISTICS_GENERATED as EVENT_RECORDER_HOURLY_STATISTICS_GENERATED, INTEGRATION_PLATFORM_COMPILE_STATISTICS as INTEGRATION_PLATFORM_COMPILE_STATISTICS, INTEGRATION_PLATFORM_LIST_STATISTIC_IDS as INTEGRATION_PLATFORM_LIST_STATISTIC_IDS, INTEGRATION_PLATFORM_UPDATE_STATISTICS_ISSUES as INTEGRATION_PLATFORM_UPDATE_STATISTICS_ISSUES, INTEGRATION_PLATFORM_VALIDATE_STATISTICS as INTEGRATION_PLATFORM_VALIDATE_STATISTICS, SupportedDialect as SupportedDialect
|
4
4
|
from .db_schema import STATISTICS_TABLES as STATISTICS_TABLES, Statistics as Statistics, StatisticsBase as StatisticsBase, StatisticsRuns as StatisticsRuns, StatisticsShortTerm as StatisticsShortTerm
|
5
5
|
from .models import StatisticData as StatisticData, StatisticDataTimestamp as StatisticDataTimestamp, StatisticMetaData as StatisticMetaData, StatisticResult as StatisticResult, datetime_to_timestamp_or_none as datetime_to_timestamp_or_none, process_timestamp as process_timestamp
|
6
6
|
from .util import execute as execute, execute_stmt_lambda_element as execute_stmt_lambda_element, filter_unique_constraint_integrity_error as filter_unique_constraint_integrity_error, get_instance as get_instance, retryable_database_job as retryable_database_job, session_scope as session_scope
|
@@ -138,6 +138,7 @@ def _build_stats(db_rows: list[Row], table_duration_seconds: float, start_ts_idx
|
|
138
138
|
def _build_converted_stats(db_rows: list[Row], table_duration_seconds: float, start_ts_idx: int, row_mapping: tuple[tuple[str, int], ...], convert: Callable[[float | None], float | None] | Callable[[float], float]) -> list[StatisticsRow]: ...
|
139
139
|
def _sorted_statistics_to_dict(hass: HomeAssistant, stats: Sequence[Row[Any]], statistic_ids: set[str] | None, _metadata: dict[str, tuple[int, StatisticMetaData]], convert_units: bool, table: type[StatisticsBase], units: dict[str, str] | None, types: set[Literal['last_reset', 'max', 'mean', 'min', 'state', 'sum']]) -> dict[str, list[StatisticsRow]]: ...
|
140
140
|
def validate_statistics(hass: HomeAssistant) -> dict[str, list[ValidationIssue]]: ...
|
141
|
+
def update_statistics_issues(hass: HomeAssistant) -> None: ...
|
141
142
|
def _statistics_exists(session: Session, table: type[StatisticsBase], metadata_id: int, start: datetime) -> int | None: ...
|
142
143
|
def _async_import_statistics(hass: HomeAssistant, metadata: StatisticMetaData, statistics: Iterable[StatisticData]) -> None: ...
|
143
144
|
def async_import_statistics(hass: HomeAssistant, metadata: StatisticMetaData, statistics: Iterable[StatisticData]) -> None: ...
|
@@ -33,17 +33,19 @@ class ChangeStatisticsUnitTask(RecorderTask):
|
|
33
33
|
|
34
34
|
@dataclass(slots=True)
|
35
35
|
class ClearStatisticsTask(RecorderTask):
|
36
|
+
on_done: Callable[[], None] | None
|
36
37
|
statistic_ids: list[str]
|
37
38
|
def run(self, instance: Recorder) -> None: ...
|
38
|
-
def __init__(self, statistic_ids) -> None: ...
|
39
|
+
def __init__(self, on_done, statistic_ids) -> None: ...
|
39
40
|
|
40
41
|
@dataclass(slots=True)
|
41
42
|
class UpdateStatisticsMetadataTask(RecorderTask):
|
43
|
+
on_done: Callable[[], None] | None
|
42
44
|
statistic_id: str
|
43
45
|
new_statistic_id: str | None | UndefinedType
|
44
46
|
new_unit_of_measurement: str | None | UndefinedType
|
45
47
|
def run(self, instance: Recorder) -> None: ...
|
46
|
-
def __init__(self, statistic_id, new_statistic_id, new_unit_of_measurement) -> None: ...
|
48
|
+
def __init__(self, on_done, statistic_id, new_statistic_id, new_unit_of_measurement) -> None: ...
|
47
49
|
|
48
50
|
@dataclass(slots=True)
|
49
51
|
class UpdateStatesMetadataTask(RecorderTask):
|
@@ -141,26 +143,11 @@ class SynchronizeTask(RecorderTask):
|
|
141
143
|
def run(self, instance: Recorder) -> None: ...
|
142
144
|
def __init__(self, event) -> None: ...
|
143
145
|
|
144
|
-
@dataclass(slots=True)
|
145
|
-
class PostSchemaMigrationTask(RecorderTask):
|
146
|
-
old_version: int
|
147
|
-
new_version: int
|
148
|
-
def run(self, instance: Recorder) -> None: ...
|
149
|
-
def __init__(self, old_version, new_version) -> None: ...
|
150
|
-
|
151
|
-
@dataclass(slots=True)
|
152
|
-
class StatisticsTimestampMigrationCleanupTask(RecorderTask):
|
153
|
-
def run(self, instance: Recorder) -> None: ...
|
154
|
-
|
155
146
|
@dataclass(slots=True)
|
156
147
|
class AdjustLRUSizeTask(RecorderTask):
|
157
148
|
commit_before = ...
|
158
149
|
def run(self, instance: Recorder) -> None: ...
|
159
150
|
|
160
|
-
@dataclass(slots=True)
|
161
|
-
class EntityIDPostMigrationTask(RecorderTask):
|
162
|
-
def run(self, instance: Recorder) -> None: ...
|
163
|
-
|
164
151
|
@dataclass(slots=True)
|
165
152
|
class RefreshEventTypesTask(RecorderTask):
|
166
153
|
event_types: list[EventType[Any] | str]
|
@@ -74,9 +74,13 @@ def end_incomplete_runs(session: Session, start_time: datetime) -> None: ...
|
|
74
74
|
def _is_retryable_error(instance: Recorder, err: OperationalError) -> bool: ...
|
75
75
|
|
76
76
|
_FuncType: Incomplete
|
77
|
+
_MethType: Incomplete
|
78
|
+
_FuncOrMethType: Incomplete
|
77
79
|
|
78
|
-
def retryable_database_job(description: str) -> Callable[[_FuncType[
|
79
|
-
def
|
80
|
+
def retryable_database_job(description: str) -> Callable[[_FuncType[_P, bool]], _FuncType[_P, bool]]: ...
|
81
|
+
def retryable_database_job_method(description: str) -> Callable[[_MethType[_Self, _P, bool]], _MethType[_Self, _P, bool]]: ...
|
82
|
+
def _wrap_func_or_meth(job: _FuncOrMethType[_P, bool], description: str, method: bool) -> _FuncOrMethType[_P, bool]: ...
|
83
|
+
def database_job_retry_wrapper(description: str, attempts: int = 5) -> Callable[[_FuncType[_P, None]], _FuncType[_P, None]]: ...
|
80
84
|
def periodic_db_cleanups(instance: Recorder) -> None: ...
|
81
85
|
def write_lock_db_sqlite(instance: Recorder) -> Generator[None]: ...
|
82
86
|
def async_migration_in_progress(hass: HomeAssistant) -> bool: ...
|
@@ -1,5 +1,5 @@
|
|
1
1
|
from .models import StatisticPeriod as StatisticPeriod
|
2
|
-
from .statistics import STATISTIC_UNIT_TO_UNIT_CONVERTER as STATISTIC_UNIT_TO_UNIT_CONVERTER, async_add_external_statistics as async_add_external_statistics, async_change_statistics_unit as async_change_statistics_unit, async_import_statistics as async_import_statistics, async_list_statistic_ids as async_list_statistic_ids, list_statistic_ids as list_statistic_ids, statistic_during_period as statistic_during_period, statistics_during_period as statistics_during_period, validate_statistics as validate_statistics
|
2
|
+
from .statistics import STATISTIC_UNIT_TO_UNIT_CONVERTER as STATISTIC_UNIT_TO_UNIT_CONVERTER, async_add_external_statistics as async_add_external_statistics, async_change_statistics_unit as async_change_statistics_unit, async_import_statistics as async_import_statistics, async_list_statistic_ids as async_list_statistic_ids, list_statistic_ids as list_statistic_ids, statistic_during_period as statistic_during_period, statistics_during_period as statistics_during_period, update_statistics_issues as update_statistics_issues, validate_statistics as validate_statistics
|
3
3
|
from .util import PERIOD_SCHEMA as PERIOD_SCHEMA, get_instance as get_instance, resolve_period as resolve_period
|
4
4
|
from _typeshed import Incomplete
|
5
5
|
from datetime import datetime as dt
|
@@ -11,6 +11,8 @@ from homeassistant.helpers.json import json_bytes as json_bytes
|
|
11
11
|
from homeassistant.util.unit_conversion import ConductivityConverter as ConductivityConverter, DataRateConverter as DataRateConverter, DistanceConverter as DistanceConverter, DurationConverter as DurationConverter, ElectricCurrentConverter as ElectricCurrentConverter, ElectricPotentialConverter as ElectricPotentialConverter, EnergyConverter as EnergyConverter, InformationConverter as InformationConverter, MassConverter as MassConverter, PowerConverter as PowerConverter, PressureConverter as PressureConverter, SpeedConverter as SpeedConverter, TemperatureConverter as TemperatureConverter, UnitlessRatioConverter as UnitlessRatioConverter, VolumeConverter as VolumeConverter, VolumeFlowRateConverter as VolumeFlowRateConverter
|
12
12
|
from typing import Any, Literal
|
13
13
|
|
14
|
+
CLEAR_STATISTICS_TIME_OUT: int
|
15
|
+
UPDATE_STATISTICS_METADATA_TIME_OUT: int
|
14
16
|
UNIT_SCHEMA: Incomplete
|
15
17
|
|
16
18
|
def async_setup(hass: HomeAssistant) -> None: ...
|
@@ -23,9 +25,10 @@ def _ws_get_list_statistic_ids(hass: HomeAssistant, msg_id: int, statistic_type:
|
|
23
25
|
async def ws_handle_list_statistic_ids(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict) -> None: ...
|
24
26
|
async def ws_list_statistic_ids(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
|
25
27
|
async def ws_validate_statistics(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
|
26
|
-
def
|
28
|
+
async def ws_update_statistics_issues(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
|
29
|
+
async def ws_clear_statistics(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
|
27
30
|
async def ws_get_statistics_metadata(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
|
28
|
-
def ws_update_statistics_metadata(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
|
31
|
+
async def ws_update_statistics_metadata(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
|
29
32
|
def ws_change_statistics_unit(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
|
30
33
|
async def ws_adjust_sum_statistics(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
|
31
34
|
def ws_import_statistics(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
|
@@ -10,10 +10,12 @@ from homeassistant.helpers.entity import ToggleEntity as ToggleEntity, ToggleEnt
|
|
10
10
|
from homeassistant.helpers.entity_component import EntityComponent as EntityComponent
|
11
11
|
from homeassistant.helpers.typing import ConfigType as ConfigType
|
12
12
|
from homeassistant.loader import bind_hass as bind_hass
|
13
|
+
from homeassistant.util.hass_dict import HassKey as HassKey
|
13
14
|
from typing import Any
|
14
15
|
|
15
16
|
_LOGGER: Incomplete
|
16
17
|
DOMAIN: str
|
18
|
+
DATA_COMPONENT: HassKey[EntityComponent[RemoteEntity]]
|
17
19
|
ENTITY_ID_FORMAT: Incomplete
|
18
20
|
PLATFORM_SCHEMA: Incomplete
|
19
21
|
PLATFORM_SCHEMA_BASE: Incomplete
|