homeassistant-stubs 2025.9.3__py3-none-any.whl → 2025.10.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.
Potentially problematic release.
This version of homeassistant-stubs might be problematic. Click here for more details.
- homeassistant-stubs/components/acaia/coordinator.pyi +1 -0
- homeassistant-stubs/components/accuweather/__init__.pyi +3 -3
- homeassistant-stubs/components/accuweather/config_flow.pyi +5 -0
- homeassistant-stubs/components/accuweather/const.pyi +1 -0
- homeassistant-stubs/components/accuweather/coordinator.pyi +17 -4
- homeassistant-stubs/components/accuweather/weather.pyi +5 -2
- homeassistant-stubs/components/airos/binary_sensor.pyi +2 -2
- homeassistant-stubs/components/airos/config_flow.pyi +1 -1
- homeassistant-stubs/components/airos/coordinator.pyi +4 -4
- homeassistant-stubs/components/airos/sensor.pyi +2 -2
- homeassistant-stubs/components/airzone/select.pyi +1 -0
- homeassistant-stubs/components/alexa_devices/coordinator.pyi +2 -0
- homeassistant-stubs/components/analytics/__init__.pyi +4 -21
- homeassistant-stubs/components/analytics/analytics.pyi +42 -5
- homeassistant-stubs/components/androidtv/__init__.pyi +5 -1
- homeassistant-stubs/components/androidtv/media_player.pyi +1 -10
- homeassistant-stubs/components/androidtv/services.pyi +16 -0
- homeassistant-stubs/components/androidtv_remote/entity.pyi +1 -3
- homeassistant-stubs/components/assist_pipeline/__init__.pyi +1 -1
- homeassistant-stubs/components/assist_pipeline/const.pyi +1 -0
- homeassistant-stubs/components/assist_pipeline/pipeline.pyi +7 -4
- homeassistant-stubs/components/assist_pipeline/select.pyi +1 -1
- homeassistant-stubs/components/asuswrt/bridge.pyi +12 -0
- homeassistant-stubs/components/auth/login_flow.pyi +1 -1
- homeassistant-stubs/components/blue_current/__init__.pyi +11 -5
- homeassistant-stubs/components/blue_current/const.pyi +6 -0
- homeassistant-stubs/components/bluetooth/__init__.pyi +2 -2
- homeassistant-stubs/components/bluetooth/api.pyi +5 -2
- homeassistant-stubs/components/bluetooth/manager.pyi +7 -1
- homeassistant-stubs/components/bluetooth/websocket_api.pyi +6 -1
- homeassistant-stubs/components/brother/__init__.pyi +4 -2
- homeassistant-stubs/components/brother/config_flow.pyi +5 -2
- homeassistant-stubs/components/brother/const.pyi +4 -0
- homeassistant-stubs/components/bthome/sensor.pyi +1 -1
- homeassistant-stubs/components/camera/__init__.pyi +1 -1
- homeassistant-stubs/components/camera/prefs.pyi +3 -1
- homeassistant-stubs/components/cloud/http_api.pyi +2 -0
- homeassistant-stubs/components/comelit/coordinator.pyi +2 -1
- homeassistant-stubs/components/comelit/sensor.pyi +1 -1
- homeassistant-stubs/components/compit/__init__.pyi +11 -0
- homeassistant-stubs/components/compit/climate.pyi +63 -0
- homeassistant-stubs/components/compit/config_flow.pyi +17 -0
- homeassistant-stubs/components/compit/const.pyi +2 -0
- homeassistant-stubs/components/compit/coordinator.pyi +16 -0
- homeassistant-stubs/components/derivative/diagnostics.pyi +5 -0
- homeassistant-stubs/components/droplet/__init__.pyi +10 -0
- homeassistant-stubs/components/droplet/config_flow.pyi +13 -0
- homeassistant-stubs/components/droplet/const.pyi +7 -0
- homeassistant-stubs/components/droplet/coordinator.pyi +23 -0
- homeassistant-stubs/components/droplet/sensor.pyi +37 -0
- homeassistant-stubs/components/ecovacs/number.pyi +4 -1
- homeassistant-stubs/components/elkm1/config_flow.pyi +2 -0
- homeassistant-stubs/components/elkm1/sensor.pyi +8 -1
- homeassistant-stubs/components/energy/sensor.pyi +1 -1
- homeassistant-stubs/components/esphome/assist_satellite.pyi +5 -1
- homeassistant-stubs/components/esphome/climate.pyi +2 -0
- homeassistant-stubs/components/esphome/config_flow.pyi +2 -0
- homeassistant-stubs/components/esphome/const.pyi +1 -0
- homeassistant-stubs/components/esphome/entry_data.pyi +8 -4
- homeassistant-stubs/components/esphome/lock.pyi +1 -1
- homeassistant-stubs/components/esphome/select.pyi +4 -3
- homeassistant-stubs/components/fritz/sensor.pyi +2 -1
- homeassistant-stubs/components/frontend/__init__.pyi +5 -2
- homeassistant-stubs/components/geocaching/entity.pyi +14 -0
- homeassistant-stubs/components/geocaching/sensor.pyi +25 -5
- homeassistant-stubs/components/go2rtc/__init__.pyi +3 -0
- homeassistant-stubs/components/google/__init__.pyi +0 -1
- homeassistant-stubs/components/google/config_flow.pyi +3 -3
- homeassistant-stubs/components/google_cloud/__init__.pyi +0 -1
- homeassistant-stubs/components/google_cloud/config_flow.pyi +2 -2
- homeassistant-stubs/components/google_photos/media_source.pyi +2 -2
- homeassistant-stubs/components/habitica/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/habitica/const.pyi +1 -0
- homeassistant-stubs/components/habitica/sensor.pyi +3 -1
- homeassistant-stubs/components/habitica/services.pyi +2 -1
- homeassistant-stubs/components/habitica/util.pyi +1 -0
- homeassistant-stubs/components/here_travel_time/__init__.pyi +3 -1
- homeassistant-stubs/components/history_stats/config_flow.pyi +7 -2
- homeassistant-stubs/components/history_stats/diagnostics.pyi +5 -0
- homeassistant-stubs/components/home_connect/application_credentials.pyi +0 -1
- homeassistant-stubs/components/home_connect/coordinator.pyi +0 -1
- homeassistant-stubs/components/homeassistant_hardware/firmware_config_flow.pyi +38 -11
- homeassistant-stubs/components/homee/alarm_control_panel.pyi +3 -2
- homeassistant-stubs/components/homee/binary_sensor.pyi +4 -2
- homeassistant-stubs/components/homee/button.pyi +3 -1
- homeassistant-stubs/components/homee/climate.pyi +3 -1
- homeassistant-stubs/components/homee/cover.pyi +3 -1
- homeassistant-stubs/components/homee/event.pyi +3 -1
- homeassistant-stubs/components/homee/fan.pyi +3 -1
- homeassistant-stubs/components/homee/helpers.pyi +6 -0
- homeassistant-stubs/components/homee/light.pyi +2 -0
- homeassistant-stubs/components/homee/lock.pyi +4 -2
- homeassistant-stubs/components/homee/number.pyi +3 -1
- homeassistant-stubs/components/homee/select.pyi +3 -1
- homeassistant-stubs/components/homee/sensor.pyi +2 -2
- homeassistant-stubs/components/homee/siren.pyi +4 -1
- homeassistant-stubs/components/homee/switch.pyi +4 -2
- homeassistant-stubs/components/homee/valve.pyi +3 -1
- homeassistant-stubs/components/homekit/type_switches.pyi +7 -1
- homeassistant-stubs/components/homewizard/sensor.pyi +3 -1
- homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +1 -1
- homeassistant-stubs/components/image/__init__.pyi +1 -0
- homeassistant-stubs/components/image_upload/__init__.pyi +1 -1
- homeassistant-stubs/components/image_upload/const.pyi +1 -0
- homeassistant-stubs/components/image_upload/media_source.pyi +5 -1
- homeassistant-stubs/components/immich/media_source.pyi +2 -2
- homeassistant-stubs/components/integration/__init__.pyi +0 -1
- homeassistant-stubs/components/integration/config_flow.pyi +1 -0
- homeassistant-stubs/components/lamarzocco/__init__.pyi +4 -2
- homeassistant-stubs/components/lamarzocco/config_flow.pyi +4 -2
- homeassistant-stubs/components/lamarzocco/const.pyi +1 -0
- homeassistant-stubs/components/lawn_mower/intent.pyi +8 -0
- homeassistant-stubs/components/letpot/number.pyi +34 -0
- homeassistant-stubs/components/libre_hardware_monitor/__init__.pyi +9 -0
- homeassistant-stubs/components/libre_hardware_monitor/config_flow.pyi +12 -0
- homeassistant-stubs/components/libre_hardware_monitor/const.pyi +4 -0
- homeassistant-stubs/components/libre_hardware_monitor/coordinator.pyi +21 -0
- homeassistant-stubs/components/libre_hardware_monitor/sensor.pyi +34 -0
- homeassistant-stubs/components/litterrobot/select.pyi +1 -1
- homeassistant-stubs/components/litterrobot/switch.pyi +5 -1
- homeassistant-stubs/components/logbook/helpers.pyi +4 -3
- homeassistant-stubs/components/mastodon/const.pyi +1 -0
- homeassistant-stubs/components/mastodon/services.pyi +1 -1
- homeassistant-stubs/components/matter/models.pyi +1 -0
- homeassistant-stubs/components/matter/sensor.pyi +1 -0
- homeassistant-stubs/components/mcp_server/session.pyi +2 -2
- homeassistant-stubs/components/media_source/__init__.pyi +2 -10
- homeassistant-stubs/components/media_source/helper.pyi +16 -0
- homeassistant-stubs/components/media_source/http.pyi +13 -0
- homeassistant-stubs/components/media_source/local_source.pyi +19 -11
- homeassistant-stubs/components/metoffice/sensor.pyi +1 -1
- homeassistant-stubs/components/miele/const.pyi +193 -17
- homeassistant-stubs/components/miele/sensor.pyi +12 -3
- homeassistant-stubs/components/miele/vacuum.pyi +1 -2
- homeassistant-stubs/components/min_max/sensor.pyi +1 -1
- homeassistant-stubs/components/modbus/__init__.pyi +1 -1
- homeassistant-stubs/components/modbus/binary_sensor.pyi +2 -2
- homeassistant-stubs/components/modbus/climate.pyi +2 -2
- homeassistant-stubs/components/modbus/const.pyi +1 -0
- homeassistant-stubs/components/modbus/cover.pyi +2 -2
- homeassistant-stubs/components/modbus/entity.pyi +4 -4
- homeassistant-stubs/components/modbus/fan.pyi +2 -2
- homeassistant-stubs/components/modbus/light.pyi +2 -2
- homeassistant-stubs/components/modbus/modbus.pyi +1 -2
- homeassistant-stubs/components/modbus/sensor.pyi +2 -2
- homeassistant-stubs/components/modbus/switch.pyi +2 -2
- homeassistant-stubs/components/modbus/validators.pyi +1 -1
- homeassistant-stubs/components/motionmount/select.pyi +1 -0
- homeassistant-stubs/components/mqtt/config_flow.pyi +61 -60
- homeassistant-stubs/components/mqtt/const.pyi +6 -0
- homeassistant-stubs/components/mqtt/device_automation.pyi +1 -1
- homeassistant-stubs/components/mqtt/entity.pyi +2 -2
- homeassistant-stubs/components/mqtt/image.pyi +1 -5
- homeassistant-stubs/components/mqtt/light/schema_json.pyi +0 -1
- homeassistant-stubs/components/mqtt/schemas.pyi +1 -1
- homeassistant-stubs/components/mqtt/tag.pyi +1 -1
- homeassistant-stubs/components/music_assistant/__init__.pyi +2 -1
- homeassistant-stubs/components/music_assistant/config_flow.pyi +1 -1
- homeassistant-stubs/components/music_assistant/const.pyi +1 -0
- homeassistant-stubs/components/nordpool/coordinator.pyi +4 -2
- homeassistant-stubs/components/ntfy/config_flow.pyi +4 -2
- homeassistant-stubs/components/ntfy/const.pyi +6 -0
- homeassistant-stubs/components/ntfy/entity.pyi +18 -0
- homeassistant-stubs/components/ntfy/event.pyi +29 -0
- homeassistant-stubs/components/ntfy/notify.pyi +19 -13
- homeassistant-stubs/components/{home_connect → ntfy}/repairs.pyi +7 -3
- homeassistant-stubs/components/number/const.pyi +1 -1
- homeassistant-stubs/components/openai_conversation/ai_task.pyi +5 -1
- homeassistant-stubs/components/openai_conversation/const.pyi +1 -0
- homeassistant-stubs/components/openai_conversation/entity.pyi +2 -2
- homeassistant-stubs/components/openuv/__init__.pyi +1 -1
- homeassistant-stubs/components/openuv/binary_sensor.pyi +2 -2
- homeassistant-stubs/components/openuv/coordinator.pyi +14 -1
- homeassistant-stubs/components/opnsense/__init__.pyi +11 -0
- homeassistant-stubs/components/opnsense/const.pyi +5 -0
- homeassistant-stubs/components/opnsense/device_tracker.pyi +23 -0
- homeassistant-stubs/components/portainer/__init__.pyi +11 -0
- homeassistant-stubs/components/portainer/binary_sensor.pyi +39 -0
- homeassistant-stubs/components/portainer/config_flow.pyi +20 -0
- homeassistant-stubs/components/portainer/const.pyi +2 -0
- homeassistant-stubs/components/portainer/coordinator.pyi +29 -0
- homeassistant-stubs/components/portainer/entity.pyi +22 -0
- homeassistant-stubs/components/prusalink/coordinator.pyi +2 -0
- homeassistant-stubs/components/radio_browser/media_source.pyi +3 -0
- homeassistant-stubs/components/recorder/models/statistics.pyi +1 -0
- homeassistant-stubs/components/recorder/statistics.pyi +1 -1
- homeassistant-stubs/components/recorder/util.pyi +1 -0
- homeassistant-stubs/components/recorder/websocket_api.pyi +1 -1
- homeassistant-stubs/components/reolink/entity.pyi +10 -0
- homeassistant-stubs/components/reolink/light.pyi +7 -1
- homeassistant-stubs/components/reolink/number.pyi +10 -1
- homeassistant-stubs/components/reolink/select.pyi +11 -3
- homeassistant-stubs/components/reolink/siren.pyi +11 -1
- homeassistant-stubs/components/reolink/switch.pyi +11 -1
- homeassistant-stubs/components/roborock/config_flow.pyi +1 -1
- homeassistant-stubs/components/roborock/const.pyi +1 -0
- homeassistant-stubs/components/roborock/coordinator.pyi +1 -1
- homeassistant-stubs/components/route_b_smart_meter/__init__.pyi +10 -0
- homeassistant-stubs/components/route_b_smart_meter/config_flow.pyi +22 -0
- homeassistant-stubs/components/route_b_smart_meter/const.pyi +9 -0
- homeassistant-stubs/components/route_b_smart_meter/coordinator.pyi +26 -0
- homeassistant-stubs/components/route_b_smart_meter/sensor.pyi +30 -0
- homeassistant-stubs/components/scrape/__init__.pyi +0 -1
- homeassistant-stubs/components/scrape/config_flow.pyi +1 -0
- homeassistant-stubs/components/scrape/coordinator.pyi +5 -1
- homeassistant-stubs/components/sensor/const.pyi +2 -1
- homeassistant-stubs/components/sensor/device_condition.pyi +1 -0
- homeassistant-stubs/components/sensor/device_trigger.pyi +1 -0
- homeassistant-stubs/components/sftp_storage/__init__.pyi +21 -0
- homeassistant-stubs/components/sftp_storage/backup.pyi +24 -0
- homeassistant-stubs/components/sftp_storage/client.pyi +48 -0
- homeassistant-stubs/components/sftp_storage/config_flow.pyi +25 -0
- homeassistant-stubs/components/sftp_storage/const.pyi +16 -0
- homeassistant-stubs/components/shelly/__init__.pyi +2 -2
- homeassistant-stubs/components/shelly/binary_sensor.pyi +5 -1
- homeassistant-stubs/components/shelly/button.pyi +10 -2
- homeassistant-stubs/components/shelly/const.pyi +5 -2
- homeassistant-stubs/components/shelly/cover.pyi +6 -0
- homeassistant-stubs/components/shelly/entity.pyi +1 -3
- homeassistant-stubs/components/shelly/light.pyi +18 -10
- homeassistant-stubs/components/shelly/number.pyi +1 -1
- homeassistant-stubs/components/shelly/repairs.pyi +4 -2
- homeassistant-stubs/components/shelly/select.pyi +1 -1
- homeassistant-stubs/components/shelly/sensor.pyi +12 -8
- homeassistant-stubs/components/shelly/switch.pyi +1 -1
- homeassistant-stubs/components/shelly/text.pyi +1 -1
- homeassistant-stubs/components/shelly/utils.pyi +7 -2
- homeassistant-stubs/components/sql/__init__.pyi +2 -2
- homeassistant-stubs/components/sql/config_flow.pyi +6 -2
- homeassistant-stubs/components/sql/const.pyi +1 -0
- homeassistant-stubs/components/sql/sensor.pyi +1 -1
- homeassistant-stubs/components/squeezebox/browse_media.pyi +1 -1
- homeassistant-stubs/components/ssdp/server.pyi +2 -3
- homeassistant-stubs/components/starlink/sensor.pyi +8 -1
- homeassistant-stubs/components/statistics/__init__.pyi +0 -1
- homeassistant-stubs/components/statistics/config_flow.pyi +1 -0
- homeassistant-stubs/components/switchbot_cloud/__init__.pyi +1 -0
- homeassistant-stubs/components/switchbot_cloud/binary_sensor.pyi +7 -0
- homeassistant-stubs/components/switchbot_cloud/climate.pyi +7 -3
- homeassistant-stubs/components/switchbot_cloud/const.pyi +13 -0
- homeassistant-stubs/components/switchbot_cloud/humidifier.pyi +48 -0
- homeassistant-stubs/components/switchbot_cloud/light.pyi +1 -0
- homeassistant-stubs/components/switchbot_cloud/sensor.pyi +13 -1
- homeassistant-stubs/components/synology_dsm/media_source.pyi +2 -2
- homeassistant-stubs/components/synology_dsm/sensor.pyi +3 -0
- homeassistant-stubs/components/systemmonitor/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/systemmonitor/const.pyi +1 -0
- homeassistant-stubs/components/systemmonitor/coordinator.pyi +2 -0
- homeassistant-stubs/components/systemmonitor/sensor.pyi +2 -0
- homeassistant-stubs/components/telegram_bot/__init__.pyi +2 -1
- homeassistant-stubs/components/telegram_bot/bot.pyi +1 -0
- homeassistant-stubs/components/telegram_bot/const.pyi +13 -0
- homeassistant-stubs/components/threshold/__init__.pyi +0 -1
- homeassistant-stubs/components/threshold/config_flow.pyi +1 -0
- homeassistant-stubs/components/tolo/config_flow.pyi +5 -3
- homeassistant-stubs/components/tts/__init__.pyi +5 -0
- homeassistant-stubs/components/uptimerobot/config_flow.pyi +1 -0
- homeassistant-stubs/components/vacuum/intent.pyi +1 -1
- homeassistant-stubs/components/volvo/__init__.pyi +1 -1
- homeassistant-stubs/components/volvo/api.pyi +4 -0
- homeassistant-stubs/components/volvo/coordinator.pyi +28 -15
- homeassistant-stubs/components/wake_on_lan/__init__.pyi +0 -1
- homeassistant-stubs/components/wake_on_lan/config_flow.pyi +1 -0
- homeassistant-stubs/components/webhook/trigger.pyi +2 -1
- homeassistant-stubs/components/workday/calendar.pyi +25 -0
- homeassistant-stubs/components/yalexs_ble/__init__.pyi +0 -1
- homeassistant-stubs/components/yalexs_ble/config_flow.pyi +2 -2
- homeassistant-stubs/components/zwave_js/__init__.pyi +1 -1
- homeassistant-stubs/components/zwave_js/config_flow.pyi +6 -3
- homeassistant-stubs/components/zwave_js/const.pyi +3 -0
- homeassistant-stubs/components/zwave_js/device_trigger.pyi +1 -1
- homeassistant-stubs/components/zwave_js/triggers/event.pyi +24 -9
- homeassistant-stubs/components/zwave_js/triggers/value_updated.pyi +11 -7
- homeassistant-stubs/config_entries.pyi +6 -1
- homeassistant-stubs/const.pyi +7 -46
- homeassistant-stubs/data_entry_flow.pyi +16 -3
- homeassistant-stubs/generated/entity_platforms.pyi +46 -0
- homeassistant-stubs/helpers/condition.pyi +3 -1
- homeassistant-stubs/helpers/config_validation.pyi +1 -1
- homeassistant-stubs/helpers/deprecation.pyi +1 -0
- homeassistant-stubs/helpers/device_registry.pyi +4 -3
- homeassistant-stubs/helpers/entity_component.pyi +1 -3
- homeassistant-stubs/helpers/event.pyi +2 -1
- homeassistant-stubs/helpers/intent.pyi +5 -8
- homeassistant-stubs/helpers/schema_config_entry_flow.pyi +5 -1
- homeassistant-stubs/helpers/selector.pyi +16 -16
- homeassistant-stubs/helpers/service.pyi +12 -14
- homeassistant-stubs/helpers/service_info/esphome.pyi +12 -0
- homeassistant-stubs/helpers/{template.pyi → template/__init__.pyi} +14 -97
- homeassistant-stubs/helpers/template/context.pyi +16 -0
- homeassistant-stubs/helpers/template/extensions/__init__.pyi +8 -0
- homeassistant-stubs/helpers/template/extensions/base.pyi +21 -0
- homeassistant-stubs/helpers/template/extensions/base64.pyi +9 -0
- homeassistant-stubs/helpers/template/extensions/collection.pyi +18 -0
- homeassistant-stubs/helpers/template/extensions/crypto.pyi +13 -0
- homeassistant-stubs/helpers/template/extensions/math.pyi +43 -0
- homeassistant-stubs/helpers/template/extensions/regex.pyi +14 -0
- homeassistant-stubs/helpers/template/extensions/string.pyi +9 -0
- homeassistant-stubs/helpers/template/helpers.pyi +4 -0
- homeassistant-stubs/helpers/template/render_info.pyi +39 -0
- homeassistant-stubs/helpers/trigger.pyi +16 -5
- homeassistant-stubs/helpers/trigger_template_entity.pyi +2 -1
- homeassistant-stubs/runner.pyi +16 -0
- homeassistant-stubs/util/unit_conversion.pyi +6 -0
- {homeassistant_stubs-2025.9.3.dist-info → homeassistant_stubs-2025.10.0b0.dist-info}/METADATA +2 -2
- {homeassistant_stubs-2025.9.3.dist-info → homeassistant_stubs-2025.10.0b0.dist-info}/RECORD +308 -250
- homeassistant-stubs/components/home_connect/time.pyi +0 -29
- {homeassistant_stubs-2025.9.3.dist-info → homeassistant_stubs-2025.10.0b0.dist-info}/WHEEL +0 -0
- {homeassistant_stubs-2025.9.3.dist-info → homeassistant_stubs-2025.10.0b0.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
from . import OpenAIConfigEntry as OpenAIConfigEntry
|
|
2
|
+
from .const import CONF_CHAT_MODEL as CONF_CHAT_MODEL, RECOMMENDED_CHAT_MODEL as RECOMMENDED_CHAT_MODEL, UNSUPPORTED_IMAGE_MODELS as UNSUPPORTED_IMAGE_MODELS
|
|
1
3
|
from .entity import OpenAIBaseLLMEntity as OpenAIBaseLLMEntity
|
|
2
4
|
from _typeshed import Incomplete
|
|
3
5
|
from homeassistant.components import ai_task as ai_task, conversation as conversation
|
|
4
|
-
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
6
|
+
from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigSubentry as ConfigSubentry
|
|
5
7
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
6
8
|
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
|
|
7
9
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
@@ -13,4 +15,6 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, asyn
|
|
|
13
15
|
|
|
14
16
|
class OpenAITaskEntity(ai_task.AITaskEntity, OpenAIBaseLLMEntity):
|
|
15
17
|
_attr_supported_features: Incomplete
|
|
18
|
+
def __init__(self, entry: OpenAIConfigEntry, subentry: ConfigSubentry) -> None: ...
|
|
16
19
|
async def _async_generate_data(self, task: ai_task.GenDataTask, chat_log: conversation.ChatLog) -> ai_task.GenDataTaskResult: ...
|
|
20
|
+
async def _async_generate_image(self, task: ai_task.GenImageTask, chat_log: conversation.ChatLog) -> ai_task.GenImageTaskResult: ...
|
|
@@ -37,5 +37,6 @@ RECOMMENDED_WEB_SEARCH_CONTEXT_SIZE: str
|
|
|
37
37
|
RECOMMENDED_WEB_SEARCH_USER_LOCATION: bool
|
|
38
38
|
UNSUPPORTED_MODELS: list[str]
|
|
39
39
|
UNSUPPORTED_WEB_SEARCH_MODELS: list[str]
|
|
40
|
+
UNSUPPORTED_IMAGE_MODELS: list[str]
|
|
40
41
|
RECOMMENDED_CONVERSATION_OPTIONS: Incomplete
|
|
41
42
|
RECOMMENDED_AI_TASK_OPTIONS: Incomplete
|
|
@@ -31,6 +31,6 @@ class OpenAIBaseLLMEntity(Entity):
|
|
|
31
31
|
_attr_unique_id: Incomplete
|
|
32
32
|
_attr_device_info: Incomplete
|
|
33
33
|
def __init__(self, entry: OpenAIConfigEntry, subentry: ConfigSubentry) -> None: ...
|
|
34
|
-
async def _async_handle_chat_log(self, chat_log: conversation.ChatLog, structure_name: str | None = None, structure: vol.Schema | None = None) -> None: ...
|
|
34
|
+
async def _async_handle_chat_log(self, chat_log: conversation.ChatLog, structure_name: str | None = None, structure: vol.Schema | None = None, force_image: bool = False) -> None: ...
|
|
35
35
|
|
|
36
|
-
async def async_prepare_files_for_prompt(hass: HomeAssistant, files: list[Path]) -> ResponseInputMessageContentListParam: ...
|
|
36
|
+
async def async_prepare_files_for_prompt(hass: HomeAssistant, files: list[tuple[Path, str | None]]) -> ResponseInputMessageContentListParam: ...
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from .const import CONF_FROM_WINDOW as CONF_FROM_WINDOW, CONF_TO_WINDOW as CONF_TO_WINDOW, DATA_PROTECTION_WINDOW as DATA_PROTECTION_WINDOW, DATA_UV as DATA_UV, DEFAULT_FROM_WINDOW as DEFAULT_FROM_WINDOW, DEFAULT_TO_WINDOW as DEFAULT_TO_WINDOW, DOMAIN as DOMAIN, LOGGER as LOGGER
|
|
2
|
-
from .coordinator import OpenUvCoordinator as OpenUvCoordinator
|
|
2
|
+
from .coordinator import OpenUvCoordinator as OpenUvCoordinator, OpenUvProtectionWindowCoordinator as OpenUvProtectionWindowCoordinator
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
4
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
5
5
|
from homeassistant.const import CONF_API_KEY as CONF_API_KEY, CONF_BINARY_SENSORS as CONF_BINARY_SENSORS, CONF_ELEVATION as CONF_ELEVATION, CONF_LATITUDE as CONF_LATITUDE, CONF_LONGITUDE as CONF_LONGITUDE, CONF_SENSORS as CONF_SENSORS, Platform as Platform
|
|
@@ -6,7 +6,7 @@ from homeassistant.components.binary_sensor import BinarySensorEntity as BinaryS
|
|
|
6
6
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
7
7
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
|
8
8
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
9
|
-
from homeassistant.util.dt import as_local as as_local
|
|
9
|
+
from homeassistant.util.dt import as_local as as_local
|
|
10
10
|
|
|
11
11
|
ATTR_PROTECTION_WINDOW_ENDING_TIME: str
|
|
12
12
|
ATTR_PROTECTION_WINDOW_ENDING_UV: str
|
|
@@ -19,5 +19,5 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_e
|
|
|
19
19
|
class OpenUvBinarySensor(OpenUvEntity, BinarySensorEntity):
|
|
20
20
|
@callback
|
|
21
21
|
def _handle_coordinator_update(self) -> None: ...
|
|
22
|
-
_attr_is_on:
|
|
22
|
+
_attr_is_on: Incomplete
|
|
23
23
|
def _update_attrs(self) -> None: ...
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
+
import datetime as dt
|
|
1
2
|
from .const import LOGGER as LOGGER
|
|
2
3
|
from _typeshed import Incomplete
|
|
3
4
|
from collections.abc import Awaitable, Callable as Callable
|
|
4
5
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
5
|
-
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
6
|
+
from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HomeAssistant as HomeAssistant, callback as callback
|
|
6
7
|
from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed
|
|
7
8
|
from homeassistant.helpers.debounce import Debouncer as Debouncer
|
|
8
9
|
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
|
|
10
|
+
from homeassistant.util.dt import parse_datetime as parse_datetime, utcnow as utcnow
|
|
9
11
|
from typing import Any
|
|
10
12
|
|
|
11
13
|
DEFAULT_DEBOUNCER_COOLDOWN_SECONDS: Incomplete
|
|
@@ -17,3 +19,14 @@ class OpenUvCoordinator(DataUpdateCoordinator[dict[str, Any]]):
|
|
|
17
19
|
longitude: Incomplete
|
|
18
20
|
def __init__(self, hass: HomeAssistant, *, entry: ConfigEntry, name: str, latitude: str, longitude: str, update_method: Callable[[], Awaitable[dict[str, Any]]]) -> None: ...
|
|
19
21
|
async def _async_update_data(self) -> dict[str, Any]: ...
|
|
22
|
+
|
|
23
|
+
class OpenUvProtectionWindowCoordinator(OpenUvCoordinator):
|
|
24
|
+
_reprocess_listener: CALLBACK_TYPE | None
|
|
25
|
+
async def _async_update_data(self) -> dict[str, Any]: ...
|
|
26
|
+
def _parse_data(self, data: dict[str, Any]) -> dict[str, Any]: ...
|
|
27
|
+
def _process_data(self, data: dict[str, Any]) -> dict[str, Any]: ...
|
|
28
|
+
def _schedule_reprocessing(self, data: dict[str, Any]) -> None: ...
|
|
29
|
+
def _async_cancel_reprocess_listener(self) -> None: ...
|
|
30
|
+
data: Incomplete
|
|
31
|
+
@callback
|
|
32
|
+
def _async_handle_reprocess_event(self, now: dt.datetime) -> None: ...
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from .const import CONF_API_SECRET as CONF_API_SECRET, CONF_INTERFACE_CLIENT as CONF_INTERFACE_CLIENT, CONF_TRACKER_INTERFACES as CONF_TRACKER_INTERFACES, DOMAIN as DOMAIN, OPNSENSE_DATA as OPNSENSE_DATA
|
|
2
|
+
from _typeshed import Incomplete
|
|
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
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
5
|
+
from homeassistant.helpers.discovery import load_platform as load_platform
|
|
6
|
+
from homeassistant.helpers.typing import ConfigType as ConfigType
|
|
7
|
+
|
|
8
|
+
_LOGGER: Incomplete
|
|
9
|
+
CONFIG_SCHEMA: Incomplete
|
|
10
|
+
|
|
11
|
+
def setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
from .const import CONF_INTERFACE_CLIENT as CONF_INTERFACE_CLIENT, CONF_TRACKER_INTERFACES as CONF_TRACKER_INTERFACES, OPNSENSE_DATA as OPNSENSE_DATA
|
|
2
|
+
from _typeshed import Incomplete
|
|
3
|
+
from homeassistant.components.device_tracker import DeviceScanner as DeviceScanner
|
|
4
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
5
|
+
from homeassistant.helpers.typing import ConfigType as ConfigType
|
|
6
|
+
from pyopnsense import diagnostics as diagnostics
|
|
7
|
+
from typing import Any
|
|
8
|
+
|
|
9
|
+
DeviceDetails: Incomplete
|
|
10
|
+
DeviceDetailsByMAC: Incomplete
|
|
11
|
+
|
|
12
|
+
async def async_get_scanner(hass: HomeAssistant, config: ConfigType) -> DeviceScanner | None: ...
|
|
13
|
+
|
|
14
|
+
class OPNsenseDeviceScanner(DeviceScanner):
|
|
15
|
+
last_results: dict[str, Any]
|
|
16
|
+
client: Incomplete
|
|
17
|
+
interfaces: Incomplete
|
|
18
|
+
def __init__(self, client: diagnostics.InterfaceClient, interfaces: list[str]) -> None: ...
|
|
19
|
+
def _get_mac_addrs(self, devices: list[DeviceDetails]) -> DeviceDetailsByMAC | dict: ...
|
|
20
|
+
def scan_devices(self) -> list[str]: ...
|
|
21
|
+
def get_device_name(self, device: str) -> str | None: ...
|
|
22
|
+
def update_info(self) -> bool: ...
|
|
23
|
+
def get_extra_attributes(self, device: str) -> dict[Any, Any]: ...
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from .coordinator import PortainerCoordinator as PortainerCoordinator
|
|
2
|
+
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
3
|
+
from homeassistant.const import CONF_API_KEY as CONF_API_KEY, CONF_HOST as CONF_HOST, Platform as Platform
|
|
4
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
5
|
+
from homeassistant.helpers.aiohttp_client import async_create_clientsession as async_create_clientsession
|
|
6
|
+
|
|
7
|
+
_PLATFORMS: list[Platform]
|
|
8
|
+
type PortainerConfigEntry = ConfigEntry[PortainerCoordinator]
|
|
9
|
+
|
|
10
|
+
async def async_setup_entry(hass: HomeAssistant, entry: PortainerConfigEntry) -> bool: ...
|
|
11
|
+
async def async_unload_entry(hass: HomeAssistant, entry: PortainerConfigEntry) -> bool: ...
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
from . import PortainerConfigEntry as PortainerConfigEntry
|
|
2
|
+
from .coordinator import PortainerCoordinator as PortainerCoordinator
|
|
3
|
+
from .entity import PortainerContainerEntity as PortainerContainerEntity, PortainerCoordinatorData as PortainerCoordinatorData, PortainerEndpointEntity as PortainerEndpointEntity
|
|
4
|
+
from _typeshed import Incomplete
|
|
5
|
+
from collections.abc import Callable as Callable
|
|
6
|
+
from dataclasses import dataclass
|
|
7
|
+
from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription
|
|
8
|
+
from homeassistant.const import EntityCategory as EntityCategory
|
|
9
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
10
|
+
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
11
|
+
from pyportainer.models.docker import DockerContainer as DockerContainer
|
|
12
|
+
from typing import Any
|
|
13
|
+
|
|
14
|
+
@dataclass(frozen=True, kw_only=True)
|
|
15
|
+
class PortainerBinarySensorEntityDescription(BinarySensorEntityDescription):
|
|
16
|
+
state_fn: Callable[[Any], bool]
|
|
17
|
+
|
|
18
|
+
CONTAINER_SENSORS: tuple[PortainerBinarySensorEntityDescription, ...]
|
|
19
|
+
ENDPOINT_SENSORS: tuple[PortainerBinarySensorEntityDescription, ...]
|
|
20
|
+
|
|
21
|
+
async def async_setup_entry(hass: HomeAssistant, entry: PortainerConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
22
|
+
|
|
23
|
+
class PortainerEndpointSensor(PortainerEndpointEntity, BinarySensorEntity):
|
|
24
|
+
entity_description: PortainerBinarySensorEntityDescription
|
|
25
|
+
_attr_unique_id: Incomplete
|
|
26
|
+
def __init__(self, coordinator: PortainerCoordinator, entity_description: PortainerBinarySensorEntityDescription, device_info: PortainerCoordinatorData) -> None: ...
|
|
27
|
+
@property
|
|
28
|
+
def available(self) -> bool: ...
|
|
29
|
+
@property
|
|
30
|
+
def is_on(self) -> bool | None: ...
|
|
31
|
+
|
|
32
|
+
class PortainerContainerSensor(PortainerContainerEntity, BinarySensorEntity):
|
|
33
|
+
entity_description: PortainerBinarySensorEntityDescription
|
|
34
|
+
_attr_unique_id: Incomplete
|
|
35
|
+
def __init__(self, coordinator: PortainerCoordinator, entity_description: PortainerBinarySensorEntityDescription, device_info: DockerContainer, via_device: PortainerCoordinatorData) -> None: ...
|
|
36
|
+
@property
|
|
37
|
+
def available(self) -> bool: ...
|
|
38
|
+
@property
|
|
39
|
+
def is_on(self) -> bool | None: ...
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
from .const import DOMAIN as DOMAIN
|
|
2
|
+
from _typeshed import Incomplete
|
|
3
|
+
from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
|
|
4
|
+
from homeassistant.const import CONF_API_KEY as CONF_API_KEY, CONF_HOST as CONF_HOST
|
|
5
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
6
|
+
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
|
|
7
|
+
from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
|
|
8
|
+
from typing import Any
|
|
9
|
+
|
|
10
|
+
_LOGGER: Incomplete
|
|
11
|
+
STEP_USER_DATA_SCHEMA: Incomplete
|
|
12
|
+
|
|
13
|
+
async def _validate_input(hass: HomeAssistant, data: dict[str, Any]) -> None: ...
|
|
14
|
+
|
|
15
|
+
class PortainerConfigFlow(ConfigFlow, domain=DOMAIN):
|
|
16
|
+
async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
|
17
|
+
|
|
18
|
+
class CannotConnect(HomeAssistantError): ...
|
|
19
|
+
class InvalidAuth(HomeAssistantError): ...
|
|
20
|
+
class PortainerTimeout(HomeAssistantError): ...
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
from .const import DOMAIN as DOMAIN
|
|
2
|
+
from _typeshed import Incomplete
|
|
3
|
+
from dataclasses import dataclass
|
|
4
|
+
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
5
|
+
from homeassistant.const import CONF_HOST as CONF_HOST
|
|
6
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
7
|
+
from homeassistant.exceptions import ConfigEntryError as ConfigEntryError, ConfigEntryNotReady as ConfigEntryNotReady
|
|
8
|
+
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
|
|
9
|
+
from pyportainer import Portainer as Portainer
|
|
10
|
+
from pyportainer.models.docker import DockerContainer as DockerContainer
|
|
11
|
+
from pyportainer.models.portainer import Endpoint as Endpoint
|
|
12
|
+
|
|
13
|
+
type PortainerConfigEntry = ConfigEntry[PortainerCoordinator]
|
|
14
|
+
_LOGGER: Incomplete
|
|
15
|
+
DEFAULT_SCAN_INTERVAL: Incomplete
|
|
16
|
+
|
|
17
|
+
@dataclass
|
|
18
|
+
class PortainerCoordinatorData:
|
|
19
|
+
id: int
|
|
20
|
+
name: str | None
|
|
21
|
+
endpoint: Endpoint
|
|
22
|
+
containers: dict[str, DockerContainer]
|
|
23
|
+
|
|
24
|
+
class PortainerCoordinator(DataUpdateCoordinator[dict[int, PortainerCoordinatorData]]):
|
|
25
|
+
config_entry: PortainerConfigEntry
|
|
26
|
+
portainer: Incomplete
|
|
27
|
+
def __init__(self, hass: HomeAssistant, config_entry: PortainerConfigEntry, portainer: Portainer) -> None: ...
|
|
28
|
+
async def _async_setup(self) -> None: ...
|
|
29
|
+
async def _async_update_data(self) -> dict[int, PortainerCoordinatorData]: ...
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
from .const import DEFAULT_NAME as DEFAULT_NAME, DOMAIN as DOMAIN
|
|
2
|
+
from .coordinator import PortainerCoordinator as PortainerCoordinator, PortainerCoordinatorData as PortainerCoordinatorData
|
|
3
|
+
from _typeshed import Incomplete
|
|
4
|
+
from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
|
|
5
|
+
from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
|
|
6
|
+
from pyportainer.models.docker import DockerContainer as DockerContainer
|
|
7
|
+
|
|
8
|
+
class PortainerCoordinatorEntity(CoordinatorEntity[PortainerCoordinator]):
|
|
9
|
+
_attr_has_entity_name: bool
|
|
10
|
+
|
|
11
|
+
class PortainerEndpointEntity(PortainerCoordinatorEntity):
|
|
12
|
+
_device_info: Incomplete
|
|
13
|
+
device_id: Incomplete
|
|
14
|
+
_attr_device_info: Incomplete
|
|
15
|
+
def __init__(self, device_info: PortainerCoordinatorData, coordinator: PortainerCoordinator) -> None: ...
|
|
16
|
+
|
|
17
|
+
class PortainerContainerEntity(PortainerCoordinatorEntity):
|
|
18
|
+
_device_info: Incomplete
|
|
19
|
+
device_id: Incomplete
|
|
20
|
+
endpoint_id: Incomplete
|
|
21
|
+
_attr_device_info: Incomplete
|
|
22
|
+
def __init__(self, device_info: DockerContainer, coordinator: PortainerCoordinator, via_device: PortainerCoordinatorData) -> None: ...
|
|
@@ -5,11 +5,13 @@ from abc import ABC, abstractmethod
|
|
|
5
5
|
from datetime import timedelta
|
|
6
6
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
7
7
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
|
8
|
+
from homeassistant.helpers.debounce import Debouncer as Debouncer
|
|
8
9
|
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
|
|
9
10
|
from pyprusalink import JobInfo, LegacyPrinterStatus, PrinterInfo, PrinterStatus, PrusaLink as PrusaLink
|
|
10
11
|
from typing import TypeVar
|
|
11
12
|
|
|
12
13
|
_LOGGER: Incomplete
|
|
14
|
+
_MINIMUM_REFRESH_INTERVAL: float
|
|
13
15
|
T = TypeVar('T', PrinterStatus, LegacyPrinterStatus, JobInfo)
|
|
14
16
|
|
|
15
17
|
class PrusaLinkUpdateCoordinator(DataUpdateCoordinator[T], ABC, metaclass=abc.ABCMeta):
|
|
@@ -4,6 +4,7 @@ from _typeshed import Incomplete
|
|
|
4
4
|
from homeassistant.components.media_player import MediaClass as MediaClass, MediaType as MediaType
|
|
5
5
|
from homeassistant.components.media_source import BrowseMediaSource as BrowseMediaSource, MediaSource as MediaSource, MediaSourceItem as MediaSourceItem, PlayMedia as PlayMedia, Unresolvable as Unresolvable
|
|
6
6
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
|
7
|
+
from homeassistant.util.location import vincenty as vincenty
|
|
7
8
|
from radios import RadioBrowser as RadioBrowser, Station as Station
|
|
8
9
|
|
|
9
10
|
CODEC_TO_MIMETYPE: Incomplete
|
|
@@ -28,3 +29,5 @@ class RadioMediaSource(MediaSource):
|
|
|
28
29
|
async def _async_build_by_language(self, radios: RadioBrowser, item: MediaSourceItem) -> list[BrowseMediaSource]: ...
|
|
29
30
|
async def _async_build_popular(self, radios: RadioBrowser, item: MediaSourceItem) -> list[BrowseMediaSource]: ...
|
|
30
31
|
async def _async_build_by_tag(self, radios: RadioBrowser, item: MediaSourceItem) -> list[BrowseMediaSource]: ...
|
|
32
|
+
def _filter_local_stations(self, stations: list[Station], latitude: float, longitude: float) -> list[Station]: ...
|
|
33
|
+
async def _async_build_local(self, radios: RadioBrowser, item: MediaSourceItem) -> list[BrowseMediaSource]: ...
|
|
@@ -43,6 +43,7 @@ class StatisticMetaData(TypedDict):
|
|
|
43
43
|
class CalendarStatisticPeriod(TypedDict, total=False):
|
|
44
44
|
period: Literal['hour', 'day', 'week', 'month', 'year']
|
|
45
45
|
offset: int
|
|
46
|
+
first_weekday: Literal['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun']
|
|
46
47
|
|
|
47
48
|
class FixedStatisticPeriod(TypedDict, total=False):
|
|
48
49
|
end_time: datetime
|
|
@@ -15,7 +15,7 @@ from homeassistant.helpers.singleton import singleton as singleton
|
|
|
15
15
|
from homeassistant.helpers.typing import UNDEFINED as UNDEFINED, UndefinedType as UndefinedType
|
|
16
16
|
from homeassistant.util.collection import chunked_or_all as chunked_or_all
|
|
17
17
|
from homeassistant.util.enum import try_parse_enum as try_parse_enum
|
|
18
|
-
from homeassistant.util.unit_conversion import ApparentPowerConverter as ApparentPowerConverter, AreaConverter as AreaConverter, BaseUnitConverter as BaseUnitConverter, BloodGlucoseConcentrationConverter as BloodGlucoseConcentrationConverter, ConductivityConverter as ConductivityConverter, DataRateConverter as DataRateConverter, DistanceConverter as DistanceConverter, DurationConverter as DurationConverter, ElectricCurrentConverter as ElectricCurrentConverter, ElectricPotentialConverter as ElectricPotentialConverter, EnergyConverter as EnergyConverter, EnergyDistanceConverter as EnergyDistanceConverter, InformationConverter as InformationConverter, MassConverter as MassConverter, MassVolumeConcentrationConverter as MassVolumeConcentrationConverter, PowerConverter as PowerConverter, PressureConverter as PressureConverter, ReactiveEnergyConverter as ReactiveEnergyConverter, ReactivePowerConverter as ReactivePowerConverter, SpeedConverter as SpeedConverter, TemperatureConverter as TemperatureConverter, UnitlessRatioConverter as UnitlessRatioConverter, VolumeConverter as VolumeConverter, VolumeFlowRateConverter as VolumeFlowRateConverter
|
|
18
|
+
from homeassistant.util.unit_conversion import ApparentPowerConverter as ApparentPowerConverter, AreaConverter as AreaConverter, BaseUnitConverter as BaseUnitConverter, BloodGlucoseConcentrationConverter as BloodGlucoseConcentrationConverter, CarbonMonoxideConcentrationConverter as CarbonMonoxideConcentrationConverter, ConductivityConverter as ConductivityConverter, DataRateConverter as DataRateConverter, DistanceConverter as DistanceConverter, DurationConverter as DurationConverter, ElectricCurrentConverter as ElectricCurrentConverter, ElectricPotentialConverter as ElectricPotentialConverter, EnergyConverter as EnergyConverter, EnergyDistanceConverter as EnergyDistanceConverter, InformationConverter as InformationConverter, MassConverter as MassConverter, MassVolumeConcentrationConverter as MassVolumeConcentrationConverter, PowerConverter as PowerConverter, PressureConverter as PressureConverter, ReactiveEnergyConverter as ReactiveEnergyConverter, ReactivePowerConverter as ReactivePowerConverter, SpeedConverter as SpeedConverter, TemperatureConverter as TemperatureConverter, UnitlessRatioConverter as UnitlessRatioConverter, VolumeConverter as VolumeConverter, VolumeFlowRateConverter as VolumeFlowRateConverter
|
|
19
19
|
from sqlalchemy import Label as Label, Select as Select
|
|
20
20
|
from sqlalchemy.engine.row import Row
|
|
21
21
|
from sqlalchemy.orm.session import Session as Session
|
|
@@ -7,6 +7,7 @@ from awesomeversion import AwesomeVersion
|
|
|
7
7
|
from collections.abc import Callable, Generator, Sequence
|
|
8
8
|
from contextlib import contextmanager
|
|
9
9
|
from datetime import date, datetime
|
|
10
|
+
from homeassistant.const import WEEKDAYS as WEEKDAYS
|
|
10
11
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
|
11
12
|
from homeassistant.helpers.recorder import DATA_INSTANCE as DATA_INSTANCE, get_instance as get_instance, session_scope as session_scope
|
|
12
13
|
from sqlalchemy.engine import Result as Result, Row as Row
|
|
@@ -8,7 +8,7 @@ from homeassistant.components.websocket_api import messages as messages
|
|
|
8
8
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback, valid_entity_id as valid_entity_id
|
|
9
9
|
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
|
|
10
10
|
from homeassistant.helpers.json import json_bytes as json_bytes
|
|
11
|
-
from homeassistant.util.unit_conversion import ApparentPowerConverter as ApparentPowerConverter, AreaConverter as AreaConverter, BloodGlucoseConcentrationConverter as BloodGlucoseConcentrationConverter, ConductivityConverter as ConductivityConverter, DataRateConverter as DataRateConverter, DistanceConverter as DistanceConverter, DurationConverter as DurationConverter, ElectricCurrentConverter as ElectricCurrentConverter, ElectricPotentialConverter as ElectricPotentialConverter, EnergyConverter as EnergyConverter, EnergyDistanceConverter as EnergyDistanceConverter, InformationConverter as InformationConverter, MassConverter as MassConverter, MassVolumeConcentrationConverter as MassVolumeConcentrationConverter, PowerConverter as PowerConverter, PressureConverter as PressureConverter, ReactiveEnergyConverter as ReactiveEnergyConverter, ReactivePowerConverter as ReactivePowerConverter, SpeedConverter as SpeedConverter, TemperatureConverter as TemperatureConverter, UnitlessRatioConverter as UnitlessRatioConverter, VolumeConverter as VolumeConverter, VolumeFlowRateConverter as VolumeFlowRateConverter
|
|
11
|
+
from homeassistant.util.unit_conversion import ApparentPowerConverter as ApparentPowerConverter, AreaConverter as AreaConverter, BloodGlucoseConcentrationConverter as BloodGlucoseConcentrationConverter, CarbonMonoxideConcentrationConverter as CarbonMonoxideConcentrationConverter, ConductivityConverter as ConductivityConverter, DataRateConverter as DataRateConverter, DistanceConverter as DistanceConverter, DurationConverter as DurationConverter, ElectricCurrentConverter as ElectricCurrentConverter, ElectricPotentialConverter as ElectricPotentialConverter, EnergyConverter as EnergyConverter, EnergyDistanceConverter as EnergyDistanceConverter, InformationConverter as InformationConverter, MassConverter as MassConverter, MassVolumeConcentrationConverter as MassVolumeConcentrationConverter, PowerConverter as PowerConverter, PressureConverter as PressureConverter, ReactiveEnergyConverter as ReactiveEnergyConverter, ReactivePowerConverter as ReactivePowerConverter, SpeedConverter as SpeedConverter, TemperatureConverter as TemperatureConverter, UnitlessRatioConverter as UnitlessRatioConverter, VolumeConverter as VolumeConverter, VolumeFlowRateConverter as VolumeFlowRateConverter
|
|
12
12
|
from typing import Any, Literal
|
|
13
13
|
|
|
14
14
|
CLEAR_STATISTICS_TIME_OUT: int
|
|
@@ -57,6 +57,16 @@ class ReolinkChannelCoordinatorEntity(ReolinkHostCoordinatorEntity):
|
|
|
57
57
|
async def async_added_to_hass(self) -> None: ...
|
|
58
58
|
async def async_will_remove_from_hass(self) -> None: ...
|
|
59
59
|
|
|
60
|
+
class ReolinkHostChimeCoordinatorEntity(ReolinkHostCoordinatorEntity):
|
|
61
|
+
_channel: Incomplete
|
|
62
|
+
_chime: Incomplete
|
|
63
|
+
_attr_unique_id: Incomplete
|
|
64
|
+
_dev_id: Incomplete
|
|
65
|
+
_attr_device_info: Incomplete
|
|
66
|
+
def __init__(self, reolink_data: ReolinkData, chime: Chime, coordinator: DataUpdateCoordinator[None] | None = None) -> None: ...
|
|
67
|
+
@property
|
|
68
|
+
def available(self) -> bool: ...
|
|
69
|
+
|
|
60
70
|
class ReolinkChimeCoordinatorEntity(ReolinkChannelCoordinatorEntity):
|
|
61
71
|
_chime: Incomplete
|
|
62
72
|
_attr_unique_id: Incomplete
|
|
@@ -3,7 +3,7 @@ from .util import ReolinkConfigEntry as ReolinkConfigEntry, ReolinkData as Reoli
|
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
4
|
from collections.abc import Callable as Callable
|
|
5
5
|
from dataclasses import dataclass
|
|
6
|
-
from homeassistant.components.light import ATTR_BRIGHTNESS as ATTR_BRIGHTNESS, ColorMode as ColorMode, LightEntity as LightEntity, LightEntityDescription as LightEntityDescription
|
|
6
|
+
from homeassistant.components.light import ATTR_BRIGHTNESS as ATTR_BRIGHTNESS, ATTR_COLOR_TEMP_KELVIN as ATTR_COLOR_TEMP_KELVIN, ColorMode as ColorMode, LightEntity as LightEntity, LightEntityDescription as LightEntityDescription
|
|
7
7
|
from homeassistant.const import EntityCategory as EntityCategory
|
|
8
8
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
9
9
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
@@ -15,8 +15,10 @@ PARALLEL_UPDATES: int
|
|
|
15
15
|
@dataclass(frozen=True, kw_only=True)
|
|
16
16
|
class ReolinkLightEntityDescription(LightEntityDescription, ReolinkChannelEntityDescription):
|
|
17
17
|
get_brightness_fn: Callable[[Host, int], int | None] | None = ...
|
|
18
|
+
get_color_temp_fn: Callable[[Host, int], int | None] | None = ...
|
|
18
19
|
is_on_fn: Callable[[Host, int], bool]
|
|
19
20
|
set_brightness_fn: Callable[[Host, int, int], Any] | None = ...
|
|
21
|
+
set_color_temp_fn: Callable[[Host, int, int], Any] | None = ...
|
|
20
22
|
turn_on_off_fn: Callable[[Host, int, bool], Any]
|
|
21
23
|
|
|
22
24
|
@dataclass(frozen=True, kw_only=True)
|
|
@@ -33,11 +35,15 @@ class ReolinkLightEntity(ReolinkChannelCoordinatorEntity, LightEntity):
|
|
|
33
35
|
entity_description: ReolinkLightEntityDescription
|
|
34
36
|
_attr_supported_color_modes: Incomplete
|
|
35
37
|
_attr_color_mode: Incomplete
|
|
38
|
+
_attr_min_color_temp_kelvin: Incomplete
|
|
39
|
+
_attr_max_color_temp_kelvin: Incomplete
|
|
36
40
|
def __init__(self, reolink_data: ReolinkData, channel: int, entity_description: ReolinkLightEntityDescription) -> None: ...
|
|
37
41
|
@property
|
|
38
42
|
def is_on(self) -> bool: ...
|
|
39
43
|
@property
|
|
40
44
|
def brightness(self) -> int | None: ...
|
|
45
|
+
@property
|
|
46
|
+
def color_temp_kelvin(self) -> int | None: ...
|
|
41
47
|
@raise_translated_error
|
|
42
48
|
async def async_turn_off(self, **kwargs: Any) -> None: ...
|
|
43
49
|
@raise_translated_error
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from .entity import ReolinkChannelCoordinatorEntity as ReolinkChannelCoordinatorEntity, ReolinkChannelEntityDescription as ReolinkChannelEntityDescription, ReolinkChimeCoordinatorEntity as ReolinkChimeCoordinatorEntity, ReolinkChimeEntityDescription as ReolinkChimeEntityDescription, ReolinkHostCoordinatorEntity as ReolinkHostCoordinatorEntity, ReolinkHostEntityDescription as ReolinkHostEntityDescription
|
|
1
|
+
from .entity import ReolinkChannelCoordinatorEntity as ReolinkChannelCoordinatorEntity, ReolinkChannelEntityDescription as ReolinkChannelEntityDescription, ReolinkChimeCoordinatorEntity as ReolinkChimeCoordinatorEntity, ReolinkChimeEntityDescription as ReolinkChimeEntityDescription, ReolinkHostChimeCoordinatorEntity as ReolinkHostChimeCoordinatorEntity, ReolinkHostCoordinatorEntity as ReolinkHostCoordinatorEntity, ReolinkHostEntityDescription as ReolinkHostEntityDescription
|
|
2
2
|
from .util import ReolinkConfigEntry as ReolinkConfigEntry, ReolinkData as ReolinkData, raise_translated_error as raise_translated_error
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
4
|
from collections.abc import Callable as Callable
|
|
@@ -86,3 +86,12 @@ class ReolinkChimeNumberEntity(ReolinkChimeCoordinatorEntity, NumberEntity):
|
|
|
86
86
|
def native_value(self) -> float | None: ...
|
|
87
87
|
@raise_translated_error
|
|
88
88
|
async def async_set_native_value(self, value: float) -> None: ...
|
|
89
|
+
|
|
90
|
+
class ReolinkHostChimeNumberEntity(ReolinkHostChimeCoordinatorEntity, NumberEntity):
|
|
91
|
+
entity_description: ReolinkChimeNumberEntityDescription
|
|
92
|
+
_attr_mode: Incomplete
|
|
93
|
+
def __init__(self, reolink_data: ReolinkData, chime: Chime, entity_description: ReolinkChimeNumberEntityDescription) -> None: ...
|
|
94
|
+
@property
|
|
95
|
+
def native_value(self) -> float | None: ...
|
|
96
|
+
@raise_translated_error
|
|
97
|
+
async def async_set_native_value(self, value: float) -> None: ...
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from .entity import ReolinkChannelCoordinatorEntity as ReolinkChannelCoordinatorEntity, ReolinkChannelEntityDescription as ReolinkChannelEntityDescription, ReolinkChimeCoordinatorEntity as ReolinkChimeCoordinatorEntity, ReolinkChimeEntityDescription as ReolinkChimeEntityDescription, ReolinkHostCoordinatorEntity as ReolinkHostCoordinatorEntity, ReolinkHostEntityDescription as ReolinkHostEntityDescription
|
|
1
|
+
from .entity import ReolinkChannelCoordinatorEntity as ReolinkChannelCoordinatorEntity, ReolinkChannelEntityDescription as ReolinkChannelEntityDescription, ReolinkChimeCoordinatorEntity as ReolinkChimeCoordinatorEntity, ReolinkChimeEntityDescription as ReolinkChimeEntityDescription, ReolinkHostChimeCoordinatorEntity as ReolinkHostChimeCoordinatorEntity, ReolinkHostCoordinatorEntity as ReolinkHostCoordinatorEntity, ReolinkHostEntityDescription as ReolinkHostEntityDescription
|
|
2
2
|
from .util import ReolinkConfigEntry as ReolinkConfigEntry, ReolinkData as ReolinkData, raise_translated_error as raise_translated_error
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
4
|
from collections.abc import Callable as Callable
|
|
@@ -29,7 +29,7 @@ class ReolinkHostSelectEntityDescription(SelectEntityDescription, ReolinkHostEnt
|
|
|
29
29
|
class ReolinkChimeSelectEntityDescription(SelectEntityDescription, ReolinkChimeEntityDescription):
|
|
30
30
|
get_options: list[str]
|
|
31
31
|
method: Callable[[Chime, str], Any]
|
|
32
|
-
value: Callable[[Chime], str]
|
|
32
|
+
value: Callable[[Chime], str | None]
|
|
33
33
|
|
|
34
34
|
def _get_quick_reply_id(api: Host, ch: int, mess: str) -> int: ...
|
|
35
35
|
|
|
@@ -60,7 +60,15 @@ class ReolinkHostSelectEntity(ReolinkHostCoordinatorEntity, SelectEntity):
|
|
|
60
60
|
|
|
61
61
|
class ReolinkChimeSelectEntity(ReolinkChimeCoordinatorEntity, SelectEntity):
|
|
62
62
|
entity_description: ReolinkChimeSelectEntityDescription
|
|
63
|
-
|
|
63
|
+
_attr_options: Incomplete
|
|
64
|
+
def __init__(self, reolink_data: ReolinkData, chime: Chime, entity_description: ReolinkChimeSelectEntityDescription) -> None: ...
|
|
65
|
+
@property
|
|
66
|
+
def current_option(self) -> str | None: ...
|
|
67
|
+
@raise_translated_error
|
|
68
|
+
async def async_select_option(self, option: str) -> None: ...
|
|
69
|
+
|
|
70
|
+
class ReolinkHostChimeSelectEntity(ReolinkHostChimeCoordinatorEntity, SelectEntity):
|
|
71
|
+
entity_description: ReolinkChimeSelectEntityDescription
|
|
64
72
|
_attr_options: Incomplete
|
|
65
73
|
def __init__(self, reolink_data: ReolinkData, chime: Chime, entity_description: ReolinkChimeSelectEntityDescription) -> None: ...
|
|
66
74
|
@property
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from .entity import ReolinkChannelCoordinatorEntity as ReolinkChannelCoordinatorEntity, ReolinkChannelEntityDescription as ReolinkChannelEntityDescription
|
|
1
|
+
from .entity import ReolinkChannelCoordinatorEntity as ReolinkChannelCoordinatorEntity, ReolinkChannelEntityDescription as ReolinkChannelEntityDescription, ReolinkHostCoordinatorEntity as ReolinkHostCoordinatorEntity, ReolinkHostEntityDescription as ReolinkHostEntityDescription
|
|
2
2
|
from .util import ReolinkConfigEntry as ReolinkConfigEntry, ReolinkData as ReolinkData, raise_translated_error as raise_translated_error
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
4
|
from dataclasses import dataclass
|
|
@@ -11,8 +11,11 @@ PARALLEL_UPDATES: int
|
|
|
11
11
|
|
|
12
12
|
@dataclass(frozen=True)
|
|
13
13
|
class ReolinkSirenEntityDescription(SirenEntityDescription, ReolinkChannelEntityDescription): ...
|
|
14
|
+
@dataclass(frozen=True)
|
|
15
|
+
class ReolinkHostSirenEntityDescription(SirenEntityDescription, ReolinkHostEntityDescription): ...
|
|
14
16
|
|
|
15
17
|
SIREN_ENTITIES: Incomplete
|
|
18
|
+
HOST_SIREN_ENTITIES: Incomplete
|
|
16
19
|
|
|
17
20
|
async def async_setup_entry(hass: HomeAssistant, config_entry: ReolinkConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
18
21
|
|
|
@@ -24,3 +27,10 @@ class ReolinkSirenEntity(ReolinkChannelCoordinatorEntity, SirenEntity):
|
|
|
24
27
|
async def async_turn_on(self, **kwargs: Any) -> None: ...
|
|
25
28
|
@raise_translated_error
|
|
26
29
|
async def async_turn_off(self, **kwargs: Any) -> None: ...
|
|
30
|
+
|
|
31
|
+
class ReolinkHostSirenEntity(ReolinkHostCoordinatorEntity, SirenEntity):
|
|
32
|
+
_attr_supported_features: Incomplete
|
|
33
|
+
entity_description: ReolinkHostSirenEntityDescription
|
|
34
|
+
def __init__(self, reolink_data: ReolinkData, entity_description: ReolinkHostSirenEntityDescription) -> None: ...
|
|
35
|
+
@raise_translated_error
|
|
36
|
+
async def async_turn_on(self, **kwargs: Any) -> None: ...
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from .const import DOMAIN as DOMAIN
|
|
2
|
-
from .entity import ReolinkChannelCoordinatorEntity as ReolinkChannelCoordinatorEntity, ReolinkChannelEntityDescription as ReolinkChannelEntityDescription, ReolinkChimeCoordinatorEntity as ReolinkChimeCoordinatorEntity, ReolinkChimeEntityDescription as ReolinkChimeEntityDescription, ReolinkHostCoordinatorEntity as ReolinkHostCoordinatorEntity, ReolinkHostEntityDescription as ReolinkHostEntityDescription
|
|
2
|
+
from .entity import ReolinkChannelCoordinatorEntity as ReolinkChannelCoordinatorEntity, ReolinkChannelEntityDescription as ReolinkChannelEntityDescription, ReolinkChimeCoordinatorEntity as ReolinkChimeCoordinatorEntity, ReolinkChimeEntityDescription as ReolinkChimeEntityDescription, ReolinkHostChimeCoordinatorEntity as ReolinkHostChimeCoordinatorEntity, ReolinkHostCoordinatorEntity as ReolinkHostCoordinatorEntity, ReolinkHostEntityDescription as ReolinkHostEntityDescription
|
|
3
3
|
from .util import ReolinkConfigEntry as ReolinkConfigEntry, ReolinkData as ReolinkData, raise_translated_error as raise_translated_error
|
|
4
4
|
from _typeshed import Incomplete
|
|
5
5
|
from collections.abc import Callable as Callable
|
|
@@ -64,3 +64,13 @@ class ReolinkChimeSwitchEntity(ReolinkChimeCoordinatorEntity, SwitchEntity):
|
|
|
64
64
|
async def async_turn_on(self, **kwargs: Any) -> None: ...
|
|
65
65
|
@raise_translated_error
|
|
66
66
|
async def async_turn_off(self, **kwargs: Any) -> None: ...
|
|
67
|
+
|
|
68
|
+
class ReolinkHostChimeSwitchEntity(ReolinkHostChimeCoordinatorEntity, SwitchEntity):
|
|
69
|
+
entity_description: ReolinkChimeSwitchEntityDescription
|
|
70
|
+
def __init__(self, reolink_data: ReolinkData, chime: Chime, entity_description: ReolinkChimeSwitchEntityDescription) -> None: ...
|
|
71
|
+
@property
|
|
72
|
+
def is_on(self) -> bool | None: ...
|
|
73
|
+
@raise_translated_error
|
|
74
|
+
async def async_turn_on(self, **kwargs: Any) -> None: ...
|
|
75
|
+
@raise_translated_error
|
|
76
|
+
async def async_turn_off(self, **kwargs: Any) -> None: ...
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from . import RoborockConfigEntry as RoborockConfigEntry
|
|
2
|
-
from .const import CONF_BASE_URL as CONF_BASE_URL, CONF_ENTRY_CODE as CONF_ENTRY_CODE, CONF_USER_DATA as CONF_USER_DATA, DEFAULT_DRAWABLES as DEFAULT_DRAWABLES, DOMAIN as DOMAIN, DRAWABLES as DRAWABLES
|
|
2
|
+
from .const import CONF_BASE_URL as CONF_BASE_URL, CONF_ENTRY_CODE as CONF_ENTRY_CODE, CONF_SHOW_BACKGROUND as CONF_SHOW_BACKGROUND, CONF_USER_DATA as CONF_USER_DATA, DEFAULT_DRAWABLES as DEFAULT_DRAWABLES, DOMAIN as DOMAIN, DRAWABLES as DRAWABLES
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
4
|
from collections.abc import Mapping
|
|
5
5
|
from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlowWithReload as OptionsFlowWithReload, SOURCE_REAUTH as SOURCE_REAUTH
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from .const import A01_UPDATE_INTERVAL as A01_UPDATE_INTERVAL, DEFAULT_DRAWABLES as DEFAULT_DRAWABLES, DOMAIN as DOMAIN, DRAWABLES as DRAWABLES, IMAGE_CACHE_INTERVAL as IMAGE_CACHE_INTERVAL, MAP_FILE_FORMAT as MAP_FILE_FORMAT, MAP_SCALE as MAP_SCALE, MAP_SLEEP as MAP_SLEEP, V1_CLOUD_IN_CLEANING_INTERVAL as V1_CLOUD_IN_CLEANING_INTERVAL, V1_CLOUD_NOT_CLEANING_INTERVAL as V1_CLOUD_NOT_CLEANING_INTERVAL, V1_LOCAL_IN_CLEANING_INTERVAL as V1_LOCAL_IN_CLEANING_INTERVAL, V1_LOCAL_NOT_CLEANING_INTERVAL as V1_LOCAL_NOT_CLEANING_INTERVAL
|
|
1
|
+
from .const import A01_UPDATE_INTERVAL as A01_UPDATE_INTERVAL, CONF_SHOW_BACKGROUND as CONF_SHOW_BACKGROUND, DEFAULT_DRAWABLES as DEFAULT_DRAWABLES, DOMAIN as DOMAIN, DRAWABLES as DRAWABLES, IMAGE_CACHE_INTERVAL as IMAGE_CACHE_INTERVAL, MAP_FILE_FORMAT as MAP_FILE_FORMAT, MAP_SCALE as MAP_SCALE, MAP_SLEEP as MAP_SLEEP, V1_CLOUD_IN_CLEANING_INTERVAL as V1_CLOUD_IN_CLEANING_INTERVAL, V1_CLOUD_NOT_CLEANING_INTERVAL as V1_CLOUD_NOT_CLEANING_INTERVAL, V1_LOCAL_IN_CLEANING_INTERVAL as V1_LOCAL_IN_CLEANING_INTERVAL, V1_LOCAL_NOT_CLEANING_INTERVAL as V1_LOCAL_NOT_CLEANING_INTERVAL
|
|
2
2
|
from .models import RoborockA01HassDeviceInfo as RoborockA01HassDeviceInfo, RoborockHassDeviceInfo as RoborockHassDeviceInfo, RoborockMapInfo as RoborockMapInfo
|
|
3
3
|
from .roborock_storage import RoborockMapStorage as RoborockMapStorage
|
|
4
4
|
from _typeshed import Incomplete
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
from .coordinator import BRouteConfigEntry as BRouteConfigEntry, BRouteUpdateCoordinator as BRouteUpdateCoordinator
|
|
2
|
+
from _typeshed import Incomplete
|
|
3
|
+
from homeassistant.const import Platform as Platform
|
|
4
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
5
|
+
|
|
6
|
+
_LOGGER: Incomplete
|
|
7
|
+
PLATFORMS: list[Platform]
|
|
8
|
+
|
|
9
|
+
async def async_setup_entry(hass: HomeAssistant, entry: BRouteConfigEntry) -> bool: ...
|
|
10
|
+
async def async_unload_entry(hass: HomeAssistant, entry: BRouteConfigEntry) -> bool: ...
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
from .const import DOMAIN as DOMAIN, ENTRY_TITLE as ENTRY_TITLE
|
|
2
|
+
from _typeshed import Incomplete
|
|
3
|
+
from homeassistant.components.usb import get_serial_by_id as get_serial_by_id, human_readable_device_name as human_readable_device_name
|
|
4
|
+
from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
|
|
5
|
+
from homeassistant.const import CONF_DEVICE as CONF_DEVICE, CONF_ID as CONF_ID, CONF_PASSWORD as CONF_PASSWORD
|
|
6
|
+
from homeassistant.core import callback as callback
|
|
7
|
+
from homeassistant.helpers.service_info.usb import UsbServiceInfo as UsbServiceInfo
|
|
8
|
+
from serial.tools.list_ports_common import ListPortInfo as ListPortInfo
|
|
9
|
+
from typing import Any
|
|
10
|
+
|
|
11
|
+
_LOGGER: Incomplete
|
|
12
|
+
|
|
13
|
+
def _validate_input(device: str, id: str, password: str) -> None: ...
|
|
14
|
+
def _human_readable_device_name(port: UsbServiceInfo | ListPortInfo) -> str: ...
|
|
15
|
+
|
|
16
|
+
class BRouteConfigFlow(ConfigFlow, domain=DOMAIN):
|
|
17
|
+
VERSION: int
|
|
18
|
+
device: UsbServiceInfo | None
|
|
19
|
+
@callback
|
|
20
|
+
def _get_discovered_device_id_and_name(self, device_options: dict[str, ListPortInfo]) -> tuple[str | None, str | None]: ...
|
|
21
|
+
async def _get_usb_devices(self) -> dict[str, ListPortInfo]: ...
|
|
22
|
+
async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
from _typeshed import Incomplete
|
|
2
|
+
|
|
3
|
+
DOMAIN: str
|
|
4
|
+
ENTRY_TITLE: str
|
|
5
|
+
DEFAULT_SCAN_INTERVAL: Incomplete
|
|
6
|
+
ATTR_API_INSTANTANEOUS_POWER: str
|
|
7
|
+
ATTR_API_TOTAL_CONSUMPTION: str
|
|
8
|
+
ATTR_API_INSTANTANEOUS_CURRENT_T_PHASE: str
|
|
9
|
+
ATTR_API_INSTANTANEOUS_CURRENT_R_PHASE: str
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
from .const import DEFAULT_SCAN_INTERVAL as DEFAULT_SCAN_INTERVAL, DOMAIN as DOMAIN
|
|
2
|
+
from _typeshed import Incomplete
|
|
3
|
+
from dataclasses import dataclass
|
|
4
|
+
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
5
|
+
from homeassistant.const import CONF_DEVICE as CONF_DEVICE, CONF_ID as CONF_ID, CONF_PASSWORD as CONF_PASSWORD
|
|
6
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
7
|
+
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
|
|
8
|
+
|
|
9
|
+
_LOGGER: Incomplete
|
|
10
|
+
|
|
11
|
+
@dataclass
|
|
12
|
+
class BRouteData:
|
|
13
|
+
instantaneous_current_r_phase: float
|
|
14
|
+
instantaneous_current_t_phase: float
|
|
15
|
+
instantaneous_power: float
|
|
16
|
+
total_consumption: float
|
|
17
|
+
type BRouteConfigEntry = ConfigEntry[BRouteUpdateCoordinator]
|
|
18
|
+
|
|
19
|
+
class BRouteUpdateCoordinator(DataUpdateCoordinator[BRouteData]):
|
|
20
|
+
device: Incomplete
|
|
21
|
+
bid: Incomplete
|
|
22
|
+
api: Incomplete
|
|
23
|
+
def __init__(self, hass: HomeAssistant, entry: BRouteConfigEntry) -> None: ...
|
|
24
|
+
async def _async_setup(self) -> None: ...
|
|
25
|
+
def _get_data(self) -> BRouteData: ...
|
|
26
|
+
async def _async_update_data(self) -> BRouteData: ...
|