homeassistant-stubs 2025.6.2__py3-none-any.whl → 2025.7.0b0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/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/sensor.pyi +29 -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/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 +7 -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/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/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 +4 -4
- 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/miele/const.pyi +24 -0
- homeassistant-stubs/components/miele/sensor.pyi +1 -2
- homeassistant-stubs/components/mqtt/config_flow.pyi +4 -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 +17 -0
- homeassistant-stubs/components/music_assistant/helpers.pyi +5 -0
- homeassistant-stubs/components/music_assistant/media_player.pyi +4 -4
- 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 +2 -1
- homeassistant-stubs/components/openai_conversation/config_flow.pyi +18 -14
- homeassistant-stubs/components/openai_conversation/const.pyi +1 -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/plugwise/climate.pyi +0 -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 +7 -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/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/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 +92 -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/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/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/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/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.2.dist-info → homeassistant_stubs-2025.7.0b0.dist-info}/METADATA +2 -2
- {homeassistant_stubs-2025.6.2.dist-info → homeassistant_stubs-2025.7.0b0.dist-info}/RECORD +315 -279
- 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.2.dist-info → homeassistant_stubs-2025.7.0b0.dist-info}/WHEEL +0 -0
- {homeassistant_stubs-2025.6.2.dist-info → homeassistant_stubs-2025.7.0b0.dist-info}/licenses/LICENSE +0 -0
@@ -1,16 +1,29 @@
|
|
1
1
|
import voluptuous as vol
|
2
2
|
from . import DeviceAutomationType as DeviceAutomationType, async_get_device_automation_platform as async_get_device_automation_platform
|
3
3
|
from .helpers import async_validate_device_automation_config as async_validate_device_automation_config
|
4
|
+
from _typeshed import Incomplete
|
4
5
|
from homeassistant.const import CONF_DOMAIN as CONF_DOMAIN
|
5
6
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
6
7
|
from homeassistant.helpers import condition as condition
|
7
|
-
from homeassistant.helpers.condition import
|
8
|
+
from homeassistant.helpers.condition import Condition as Condition, ConditionCheckerType as ConditionCheckerType, trace_condition_function as trace_condition_function
|
8
9
|
from homeassistant.helpers.typing import ConfigType as ConfigType
|
9
10
|
from typing import Any, Protocol
|
10
11
|
|
11
|
-
class DeviceAutomationConditionProtocol(
|
12
|
+
class DeviceAutomationConditionProtocol(Protocol):
|
13
|
+
CONDITION_SCHEMA: vol.Schema
|
14
|
+
async def async_validate_condition_config(self, hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
|
15
|
+
def async_condition_from_config(self, hass: HomeAssistant, config: ConfigType) -> ConditionCheckerType: ...
|
12
16
|
async def async_get_condition_capabilities(self, hass: HomeAssistant, config: ConfigType) -> dict[str, vol.Schema]: ...
|
13
17
|
async def async_get_conditions(self, hass: HomeAssistant, device_id: str) -> list[dict[str, Any]]: ...
|
14
18
|
|
15
|
-
|
16
|
-
|
19
|
+
class DeviceCondition(Condition):
|
20
|
+
_config: Incomplete
|
21
|
+
_hass: Incomplete
|
22
|
+
def __init__(self, hass: HomeAssistant, config: ConfigType) -> None: ...
|
23
|
+
@classmethod
|
24
|
+
async def async_validate_condition_config(cls, hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
|
25
|
+
async def async_condition_from_config(self) -> condition.ConditionCheckerType: ...
|
26
|
+
|
27
|
+
CONDITIONS: dict[str, type[Condition]]
|
28
|
+
|
29
|
+
async def async_get_conditions(hass: HomeAssistant) -> dict[str, type[Condition]]: ...
|
@@ -1,4 +1,4 @@
|
|
1
|
-
from .const import
|
1
|
+
from .const import DOMAIN as DOMAIN, PLATFORMS as PLATFORMS
|
2
2
|
from collections.abc import Mapping
|
3
3
|
from devolo_home_control_api.homecontrol import HomeControl
|
4
4
|
from devolo_home_control_api.mydevolo import Mydevolo
|
@@ -13,5 +13,6 @@ from typing import Any
|
|
13
13
|
type DevoloHomeControlConfigEntry = ConfigEntry[list[HomeControl]]
|
14
14
|
async def async_setup_entry(hass: HomeAssistant, entry: DevoloHomeControlConfigEntry) -> bool: ...
|
15
15
|
async def async_unload_entry(hass: HomeAssistant, entry: DevoloHomeControlConfigEntry) -> bool: ...
|
16
|
-
async def async_remove_config_entry_device(hass: HomeAssistant, config_entry:
|
16
|
+
async def async_remove_config_entry_device(hass: HomeAssistant, config_entry: DevoloHomeControlConfigEntry, device_entry: DeviceEntry) -> bool: ...
|
17
17
|
def configure_mydevolo(conf: Mapping[str, Any]) -> Mydevolo: ...
|
18
|
+
def check_mydevolo_and_get_gateway_ids(mydevolo: Mydevolo) -> list[str]: ...
|
@@ -1,5 +1,5 @@
|
|
1
1
|
from . import DevoloHomeControlConfigEntry as DevoloHomeControlConfigEntry
|
2
|
-
from .
|
2
|
+
from .entity import DevoloMultiLevelSwitchDeviceEntity as DevoloMultiLevelSwitchDeviceEntity
|
3
3
|
from _typeshed import Incomplete
|
4
4
|
from devolo_home_control_api.devices.zwave import Zwave as Zwave
|
5
5
|
from devolo_home_control_api.homecontrol import HomeControl as HomeControl
|
@@ -1,5 +1,5 @@
|
|
1
1
|
from . import DevoloHomeControlConfigEntry as DevoloHomeControlConfigEntry
|
2
|
-
from .
|
2
|
+
from .entity import DevoloMultiLevelSwitchDeviceEntity as DevoloMultiLevelSwitchDeviceEntity
|
3
3
|
from _typeshed import Incomplete
|
4
4
|
from homeassistant.components.cover import CoverDeviceClass as CoverDeviceClass, CoverEntity as CoverEntity, CoverEntityFeature as CoverEntityFeature
|
5
5
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
@@ -25,3 +25,9 @@ class DevoloDeviceEntity(Entity):
|
|
25
25
|
async def async_will_remove_from_hass(self) -> None: ...
|
26
26
|
def _sync(self, message: tuple) -> None: ...
|
27
27
|
def _generic_message(self, message: tuple) -> None: ...
|
28
|
+
|
29
|
+
class DevoloMultiLevelSwitchDeviceEntity(DevoloDeviceEntity):
|
30
|
+
_attr_name: Incomplete
|
31
|
+
_multi_level_switch_property: Incomplete
|
32
|
+
_value: Incomplete
|
33
|
+
def __init__(self, homecontrol: HomeControl, device_instance: Zwave, element_uid: str) -> None: ...
|
@@ -1,5 +1,5 @@
|
|
1
1
|
from . import DevoloHomeControlConfigEntry as DevoloHomeControlConfigEntry
|
2
|
-
from .
|
2
|
+
from .entity import DevoloMultiLevelSwitchDeviceEntity as DevoloMultiLevelSwitchDeviceEntity
|
3
3
|
from _typeshed import Incomplete
|
4
4
|
from devolo_home_control_api.devices.zwave import Zwave as Zwave
|
5
5
|
from devolo_home_control_api.homecontrol import HomeControl as HomeControl
|
@@ -1,5 +1,5 @@
|
|
1
1
|
from . import DevoloHomeControlConfigEntry as DevoloHomeControlConfigEntry
|
2
|
-
from .
|
2
|
+
from .entity import DevoloMultiLevelSwitchDeviceEntity as DevoloMultiLevelSwitchDeviceEntity
|
3
3
|
from _typeshed import Incomplete
|
4
4
|
from devolo_home_control_api.devices.zwave import Zwave as Zwave
|
5
5
|
from devolo_home_control_api.homecontrol import HomeControl as HomeControl
|
@@ -14,9 +14,11 @@ PARALLEL_UPDATES: int
|
|
14
14
|
async def async_setup_entry(hass: HomeAssistant, entry: DevoloHomeNetworkConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
15
15
|
|
16
16
|
class DevoloScannerEntity(CoordinatorEntity[DevoloDataUpdateCoordinator[list[ConnectedStationInfo]]], ScannerEntity):
|
17
|
+
_attr_has_entity_name: bool
|
17
18
|
_attr_translation_key: str
|
18
19
|
_device: Incomplete
|
19
20
|
_attr_mac_address: Incomplete
|
21
|
+
_attr_name: Incomplete
|
20
22
|
def __init__(self, coordinator: DevoloDataUpdateCoordinator[list[ConnectedStationInfo]], device: Device, mac: str) -> None: ...
|
21
23
|
@property
|
22
24
|
def extra_state_attributes(self) -> dict[str, str]: ...
|
@@ -6,13 +6,14 @@ from homeassistant.const import CONF_NAME as CONF_NAME, CONF_PORT as CONF_PORT
|
|
6
6
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
7
7
|
from homeassistant.helpers.device_registry import DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
|
8
8
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
9
|
+
from typing import Literal
|
9
10
|
|
10
11
|
DEFAULT_RETRIES: int
|
11
12
|
MAX_RESULTS: int
|
12
13
|
_LOGGER: Incomplete
|
13
14
|
SCAN_INTERVAL: Incomplete
|
14
15
|
|
15
|
-
def sort_ips(ips: list, querytype:
|
16
|
+
def sort_ips(ips: list, querytype: Literal['A', 'AAAA']) -> list: ...
|
16
17
|
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
17
18
|
|
18
19
|
class WanIpSensor(SensorEntity):
|
@@ -23,7 +24,7 @@ class WanIpSensor(SensorEntity):
|
|
23
24
|
_attr_unique_id: Incomplete
|
24
25
|
hostname: Incomplete
|
25
26
|
resolver: Incomplete
|
26
|
-
querytype:
|
27
|
+
querytype: Literal['A', 'AAAA']
|
27
28
|
_retries: Incomplete
|
28
29
|
_attr_extra_state_attributes: Incomplete
|
29
30
|
_attr_device_info: Incomplete
|
@@ -1,5 +1,5 @@
|
|
1
1
|
from .const import CONF_DOWNLOAD_DIR as CONF_DOWNLOAD_DIR, _LOGGER as _LOGGER
|
2
|
-
from .services import
|
2
|
+
from .services import async_setup_services as async_setup_services
|
3
3
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
4
4
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
5
5
|
|
@@ -1,7 +1,8 @@
|
|
1
1
|
from .const import ATTR_FILENAME as ATTR_FILENAME, ATTR_OVERWRITE as ATTR_OVERWRITE, ATTR_SUBDIR as ATTR_SUBDIR, ATTR_URL as ATTR_URL, CONF_DOWNLOAD_DIR as CONF_DOWNLOAD_DIR, DOMAIN as DOMAIN, DOWNLOAD_COMPLETED_EVENT as DOWNLOAD_COMPLETED_EVENT, DOWNLOAD_FAILED_EVENT as DOWNLOAD_FAILED_EVENT, SERVICE_DOWNLOAD_FILE as SERVICE_DOWNLOAD_FILE, _LOGGER as _LOGGER
|
2
|
-
from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall
|
2
|
+
from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
|
3
3
|
from homeassistant.helpers.service import async_register_admin_service as async_register_admin_service
|
4
4
|
from homeassistant.util import raise_if_invalid_filename as raise_if_invalid_filename, raise_if_invalid_path as raise_if_invalid_path
|
5
5
|
|
6
6
|
def download_file(service: ServiceCall) -> None: ...
|
7
|
-
|
7
|
+
@callback
|
8
|
+
def async_setup_services(hass: HomeAssistant) -> None: ...
|
@@ -1,25 +1,25 @@
|
|
1
1
|
from . import EcovacsConfigEntry as EcovacsConfigEntry
|
2
|
-
from .entity import EcovacsCapabilityEntityDescription as EcovacsCapabilityEntityDescription, EcovacsDescriptionEntity as EcovacsDescriptionEntity
|
2
|
+
from .entity import EcovacsCapabilityEntityDescription as EcovacsCapabilityEntityDescription, EcovacsDescriptionEntity as EcovacsDescriptionEntity
|
3
3
|
from .util import get_supported_entities as get_supported_entities
|
4
4
|
from _typeshed import Incomplete
|
5
5
|
from collections.abc import Callable as Callable
|
6
6
|
from dataclasses import dataclass
|
7
7
|
from deebot_client.capabilities import CapabilityEvent
|
8
|
+
from deebot_client.events.base import Event as Event
|
8
9
|
from homeassistant.components.binary_sensor import BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription
|
9
10
|
from homeassistant.const import EntityCategory as EntityCategory
|
10
11
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
11
12
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
12
|
-
from typing import Generic
|
13
13
|
|
14
14
|
@dataclass(kw_only=True, frozen=True)
|
15
|
-
class EcovacsBinarySensorEntityDescription(BinarySensorEntityDescription, EcovacsCapabilityEntityDescription
|
15
|
+
class EcovacsBinarySensorEntityDescription[EventT: Event](BinarySensorEntityDescription, EcovacsCapabilityEntityDescription):
|
16
16
|
value_fn: Callable[[EventT], bool | None]
|
17
17
|
|
18
18
|
ENTITY_DESCRIPTIONS: tuple[EcovacsBinarySensorEntityDescription, ...]
|
19
19
|
|
20
20
|
async def async_setup_entry(hass: HomeAssistant, config_entry: EcovacsConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
21
21
|
|
22
|
-
class EcovacsBinarySensor(EcovacsDescriptionEntity[CapabilityEvent[EventT]], BinarySensorEntity):
|
22
|
+
class EcovacsBinarySensor[EventT: Event](EcovacsDescriptionEntity[CapabilityEvent[EventT]], BinarySensorEntity):
|
23
23
|
entity_description: EcovacsBinarySensorEntityDescription
|
24
24
|
_attr_is_on: Incomplete
|
25
25
|
async def async_added_to_hass(self) -> None: ...
|
@@ -4,16 +4,13 @@ from collections.abc import Callable as Callable, Coroutine
|
|
4
4
|
from dataclasses import dataclass
|
5
5
|
from deebot_client.capabilities import Capabilities as Capabilities
|
6
6
|
from deebot_client.device import Device as Device
|
7
|
-
from deebot_client.events.base import Event
|
7
|
+
from deebot_client.events.base import Event as Event
|
8
8
|
from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
|
9
9
|
from homeassistant.helpers.entity import Entity as Entity, EntityDescription as EntityDescription
|
10
10
|
from sucks import EventListener as EventListener, VacBot as VacBot
|
11
|
-
from typing import Any
|
11
|
+
from typing import Any
|
12
12
|
|
13
|
-
|
14
|
-
EventT = TypeVar('EventT', bound=Event)
|
15
|
-
|
16
|
-
class EcovacsEntity(Entity, Generic[CapabilityEntity]):
|
13
|
+
class EcovacsEntity[CapabilityEntityT](Entity):
|
17
14
|
_attr_should_poll: bool
|
18
15
|
_attr_has_entity_name: bool
|
19
16
|
_always_available: bool
|
@@ -21,21 +18,21 @@ class EcovacsEntity(Entity, Generic[CapabilityEntity]):
|
|
21
18
|
_device: Incomplete
|
22
19
|
_capability: Incomplete
|
23
20
|
_subscribed_events: set[type[Event]]
|
24
|
-
def __init__(self, device: Device, capability:
|
21
|
+
def __init__(self, device: Device, capability: CapabilityEntityT, **kwargs: Any) -> None: ...
|
25
22
|
@property
|
26
23
|
def device_info(self) -> DeviceInfo | None: ...
|
27
24
|
_attr_available: Incomplete
|
28
25
|
async def async_added_to_hass(self) -> None: ...
|
29
|
-
def _subscribe(self, event_type: type[EventT], callback: Callable[[EventT], Coroutine[Any, Any, None]]) -> None: ...
|
26
|
+
def _subscribe[EventT: Event](self, event_type: type[EventT], callback: Callable[[EventT], Coroutine[Any, Any, None]]) -> None: ...
|
30
27
|
async def async_update(self) -> None: ...
|
31
28
|
|
32
|
-
class EcovacsDescriptionEntity(EcovacsEntity[
|
29
|
+
class EcovacsDescriptionEntity[CapabilityEntityT](EcovacsEntity[CapabilityEntityT]):
|
33
30
|
entity_description: Incomplete
|
34
|
-
def __init__(self, device: Device, capability:
|
31
|
+
def __init__(self, device: Device, capability: CapabilityEntityT, entity_description: EntityDescription, **kwargs: Any) -> None: ...
|
35
32
|
|
36
33
|
@dataclass(kw_only=True, frozen=True)
|
37
|
-
class EcovacsCapabilityEntityDescription(EntityDescription
|
38
|
-
capability_fn: Callable[[Capabilities],
|
34
|
+
class EcovacsCapabilityEntityDescription[CapabilityEntityT](EntityDescription):
|
35
|
+
capability_fn: Callable[[Capabilities], CapabilityEntityT | None]
|
39
36
|
|
40
37
|
class EcovacsLegacyEntity(Entity):
|
41
38
|
_attr_has_entity_name: bool
|
@@ -1,18 +1,18 @@
|
|
1
1
|
from . import EcovacsConfigEntry as EcovacsConfigEntry
|
2
|
-
from .entity import EcovacsCapabilityEntityDescription as EcovacsCapabilityEntityDescription, EcovacsDescriptionEntity as EcovacsDescriptionEntity, EcovacsEntity as EcovacsEntity
|
2
|
+
from .entity import EcovacsCapabilityEntityDescription as EcovacsCapabilityEntityDescription, EcovacsDescriptionEntity as EcovacsDescriptionEntity, EcovacsEntity as EcovacsEntity
|
3
3
|
from .util import get_supported_entities as get_supported_entities
|
4
4
|
from _typeshed import Incomplete
|
5
5
|
from collections.abc import Callable as Callable
|
6
6
|
from dataclasses import dataclass
|
7
7
|
from deebot_client.capabilities import CapabilitySet
|
8
|
+
from deebot_client.events.base import Event as Event
|
8
9
|
from homeassistant.components.number import NumberEntity as NumberEntity, NumberEntityDescription as NumberEntityDescription, NumberMode as NumberMode
|
9
10
|
from homeassistant.const import DEGREE as DEGREE, EntityCategory as EntityCategory
|
10
11
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
11
12
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
12
|
-
from typing import Generic
|
13
13
|
|
14
14
|
@dataclass(kw_only=True, frozen=True)
|
15
|
-
class EcovacsNumberEntityDescription(NumberEntityDescription, EcovacsCapabilityEntityDescription
|
15
|
+
class EcovacsNumberEntityDescription[EventT: Event](NumberEntityDescription, EcovacsCapabilityEntityDescription):
|
16
16
|
native_max_value_fn: Callable[[EventT], float | int | None] = ...
|
17
17
|
value_fn: Callable[[EventT], float | None]
|
18
18
|
|
@@ -20,7 +20,7 @@ ENTITY_DESCRIPTIONS: tuple[EcovacsNumberEntityDescription, ...]
|
|
20
20
|
|
21
21
|
async def async_setup_entry(hass: HomeAssistant, config_entry: EcovacsConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
22
22
|
|
23
|
-
class EcovacsNumberEntity(EcovacsDescriptionEntity[CapabilitySet[EventT, [int]]], NumberEntity):
|
23
|
+
class EcovacsNumberEntity[EventT: Event](EcovacsDescriptionEntity[CapabilitySet[EventT, [int]]], NumberEntity):
|
24
24
|
entity_description: EcovacsNumberEntityDescription
|
25
25
|
_attr_native_value: Incomplete
|
26
26
|
_attr_native_max_value: Incomplete
|
@@ -1,19 +1,20 @@
|
|
1
1
|
from . import EcovacsConfigEntry as EcovacsConfigEntry
|
2
|
-
from .entity import EcovacsCapabilityEntityDescription as EcovacsCapabilityEntityDescription, EcovacsDescriptionEntity as EcovacsDescriptionEntity
|
2
|
+
from .entity import EcovacsCapabilityEntityDescription as EcovacsCapabilityEntityDescription, EcovacsDescriptionEntity as EcovacsDescriptionEntity
|
3
3
|
from .util import get_name_key as get_name_key, get_supported_entities as get_supported_entities
|
4
4
|
from _typeshed import Incomplete
|
5
5
|
from collections.abc import Callable as Callable
|
6
6
|
from dataclasses import dataclass
|
7
7
|
from deebot_client.capabilities import CapabilitySetTypes
|
8
8
|
from deebot_client.device import Device as Device
|
9
|
+
from deebot_client.events.base import Event as Event
|
9
10
|
from homeassistant.components.select import SelectEntity as SelectEntity, SelectEntityDescription as SelectEntityDescription
|
10
11
|
from homeassistant.const import EntityCategory as EntityCategory
|
11
12
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
12
13
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
13
|
-
from typing import Any
|
14
|
+
from typing import Any
|
14
15
|
|
15
16
|
@dataclass(kw_only=True, frozen=True)
|
16
|
-
class EcovacsSelectEntityDescription(SelectEntityDescription, EcovacsCapabilityEntityDescription
|
17
|
+
class EcovacsSelectEntityDescription[EventT: Event](SelectEntityDescription, EcovacsCapabilityEntityDescription):
|
17
18
|
current_option_fn: Callable[[EventT], str | None]
|
18
19
|
options_fn: Callable[[CapabilitySetTypes], list[str]]
|
19
20
|
|
@@ -21,7 +22,7 @@ ENTITY_DESCRIPTIONS: tuple[EcovacsSelectEntityDescription, ...]
|
|
21
22
|
|
22
23
|
async def async_setup_entry(hass: HomeAssistant, config_entry: EcovacsConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
23
24
|
|
24
|
-
class EcovacsSelectEntity(EcovacsDescriptionEntity[CapabilitySetTypes[EventT, [str], str]], SelectEntity):
|
25
|
+
class EcovacsSelectEntity[EventT: Event](EcovacsDescriptionEntity[CapabilitySetTypes[EventT, [str], str]], SelectEntity):
|
25
26
|
_attr_current_option: str | None
|
26
27
|
entity_description: EcovacsSelectEntityDescription
|
27
28
|
_attr_options: Incomplete
|
@@ -1,6 +1,6 @@
|
|
1
1
|
from . import EcovacsConfigEntry as EcovacsConfigEntry
|
2
2
|
from .const import LEGACY_SUPPORTED_LIFESPANS as LEGACY_SUPPORTED_LIFESPANS, SUPPORTED_LIFESPANS as SUPPORTED_LIFESPANS
|
3
|
-
from .entity import EcovacsCapabilityEntityDescription as EcovacsCapabilityEntityDescription, EcovacsDescriptionEntity as EcovacsDescriptionEntity, EcovacsEntity as EcovacsEntity, EcovacsLegacyEntity as EcovacsLegacyEntity
|
3
|
+
from .entity import EcovacsCapabilityEntityDescription as EcovacsCapabilityEntityDescription, EcovacsDescriptionEntity as EcovacsDescriptionEntity, EcovacsEntity as EcovacsEntity, EcovacsLegacyEntity as EcovacsLegacyEntity
|
4
4
|
from .util import get_name_key as get_name_key, get_options as get_options, get_supported_entities as get_supported_entities
|
5
5
|
from _typeshed import Incomplete
|
6
6
|
from collections.abc import Callable as Callable
|
@@ -14,10 +14,10 @@ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callb
|
|
14
14
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
15
15
|
from homeassistant.helpers.typing import StateType as StateType
|
16
16
|
from sucks import VacBot as VacBot
|
17
|
-
from typing import Any
|
17
|
+
from typing import Any
|
18
18
|
|
19
19
|
@dataclass(kw_only=True, frozen=True)
|
20
|
-
class EcovacsSensorEntityDescription(EcovacsCapabilityEntityDescription, SensorEntityDescription
|
20
|
+
class EcovacsSensorEntityDescription[EventT: Event](EcovacsCapabilityEntityDescription, SensorEntityDescription):
|
21
21
|
value_fn: Callable[[EventT], StateType]
|
22
22
|
native_unit_of_measurement_fn: Callable[[DeviceType], str | None] | None = ...
|
23
23
|
|
@@ -10,16 +10,15 @@ from homeassistant.components.number import NumberDeviceClass as NumberDeviceCla
|
|
10
10
|
from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, PRECISION_HALVES as PRECISION_HALVES, PRECISION_TENTHS as PRECISION_TENTHS, PRECISION_WHOLE as PRECISION_WHOLE, UnitOfTemperature as UnitOfTemperature
|
11
11
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
12
12
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
13
|
-
from typing import
|
13
|
+
from typing import override
|
14
14
|
|
15
15
|
PARALLEL_UPDATES: int
|
16
|
-
_DeviceT_co = TypeVar('_DeviceT_co', bound=EheimDigitalDevice, covariant=True)
|
17
16
|
|
18
17
|
@dataclass(frozen=True, kw_only=True)
|
19
|
-
class EheimDigitalNumberDescription(NumberEntityDescription
|
20
|
-
value_fn: Callable[[
|
21
|
-
set_value_fn: Callable[[
|
22
|
-
uom_fn: Callable[[
|
18
|
+
class EheimDigitalNumberDescription[_DeviceT: EheimDigitalDevice](NumberEntityDescription):
|
19
|
+
value_fn: Callable[[_DeviceT], float | None]
|
20
|
+
set_value_fn: Callable[[_DeviceT, float], Awaitable[None]]
|
21
|
+
uom_fn: Callable[[_DeviceT], str] | None = ...
|
23
22
|
|
24
23
|
CLASSICVARIO_DESCRIPTIONS: tuple[EheimDigitalNumberDescription[EheimDigitalClassicVario], ...]
|
25
24
|
HEATER_DESCRIPTIONS: tuple[EheimDigitalNumberDescription[EheimDigitalHeater], ...]
|
@@ -27,10 +26,10 @@ GENERAL_DESCRIPTIONS: tuple[EheimDigitalNumberDescription[EheimDigitalDevice], .
|
|
27
26
|
|
28
27
|
async def async_setup_entry(hass: HomeAssistant, entry: EheimDigitalConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
29
28
|
|
30
|
-
class EheimDigitalNumber(EheimDigitalEntity[
|
31
|
-
entity_description: EheimDigitalNumberDescription[
|
29
|
+
class EheimDigitalNumber[_DeviceT: EheimDigitalDevice](EheimDigitalEntity[_DeviceT], NumberEntity):
|
30
|
+
entity_description: EheimDigitalNumberDescription[_DeviceT]
|
32
31
|
_attr_unique_id: Incomplete
|
33
|
-
def __init__(self, coordinator: EheimDigitalUpdateCoordinator, device:
|
32
|
+
def __init__(self, coordinator: EheimDigitalUpdateCoordinator, device: _DeviceT, description: EheimDigitalNumberDescription[_DeviceT]) -> None: ...
|
34
33
|
@override
|
35
34
|
@exception_handler
|
36
35
|
async def async_set_native_value(self, value: float) -> None: ...
|
@@ -4,28 +4,27 @@ from _typeshed import Incomplete
|
|
4
4
|
from collections.abc import Awaitable, Callable as Callable
|
5
5
|
from dataclasses import dataclass
|
6
6
|
from eheimdigital.classic_vario import EheimDigitalClassicVario
|
7
|
-
from eheimdigital.device import EheimDigitalDevice
|
7
|
+
from eheimdigital.device import EheimDigitalDevice as EheimDigitalDevice
|
8
8
|
from homeassistant.components.select import SelectEntity as SelectEntity, SelectEntityDescription as SelectEntityDescription
|
9
9
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
10
10
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
11
|
-
from typing import
|
11
|
+
from typing import override
|
12
12
|
|
13
13
|
PARALLEL_UPDATES: int
|
14
|
-
_DeviceT_co = TypeVar('_DeviceT_co', bound=EheimDigitalDevice, covariant=True)
|
15
14
|
|
16
15
|
@dataclass(frozen=True, kw_only=True)
|
17
|
-
class EheimDigitalSelectDescription(SelectEntityDescription
|
18
|
-
value_fn: Callable[[
|
19
|
-
set_value_fn: Callable[[
|
16
|
+
class EheimDigitalSelectDescription[_DeviceT: EheimDigitalDevice](SelectEntityDescription):
|
17
|
+
value_fn: Callable[[_DeviceT], str | None]
|
18
|
+
set_value_fn: Callable[[_DeviceT, str], Awaitable[None]]
|
20
19
|
|
21
20
|
CLASSICVARIO_DESCRIPTIONS: tuple[EheimDigitalSelectDescription[EheimDigitalClassicVario], ...]
|
22
21
|
|
23
22
|
async def async_setup_entry(hass: HomeAssistant, entry: EheimDigitalConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
24
23
|
|
25
|
-
class EheimDigitalSelect(EheimDigitalEntity[
|
26
|
-
entity_description: EheimDigitalSelectDescription[
|
24
|
+
class EheimDigitalSelect[_DeviceT: EheimDigitalDevice](EheimDigitalEntity[_DeviceT], SelectEntity):
|
25
|
+
entity_description: EheimDigitalSelectDescription[_DeviceT]
|
27
26
|
_attr_unique_id: Incomplete
|
28
|
-
def __init__(self, coordinator: EheimDigitalUpdateCoordinator, device:
|
27
|
+
def __init__(self, coordinator: EheimDigitalUpdateCoordinator, device: _DeviceT, description: EheimDigitalSelectDescription[_DeviceT]) -> None: ...
|
29
28
|
@override
|
30
29
|
@exception_handler
|
31
30
|
async def async_select_option(self, option: str) -> None: ...
|
@@ -4,29 +4,28 @@ from _typeshed import Incomplete
|
|
4
4
|
from collections.abc import Callable as Callable
|
5
5
|
from dataclasses import dataclass
|
6
6
|
from eheimdigital.classic_vario import EheimDigitalClassicVario
|
7
|
-
from eheimdigital.device import EheimDigitalDevice
|
7
|
+
from eheimdigital.device import EheimDigitalDevice as EheimDigitalDevice
|
8
8
|
from homeassistant.components.sensor import SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription
|
9
9
|
from homeassistant.components.sensor.const import SensorDeviceClass as SensorDeviceClass
|
10
10
|
from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfTime as UnitOfTime
|
11
11
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
12
12
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
13
|
-
from typing import
|
13
|
+
from typing import override
|
14
14
|
|
15
15
|
PARALLEL_UPDATES: int
|
16
|
-
_DeviceT_co = TypeVar('_DeviceT_co', bound=EheimDigitalDevice, covariant=True)
|
17
16
|
|
18
17
|
@dataclass(frozen=True, kw_only=True)
|
19
|
-
class EheimDigitalSensorDescription(SensorEntityDescription
|
20
|
-
value_fn: Callable[[
|
18
|
+
class EheimDigitalSensorDescription[_DeviceT: EheimDigitalDevice](SensorEntityDescription):
|
19
|
+
value_fn: Callable[[_DeviceT], float | str | None]
|
21
20
|
|
22
21
|
CLASSICVARIO_DESCRIPTIONS: tuple[EheimDigitalSensorDescription[EheimDigitalClassicVario], ...]
|
23
22
|
|
24
23
|
async def async_setup_entry(hass: HomeAssistant, entry: EheimDigitalConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
25
24
|
|
26
|
-
class EheimDigitalSensor(EheimDigitalEntity[
|
27
|
-
entity_description: EheimDigitalSensorDescription[
|
25
|
+
class EheimDigitalSensor[_DeviceT: EheimDigitalDevice](EheimDigitalEntity[_DeviceT], SensorEntity):
|
26
|
+
entity_description: EheimDigitalSensorDescription[_DeviceT]
|
28
27
|
_attr_unique_id: Incomplete
|
29
|
-
def __init__(self, coordinator: EheimDigitalUpdateCoordinator, device:
|
28
|
+
def __init__(self, coordinator: EheimDigitalUpdateCoordinator, device: _DeviceT, description: EheimDigitalSensorDescription[_DeviceT]) -> None: ...
|
30
29
|
_attr_native_value: Incomplete
|
31
30
|
@override
|
32
31
|
def _async_update_attrs(self) -> None: ...
|
@@ -5,31 +5,30 @@ from collections.abc import Awaitable, Callable as Callable
|
|
5
5
|
from dataclasses import dataclass
|
6
6
|
from datetime import time
|
7
7
|
from eheimdigital.classic_vario import EheimDigitalClassicVario
|
8
|
-
from eheimdigital.device import EheimDigitalDevice
|
8
|
+
from eheimdigital.device import EheimDigitalDevice as EheimDigitalDevice
|
9
9
|
from eheimdigital.heater import EheimDigitalHeater
|
10
10
|
from homeassistant.components.time import TimeEntity as TimeEntity, TimeEntityDescription as TimeEntityDescription
|
11
11
|
from homeassistant.const import EntityCategory as EntityCategory
|
12
12
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
13
13
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
14
|
-
from typing import
|
14
|
+
from typing import override
|
15
15
|
|
16
16
|
PARALLEL_UPDATES: int
|
17
|
-
_DeviceT_co = TypeVar('_DeviceT_co', bound=EheimDigitalDevice, covariant=True)
|
18
17
|
|
19
18
|
@dataclass(frozen=True, kw_only=True)
|
20
|
-
class EheimDigitalTimeDescription(TimeEntityDescription
|
21
|
-
value_fn: Callable[[
|
22
|
-
set_value_fn: Callable[[
|
19
|
+
class EheimDigitalTimeDescription[_DeviceT: EheimDigitalDevice](TimeEntityDescription):
|
20
|
+
value_fn: Callable[[_DeviceT], time | None]
|
21
|
+
set_value_fn: Callable[[_DeviceT, time], Awaitable[None]]
|
23
22
|
|
24
23
|
CLASSICVARIO_DESCRIPTIONS: tuple[EheimDigitalTimeDescription[EheimDigitalClassicVario], ...]
|
25
24
|
HEATER_DESCRIPTIONS: tuple[EheimDigitalTimeDescription[EheimDigitalHeater], ...]
|
26
25
|
|
27
26
|
async def async_setup_entry(hass: HomeAssistant, entry: EheimDigitalConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
28
27
|
|
29
|
-
class EheimDigitalTime(EheimDigitalEntity[
|
30
|
-
entity_description: EheimDigitalTimeDescription[
|
28
|
+
class EheimDigitalTime[_DeviceT: EheimDigitalDevice](EheimDigitalEntity[_DeviceT], TimeEntity):
|
29
|
+
entity_description: EheimDigitalTimeDescription[_DeviceT]
|
31
30
|
_attr_unique_id: Incomplete
|
32
|
-
def __init__(self, coordinator: EheimDigitalUpdateCoordinator, device:
|
31
|
+
def __init__(self, coordinator: EheimDigitalUpdateCoordinator, device: _DeviceT, description: EheimDigitalTimeDescription[_DeviceT]) -> None: ...
|
33
32
|
@override
|
34
33
|
@exception_handler
|
35
34
|
async def async_set_value(self, value: time) -> None: ...
|
@@ -1,13 +1,14 @@
|
|
1
1
|
from .const import ATTR_KEY as ATTR_KEY, ATTR_KEYPAD_ID as ATTR_KEYPAD_ID, ATTR_KEYPAD_NAME as ATTR_KEYPAD_NAME, ATTR_KEY_NAME as ATTR_KEY_NAME, CONF_AREA as CONF_AREA, CONF_AUTO_CONFIGURE as CONF_AUTO_CONFIGURE, CONF_COUNTER as CONF_COUNTER, CONF_KEYPAD as CONF_KEYPAD, CONF_OUTPUT as CONF_OUTPUT, CONF_PLC as CONF_PLC, CONF_SETTING as CONF_SETTING, CONF_TASK as CONF_TASK, CONF_THERMOSTAT as CONF_THERMOSTAT, DISCOVERY_INTERVAL as DISCOVERY_INTERVAL, DISCOVER_SCAN_TIMEOUT as DISCOVER_SCAN_TIMEOUT, DOMAIN as DOMAIN, ELK_ELEMENTS as ELK_ELEMENTS, EVENT_ELKM1_KEYPAD_KEY_PRESSED as EVENT_ELKM1_KEYPAD_KEY_PRESSED, LOGIN_TIMEOUT as LOGIN_TIMEOUT
|
2
2
|
from .discovery import async_discover_device as async_discover_device, async_discover_devices as async_discover_devices, async_trigger_discovery as async_trigger_discovery, async_update_entry_from_discovery as async_update_entry_from_discovery
|
3
3
|
from .models import ELKM1Data as ELKM1Data
|
4
|
+
from .services import async_setup_services as async_setup_services
|
4
5
|
from _typeshed import Incomplete
|
5
6
|
from elkm1_lib.elements import Element as Element
|
6
|
-
from elkm1_lib.elk import Elk
|
7
|
+
from elkm1_lib.elk import Elk
|
7
8
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry, SOURCE_IMPORT as SOURCE_IMPORT
|
8
9
|
from homeassistant.const import CONF_ENABLED as CONF_ENABLED, CONF_EXCLUDE as CONF_EXCLUDE, CONF_HOST as CONF_HOST, CONF_INCLUDE as CONF_INCLUDE, CONF_PASSWORD as CONF_PASSWORD, CONF_PREFIX as CONF_PREFIX, CONF_TEMPERATURE_UNIT as CONF_TEMPERATURE_UNIT, CONF_USERNAME as CONF_USERNAME, CONF_ZONE as CONF_ZONE, Platform as Platform, UnitOfTemperature as UnitOfTemperature
|
9
|
-
from homeassistant.core import HomeAssistant as HomeAssistant,
|
10
|
-
from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
|
10
|
+
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
11
|
+
from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
|
11
12
|
from homeassistant.helpers.event import async_track_time_interval as async_track_time_interval
|
12
13
|
from homeassistant.helpers.typing import ConfigType as ConfigType
|
13
14
|
from homeassistant.util.network import is_ip_address as is_ip_address
|
@@ -16,8 +17,6 @@ type ElkM1ConfigEntry = ConfigEntry[ELKM1Data]
|
|
16
17
|
SYNC_TIMEOUT: int
|
17
18
|
_LOGGER: Incomplete
|
18
19
|
PLATFORMS: Incomplete
|
19
|
-
SPEAK_SERVICE_SCHEMA: Incomplete
|
20
|
-
SET_TIME_SERVICE_SCHEMA: Incomplete
|
21
20
|
|
22
21
|
def hostname_from_url(url: str) -> str: ...
|
23
22
|
def _host_validator(config: dict[str, str]) -> dict[str, str]: ...
|
@@ -33,9 +32,5 @@ async def async_setup(hass: HomeAssistant, hass_config: ConfigType) -> bool: ...
|
|
33
32
|
def _async_find_matching_config_entry(hass: HomeAssistant, prefix: str) -> ConfigEntry | None: ...
|
34
33
|
async def async_setup_entry(hass: HomeAssistant, entry: ElkM1ConfigEntry) -> bool: ...
|
35
34
|
def _included(ranges: list[tuple[int, int]], set_to: bool, values: list[bool]) -> None: ...
|
36
|
-
def _find_elk_by_prefix(hass: HomeAssistant, prefix: str) -> Elk | None: ...
|
37
35
|
async def async_unload_entry(hass: HomeAssistant, entry: ElkM1ConfigEntry) -> bool: ...
|
38
36
|
async def async_wait_for_elk_to_sync(elk: Elk, login_timeout: int, sync_timeout: int) -> bool: ...
|
39
|
-
@callback
|
40
|
-
def _async_get_elk_panel(hass: HomeAssistant, service: ServiceCall) -> Panel: ...
|
41
|
-
def _create_elk_services(hass: HomeAssistant) -> None: ...
|
@@ -0,0 +1,21 @@
|
|
1
|
+
from .const import DOMAIN as DOMAIN
|
2
|
+
from .models import ELKM1Data as ELKM1Data
|
3
|
+
from _typeshed import Incomplete
|
4
|
+
from elkm1_lib.elk import Elk as Elk, Panel as Panel
|
5
|
+
from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
|
6
|
+
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
|
7
|
+
|
8
|
+
SPEAK_SERVICE_SCHEMA: Incomplete
|
9
|
+
SET_TIME_SERVICE_SCHEMA: Incomplete
|
10
|
+
|
11
|
+
def _find_elk_by_prefix(hass: HomeAssistant, prefix: str) -> Elk | None: ...
|
12
|
+
@callback
|
13
|
+
def _async_get_elk_panel(service: ServiceCall) -> Panel: ...
|
14
|
+
@callback
|
15
|
+
def _speak_word_service(service: ServiceCall) -> None: ...
|
16
|
+
@callback
|
17
|
+
def _speak_phrase_service(service: ServiceCall) -> None: ...
|
18
|
+
@callback
|
19
|
+
def _set_time_service(service: ServiceCall) -> None: ...
|
20
|
+
@callback
|
21
|
+
def async_setup_services(hass: HomeAssistant) -> None: ...
|
@@ -1,11 +1,11 @@
|
|
1
|
-
from .const import DOMAIN as DOMAIN,
|
1
|
+
from .const import DOMAIN as DOMAIN, PLATFORMS as PLATFORMS
|
2
2
|
from .coordinator import EnphaseConfigEntry as EnphaseConfigEntry, EnphaseUpdateCoordinator as EnphaseUpdateCoordinator
|
3
3
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
4
4
|
from homeassistant.const import CONF_HOST as CONF_HOST
|
5
5
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
6
6
|
from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
|
7
7
|
from homeassistant.helpers import device_registry as dr
|
8
|
-
from homeassistant.helpers.
|
8
|
+
from homeassistant.helpers.aiohttp_client import async_create_clientsession as async_create_clientsession
|
9
9
|
|
10
10
|
async def async_setup_entry(hass: HomeAssistant, entry: EnphaseConfigEntry) -> bool: ...
|
11
11
|
async def async_reload_entry(hass: HomeAssistant, entry: ConfigEntry) -> None: ...
|
@@ -6,7 +6,7 @@ from collections.abc import Mapping
|
|
6
6
|
from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow, SOURCE_REAUTH as SOURCE_REAUTH
|
7
7
|
from homeassistant.const import CONF_HOST as CONF_HOST, CONF_NAME as CONF_NAME, CONF_PASSWORD as CONF_PASSWORD, CONF_TOKEN as CONF_TOKEN, CONF_USERNAME as CONF_USERNAME
|
8
8
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
9
|
-
from homeassistant.helpers.
|
9
|
+
from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
|
10
10
|
from homeassistant.helpers.service_info.zeroconf import ZeroconfServiceInfo as ZeroconfServiceInfo
|
11
11
|
from homeassistant.helpers.typing import VolDictType as VolDictType
|
12
12
|
from pyenphase import Envoy
|
@@ -1,6 +1,7 @@
|
|
1
1
|
from .const import OPTION_DIAGNOSTICS_INCLUDE_FIXTURES as OPTION_DIAGNOSTICS_INCLUDE_FIXTURES
|
2
2
|
from .coordinator import EnphaseConfigEntry as EnphaseConfigEntry
|
3
3
|
from _typeshed import Incomplete
|
4
|
+
from aiohttp import ClientResponse as ClientResponse
|
4
5
|
from homeassistant.components.diagnostics import async_redact_data as async_redact_data
|
5
6
|
from homeassistant.const import CONF_NAME as CONF_NAME, CONF_PASSWORD as CONF_PASSWORD, CONF_TOKEN as CONF_TOKEN, CONF_UNIQUE_ID as CONF_UNIQUE_ID, CONF_USERNAME as CONF_USERNAME
|
6
7
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
@@ -6,7 +6,7 @@ from _typeshed import Incomplete
|
|
6
6
|
from collections.abc import Callable as Callable
|
7
7
|
from dataclasses import dataclass
|
8
8
|
from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
|
9
|
-
from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfApparentPower as UnitOfApparentPower, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfFrequency as UnitOfFrequency, UnitOfPower as UnitOfPower, UnitOfTemperature as UnitOfTemperature
|
9
|
+
from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfApparentPower as UnitOfApparentPower, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfFrequency as UnitOfFrequency, UnitOfPower as UnitOfPower, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime
|
10
10
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
11
11
|
from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
|
12
12
|
from homeassistant.helpers.entity import Entity as Entity
|