homeassistant-stubs 2025.6.3__py3-none-any.whl → 2025.7.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of homeassistant-stubs might be problematic. Click here for more details.
- homeassistant-stubs/bootstrap.pyi +1 -1
- homeassistant-stubs/components/abode/__init__.pyi +3 -12
- homeassistant-stubs/components/abode/services.pyi +20 -0
- homeassistant-stubs/components/adax/sensor.pyi +29 -0
- homeassistant-stubs/components/airly/config_flow.pyi +1 -1
- homeassistant-stubs/components/airq/coordinator.pyi +1 -1
- homeassistant-stubs/components/airthings/__init__.pyi +3 -5
- homeassistant-stubs/components/airthings/coordinator.pyi +13 -0
- homeassistant-stubs/components/airthings/sensor.pyi +5 -4
- homeassistant-stubs/components/alexa_devices/binary_sensor.pyi +2 -1
- homeassistant-stubs/components/alexa_devices/notify.pyi +2 -0
- homeassistant-stubs/components/alexa_devices/sensor.pyi +29 -0
- homeassistant-stubs/components/alexa_devices/switch.pyi +2 -0
- homeassistant-stubs/components/alexa_devices/utils.pyi +7 -0
- homeassistant-stubs/components/altruist/__init__.pyi +9 -0
- homeassistant-stubs/components/altruist/config_flow.pyi +15 -0
- homeassistant-stubs/components/altruist/const.pyi +2 -0
- homeassistant-stubs/components/altruist/coordinator.pyi +19 -0
- homeassistant-stubs/components/altruist/sensor.pyi +34 -0
- homeassistant-stubs/components/amcrest/__init__.pyi +4 -7
- homeassistant-stubs/components/amcrest/services.pyi +13 -0
- homeassistant-stubs/components/analytics/analytics.pyi +3 -1
- homeassistant-stubs/components/android_ip_webcam/camera.pyi +4 -0
- homeassistant-stubs/components/apcupsd/sensor.pyi +1 -1
- homeassistant-stubs/components/assist_satellite/__init__.pyi +2 -2
- homeassistant-stubs/components/assist_satellite/entity.pyi +13 -1
- homeassistant-stubs/components/axis/hub/hub.pyi +1 -1
- homeassistant-stubs/components/camera/__init__.pyi +0 -2
- homeassistant-stubs/components/camera/webrtc.pyi +1 -0
- homeassistant-stubs/components/climate/__init__.pyi +0 -2
- homeassistant-stubs/components/command_line/notify.pyi +1 -2
- homeassistant-stubs/components/command_line/sensor.pyi +1 -2
- homeassistant-stubs/components/command_line/utils.pyi +5 -2
- homeassistant-stubs/components/deconz/logbook.pyi +1 -1
- homeassistant-stubs/components/derivative/config_flow.pyi +1 -1
- homeassistant-stubs/components/derivative/const.pyi +1 -0
- homeassistant-stubs/components/derivative/sensor.pyi +9 -4
- homeassistant-stubs/components/device_automation/condition.pyi +17 -4
- homeassistant-stubs/components/devolo_home_control/__init__.pyi +3 -2
- homeassistant-stubs/components/devolo_home_control/climate.pyi +1 -1
- homeassistant-stubs/components/devolo_home_control/const.pyi +0 -1
- homeassistant-stubs/components/devolo_home_control/cover.pyi +1 -1
- homeassistant-stubs/components/devolo_home_control/entity.pyi +6 -0
- homeassistant-stubs/components/devolo_home_control/light.pyi +1 -1
- homeassistant-stubs/components/devolo_home_control/siren.pyi +1 -1
- homeassistant-stubs/components/devolo_home_network/device_tracker.pyi +2 -0
- homeassistant-stubs/components/dnsip/sensor.pyi +3 -2
- homeassistant-stubs/components/downloader/__init__.pyi +1 -1
- homeassistant-stubs/components/downloader/services.pyi +3 -2
- homeassistant-stubs/components/ecovacs/binary_sensor.pyi +4 -4
- homeassistant-stubs/components/ecovacs/entity.pyi +9 -12
- homeassistant-stubs/components/ecovacs/number.pyi +4 -4
- homeassistant-stubs/components/ecovacs/select.pyi +5 -4
- homeassistant-stubs/components/ecovacs/sensor.pyi +3 -3
- homeassistant-stubs/components/eheimdigital/number.pyi +8 -9
- homeassistant-stubs/components/eheimdigital/select.pyi +8 -9
- homeassistant-stubs/components/eheimdigital/sensor.pyi +7 -8
- homeassistant-stubs/components/eheimdigital/time.pyi +8 -9
- homeassistant-stubs/components/elkm1/__init__.pyi +4 -9
- homeassistant-stubs/components/elkm1/services.pyi +21 -0
- homeassistant-stubs/components/enphase_envoy/__init__.pyi +2 -2
- homeassistant-stubs/components/enphase_envoy/config_flow.pyi +1 -1
- homeassistant-stubs/components/enphase_envoy/diagnostics.pyi +1 -0
- homeassistant-stubs/components/enphase_envoy/sensor.pyi +1 -1
- homeassistant-stubs/components/eq3btsmart/climate.pyi +6 -8
- homeassistant-stubs/components/eq3btsmart/const.pyi +3 -2
- homeassistant-stubs/components/eq3btsmart/entity.pyi +5 -1
- homeassistant-stubs/components/eq3btsmart/number.pyi +3 -3
- homeassistant-stubs/components/eq3btsmart/switch.pyi +5 -3
- homeassistant-stubs/components/esphome/entity.pyi +2 -1
- homeassistant-stubs/components/esphome/entry_data.pyi +3 -0
- homeassistant-stubs/components/esphome/sensor.pyi +2 -1
- homeassistant-stubs/components/evohome/water_heater.pyi +1 -1
- homeassistant-stubs/components/fritz/binary_sensor.pyi +2 -1
- homeassistant-stubs/components/fritz/button.pyi +3 -1
- homeassistant-stubs/components/fritz/coordinator.pyi +8 -82
- homeassistant-stubs/components/fritz/device_tracker.pyi +3 -1
- homeassistant-stubs/components/fritz/entity.pyi +2 -1
- homeassistant-stubs/components/fritz/helpers.pyi +9 -0
- homeassistant-stubs/components/fritz/models.pyi +78 -0
- homeassistant-stubs/components/fritz/sensor.pyi +2 -1
- homeassistant-stubs/components/fritz/services.pyi +3 -2
- homeassistant-stubs/components/fritz/switch.pyi +3 -1
- homeassistant-stubs/components/fully_kiosk/services.pyi +7 -2
- homeassistant-stubs/components/go2rtc/__init__.pyi +10 -4
- homeassistant-stubs/components/google/__init__.pyi +3 -9
- homeassistant-stubs/components/google_assistant_sdk/__init__.pyi +3 -7
- homeassistant-stubs/components/google_assistant_sdk/services.pyi +13 -0
- homeassistant-stubs/components/google_photos/services.pyi +4 -2
- homeassistant-stubs/components/google_sheets/__init__.pyi +7 -10
- homeassistant-stubs/components/google_sheets/services.pyi +18 -0
- homeassistant-stubs/components/group/sensor.pyi +1 -1
- homeassistant-stubs/components/habitica/services.pyi +8 -1
- homeassistant-stubs/components/here_travel_time/model.pyi +2 -1
- homeassistant-stubs/components/home_connect/diagnostics.pyi +2 -0
- homeassistant-stubs/components/homeassistant/__init__.pyi +2 -3
- homeassistant-stubs/components/homeassistant_hardware/firmware_config_flow.pyi +13 -7
- homeassistant-stubs/components/homeassistant_hardware/update.pyi +2 -6
- homeassistant-stubs/components/homeassistant_hardware/util.pyi +3 -1
- homeassistant-stubs/components/homeassistant_sky_connect/config_flow.pyi +9 -5
- homeassistant-stubs/components/homeassistant_yellow/config_flow.pyi +12 -5
- homeassistant-stubs/components/homee/config_flow.pyi +1 -0
- homeassistant-stubs/components/homee/diagnostics.pyi +12 -0
- homeassistant-stubs/components/homee/entity.pyi +3 -2
- homeassistant-stubs/components/homee/event.pyi +8 -4
- homeassistant-stubs/components/homee/siren.pyi +19 -0
- homeassistant-stubs/components/homewizard/select.pyi +35 -0
- homeassistant-stubs/components/husqvarna_automower/const.pyi +3 -0
- homeassistant-stubs/components/husqvarna_automower/lawn_mower.pyi +3 -1
- homeassistant-stubs/components/husqvarna_automower/sensor.pyi +1 -1
- homeassistant-stubs/components/image/__init__.pyi +2 -0
- homeassistant-stubs/components/immich/coordinator.pyi +2 -1
- homeassistant-stubs/components/immich/update.pyi +21 -0
- homeassistant-stubs/components/isy994/__init__.pyi +3 -1
- homeassistant-stubs/components/isy994/services.pyi +0 -2
- homeassistant-stubs/components/jewish_calendar/__init__.pyi +1 -1
- homeassistant-stubs/components/jewish_calendar/{service.pyi → services.pyi} +2 -1
- homeassistant-stubs/components/kaleidescape/__init__.pyi +4 -4
- homeassistant-stubs/components/kaleidescape/media_player.pyi +2 -3
- homeassistant-stubs/components/kaleidescape/remote.pyi +2 -3
- homeassistant-stubs/components/kaleidescape/sensor.pyi +2 -3
- homeassistant-stubs/components/lacrosse_view/__init__.pyi +3 -5
- homeassistant-stubs/components/lacrosse_view/coordinator.pyi +3 -2
- homeassistant-stubs/components/lacrosse_view/diagnostics.pyi +2 -4
- homeassistant-stubs/components/lacrosse_view/sensor.pyi +2 -2
- homeassistant-stubs/components/lamarzocco/entity.pyi +3 -0
- homeassistant-stubs/components/lamarzocco/sensor.pyi +1 -0
- homeassistant-stubs/components/lametric/__init__.pyi +3 -4
- homeassistant-stubs/components/lametric/button.pyi +2 -4
- homeassistant-stubs/components/lametric/coordinator.pyi +3 -2
- homeassistant-stubs/components/lametric/diagnostics.pyi +2 -4
- homeassistant-stubs/components/lametric/entity.pyi +1 -1
- homeassistant-stubs/components/lametric/helpers.pyi +1 -1
- homeassistant-stubs/components/lametric/notify.pyi +2 -2
- homeassistant-stubs/components/lametric/number.pyi +2 -4
- homeassistant-stubs/components/lametric/select.pyi +2 -4
- homeassistant-stubs/components/lametric/sensor.pyi +2 -4
- homeassistant-stubs/components/lametric/switch.pyi +2 -4
- homeassistant-stubs/components/lametric/update.pyi +17 -0
- homeassistant-stubs/components/laundrify/__init__.pyi +4 -6
- homeassistant-stubs/components/laundrify/binary_sensor.pyi +2 -3
- homeassistant-stubs/components/laundrify/coordinator.pyi +1 -0
- homeassistant-stubs/components/laundrify/sensor.pyi +2 -3
- homeassistant-stubs/components/lcn/__init__.pyi +9 -10
- homeassistant-stubs/components/lcn/binary_sensor.pyi +9 -8
- homeassistant-stubs/components/lcn/climate.pyi +5 -6
- homeassistant-stubs/components/lcn/const.pyi +0 -4
- homeassistant-stubs/components/lcn/cover.pyi +6 -7
- homeassistant-stubs/components/lcn/entity.pyi +2 -3
- homeassistant-stubs/components/lcn/helpers.pyi +15 -5
- homeassistant-stubs/components/lcn/light.pyi +6 -7
- homeassistant-stubs/components/lcn/scene.pyi +5 -5
- homeassistant-stubs/components/lcn/sensor.pyi +7 -7
- homeassistant-stubs/components/lcn/services.pyi +5 -4
- homeassistant-stubs/components/lcn/switch.pyi +8 -9
- homeassistant-stubs/components/lcn/websocket.pyi +12 -13
- homeassistant-stubs/components/ld2410_ble/__init__.pyi +4 -6
- homeassistant-stubs/components/ld2410_ble/binary_sensor.pyi +2 -4
- homeassistant-stubs/components/ld2410_ble/coordinator.pyi +3 -3
- homeassistant-stubs/components/ld2410_ble/models.pyi +2 -0
- homeassistant-stubs/components/ld2410_ble/sensor.pyi +4 -5
- homeassistant-stubs/components/led_ble/__init__.pyi +5 -6
- homeassistant-stubs/components/led_ble/light.pyi +3 -4
- homeassistant-stubs/components/led_ble/models.pyi +2 -0
- homeassistant-stubs/components/lifx/__init__.pyi +4 -5
- homeassistant-stubs/components/lifx/binary_sensor.pyi +3 -4
- homeassistant-stubs/components/lifx/button.pyi +3 -4
- homeassistant-stubs/components/lifx/const.pyi +3 -1
- homeassistant-stubs/components/lifx/coordinator.pyi +3 -2
- homeassistant-stubs/components/lifx/diagnostics.pyi +3 -4
- homeassistant-stubs/components/lifx/light.pyi +3 -4
- homeassistant-stubs/components/lifx/manager.pyi +2 -2
- homeassistant-stubs/components/lifx/migration.pyi +3 -3
- homeassistant-stubs/components/lifx/select.pyi +3 -4
- homeassistant-stubs/components/lifx/sensor.pyi +3 -4
- homeassistant-stubs/components/lifx/util.pyi +3 -3
- homeassistant-stubs/components/linear_garage_door/__init__.pyi +4 -5
- homeassistant-stubs/components/linear_garage_door/coordinator.pyi +3 -2
- homeassistant-stubs/components/linear_garage_door/cover.pyi +2 -4
- homeassistant-stubs/components/linear_garage_door/diagnostics.pyi +2 -4
- homeassistant-stubs/components/linear_garage_door/light.pyi +2 -4
- homeassistant-stubs/components/lookin/__init__.pyi +4 -5
- homeassistant-stubs/components/lookin/climate.pyi +3 -4
- homeassistant-stubs/components/lookin/coordinator.pyi +3 -3
- homeassistant-stubs/components/lookin/light.pyi +3 -4
- homeassistant-stubs/components/lookin/media_player.pyi +3 -4
- homeassistant-stubs/components/lookin/models.pyi +2 -0
- homeassistant-stubs/components/lookin/sensor.pyi +2 -4
- homeassistant-stubs/components/luftdaten/__init__.pyi +4 -6
- homeassistant-stubs/components/luftdaten/coordinator.pyi +15 -0
- homeassistant-stubs/components/luftdaten/diagnostics.pyi +3 -4
- homeassistant-stubs/components/luftdaten/sensor.pyi +4 -4
- homeassistant-stubs/components/matrix/__init__.pyi +2 -7
- homeassistant-stubs/components/matrix/const.pyi +3 -0
- homeassistant-stubs/components/matrix/services.pyi +12 -0
- homeassistant-stubs/components/matter/sensor.pyi +7 -2
- homeassistant-stubs/components/matter/vacuum.pyi +5 -5
- homeassistant-stubs/components/mealie/__init__.pyi +1 -1
- homeassistant-stubs/components/mealie/services.pyi +9 -3
- homeassistant-stubs/components/media_player/__init__.pyi +0 -2
- homeassistant-stubs/components/media_player/intent.pyi +1 -1
- homeassistant-stubs/components/media_source/local_source.pyi +2 -0
- homeassistant-stubs/components/metoffice/sensor.pyi +1 -1
- homeassistant-stubs/components/miele/const.pyi +24 -0
- homeassistant-stubs/components/miele/sensor.pyi +1 -2
- homeassistant-stubs/components/mqtt/config_flow.pyi +6 -1
- homeassistant-stubs/components/mqtt/sensor.pyi +1 -4
- homeassistant-stubs/components/music_assistant/__init__.pyi +5 -1
- homeassistant-stubs/components/music_assistant/button.pyi +15 -0
- homeassistant-stubs/components/music_assistant/helpers.pyi +5 -0
- homeassistant-stubs/components/music_assistant/media_player.pyi +4 -4
- homeassistant-stubs/components/nam/config_flow.pyi +3 -9
- homeassistant-stubs/components/nextdns/binary_sensor.pyi +6 -12
- homeassistant-stubs/components/nextdns/button.pyi +2 -9
- homeassistant-stubs/components/nextdns/coordinator.pyi +2 -7
- homeassistant-stubs/components/nextdns/entity.pyi +14 -0
- homeassistant-stubs/components/nextdns/sensor.pyi +8 -15
- homeassistant-stubs/components/nextdns/switch.pyi +3 -6
- homeassistant-stubs/components/nfandroidtv/__init__.pyi +0 -1
- homeassistant-stubs/components/nfandroidtv/notify.pyi +5 -4
- homeassistant-stubs/components/nordpool/services.pyi +2 -1
- homeassistant-stubs/components/ntfy/__init__.pyi +1 -3
- homeassistant-stubs/components/ntfy/config_flow.pyi +3 -0
- homeassistant-stubs/components/ntfy/coordinator.pyi +16 -0
- homeassistant-stubs/components/ntfy/notify.pyi +1 -1
- homeassistant-stubs/components/ntfy/sensor.pyi +56 -0
- homeassistant-stubs/components/ohme/services.pyi +2 -1
- homeassistant-stubs/components/onedrive/__init__.pyi +1 -1
- homeassistant-stubs/components/onedrive/services.pyi +3 -2
- homeassistant-stubs/components/onewire/binary_sensor.pyi +3 -2
- homeassistant-stubs/components/onewire/const.pyi +0 -1
- homeassistant-stubs/components/onewire/entity.pyi +2 -3
- homeassistant-stubs/components/onewire/switch.pyi +3 -2
- homeassistant-stubs/components/onkyo/__init__.pyi +1 -1
- homeassistant-stubs/components/onkyo/services.pyi +3 -2
- homeassistant-stubs/components/openai_conversation/__init__.pyi +4 -2
- homeassistant-stubs/components/openai_conversation/config_flow.pyi +19 -14
- homeassistant-stubs/components/openai_conversation/const.pyi +2 -0
- homeassistant-stubs/components/openai_conversation/conversation.pyi +4 -4
- homeassistant-stubs/components/overseerr/__init__.pyi +1 -1
- homeassistant-stubs/components/overseerr/services.pyi +6 -4
- homeassistant-stubs/components/paperless_ngx/__init__.pyi +1 -1
- homeassistant-stubs/components/paperless_ngx/config_flow.pyi +2 -2
- homeassistant-stubs/components/paperless_ngx/coordinator.pyi +3 -5
- homeassistant-stubs/components/paperless_ngx/entity.pyi +2 -5
- homeassistant-stubs/components/paperless_ngx/sensor.pyi +8 -8
- homeassistant-stubs/components/paperless_ngx/update.pyi +25 -0
- homeassistant-stubs/components/person/__init__.pyi +1 -1
- homeassistant-stubs/components/plugwise/climate.pyi +0 -1
- homeassistant-stubs/components/pushbullet/sensor.pyi +1 -1
- homeassistant-stubs/components/qbus/climate.pyi +3 -2
- homeassistant-stubs/components/qbus/cover.pyi +39 -0
- homeassistant-stubs/components/qbus/entity.pyi +7 -3
- homeassistant-stubs/components/qbus/light.pyi +4 -3
- homeassistant-stubs/components/qbus/scene.pyi +2 -2
- homeassistant-stubs/components/qbus/switch.pyi +3 -2
- homeassistant-stubs/components/recorder/__init__.pyi +1 -1
- homeassistant-stubs/components/recorder/services.pyi +7 -12
- homeassistant-stubs/components/reolink/__init__.pyi +1 -1
- homeassistant-stubs/components/reolink/config_flow.pyi +1 -1
- homeassistant-stubs/components/reolink/const.pyi +1 -0
- homeassistant-stubs/components/reolink/entity.pyi +1 -1
- homeassistant-stubs/components/reolink/host.pyi +1 -1
- homeassistant-stubs/components/reolink/services.pyi +2 -0
- homeassistant-stubs/components/rest/data.pyi +8 -6
- homeassistant-stubs/components/russound_rio/__init__.pyi +1 -0
- homeassistant-stubs/components/russound_rio/entity.pyi +6 -2
- homeassistant-stubs/components/russound_rio/media_player.pyi +1 -5
- homeassistant-stubs/components/russound_rio/number.pyi +30 -0
- homeassistant-stubs/components/russound_rio/switch.pyi +33 -0
- homeassistant-stubs/components/shelly/__init__.pyi +1 -1
- homeassistant-stubs/components/shelly/const.pyi +1 -0
- homeassistant-stubs/components/shelly/repairs.pyi +14 -3
- homeassistant-stubs/components/shopping_list/__init__.pyi +1 -0
- homeassistant-stubs/components/shopping_list/intent.pyi +9 -1
- homeassistant-stubs/components/squeezebox/button.pyi +0 -2
- homeassistant-stubs/components/squeezebox/entity.pyi +2 -0
- homeassistant-stubs/components/squeezebox/media_player.pyi +0 -2
- homeassistant-stubs/components/stream/__init__.pyi +1 -1
- homeassistant-stubs/components/stream/const.pyi +1 -0
- homeassistant-stubs/components/stream/core.pyi +2 -1
- homeassistant-stubs/components/sun/__init__.pyi +1 -0
- homeassistant-stubs/components/sun/binary_sensor.pyi +36 -0
- homeassistant-stubs/components/sun/condition.pyi +13 -3
- homeassistant-stubs/components/sun/sensor.pyi +2 -0
- homeassistant-stubs/components/switch/light.pyi +1 -0
- homeassistant-stubs/components/switch_as_x/entity.pyi +1 -0
- homeassistant-stubs/components/synology_dsm/__init__.pyi +4 -1
- homeassistant-stubs/components/synology_dsm/{service.pyi → services.pyi} +4 -2
- homeassistant-stubs/components/tedee/binary_sensor.pyi +4 -0
- homeassistant-stubs/components/telegram_bot/__init__.pyi +34 -0
- homeassistant-stubs/components/telegram_bot/bot.pyi +63 -0
- homeassistant-stubs/components/telegram_bot/broadcast.pyi +5 -0
- homeassistant-stubs/components/telegram_bot/config_flow.pyi +53 -0
- homeassistant-stubs/components/telegram_bot/const.pyi +93 -0
- homeassistant-stubs/components/telegram_bot/polling.pyi +19 -0
- homeassistant-stubs/components/telegram_bot/webhooks.pyi +47 -0
- homeassistant-stubs/components/tplink/climate.pyi +1 -2
- homeassistant-stubs/components/trend/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/tts/__init__.pyi +1 -0
- homeassistant-stubs/components/tts/entity.pyi +1 -2
- homeassistant-stubs/components/unifi/button.pyi +5 -5
- homeassistant-stubs/components/unifi/device_tracker.pyi +5 -5
- homeassistant-stubs/components/unifi/entity.pyi +5 -8
- homeassistant-stubs/components/unifi/hub/hub.pyi +1 -1
- homeassistant-stubs/components/unifi/image.pyi +5 -5
- homeassistant-stubs/components/unifi/sensor.pyi +5 -5
- homeassistant-stubs/components/unifi/switch.pyi +7 -7
- homeassistant-stubs/components/unifi/update.pyi +3 -5
- homeassistant-stubs/components/unifiprotect/services.pyi +1 -0
- homeassistant-stubs/components/vacuum/__init__.pyi +0 -2
- homeassistant-stubs/components/wallbox/const.pyi +4 -0
- homeassistant-stubs/components/wallbox/coordinator.pyi +6 -6
- homeassistant-stubs/components/wallbox/lock.pyi +1 -2
- homeassistant-stubs/components/wallbox/number.pyi +1 -2
- homeassistant-stubs/components/websocket_api/commands.pyi +6 -3
- homeassistant-stubs/components/websocket_api/messages.pyi +1 -0
- homeassistant-stubs/components/wiz/__init__.pyi +3 -3
- homeassistant-stubs/components/zwave_js/__init__.pyi +1 -1
- homeassistant-stubs/components/zwave_js/api.pyi +2 -2
- homeassistant-stubs/components/zwave_js/config_flow.pyi +4 -1
- homeassistant-stubs/components/zwave_js/device_trigger.pyi +0 -1
- homeassistant-stubs/components/zwave_js/services.pyi +2 -0
- homeassistant-stubs/components/zwave_js/trigger.pyi +3 -7
- homeassistant-stubs/components/zwave_js/triggers/event.pyi +9 -1
- homeassistant-stubs/components/zwave_js/triggers/value_updated.pyi +9 -1
- homeassistant-stubs/config_entries.pyi +2 -0
- homeassistant-stubs/const.pyi +1 -0
- homeassistant-stubs/helpers/condition.pyi +11 -3
- homeassistant-stubs/helpers/device_registry.pyi +5 -1
- homeassistant-stubs/helpers/entity.pyi +1 -4
- homeassistant-stubs/helpers/entity_registry.pyi +11 -1
- homeassistant-stubs/helpers/llm.pyi +0 -1
- homeassistant-stubs/helpers/selector.pyi +24 -4
- homeassistant-stubs/helpers/system_info.pyi +2 -0
- homeassistant-stubs/helpers/template.pyi +2 -1
- homeassistant-stubs/helpers/trigger.pyi +33 -2
- homeassistant-stubs/loader.pyi +3 -1
- homeassistant-stubs/util/timeout.pyi +6 -3
- homeassistant-stubs/util/yaml/loader.pyi +3 -1
- {homeassistant_stubs-2025.6.3.dist-info → homeassistant_stubs-2025.7.0.dist-info}/METADATA +2 -2
- {homeassistant_stubs-2025.6.3.dist-info → homeassistant_stubs-2025.7.0.dist-info}/RECORD +344 -307
- homeassistant-stubs/backports/enum.pyi +0 -7
- homeassistant-stubs/backports/functools.pyi +0 -7
- homeassistant-stubs/components/devolo_home_control/devolo_multi_level_switch.pyi +0 -10
- {homeassistant_stubs-2025.6.3.dist-info → homeassistant_stubs-2025.7.0.dist-info}/WHEEL +0 -0
- {homeassistant_stubs-2025.6.3.dist-info → homeassistant_stubs-2025.7.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
from .const import DOMAIN as DOMAIN
|
|
2
|
+
from .coordinator import NtfyConfigEntry as NtfyConfigEntry, NtfyDataUpdateCoordinator as NtfyDataUpdateCoordinator
|
|
3
|
+
from _typeshed import Incomplete
|
|
4
|
+
from aiontfy import Account as NtfyAccount
|
|
5
|
+
from collections.abc import Callable as Callable
|
|
6
|
+
from dataclasses import dataclass
|
|
7
|
+
from enum import StrEnum
|
|
8
|
+
from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription
|
|
9
|
+
from homeassistant.const import CONF_URL as CONF_URL, EntityCategory as EntityCategory, UnitOfInformation as UnitOfInformation, UnitOfTime as UnitOfTime
|
|
10
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
11
|
+
from homeassistant.helpers.device_registry import DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
|
|
12
|
+
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
13
|
+
from homeassistant.helpers.typing import StateType as StateType
|
|
14
|
+
from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
|
|
15
|
+
|
|
16
|
+
PARALLEL_UPDATES: int
|
|
17
|
+
|
|
18
|
+
@dataclass(kw_only=True, frozen=True)
|
|
19
|
+
class NtfySensorEntityDescription(SensorEntityDescription):
|
|
20
|
+
value_fn: Callable[[NtfyAccount], StateType]
|
|
21
|
+
|
|
22
|
+
class NtfySensor(StrEnum):
|
|
23
|
+
MESSAGES = 'messages'
|
|
24
|
+
MESSAGES_REMAINING = 'messages_remaining'
|
|
25
|
+
MESSAGES_LIMIT = 'messages_limit'
|
|
26
|
+
MESSAGES_EXPIRY_DURATION = 'messages_expiry_duration'
|
|
27
|
+
EMAILS = 'emails'
|
|
28
|
+
EMAILS_REMAINING = 'emails_remaining'
|
|
29
|
+
EMAILS_LIMIT = 'emails_limit'
|
|
30
|
+
CALLS = 'calls'
|
|
31
|
+
CALLS_REMAINING = 'calls_remaining'
|
|
32
|
+
CALLS_LIMIT = 'calls_limit'
|
|
33
|
+
RESERVATIONS = 'reservations'
|
|
34
|
+
RESERVATIONS_REMAINING = 'reservations_remaining'
|
|
35
|
+
RESERVATIONS_LIMIT = 'reservations_limit'
|
|
36
|
+
ATTACHMENT_TOTAL_SIZE = 'attachment_total_size'
|
|
37
|
+
ATTACHMENT_TOTAL_SIZE_REMAINING = 'attachment_total_size_remaining'
|
|
38
|
+
ATTACHMENT_TOTAL_SIZE_LIMIT = 'attachment_total_size_limit'
|
|
39
|
+
ATTACHMENT_EXPIRY_DURATION = 'attachment_expiry_duration'
|
|
40
|
+
ATTACHMENT_BANDWIDTH = 'attachment_bandwidth'
|
|
41
|
+
ATTACHMENT_FILE_SIZE = 'attachment_file_size'
|
|
42
|
+
TIER = 'tier'
|
|
43
|
+
|
|
44
|
+
SENSOR_DESCRIPTIONS: tuple[NtfySensorEntityDescription, ...]
|
|
45
|
+
|
|
46
|
+
async def async_setup_entry(hass: HomeAssistant, config_entry: NtfyConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
47
|
+
|
|
48
|
+
class NtfySensorEntity(CoordinatorEntity[NtfyDataUpdateCoordinator], SensorEntity):
|
|
49
|
+
entity_description: NtfySensorEntityDescription
|
|
50
|
+
coordinator: NtfyDataUpdateCoordinator
|
|
51
|
+
_attr_has_entity_name: bool
|
|
52
|
+
_attr_unique_id: Incomplete
|
|
53
|
+
_attr_device_info: Incomplete
|
|
54
|
+
def __init__(self, coordinator: NtfyDataUpdateCoordinator, description: NtfySensorEntityDescription) -> None: ...
|
|
55
|
+
@property
|
|
56
|
+
def native_value(self) -> StateType: ...
|
|
@@ -2,7 +2,7 @@ from .const import DOMAIN as DOMAIN
|
|
|
2
2
|
from .coordinator import OhmeConfigEntry as OhmeConfigEntry
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
4
|
from homeassistant.config_entries import ConfigEntryState as ConfigEntryState
|
|
5
|
-
from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse
|
|
5
|
+
from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse, callback as callback
|
|
6
6
|
from homeassistant.exceptions import ServiceValidationError as ServiceValidationError
|
|
7
7
|
from homeassistant.helpers import selector as selector
|
|
8
8
|
from ohme import OhmeApiClient as OhmeApiClient
|
|
@@ -16,4 +16,5 @@ SERVICE_SET_PRICE_CAP: str
|
|
|
16
16
|
SERVICE_SET_PRICE_CAP_SCHEMA: Final[Incomplete]
|
|
17
17
|
|
|
18
18
|
def __get_client(call: ServiceCall) -> OhmeApiClient: ...
|
|
19
|
+
@callback
|
|
19
20
|
def async_setup_services(hass: HomeAssistant) -> None: ...
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from .const import CONF_FOLDER_ID as CONF_FOLDER_ID, CONF_FOLDER_NAME as CONF_FOLDER_NAME, DATA_BACKUP_AGENT_LISTENERS as DATA_BACKUP_AGENT_LISTENERS, DOMAIN as DOMAIN
|
|
2
2
|
from .coordinator import OneDriveConfigEntry as OneDriveConfigEntry, OneDriveRuntimeData as OneDriveRuntimeData, OneDriveUpdateCoordinator as OneDriveUpdateCoordinator
|
|
3
|
-
from .services import
|
|
3
|
+
from .services import async_setup_services as async_setup_services
|
|
4
4
|
from _typeshed import Incomplete
|
|
5
5
|
from collections.abc import Awaitable, Callable as Callable
|
|
6
6
|
from homeassistant.const import CONF_ACCESS_TOKEN as CONF_ACCESS_TOKEN, Platform as Platform
|
|
@@ -2,7 +2,7 @@ from .const import DOMAIN as DOMAIN
|
|
|
2
2
|
from .coordinator import OneDriveConfigEntry as OneDriveConfigEntry
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
4
|
from homeassistant.const import CONF_FILENAME as CONF_FILENAME
|
|
5
|
-
from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse
|
|
5
|
+
from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse, callback as callback
|
|
6
6
|
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
|
|
7
7
|
|
|
8
8
|
CONF_CONFIG_ENTRY_ID: str
|
|
@@ -12,4 +12,5 @@ UPLOAD_SERVICE_SCHEMA: Incomplete
|
|
|
12
12
|
CONTENT_SIZE_LIMIT: Incomplete
|
|
13
13
|
|
|
14
14
|
def _read_file_contents(hass: HomeAssistant, filenames: list[str]) -> list[tuple[str, bytes]]: ...
|
|
15
|
-
|
|
15
|
+
@callback
|
|
16
|
+
def async_setup_services(hass: HomeAssistant) -> None: ...
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from .const import DEVICE_KEYS_0_3 as DEVICE_KEYS_0_3, DEVICE_KEYS_0_7 as DEVICE_KEYS_0_7, DEVICE_KEYS_A_B as DEVICE_KEYS_A_B,
|
|
1
|
+
from .const import DEVICE_KEYS_0_3 as DEVICE_KEYS_0_3, DEVICE_KEYS_0_7 as DEVICE_KEYS_0_7, DEVICE_KEYS_A_B as DEVICE_KEYS_A_B, READ_MODE_INT as READ_MODE_INT
|
|
2
2
|
from .entity import OneWireEntity as OneWireEntity, OneWireEntityDescription as OneWireEntityDescription
|
|
3
3
|
from .onewirehub import OWDeviceDescription as OWDeviceDescription, OneWireConfigEntry as OneWireConfigEntry, OneWireHub as OneWireHub, SIGNAL_NEW_DEVICE_CONNECTED as SIGNAL_NEW_DEVICE_CONNECTED
|
|
4
4
|
from _typeshed import Incomplete
|
|
@@ -13,7 +13,8 @@ PARALLEL_UPDATES: int
|
|
|
13
13
|
SCAN_INTERVAL: Incomplete
|
|
14
14
|
|
|
15
15
|
@dataclass(frozen=True)
|
|
16
|
-
class OneWireBinarySensorEntityDescription(OneWireEntityDescription, BinarySensorEntityDescription):
|
|
16
|
+
class OneWireBinarySensorEntityDescription(OneWireEntityDescription, BinarySensorEntityDescription):
|
|
17
|
+
read_mode = READ_MODE_INT
|
|
17
18
|
|
|
18
19
|
DEVICE_BINARY_SENSORS: dict[str, tuple[OneWireBinarySensorEntityDescription, ...]]
|
|
19
20
|
HOBBYBOARD_EF: dict[str, tuple[OneWireBinarySensorEntityDescription, ...]]
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
from .const import
|
|
1
|
+
from .const import READ_MODE_INT as READ_MODE_INT
|
|
2
2
|
from _typeshed import Incomplete
|
|
3
3
|
from dataclasses import dataclass
|
|
4
4
|
from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
|
|
5
5
|
from homeassistant.helpers.entity import Entity as Entity, EntityDescription as EntityDescription
|
|
6
|
-
from homeassistant.helpers.typing import StateType as StateType
|
|
7
6
|
from pyownet import protocol
|
|
8
7
|
from typing import Any
|
|
9
8
|
|
|
@@ -20,7 +19,7 @@ class OneWireEntity(Entity):
|
|
|
20
19
|
_attr_unique_id: Incomplete
|
|
21
20
|
_attr_device_info: Incomplete
|
|
22
21
|
_device_file: Incomplete
|
|
23
|
-
_state:
|
|
22
|
+
_state: int | float | None
|
|
24
23
|
_value_raw: float | None
|
|
25
24
|
_owproxy: Incomplete
|
|
26
25
|
def __init__(self, description: OneWireEntityDescription, device_id: str, device_info: DeviceInfo, device_file: str, owproxy: protocol._Proxy) -> None: ...
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from .const import DEVICE_KEYS_0_3 as DEVICE_KEYS_0_3, DEVICE_KEYS_0_7 as DEVICE_KEYS_0_7, DEVICE_KEYS_A_B as DEVICE_KEYS_A_B,
|
|
1
|
+
from .const import DEVICE_KEYS_0_3 as DEVICE_KEYS_0_3, DEVICE_KEYS_0_7 as DEVICE_KEYS_0_7, DEVICE_KEYS_A_B as DEVICE_KEYS_A_B, READ_MODE_INT as READ_MODE_INT
|
|
2
2
|
from .entity import OneWireEntity as OneWireEntity, OneWireEntityDescription as OneWireEntityDescription
|
|
3
3
|
from .onewirehub import OWDeviceDescription as OWDeviceDescription, OneWireConfigEntry as OneWireConfigEntry, OneWireHub as OneWireHub, SIGNAL_NEW_DEVICE_CONNECTED as SIGNAL_NEW_DEVICE_CONNECTED
|
|
4
4
|
from _typeshed import Incomplete
|
|
@@ -14,7 +14,8 @@ PARALLEL_UPDATES: int
|
|
|
14
14
|
SCAN_INTERVAL: Incomplete
|
|
15
15
|
|
|
16
16
|
@dataclass(frozen=True)
|
|
17
|
-
class OneWireSwitchEntityDescription(OneWireEntityDescription, SwitchEntityDescription):
|
|
17
|
+
class OneWireSwitchEntityDescription(OneWireEntityDescription, SwitchEntityDescription):
|
|
18
|
+
read_mode = READ_MODE_INT
|
|
18
19
|
|
|
19
20
|
DEVICE_SWITCHES: dict[str, tuple[OneWireEntityDescription, ...]]
|
|
20
21
|
HOBBYBOARD_EF: dict[str, tuple[OneWireEntityDescription, ...]]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from .const import DOMAIN as DOMAIN, InputSource as InputSource, ListeningMode as ListeningMode, OPTION_INPUT_SOURCES as OPTION_INPUT_SOURCES, OPTION_LISTENING_MODES as OPTION_LISTENING_MODES
|
|
2
2
|
from .receiver import Receiver as Receiver, async_interview as async_interview
|
|
3
|
-
from .services import DATA_MP_ENTITIES as DATA_MP_ENTITIES,
|
|
3
|
+
from .services import DATA_MP_ENTITIES as DATA_MP_ENTITIES, async_setup_services as async_setup_services
|
|
4
4
|
from _typeshed import Incomplete
|
|
5
5
|
from dataclasses import dataclass
|
|
6
6
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
@@ -2,7 +2,7 @@ from .const import DOMAIN as DOMAIN
|
|
|
2
2
|
from .media_player import OnkyoMediaPlayer as OnkyoMediaPlayer
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
4
|
from homeassistant.const import ATTR_ENTITY_ID as ATTR_ENTITY_ID
|
|
5
|
-
from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall
|
|
5
|
+
from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
|
|
6
6
|
from homeassistant.util.hass_dict import HassKey as HassKey
|
|
7
7
|
|
|
8
8
|
DATA_MP_ENTITIES: HassKey[dict[str, dict[str, OnkyoMediaPlayer]]]
|
|
@@ -11,4 +11,5 @@ ACCEPTED_VALUES: Incomplete
|
|
|
11
11
|
ONKYO_SELECT_OUTPUT_SCHEMA: Incomplete
|
|
12
12
|
SERVICE_SELECT_HDMI_OUTPUT: str
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
@callback
|
|
15
|
+
def async_setup_services(hass: HomeAssistant) -> None: ...
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import openai
|
|
2
|
-
from .const import CONF_CHAT_MODEL as CONF_CHAT_MODEL, CONF_FILENAMES as CONF_FILENAMES, CONF_MAX_TOKENS as CONF_MAX_TOKENS, CONF_PROMPT as CONF_PROMPT, CONF_REASONING_EFFORT as CONF_REASONING_EFFORT, CONF_TEMPERATURE as CONF_TEMPERATURE, CONF_TOP_P as CONF_TOP_P, DOMAIN as DOMAIN, LOGGER as LOGGER, RECOMMENDED_CHAT_MODEL as RECOMMENDED_CHAT_MODEL, RECOMMENDED_MAX_TOKENS as RECOMMENDED_MAX_TOKENS, RECOMMENDED_REASONING_EFFORT as RECOMMENDED_REASONING_EFFORT, RECOMMENDED_TEMPERATURE as RECOMMENDED_TEMPERATURE, RECOMMENDED_TOP_P as RECOMMENDED_TOP_P
|
|
2
|
+
from .const import CONF_CHAT_MODEL as CONF_CHAT_MODEL, CONF_FILENAMES as CONF_FILENAMES, CONF_MAX_TOKENS as CONF_MAX_TOKENS, CONF_PROMPT as CONF_PROMPT, CONF_REASONING_EFFORT as CONF_REASONING_EFFORT, CONF_TEMPERATURE as CONF_TEMPERATURE, CONF_TOP_P as CONF_TOP_P, DEFAULT_NAME as DEFAULT_NAME, DOMAIN as DOMAIN, LOGGER as LOGGER, RECOMMENDED_CHAT_MODEL as RECOMMENDED_CHAT_MODEL, RECOMMENDED_MAX_TOKENS as RECOMMENDED_MAX_TOKENS, RECOMMENDED_REASONING_EFFORT as RECOMMENDED_REASONING_EFFORT, RECOMMENDED_TEMPERATURE as RECOMMENDED_TEMPERATURE, RECOMMENDED_TOP_P as RECOMMENDED_TOP_P
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
|
-
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
4
|
+
from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigSubentry as ConfigSubentry
|
|
5
5
|
from homeassistant.const import CONF_API_KEY as CONF_API_KEY, Platform as Platform
|
|
6
6
|
from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse
|
|
7
7
|
from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady, HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
|
|
@@ -21,3 +21,5 @@ def encode_file(file_path: str) -> tuple[str, str]: ...
|
|
|
21
21
|
async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
|
|
22
22
|
async def async_setup_entry(hass: HomeAssistant, entry: OpenAIConfigEntry) -> bool: ...
|
|
23
23
|
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
|
|
24
|
+
async def async_migrate_integration(hass: HomeAssistant) -> None: ...
|
|
25
|
+
async def async_migrate_entry(hass: HomeAssistant, entry: OpenAIConfigEntry) -> bool: ...
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
from .const import CONF_CHAT_MODEL as CONF_CHAT_MODEL, CONF_MAX_TOKENS as CONF_MAX_TOKENS, CONF_PROMPT as CONF_PROMPT, CONF_REASONING_EFFORT as CONF_REASONING_EFFORT, CONF_RECOMMENDED as CONF_RECOMMENDED, CONF_TEMPERATURE as CONF_TEMPERATURE, CONF_TOP_P as CONF_TOP_P, CONF_WEB_SEARCH as CONF_WEB_SEARCH, CONF_WEB_SEARCH_CITY as CONF_WEB_SEARCH_CITY, CONF_WEB_SEARCH_CONTEXT_SIZE as CONF_WEB_SEARCH_CONTEXT_SIZE, CONF_WEB_SEARCH_COUNTRY as CONF_WEB_SEARCH_COUNTRY, CONF_WEB_SEARCH_REGION as CONF_WEB_SEARCH_REGION, CONF_WEB_SEARCH_TIMEZONE as CONF_WEB_SEARCH_TIMEZONE, CONF_WEB_SEARCH_USER_LOCATION as CONF_WEB_SEARCH_USER_LOCATION, DOMAIN as DOMAIN, RECOMMENDED_CHAT_MODEL as RECOMMENDED_CHAT_MODEL, RECOMMENDED_MAX_TOKENS as RECOMMENDED_MAX_TOKENS, RECOMMENDED_REASONING_EFFORT as RECOMMENDED_REASONING_EFFORT, RECOMMENDED_TEMPERATURE as RECOMMENDED_TEMPERATURE, RECOMMENDED_TOP_P as RECOMMENDED_TOP_P, RECOMMENDED_WEB_SEARCH as RECOMMENDED_WEB_SEARCH, RECOMMENDED_WEB_SEARCH_CONTEXT_SIZE as RECOMMENDED_WEB_SEARCH_CONTEXT_SIZE, RECOMMENDED_WEB_SEARCH_USER_LOCATION as RECOMMENDED_WEB_SEARCH_USER_LOCATION, UNSUPPORTED_MODELS as UNSUPPORTED_MODELS, WEB_SEARCH_MODELS as WEB_SEARCH_MODELS
|
|
1
|
+
from .const import CONF_CHAT_MODEL as CONF_CHAT_MODEL, CONF_MAX_TOKENS as CONF_MAX_TOKENS, CONF_PROMPT as CONF_PROMPT, CONF_REASONING_EFFORT as CONF_REASONING_EFFORT, CONF_RECOMMENDED as CONF_RECOMMENDED, CONF_TEMPERATURE as CONF_TEMPERATURE, CONF_TOP_P as CONF_TOP_P, CONF_WEB_SEARCH as CONF_WEB_SEARCH, CONF_WEB_SEARCH_CITY as CONF_WEB_SEARCH_CITY, CONF_WEB_SEARCH_CONTEXT_SIZE as CONF_WEB_SEARCH_CONTEXT_SIZE, CONF_WEB_SEARCH_COUNTRY as CONF_WEB_SEARCH_COUNTRY, CONF_WEB_SEARCH_REGION as CONF_WEB_SEARCH_REGION, CONF_WEB_SEARCH_TIMEZONE as CONF_WEB_SEARCH_TIMEZONE, CONF_WEB_SEARCH_USER_LOCATION as CONF_WEB_SEARCH_USER_LOCATION, DEFAULT_CONVERSATION_NAME as DEFAULT_CONVERSATION_NAME, DOMAIN as DOMAIN, RECOMMENDED_CHAT_MODEL as RECOMMENDED_CHAT_MODEL, RECOMMENDED_MAX_TOKENS as RECOMMENDED_MAX_TOKENS, RECOMMENDED_REASONING_EFFORT as RECOMMENDED_REASONING_EFFORT, RECOMMENDED_TEMPERATURE as RECOMMENDED_TEMPERATURE, RECOMMENDED_TOP_P as RECOMMENDED_TOP_P, RECOMMENDED_WEB_SEARCH as RECOMMENDED_WEB_SEARCH, RECOMMENDED_WEB_SEARCH_CONTEXT_SIZE as RECOMMENDED_WEB_SEARCH_CONTEXT_SIZE, RECOMMENDED_WEB_SEARCH_USER_LOCATION as RECOMMENDED_WEB_SEARCH_USER_LOCATION, UNSUPPORTED_MODELS as UNSUPPORTED_MODELS, WEB_SEARCH_MODELS as WEB_SEARCH_MODELS
|
|
2
2
|
from _typeshed import Incomplete
|
|
3
|
-
from collections.abc import Mapping
|
|
4
3
|
from homeassistant.components.zone import ENTITY_ID_HOME as ENTITY_ID_HOME
|
|
5
|
-
from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult,
|
|
6
|
-
from homeassistant.const import ATTR_LATITUDE as ATTR_LATITUDE, ATTR_LONGITUDE as ATTR_LONGITUDE, CONF_API_KEY as CONF_API_KEY, CONF_LLM_HASS_API as CONF_LLM_HASS_API
|
|
7
|
-
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
4
|
+
from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigEntryState as ConfigEntryState, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, ConfigSubentryFlow as ConfigSubentryFlow, SubentryFlowResult as SubentryFlowResult
|
|
5
|
+
from homeassistant.const import ATTR_LATITUDE as ATTR_LATITUDE, ATTR_LONGITUDE as ATTR_LONGITUDE, CONF_API_KEY as CONF_API_KEY, CONF_LLM_HASS_API as CONF_LLM_HASS_API, CONF_NAME as CONF_NAME
|
|
6
|
+
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
|
8
7
|
from homeassistant.helpers import llm as llm
|
|
9
8
|
from homeassistant.helpers.httpx_client import get_async_client as get_async_client
|
|
10
9
|
from homeassistant.helpers.selector import NumberSelector as NumberSelector, NumberSelectorConfig as NumberSelectorConfig, SelectOptionDict as SelectOptionDict, SelectSelector as SelectSelector, SelectSelectorConfig as SelectSelectorConfig, SelectSelectorMode as SelectSelectorMode, TemplateSelector as TemplateSelector
|
|
@@ -19,14 +18,20 @@ async def validate_input(hass: HomeAssistant, data: dict[str, Any]) -> None: ...
|
|
|
19
18
|
|
|
20
19
|
class OpenAIConfigFlow(ConfigFlow, domain=DOMAIN):
|
|
21
20
|
VERSION: int
|
|
21
|
+
MINOR_VERSION: int
|
|
22
22
|
async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
|
23
|
-
@
|
|
24
|
-
|
|
23
|
+
@classmethod
|
|
24
|
+
@callback
|
|
25
|
+
def async_get_supported_subentry_types(cls, config_entry: ConfigEntry) -> dict[str, type[ConfigSubentryFlow]]: ...
|
|
25
26
|
|
|
26
|
-
class
|
|
27
|
-
last_rendered_recommended:
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
def
|
|
27
|
+
class ConversationSubentryFlowHandler(ConfigSubentryFlow):
|
|
28
|
+
last_rendered_recommended: bool
|
|
29
|
+
options: dict[str, Any]
|
|
30
|
+
@property
|
|
31
|
+
def _is_new(self) -> bool: ...
|
|
32
|
+
async def async_step_user(self, user_input: dict[str, Any] | None = None) -> SubentryFlowResult: ...
|
|
33
|
+
async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> SubentryFlowResult: ...
|
|
34
|
+
async def async_step_init(self, user_input: dict[str, Any] | None = None) -> SubentryFlowResult: ...
|
|
35
|
+
async def async_step_advanced(self, user_input: dict[str, Any] | None = None) -> SubentryFlowResult: ...
|
|
36
|
+
async def async_step_model(self, user_input: dict[str, Any] | None = None) -> SubentryFlowResult: ...
|
|
37
|
+
async def _get_location_data(self) -> dict[str, str]: ...
|
|
@@ -3,7 +3,7 @@ from .const import CONF_CHAT_MODEL as CONF_CHAT_MODEL, CONF_MAX_TOKENS as CONF_M
|
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
4
|
from collections.abc import AsyncGenerator, Callable as Callable
|
|
5
5
|
from homeassistant.components import assist_pipeline as assist_pipeline, conversation as conversation
|
|
6
|
-
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
6
|
+
from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigSubentry as ConfigSubentry
|
|
7
7
|
from homeassistant.const import CONF_LLM_HASS_API as CONF_LLM_HASS_API, MATCH_ALL as MATCH_ALL
|
|
8
8
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
9
9
|
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
|
|
@@ -21,14 +21,14 @@ def _convert_content_to_param(content: conversation.Content) -> ResponseInputPar
|
|
|
21
21
|
async def _transform_stream(chat_log: conversation.ChatLog, result: AsyncStream[ResponseStreamEvent], messages: ResponseInputParam) -> AsyncGenerator[conversation.AssistantContentDeltaDict]: ...
|
|
22
22
|
|
|
23
23
|
class OpenAIConversationEntity(conversation.ConversationEntity, conversation.AbstractConversationAgent):
|
|
24
|
-
_attr_has_entity_name: bool
|
|
25
|
-
_attr_name: Incomplete
|
|
26
24
|
_attr_supports_streaming: bool
|
|
27
25
|
entry: Incomplete
|
|
26
|
+
subentry: Incomplete
|
|
27
|
+
_attr_name: Incomplete
|
|
28
28
|
_attr_unique_id: Incomplete
|
|
29
29
|
_attr_device_info: Incomplete
|
|
30
30
|
_attr_supported_features: Incomplete
|
|
31
|
-
def __init__(self, entry: OpenAIConfigEntry) -> None: ...
|
|
31
|
+
def __init__(self, entry: OpenAIConfigEntry, subentry: ConfigSubentry) -> None: ...
|
|
32
32
|
@property
|
|
33
33
|
def supported_languages(self) -> list[str] | Literal['*']: ...
|
|
34
34
|
async def async_added_to_hass(self) -> None: ...
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from .const import DOMAIN as DOMAIN, EVENT_KEY as EVENT_KEY, JSON_PAYLOAD as JSON_PAYLOAD, LOGGER as LOGGER, REGISTERED_NOTIFICATIONS as REGISTERED_NOTIFICATIONS
|
|
2
2
|
from .coordinator import OverseerrConfigEntry as OverseerrConfigEntry, OverseerrCoordinator as OverseerrCoordinator
|
|
3
|
-
from .services import
|
|
3
|
+
from .services import async_setup_services as async_setup_services
|
|
4
4
|
from _typeshed import Incomplete
|
|
5
5
|
from aiohttp.web_request import Request as Request
|
|
6
6
|
from aiohttp.web_response import Response as Response
|
|
@@ -2,7 +2,7 @@ from .const import ATTR_CONFIG_ENTRY_ID as ATTR_CONFIG_ENTRY_ID, ATTR_REQUESTED_
|
|
|
2
2
|
from .coordinator import OverseerrConfigEntry as OverseerrConfigEntry
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
4
|
from homeassistant.config_entries import ConfigEntryState as ConfigEntryState
|
|
5
|
-
from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse
|
|
5
|
+
from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse, callback as callback
|
|
6
6
|
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
|
|
7
7
|
from homeassistant.util.json import JsonValueType as JsonValueType
|
|
8
8
|
from python_overseerr import OverseerrClient as OverseerrClient
|
|
@@ -11,6 +11,8 @@ from typing import Any
|
|
|
11
11
|
SERVICE_GET_REQUESTS: str
|
|
12
12
|
SERVICE_GET_REQUESTS_SCHEMA: Incomplete
|
|
13
13
|
|
|
14
|
-
def
|
|
15
|
-
async def
|
|
16
|
-
def
|
|
14
|
+
def _async_get_entry(hass: HomeAssistant, config_entry_id: str) -> OverseerrConfigEntry: ...
|
|
15
|
+
async def _get_media(client: OverseerrClient, media_type: str, identifier: int) -> dict[str, Any]: ...
|
|
16
|
+
async def _async_get_requests(call: ServiceCall) -> ServiceResponse: ...
|
|
17
|
+
@callback
|
|
18
|
+
def async_setup_services(hass: HomeAssistant) -> None: ...
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from .const import DOMAIN as DOMAIN, LOGGER as LOGGER
|
|
2
2
|
from .coordinator import PaperlessConfigEntry as PaperlessConfigEntry, PaperlessData as PaperlessData, PaperlessStatisticCoordinator as PaperlessStatisticCoordinator, PaperlessStatusCoordinator as PaperlessStatusCoordinator
|
|
3
|
-
from homeassistant.const import CONF_API_KEY as CONF_API_KEY, CONF_URL as CONF_URL, Platform as Platform
|
|
3
|
+
from homeassistant.const import CONF_API_KEY as CONF_API_KEY, CONF_URL as CONF_URL, CONF_VERIFY_SSL as CONF_VERIFY_SSL, Platform as Platform
|
|
4
4
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
5
5
|
from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryError as ConfigEntryError, ConfigEntryNotReady as ConfigEntryNotReady
|
|
6
6
|
from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
|
|
@@ -2,7 +2,7 @@ from .const import DOMAIN as DOMAIN, LOGGER as LOGGER
|
|
|
2
2
|
from _typeshed import Incomplete
|
|
3
3
|
from collections.abc import Mapping
|
|
4
4
|
from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
|
|
5
|
-
from homeassistant.const import CONF_API_KEY as CONF_API_KEY, CONF_URL as CONF_URL
|
|
5
|
+
from homeassistant.const import CONF_API_KEY as CONF_API_KEY, CONF_URL as CONF_URL, CONF_VERIFY_SSL as CONF_VERIFY_SSL
|
|
6
6
|
from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
|
|
7
7
|
from typing import Any
|
|
8
8
|
|
|
@@ -13,4 +13,4 @@ class PaperlessConfigFlow(ConfigFlow, domain=DOMAIN):
|
|
|
13
13
|
async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
|
14
14
|
async def async_step_reauth(self, user_input: Mapping[str, Any]) -> ConfigFlowResult: ...
|
|
15
15
|
async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
|
16
|
-
async def _validate_input(self, user_input: dict[str,
|
|
16
|
+
async def _validate_input(self, user_input: dict[str, Any]) -> dict[str, str]: ...
|
|
@@ -10,10 +10,8 @@ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFai
|
|
|
10
10
|
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
|
|
11
11
|
from pypaperless import Paperless as Paperless
|
|
12
12
|
from pypaperless.models import Statistic, Status
|
|
13
|
-
from typing import TypeVar
|
|
14
13
|
|
|
15
14
|
type PaperlessConfigEntry = ConfigEntry[PaperlessData]
|
|
16
|
-
TData = TypeVar('TData')
|
|
17
15
|
UPDATE_INTERVAL_STATISTICS: Incomplete
|
|
18
16
|
UPDATE_INTERVAL_STATUS: Incomplete
|
|
19
17
|
|
|
@@ -22,13 +20,13 @@ class PaperlessData:
|
|
|
22
20
|
statistics: PaperlessStatisticCoordinator
|
|
23
21
|
status: PaperlessStatusCoordinator
|
|
24
22
|
|
|
25
|
-
class PaperlessCoordinator(DataUpdateCoordinator[
|
|
23
|
+
class PaperlessCoordinator[DataT](DataUpdateCoordinator[DataT], metaclass=abc.ABCMeta):
|
|
26
24
|
config_entry: PaperlessConfigEntry
|
|
27
25
|
api: Incomplete
|
|
28
26
|
def __init__(self, hass: HomeAssistant, entry: PaperlessConfigEntry, api: Paperless, name: str, update_interval: timedelta) -> None: ...
|
|
29
|
-
async def _async_update_data(self) ->
|
|
27
|
+
async def _async_update_data(self) -> DataT: ...
|
|
30
28
|
@abstractmethod
|
|
31
|
-
async def _async_update_data_internal(self) ->
|
|
29
|
+
async def _async_update_data_internal(self) -> DataT: ...
|
|
32
30
|
|
|
33
31
|
class PaperlessStatisticCoordinator(PaperlessCoordinator[Statistic]):
|
|
34
32
|
def __init__(self, hass: HomeAssistant, entry: PaperlessConfigEntry, api: Paperless) -> None: ...
|
|
@@ -4,13 +4,10 @@ from _typeshed import Incomplete
|
|
|
4
4
|
from homeassistant.components.sensor import EntityDescription as EntityDescription
|
|
5
5
|
from homeassistant.helpers.device_registry import DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
|
|
6
6
|
from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
|
|
7
|
-
from typing import Generic, TypeVar
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
class PaperlessEntity(CoordinatorEntity[TCoordinator], Generic[TCoordinator]):
|
|
8
|
+
class PaperlessEntity[CoordinatorT: PaperlessCoordinator](CoordinatorEntity[CoordinatorT]):
|
|
12
9
|
_attr_has_entity_name: bool
|
|
13
10
|
entity_description: Incomplete
|
|
14
11
|
_attr_unique_id: Incomplete
|
|
15
12
|
_attr_device_info: Incomplete
|
|
16
|
-
def __init__(self, coordinator:
|
|
13
|
+
def __init__(self, coordinator: CoordinatorT, description: EntityDescription) -> None: ...
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
from .coordinator import PaperlessConfigEntry as PaperlessConfigEntry,
|
|
2
|
-
from .entity import PaperlessEntity as PaperlessEntity
|
|
1
|
+
from .coordinator import PaperlessConfigEntry as PaperlessConfigEntry, PaperlessCoordinator as PaperlessCoordinator, PaperlessStatisticCoordinator as PaperlessStatisticCoordinator, PaperlessStatusCoordinator as PaperlessStatusCoordinator
|
|
2
|
+
from .entity import PaperlessEntity as PaperlessEntity
|
|
3
3
|
from collections.abc import Callable as Callable
|
|
4
4
|
from dataclasses import dataclass
|
|
5
5
|
from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
|
|
@@ -8,20 +8,20 @@ from homeassistant.core import HomeAssistant as HomeAssistant
|
|
|
8
8
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
9
9
|
from homeassistant.helpers.typing import StateType as StateType
|
|
10
10
|
from homeassistant.util.unit_conversion import InformationConverter as InformationConverter
|
|
11
|
-
from
|
|
11
|
+
from pypaperless.models import Statistic, Status
|
|
12
12
|
|
|
13
13
|
PARALLEL_UPDATES: int
|
|
14
14
|
|
|
15
15
|
@dataclass(frozen=True, kw_only=True)
|
|
16
|
-
class PaperlessEntityDescription(SensorEntityDescription
|
|
17
|
-
value_fn: Callable[[
|
|
16
|
+
class PaperlessEntityDescription[DataT](SensorEntityDescription):
|
|
17
|
+
value_fn: Callable[[DataT], StateType]
|
|
18
18
|
|
|
19
|
-
SENSOR_STATISTICS: tuple[PaperlessEntityDescription, ...]
|
|
20
|
-
SENSOR_STATUS: tuple[PaperlessEntityDescription, ...]
|
|
19
|
+
SENSOR_STATISTICS: tuple[PaperlessEntityDescription[Statistic], ...]
|
|
20
|
+
SENSOR_STATUS: tuple[PaperlessEntityDescription[Status], ...]
|
|
21
21
|
|
|
22
22
|
async def async_setup_entry(hass: HomeAssistant, entry: PaperlessConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
23
23
|
|
|
24
|
-
class PaperlessSensor(PaperlessEntity[
|
|
24
|
+
class PaperlessSensor[CoordinatorT: PaperlessCoordinator](PaperlessEntity[CoordinatorT], SensorEntity):
|
|
25
25
|
entity_description: PaperlessEntityDescription
|
|
26
26
|
@property
|
|
27
27
|
def native_value(self) -> StateType: ...
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
from .const import LOGGER as LOGGER
|
|
2
|
+
from .coordinator import PaperlessConfigEntry as PaperlessConfigEntry, PaperlessStatusCoordinator as PaperlessStatusCoordinator
|
|
3
|
+
from .entity import PaperlessEntity as PaperlessEntity
|
|
4
|
+
from _typeshed import Incomplete
|
|
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 AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
8
|
+
|
|
9
|
+
PAPERLESS_CHANGELOGS: str
|
|
10
|
+
PARALLEL_UPDATES: int
|
|
11
|
+
SCAN_INTERVAL: Incomplete
|
|
12
|
+
|
|
13
|
+
async def async_setup_entry(hass: HomeAssistant, entry: PaperlessConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
14
|
+
|
|
15
|
+
class PaperlessUpdate(PaperlessEntity[PaperlessStatusCoordinator], UpdateEntity):
|
|
16
|
+
release_url = PAPERLESS_CHANGELOGS
|
|
17
|
+
@property
|
|
18
|
+
def should_poll(self) -> bool: ...
|
|
19
|
+
@property
|
|
20
|
+
def available(self) -> bool: ...
|
|
21
|
+
@property
|
|
22
|
+
def installed_version(self) -> str | None: ...
|
|
23
|
+
_attr_available: bool
|
|
24
|
+
_attr_latest_version: Incomplete
|
|
25
|
+
async def async_update(self) -> None: ...
|
|
@@ -4,7 +4,7 @@ from collections.abc import Callable as Callable
|
|
|
4
4
|
from homeassistant.auth import EVENT_USER_REMOVED as EVENT_USER_REMOVED
|
|
5
5
|
from homeassistant.components import persistent_notification as persistent_notification, websocket_api as websocket_api
|
|
6
6
|
from homeassistant.components.device_tracker import ATTR_SOURCE_TYPE as ATTR_SOURCE_TYPE, SourceType as SourceType
|
|
7
|
-
from homeassistant.const import ATTR_EDITABLE as ATTR_EDITABLE, ATTR_GPS_ACCURACY as ATTR_GPS_ACCURACY, ATTR_ID as ATTR_ID, ATTR_LATITUDE as ATTR_LATITUDE, ATTR_LONGITUDE as ATTR_LONGITUDE, ATTR_NAME as ATTR_NAME, CONF_ID as CONF_ID, CONF_NAME as CONF_NAME, EVENT_HOMEASSISTANT_START as EVENT_HOMEASSISTANT_START, SERVICE_RELOAD as SERVICE_RELOAD, STATE_HOME as STATE_HOME,
|
|
7
|
+
from homeassistant.const import ATTR_EDITABLE as ATTR_EDITABLE, ATTR_GPS_ACCURACY as ATTR_GPS_ACCURACY, ATTR_ID as ATTR_ID, ATTR_LATITUDE as ATTR_LATITUDE, ATTR_LONGITUDE as ATTR_LONGITUDE, ATTR_NAME as ATTR_NAME, CONF_ID as CONF_ID, CONF_NAME as CONF_NAME, EVENT_HOMEASSISTANT_START as EVENT_HOMEASSISTANT_START, SERVICE_RELOAD as SERVICE_RELOAD, STATE_HOME as STATE_HOME, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN
|
|
8
8
|
from homeassistant.core import Event as Event, EventStateChangedData as EventStateChangedData, HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, State as State, callback as callback, split_entity_id as split_entity_id
|
|
9
9
|
from homeassistant.helpers import collection as collection, entity_registry as er, service as service
|
|
10
10
|
from homeassistant.helpers.entity_component import EntityComponent as EntityComponent
|
|
@@ -6,7 +6,6 @@ from _typeshed import Incomplete
|
|
|
6
6
|
from homeassistant.components.climate import ATTR_HVAC_MODE as ATTR_HVAC_MODE, ATTR_TARGET_TEMP_HIGH as ATTR_TARGET_TEMP_HIGH, ATTR_TARGET_TEMP_LOW as ATTR_TARGET_TEMP_LOW, ClimateEntity as ClimateEntity, ClimateEntityFeature as ClimateEntityFeature, HVACAction as HVACAction, HVACMode as HVACMode
|
|
7
7
|
from homeassistant.const import ATTR_TEMPERATURE as ATTR_TEMPERATURE, UnitOfTemperature as UnitOfTemperature
|
|
8
8
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
|
9
|
-
from homeassistant.exceptions import ServiceValidationError as ServiceValidationError
|
|
10
9
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
11
10
|
from typing import Any
|
|
12
11
|
|
|
@@ -3,7 +3,7 @@ from .const import DATA_UPDATED as DATA_UPDATED, DOMAIN as DOMAIN
|
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
4
|
from homeassistant.components.sensor import SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription
|
|
5
5
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
6
|
-
from homeassistant.const import CONF_NAME as CONF_NAME
|
|
6
|
+
from homeassistant.const import CONF_NAME as CONF_NAME, MAX_LENGTH_STATE_STATE as MAX_LENGTH_STATE_STATE
|
|
7
7
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
|
8
8
|
from homeassistant.helpers.device_registry import DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
|
|
9
9
|
from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
|
|
@@ -3,13 +3,13 @@ from .coordinator import QbusConfigEntry as QbusConfigEntry
|
|
|
3
3
|
from .entity import QbusEntity as QbusEntity, add_new_outputs as add_new_outputs
|
|
4
4
|
from _typeshed import Incomplete
|
|
5
5
|
from homeassistant.components.climate import ClimateEntity as ClimateEntity, ClimateEntityFeature as ClimateEntityFeature, HVACAction as HVACAction, HVACMode as HVACMode
|
|
6
|
-
from homeassistant.components.mqtt import ReceiveMessage as ReceiveMessage
|
|
7
6
|
from homeassistant.const import ATTR_TEMPERATURE as ATTR_TEMPERATURE, UnitOfTemperature as UnitOfTemperature
|
|
8
7
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
9
8
|
from homeassistant.exceptions import ServiceValidationError as ServiceValidationError
|
|
10
9
|
from homeassistant.helpers.debounce import Debouncer as Debouncer
|
|
11
10
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
12
11
|
from qbusmqttapi.discovery import QbusMqttOutput as QbusMqttOutput
|
|
12
|
+
from qbusmqttapi.state import QbusMqttThermoState
|
|
13
13
|
from typing import Any
|
|
14
14
|
|
|
15
15
|
PARALLEL_UPDATES: int
|
|
@@ -19,6 +19,7 @@ _LOGGER: Incomplete
|
|
|
19
19
|
async def async_setup_entry(hass: HomeAssistant, entry: QbusConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
20
20
|
|
|
21
21
|
class QbusClimate(QbusEntity, ClimateEntity):
|
|
22
|
+
_state_cls = QbusMqttThermoState
|
|
22
23
|
_attr_name: Incomplete
|
|
23
24
|
_attr_hvac_modes: Incomplete
|
|
24
25
|
_attr_supported_features: Incomplete
|
|
@@ -37,6 +38,6 @@ class QbusClimate(QbusEntity, ClimateEntity):
|
|
|
37
38
|
async def async_set_temperature(self, **kwargs: Any) -> None: ...
|
|
38
39
|
_attr_current_temperature: Incomplete
|
|
39
40
|
_attr_target_temperature: Incomplete
|
|
40
|
-
async def
|
|
41
|
+
async def _handle_state_received(self, state: QbusMqttThermoState) -> None: ...
|
|
41
42
|
def _set_hvac_action(self) -> None: ...
|
|
42
43
|
async def _async_request_state(self) -> None: ...
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
from .coordinator import QbusConfigEntry as QbusConfigEntry
|
|
2
|
+
from .entity import QbusEntity as QbusEntity, add_new_outputs as add_new_outputs
|
|
3
|
+
from _typeshed import Incomplete
|
|
4
|
+
from homeassistant.components.cover import ATTR_POSITION as ATTR_POSITION, ATTR_TILT_POSITION as ATTR_TILT_POSITION, CoverDeviceClass as CoverDeviceClass, CoverEntity as CoverEntity, CoverEntityFeature as CoverEntityFeature
|
|
5
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
6
|
+
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
7
|
+
from qbusmqttapi.discovery import QbusMqttOutput as QbusMqttOutput
|
|
8
|
+
from qbusmqttapi.state import QbusMqttShutterState
|
|
9
|
+
from typing import Any
|
|
10
|
+
|
|
11
|
+
PARALLEL_UPDATES: int
|
|
12
|
+
|
|
13
|
+
async def async_setup_entry(hass: HomeAssistant, entry: QbusConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
14
|
+
|
|
15
|
+
class QbusCover(QbusEntity, CoverEntity):
|
|
16
|
+
_state_cls = QbusMqttShutterState
|
|
17
|
+
_attr_name: Incomplete
|
|
18
|
+
_attr_supported_features: CoverEntityFeature
|
|
19
|
+
_attr_device_class: Incomplete
|
|
20
|
+
_attr_assumed_state: bool
|
|
21
|
+
_attr_current_cover_position: int
|
|
22
|
+
_attr_current_cover_tilt_position: int
|
|
23
|
+
_attr_is_closed: bool
|
|
24
|
+
_target_shutter_position: int | None
|
|
25
|
+
_target_slat_position: int | None
|
|
26
|
+
_target_state: str | None
|
|
27
|
+
_previous_state: str | None
|
|
28
|
+
def __init__(self, mqtt_output: QbusMqttOutput) -> None: ...
|
|
29
|
+
async def async_open_cover(self, **kwargs: Any) -> None: ...
|
|
30
|
+
async def async_close_cover(self, **kwargs: Any) -> None: ...
|
|
31
|
+
async def async_stop_cover(self, **kwargs: Any) -> None: ...
|
|
32
|
+
async def async_set_cover_position(self, **kwargs: Any) -> None: ...
|
|
33
|
+
async def async_open_cover_tilt(self, **kwargs: Any) -> None: ...
|
|
34
|
+
async def async_close_cover_tilt(self, **kwargs: Any) -> None: ...
|
|
35
|
+
async def async_set_cover_tilt_position(self, **kwargs: Any) -> None: ...
|
|
36
|
+
async def _handle_state_received(self, state: QbusMqttShutterState) -> None: ...
|
|
37
|
+
def _update_is_closed(self) -> None: ...
|
|
38
|
+
def _update_cover_position(self) -> None: ...
|
|
39
|
+
def _update_tilt_position(self) -> None: ...
|
|
@@ -9,15 +9,18 @@ from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo, form
|
|
|
9
9
|
from homeassistant.helpers.entity import Entity as Entity
|
|
10
10
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
11
11
|
from qbusmqttapi.discovery import QbusMqttOutput as QbusMqttOutput
|
|
12
|
-
from qbusmqttapi.state import QbusMqttState
|
|
12
|
+
from qbusmqttapi.state import QbusMqttState
|
|
13
|
+
from typing import Generic, TypeVar
|
|
13
14
|
|
|
14
15
|
_REFID_REGEX: Incomplete
|
|
16
|
+
StateT = TypeVar('StateT', bound=QbusMqttState)
|
|
15
17
|
|
|
16
18
|
def add_new_outputs(coordinator: QbusControllerCoordinator, added_outputs: list[QbusMqttOutput], filter_fn: Callable[[QbusMqttOutput], bool], entity_type: type[QbusEntity], async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
17
19
|
def format_ref_id(ref_id: str) -> str | None: ...
|
|
18
20
|
def create_main_device_identifier(mqtt_output: QbusMqttOutput) -> tuple[str, str]: ...
|
|
19
21
|
|
|
20
|
-
class QbusEntity(Entity, ABC, metaclass=abc.ABCMeta):
|
|
22
|
+
class QbusEntity(Entity, ABC, Generic[StateT], metaclass=abc.ABCMeta):
|
|
23
|
+
_state_cls: type[StateT]
|
|
21
24
|
_attr_has_entity_name: bool
|
|
22
25
|
_attr_should_poll: bool
|
|
23
26
|
_mqtt_output: Incomplete
|
|
@@ -28,6 +31,7 @@ class QbusEntity(Entity, ABC, metaclass=abc.ABCMeta):
|
|
|
28
31
|
_attr_device_info: Incomplete
|
|
29
32
|
def __init__(self, mqtt_output: QbusMqttOutput) -> None: ...
|
|
30
33
|
async def async_added_to_hass(self) -> None: ...
|
|
31
|
-
@abstractmethod
|
|
32
34
|
async def _state_received(self, msg: ReceiveMessage) -> None: ...
|
|
35
|
+
@abstractmethod
|
|
36
|
+
async def _handle_state_received(self, state: StateT) -> None: ...
|
|
33
37
|
async def _async_publish_output_state(self, state: QbusMqttState) -> None: ...
|
|
@@ -2,11 +2,11 @@ from .coordinator import QbusConfigEntry as QbusConfigEntry
|
|
|
2
2
|
from .entity import QbusEntity as QbusEntity, add_new_outputs as add_new_outputs
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
4
|
from homeassistant.components.light import ATTR_BRIGHTNESS as ATTR_BRIGHTNESS, ColorMode as ColorMode, LightEntity as LightEntity
|
|
5
|
-
from homeassistant.components.mqtt import ReceiveMessage as ReceiveMessage
|
|
6
5
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
7
6
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
8
7
|
from homeassistant.util.color import brightness_to_value as brightness_to_value, value_to_brightness as value_to_brightness
|
|
9
8
|
from qbusmqttapi.discovery import QbusMqttOutput as QbusMqttOutput
|
|
9
|
+
from qbusmqttapi.state import QbusMqttAnalogState
|
|
10
10
|
from typing import Any
|
|
11
11
|
|
|
12
12
|
PARALLEL_UPDATES: int
|
|
@@ -14,13 +14,14 @@ PARALLEL_UPDATES: int
|
|
|
14
14
|
async def async_setup_entry(hass: HomeAssistant, entry: QbusConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
15
15
|
|
|
16
16
|
class QbusLight(QbusEntity, LightEntity):
|
|
17
|
+
_state_cls = QbusMqttAnalogState
|
|
17
18
|
_attr_name: Incomplete
|
|
18
19
|
_attr_supported_color_modes: Incomplete
|
|
19
20
|
_attr_color_mode: Incomplete
|
|
20
21
|
def __init__(self, mqtt_output: QbusMqttOutput) -> None: ...
|
|
21
22
|
async def async_turn_on(self, **kwargs: Any) -> None: ...
|
|
22
23
|
async def async_turn_off(self, **kwargs: Any) -> None: ...
|
|
23
|
-
async def
|
|
24
|
+
async def _handle_state_received(self, state: QbusMqttAnalogState) -> None: ...
|
|
24
25
|
_attr_is_on: Incomplete
|
|
25
26
|
_attr_brightness: Incomplete
|
|
26
|
-
def _set_state(self, percentage: int
|
|
27
|
+
def _set_state(self, percentage: int) -> None: ...
|