homeassistant-stubs 2025.10.3__py3-none-any.whl → 2025.11.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/auth/mfa_modules/totp.pyi +2 -0
- homeassistant-stubs/components/acaia/coordinator.pyi +2 -0
- homeassistant-stubs/components/airly/config_flow.pyi +3 -0
- homeassistant-stubs/components/airnow/config_flow.pyi +1 -0
- homeassistant-stubs/components/airos/__init__.pyi +4 -2
- homeassistant-stubs/components/airos/config_flow.pyi +10 -1
- homeassistant-stubs/components/airos/coordinator.pyi +1 -1
- homeassistant-stubs/components/airthings/config_flow.pyi +1 -0
- homeassistant-stubs/components/airthings_ble/config_flow.pyi +4 -2
- homeassistant-stubs/components/airthings_ble/sensor.pyi +2 -1
- homeassistant-stubs/components/alarm_control_panel/__init__.pyi +0 -10
- homeassistant-stubs/components/alexa_devices/const.pyi +2 -0
- homeassistant-stubs/components/alexa_devices/sensor.pyi +12 -2
- homeassistant-stubs/components/androidtv_remote/config_flow.pyi +2 -0
- homeassistant-stubs/components/apple_tv/__init__.pyi +3 -3
- homeassistant-stubs/components/assist_pipeline/__init__.pyi +3 -3
- homeassistant-stubs/components/assist_pipeline/pipeline.pyi +1 -1
- homeassistant-stubs/components/asuswrt/bridge.pyi +9 -9
- homeassistant-stubs/components/asuswrt/config_flow.pyi +1 -1
- homeassistant-stubs/components/asuswrt/device_tracker.pyi +0 -3
- homeassistant-stubs/components/asuswrt/helpers.pyi +2 -3
- homeassistant-stubs/components/asuswrt/router.pyi +1 -1
- homeassistant-stubs/components/backup/http.pyi +1 -0
- homeassistant-stubs/components/backup/manager.pyi +2 -1
- homeassistant-stubs/components/backup/util.pyi +2 -32
- homeassistant-stubs/components/bang_olufsen/media_player.pyi +5 -5
- homeassistant-stubs/components/bluetooth/__init__.pyi +2 -5
- homeassistant-stubs/components/bluetooth/api.pyi +2 -0
- homeassistant-stubs/components/bluetooth/manager.pyi +2 -0
- homeassistant-stubs/components/bryant_evolution/climate.pyi +2 -2
- homeassistant-stubs/components/calendar/trigger.pyi +1 -1
- homeassistant-stubs/components/camera/__init__.pyi +1 -9
- homeassistant-stubs/components/cert_expiry/config_flow.pyi +1 -1
- homeassistant-stubs/components/cert_expiry/errors.pyi +1 -0
- homeassistant-stubs/components/cert_expiry/helper.pyi +1 -1
- homeassistant-stubs/components/cloud/__init__.pyi +2 -1
- homeassistant-stubs/components/cloud/client.pyi +1 -1
- homeassistant-stubs/components/cloud/const.pyi +1 -1
- homeassistant-stubs/components/comelit/binary_sensor.pyi +1 -0
- homeassistant-stubs/components/comelit/cover.pyi +2 -2
- homeassistant-stubs/components/comelit/light.pyi +1 -1
- homeassistant-stubs/components/comelit/sensor.pyi +1 -0
- homeassistant-stubs/components/comelit/switch.pyi +1 -1
- homeassistant-stubs/components/comelit/utils.pyi +5 -1
- homeassistant-stubs/components/config/config_entries.pyi +5 -1
- homeassistant-stubs/components/cover/__init__.pyi +1 -11
- homeassistant-stubs/components/demo/valve.pyi +14 -5
- homeassistant-stubs/components/derivative/__init__.pyi +0 -1
- homeassistant-stubs/components/derivative/config_flow.pyi +1 -0
- homeassistant-stubs/components/derivative/sensor.pyi +2 -1
- homeassistant-stubs/components/device_automation/condition.pyi +7 -6
- homeassistant-stubs/components/devolo_home_control/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/devolo_home_control/entity.pyi +1 -2
- homeassistant-stubs/components/devolo_home_control/sensor.pyi +1 -1
- homeassistant-stubs/components/devolo_home_control/subscriber.pyi +0 -1
- homeassistant-stubs/components/devolo_home_control/switch.pyi +1 -1
- homeassistant-stubs/components/dnsip/sensor.pyi +3 -3
- homeassistant-stubs/components/ecovacs/button.pyi +1 -1
- homeassistant-stubs/components/ecovacs/select.pyi +14 -2
- homeassistant-stubs/components/eheimdigital/sensor.pyi +1 -2
- homeassistant-stubs/components/enphase_envoy/sensor.pyi +4 -22
- homeassistant-stubs/components/eq3btsmart/sensor.pyi +1 -2
- homeassistant-stubs/components/esphome/__init__.pyi +1 -1
- homeassistant-stubs/components/esphome/assist_satellite.pyi +12 -2
- homeassistant-stubs/components/esphome/climate.pyi +1 -0
- homeassistant-stubs/components/esphome/config_flow.pyi +7 -4
- homeassistant-stubs/components/esphome/const.pyi +2 -0
- homeassistant-stubs/components/esphome/entry_data.pyi +1 -0
- homeassistant-stubs/components/esphome/manager.pyi +8 -3
- homeassistant-stubs/components/esphome/select.pyi +1 -1
- homeassistant-stubs/components/evohome/climate.pyi +1 -1
- homeassistant-stubs/components/fastdotcom/coordinator.pyi +2 -2
- homeassistant-stubs/components/fastdotcom/sensor.pyi +1 -1
- homeassistant-stubs/components/filter/__init__.pyi +0 -1
- homeassistant-stubs/components/filter/config_flow.pyi +1 -0
- homeassistant-stubs/components/firefly_iii/__init__.pyi +8 -0
- homeassistant-stubs/components/firefly_iii/config_flow.pyi +24 -0
- homeassistant-stubs/components/firefly_iii/const.pyi +3 -0
- homeassistant-stubs/components/firefly_iii/coordinator.pyi +30 -0
- homeassistant-stubs/components/firefly_iii/diagnostics.pyi +11 -0
- homeassistant-stubs/components/firefly_iii/entity.pyi +30 -0
- homeassistant-stubs/components/firefly_iii/sensor.pyi +66 -0
- homeassistant-stubs/components/fritz/coordinator.pyi +3 -0
- homeassistant-stubs/components/fritz/models.pyi +2 -2
- homeassistant-stubs/components/fritz/services.pyi +3 -0
- homeassistant-stubs/components/fritzbox/climate.pyi +2 -5
- homeassistant-stubs/components/generic_hygrostat/__init__.pyi +0 -1
- homeassistant-stubs/components/generic_hygrostat/config_flow.pyi +1 -0
- homeassistant-stubs/components/generic_thermostat/__init__.pyi +0 -1
- homeassistant-stubs/components/generic_thermostat/config_flow.pyi +1 -0
- homeassistant-stubs/components/github/__init__.pyi +12 -0
- homeassistant-stubs/components/github/config_flow.pyi +28 -0
- homeassistant-stubs/components/github/const.pyi +10 -0
- homeassistant-stubs/components/github/coordinator.pyi +26 -0
- homeassistant-stubs/components/github/diagnostics.pyi +7 -0
- homeassistant-stubs/components/github/sensor.pyi +37 -0
- homeassistant-stubs/components/go2rtc/__init__.pyi +1 -2
- homeassistant-stubs/components/google_assistant_sdk/config_flow.pyi +2 -1
- homeassistant-stubs/components/google_drive/api.pyi +1 -0
- homeassistant-stubs/components/google_sheets/services.pyi +9 -2
- homeassistant-stubs/components/group/__init__.pyi +0 -1
- homeassistant-stubs/components/group/config_flow.pyi +2 -0
- homeassistant-stubs/components/group/entity.pyi +3 -0
- homeassistant-stubs/components/group/light.pyi +1 -1
- homeassistant-stubs/components/group/util.pyi +1 -0
- homeassistant-stubs/components/group/valve.pyi +47 -0
- homeassistant-stubs/components/habitica/__init__.pyi +1 -0
- homeassistant-stubs/components/habitica/config_flow.pyi +11 -3
- homeassistant-stubs/components/habitica/const.pyi +1 -0
- homeassistant-stubs/components/habitica/coordinator.pyi +9 -3
- homeassistant-stubs/components/habitica/entity.pyi +15 -2
- homeassistant-stubs/components/habitica/image.pyi +6 -2
- homeassistant-stubs/components/habitica/notify.pyi +42 -0
- homeassistant-stubs/components/habitica/sensor.pyi +9 -4
- homeassistant-stubs/components/hardkernel/hardware.pyi +1 -1
- homeassistant-stubs/components/hardware/__init__.pyi +2 -10
- homeassistant-stubs/components/history_stats/__init__.pyi +0 -1
- homeassistant-stubs/components/history_stats/config_flow.pyi +1 -0
- homeassistant-stubs/components/home_connect/application_credentials.pyi +1 -0
- homeassistant-stubs/components/home_connect/const.pyi +1 -0
- homeassistant-stubs/components/home_connect/select.pyi +1 -1
- homeassistant-stubs/components/homeassistant_green/config_flow.pyi +4 -2
- homeassistant-stubs/components/homeassistant_green/hardware.pyi +1 -1
- homeassistant-stubs/components/homeassistant_hardware/const.pyi +1 -0
- homeassistant-stubs/components/homeassistant_hardware/helpers.pyi +12 -2
- homeassistant-stubs/components/homeassistant_hardware/switch.pyi +23 -0
- homeassistant-stubs/components/homeassistant_sky_connect/__init__.pyi +13 -4
- homeassistant-stubs/components/homeassistant_sky_connect/config_flow.pyi +4 -0
- homeassistant-stubs/components/homeassistant_sky_connect/hardware.pyi +1 -1
- homeassistant-stubs/components/homeassistant_sky_connect/switch.pyi +17 -0
- homeassistant-stubs/components/homeassistant_sky_connect/update.pyi +5 -7
- homeassistant-stubs/components/homeassistant_yellow/__init__.pyi +12 -4
- homeassistant-stubs/components/homeassistant_yellow/config_flow.pyi +1 -1
- homeassistant-stubs/components/homeassistant_yellow/hardware.pyi +1 -1
- homeassistant-stubs/components/homeassistant_yellow/switch.pyi +17 -0
- homeassistant-stubs/components/homeassistant_yellow/update.pyi +5 -7
- homeassistant-stubs/components/homee/__init__.pyi +1 -0
- homeassistant-stubs/components/homewizard/__init__.pyi +2 -0
- homeassistant-stubs/components/husqvarna_automower/button.pyi +1 -0
- homeassistant-stubs/components/husqvarna_automower/entity.pyi +8 -4
- homeassistant-stubs/components/husqvarna_automower/lawn_mower.pyi +5 -0
- homeassistant-stubs/components/husqvarna_automower/select.pyi +1 -0
- homeassistant-stubs/components/husqvarna_automower/sensor.pyi +2 -0
- homeassistant-stubs/components/husqvarna_automower/switch.pyi +2 -0
- homeassistant-stubs/components/imap/__init__.pyi +3 -1
- homeassistant-stubs/components/imap/coordinator.pyi +4 -1
- homeassistant-stubs/components/inels/__init__.pyi +18 -0
- homeassistant-stubs/components/inels/config_flow.pyi +13 -0
- homeassistant-stubs/components/inels/const.pyi +7 -0
- homeassistant-stubs/components/inels/entity.pyi +20 -0
- homeassistant-stubs/components/inels/switch.pyi +34 -0
- homeassistant-stubs/components/knx/climate.pyi +23 -11
- homeassistant-stubs/components/knx/const.pyi +14 -0
- homeassistant-stubs/components/knx/schema.pyi +1 -13
- homeassistant-stubs/components/knx/sensor.pyi +8 -9
- homeassistant-stubs/components/knx/storage/const.pyi +20 -0
- homeassistant-stubs/components/knx/storage/entity_store_schema.pyi +13 -2
- homeassistant-stubs/components/lametric/config_flow.pyi +2 -0
- homeassistant-stubs/components/lcn/sensor.pyi +1 -1
- homeassistant-stubs/components/libre_hardware_monitor/__init__.pyi +3 -0
- homeassistant-stubs/components/libre_hardware_monitor/sensor.pyi +2 -3
- homeassistant-stubs/components/litterrobot/update.pyi +2 -0
- homeassistant-stubs/components/lock/__init__.pyi +1 -6
- homeassistant-stubs/components/london_underground/__init__.pyi +9 -0
- homeassistant-stubs/components/london_underground/config_flow.pyi +22 -0
- homeassistant-stubs/components/london_underground/const.pyi +1 -0
- homeassistant-stubs/components/london_underground/coordinator.pyi +3 -1
- homeassistant-stubs/components/london_underground/sensor.pyi +10 -5
- homeassistant-stubs/components/lunatone/__init__.pyi +12 -0
- homeassistant-stubs/components/lunatone/config_flow.pyi +16 -0
- homeassistant-stubs/components/lunatone/const.pyi +3 -0
- homeassistant-stubs/components/lunatone/coordinator.pyi +29 -0
- homeassistant-stubs/components/lunatone/light.pyi +43 -0
- homeassistant-stubs/components/matrix/__init__.pyi +10 -2
- homeassistant-stubs/components/matrix/const.pyi +5 -0
- homeassistant-stubs/components/matrix/services.pyi +3 -1
- homeassistant-stubs/components/matter/__init__.pyi +5 -0
- homeassistant-stubs/components/matter/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/matter/button.pyi +1 -1
- homeassistant-stubs/components/matter/climate.pyi +7 -1
- homeassistant-stubs/components/matter/cover.pyi +6 -2
- homeassistant-stubs/components/matter/entity.pyi +4 -2
- homeassistant-stubs/components/matter/event.pyi +5 -1
- homeassistant-stubs/components/matter/fan.pyi +5 -1
- homeassistant-stubs/components/matter/light.pyi +6 -2
- homeassistant-stubs/components/matter/lock.pyi +5 -1
- homeassistant-stubs/components/matter/models.pyi +3 -3
- homeassistant-stubs/components/matter/number.pyi +1 -1
- homeassistant-stubs/components/matter/select.pyi +1 -1
- homeassistant-stubs/components/matter/sensor.pyi +4 -1
- homeassistant-stubs/components/matter/services.pyi +11 -0
- homeassistant-stubs/components/matter/switch.pyi +5 -2
- homeassistant-stubs/components/matter/update.pyi +4 -1
- homeassistant-stubs/components/matter/vacuum.pyi +6 -2
- homeassistant-stubs/components/matter/valve.pyi +6 -2
- homeassistant-stubs/components/matter/water_heater.pyi +8 -1
- homeassistant-stubs/components/mcp/__init__.pyi +1 -6
- homeassistant-stubs/components/mcp/config_flow.pyi +12 -2
- homeassistant-stubs/components/mcp/const.pyi +1 -0
- homeassistant-stubs/components/mcp/coordinator.pyi +1 -1
- homeassistant-stubs/components/mcp_server/__init__.pyi +1 -8
- homeassistant-stubs/components/mcp_server/http.pyi +23 -1
- homeassistant-stubs/components/mealie/config_flow.pyi +8 -1
- homeassistant-stubs/components/media_player/__init__.pyi +1 -9
- homeassistant-stubs/components/media_player/const.pyi +10 -69
- homeassistant-stubs/components/media_player/intent.pyi +7 -9
- homeassistant-stubs/components/metoffice/__init__.pyi +1 -0
- homeassistant-stubs/components/metoffice/helpers.pyi +2 -2
- homeassistant-stubs/components/metoffice/weather.pyi +11 -11
- homeassistant-stubs/components/min_max/__init__.pyi +0 -1
- homeassistant-stubs/components/min_max/config_flow.pyi +1 -0
- homeassistant-stubs/components/mold_indicator/__init__.pyi +0 -1
- homeassistant-stubs/components/mold_indicator/config_flow.pyi +1 -0
- homeassistant-stubs/components/mqtt/__init__.pyi +1 -4
- homeassistant-stubs/components/mqtt/config_flow.pyi +23 -4
- homeassistant-stubs/components/mqtt/const.pyi +7 -1
- homeassistant-stubs/components/mqtt/number.pyi +1 -5
- homeassistant-stubs/components/mqtt/siren.pyi +1 -9
- homeassistant-stubs/components/music_assistant/const.pyi +4 -0
- homeassistant-stubs/components/music_assistant/media_player.pyi +1 -1
- homeassistant-stubs/components/music_assistant/schemas.pyi +2 -2
- homeassistant-stubs/components/nasweb/sensor.pyi +0 -5
- homeassistant-stubs/components/nasweb/switch.pyi +1 -0
- homeassistant-stubs/components/nextdns/config_flow.pyi +6 -1
- homeassistant-stubs/components/number/const.pyi +2 -1
- homeassistant-stubs/components/onedrive/backup.pyi +2 -1
- homeassistant-stubs/components/onewire/binary_sensor.pyi +5 -12
- homeassistant-stubs/components/onewire/const.pyi +0 -2
- homeassistant-stubs/components/onewire/diagnostics.pyi +2 -0
- homeassistant-stubs/components/onewire/entity.pyi +6 -14
- homeassistant-stubs/components/onewire/onewirehub.pyi +5 -5
- homeassistant-stubs/components/onewire/select.pyi +3 -10
- homeassistant-stubs/components/onewire/sensor.pyi +5 -7
- homeassistant-stubs/components/onewire/switch.pyi +7 -14
- homeassistant-stubs/components/onkyo/receiver.pyi +1 -1
- homeassistant-stubs/components/open_router/entity.pyi +4 -1
- homeassistant-stubs/components/openai_conversation/ai_task.pyi +1 -1
- homeassistant-stubs/components/openai_conversation/config_flow.pyi +1 -1
- homeassistant-stubs/components/openai_conversation/const.pyi +2 -0
- homeassistant-stubs/components/openai_conversation/entity.pyi +1 -1
- homeassistant-stubs/components/opower/coordinator.pyi +1 -0
- homeassistant-stubs/components/ping/__init__.pyi +1 -0
- homeassistant-stubs/components/ping/config_flow.pyi +1 -0
- homeassistant-stubs/components/ping/device_tracker.pyi +3 -2
- homeassistant-stubs/components/ping/entity.pyi +1 -0
- homeassistant-stubs/components/portainer/button.pyi +29 -0
- homeassistant-stubs/components/portainer/config_flow.pyi +4 -0
- homeassistant-stubs/components/portainer/const.pyi +1 -0
- homeassistant-stubs/components/portainer/coordinator.pyi +11 -2
- homeassistant-stubs/components/portainer/diagnostics.pyi +12 -0
- homeassistant-stubs/components/portainer/entity.pyi +2 -0
- homeassistant-stubs/components/portainer/sensor.pyi +41 -0
- homeassistant-stubs/components/portainer/switch.pyi +35 -0
- homeassistant-stubs/components/qbus/entity.pyi +1 -3
- homeassistant-stubs/components/raspberry_pi/hardware.pyi +1 -1
- homeassistant-stubs/components/recorder/const.pyi +1 -1
- homeassistant-stubs/components/recorder/core.pyi +3 -3
- homeassistant-stubs/components/recorder/db_schema.pyi +3 -10
- homeassistant-stubs/components/recorder/entity_registry.pyi +1 -0
- homeassistant-stubs/components/recorder/history/__init__.pyi +2 -2
- homeassistant-stubs/components/recorder/migration.pyi +4 -1
- homeassistant-stubs/components/recorder/models/statistics.pyi +1 -0
- homeassistant-stubs/components/recorder/statistics.pyi +17 -12
- homeassistant-stubs/components/recorder/table_managers/states_meta.pyi +0 -1
- homeassistant-stubs/components/recorder/table_managers/statistics_meta.pyi +4 -2
- homeassistant-stubs/components/recorder/tasks.pyi +1 -0
- homeassistant-stubs/components/recorder/util.pyi +1 -1
- homeassistant-stubs/components/recorder/websocket_api.pyi +6 -4
- homeassistant-stubs/components/renault/sensor.pyi +1 -1
- homeassistant-stubs/components/reolink/__init__.pyi +1 -1
- homeassistant-stubs/components/reolink/binary_sensor.pyi +15 -0
- homeassistant-stubs/components/reolink/siren.pyi +2 -0
- homeassistant-stubs/components/reolink/switch.pyi +25 -7
- homeassistant-stubs/components/roborock/__init__.pyi +1 -1
- homeassistant-stubs/components/roborock/config_flow.pyi +1 -1
- homeassistant-stubs/components/roborock/coordinator.pyi +2 -1
- homeassistant-stubs/components/roborock/entity.pyi +1 -1
- homeassistant-stubs/components/roborock/models.pyi +1 -1
- homeassistant-stubs/components/scrape/coordinator.pyi +1 -2
- homeassistant-stubs/components/sensibo/__init__.pyi +6 -0
- homeassistant-stubs/components/sensibo/climate.pyi +3 -26
- homeassistant-stubs/components/sensibo/services.pyi +31 -0
- 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/sensor/recorder.pyi +6 -3
- homeassistant-stubs/components/sfr_box/__init__.pyi +4 -6
- homeassistant-stubs/components/sfr_box/binary_sensor.pyi +5 -14
- homeassistant-stubs/components/sfr_box/button.pyi +4 -9
- homeassistant-stubs/components/sfr_box/config_flow.pyi +2 -1
- homeassistant-stubs/components/sfr_box/coordinator.pyi +13 -2
- homeassistant-stubs/components/sfr_box/diagnostics.pyi +2 -4
- homeassistant-stubs/components/sfr_box/entity.pyi +18 -0
- homeassistant-stubs/components/sfr_box/sensor.pyi +4 -13
- homeassistant-stubs/components/shelly/__init__.pyi +2 -2
- homeassistant-stubs/components/shelly/binary_sensor.pyi +6 -2
- homeassistant-stubs/components/shelly/button.pyi +26 -16
- homeassistant-stubs/components/shelly/climate.pyi +61 -7
- homeassistant-stubs/components/shelly/const.pyi +15 -3
- homeassistant-stubs/components/shelly/cover.pyi +31 -10
- homeassistant-stubs/components/shelly/entity.pyi +5 -4
- homeassistant-stubs/components/shelly/event.pyi +4 -0
- homeassistant-stubs/components/shelly/light.pyi +23 -7
- homeassistant-stubs/components/shelly/number.pyi +11 -2
- homeassistant-stubs/components/shelly/repairs.pyi +2 -2
- homeassistant-stubs/components/shelly/select.pyi +4 -1
- homeassistant-stubs/components/shelly/sensor.pyi +8 -7
- homeassistant-stubs/components/shelly/switch.pyi +7 -4
- homeassistant-stubs/components/shelly/text.pyi +4 -1
- homeassistant-stubs/components/shelly/update.pyi +4 -0
- homeassistant-stubs/components/shelly/utils.pyi +10 -5
- homeassistant-stubs/components/shelly/valve.pyi +34 -5
- homeassistant-stubs/components/simplisafe/config_flow.pyi +2 -0
- homeassistant-stubs/components/sleep_as_android/event.pyi +1 -0
- homeassistant-stubs/components/sma/__init__.pyi +15 -0
- homeassistant-stubs/components/sma/config_flow.pyi +27 -0
- homeassistant-stubs/components/sma/const.pyi +11 -0
- homeassistant-stubs/components/sma/coordinator.pyi +28 -0
- homeassistant-stubs/components/sma/diagnostics.pyi +10 -0
- homeassistant-stubs/components/sma/sensor.pyi +33 -0
- homeassistant-stubs/components/sql/__init__.pyi +2 -4
- homeassistant-stubs/components/sql/sensor.pyi +6 -13
- homeassistant-stubs/components/sql/services.pyi +17 -0
- homeassistant-stubs/components/sql/util.pyi +16 -3
- homeassistant-stubs/components/squeezebox/__init__.pyi +4 -1
- homeassistant-stubs/components/squeezebox/browse_media.pyi +4 -3
- homeassistant-stubs/components/squeezebox/button.pyi +1 -0
- homeassistant-stubs/components/squeezebox/const.pyi +0 -1
- homeassistant-stubs/components/squeezebox/media_player.pyi +7 -2
- homeassistant-stubs/components/squeezebox/switch.pyi +1 -0
- homeassistant-stubs/components/squeezebox/util.pyi +6 -0
- homeassistant-stubs/components/suez_water/coordinator.pyi +2 -1
- homeassistant-stubs/components/sun/condition.pyi +10 -5
- homeassistant-stubs/components/switch_as_x/__init__.pyi +0 -1
- homeassistant-stubs/components/switch_as_x/config_flow.pyi +1 -0
- homeassistant-stubs/components/switchbot_cloud/climate.pyi +2 -0
- homeassistant-stubs/components/switchbot_cloud/lock.pyi +7 -2
- homeassistant-stubs/components/switchbot_cloud/sensor.pyi +25 -2
- homeassistant-stubs/components/switchbot_cloud/switch.pyi +13 -1
- homeassistant-stubs/components/switchbot_cloud/vacuum.pyi +4 -4
- homeassistant-stubs/components/switcher_kis/button.pyi +5 -6
- homeassistant-stubs/components/switcher_kis/climate.pyi +3 -3
- homeassistant-stubs/components/switcher_kis/const.pyi +1 -0
- homeassistant-stubs/components/switcher_kis/cover.pyi +4 -3
- homeassistant-stubs/components/switcher_kis/light.pyi +3 -2
- homeassistant-stubs/components/switcher_kis/sensor.pyi +4 -2
- homeassistant-stubs/components/switcher_kis/switch.pyi +3 -5
- homeassistant-stubs/components/systemmonitor/__init__.pyi +0 -1
- homeassistant-stubs/components/systemmonitor/config_flow.pyi +1 -0
- homeassistant-stubs/components/systemmonitor/coordinator.pyi +1 -0
- homeassistant-stubs/components/systemmonitor/sensor.pyi +3 -1
- homeassistant-stubs/components/telegram_bot/__init__.pyi +2 -1
- homeassistant-stubs/components/telegram_bot/bot.pyi +10 -5
- homeassistant-stubs/components/telegram_bot/const.pyi +9 -0
- homeassistant-stubs/components/telegram_bot/diagnostics.pyi +11 -0
- homeassistant-stubs/components/telegram_bot/entity.pyi +16 -0
- homeassistant-stubs/components/telegram_bot/event.pyi +18 -0
- homeassistant-stubs/components/telegram_bot/notify.pyi +6 -10
- homeassistant-stubs/components/tibber/coordinator.pyi +1 -0
- homeassistant-stubs/components/tod/__init__.pyi +0 -1
- homeassistant-stubs/components/tod/config_flow.pyi +1 -0
- homeassistant-stubs/components/tolo/__init__.pyi +3 -5
- homeassistant-stubs/components/tolo/binary_sensor.pyi +4 -6
- homeassistant-stubs/components/tolo/button.pyi +3 -5
- homeassistant-stubs/components/tolo/climate.pyi +3 -5
- homeassistant-stubs/components/tolo/coordinator.pyi +3 -2
- homeassistant-stubs/components/tolo/entity.pyi +2 -3
- homeassistant-stubs/components/tolo/fan.pyi +3 -5
- homeassistant-stubs/components/tolo/light.pyi +3 -5
- homeassistant-stubs/components/tolo/number.pyi +3 -5
- homeassistant-stubs/components/tolo/select.pyi +4 -5
- homeassistant-stubs/components/tolo/sensor.pyi +3 -5
- homeassistant-stubs/components/tolo/switch.pyi +3 -5
- homeassistant-stubs/components/trend/__init__.pyi +0 -1
- homeassistant-stubs/components/trend/config_flow.pyi +1 -0
- homeassistant-stubs/components/tts/__init__.pyi +2 -3
- homeassistant-stubs/components/unifi/light.pyi +44 -0
- homeassistant-stubs/components/uptimerobot/binary_sensor.pyi +2 -0
- homeassistant-stubs/components/uptimerobot/sensor.pyi +2 -0
- homeassistant-stubs/components/uptimerobot/switch.pyi +2 -0
- homeassistant-stubs/components/uptimerobot/utils.pyi +5 -0
- homeassistant-stubs/components/usb/__init__.pyi +2 -0
- homeassistant-stubs/components/usb/utils.pyi +7 -0
- homeassistant-stubs/components/vacuum/__init__.pyi +0 -15
- homeassistant-stubs/components/vivotek/__init__.pyi +0 -0
- homeassistant-stubs/components/vivotek/camera.pyi +35 -0
- homeassistant-stubs/components/vodafone_station/__init__.pyi +3 -1
- homeassistant-stubs/components/vodafone_station/config_flow.pyi +3 -2
- homeassistant-stubs/components/vodafone_station/const.pyi +3 -0
- homeassistant-stubs/components/vodafone_station/coordinator.pyi +4 -4
- homeassistant-stubs/components/volvo/__init__.pyi +2 -0
- homeassistant-stubs/components/volvo/binary_sensor.pyi +1 -3
- homeassistant-stubs/components/volvo/button.pyi +27 -0
- homeassistant-stubs/components/volvo/coordinator.pyi +12 -14
- homeassistant-stubs/components/volvo/device_tracker.pyi +23 -0
- homeassistant-stubs/components/volvo/diagnostics.pyi +12 -0
- homeassistant-stubs/components/volvo/entity.pyi +9 -5
- homeassistant-stubs/components/volvo/sensor.pyi +9 -8
- homeassistant-stubs/components/waqi/__init__.pyi +8 -0
- homeassistant-stubs/components/waqi/config_flow.pyi +14 -9
- homeassistant-stubs/components/waqi/const.pyi +1 -1
- homeassistant-stubs/components/waqi/coordinator.pyi +5 -4
- homeassistant-stubs/components/webostv/media_player.pyi +3 -0
- homeassistant-stubs/components/websocket_api/commands.pyi +2 -0
- homeassistant-stubs/components/wled/select.pyi +6 -3
- homeassistant-stubs/components/worldclock/__init__.pyi +0 -1
- homeassistant-stubs/components/worldclock/config_flow.pyi +1 -0
- homeassistant-stubs/components/zeroconf/__init__.pyi +3 -1
- homeassistant-stubs/components/zeroconf/discovery.pyi +8 -1
- homeassistant-stubs/components/zeroconf/repairs.pyi +13 -0
- homeassistant-stubs/components/zone/condition.pyi +10 -4
- homeassistant-stubs/components/zwave_js/config_flow.pyi +1 -0
- homeassistant-stubs/components/zwave_js/device_trigger.pyi +1 -1
- homeassistant-stubs/components/zwave_js/triggers/event.pyi +6 -8
- homeassistant-stubs/components/zwave_js/triggers/value_updated.pyi +6 -6
- homeassistant-stubs/config_entries.pyi +9 -0
- homeassistant-stubs/const.pyi +4 -21
- homeassistant-stubs/core.pyi +1 -7
- homeassistant-stubs/data_entry_flow.pyi +2 -0
- homeassistant-stubs/helpers/automation.pyi +6 -0
- homeassistant-stubs/helpers/condition.pyi +15 -5
- homeassistant-stubs/helpers/debounce.pyi +6 -1
- homeassistant-stubs/helpers/entity_platform.pyi +1 -1
- homeassistant-stubs/helpers/event.pyi +1 -1
- homeassistant-stubs/helpers/instance_id.pyi +1 -0
- homeassistant-stubs/helpers/llm.pyi +6 -1
- homeassistant-stubs/helpers/selector.pyi +5 -4
- homeassistant-stubs/helpers/service.pyi +4 -4
- homeassistant-stubs/helpers/template/__init__.pyi +0 -5
- homeassistant-stubs/helpers/trigger.pyi +18 -5
- homeassistant-stubs/helpers/update_coordinator.pyi +1 -0
- homeassistant-stubs/runner.pyi +1 -1
- homeassistant-stubs/util/async_iterator.pyi +33 -0
- homeassistant-stubs/util/unit_conversion.pyi +15 -0
- {homeassistant_stubs-2025.10.3.dist-info → homeassistant_stubs-2025.11.0b0.dist-info}/METADATA +2 -2
- {homeassistant_stubs-2025.10.3.dist-info → homeassistant_stubs-2025.11.0b0.dist-info}/RECORD +438 -402
- homeassistant-stubs/components/elevenlabs/__init__.pyi +0 -22
- homeassistant-stubs/components/elevenlabs/config_flow.pyi +0 -33
- homeassistant-stubs/components/elevenlabs/const.pyi +0 -14
- homeassistant-stubs/components/elevenlabs/tts.pyi +0 -36
- homeassistant-stubs/components/neato/__init__.pyi +0 -15
- homeassistant-stubs/components/neato/api.pyi +0 -17
- homeassistant-stubs/components/neato/application_credentials.pyi +0 -6
- homeassistant-stubs/components/neato/button.pyi +0 -18
- homeassistant-stubs/components/neato/camera.pyi +0 -34
- homeassistant-stubs/components/neato/config_flow.pyi +0 -15
- homeassistant-stubs/components/neato/const.pyi +0 -13
- homeassistant-stubs/components/neato/entity.pyi +0 -11
- homeassistant-stubs/components/neato/hub.pyi +0 -17
- homeassistant-stubs/components/neato/sensor.pyi +0 -30
- homeassistant-stubs/components/neato/switch.pyi +0 -34
- homeassistant-stubs/components/neato/vacuum.pyi +0 -70
- homeassistant-stubs/components/recorder/history/legacy.pyi +0 -48
- homeassistant-stubs/components/recorder/history/modern.pyi +0 -39
- homeassistant-stubs/components/recorder/models/legacy.pyi +0 -45
- homeassistant-stubs/components/sfr_box/models.pyi +0 -12
- {homeassistant_stubs-2025.10.3.dist-info → homeassistant_stubs-2025.11.0b0.dist-info}/WHEEL +0 -0
- {homeassistant_stubs-2025.10.3.dist-info → homeassistant_stubs-2025.11.0b0.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,17 +1,12 @@
|
|
|
1
|
-
from .
|
|
2
|
-
from .
|
|
3
|
-
from .models import DomainData as DomainData
|
|
4
|
-
from _typeshed import Incomplete
|
|
1
|
+
from .coordinator import SFRConfigEntry as SFRConfigEntry
|
|
2
|
+
from .entity import SFRCoordinatorEntity as SFRCoordinatorEntity
|
|
5
3
|
from collections.abc import Callable as Callable
|
|
6
4
|
from dataclasses import dataclass
|
|
7
5
|
from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
|
|
8
|
-
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
9
6
|
from homeassistant.const import EntityCategory as EntityCategory, SIGNAL_STRENGTH_DECIBELS as SIGNAL_STRENGTH_DECIBELS, UnitOfDataRate as UnitOfDataRate, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfTemperature as UnitOfTemperature
|
|
10
7
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
11
|
-
from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
|
|
12
8
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
13
9
|
from homeassistant.helpers.typing import StateType as StateType
|
|
14
|
-
from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
|
|
15
10
|
from sfrbox_api.models import DslInfo, SystemInfo, WanInfo
|
|
16
11
|
|
|
17
12
|
@dataclass(frozen=True, kw_only=True)
|
|
@@ -24,13 +19,9 @@ WAN_SENSOR_TYPES: tuple[SFRBoxSensorEntityDescription[WanInfo], ...]
|
|
|
24
19
|
|
|
25
20
|
def _value_to_option(value: str | None) -> str | None: ...
|
|
26
21
|
def _get_temperature(value: float | None) -> float | None: ...
|
|
27
|
-
async def async_setup_entry(hass: HomeAssistant, entry:
|
|
22
|
+
async def async_setup_entry(hass: HomeAssistant, entry: SFRConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
28
23
|
|
|
29
|
-
class SFRBoxSensor[_T](
|
|
24
|
+
class SFRBoxSensor[_T](SFRCoordinatorEntity[_T], SensorEntity):
|
|
30
25
|
entity_description: SFRBoxSensorEntityDescription[_T]
|
|
31
|
-
_attr_has_entity_name: bool
|
|
32
|
-
_attr_unique_id: Incomplete
|
|
33
|
-
_attr_device_info: Incomplete
|
|
34
|
-
def __init__(self, coordinator: SFRDataUpdateCoordinator[_T], description: SFRBoxSensorEntityDescription, system_info: SystemInfo) -> None: ...
|
|
35
26
|
@property
|
|
36
27
|
def native_value(self) -> StateType: ...
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from .const import BLOCK_EXPECTED_SLEEP_PERIOD as BLOCK_EXPECTED_SLEEP_PERIOD, BLOCK_WRONG_SLEEP_PERIOD as BLOCK_WRONG_SLEEP_PERIOD, CONF_COAP_PORT as CONF_COAP_PORT, CONF_SLEEP_PERIOD as CONF_SLEEP_PERIOD, DOMAIN as DOMAIN, FIRMWARE_UNSUPPORTED_ISSUE_ID as FIRMWARE_UNSUPPORTED_ISSUE_ID, LOGGER as LOGGER, MODELS_WITH_WRONG_SLEEP_PERIOD as MODELS_WITH_WRONG_SLEEP_PERIOD, PUSH_UPDATE_ISSUE_ID as PUSH_UPDATE_ISSUE_ID
|
|
2
2
|
from .coordinator import ShellyBlockCoordinator as ShellyBlockCoordinator, ShellyConfigEntry as ShellyConfigEntry, ShellyEntryData as ShellyEntryData, ShellyRestCoordinator as ShellyRestCoordinator, ShellyRpcCoordinator as ShellyRpcCoordinator, ShellyRpcPollingCoordinator as ShellyRpcPollingCoordinator
|
|
3
|
-
from .repairs import async_manage_ble_scanner_firmware_unsupported_issue as async_manage_ble_scanner_firmware_unsupported_issue,
|
|
4
|
-
from .utils import async_create_issue_unsupported_firmware as async_create_issue_unsupported_firmware, get_coap_context as get_coap_context, get_device_entry_gen as get_device_entry_gen, get_http_port as get_http_port, get_rpc_scripts_event_types as get_rpc_scripts_event_types, get_ws_context as get_ws_context, remove_empty_sub_devices as remove_empty_sub_devices, remove_stale_blu_trv_devices as remove_stale_blu_trv_devices
|
|
3
|
+
from .repairs import async_manage_ble_scanner_firmware_unsupported_issue as async_manage_ble_scanner_firmware_unsupported_issue, async_manage_deprecated_firmware_issue as async_manage_deprecated_firmware_issue, async_manage_outbound_websocket_incorrectly_enabled_issue as async_manage_outbound_websocket_incorrectly_enabled_issue
|
|
4
|
+
from .utils import async_create_issue_unsupported_firmware as async_create_issue_unsupported_firmware, async_migrate_rpc_virtual_components_unique_ids as async_migrate_rpc_virtual_components_unique_ids, get_coap_context as get_coap_context, get_device_entry_gen as get_device_entry_gen, get_http_port as get_http_port, get_rpc_scripts_event_types as get_rpc_scripts_event_types, get_ws_context as get_ws_context, remove_empty_sub_devices as remove_empty_sub_devices, remove_stale_blu_trv_devices as remove_stale_blu_trv_devices
|
|
5
5
|
from _typeshed import Incomplete
|
|
6
6
|
from homeassistant.components.bluetooth import async_remove_scanner as async_remove_scanner
|
|
7
7
|
from homeassistant.const import CONF_HOST as CONF_HOST, CONF_MODEL as CONF_MODEL, CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME, Platform as Platform
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from .const import CONF_SLEEP_PERIOD as CONF_SLEEP_PERIOD
|
|
1
|
+
from .const import CONF_SLEEP_PERIOD as CONF_SLEEP_PERIOD, MODEL_FRANKEVER_WATER_VALVE as MODEL_FRANKEVER_WATER_VALVE, ROLE_GENERIC as ROLE_GENERIC
|
|
2
2
|
from .coordinator import ShellyConfigEntry as ShellyConfigEntry, ShellyRpcCoordinator as ShellyRpcCoordinator
|
|
3
3
|
from .entity import BlockEntityDescription as BlockEntityDescription, RestEntityDescription as RestEntityDescription, RpcEntityDescription as RpcEntityDescription, ShellyBlockAttributeEntity as ShellyBlockAttributeEntity, ShellyRestAttributeEntity as ShellyRestAttributeEntity, ShellyRpcAttributeEntity as ShellyRpcAttributeEntity, ShellySleepingBlockAttributeEntity as ShellySleepingBlockAttributeEntity, ShellySleepingRpcAttributeEntity as ShellySleepingRpcAttributeEntity, async_setup_entry_attribute_entities as async_setup_entry_attribute_entities, async_setup_entry_rest as async_setup_entry_rest, async_setup_entry_rpc as async_setup_entry_rpc
|
|
4
4
|
from .utils import async_remove_orphaned_entities as async_remove_orphaned_entities, get_blu_trv_device_info as get_blu_trv_device_info, get_device_entry_gen as get_device_entry_gen, is_block_momentary_input as is_block_momentary_input, is_rpc_momentary_input as is_rpc_momentary_input, is_view_for_platform as is_view_for_platform
|
|
@@ -6,7 +6,7 @@ from _typeshed import Incomplete
|
|
|
6
6
|
from dataclasses import dataclass
|
|
7
7
|
from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription
|
|
8
8
|
from homeassistant.const import EntityCategory as EntityCategory, STATE_ON as STATE_ON
|
|
9
|
-
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
9
|
+
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
|
10
10
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
11
11
|
from homeassistant.helpers.restore_state import RestoreEntity as RestoreEntity
|
|
12
12
|
from typing import Final
|
|
@@ -38,6 +38,10 @@ REST_SENSORS: Final[Incomplete]
|
|
|
38
38
|
RPC_SENSORS: Final[Incomplete]
|
|
39
39
|
|
|
40
40
|
async def async_setup_entry(hass: HomeAssistant, config_entry: ShellyConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
41
|
+
@callback
|
|
42
|
+
def _async_setup_block_entry(hass: HomeAssistant, config_entry: ShellyConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
43
|
+
@callback
|
|
44
|
+
def _async_setup_rpc_entry(hass: HomeAssistant, config_entry: ShellyConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
41
45
|
|
|
42
46
|
class BlockBinarySensor(ShellyBlockAttributeEntity, BinarySensorEntity):
|
|
43
47
|
entity_description: BlockBinarySensorDescription
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
from .const import DOMAIN as DOMAIN, LOGGER as LOGGER, SHELLY_GAS_MODELS as SHELLY_GAS_MODELS
|
|
1
|
+
from .const import CONF_SLEEP_PERIOD as CONF_SLEEP_PERIOD, DOMAIN as DOMAIN, LOGGER as LOGGER, MODEL_FRANKEVER_WATER_VALVE as MODEL_FRANKEVER_WATER_VALVE, ROLE_GENERIC as ROLE_GENERIC, SHELLY_GAS_MODELS as SHELLY_GAS_MODELS
|
|
2
2
|
from .coordinator import ShellyBlockCoordinator as ShellyBlockCoordinator, ShellyConfigEntry as ShellyConfigEntry, ShellyRpcCoordinator as ShellyRpcCoordinator
|
|
3
|
-
from .entity import get_entity_block_device_info as get_entity_block_device_info, get_entity_rpc_device_info as get_entity_rpc_device_info
|
|
4
|
-
from .utils import async_remove_orphaned_entities as async_remove_orphaned_entities, format_ble_addr as format_ble_addr, get_blu_trv_device_info as get_blu_trv_device_info, get_device_entry_gen as get_device_entry_gen,
|
|
3
|
+
from .entity import RpcEntityDescription as RpcEntityDescription, ShellyRpcAttributeEntity as ShellyRpcAttributeEntity, ShellySleepingRpcAttributeEntity as ShellySleepingRpcAttributeEntity, async_setup_entry_rpc as async_setup_entry_rpc, get_entity_block_device_info as get_entity_block_device_info, get_entity_rpc_device_info as get_entity_rpc_device_info, rpc_call as rpc_call
|
|
4
|
+
from .utils import async_remove_orphaned_entities as async_remove_orphaned_entities, format_ble_addr as format_ble_addr, get_blu_trv_device_info as get_blu_trv_device_info, get_device_entry_gen as get_device_entry_gen, get_rpc_key_ids as get_rpc_key_ids, get_rpc_key_instances as get_rpc_key_instances, get_rpc_role_by_key as get_rpc_role_by_key, get_virtual_component_ids as get_virtual_component_ids
|
|
5
5
|
from _typeshed import Incomplete
|
|
6
6
|
from collections.abc import Callable as Callable
|
|
7
7
|
from dataclasses import dataclass
|
|
@@ -21,9 +21,10 @@ class ShellyButtonDescription[_ShellyCoordinatorT: ShellyBlockCoordinator | Shel
|
|
|
21
21
|
press_action: str
|
|
22
22
|
supported: Callable[[_ShellyCoordinatorT], bool] = ...
|
|
23
23
|
|
|
24
|
+
@dataclass(frozen=True, kw_only=True)
|
|
25
|
+
class RpcButtonDescription(RpcEntityDescription, ButtonEntityDescription): ...
|
|
26
|
+
|
|
24
27
|
BUTTONS: Final[list[ShellyButtonDescription[Any]]]
|
|
25
|
-
BLU_TRV_BUTTONS: Final[list[ShellyButtonDescription]]
|
|
26
|
-
VIRTUAL_BUTTONS: Final[list[ShellyButtonDescription]]
|
|
27
28
|
|
|
28
29
|
@callback
|
|
29
30
|
def async_migrate_unique_ids(coordinator: ShellyRpcCoordinator | ShellyBlockCoordinator, entity_entry: er.RegistryEntry) -> dict[str, Any] | None: ...
|
|
@@ -42,17 +43,26 @@ class ShellyButton(ShellyBaseButton):
|
|
|
42
43
|
def __init__(self, coordinator: ShellyRpcCoordinator | ShellyBlockCoordinator, description: ShellyButtonDescription[ShellyRpcCoordinator | ShellyBlockCoordinator]) -> None: ...
|
|
43
44
|
async def _press_method(self) -> None: ...
|
|
44
45
|
|
|
45
|
-
class ShellyBluTrvButton(
|
|
46
|
+
class ShellyBluTrvButton(ShellyRpcAttributeEntity, ButtonEntity):
|
|
47
|
+
entity_description: RpcButtonDescription
|
|
48
|
+
_id: int
|
|
46
49
|
_attr_unique_id: Incomplete
|
|
47
50
|
_attr_device_info: Incomplete
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
async def
|
|
51
|
+
def __init__(self, coordinator: ShellyRpcCoordinator, key: str, attribute: str, description: RpcEntityDescription) -> None: ...
|
|
52
|
+
@rpc_call
|
|
53
|
+
async def async_press(self) -> None: ...
|
|
51
54
|
|
|
52
|
-
class
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
55
|
+
class RpcVirtualButton(ShellyRpcAttributeEntity, ButtonEntity):
|
|
56
|
+
entity_description: RpcButtonDescription
|
|
57
|
+
_id: int
|
|
58
|
+
@rpc_call
|
|
59
|
+
async def async_press(self) -> None: ...
|
|
60
|
+
|
|
61
|
+
class RpcSleepingSmokeMuteButton(ShellySleepingRpcAttributeEntity, ButtonEntity):
|
|
62
|
+
entity_description: RpcButtonDescription
|
|
63
|
+
@rpc_call
|
|
64
|
+
async def async_press(self) -> None: ...
|
|
65
|
+
@property
|
|
66
|
+
def available(self) -> bool: ...
|
|
67
|
+
|
|
68
|
+
RPC_BUTTONS: Incomplete
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
from .const import BLU_TRV_TEMPERATURE_SETTINGS as BLU_TRV_TEMPERATURE_SETTINGS, DOMAIN as DOMAIN, LOGGER as LOGGER, NOT_CALIBRATED_ISSUE_ID as NOT_CALIBRATED_ISSUE_ID, RPC_THERMOSTAT_SETTINGS as RPC_THERMOSTAT_SETTINGS, SHTRV_01_TEMPERATURE_SETTINGS as SHTRV_01_TEMPERATURE_SETTINGS
|
|
1
|
+
from .const import BLU_TRV_TEMPERATURE_SETTINGS as BLU_TRV_TEMPERATURE_SETTINGS, DOMAIN as DOMAIN, LOGGER as LOGGER, MODEL_LINKEDGO_ST1820_THERMOSTAT as MODEL_LINKEDGO_ST1820_THERMOSTAT, MODEL_LINKEDGO_ST802_THERMOSTAT as MODEL_LINKEDGO_ST802_THERMOSTAT, NOT_CALIBRATED_ISSUE_ID as NOT_CALIBRATED_ISSUE_ID, RPC_THERMOSTAT_SETTINGS as RPC_THERMOSTAT_SETTINGS, SHTRV_01_TEMPERATURE_SETTINGS as SHTRV_01_TEMPERATURE_SETTINGS
|
|
2
2
|
from .coordinator import ShellyBlockCoordinator as ShellyBlockCoordinator, ShellyConfigEntry as ShellyConfigEntry, ShellyRpcCoordinator as ShellyRpcCoordinator
|
|
3
|
-
from .entity import ShellyRpcEntity as ShellyRpcEntity, get_entity_block_device_info as get_entity_block_device_info, rpc_call as rpc_call
|
|
4
|
-
from .utils import async_remove_shelly_entity as async_remove_shelly_entity, get_block_entity_name as get_block_entity_name, get_blu_trv_device_info as get_blu_trv_device_info, get_device_entry_gen as get_device_entry_gen, get_rpc_key_ids as get_rpc_key_ids, is_rpc_thermostat_internal_actuator as is_rpc_thermostat_internal_actuator
|
|
3
|
+
from .entity import RpcEntityDescription as RpcEntityDescription, ShellyRpcAttributeEntity as ShellyRpcAttributeEntity, ShellyRpcEntity as ShellyRpcEntity, async_setup_entry_rpc as async_setup_entry_rpc, get_entity_block_device_info as get_entity_block_device_info, rpc_call as rpc_call
|
|
4
|
+
from .utils import async_remove_shelly_entity as async_remove_shelly_entity, get_block_entity_name as get_block_entity_name, get_blu_trv_device_info as get_blu_trv_device_info, get_device_entry_gen as get_device_entry_gen, get_rpc_key_by_role as get_rpc_key_by_role, get_rpc_key_ids as get_rpc_key_ids, id_from_key as id_from_key, is_rpc_thermostat_internal_actuator as is_rpc_thermostat_internal_actuator
|
|
5
5
|
from _typeshed import Incomplete
|
|
6
6
|
from aioshelly.block_device import Block as Block
|
|
7
7
|
from collections.abc import Mapping
|
|
8
8
|
from dataclasses import dataclass
|
|
9
|
-
from homeassistant.components.climate import ClimateEntity as ClimateEntity, ClimateEntityFeature as ClimateEntityFeature, HVACAction as HVACAction, HVACMode as HVACMode, PRESET_NONE as PRESET_NONE
|
|
9
|
+
from homeassistant.components.climate import ClimateEntity as ClimateEntity, ClimateEntityDescription as ClimateEntityDescription, ClimateEntityFeature as ClimateEntityFeature, HVACAction as HVACAction, HVACMode as HVACMode, PRESET_NONE as PRESET_NONE
|
|
10
10
|
from homeassistant.const import ATTR_TEMPERATURE as ATTR_TEMPERATURE, UnitOfTemperature as UnitOfTemperature
|
|
11
11
|
from homeassistant.core import HomeAssistant as HomeAssistant, State as State, callback as callback
|
|
12
12
|
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
|
|
@@ -19,14 +19,68 @@ from homeassistant.util.unit_system import US_CUSTOMARY_SYSTEM as US_CUSTOMARY_S
|
|
|
19
19
|
from typing import Any
|
|
20
20
|
|
|
21
21
|
PARALLEL_UPDATES: int
|
|
22
|
+
THERMOSTAT_TO_HA_MODE: Incomplete
|
|
23
|
+
HA_TO_THERMOSTAT_MODE: Incomplete
|
|
24
|
+
PRESET_FROST_PROTECTION: str
|
|
25
|
+
|
|
26
|
+
@dataclass(kw_only=True, frozen=True)
|
|
27
|
+
class RpcClimateDescription(RpcEntityDescription, ClimateEntityDescription): ...
|
|
28
|
+
|
|
29
|
+
class RpcLinkedgoThermostatClimate(ShellyRpcAttributeEntity, ClimateEntity):
|
|
30
|
+
entity_description: RpcClimateDescription
|
|
31
|
+
_attr_temperature_unit: Incomplete
|
|
32
|
+
_attr_translation_key: str
|
|
33
|
+
_id: int
|
|
34
|
+
_attr_name: Incomplete
|
|
35
|
+
_attr_supported_features: Incomplete
|
|
36
|
+
_status: Incomplete
|
|
37
|
+
_attr_min_temp: Incomplete
|
|
38
|
+
_attr_max_temp: Incomplete
|
|
39
|
+
_attr_target_temperature_step: Incomplete
|
|
40
|
+
_current_humidity_key: Incomplete
|
|
41
|
+
_current_temperature_key: Incomplete
|
|
42
|
+
_thermostat_enable_key: Incomplete
|
|
43
|
+
_target_humidity_key: Incomplete
|
|
44
|
+
_attr_min_humidity: Incomplete
|
|
45
|
+
_attr_max_humidity: Incomplete
|
|
46
|
+
_anti_freeze_key: Incomplete
|
|
47
|
+
_attr_preset_modes: Incomplete
|
|
48
|
+
_fan_speed_key: Incomplete
|
|
49
|
+
_attr_fan_modes: Incomplete
|
|
50
|
+
_attr_hvac_modes: Incomplete
|
|
51
|
+
_working_mode_key: Incomplete
|
|
52
|
+
def __init__(self, coordinator: ShellyRpcCoordinator, key: str, attribute: str, description: RpcEntityDescription) -> None: ...
|
|
53
|
+
@property
|
|
54
|
+
def current_humidity(self) -> float | None: ...
|
|
55
|
+
@property
|
|
56
|
+
def target_humidity(self) -> float | None: ...
|
|
57
|
+
@property
|
|
58
|
+
def hvac_mode(self) -> HVACMode | None: ...
|
|
59
|
+
@property
|
|
60
|
+
def current_temperature(self) -> float | None: ...
|
|
61
|
+
@property
|
|
62
|
+
def target_temperature(self) -> float | None: ...
|
|
63
|
+
@property
|
|
64
|
+
def preset_mode(self) -> str | None: ...
|
|
65
|
+
@property
|
|
66
|
+
def fan_mode(self) -> str | None: ...
|
|
67
|
+
async def async_set_temperature(self, **kwargs: Any) -> None: ...
|
|
68
|
+
async def async_set_humidity(self, humidity: int) -> None: ...
|
|
69
|
+
async def async_set_fan_mode(self, fan_mode: str) -> None: ...
|
|
70
|
+
async def async_set_hvac_mode(self, hvac_mode: HVACMode) -> None: ...
|
|
71
|
+
async def async_set_preset_mode(self, preset_mode: str) -> None: ...
|
|
72
|
+
|
|
73
|
+
RPC_LINKEDGO_THERMOSTAT: dict[str, RpcClimateDescription]
|
|
22
74
|
|
|
23
75
|
async def async_setup_entry(hass: HomeAssistant, config_entry: ShellyConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
24
76
|
@callback
|
|
25
|
-
def
|
|
77
|
+
def _async_setup_block_entry(hass: HomeAssistant, config_entry: ShellyConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
78
|
+
@callback
|
|
79
|
+
def _async_setup_block_climate_entities(async_add_entities: AddConfigEntryEntitiesCallback, coordinator: ShellyBlockCoordinator) -> None: ...
|
|
26
80
|
@callback
|
|
27
|
-
def
|
|
81
|
+
def _async_restore_block_climate_entities(hass: HomeAssistant, config_entry: ShellyConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback, coordinator: ShellyBlockCoordinator) -> None: ...
|
|
28
82
|
@callback
|
|
29
|
-
def
|
|
83
|
+
def _async_setup_rpc_entry(hass: HomeAssistant, config_entry: ShellyConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
30
84
|
|
|
31
85
|
@dataclass
|
|
32
86
|
class ShellyClimateExtraStoredData(ExtraStoredData):
|
|
@@ -3,7 +3,7 @@ from enum import StrEnum
|
|
|
3
3
|
from homeassistant.components.number import NumberMode as NumberMode
|
|
4
4
|
from homeassistant.const import UnitOfVolumeFlowRate as UnitOfVolumeFlowRate
|
|
5
5
|
from logging import Logger
|
|
6
|
-
from typing import Final
|
|
6
|
+
from typing import Final, TypedDict
|
|
7
7
|
|
|
8
8
|
DOMAIN: Final[str]
|
|
9
9
|
LOGGER: Logger
|
|
@@ -63,14 +63,19 @@ class BLEScannerMode(StrEnum):
|
|
|
63
63
|
PASSIVE = 'passive'
|
|
64
64
|
|
|
65
65
|
BLE_SCANNER_MIN_FIRMWARE: str
|
|
66
|
-
WALL_DISPLAY_MIN_FIRMWARE: str
|
|
67
66
|
MAX_PUSH_UPDATE_FAILURES: int
|
|
68
67
|
PUSH_UPDATE_ISSUE_ID: str
|
|
69
68
|
NOT_CALIBRATED_ISSUE_ID: str
|
|
70
69
|
FIRMWARE_UNSUPPORTED_ISSUE_ID: str
|
|
71
70
|
BLE_SCANNER_FIRMWARE_UNSUPPORTED_ISSUE_ID: str
|
|
72
71
|
OUTBOUND_WEBSOCKET_INCORRECTLY_ENABLED_ISSUE_ID: str
|
|
73
|
-
|
|
72
|
+
DEPRECATED_FIRMWARE_ISSUE_ID: str
|
|
73
|
+
|
|
74
|
+
class DeprecatedFirmwareInfo(TypedDict):
|
|
75
|
+
min_firmware: str
|
|
76
|
+
ha_version: str
|
|
77
|
+
|
|
78
|
+
DEPRECATED_FIRMWARES: dict[str, DeprecatedFirmwareInfo]
|
|
74
79
|
GAS_VALVE_OPEN_STATES: Incomplete
|
|
75
80
|
OTA_BEGIN: str
|
|
76
81
|
OTA_ERROR: str
|
|
@@ -89,3 +94,10 @@ COMPONENT_ID_PATTERN: Incomplete
|
|
|
89
94
|
DEVICE_UNIT_MAP: Incomplete
|
|
90
95
|
MAX_SCRIPT_SIZE: int
|
|
91
96
|
All_LIGHT_TYPES: Incomplete
|
|
97
|
+
MODEL_NEO_WATER_VALVE: str
|
|
98
|
+
MODEL_FRANKEVER_WATER_VALVE: str
|
|
99
|
+
MODEL_LINKEDGO_ST802_THERMOSTAT: str
|
|
100
|
+
MODEL_LINKEDGO_ST1820_THERMOSTAT: str
|
|
101
|
+
MODEL_TOP_EV_CHARGER_EVE01: str
|
|
102
|
+
MODEL_FRANKEVER_IRRIGATION_CONTROLLER: str
|
|
103
|
+
ROLE_GENERIC: str
|
|
@@ -1,28 +1,39 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
from .const import RPC_COVER_UPDATE_TIME_SEC as RPC_COVER_UPDATE_TIME_SEC
|
|
3
3
|
from .coordinator import ShellyBlockCoordinator as ShellyBlockCoordinator, ShellyConfigEntry as ShellyConfigEntry, ShellyRpcCoordinator as ShellyRpcCoordinator
|
|
4
|
-
from .entity import
|
|
5
|
-
from .utils import get_device_entry_gen as get_device_entry_gen
|
|
4
|
+
from .entity import BlockEntityDescription as BlockEntityDescription, RpcEntityDescription as RpcEntityDescription, ShellyBlockAttributeEntity as ShellyBlockAttributeEntity, ShellyRpcAttributeEntity as ShellyRpcAttributeEntity, async_setup_entry_attribute_entities as async_setup_entry_attribute_entities, async_setup_entry_rpc as async_setup_entry_rpc, rpc_call as rpc_call
|
|
5
|
+
from .utils import get_device_entry_gen as get_device_entry_gen
|
|
6
6
|
from _typeshed import Incomplete
|
|
7
7
|
from aioshelly.block_device import Block as Block
|
|
8
|
-
from
|
|
8
|
+
from dataclasses import dataclass
|
|
9
|
+
from homeassistant.components.cover import ATTR_POSITION as ATTR_POSITION, ATTR_TILT_POSITION as ATTR_TILT_POSITION, CoverDeviceClass as CoverDeviceClass, CoverEntity as CoverEntity, CoverEntityDescription as CoverEntityDescription, CoverEntityFeature as CoverEntityFeature
|
|
9
10
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
|
10
11
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
11
12
|
from typing import Any
|
|
12
13
|
|
|
13
14
|
PARALLEL_UPDATES: int
|
|
14
15
|
|
|
16
|
+
@dataclass(frozen=True, kw_only=True)
|
|
17
|
+
class BlockCoverDescription(BlockEntityDescription, CoverEntityDescription): ...
|
|
18
|
+
@dataclass(frozen=True, kw_only=True)
|
|
19
|
+
class RpcCoverDescription(RpcEntityDescription, CoverEntityDescription): ...
|
|
20
|
+
|
|
21
|
+
BLOCK_COVERS: Incomplete
|
|
22
|
+
RPC_COVERS: Incomplete
|
|
23
|
+
|
|
15
24
|
async def async_setup_entry(hass: HomeAssistant, config_entry: ShellyConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
16
25
|
@callback
|
|
17
|
-
def
|
|
26
|
+
def _async_setup_block_entry(hass: HomeAssistant, config_entry: ShellyConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
18
27
|
@callback
|
|
19
|
-
def
|
|
28
|
+
def _async_setup_rpc_entry(hass: HomeAssistant, config_entry: ShellyConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
20
29
|
|
|
21
|
-
class BlockShellyCover(
|
|
30
|
+
class BlockShellyCover(ShellyBlockAttributeEntity, CoverEntity):
|
|
31
|
+
entity_description: BlockCoverDescription
|
|
22
32
|
_attr_device_class: Incomplete
|
|
23
33
|
_attr_supported_features: CoverEntityFeature
|
|
24
34
|
control_result: dict[str, Any] | None
|
|
25
|
-
|
|
35
|
+
_attr_unique_id: str
|
|
36
|
+
def __init__(self, coordinator: ShellyBlockCoordinator, block: Block, attribute: str, description: BlockCoverDescription) -> None: ...
|
|
26
37
|
@property
|
|
27
38
|
def is_closed(self) -> bool: ...
|
|
28
39
|
@property
|
|
@@ -38,12 +49,14 @@ class BlockShellyCover(ShellyBlockEntity, CoverEntity):
|
|
|
38
49
|
@callback
|
|
39
50
|
def _update_callback(self) -> None: ...
|
|
40
51
|
|
|
41
|
-
class RpcShellyCover(
|
|
52
|
+
class RpcShellyCover(ShellyRpcAttributeEntity, CoverEntity):
|
|
53
|
+
entity_description: RpcCoverDescription
|
|
42
54
|
_attr_device_class: Incomplete
|
|
43
55
|
_attr_supported_features: CoverEntityFeature
|
|
44
|
-
_id:
|
|
56
|
+
_id: int
|
|
57
|
+
_attr_unique_id: str
|
|
45
58
|
_update_task: asyncio.Task | None
|
|
46
|
-
def __init__(self, coordinator: ShellyRpcCoordinator,
|
|
59
|
+
def __init__(self, coordinator: ShellyRpcCoordinator, key: str, attribute: str, description: RpcCoverDescription) -> None: ...
|
|
47
60
|
@property
|
|
48
61
|
def is_closed(self) -> bool | None: ...
|
|
49
62
|
@property
|
|
@@ -57,11 +70,19 @@ class RpcShellyCover(ShellyRpcEntity, CoverEntity):
|
|
|
57
70
|
def launch_update_task(self) -> None: ...
|
|
58
71
|
async def update_position(self) -> None: ...
|
|
59
72
|
def _update_callback(self) -> None: ...
|
|
73
|
+
@rpc_call
|
|
60
74
|
async def async_close_cover(self, **kwargs: Any) -> None: ...
|
|
75
|
+
@rpc_call
|
|
61
76
|
async def async_open_cover(self, **kwargs: Any) -> None: ...
|
|
77
|
+
@rpc_call
|
|
62
78
|
async def async_set_cover_position(self, **kwargs: Any) -> None: ...
|
|
79
|
+
@rpc_call
|
|
63
80
|
async def async_stop_cover(self, **_kwargs: Any) -> None: ...
|
|
81
|
+
@rpc_call
|
|
64
82
|
async def async_open_cover_tilt(self, **kwargs: Any) -> None: ...
|
|
83
|
+
@rpc_call
|
|
65
84
|
async def async_close_cover_tilt(self, **kwargs: Any) -> None: ...
|
|
85
|
+
@rpc_call
|
|
66
86
|
async def async_set_cover_tilt_position(self, **kwargs: Any) -> None: ...
|
|
87
|
+
@rpc_call
|
|
67
88
|
async def async_stop_cover_tilt(self, **kwargs: Any) -> None: ...
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from .const import CONF_SLEEP_PERIOD as CONF_SLEEP_PERIOD, DOMAIN as DOMAIN, LOGGER as LOGGER
|
|
2
2
|
from .coordinator import ShellyBlockCoordinator as ShellyBlockCoordinator, ShellyConfigEntry as ShellyConfigEntry, ShellyRpcCoordinator as ShellyRpcCoordinator
|
|
3
|
-
from .utils import async_remove_shelly_entity as async_remove_shelly_entity, get_block_device_info as get_block_device_info, get_block_entity_name as get_block_entity_name, get_rpc_device_info as get_rpc_device_info, get_rpc_entity_name as get_rpc_entity_name, get_rpc_key_instances as get_rpc_key_instances
|
|
3
|
+
from .utils import async_remove_shelly_entity as async_remove_shelly_entity, get_block_device_info as get_block_device_info, get_block_entity_name as get_block_entity_name, get_rpc_device_info as get_rpc_device_info, get_rpc_entity_name as get_rpc_entity_name, get_rpc_key_instances as get_rpc_key_instances, get_rpc_role_by_key as get_rpc_role_by_key
|
|
4
4
|
from _typeshed import Incomplete
|
|
5
5
|
from aioshelly.block_device import Block as Block
|
|
6
6
|
from collections.abc import Awaitable, Callable as Callable, Coroutine, Mapping
|
|
@@ -37,20 +37,21 @@ class BlockEntityDescription(EntityDescription):
|
|
|
37
37
|
value: Callable[[Any], Any] = ...
|
|
38
38
|
available: Callable[[Block], bool] | None = ...
|
|
39
39
|
removal_condition: Callable[[dict, Block], bool] | None = ...
|
|
40
|
+
models: set[str] | None = ...
|
|
40
41
|
|
|
41
42
|
@dataclass(frozen=True, kw_only=True)
|
|
42
43
|
class RpcEntityDescription(EntityDescription):
|
|
43
44
|
name: str = ...
|
|
44
|
-
sub_key: str
|
|
45
|
+
sub_key: str | None = ...
|
|
45
46
|
value: Callable[[Any, Any], Any] | None = ...
|
|
46
47
|
available: Callable[[dict], bool] | None = ...
|
|
47
48
|
removal_condition: Callable[[dict, dict, str], bool] | None = ...
|
|
48
49
|
use_polling_coordinator: bool = ...
|
|
49
50
|
supported: Callable = ...
|
|
50
51
|
unit: Callable[[dict], str | None] | None = ...
|
|
51
|
-
options_fn: Callable[[dict], list[str]] | None = ...
|
|
52
52
|
entity_class: Callable | None = ...
|
|
53
53
|
role: str | None = ...
|
|
54
|
+
models: set[str] | None = ...
|
|
54
55
|
|
|
55
56
|
@dataclass(frozen=True)
|
|
56
57
|
class RestEntityDescription(EntityDescription):
|
|
@@ -86,7 +87,7 @@ class ShellyRpcEntity(CoordinatorEntity[ShellyRpcCoordinator]):
|
|
|
86
87
|
@callback
|
|
87
88
|
def _update_callback(self) -> None: ...
|
|
88
89
|
@rpc_call
|
|
89
|
-
async def call_rpc(self, method: str, params: Any
|
|
90
|
+
async def call_rpc(self, method: str, params: Any) -> Any: ...
|
|
90
91
|
|
|
91
92
|
class ShellyBlockAttributeEntity(ShellyBlockEntity, Entity):
|
|
92
93
|
entity_description: BlockEntityDescription
|
|
@@ -27,6 +27,10 @@ RPC_EVENT: Final[Incomplete]
|
|
|
27
27
|
SCRIPT_EVENT: Final[Incomplete]
|
|
28
28
|
|
|
29
29
|
async def async_setup_entry(hass: HomeAssistant, config_entry: ShellyConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
30
|
+
@callback
|
|
31
|
+
def _async_setup_block_entry(hass: HomeAssistant, config_entry: ShellyConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
32
|
+
@callback
|
|
33
|
+
def _async_setup_rpc_entry(hass: HomeAssistant, config_entry: ShellyConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
30
34
|
|
|
31
35
|
class ShellyBlockEvent(ShellyBlockEntity, EventEntity):
|
|
32
36
|
entity_description: ShellyBlockEventDescription
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from .const import BLOCK_MAX_TRANSITION_TIME_MS as BLOCK_MAX_TRANSITION_TIME_MS, DUAL_MODE_LIGHT_MODELS as DUAL_MODE_LIGHT_MODELS, KELVIN_MAX_VALUE as KELVIN_MAX_VALUE, KELVIN_MIN_VALUE_COLOR as KELVIN_MIN_VALUE_COLOR, KELVIN_MIN_VALUE_WHITE as KELVIN_MIN_VALUE_WHITE, LOGGER as LOGGER, MODELS_SUPPORTING_LIGHT_TRANSITION as MODELS_SUPPORTING_LIGHT_TRANSITION, RGBW_MODELS as RGBW_MODELS, RPC_MIN_TRANSITION_TIME_SEC as RPC_MIN_TRANSITION_TIME_SEC, SHBLB_1_RGB_EFFECTS as SHBLB_1_RGB_EFFECTS, STANDARD_RGB_EFFECTS as STANDARD_RGB_EFFECTS
|
|
2
2
|
from .coordinator import ShellyBlockCoordinator as ShellyBlockCoordinator, ShellyConfigEntry as ShellyConfigEntry, ShellyRpcCoordinator as ShellyRpcCoordinator
|
|
3
|
-
from .entity import RpcEntityDescription as RpcEntityDescription,
|
|
4
|
-
from .utils import async_remove_orphaned_entities as async_remove_orphaned_entities,
|
|
3
|
+
from .entity import BlockEntityDescription as BlockEntityDescription, RpcEntityDescription as RpcEntityDescription, ShellyBlockAttributeEntity as ShellyBlockAttributeEntity, ShellyRpcAttributeEntity as ShellyRpcAttributeEntity, async_setup_entry_attribute_entities as async_setup_entry_attribute_entities, async_setup_entry_rpc as async_setup_entry_rpc
|
|
4
|
+
from .utils import async_remove_orphaned_entities as async_remove_orphaned_entities, brightness_to_percentage as brightness_to_percentage, get_device_entry_gen as get_device_entry_gen, is_block_channel_type_light as is_block_channel_type_light, is_rpc_channel_type_light as is_rpc_channel_type_light, percentage_to_brightness as percentage_to_brightness
|
|
5
5
|
from _typeshed import Incomplete
|
|
6
6
|
from aioshelly.block_device import Block as Block
|
|
7
7
|
from dataclasses import dataclass
|
|
@@ -12,16 +12,23 @@ from typing import Any, Final
|
|
|
12
12
|
|
|
13
13
|
PARALLEL_UPDATES: int
|
|
14
14
|
|
|
15
|
+
@dataclass(frozen=True, kw_only=True)
|
|
16
|
+
class BlockLightDescription(BlockEntityDescription, LightEntityDescription): ...
|
|
17
|
+
|
|
18
|
+
BLOCK_LIGHTS: Incomplete
|
|
19
|
+
|
|
15
20
|
async def async_setup_entry(hass: HomeAssistant, config_entry: ShellyConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
16
21
|
@callback
|
|
17
|
-
def
|
|
22
|
+
def _async_setup_block_entry(hass: HomeAssistant, config_entry: ShellyConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
18
23
|
|
|
19
|
-
class BlockShellyLight(
|
|
24
|
+
class BlockShellyLight(ShellyBlockAttributeEntity, LightEntity):
|
|
25
|
+
entity_description: BlockLightDescription
|
|
20
26
|
_attr_supported_color_modes: set[str]
|
|
21
27
|
control_result: dict[str, Any] | None
|
|
28
|
+
_attr_unique_id: str
|
|
22
29
|
_attr_min_color_temp_kelvin: Incomplete
|
|
23
30
|
_attr_max_color_temp_kelvin: Incomplete
|
|
24
|
-
def __init__(self, coordinator: ShellyBlockCoordinator, block: Block) -> None: ...
|
|
31
|
+
def __init__(self, coordinator: ShellyBlockCoordinator, block: Block, attribute: str, description: BlockLightDescription) -> None: ...
|
|
25
32
|
@property
|
|
26
33
|
def is_on(self) -> bool: ...
|
|
27
34
|
@property
|
|
@@ -61,6 +68,8 @@ class RpcShellyLightBase(ShellyRpcAttributeEntity, LightEntity):
|
|
|
61
68
|
def rgb_color(self) -> tuple[int, int, int]: ...
|
|
62
69
|
@property
|
|
63
70
|
def rgbw_color(self) -> tuple[int, int, int, int]: ...
|
|
71
|
+
@property
|
|
72
|
+
def color_temp_kelvin(self) -> int: ...
|
|
64
73
|
async def async_turn_on(self, **kwargs: Any) -> None: ...
|
|
65
74
|
async def async_turn_off(self, **kwargs: Any) -> None: ...
|
|
66
75
|
|
|
@@ -83,8 +92,15 @@ class RpcShellyCctLight(RpcShellyLightBase):
|
|
|
83
92
|
_attr_min_color_temp_kelvin: Incomplete
|
|
84
93
|
_attr_max_color_temp_kelvin: Incomplete
|
|
85
94
|
def __init__(self, coordinator: ShellyRpcCoordinator, key: str, attribute: str, description: RpcEntityDescription) -> None: ...
|
|
95
|
+
|
|
96
|
+
class RpcShellyRgbCctLight(RpcShellyLightBase):
|
|
97
|
+
_component: str
|
|
98
|
+
_attr_supported_color_modes: Incomplete
|
|
99
|
+
_attr_supported_features: Incomplete
|
|
100
|
+
_attr_min_color_temp_kelvin = KELVIN_MIN_VALUE_WHITE
|
|
101
|
+
_attr_max_color_temp_kelvin = KELVIN_MAX_VALUE
|
|
86
102
|
@property
|
|
87
|
-
def
|
|
103
|
+
def color_mode(self) -> ColorMode: ...
|
|
88
104
|
|
|
89
105
|
class RpcShellyRgbLight(RpcShellyLightBase):
|
|
90
106
|
_component: str
|
|
@@ -101,4 +117,4 @@ class RpcShellyRgbwLight(RpcShellyLightBase):
|
|
|
101
117
|
LIGHTS: Final[Incomplete]
|
|
102
118
|
|
|
103
119
|
@callback
|
|
104
|
-
def
|
|
120
|
+
def _async_setup_rpc_entry(hass: HomeAssistant, config_entry: ShellyConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from .const import CONF_SLEEP_PERIOD as CONF_SLEEP_PERIOD, DOMAIN as DOMAIN, LOGGER as LOGGER, VIRTUAL_NUMBER_MODE_MAP as VIRTUAL_NUMBER_MODE_MAP
|
|
1
|
+
from .const import CONF_SLEEP_PERIOD as CONF_SLEEP_PERIOD, DOMAIN as DOMAIN, LOGGER as LOGGER, MODEL_FRANKEVER_WATER_VALVE as MODEL_FRANKEVER_WATER_VALVE, MODEL_LINKEDGO_ST1820_THERMOSTAT as MODEL_LINKEDGO_ST1820_THERMOSTAT, MODEL_LINKEDGO_ST802_THERMOSTAT as MODEL_LINKEDGO_ST802_THERMOSTAT, MODEL_TOP_EV_CHARGER_EVE01 as MODEL_TOP_EV_CHARGER_EVE01, ROLE_GENERIC as ROLE_GENERIC, VIRTUAL_NUMBER_MODE_MAP as VIRTUAL_NUMBER_MODE_MAP
|
|
2
2
|
from .coordinator import ShellyBlockCoordinator as ShellyBlockCoordinator, ShellyConfigEntry as ShellyConfigEntry, ShellyRpcCoordinator as ShellyRpcCoordinator
|
|
3
3
|
from .entity import BlockEntityDescription as BlockEntityDescription, RpcEntityDescription as RpcEntityDescription, ShellyRpcAttributeEntity as ShellyRpcAttributeEntity, ShellySleepingBlockAttributeEntity as ShellySleepingBlockAttributeEntity, async_setup_entry_attribute_entities as async_setup_entry_attribute_entities, async_setup_entry_rpc as async_setup_entry_rpc, rpc_call as rpc_call
|
|
4
4
|
from .utils import async_remove_orphaned_entities as async_remove_orphaned_entities, get_blu_trv_device_info as get_blu_trv_device_info, get_device_entry_gen as get_device_entry_gen, get_virtual_component_ids as get_virtual_component_ids, get_virtual_component_unit as get_virtual_component_unit, is_view_for_platform as is_view_for_platform
|
|
@@ -8,7 +8,7 @@ from collections.abc import Callable as Callable
|
|
|
8
8
|
from dataclasses import dataclass
|
|
9
9
|
from homeassistant.components.number import NumberEntity as NumberEntity, NumberEntityDescription as NumberEntityDescription, NumberExtraStoredData as NumberExtraStoredData, NumberMode as NumberMode, RestoreNumber as RestoreNumber
|
|
10
10
|
from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfTemperature as UnitOfTemperature
|
|
11
|
-
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
11
|
+
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
|
12
12
|
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
|
|
13
13
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
14
14
|
from homeassistant.helpers.entity_registry import RegistryEntry as RegistryEntry
|
|
@@ -27,6 +27,7 @@ class RpcNumberDescription(RpcEntityDescription, NumberEntityDescription):
|
|
|
27
27
|
min_fn: Callable[[dict], float] | None = ...
|
|
28
28
|
step_fn: Callable[[dict], float] | None = ...
|
|
29
29
|
mode_fn: Callable[[dict], NumberMode] | None = ...
|
|
30
|
+
slot: str | None = ...
|
|
30
31
|
method: str
|
|
31
32
|
|
|
32
33
|
class RpcNumber(ShellyRpcAttributeEntity, NumberEntity):
|
|
@@ -43,6 +44,10 @@ class RpcNumber(ShellyRpcAttributeEntity, NumberEntity):
|
|
|
43
44
|
@rpc_call
|
|
44
45
|
async def async_set_native_value(self, value: float) -> None: ...
|
|
45
46
|
|
|
47
|
+
class RpcCuryIntensityNumber(RpcNumber):
|
|
48
|
+
@rpc_call
|
|
49
|
+
async def async_set_native_value(self, value: float) -> None: ...
|
|
50
|
+
|
|
46
51
|
class RpcBluTrvNumber(RpcNumber):
|
|
47
52
|
_attr_device_info: Incomplete
|
|
48
53
|
def __init__(self, coordinator: ShellyRpcCoordinator, key: str, attribute: str, description: RpcNumberDescription) -> None: ...
|
|
@@ -57,6 +62,10 @@ NUMBERS: dict[tuple[str, str], BlockNumberDescription]
|
|
|
57
62
|
RPC_NUMBERS: Final[Incomplete]
|
|
58
63
|
|
|
59
64
|
async def async_setup_entry(hass: HomeAssistant, config_entry: ShellyConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
65
|
+
@callback
|
|
66
|
+
def _async_setup_block_entry(hass: HomeAssistant, config_entry: ShellyConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
67
|
+
@callback
|
|
68
|
+
def _async_setup_rpc_entry(hass: HomeAssistant, config_entry: ShellyConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
60
69
|
|
|
61
70
|
class BlockSleepingNumber(ShellySleepingBlockAttributeEntity, RestoreNumber):
|
|
62
71
|
entity_description: BlockNumberDescription
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from .const import BLEScannerMode as BLEScannerMode, BLE_SCANNER_FIRMWARE_UNSUPPORTED_ISSUE_ID as BLE_SCANNER_FIRMWARE_UNSUPPORTED_ISSUE_ID, BLE_SCANNER_MIN_FIRMWARE as BLE_SCANNER_MIN_FIRMWARE, CONF_BLE_SCANNER_MODE as CONF_BLE_SCANNER_MODE,
|
|
1
|
+
from .const import BLEScannerMode as BLEScannerMode, BLE_SCANNER_FIRMWARE_UNSUPPORTED_ISSUE_ID as BLE_SCANNER_FIRMWARE_UNSUPPORTED_ISSUE_ID, BLE_SCANNER_MIN_FIRMWARE as BLE_SCANNER_MIN_FIRMWARE, CONF_BLE_SCANNER_MODE as CONF_BLE_SCANNER_MODE, DEPRECATED_FIRMWARES as DEPRECATED_FIRMWARES, DEPRECATED_FIRMWARE_ISSUE_ID as DEPRECATED_FIRMWARE_ISSUE_ID, DOMAIN as DOMAIN, OUTBOUND_WEBSOCKET_INCORRECTLY_ENABLED_ISSUE_ID as OUTBOUND_WEBSOCKET_INCORRECTLY_ENABLED_ISSUE_ID
|
|
2
2
|
from .coordinator import ShellyConfigEntry as ShellyConfigEntry
|
|
3
3
|
from .utils import get_rpc_ws_url as get_rpc_ws_url
|
|
4
4
|
from _typeshed import Incomplete
|
|
@@ -10,7 +10,7 @@ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callb
|
|
|
10
10
|
@callback
|
|
11
11
|
def async_manage_ble_scanner_firmware_unsupported_issue(hass: HomeAssistant, entry: ShellyConfigEntry) -> None: ...
|
|
12
12
|
@callback
|
|
13
|
-
def
|
|
13
|
+
def async_manage_deprecated_firmware_issue(hass: HomeAssistant, entry: ShellyConfigEntry) -> None: ...
|
|
14
14
|
@callback
|
|
15
15
|
def async_manage_outbound_websocket_incorrectly_enabled_issue(hass: HomeAssistant, entry: ShellyConfigEntry) -> None: ...
|
|
16
16
|
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
from .const import ROLE_GENERIC as ROLE_GENERIC
|
|
1
2
|
from .coordinator import ShellyConfigEntry as ShellyConfigEntry, ShellyRpcCoordinator as ShellyRpcCoordinator
|
|
2
3
|
from .entity import RpcEntityDescription as RpcEntityDescription, ShellyRpcAttributeEntity as ShellyRpcAttributeEntity, async_setup_entry_rpc as async_setup_entry_rpc, rpc_call as rpc_call
|
|
3
4
|
from .utils import async_remove_orphaned_entities as async_remove_orphaned_entities, get_device_entry_gen as get_device_entry_gen, get_virtual_component_ids as get_virtual_component_ids, is_view_for_platform as is_view_for_platform
|
|
4
5
|
from _typeshed import Incomplete
|
|
5
6
|
from dataclasses import dataclass
|
|
6
7
|
from homeassistant.components.select import SelectEntity as SelectEntity, SelectEntityDescription as SelectEntityDescription
|
|
7
|
-
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
8
|
+
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
|
8
9
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
9
10
|
from typing import Final
|
|
10
11
|
|
|
@@ -16,6 +17,8 @@ class RpcSelectDescription(RpcEntityDescription, SelectEntityDescription): ...
|
|
|
16
17
|
RPC_SELECT_ENTITIES: Final[Incomplete]
|
|
17
18
|
|
|
18
19
|
async def async_setup_entry(hass: HomeAssistant, config_entry: ShellyConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
20
|
+
@callback
|
|
21
|
+
def _async_setup_rpc_entry(hass: HomeAssistant, config_entry: ShellyConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
19
22
|
|
|
20
23
|
class RpcSelect(ShellyRpcAttributeEntity, SelectEntity):
|
|
21
24
|
entity_description: RpcSelectDescription
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from .const import CONF_SLEEP_PERIOD as CONF_SLEEP_PERIOD,
|
|
1
|
+
from .const import CONF_SLEEP_PERIOD as CONF_SLEEP_PERIOD, ROLE_GENERIC as ROLE_GENERIC
|
|
2
2
|
from .coordinator import ShellyBlockCoordinator as ShellyBlockCoordinator, ShellyConfigEntry as ShellyConfigEntry, ShellyRpcCoordinator as ShellyRpcCoordinator
|
|
3
3
|
from .entity import BlockEntityDescription as BlockEntityDescription, RestEntityDescription as RestEntityDescription, RpcEntityDescription as RpcEntityDescription, ShellyBlockAttributeEntity as ShellyBlockAttributeEntity, ShellyRestAttributeEntity as ShellyRestAttributeEntity, ShellyRpcAttributeEntity as ShellyRpcAttributeEntity, ShellySleepingBlockAttributeEntity as ShellySleepingBlockAttributeEntity, ShellySleepingRpcAttributeEntity as ShellySleepingRpcAttributeEntity, async_setup_entry_attribute_entities as async_setup_entry_attribute_entities, async_setup_entry_rest as async_setup_entry_rest, async_setup_entry_rpc as async_setup_entry_rpc, get_entity_rpc_device_info as get_entity_rpc_device_info
|
|
4
4
|
from .utils import async_remove_orphaned_entities as async_remove_orphaned_entities, get_blu_trv_device_info as get_blu_trv_device_info, get_device_entry_gen as get_device_entry_gen, get_device_uptime as get_device_uptime, get_shelly_air_lamp_life as get_shelly_air_lamp_life, get_virtual_component_unit as get_virtual_component_unit, is_rpc_wifi_stations_disabled as is_rpc_wifi_stations_disabled, is_view_for_platform as is_view_for_platform
|
|
@@ -6,13 +6,12 @@ from _typeshed import Incomplete
|
|
|
6
6
|
from aioshelly.block_device import Block as Block
|
|
7
7
|
from dataclasses import dataclass
|
|
8
8
|
from homeassistant.components.sensor import RestoreSensor as RestoreSensor, SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorExtraStoredData as SensorExtraStoredData, SensorStateClass as SensorStateClass
|
|
9
|
-
from homeassistant.const import CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, DEGREE as DEGREE, EntityCategory as EntityCategory, LIGHT_LUX as LIGHT_LUX, PERCENTAGE as PERCENTAGE, SIGNAL_STRENGTH_DECIBELS_MILLIWATT as SIGNAL_STRENGTH_DECIBELS_MILLIWATT, UnitOfApparentPower as UnitOfApparentPower, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfFrequency as UnitOfFrequency, UnitOfPower as UnitOfPower, UnitOfPressure as UnitOfPressure, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime, UnitOfVolume as UnitOfVolume, UnitOfVolumeFlowRate as UnitOfVolumeFlowRate
|
|
9
|
+
from homeassistant.const import CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, DEGREE as DEGREE, EntityCategory as EntityCategory, LIGHT_LUX as LIGHT_LUX, PERCENTAGE as PERCENTAGE, SIGNAL_STRENGTH_DECIBELS_MILLIWATT as SIGNAL_STRENGTH_DECIBELS_MILLIWATT, UnitOfApparentPower as UnitOfApparentPower, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfFrequency as UnitOfFrequency, UnitOfPower as UnitOfPower, UnitOfPrecipitationDepth as UnitOfPrecipitationDepth, UnitOfPressure as UnitOfPressure, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime, UnitOfVolume as UnitOfVolume, UnitOfVolumeFlowRate as UnitOfVolumeFlowRate
|
|
10
10
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
|
11
|
-
from homeassistant.helpers import entity_registry as er
|
|
12
11
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
13
12
|
from homeassistant.helpers.entity_registry import RegistryEntry as RegistryEntry
|
|
14
13
|
from homeassistant.helpers.typing import StateType as StateType
|
|
15
|
-
from typing import
|
|
14
|
+
from typing import Final
|
|
16
15
|
|
|
17
16
|
PARALLEL_UPDATES: int
|
|
18
17
|
|
|
@@ -33,7 +32,7 @@ class RpcSensor(ShellyRpcAttributeEntity, SensorEntity):
|
|
|
33
32
|
@property
|
|
34
33
|
def native_value(self) -> StateType: ...
|
|
35
34
|
|
|
36
|
-
class
|
|
35
|
+
class RpcEnergyConsumedSensor(RpcSensor):
|
|
37
36
|
@property
|
|
38
37
|
def native_value(self) -> StateType: ...
|
|
39
38
|
|
|
@@ -54,9 +53,11 @@ SENSORS: dict[tuple[str, str], BlockSensorDescription]
|
|
|
54
53
|
REST_SENSORS: Final[Incomplete]
|
|
55
54
|
RPC_SENSORS: Final[Incomplete]
|
|
56
55
|
|
|
57
|
-
@callback
|
|
58
|
-
def async_migrate_unique_ids(coordinator: ShellyRpcCoordinator, entity_entry: er.RegistryEntry) -> dict[str, Any] | None: ...
|
|
59
56
|
async def async_setup_entry(hass: HomeAssistant, config_entry: ShellyConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
57
|
+
@callback
|
|
58
|
+
def _async_setup_block_entry(hass: HomeAssistant, config_entry: ShellyConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
59
|
+
@callback
|
|
60
|
+
def _async_setup_rpc_entry(hass: HomeAssistant, config_entry: ShellyConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
60
61
|
|
|
61
62
|
class BlockSensor(ShellyBlockAttributeEntity, SensorEntity):
|
|
62
63
|
entity_description: BlockSensorDescription
|