homeassistant-stubs 2024.12.5__py3-none-any.whl → 2025.1.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/auth/__init__.pyi +1 -1
- homeassistant-stubs/auth/mfa_modules/__init__.pyi +6 -4
- homeassistant-stubs/auth/mfa_modules/notify.pyi +2 -3
- homeassistant-stubs/auth/mfa_modules/totp.pyi +2 -3
- homeassistant-stubs/auth/providers/__init__.pyi +6 -4
- homeassistant-stubs/auth/providers/command_line.pyi +2 -2
- homeassistant-stubs/auth/providers/homeassistant.pyi +2 -2
- homeassistant-stubs/auth/providers/insecure_example.pyi +2 -2
- homeassistant-stubs/auth/providers/trusted_networks.pyi +2 -2
- homeassistant-stubs/backup_restore.pyi +11 -4
- homeassistant-stubs/bootstrap.pyi +2 -1
- homeassistant-stubs/components/abode/light.pyi +4 -3
- homeassistant-stubs/components/acaia/__init__.pyi +9 -0
- homeassistant-stubs/components/acaia/binary_sensor.pyi +24 -0
- homeassistant-stubs/components/acaia/button.pyi +24 -0
- homeassistant-stubs/components/acaia/config_flow.pyi +18 -0
- homeassistant-stubs/components/acaia/const.pyi +2 -0
- homeassistant-stubs/components/acaia/coordinator.pyi +19 -0
- homeassistant-stubs/components/{stookalert → acaia}/diagnostics.pyi +2 -3
- homeassistant-stubs/components/acaia/entity.pyi +17 -0
- homeassistant-stubs/components/acaia/sensor.pyi +44 -0
- homeassistant-stubs/components/adax/climate.pyi +0 -1
- homeassistant-stubs/components/airtouch5/climate.pyi +0 -1
- homeassistant-stubs/components/airzone/climate.pyi +0 -1
- homeassistant-stubs/components/airzone_cloud/climate.pyi +3 -2
- homeassistant-stubs/components/alarm_control_panel/__init__.pyi +1 -6
- homeassistant-stubs/components/alarm_control_panel/const.pyi +0 -14
- homeassistant-stubs/components/analytics_insights/config_flow.pyi +3 -2
- homeassistant-stubs/components/apple_tv/config_flow.pyi +1 -1
- homeassistant-stubs/components/apsystems/number.pyi +1 -0
- homeassistant-stubs/components/autarco/__init__.pyi +1 -0
- homeassistant-stubs/components/autarco/config_flow.pyi +4 -0
- homeassistant-stubs/components/autarco/coordinator.pyi +1 -0
- homeassistant-stubs/components/automation/__init__.pyi +1 -10
- homeassistant-stubs/components/backup/__init__.pyi +4 -11
- homeassistant-stubs/components/backup/agent.pyi +35 -0
- homeassistant-stubs/components/backup/backup.pyi +29 -0
- homeassistant-stubs/components/backup/config.pyi +117 -0
- homeassistant-stubs/components/backup/const.pyi +2 -0
- homeassistant-stubs/components/backup/http.pyi +3 -2
- homeassistant-stubs/components/backup/manager.pyi +192 -51
- homeassistant-stubs/components/backup/models.pyi +38 -0
- homeassistant-stubs/components/backup/store.pyi +24 -0
- homeassistant-stubs/components/backup/util.pyi +12 -0
- homeassistant-stubs/components/backup/websocket.pyi +9 -1
- homeassistant-stubs/components/baf/climate.pyi +0 -1
- homeassistant-stubs/components/baf/fan.pyi +0 -1
- homeassistant-stubs/components/baf/light.pyi +4 -5
- homeassistant-stubs/components/bang_olufsen/const.pyi +3 -0
- homeassistant-stubs/components/bang_olufsen/media_player.pyi +2 -2
- homeassistant-stubs/components/binary_sensor/__init__.pyi +0 -33
- homeassistant-stubs/components/bluesound/__init__.pyi +0 -1
- homeassistant-stubs/components/bluesound/media_player.pyi +13 -8
- homeassistant-stubs/components/bluesound/utils.pyi +2 -0
- homeassistant-stubs/components/bmw_connected_drive/__init__.pyi +4 -12
- homeassistant-stubs/components/bmw_connected_drive/binary_sensor.pyi +1 -0
- homeassistant-stubs/components/bmw_connected_drive/button.pyi +1 -0
- homeassistant-stubs/components/bmw_connected_drive/config_flow.pyi +8 -4
- homeassistant-stubs/components/bmw_connected_drive/coordinator.pyi +4 -3
- homeassistant-stubs/components/bmw_connected_drive/device_tracker.pyi +2 -2
- homeassistant-stubs/components/bmw_connected_drive/diagnostics.pyi +1 -0
- homeassistant-stubs/components/bmw_connected_drive/lock.pyi +1 -0
- homeassistant-stubs/components/bmw_connected_drive/notify.pyi +2 -1
- homeassistant-stubs/components/bmw_connected_drive/number.pyi +1 -0
- homeassistant-stubs/components/bmw_connected_drive/select.pyi +1 -0
- homeassistant-stubs/components/bmw_connected_drive/sensor.pyi +1 -0
- homeassistant-stubs/components/bmw_connected_drive/switch.pyi +1 -0
- homeassistant-stubs/components/bryant_evolution/climate.pyi +0 -1
- homeassistant-stubs/components/cambridge_audio/config_flow.pyi +4 -1
- homeassistant-stubs/components/cambridge_audio/media_browser.pyi +8 -0
- homeassistant-stubs/components/cambridge_audio/media_player.pyi +4 -3
- homeassistant-stubs/components/cambridge_audio/select.pyi +2 -2
- homeassistant-stubs/components/cambridge_audio/switch.pyi +2 -2
- homeassistant-stubs/components/camera/__init__.pyi +1 -5
- homeassistant-stubs/components/camera/const.pyi +0 -8
- homeassistant-stubs/components/cert_expiry/config_flow.pyi +0 -1
- homeassistant-stubs/components/cert_expiry/sensor.pyi +2 -10
- homeassistant-stubs/components/climate/__init__.pyi +1 -12
- homeassistant-stubs/components/climate/const.pyi +0 -25
- homeassistant-stubs/components/cloud/__init__.pyi +1 -1
- homeassistant-stubs/components/cloud/backup.pyi +37 -0
- homeassistant-stubs/components/cloud/const.pyi +2 -0
- homeassistant-stubs/components/cloud/http_api.pyi +7 -2
- homeassistant-stubs/components/cookidoo/__init__.pyi +9 -0
- homeassistant-stubs/components/cookidoo/config_flow.pyi +24 -0
- homeassistant-stubs/components/cookidoo/const.pyi +1 -0
- homeassistant-stubs/components/cookidoo/coordinator.pyi +25 -0
- homeassistant-stubs/components/cookidoo/entity.pyi +10 -0
- homeassistant-stubs/components/cookidoo/todo.pyi +32 -0
- homeassistant-stubs/components/cover/__init__.pyi +0 -18
- homeassistant-stubs/components/crownstone/config_flow.pyi +1 -1
- homeassistant-stubs/components/deconz/climate.pyi +0 -1
- homeassistant-stubs/components/deconz/fan.pyi +0 -1
- homeassistant-stubs/components/deconz/light.pyi +7 -5
- homeassistant-stubs/components/demo/climate.pyi +0 -1
- homeassistant-stubs/components/demo/fan.pyi +0 -1
- homeassistant-stubs/components/demo/light.pyi +4 -2
- homeassistant-stubs/components/demo/vacuum.pyi +2 -4
- homeassistant-stubs/components/device_tracker/__init__.pyi +1 -7
- homeassistant-stubs/components/device_tracker/const.pyi +0 -8
- homeassistant-stubs/components/devolo_home_control/__init__.pyi +1 -1
- homeassistant-stubs/components/devolo_home_control/binary_sensor.pyi +3 -2
- homeassistant-stubs/components/devolo_home_control/climate.pyi +0 -1
- homeassistant-stubs/components/devolo_home_control/config_flow.pyi +1 -2
- homeassistant-stubs/components/devolo_home_control/const.pyi +0 -2
- homeassistant-stubs/components/devolo_home_control/sensor.pyi +1 -3
- homeassistant-stubs/components/discovergy/__init__.pyi +2 -2
- homeassistant-stubs/components/duotecno/climate.pyi +0 -1
- homeassistant-stubs/components/easyenergy/__init__.pyi +4 -5
- homeassistant-stubs/components/easyenergy/coordinator.pyi +3 -2
- homeassistant-stubs/components/easyenergy/diagnostics.pyi +2 -5
- homeassistant-stubs/components/easyenergy/sensor.pyi +2 -3
- homeassistant-stubs/components/easyenergy/services.pyi +4 -4
- homeassistant-stubs/components/ecovacs/button.pyi +13 -2
- homeassistant-stubs/components/ecovacs/const.pyi +1 -0
- homeassistant-stubs/components/ecovacs/number.pyi +1 -1
- homeassistant-stubs/components/ecovacs/select.pyi +2 -2
- homeassistant-stubs/components/ecovacs/sensor.pyi +1 -1
- homeassistant-stubs/components/ecovacs/util.pyi +1 -0
- homeassistant-stubs/components/ecovacs/vacuum.pyi +3 -3
- homeassistant-stubs/components/eheimdigital/__init__.pyi +14 -0
- homeassistant-stubs/components/eheimdigital/config_flow.pyi +18 -0
- homeassistant-stubs/components/eheimdigital/const.pyi +8 -0
- homeassistant-stubs/components/eheimdigital/coordinator.pyi +25 -0
- homeassistant-stubs/components/eheimdigital/entity.pyi +20 -0
- homeassistant-stubs/components/eheimdigital/light.pyi +36 -0
- homeassistant-stubs/components/electrasmart/climate.pyi +0 -1
- homeassistant-stubs/components/elevenlabs/__init__.pyi +6 -7
- homeassistant-stubs/components/elevenlabs/config_flow.pyi +4 -3
- homeassistant-stubs/components/elevenlabs/tts.pyi +6 -3
- homeassistant-stubs/components/elgato/__init__.pyi +3 -5
- homeassistant-stubs/components/elgato/button.pyi +4 -3
- homeassistant-stubs/components/elgato/config_flow.pyi +1 -1
- homeassistant-stubs/components/elgato/coordinator.pyi +4 -3
- homeassistant-stubs/components/elgato/diagnostics.pyi +2 -2
- homeassistant-stubs/components/elgato/light.pyi +6 -7
- homeassistant-stubs/components/elgato/sensor.pyi +4 -3
- homeassistant-stubs/components/elgato/switch.pyi +4 -3
- homeassistant-stubs/components/elkm1/climate.pyi +0 -1
- homeassistant-stubs/components/emulated_hue/hue_api.pyi +1 -1
- homeassistant-stubs/components/energyzero/__init__.pyi +4 -5
- homeassistant-stubs/components/energyzero/coordinator.pyi +2 -1
- homeassistant-stubs/components/energyzero/diagnostics.pyi +2 -5
- homeassistant-stubs/components/energyzero/sensor.pyi +2 -3
- homeassistant-stubs/components/energyzero/services.pyi +4 -4
- homeassistant-stubs/components/enigma2/coordinator.pyi +1 -0
- homeassistant-stubs/components/enigma2/media_player.pyi +0 -1
- homeassistant-stubs/components/enphase_envoy/binary_sensor.pyi +2 -0
- homeassistant-stubs/components/enphase_envoy/config_flow.pyi +2 -1
- homeassistant-stubs/components/enphase_envoy/coordinator.pyi +2 -2
- homeassistant-stubs/components/enphase_envoy/number.pyi +2 -0
- homeassistant-stubs/components/enphase_envoy/select.pyi +2 -0
- homeassistant-stubs/components/enphase_envoy/sensor.pyi +35 -1
- homeassistant-stubs/components/enphase_envoy/switch.pyi +2 -0
- homeassistant-stubs/components/esphome/climate.pyi +0 -1
- homeassistant-stubs/components/esphome/fan.pyi +0 -1
- homeassistant-stubs/components/esphome/light.pyi +0 -2
- homeassistant-stubs/components/evohome/climate.pyi +0 -1
- homeassistant-stubs/components/fan/__init__.pyi +0 -15
- homeassistant-stubs/components/feedreader/__init__.pyi +3 -8
- homeassistant-stubs/components/feedreader/config_flow.pyi +1 -6
- homeassistant-stubs/components/feedreader/coordinator.pyi +1 -0
- homeassistant-stubs/components/flexit_bacnet/climate.pyi +0 -1
- homeassistant-stubs/components/flexit_bacnet/number.pyi +3 -0
- homeassistant-stubs/components/flux_led/light.pyi +4 -5
- homeassistant-stubs/components/fritzbox/climate.pyi +0 -1
- homeassistant-stubs/components/fritzbox/coordinator.pyi +2 -1
- homeassistant-stubs/components/fritzbox/light.pyi +3 -4
- homeassistant-stubs/components/fritzbox_callmonitor/base.pyi +13 -2
- homeassistant-stubs/components/fritzbox_callmonitor/config_flow.pyi +2 -2
- homeassistant-stubs/components/fritzbox_callmonitor/sensor.pyi +4 -4
- homeassistant-stubs/components/fronius/__init__.pyi +1 -1
- homeassistant-stubs/components/fronius/const.pyi +3 -3
- homeassistant-stubs/components/fronius/coordinator.pyi +1 -1
- homeassistant-stubs/components/fronius/sensor.pyi +2 -1
- homeassistant-stubs/components/fujitsu_fglair/climate.pyi +0 -1
- homeassistant-stubs/components/fyta/__init__.pyi +2 -2
- homeassistant-stubs/components/fyta/entity.pyi +2 -2
- homeassistant-stubs/components/generic_thermostat/climate.pyi +1 -4
- homeassistant-stubs/components/generic_thermostat/config_flow.pyi +1 -1
- homeassistant-stubs/components/generic_thermostat/const.pyi +2 -0
- homeassistant-stubs/components/google_cloud/const.pyi +3 -0
- homeassistant-stubs/components/google_cloud/helpers.pyi +1 -1
- homeassistant-stubs/components/google_cloud/tts.pyi +1 -1
- homeassistant-stubs/components/group/fan.pyi +0 -1
- homeassistant-stubs/components/group/registry.pyi +1 -1
- homeassistant-stubs/components/history/__init__.pyi +1 -1
- homeassistant-stubs/components/history/helpers.pyi +1 -2
- homeassistant-stubs/components/history/websocket_api.pyi +1 -1
- homeassistant-stubs/components/holiday/__init__.pyi +2 -1
- homeassistant-stubs/components/holiday/calendar.pyi +4 -3
- homeassistant-stubs/components/holiday/config_flow.pyi +13 -3
- homeassistant-stubs/components/holiday/const.pyi +1 -0
- homeassistant-stubs/components/homeassistant_yellow/config_flow.pyi +5 -3
- homeassistant-stubs/components/homekit/doorbell.pyi +23 -0
- homeassistant-stubs/components/homekit/type_cameras.pyi +4 -12
- homeassistant-stubs/components/homekit/type_locks.pyi +3 -2
- homeassistant-stubs/components/homekit/type_switches.pyi +1 -1
- homeassistant-stubs/components/homekit/util.pyi +1 -0
- homeassistant-stubs/components/homewizard/sensor.pyi +1 -1
- homeassistant-stubs/components/humidifier/__init__.pyi +1 -8
- homeassistant-stubs/components/humidifier/const.pyi +0 -9
- homeassistant-stubs/components/husqvarna_automower/__init__.pyi +2 -2
- homeassistant-stubs/components/husqvarna_automower/binary_sensor.pyi +1 -0
- homeassistant-stubs/components/husqvarna_automower/calendar.pyi +1 -0
- homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +4 -4
- homeassistant-stubs/components/husqvarna_automower/device_tracker.pyi +2 -0
- homeassistant-stubs/components/husqvarna_automower/diagnostics.pyi +1 -2
- homeassistant-stubs/components/husqvarna_automower/entity.pyi +4 -3
- homeassistant-stubs/components/husqvarna_automower/sensor.pyi +1 -0
- homeassistant-stubs/components/idasen_desk/__init__.pyi +5 -16
- homeassistant-stubs/components/idasen_desk/button.pyi +7 -12
- homeassistant-stubs/components/idasen_desk/coordinator.pyi +2 -3
- homeassistant-stubs/components/idasen_desk/cover.pyi +8 -17
- homeassistant-stubs/components/idasen_desk/entity.pyi +12 -0
- homeassistant-stubs/components/idasen_desk/sensor.pyi +7 -20
- homeassistant-stubs/components/image_upload/media_source.pyi +14 -0
- homeassistant-stubs/components/imap/config_flow.pyi +3 -2
- homeassistant-stubs/components/imap/coordinator.pyi +5 -5
- homeassistant-stubs/components/imap/sensor.pyi +1 -0
- homeassistant-stubs/components/intent/__init__.pyi +2 -1
- homeassistant-stubs/components/iotty/switch.pyi +8 -6
- homeassistant-stubs/components/iron_os/__init__.pyi +21 -0
- homeassistant-stubs/components/iron_os/binary_sensor.pyi +19 -0
- homeassistant-stubs/components/iron_os/config_flow.pyi +15 -0
- homeassistant-stubs/components/iron_os/const.pyi +7 -0
- homeassistant-stubs/components/iron_os/coordinator.pyi +43 -0
- homeassistant-stubs/components/iron_os/entity.pyi +13 -0
- homeassistant-stubs/components/iron_os/number.pyi +62 -0
- homeassistant-stubs/components/iron_os/select.pyi +49 -0
- homeassistant-stubs/components/iron_os/sensor.pyi +46 -0
- homeassistant-stubs/components/iron_os/update.pyi +29 -0
- homeassistant-stubs/components/isy994/climate.pyi +0 -1
- homeassistant-stubs/components/isy994/fan.pyi +0 -1
- homeassistant-stubs/components/knx/climate.pyi +0 -1
- homeassistant-stubs/components/knx/config_flow.pyi +4 -0
- homeassistant-stubs/components/knx/fan.pyi +0 -1
- homeassistant-stubs/components/knx/services.pyi +5 -5
- homeassistant-stubs/components/lamarzocco/__init__.pyi +4 -5
- homeassistant-stubs/components/lamarzocco/binary_sensor.pyi +9 -3
- homeassistant-stubs/components/lamarzocco/calendar.pyi +1 -0
- homeassistant-stubs/components/lamarzocco/config_flow.pyi +6 -5
- homeassistant-stubs/components/lamarzocco/coordinator.pyi +39 -16
- homeassistant-stubs/components/lamarzocco/entity.pyi +7 -3
- homeassistant-stubs/components/lamarzocco/number.pyi +8 -4
- homeassistant-stubs/components/lamarzocco/select.pyi +8 -4
- homeassistant-stubs/components/lamarzocco/sensor.pyi +10 -3
- homeassistant-stubs/components/lamarzocco/switch.pyi +1 -1
- homeassistant-stubs/components/lametric/notify.pyi +2 -1
- homeassistant-stubs/components/lametric/number.pyi +2 -1
- homeassistant-stubs/components/lametric/services.pyi +2 -1
- homeassistant-stubs/components/lametric/switch.pyi +2 -1
- homeassistant-stubs/components/lcn/__init__.pyi +3 -1
- homeassistant-stubs/components/lcn/climate.pyi +0 -1
- homeassistant-stubs/components/lcn/const.pyi +1 -0
- homeassistant-stubs/components/lcn/helpers.pyi +1 -1
- homeassistant-stubs/components/lcn/services.pyi +7 -4
- homeassistant-stubs/components/lifx/const.pyi +1 -0
- homeassistant-stubs/components/lifx/manager.pyi +2 -2
- homeassistant-stubs/components/lifx/util.pyi +2 -2
- homeassistant-stubs/components/light/__init__.pyi +31 -55
- homeassistant-stubs/components/light/const.pyi +33 -0
- homeassistant-stubs/components/light/device_action.pyi +2 -1
- homeassistant-stubs/components/light/device_condition.pyi +1 -1
- homeassistant-stubs/components/light/device_trigger.pyi +1 -1
- homeassistant-stubs/components/light/intent.pyi +2 -1
- homeassistant-stubs/components/light/reproduce_state.pyi +2 -1
- homeassistant-stubs/components/light/significant_change.pyi +1 -1
- homeassistant-stubs/components/litterrobot/vacuum.pyi +2 -2
- homeassistant-stubs/components/lock/__init__.pyi +1 -2
- homeassistant-stubs/components/lookin/climate.pyi +0 -1
- homeassistant-stubs/components/mastodon/__init__.pyi +2 -2
- homeassistant-stubs/components/mastodon/config_flow.pyi +1 -2
- homeassistant-stubs/components/mastodon/sensor.pyi +2 -0
- homeassistant-stubs/components/matter/climate.pyi +0 -1
- homeassistant-stubs/components/matter/fan.pyi +0 -1
- homeassistant-stubs/components/matter/light.pyi +5 -5
- homeassistant-stubs/components/matter/vacuum.pyi +3 -3
- homeassistant-stubs/components/mealie/__init__.pyi +18 -0
- homeassistant-stubs/components/mealie/calendar.pyi +21 -0
- homeassistant-stubs/components/mealie/config_flow.pyi +20 -0
- homeassistant-stubs/components/mealie/const.pyi +14 -0
- homeassistant-stubs/components/mealie/coordinator.pyi +53 -0
- homeassistant-stubs/components/mealie/diagnostics.pyi +5 -0
- homeassistant-stubs/components/mealie/entity.pyi +11 -0
- homeassistant-stubs/components/mealie/sensor.pyi +29 -0
- homeassistant-stubs/components/mealie/services.pyi +21 -0
- homeassistant-stubs/components/mealie/todo.pyi +36 -0
- homeassistant-stubs/components/mealie/utils.pyi +3 -0
- homeassistant-stubs/components/media_player/__init__.pyi +0 -2
- homeassistant-stubs/components/modbus/__init__.pyi +5 -3
- homeassistant-stubs/components/modbus/climate.pyi +0 -1
- homeassistant-stubs/components/modbus/fan.pyi +0 -1
- homeassistant-stubs/components/modbus/modbus.pyi +3 -4
- homeassistant-stubs/components/mqtt/client.pyi +1 -1
- homeassistant-stubs/components/mqtt/climate.pyi +0 -1
- homeassistant-stubs/components/mqtt/config_flow.pyi +2 -1
- homeassistant-stubs/components/mqtt/fan.pyi +0 -1
- homeassistant-stubs/components/mqtt/light/schema_basic.pyi +5 -5
- homeassistant-stubs/components/mqtt/light/schema_json.pyi +4 -4
- homeassistant-stubs/components/mqtt/light/schema_template.pyi +4 -4
- homeassistant-stubs/components/mqtt/switch.pyi +1 -1
- homeassistant-stubs/components/mqtt/vacuum.pyi +10 -4
- homeassistant-stubs/components/music_assistant/__init__.pyi +4 -0
- homeassistant-stubs/components/music_assistant/actions.pyi +18 -0
- homeassistant-stubs/components/music_assistant/const.pyi +48 -0
- homeassistant-stubs/components/music_assistant/media_player.pyi +9 -16
- homeassistant-stubs/components/music_assistant/schemas.pyi +20 -0
- homeassistant-stubs/components/mysensors/climate.pyi +0 -1
- homeassistant-stubs/components/myuplink/__init__.pyi +5 -2
- homeassistant-stubs/components/myuplink/binary_sensor.pyi +2 -2
- homeassistant-stubs/components/myuplink/config_flow.pyi +4 -1
- homeassistant-stubs/components/myuplink/number.pyi +2 -2
- homeassistant-stubs/components/myuplink/select.pyi +3 -2
- homeassistant-stubs/components/myuplink/switch.pyi +1 -1
- homeassistant-stubs/components/nanoleaf/light.pyi +4 -4
- homeassistant-stubs/components/neato/vacuum.pyi +3 -3
- homeassistant-stubs/components/nest/__init__.pyi +6 -6
- homeassistant-stubs/components/nest/camera.pyi +2 -4
- homeassistant-stubs/components/nest/climate.pyi +2 -5
- homeassistant-stubs/components/nest/const.pyi +0 -2
- homeassistant-stubs/components/nest/device_info.pyi +2 -1
- homeassistant-stubs/components/nest/diagnostics.pyi +4 -8
- homeassistant-stubs/components/nest/event.pyi +2 -4
- homeassistant-stubs/components/nest/sensor.pyi +2 -4
- homeassistant-stubs/components/nest/types.pyi +11 -0
- homeassistant-stubs/components/netatmo/climate.pyi +0 -1
- homeassistant-stubs/components/netatmo/fan.pyi +0 -1
- homeassistant-stubs/components/nordpool/__init__.pyi +10 -3
- homeassistant-stubs/components/nordpool/coordinator.pyi +5 -2
- homeassistant-stubs/components/nordpool/entity.pyi +1 -1
- homeassistant-stubs/components/nordpool/sensor.pyi +10 -6
- homeassistant-stubs/components/nordpool/services.pyi +19 -0
- homeassistant-stubs/components/number/const.pyi +0 -8
- homeassistant-stubs/components/onkyo/config_flow.pyi +2 -0
- homeassistant-stubs/components/onkyo/media_player.pyi +10 -7
- homeassistant-stubs/components/overkiz/__init__.pyi +4 -3
- homeassistant-stubs/components/overkiz/alarm_control_panel.pyi +2 -4
- homeassistant-stubs/components/overkiz/binary_sensor.pyi +3 -4
- homeassistant-stubs/components/overkiz/button.pyi +4 -5
- homeassistant-stubs/components/overkiz/climate/__init__.pyi +3 -4
- homeassistant-stubs/components/overkiz/climate/atlantic_electrical_heater.pyi +0 -1
- homeassistant-stubs/components/overkiz/climate/atlantic_electrical_heater_with_adjustable_temperature_setpoint.pyi +0 -1
- homeassistant-stubs/components/overkiz/climate/atlantic_electrical_towel_dryer.pyi +1 -2
- homeassistant-stubs/components/overkiz/climate/atlantic_heat_recovery_ventilation.pyi +0 -1
- homeassistant-stubs/components/overkiz/climate/atlantic_pass_apc_heat_pump_main_component.pyi +0 -1
- homeassistant-stubs/components/overkiz/climate/atlantic_pass_apc_heating_zone.pyi +0 -1
- homeassistant-stubs/components/overkiz/climate/atlantic_pass_apc_zone_control.pyi +0 -1
- homeassistant-stubs/components/overkiz/climate/hitachi_air_to_air_heat_pump_hlrrwifi.pyi +0 -1
- homeassistant-stubs/components/overkiz/climate/hitachi_air_to_air_heat_pump_ovp.pyi +0 -1
- homeassistant-stubs/components/overkiz/climate/hitachi_air_to_water_heating_zone.pyi +34 -0
- homeassistant-stubs/components/overkiz/climate/somfy_heating_temperature_interface.pyi +0 -1
- homeassistant-stubs/components/overkiz/climate/somfy_thermostat.pyi +0 -1
- homeassistant-stubs/components/overkiz/climate/valve_heating_temperature_interface.pyi +0 -1
- homeassistant-stubs/components/overkiz/cover/__init__.pyi +2 -4
- homeassistant-stubs/components/overkiz/diagnostics.pyi +4 -5
- homeassistant-stubs/components/overkiz/light.pyi +2 -4
- homeassistant-stubs/components/overkiz/lock.pyi +2 -4
- homeassistant-stubs/components/overkiz/number.pyi +3 -4
- homeassistant-stubs/components/overkiz/scene.pyi +2 -4
- homeassistant-stubs/components/overkiz/select.pyi +3 -4
- homeassistant-stubs/components/overkiz/sensor.pyi +2 -3
- homeassistant-stubs/components/overkiz/siren.pyi +2 -4
- homeassistant-stubs/components/overkiz/switch.pyi +2 -4
- homeassistant-stubs/components/overkiz/water_heater/__init__.pyi +2 -4
- homeassistant-stubs/components/peblar/__init__.pyi +11 -0
- homeassistant-stubs/components/peblar/binary_sensor.pyi +25 -0
- homeassistant-stubs/components/peblar/button.pyi +27 -0
- homeassistant-stubs/components/peblar/config_flow.pyi +18 -0
- homeassistant-stubs/components/peblar/const.pyi +7 -0
- homeassistant-stubs/components/peblar/coordinator.pyi +49 -0
- homeassistant-stubs/components/peblar/diagnostics.pyi +5 -0
- homeassistant-stubs/components/peblar/entity.pyi +15 -0
- homeassistant-stubs/components/peblar/helpers.pyi +7 -0
- homeassistant-stubs/components/peblar/number.pyi +33 -0
- homeassistant-stubs/components/peblar/select.pyi +30 -0
- homeassistant-stubs/components/peblar/sensor.pyi +29 -0
- homeassistant-stubs/components/peblar/switch.pyi +32 -0
- homeassistant-stubs/components/peblar/update.pyi +27 -0
- homeassistant-stubs/components/plugwise/binary_sensor.pyi +1 -0
- homeassistant-stubs/components/plugwise/button.pyi +2 -0
- homeassistant-stubs/components/plugwise/climate.pyi +3 -4
- homeassistant-stubs/components/plugwise/config_flow.pyi +7 -1
- homeassistant-stubs/components/plugwise/entity.pyi +0 -1
- homeassistant-stubs/components/plugwise/number.pyi +2 -0
- homeassistant-stubs/components/plugwise/select.pyi +2 -0
- homeassistant-stubs/components/plugwise/sensor.pyi +2 -0
- homeassistant-stubs/components/plugwise/switch.pyi +2 -0
- homeassistant-stubs/components/plugwise/util.pyi +1 -0
- homeassistant-stubs/components/powerfox/__init__.pyi +12 -0
- homeassistant-stubs/components/powerfox/config_flow.pyi +16 -0
- homeassistant-stubs/components/{stookalert → powerfox}/const.pyi +1 -2
- homeassistant-stubs/components/powerfox/coordinator.pyi +14 -0
- homeassistant-stubs/components/powerfox/diagnostics.pyi +5 -0
- homeassistant-stubs/components/powerfox/entity.pyi +11 -0
- homeassistant-stubs/components/powerfox/sensor.pyi +28 -0
- homeassistant-stubs/components/powerwall/sensor.pyi +3 -5
- homeassistant-stubs/components/prometheus/__init__.pyi +11 -3
- homeassistant-stubs/components/rabbitair/fan.pyi +0 -1
- homeassistant-stubs/components/recorder/__init__.pyi +1 -1
- homeassistant-stubs/components/recorder/db_schema.pyi +19 -4
- homeassistant-stubs/components/recorder/history/legacy.pyi +4 -4
- homeassistant-stubs/components/recorder/history/modern.pyi +5 -5
- homeassistant-stubs/components/recorder/migration.pyi +32 -19
- homeassistant-stubs/components/recorder/models/state.pyi +3 -0
- homeassistant-stubs/components/recorder/queries.pyi +3 -4
- homeassistant-stubs/components/recorder/statistics.pyi +2 -2
- homeassistant-stubs/components/recorder/table_managers/event_types.pyi +0 -1
- homeassistant-stubs/components/recorder/table_managers/recorder_runs.pyi +1 -12
- homeassistant-stubs/components/recorder/table_managers/states.pyi +7 -0
- homeassistant-stubs/components/remote/__init__.pyi +0 -10
- homeassistant-stubs/components/renault/binary_sensor.pyi +2 -0
- homeassistant-stubs/components/renault/button.pyi +2 -0
- homeassistant-stubs/components/renault/coordinator.pyi +2 -1
- homeassistant-stubs/components/renault/device_tracker.pyi +2 -0
- homeassistant-stubs/components/renault/select.pyi +2 -0
- homeassistant-stubs/components/renault/sensor.pyi +2 -0
- homeassistant-stubs/components/reolink/__init__.pyi +1 -0
- homeassistant-stubs/components/reolink/button.pyi +1 -2
- homeassistant-stubs/components/reolink/camera.pyi +1 -2
- homeassistant-stubs/components/reolink/light.pyi +1 -2
- homeassistant-stubs/components/reolink/media_source.pyi +2 -3
- homeassistant-stubs/components/reolink/number.pyi +1 -2
- homeassistant-stubs/components/reolink/select.pyi +1 -2
- homeassistant-stubs/components/reolink/services.pyi +2 -2
- homeassistant-stubs/components/reolink/siren.pyi +1 -2
- homeassistant-stubs/components/reolink/switch.pyi +1 -2
- homeassistant-stubs/components/reolink/update.pyi +1 -0
- homeassistant-stubs/components/reolink/util.pyi +9 -0
- homeassistant-stubs/components/reolink/views.pyi +21 -0
- homeassistant-stubs/components/roborock/vacuum.pyi +2 -2
- homeassistant-stubs/components/roku/__init__.pyi +5 -4
- homeassistant-stubs/components/roku/binary_sensor.pyi +4 -3
- homeassistant-stubs/components/roku/config_flow.pyi +5 -3
- homeassistant-stubs/components/roku/diagnostics.pyi +2 -4
- homeassistant-stubs/components/roku/media_player.pyi +4 -3
- homeassistant-stubs/components/roku/remote.pyi +4 -4
- homeassistant-stubs/components/roku/select.pyi +4 -4
- homeassistant-stubs/components/roku/sensor.pyi +4 -4
- homeassistant-stubs/components/romy/vacuum.pyi +2 -2
- homeassistant-stubs/components/russound_rio/__init__.pyi +14 -0
- homeassistant-stubs/components/russound_rio/config_flow.pyi +14 -0
- homeassistant-stubs/components/russound_rio/const.pyi +6 -0
- homeassistant-stubs/components/russound_rio/diagnostics.pyi +5 -0
- homeassistant-stubs/components/russound_rio/entity.pyi +25 -0
- homeassistant-stubs/components/russound_rio/media_player.pyi +56 -0
- homeassistant-stubs/components/schlage/__init__.pyi +11 -0
- homeassistant-stubs/components/schlage/binary_sensor.pyi +26 -0
- homeassistant-stubs/components/schlage/config_flow.pyi +19 -0
- homeassistant-stubs/components/schlage/const.pyi +6 -0
- homeassistant-stubs/components/schlage/coordinator.pyi +31 -0
- homeassistant-stubs/components/schlage/diagnostics.pyi +5 -0
- homeassistant-stubs/components/schlage/entity.pyi +19 -0
- homeassistant-stubs/components/schlage/lock.pyi +21 -0
- homeassistant-stubs/components/schlage/select.pyi +20 -0
- homeassistant-stubs/components/schlage/sensor.pyi +19 -0
- homeassistant-stubs/components/schlage/switch.pyi +32 -0
- homeassistant-stubs/components/sensibo/climate.pyi +2 -3
- homeassistant-stubs/components/sensibo/coordinator.pyi +1 -1
- homeassistant-stubs/components/sensor/const.pyi +0 -7
- homeassistant-stubs/components/senz/climate.pyi +0 -1
- homeassistant-stubs/components/shelly/climate.pyi +0 -2
- homeassistant-stubs/components/siren/__init__.pyi +1 -6
- homeassistant-stubs/components/siren/const.pyi +0 -11
- homeassistant-stubs/components/snooz/fan.pyi +0 -1
- homeassistant-stubs/components/solarlog/config_flow.pyi +2 -5
- homeassistant-stubs/components/solarlog/const.pyi +0 -1
- homeassistant-stubs/components/solarlog/coordinator.pyi +0 -1
- homeassistant-stubs/components/sql/sensor.pyi +2 -0
- homeassistant-stubs/components/starlink/coordinator.pyi +4 -2
- homeassistant-stubs/components/starlink/sensor.pyi +1 -1
- homeassistant-stubs/components/statistics/sensor.pyi +43 -40
- homeassistant-stubs/components/stream/__init__.pyi +13 -0
- homeassistant-stubs/components/suez_water/__init__.pyi +3 -5
- homeassistant-stubs/components/suez_water/coordinator.pyi +7 -9
- homeassistant-stubs/components/suez_water/sensor.pyi +5 -6
- homeassistant-stubs/components/sun/__init__.pyi +2 -0
- homeassistant-stubs/components/sun/entity.pyi +1 -2
- homeassistant-stubs/components/switch/__init__.pyi +0 -7
- homeassistant-stubs/components/switch_as_x/fan.pyi +0 -1
- homeassistant-stubs/components/switchbee/climate.pyi +0 -1
- homeassistant-stubs/components/switchbot_cloud/climate.pyi +0 -1
- homeassistant-stubs/components/switchbot_cloud/sensor.pyi +12 -3
- homeassistant-stubs/components/switchbot_cloud/switch.pyi +4 -0
- homeassistant-stubs/components/switchbot_cloud/vacuum.pyi +3 -3
- homeassistant-stubs/components/switcher_kis/climate.pyi +1 -2
- homeassistant-stubs/components/switcher_kis/cover.pyi +0 -4
- homeassistant-stubs/components/switcher_kis/entity.pyi +6 -0
- homeassistant-stubs/components/switcher_kis/light.pyi +0 -4
- homeassistant-stubs/components/switcher_kis/switch.pyi +0 -2
- homeassistant-stubs/components/tailwind/__init__.pyi +2 -4
- homeassistant-stubs/components/tailwind/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/tailwind/button.pyi +1 -1
- homeassistant-stubs/components/tailwind/coordinator.pyi +2 -1
- homeassistant-stubs/components/tailwind/cover.pyi +1 -1
- homeassistant-stubs/components/tailwind/diagnostics.pyi +1 -1
- homeassistant-stubs/components/tailwind/number.pyi +1 -1
- homeassistant-stubs/components/tedee/__init__.pyi +2 -3
- homeassistant-stubs/components/tedee/binary_sensor.pyi +2 -0
- homeassistant-stubs/components/tedee/sensor.pyi +2 -0
- homeassistant-stubs/components/tibber/services.pyi +1 -1
- homeassistant-stubs/components/tolo/climate.pyi +0 -1
- homeassistant-stubs/components/tolo/fan.pyi +0 -1
- homeassistant-stubs/components/tplink/__init__.pyi +1 -1
- homeassistant-stubs/components/tplink/binary_sensor.pyi +2 -2
- homeassistant-stubs/components/tplink/button.pyi +2 -2
- homeassistant-stubs/components/tplink/camera.pyi +49 -0
- homeassistant-stubs/components/tplink/climate.pyi +1 -2
- homeassistant-stubs/components/tplink/config_flow.pyi +11 -5
- homeassistant-stubs/components/tplink/const.pyi +2 -0
- homeassistant-stubs/components/tplink/entity.pyi +9 -2
- homeassistant-stubs/components/tplink/fan.pyi +1 -2
- homeassistant-stubs/components/tplink/light.pyi +2 -2
- homeassistant-stubs/components/tplink/models.pyi +4 -1
- homeassistant-stubs/components/tplink/number.pyi +2 -2
- homeassistant-stubs/components/tplink/select.pyi +2 -2
- homeassistant-stubs/components/tplink/sensor.pyi +2 -2
- homeassistant-stubs/components/tplink/siren.pyi +1 -1
- homeassistant-stubs/components/tplink/switch.pyi +2 -2
- homeassistant-stubs/components/tractive/sensor.pyi +1 -1
- homeassistant-stubs/components/tradfri/fan.pyi +0 -1
- homeassistant-stubs/components/tradfri/light.pyi +4 -4
- homeassistant-stubs/components/transmission/__init__.pyi +1 -1
- homeassistant-stubs/components/transmission/const.pyi +1 -0
- homeassistant-stubs/components/twentemilieu/__init__.pyi +3 -11
- homeassistant-stubs/components/twentemilieu/calendar.pyi +1 -1
- homeassistant-stubs/components/twentemilieu/coordinator.pyi +14 -0
- homeassistant-stubs/components/twentemilieu/diagnostics.pyi +2 -2
- homeassistant-stubs/components/twentemilieu/entity.pyi +2 -3
- homeassistant-stubs/components/twentemilieu/sensor.pyi +3 -3
- homeassistant-stubs/components/unifi/sensor.pyi +1 -1
- homeassistant-stubs/components/unifiprotect/const.pyi +6 -0
- homeassistant-stubs/components/unifiprotect/event.pyi +5 -3
- homeassistant-stubs/components/unifiprotect/services.pyi +16 -9
- homeassistant-stubs/components/update/__init__.pyi +0 -2
- homeassistant-stubs/components/vacuum/__init__.pyi +16 -7
- homeassistant-stubs/components/vacuum/const.pyi +18 -5
- homeassistant-stubs/components/vacuum/device_condition.pyi +1 -1
- homeassistant-stubs/components/vacuum/device_trigger.pyi +1 -1
- homeassistant-stubs/components/vacuum/reproduce_state.pyi +2 -2
- homeassistant-stubs/components/vallox/fan.pyi +0 -1
- homeassistant-stubs/components/velbus/__init__.pyi +22 -9
- homeassistant-stubs/components/velbus/binary_sensor.pyi +4 -3
- homeassistant-stubs/components/velbus/button.pyi +4 -3
- homeassistant-stubs/components/velbus/climate.pyi +4 -3
- homeassistant-stubs/components/velbus/cover.pyi +4 -3
- homeassistant-stubs/components/velbus/diagnostics.pyi +3 -4
- homeassistant-stubs/components/velbus/light.pyi +4 -3
- homeassistant-stubs/components/velbus/select.pyi +4 -3
- homeassistant-stubs/components/velbus/sensor.pyi +4 -3
- homeassistant-stubs/components/velbus/services.pyi +7 -0
- homeassistant-stubs/components/velbus/switch.pyi +4 -3
- homeassistant-stubs/components/water_heater/__init__.pyi +7 -12
- homeassistant-stubs/components/wemo/fan.pyi +0 -1
- homeassistant-stubs/components/wemo/light.pyi +4 -2
- homeassistant-stubs/components/wiz/light.pyi +4 -5
- homeassistant-stubs/components/yale_smart_alarm/__init__.pyi +4 -4
- homeassistant-stubs/components/yale_smart_alarm/alarm_control_panel.pyi +0 -1
- homeassistant-stubs/components/yale_smart_alarm/config_flow.pyi +3 -2
- homeassistant-stubs/components/yale_smart_alarm/coordinator.pyi +3 -3
- homeassistant-stubs/components/yale_smart_alarm/entity.pyi +1 -1
- homeassistant-stubs/components/yale_smart_alarm/lock.pyi +1 -1
- homeassistant-stubs/components/zwave_js/api.pyi +2 -0
- homeassistant-stubs/components/zwave_js/climate.pyi +0 -1
- homeassistant-stubs/components/zwave_js/fan.pyi +0 -1
- homeassistant-stubs/components/zwave_js/light.pyi +7 -9
- homeassistant-stubs/const.pyi +2 -151
- homeassistant-stubs/core.pyi +3 -6
- homeassistant-stubs/core_config.pyi +2 -1
- homeassistant-stubs/data_entry_flow.pyi +0 -13
- homeassistant-stubs/exceptions.pyi +6 -0
- homeassistant-stubs/helpers/device_registry.pyi +1 -9
- homeassistant-stubs/helpers/entity.pyi +1 -2
- homeassistant-stubs/helpers/event.pyi +3 -4
- homeassistant-stubs/helpers/service.pyi +1 -1
- homeassistant-stubs/helpers/service_info/mqtt.pyi +1 -1
- homeassistant-stubs/helpers/system_info.pyi +1 -1
- homeassistant-stubs/helpers/template.pyi +1 -1
- homeassistant-stubs/util/dt.pyi +1 -0
- homeassistant-stubs/util/package.pyi +1 -0
- homeassistant-stubs/util/system_info.pyi +1 -0
- {homeassistant_stubs-2024.12.5.dist-info → homeassistant_stubs-2025.1.0.dist-info}/METADATA +2 -2
- {homeassistant_stubs-2024.12.5.dist-info → homeassistant_stubs-2025.1.0.dist-info}/RECORD +585 -490
- homeassistant-stubs/components/bluesound/services.pyi +0 -21
- homeassistant-stubs/components/stookalert/__init__.pyi +0 -10
- homeassistant-stubs/components/stookalert/binary_sensor.pyi +0 -24
- homeassistant-stubs/components/stookalert/config_flow.pyi +0 -7
- homeassistant-stubs/components/tailwind/typing.pyi +0 -4
- {homeassistant_stubs-2024.12.5.dist-info → homeassistant_stubs-2025.1.0.dist-info}/WHEEL +0 -0
- {homeassistant_stubs-2024.12.5.dist-info → homeassistant_stubs-2025.1.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,27 @@
|
|
1
|
+
from .coordinator import PeblarConfigEntry as PeblarConfigEntry, PeblarVersionDataUpdateCoordinator as PeblarVersionDataUpdateCoordinator, PeblarVersionInformation as PeblarVersionInformation
|
2
|
+
from .entity import PeblarEntity as PeblarEntity
|
3
|
+
from collections.abc import Callable as Callable
|
4
|
+
from dataclasses import dataclass
|
5
|
+
from homeassistant.components.update import UpdateDeviceClass as UpdateDeviceClass, UpdateEntity as UpdateEntity, UpdateEntityDescription as UpdateEntityDescription
|
6
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
7
|
+
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
8
|
+
|
9
|
+
PARALLEL_UPDATES: int
|
10
|
+
|
11
|
+
@dataclass(frozen=True, kw_only=True)
|
12
|
+
class PeblarUpdateEntityDescription(UpdateEntityDescription):
|
13
|
+
available_fn: Callable[[PeblarVersionInformation], str | None]
|
14
|
+
has_fn: Callable[[PeblarVersionInformation], bool] = ...
|
15
|
+
installed_fn: Callable[[PeblarVersionInformation], str | None]
|
16
|
+
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=..., display_precision=..., available_fn, has_fn=..., installed_fn) -> None: ...
|
17
|
+
|
18
|
+
DESCRIPTIONS: tuple[PeblarUpdateEntityDescription, ...]
|
19
|
+
|
20
|
+
async def async_setup_entry(hass: HomeAssistant, entry: PeblarConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
|
21
|
+
|
22
|
+
class PeblarUpdateEntity(PeblarEntity[PeblarVersionDataUpdateCoordinator], UpdateEntity):
|
23
|
+
entity_description: PeblarUpdateEntityDescription
|
24
|
+
@property
|
25
|
+
def installed_version(self) -> str | None: ...
|
26
|
+
@property
|
27
|
+
def latest_version(self) -> str | None: ...
|
@@ -9,6 +9,8 @@ from homeassistant.const import EntityCategory as EntityCategory
|
|
9
9
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
10
10
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
11
11
|
|
12
|
+
PARALLEL_UPDATES: int
|
13
|
+
|
12
14
|
async def async_setup_entry(hass: HomeAssistant, entry: PlugwiseConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
|
13
15
|
|
14
16
|
class PlugwiseButtonEntity(PlugwiseEntity, ButtonEntity):
|
@@ -7,20 +7,19 @@ from _typeshed import Incomplete
|
|
7
7
|
from homeassistant.components.climate import ATTR_HVAC_MODE as ATTR_HVAC_MODE, ATTR_TARGET_TEMP_HIGH as ATTR_TARGET_TEMP_HIGH, ATTR_TARGET_TEMP_LOW as ATTR_TARGET_TEMP_LOW, ClimateEntity as ClimateEntity, ClimateEntityFeature as ClimateEntityFeature, HVACAction as HVACAction, HVACMode as HVACMode
|
8
8
|
from homeassistant.const import ATTR_TEMPERATURE as ATTR_TEMPERATURE, UnitOfTemperature as UnitOfTemperature
|
9
9
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
10
|
-
from homeassistant.exceptions import
|
10
|
+
from homeassistant.exceptions import ServiceValidationError as ServiceValidationError
|
11
11
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
12
12
|
from typing import Any
|
13
13
|
|
14
|
+
PARALLEL_UPDATES: int
|
15
|
+
|
14
16
|
async def async_setup_entry(hass: HomeAssistant, entry: PlugwiseConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
|
15
17
|
|
16
18
|
class PlugwiseClimateEntity(PlugwiseEntity, ClimateEntity):
|
17
|
-
_attr_has_entity_name: bool
|
18
19
|
_attr_name: Incomplete
|
19
20
|
_attr_temperature_unit: Incomplete
|
20
21
|
_attr_translation_key = DOMAIN
|
21
|
-
_enable_turn_on_off_backwards_compatibility: bool
|
22
22
|
_previous_mode: str
|
23
|
-
_attr_extra_state_attributes: Incomplete
|
24
23
|
_attr_unique_id: Incomplete
|
25
24
|
_devices: Incomplete
|
26
25
|
_gateway: Incomplete
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import voluptuous as vol
|
2
2
|
from .const import DEFAULT_PORT as DEFAULT_PORT, DEFAULT_USERNAME as DEFAULT_USERNAME, DOMAIN as DOMAIN, FLOW_SMILE as FLOW_SMILE, FLOW_STRETCH as FLOW_STRETCH, SMILE as SMILE, STRETCH as STRETCH, STRETCH_USERNAME as STRETCH_USERNAME, ZEROCONF_MAP as ZEROCONF_MAP
|
3
|
+
from _typeshed import Incomplete
|
3
4
|
from homeassistant.components.zeroconf import ZeroconfServiceInfo as ZeroconfServiceInfo
|
4
5
|
from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, SOURCE_USER as SOURCE_USER
|
5
6
|
from homeassistant.const import ATTR_CONFIGURATION_URL as ATTR_CONFIGURATION_URL, CONF_BASE as CONF_BASE, CONF_HOST as CONF_HOST, CONF_NAME as CONF_NAME, CONF_PASSWORD as CONF_PASSWORD, CONF_PORT as CONF_PORT, CONF_USERNAME as CONF_USERNAME
|
@@ -8,8 +9,12 @@ from homeassistant.helpers.aiohttp_client import async_get_clientsession as asyn
|
|
8
9
|
from plugwise import Smile
|
9
10
|
from typing import Any, Self
|
10
11
|
|
11
|
-
|
12
|
+
_LOGGER: Incomplete
|
13
|
+
SMILE_RECONF_SCHEMA: Incomplete
|
14
|
+
|
15
|
+
def smile_user_schema(discovery_info: ZeroconfServiceInfo | None) -> vol.Schema: ...
|
12
16
|
async def validate_input(hass: HomeAssistant, data: dict[str, Any]) -> Smile: ...
|
17
|
+
async def verify_connection(hass: HomeAssistant, user_input: dict[str, Any]) -> tuple[Smile | None, dict[str, str]]: ...
|
13
18
|
|
14
19
|
class PlugwiseConfigFlow(ConfigFlow, domain=DOMAIN):
|
15
20
|
VERSION: int
|
@@ -19,3 +24,4 @@ class PlugwiseConfigFlow(ConfigFlow, domain=DOMAIN):
|
|
19
24
|
async def async_step_zeroconf(self, discovery_info: ZeroconfServiceInfo) -> ConfigFlowResult: ...
|
20
25
|
def is_matching(self, other_flow: Self) -> bool: ...
|
21
26
|
async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
27
|
+
async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
@@ -10,6 +10,8 @@ from homeassistant.const import EntityCategory as EntityCategory, UnitOfTemperat
|
|
10
10
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
11
11
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
12
12
|
|
13
|
+
PARALLEL_UPDATES: int
|
14
|
+
|
13
15
|
@dataclass(frozen=True, kw_only=True)
|
14
16
|
class PlugwiseNumberEntityDescription(NumberEntityDescription):
|
15
17
|
key: NumberType
|
@@ -10,6 +10,8 @@ from homeassistant.const import EntityCategory as EntityCategory, STATE_ON as ST
|
|
10
10
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
11
11
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
12
12
|
|
13
|
+
PARALLEL_UPDATES: int
|
14
|
+
|
13
15
|
@dataclass(frozen=True, kw_only=True)
|
14
16
|
class PlugwiseSelectEntityDescription(SelectEntityDescription):
|
15
17
|
key: SelectType
|
@@ -9,6 +9,8 @@ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callb
|
|
9
9
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
10
10
|
from plugwise.constants import SensorType as SensorType
|
11
11
|
|
12
|
+
PARALLEL_UPDATES: int
|
13
|
+
|
12
14
|
@dataclass(frozen=True)
|
13
15
|
class PlugwiseSensorEntityDescription(SensorEntityDescription):
|
14
16
|
key: SensorType
|
@@ -11,6 +11,8 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEnti
|
|
11
11
|
from plugwise.constants import SwitchType as SwitchType
|
12
12
|
from typing import Any
|
13
13
|
|
14
|
+
PARALLEL_UPDATES: int
|
15
|
+
|
14
16
|
@dataclass(frozen=True)
|
15
17
|
class PlugwiseSwitchEntityDescription(SwitchEntityDescription):
|
16
18
|
key: SwitchType
|
@@ -0,0 +1,12 @@
|
|
1
|
+
from .coordinator import PowerfoxDataUpdateCoordinator as PowerfoxDataUpdateCoordinator
|
2
|
+
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
3
|
+
from homeassistant.const import CONF_EMAIL as CONF_EMAIL, CONF_PASSWORD as CONF_PASSWORD, Platform as Platform
|
4
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
5
|
+
from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
|
6
|
+
from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
|
7
|
+
|
8
|
+
PLATFORMS: list[Platform]
|
9
|
+
type PowerfoxConfigEntry = ConfigEntry[list[PowerfoxDataUpdateCoordinator]]
|
10
|
+
|
11
|
+
async def async_setup_entry(hass: HomeAssistant, entry: PowerfoxConfigEntry) -> bool: ...
|
12
|
+
async def async_unload_entry(hass: HomeAssistant, entry: PowerfoxConfigEntry) -> bool: ...
|
@@ -0,0 +1,16 @@
|
|
1
|
+
from .const import DOMAIN as DOMAIN
|
2
|
+
from _typeshed import Incomplete
|
3
|
+
from collections.abc import Mapping
|
4
|
+
from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
|
5
|
+
from homeassistant.const import CONF_EMAIL as CONF_EMAIL, CONF_PASSWORD as CONF_PASSWORD
|
6
|
+
from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
|
7
|
+
from typing import Any
|
8
|
+
|
9
|
+
STEP_USER_DATA_SCHEMA: Incomplete
|
10
|
+
STEP_REAUTH_SCHEMA: Incomplete
|
11
|
+
|
12
|
+
class PowerfoxConfigFlow(ConfigFlow, domain=DOMAIN):
|
13
|
+
async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
14
|
+
async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
|
15
|
+
async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
16
|
+
async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
@@ -0,0 +1,14 @@
|
|
1
|
+
from .const import DOMAIN as DOMAIN, LOGGER as LOGGER, SCAN_INTERVAL as SCAN_INTERVAL
|
2
|
+
from _typeshed import Incomplete
|
3
|
+
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
4
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
5
|
+
from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed
|
6
|
+
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
|
7
|
+
from powerfox import Device as Device, Powerfox as Powerfox, Poweropti
|
8
|
+
|
9
|
+
class PowerfoxDataUpdateCoordinator(DataUpdateCoordinator[Poweropti]):
|
10
|
+
config_entry: ConfigEntry
|
11
|
+
client: Incomplete
|
12
|
+
device: Incomplete
|
13
|
+
def __init__(self, hass: HomeAssistant, client: Powerfox, device: Device) -> None: ...
|
14
|
+
async def _async_update_data(self) -> Poweropti: ...
|
@@ -0,0 +1,5 @@
|
|
1
|
+
from . import PowerfoxConfigEntry as PowerfoxConfigEntry, PowerfoxDataUpdateCoordinator as PowerfoxDataUpdateCoordinator
|
2
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
3
|
+
from typing import Any
|
4
|
+
|
5
|
+
async def async_get_config_entry_diagnostics(hass: HomeAssistant, entry: PowerfoxConfigEntry) -> dict[str, Any]: ...
|
@@ -0,0 +1,11 @@
|
|
1
|
+
from .const import DOMAIN as DOMAIN
|
2
|
+
from .coordinator import PowerfoxDataUpdateCoordinator as PowerfoxDataUpdateCoordinator
|
3
|
+
from _typeshed import Incomplete
|
4
|
+
from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
|
5
|
+
from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
|
6
|
+
from powerfox import Device as Device
|
7
|
+
|
8
|
+
class PowerfoxEntity(CoordinatorEntity[PowerfoxDataUpdateCoordinator]):
|
9
|
+
_attr_has_entity_name: bool
|
10
|
+
_attr_device_info: Incomplete
|
11
|
+
def __init__(self, coordinator: PowerfoxDataUpdateCoordinator, device: Device) -> None: ...
|
@@ -0,0 +1,28 @@
|
|
1
|
+
from . import PowerfoxConfigEntry as PowerfoxConfigEntry
|
2
|
+
from .coordinator import PowerfoxDataUpdateCoordinator as PowerfoxDataUpdateCoordinator
|
3
|
+
from .entity import PowerfoxEntity as PowerfoxEntity
|
4
|
+
from _typeshed import Incomplete
|
5
|
+
from collections.abc import Callable as Callable
|
6
|
+
from dataclasses import dataclass
|
7
|
+
from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
|
8
|
+
from homeassistant.const import UnitOfEnergy as UnitOfEnergy, UnitOfPower as UnitOfPower, UnitOfVolume as UnitOfVolume
|
9
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
10
|
+
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
11
|
+
from powerfox import Device as Device, PowerMeter, WaterMeter
|
12
|
+
|
13
|
+
@dataclass(frozen=True, kw_only=True)
|
14
|
+
class PowerfoxSensorEntityDescription[T: (PowerMeter, WaterMeter)](SensorEntityDescription):
|
15
|
+
value_fn: Callable[[T], float | int | None]
|
16
|
+
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=..., last_reset=..., native_unit_of_measurement=..., options=..., state_class=..., suggested_display_precision=..., suggested_unit_of_measurement=..., value_fn) -> None: ...
|
17
|
+
|
18
|
+
SENSORS_POWER: tuple[PowerfoxSensorEntityDescription[PowerMeter], ...]
|
19
|
+
SENSORS_WATER: tuple[PowerfoxSensorEntityDescription[WaterMeter], ...]
|
20
|
+
|
21
|
+
async def async_setup_entry(hass: HomeAssistant, entry: PowerfoxConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
|
22
|
+
|
23
|
+
class PowerfoxSensorEntity(PowerfoxEntity, SensorEntity):
|
24
|
+
entity_description: PowerfoxSensorEntityDescription
|
25
|
+
_attr_unique_id: Incomplete
|
26
|
+
def __init__(self, coordinator: PowerfoxDataUpdateCoordinator, device: Device, description: PowerfoxSensorEntityDescription) -> None: ...
|
27
|
+
@property
|
28
|
+
def native_value(self) -> float | int | None: ...
|
@@ -10,15 +10,13 @@ from homeassistant.core import HomeAssistant as HomeAssistant
|
|
10
10
|
from homeassistant.helpers.entity import Entity as Entity
|
11
11
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
12
12
|
from tesla_powerwall import MeterResponse, MeterType as MeterType
|
13
|
-
from typing import Generic, TypeVar
|
14
13
|
|
15
14
|
_METER_DIRECTION_EXPORT: str
|
16
15
|
_METER_DIRECTION_IMPORT: str
|
17
|
-
|
18
|
-
_ValueT = TypeVar('_ValueT', bound=float | int | str | None)
|
16
|
+
type _ValueType = float | int | str | None
|
19
17
|
|
20
18
|
@dataclass(frozen=True, kw_only=True)
|
21
|
-
class PowerwallSensorEntityDescription
|
19
|
+
class PowerwallSensorEntityDescription[_ValueParamT, _ValueT: _ValueType](SensorEntityDescription):
|
22
20
|
value_fn: Callable[[_ValueParamT], _ValueT]
|
23
21
|
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=..., last_reset=..., native_unit_of_measurement=..., options=..., state_class=..., suggested_display_precision=..., suggested_unit_of_measurement=..., value_fn) -> None: ...
|
24
22
|
|
@@ -88,7 +86,7 @@ class PowerWallImportSensor(PowerWallEnergyDirectionSensor):
|
|
88
86
|
@property
|
89
87
|
def native_value(self) -> float | None: ...
|
90
88
|
|
91
|
-
class PowerWallBatterySensor(BatteryEntity, SensorEntity
|
89
|
+
class PowerWallBatterySensor[_ValueT: _ValueType](BatteryEntity, SensorEntity):
|
92
90
|
entity_description: PowerwallSensorEntityDescription[BatteryResponse, _ValueT]
|
93
91
|
_attr_translation_key: Incomplete
|
94
92
|
_attr_unique_id: Incomplete
|
@@ -1,6 +1,7 @@
|
|
1
1
|
from _typeshed import Incomplete
|
2
2
|
from aiohttp import web
|
3
3
|
from collections.abc import Callable as Callable
|
4
|
+
from dataclasses import dataclass
|
4
5
|
from homeassistant.components.alarm_control_panel import AlarmControlPanelState as AlarmControlPanelState
|
5
6
|
from homeassistant.components.climate import ATTR_CURRENT_TEMPERATURE as ATTR_CURRENT_TEMPERATURE, ATTR_FAN_MODE as ATTR_FAN_MODE, ATTR_FAN_MODES as ATTR_FAN_MODES, ATTR_HVAC_ACTION as ATTR_HVAC_ACTION, ATTR_HVAC_MODES as ATTR_HVAC_MODES, ATTR_TARGET_TEMP_HIGH as ATTR_TARGET_TEMP_HIGH, ATTR_TARGET_TEMP_LOW as ATTR_TARGET_TEMP_LOW, HVACAction as HVACAction
|
6
7
|
from homeassistant.components.cover import ATTR_CURRENT_POSITION as ATTR_CURRENT_POSITION, ATTR_CURRENT_TILT_POSITION as ATTR_CURRENT_TILT_POSITION
|
@@ -39,6 +40,12 @@ CONFIG_SCHEMA: Incomplete
|
|
39
40
|
|
40
41
|
def setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
|
41
42
|
|
43
|
+
@dataclass(frozen=True, slots=True)
|
44
|
+
class MetricNameWithLabelValues:
|
45
|
+
metric_name: str
|
46
|
+
label_values: tuple[str, ...]
|
47
|
+
def __init__(self, metric_name, label_values) -> None: ...
|
48
|
+
|
42
49
|
class PrometheusMetrics:
|
43
50
|
_component_config: Incomplete
|
44
51
|
_override_metric: Incomplete
|
@@ -47,20 +54,21 @@ class PrometheusMetrics:
|
|
47
54
|
_sensor_metric_handlers: Incomplete
|
48
55
|
metrics_prefix: Incomplete
|
49
56
|
_metrics: Incomplete
|
57
|
+
_metrics_by_entity_id: Incomplete
|
50
58
|
_climate_units: Incomplete
|
51
59
|
def __init__(self, entity_filter: entityfilter.EntityFilter, namespace: str, climate_units: UnitOfTemperature, component_config: EntityValues, override_metric: str | None, default_metric: str | None) -> None: ...
|
52
60
|
def handle_state_changed_event(self, event: Event[EventStateChangedData]) -> None: ...
|
53
61
|
def handle_state(self, state: State) -> None: ...
|
54
62
|
def handle_entity_registry_updated(self, event: Event[EventEntityRegistryUpdatedData]) -> None: ...
|
55
|
-
def _remove_labelsets(self, entity_id: str,
|
63
|
+
def _remove_labelsets(self, entity_id: str, ignored_metric_names: set[str] | None = None) -> None: ...
|
56
64
|
def _handle_attributes(self, state: State) -> None: ...
|
57
|
-
def _metric[_MetricBaseT: MetricWrapperBase](self,
|
65
|
+
def _metric[_MetricBaseT: MetricWrapperBase](self, metric_name: str, factory: type[_MetricBaseT], documentation: str, labels: dict[str, str]) -> _MetricBaseT: ...
|
58
66
|
@staticmethod
|
59
67
|
def _sanitize_metric_name(metric: str) -> str: ...
|
60
68
|
@staticmethod
|
61
69
|
def state_as_number(state: State) -> float | None: ...
|
62
70
|
@staticmethod
|
63
|
-
def _labels(state: State) -> dict[str, Any]: ...
|
71
|
+
def _labels(state: State, extra_labels: dict[str, str] | None = None) -> dict[str, Any]: ...
|
64
72
|
def _battery(self, state: State) -> None: ...
|
65
73
|
def _handle_binary_sensor(self, state: State) -> None: ...
|
66
74
|
def _handle_input_boolean(self, state: State) -> None: ...
|
@@ -19,7 +19,6 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_e
|
|
19
19
|
|
20
20
|
class RabbitAirFanEntity(RabbitAirBaseEntity, FanEntity):
|
21
21
|
_attr_supported_features: Incomplete
|
22
|
-
_enable_turn_on_off_backwards_compatibility: bool
|
23
22
|
_attr_preset_modes: Incomplete
|
24
23
|
_attr_speed_count: Incomplete
|
25
24
|
def __init__(self, coordinator: RabbitAirDataUpdateCoordinator, entry: ConfigEntry) -> None: ...
|
@@ -1,4 +1,4 @@
|
|
1
|
-
from . import entity_registry as entity_registry, websocket_api as websocket_api
|
1
|
+
from . import backup as backup, entity_registry as entity_registry, websocket_api as websocket_api
|
2
2
|
from .const import CONF_DB_INTEGRITY_CHECK as CONF_DB_INTEGRITY_CHECK, DOMAIN as DOMAIN, INTEGRATION_PLATFORM_COMPILE_STATISTICS as INTEGRATION_PLATFORM_COMPILE_STATISTICS, INTEGRATION_PLATFORM_METHODS as INTEGRATION_PLATFORM_METHODS, SQLITE_URL_PREFIX as SQLITE_URL_PREFIX, SupportedDialect as SupportedDialect
|
3
3
|
from .core import Recorder as Recorder
|
4
4
|
from .services import async_register_services as async_register_services
|
@@ -13,7 +13,7 @@ from sqlalchemy.dialects import sqlite
|
|
13
13
|
from sqlalchemy.engine.interfaces import Dialect as Dialect
|
14
14
|
from sqlalchemy.orm import DeclarativeBase, Mapped as Mapped
|
15
15
|
from sqlalchemy.types import TypeDecorator as TypeDecorator
|
16
|
-
from typing import Any, Self
|
16
|
+
from typing import Any, Final, Self
|
17
17
|
|
18
18
|
class Base(DeclarativeBase): ...
|
19
19
|
class LegacyBase(DeclarativeBase): ...
|
@@ -44,7 +44,8 @@ METADATA_ID_LAST_UPDATED_INDEX_TS: str
|
|
44
44
|
EVENTS_CONTEXT_ID_BIN_INDEX: str
|
45
45
|
STATES_CONTEXT_ID_BIN_INDEX: str
|
46
46
|
LEGACY_STATES_EVENT_ID_INDEX: str
|
47
|
-
|
47
|
+
LEGACY_STATES_ENTITY_ID_LAST_UPDATED_TS_INDEX: str
|
48
|
+
LEGACY_MAX_LENGTH_EVENT_CONTEXT_ID: Final[int]
|
48
49
|
CONTEXT_ID_BIN_MAX_LENGTH: int
|
49
50
|
MYSQL_COLLATE: str
|
50
51
|
MYSQL_DEFAULT_CHARSET: str
|
@@ -110,6 +111,12 @@ class Events(Base):
|
|
110
111
|
def from_event(event: Event) -> Events: ...
|
111
112
|
def to_native(self, validate_entity_id: bool = True) -> Event | None: ...
|
112
113
|
|
114
|
+
class LegacyEvents(LegacyBase):
|
115
|
+
__table_args__: Incomplete
|
116
|
+
__tablename__ = TABLE_EVENTS
|
117
|
+
event_id: Mapped[int]
|
118
|
+
context_id: Mapped[str | None]
|
119
|
+
|
113
120
|
class EventData(Base):
|
114
121
|
__table_args__: Incomplete
|
115
122
|
__tablename__ = TABLE_EVENT_DATA
|
@@ -163,6 +170,14 @@ class States(Base):
|
|
163
170
|
def from_event(event: Event[EventStateChangedData]) -> States: ...
|
164
171
|
def to_native(self, validate_entity_id: bool = True) -> State | None: ...
|
165
172
|
|
173
|
+
class LegacyStates(LegacyBase):
|
174
|
+
__table_args__: Incomplete
|
175
|
+
__tablename__ = TABLE_STATES
|
176
|
+
state_id: Mapped[int]
|
177
|
+
entity_id: Mapped[str | None]
|
178
|
+
last_updated_ts: Mapped[float | None]
|
179
|
+
context_id: Mapped[str | None]
|
180
|
+
|
166
181
|
class StateAttributes(Base):
|
167
182
|
__table_args__: Incomplete
|
168
183
|
__tablename__ = TABLE_STATE_ATTRIBUTES
|
@@ -199,9 +214,9 @@ class StatisticsBase:
|
|
199
214
|
sum: Mapped[float | None]
|
200
215
|
duration: timedelta
|
201
216
|
@classmethod
|
202
|
-
def from_stats(cls, metadata_id: int, stats: StatisticData) -> Self: ...
|
217
|
+
def from_stats(cls, metadata_id: int, stats: StatisticData, now_timestamp: float | None = None) -> Self: ...
|
203
218
|
@classmethod
|
204
|
-
def from_stats_ts(cls, metadata_id: int, stats: StatisticDataTimestamp) -> Self: ...
|
219
|
+
def from_stats_ts(cls, metadata_id: int, stats: StatisticDataTimestamp, now_timestamp: float | None = None) -> Self: ...
|
205
220
|
|
206
221
|
class Statistics(Base, StatisticsBase):
|
207
222
|
duration: Incomplete
|
@@ -1,6 +1,6 @@
|
|
1
|
-
from ..db_schema import
|
1
|
+
from ..db_schema import StateAttributes as StateAttributes, States as States
|
2
2
|
from ..filters import Filters as Filters
|
3
|
-
from ..models import
|
3
|
+
from ..models import process_timestamp_to_utc_isoformat as process_timestamp_to_utc_isoformat
|
4
4
|
from ..models.legacy import LegacyLazyState as LegacyLazyState, legacy_row_to_compressed_state as legacy_row_to_compressed_state
|
5
5
|
from ..util import execute_stmt_lambda_element as execute_stmt_lambda_element, session_scope as session_scope
|
6
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
|
@@ -42,7 +42,7 @@ def _state_changed_during_period_stmt(start_time: datetime, end_time: datetime |
|
|
42
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]]: ...
|
43
43
|
def _get_last_state_changes_stmt(number_of_states: int, entity_id: str) -> StatementLambdaElement: ...
|
44
44
|
def get_last_state_changes(hass: HomeAssistant, number_of_states: int, entity_id: str) -> dict[str, list[State]]: ...
|
45
|
-
def _get_states_for_entities_stmt(
|
46
|
-
def _get_rows_with_session(hass: HomeAssistant, session: Session, utc_point_in_time: datetime, entity_ids: list[str],
|
45
|
+
def _get_states_for_entities_stmt(run_start_ts: float, utc_point_in_time: datetime, entity_ids: list[str], no_attributes: bool) -> StatementLambdaElement: ...
|
46
|
+
def _get_rows_with_session(hass: HomeAssistant, session: Session, utc_point_in_time: datetime, entity_ids: list[str], *, no_attributes: bool = False) -> Iterable[Row]: ...
|
47
47
|
def _get_single_entity_states_stmt(utc_point_in_time: datetime, entity_id: str, no_attributes: bool = False) -> StatementLambdaElement: ...
|
48
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,7 +1,7 @@
|
|
1
1
|
from ..const import LAST_REPORTED_SCHEMA_VERSION as LAST_REPORTED_SCHEMA_VERSION
|
2
|
-
from ..db_schema import SHARED_ATTR_OR_LEGACY_ATTRIBUTES as SHARED_ATTR_OR_LEGACY_ATTRIBUTES, StateAttributes as StateAttributes, States as States
|
2
|
+
from ..db_schema import SHARED_ATTR_OR_LEGACY_ATTRIBUTES as SHARED_ATTR_OR_LEGACY_ATTRIBUTES, StateAttributes as StateAttributes, States as States, StatesMeta as StatesMeta
|
3
3
|
from ..filters import Filters as Filters
|
4
|
-
from ..models import LazyState as LazyState, datetime_to_timestamp_or_none as datetime_to_timestamp_or_none, extract_metadata_ids as extract_metadata_ids,
|
4
|
+
from ..models import LazyState as LazyState, datetime_to_timestamp_or_none as datetime_to_timestamp_or_none, extract_metadata_ids as extract_metadata_ids, row_to_compressed_state as row_to_compressed_state
|
5
5
|
from ..util import execute_stmt_lambda_element as execute_stmt_lambda_element, session_scope as session_scope
|
6
6
|
from .const import LAST_CHANGED_KEY as LAST_CHANGED_KEY, NEED_ATTRIBUTE_DOMAINS as NEED_ATTRIBUTE_DOMAINS, SIGNIFICANT_DOMAINS as SIGNIFICANT_DOMAINS, STATE_KEY as STATE_KEY
|
7
7
|
from _typeshed import Incomplete
|
@@ -29,8 +29,8 @@ def state_changes_during_period(hass: HomeAssistant, start_time: datetime, end_t
|
|
29
29
|
def _get_last_state_changes_single_stmt(metadata_id: int) -> Select: ...
|
30
30
|
def _get_last_state_changes_multiple_stmt(number_of_states: int, metadata_id: int, include_last_reported: bool) -> Select: ...
|
31
31
|
def get_last_state_changes(hass: HomeAssistant, number_of_states: int, entity_id: str) -> dict[str, list[State]]: ...
|
32
|
-
def _get_start_time_state_for_entities_stmt(
|
33
|
-
def
|
34
|
-
def _get_start_time_state_stmt(
|
32
|
+
def _get_start_time_state_for_entities_stmt(epoch_time: float, metadata_ids: list[int], no_attributes: bool, include_last_changed: bool) -> Select: ...
|
33
|
+
def _get_oldest_possible_ts(hass: HomeAssistant, utc_point_in_time: datetime) -> float | None: ...
|
34
|
+
def _get_start_time_state_stmt(epoch_time: float, single_metadata_id: int | None, metadata_ids: list[int], no_attributes: bool, include_last_changed: bool) -> Select: ...
|
35
35
|
def _get_single_entity_start_time_stmt(epoch_time: float, metadata_id: int, no_attributes: bool, include_last_changed: bool, include_last_reported: bool) -> Select: ...
|
36
36
|
def _sorted_states_to_dict(states: Iterable[Row], start_time_ts: float | None, entity_ids: list[str], entity_id_to_metadata_id: dict[str, int | None], minimal_response: bool = False, compressed_state_format: bool = False, descending: bool = False, no_attributes: bool = False) -> dict[str, list[State | dict[str, Any]]]: ...
|
@@ -2,7 +2,7 @@ import abc
|
|
2
2
|
from . import Recorder as Recorder
|
3
3
|
from .auto_repairs.statistics.duplicates import delete_statistics_duplicates as delete_statistics_duplicates, delete_statistics_meta_duplicates as delete_statistics_meta_duplicates
|
4
4
|
from .const import CONTEXT_ID_AS_BINARY_SCHEMA_VERSION as CONTEXT_ID_AS_BINARY_SCHEMA_VERSION, EVENT_TYPE_IDS_SCHEMA_VERSION as EVENT_TYPE_IDS_SCHEMA_VERSION, LEGACY_STATES_EVENT_ID_INDEX_SCHEMA_VERSION as LEGACY_STATES_EVENT_ID_INDEX_SCHEMA_VERSION, STATES_META_SCHEMA_VERSION as STATES_META_SCHEMA_VERSION, SupportedDialect as SupportedDialect
|
5
|
-
from .db_schema import BIG_INTEGER_SQL as BIG_INTEGER_SQL, Base as Base, CONTEXT_ID_BIN_MAX_LENGTH as CONTEXT_ID_BIN_MAX_LENGTH, DOUBLE_PRECISION_TYPE_SQL as DOUBLE_PRECISION_TYPE_SQL, EventTypes as EventTypes, Events as Events,
|
5
|
+
from .db_schema import BIG_INTEGER_SQL as BIG_INTEGER_SQL, Base as Base, CONTEXT_ID_BIN_MAX_LENGTH as CONTEXT_ID_BIN_MAX_LENGTH, DOUBLE_PRECISION_TYPE_SQL as DOUBLE_PRECISION_TYPE_SQL, EventTypes as EventTypes, Events as Events, LEGACY_STATES_ENTITY_ID_LAST_UPDATED_TS_INDEX as LEGACY_STATES_ENTITY_ID_LAST_UPDATED_TS_INDEX, LEGACY_STATES_EVENT_ID_INDEX as LEGACY_STATES_EVENT_ID_INDEX, LegacyBase as LegacyBase, MYSQL_COLLATE as MYSQL_COLLATE, MYSQL_DEFAULT_CHARSET as MYSQL_DEFAULT_CHARSET, MigrationChanges as MigrationChanges, SCHEMA_VERSION as SCHEMA_VERSION, STATISTICS_TABLES as STATISTICS_TABLES, SchemaChanges as SchemaChanges, States as States, StatesMeta as StatesMeta, Statistics as Statistics, StatisticsMeta as StatisticsMeta, StatisticsRuns as StatisticsRuns, StatisticsShortTerm as StatisticsShortTerm, TABLE_STATES as TABLE_STATES
|
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, get_migration_changes as get_migration_changes, 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_entity_ids as has_used_states_entity_ids, 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
|
@@ -17,6 +17,7 @@ from homeassistant.core import HomeAssistant as HomeAssistant
|
|
17
17
|
from homeassistant.util.enum import try_parse_enum as try_parse_enum
|
18
18
|
from homeassistant.util.ulid import ulid_at_time as ulid_at_time, ulid_to_bytes as ulid_to_bytes
|
19
19
|
from sqlalchemy.engine import CursorResult as CursorResult, Engine as Engine
|
20
|
+
from sqlalchemy.orm import DeclarativeBase as DeclarativeBase
|
20
21
|
from sqlalchemy.orm.session import Session as Session
|
21
22
|
from sqlalchemy.schema import AddConstraint
|
22
23
|
from sqlalchemy.sql.lambdas import StatementLambdaElement as StatementLambdaElement
|
@@ -42,18 +43,22 @@ _POSTGRESQL_COLUMN_TYPES: Incomplete
|
|
42
43
|
_SQLITE_COLUMN_TYPES: Incomplete
|
43
44
|
_COLUMN_TYPES_FOR_DIALECT: dict[SupportedDialect | None, _ColumnTypesForDialect]
|
44
45
|
|
46
|
+
def _unindexable_legacy_column(instance: Recorder, base: type[DeclarativeBase], err: Exception) -> bool: ...
|
45
47
|
def raise_if_exception_missing_str(ex: Exception, match_substrs: Iterable[str]) -> None: ...
|
46
|
-
def
|
47
|
-
def
|
48
|
+
def _get_initial_schema_version(session: Session) -> int | None: ...
|
49
|
+
def get_initial_schema_version(session_maker: Callable[[], Session]) -> int | None: ...
|
50
|
+
def _get_current_schema_version(session: Session) -> int | None: ...
|
51
|
+
def get_current_schema_version(session_maker: Callable[[], Session]) -> int | None: ...
|
48
52
|
|
49
53
|
@dataclass(frozen=True, kw_only=True)
|
50
54
|
class SchemaValidationStatus:
|
51
55
|
current_version: int
|
56
|
+
initial_version: int
|
52
57
|
migration_needed: bool
|
53
58
|
non_live_data_migration_needed: bool
|
54
59
|
schema_errors: set[str]
|
55
60
|
start_version: int
|
56
|
-
def __init__(self, *, current_version, migration_needed, non_live_data_migration_needed, schema_errors, start_version) -> None: ...
|
61
|
+
def __init__(self, *, current_version, initial_version, migration_needed, non_live_data_migration_needed, schema_errors, start_version) -> None: ...
|
57
62
|
|
58
63
|
def _schema_is_current(current_version: int) -> bool: ...
|
59
64
|
def validate_db_schema(hass: HomeAssistant, instance: Recorder, session_maker: Callable[[], Session]) -> SchemaValidationStatus | None: ...
|
@@ -64,10 +69,10 @@ def _migrate_schema(instance: Recorder, hass: HomeAssistant, engine: Engine, ses
|
|
64
69
|
def migrate_schema_non_live(instance: Recorder, hass: HomeAssistant, engine: Engine, session_maker: Callable[[], Session], schema_status: SchemaValidationStatus) -> SchemaValidationStatus: ...
|
65
70
|
def migrate_schema_live(instance: Recorder, hass: HomeAssistant, engine: Engine, session_maker: Callable[[], Session], schema_status: SchemaValidationStatus) -> SchemaValidationStatus: ...
|
66
71
|
def _get_migration_changes(session: Session) -> dict[str, int]: ...
|
67
|
-
def non_live_data_migration_needed(instance: Recorder, session_maker: Callable[[], Session],
|
72
|
+
def non_live_data_migration_needed(instance: Recorder, session_maker: Callable[[], Session], *, initial_schema_version: int, start_schema_version: int) -> bool: ...
|
68
73
|
def migrate_data_non_live(instance: Recorder, session_maker: Callable[[], Session], schema_status: SchemaValidationStatus) -> None: ...
|
69
74
|
def migrate_data_live(instance: Recorder, session_maker: Callable[[], Session], schema_status: SchemaValidationStatus) -> None: ...
|
70
|
-
def _create_index(session_maker: Callable[[], Session], table_name: str, index_name: str) -> None: ...
|
75
|
+
def _create_index(instance: Recorder, session_maker: Callable[[], Session], table_name: str, index_name: str, *, base: type[DeclarativeBase] = ...) -> None: ...
|
71
76
|
def _execute_or_collect_error(session_maker: Callable[[], Session], query: str, errors: list[str]) -> bool: ...
|
72
77
|
def _drop_index(session_maker: Callable[[], Session], table_name: str, index_name: str, quiet: bool | None = None) -> None: ...
|
73
78
|
def _add_columns(session_maker: Callable[[], Session], table_name: str, columns_def: list[str]) -> None: ...
|
@@ -238,6 +243,9 @@ class _SchemaVersion46Migrator(_SchemaVersionMigrator, target_version=46):
|
|
238
243
|
class _SchemaVersion47Migrator(_SchemaVersionMigrator, target_version=47):
|
239
244
|
def _apply_update(self) -> None: ...
|
240
245
|
|
246
|
+
class _SchemaVersion48Migrator(_SchemaVersionMigrator, target_version=48):
|
247
|
+
def _apply_update(self) -> None: ...
|
248
|
+
|
241
249
|
def _migrate_statistics_columns_to_timestamp_removing_duplicates(hass: HomeAssistant, instance: Recorder, session_maker: Callable[[], Session], engine: Engine) -> None: ...
|
242
250
|
def _correct_table_character_set_and_collation(table: str, session_maker: Callable[[], Session]) -> None: ...
|
243
251
|
def _wipe_old_string_time_columns(instance: Recorder, engine: Engine, session: Session) -> None: ...
|
@@ -269,13 +277,15 @@ class DataMigrationStatus:
|
|
269
277
|
def __init__(self, *, needs_migrate, migration_done) -> None: ...
|
270
278
|
|
271
279
|
class BaseMigration(ABC, metaclass=abc.ABCMeta):
|
272
|
-
index_to_drop: tuple[str, str] | None
|
280
|
+
index_to_drop: tuple[str, str, type[DeclarativeBase]] | None
|
273
281
|
required_schema_version: int
|
282
|
+
max_initial_schema_version: int
|
274
283
|
migration_version: int
|
275
284
|
migration_id: str
|
276
|
-
|
285
|
+
initial_schema_version: Incomplete
|
286
|
+
start_schema_version: Incomplete
|
277
287
|
migration_changes: Incomplete
|
278
|
-
def __init__(self,
|
288
|
+
def __init__(self, *, initial_schema_version: int, start_schema_version: int, migration_changes: dict[str, int]) -> None: ...
|
279
289
|
@abstractmethod
|
280
290
|
def migrate_data(self, instance: Recorder) -> bool: ...
|
281
291
|
def _migrate_data(self, instance: Recorder) -> bool: ...
|
@@ -285,10 +295,12 @@ class BaseMigration(ABC, metaclass=abc.ABCMeta):
|
|
285
295
|
@abstractmethod
|
286
296
|
def needs_migrate_impl(self, instance: Recorder, session: Session) -> DataMigrationStatus: ...
|
287
297
|
def needs_migrate(self, instance: Recorder, session: Session) -> bool: ...
|
298
|
+
def _has_needed_index(self, session: Session) -> bool | None: ...
|
288
299
|
|
289
300
|
class BaseOffLineMigration(BaseMigration, metaclass=abc.ABCMeta):
|
290
301
|
def migrate_all(self, instance: Recorder, session_maker: Callable[[], Session]) -> None: ...
|
291
302
|
def migrate_data(self, instance: Recorder) -> bool: ...
|
303
|
+
def _ensure_index_exists(self, instance: Recorder) -> None: ...
|
292
304
|
|
293
305
|
class BaseRunTimeMigration(BaseMigration, metaclass=abc.ABCMeta):
|
294
306
|
task = MigrationTask
|
@@ -302,6 +314,7 @@ class BaseMigrationWithQuery(BaseMigration, metaclass=abc.ABCMeta):
|
|
302
314
|
|
303
315
|
class StatesContextIDMigration(BaseMigrationWithQuery, BaseOffLineMigration):
|
304
316
|
required_schema_version = CONTEXT_ID_AS_BINARY_SCHEMA_VERSION
|
317
|
+
max_initial_schema_version: Incomplete
|
305
318
|
migration_id: str
|
306
319
|
migration_version: int
|
307
320
|
index_to_drop: Incomplete
|
@@ -310,30 +323,30 @@ class StatesContextIDMigration(BaseMigrationWithQuery, BaseOffLineMigration):
|
|
310
323
|
|
311
324
|
class EventsContextIDMigration(BaseMigrationWithQuery, BaseOffLineMigration):
|
312
325
|
required_schema_version = CONTEXT_ID_AS_BINARY_SCHEMA_VERSION
|
326
|
+
max_initial_schema_version: Incomplete
|
313
327
|
migration_id: str
|
314
328
|
migration_version: int
|
315
329
|
index_to_drop: Incomplete
|
316
330
|
def migrate_data_impl(self, instance: Recorder) -> DataMigrationStatus: ...
|
317
331
|
def needs_migrate_query(self) -> StatementLambdaElement: ...
|
318
332
|
|
319
|
-
class EventTypeIDMigration(BaseMigrationWithQuery,
|
333
|
+
class EventTypeIDMigration(BaseMigrationWithQuery, BaseOffLineMigration):
|
320
334
|
required_schema_version = EVENT_TYPE_IDS_SCHEMA_VERSION
|
335
|
+
max_initial_schema_version: Incomplete
|
321
336
|
migration_id: str
|
322
|
-
task = CommitBeforeMigrationTask
|
323
337
|
def migrate_data_impl(self, instance: Recorder) -> DataMigrationStatus: ...
|
324
|
-
def migration_done(self, instance: Recorder, session: Session) -> None: ...
|
325
338
|
def needs_migrate_query(self) -> StatementLambdaElement: ...
|
326
339
|
|
327
|
-
class EntityIDMigration(BaseMigrationWithQuery,
|
340
|
+
class EntityIDMigration(BaseMigrationWithQuery, BaseOffLineMigration):
|
328
341
|
required_schema_version = STATES_META_SCHEMA_VERSION
|
342
|
+
max_initial_schema_version: Incomplete
|
329
343
|
migration_id: str
|
330
|
-
task = CommitBeforeMigrationTask
|
331
344
|
def migrate_data_impl(self, instance: Recorder) -> DataMigrationStatus: ...
|
332
|
-
def migration_done(self, instance: Recorder, session: Session) -> None: ...
|
333
345
|
def needs_migrate_query(self) -> StatementLambdaElement: ...
|
334
346
|
|
335
347
|
class EventIDPostMigration(BaseRunTimeMigration):
|
336
348
|
migration_id: str
|
349
|
+
max_initial_schema_version: Incomplete
|
337
350
|
task = MigrationTask
|
338
351
|
migration_version: int
|
339
352
|
def migrate_data_impl(self, instance: Recorder) -> DataMigrationStatus: ...
|
@@ -341,15 +354,15 @@ class EventIDPostMigration(BaseRunTimeMigration):
|
|
341
354
|
def _legacy_event_id_foreign_key_exists(instance: Recorder) -> bool: ...
|
342
355
|
def needs_migrate_impl(self, instance: Recorder, session: Session) -> DataMigrationStatus: ...
|
343
356
|
|
344
|
-
class EntityIDPostMigration(BaseMigrationWithQuery,
|
357
|
+
class EntityIDPostMigration(BaseMigrationWithQuery, BaseOffLineMigration):
|
345
358
|
migration_id: str
|
346
|
-
|
359
|
+
max_initial_schema_version: Incomplete
|
347
360
|
index_to_drop: Incomplete
|
348
361
|
def migrate_data_impl(self, instance: Recorder) -> DataMigrationStatus: ...
|
349
362
|
def needs_migrate_query(self) -> StatementLambdaElement: ...
|
350
363
|
|
351
|
-
NON_LIVE_DATA_MIGRATORS:
|
352
|
-
LIVE_DATA_MIGRATORS:
|
364
|
+
NON_LIVE_DATA_MIGRATORS: tuple[type[BaseOffLineMigration], ...]
|
365
|
+
LIVE_DATA_MIGRATORS: tuple[type[BaseRunTimeMigration], ...]
|
353
366
|
|
354
367
|
def _mark_migration_done(session: Session, migration: type[BaseMigration]) -> None: ...
|
355
368
|
def rebuild_sqlite_table(session_maker: Callable[[], Session], engine: Engine, table: type[Base]) -> bool: ...
|
@@ -26,6 +26,9 @@ class LazyState(State):
|
|
26
26
|
def _last_reported_ts(self) -> float | None: ...
|
27
27
|
def last_reported(self) -> datetime: ...
|
28
28
|
def last_updated(self) -> datetime: ...
|
29
|
+
def last_updated_timestamp(self) -> float: ...
|
30
|
+
def last_changed_timestamp(self) -> float: ...
|
31
|
+
def last_reported_timestamp(self) -> float: ...
|
29
32
|
def as_dict(self) -> dict[str, Any]: ...
|
30
33
|
|
31
34
|
def row_to_compressed_state(row: Row, attr_cache: dict[str, dict[str, Any]], start_time_ts: float | None, entity_id: str, state: str, last_updated_ts: float | None, no_attributes: bool) -> dict[str, Any]: ...
|