homeassistant-stubs 2025.10.4__py3-none-any.whl → 2025.11.0b1__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 +2 -0
- homeassistant-stubs/components/airly/config_flow.pyi +3 -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/libre_hardware_monitor/__init__.pyi +3 -0
- homeassistant-stubs/components/libre_hardware_monitor/sensor.pyi +5 -9
- 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/miele/sensor.pyi +7 -8
- 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/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.4.dist-info → homeassistant_stubs-2025.11.0b1.dist-info}/METADATA +2 -2
- {homeassistant_stubs-2025.10.4.dist-info → homeassistant_stubs-2025.11.0b1.dist-info}/RECORD +434 -398
- 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.4.dist-info → homeassistant_stubs-2025.11.0b1.dist-info}/WHEEL +0 -0
- {homeassistant_stubs-2025.10.4.dist-info → homeassistant_stubs-2025.11.0b1.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
from .coordinator import LondonTubeCoordinator as LondonTubeCoordinator, LondonUndergroundConfigEntry as LondonUndergroundConfigEntry, TubeData as TubeData
|
|
2
|
+
from homeassistant.const import Platform as Platform
|
|
3
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
4
|
+
from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
|
|
5
|
+
|
|
6
|
+
PLATFORMS: list[Platform]
|
|
7
|
+
|
|
8
|
+
async def async_setup_entry(hass: HomeAssistant, entry: LondonUndergroundConfigEntry) -> bool: ...
|
|
9
|
+
async def async_unload_entry(hass: HomeAssistant, entry: LondonUndergroundConfigEntry) -> bool: ...
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
from .const import CONF_LINE as CONF_LINE, DEFAULT_LINES as DEFAULT_LINES, DOMAIN as DOMAIN, TUBE_LINES as TUBE_LINES
|
|
2
|
+
from _typeshed import Incomplete
|
|
3
|
+
from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlowWithReload as OptionsFlowWithReload
|
|
4
|
+
from homeassistant.core import callback as callback
|
|
5
|
+
from homeassistant.helpers import selector as selector
|
|
6
|
+
from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
|
|
7
|
+
from homeassistant.helpers.typing import ConfigType as ConfigType
|
|
8
|
+
from typing import Any
|
|
9
|
+
|
|
10
|
+
_LOGGER: Incomplete
|
|
11
|
+
|
|
12
|
+
class LondonUndergroundConfigFlow(ConfigFlow, domain=DOMAIN):
|
|
13
|
+
VERSION: int
|
|
14
|
+
MINOR_VERSION: int
|
|
15
|
+
@staticmethod
|
|
16
|
+
@callback
|
|
17
|
+
def async_get_options_flow(_: ConfigEntry) -> LondonUndergroundOptionsFlow: ...
|
|
18
|
+
async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
|
19
|
+
async def async_step_import(self, import_data: ConfigType) -> ConfigFlowResult: ...
|
|
20
|
+
|
|
21
|
+
class LondonUndergroundOptionsFlow(OptionsFlowWithReload):
|
|
22
|
+
async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
from .const import DOMAIN as DOMAIN, SCAN_INTERVAL as SCAN_INTERVAL
|
|
2
2
|
from _typeshed import Incomplete
|
|
3
|
+
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
3
4
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
4
5
|
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator
|
|
5
6
|
from london_tube_status import TubeData as TubeData
|
|
6
7
|
|
|
7
8
|
_LOGGER: Incomplete
|
|
9
|
+
type LondonUndergroundConfigEntry = ConfigEntry[LondonTubeCoordinator]
|
|
8
10
|
|
|
9
11
|
class LondonTubeCoordinator(DataUpdateCoordinator[dict[str, dict[str, str]]]):
|
|
10
12
|
_data: Incomplete
|
|
11
|
-
def __init__(self, hass: HomeAssistant, data: TubeData) -> None: ...
|
|
13
|
+
def __init__(self, hass: HomeAssistant, data: TubeData, config_entry: LondonUndergroundConfigEntry) -> None: ...
|
|
12
14
|
async def _async_update_data(self) -> dict[str, dict[str, str]]: ...
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
from .const import CONF_LINE as CONF_LINE, TUBE_LINES as TUBE_LINES
|
|
2
|
-
from .coordinator import LondonTubeCoordinator as LondonTubeCoordinator
|
|
1
|
+
from .const import CONF_LINE as CONF_LINE, DOMAIN as DOMAIN, TUBE_LINES as TUBE_LINES
|
|
2
|
+
from .coordinator import LondonTubeCoordinator as LondonTubeCoordinator, LondonUndergroundConfigEntry as LondonUndergroundConfigEntry
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
4
|
from homeassistant.components.sensor import SensorEntity as SensorEntity
|
|
5
|
+
from homeassistant.config_entries import SOURCE_IMPORT as SOURCE_IMPORT
|
|
5
6
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
6
|
-
from homeassistant.
|
|
7
|
-
from homeassistant.helpers.
|
|
8
|
-
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
|
7
|
+
from homeassistant.data_entry_flow import FlowResultType as FlowResultType
|
|
8
|
+
from homeassistant.helpers.device_registry import DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
|
|
9
|
+
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback, AddEntitiesCallback as AddEntitiesCallback
|
|
9
10
|
from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
|
|
10
11
|
from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
|
|
11
12
|
from typing import Any
|
|
@@ -14,11 +15,15 @@ _LOGGER: Incomplete
|
|
|
14
15
|
PLATFORM_SCHEMA: Incomplete
|
|
15
16
|
|
|
16
17
|
async def async_setup_platform(hass: HomeAssistant, config: ConfigType, async_add_entities: AddEntitiesCallback, discovery_info: DiscoveryInfoType | None = None) -> None: ...
|
|
18
|
+
async def async_setup_entry(hass: HomeAssistant, entry: LondonUndergroundConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
17
19
|
|
|
18
20
|
class LondonTubeSensor(CoordinatorEntity[LondonTubeCoordinator], SensorEntity):
|
|
19
21
|
_attr_attribution: str
|
|
20
22
|
_attr_icon: str
|
|
23
|
+
_attr_has_entity_name: bool
|
|
21
24
|
_name: Incomplete
|
|
25
|
+
_attr_unique_id: Incomplete
|
|
26
|
+
_attr_device_info: Incomplete
|
|
22
27
|
def __init__(self, coordinator: LondonTubeCoordinator, name: str) -> None: ...
|
|
23
28
|
@property
|
|
24
29
|
def name(self) -> str: ...
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from .const import DOMAIN as DOMAIN
|
|
2
|
+
from .coordinator import LunatoneConfigEntry as LunatoneConfigEntry, LunatoneData as LunatoneData, LunatoneDevicesDataUpdateCoordinator as LunatoneDevicesDataUpdateCoordinator, LunatoneInfoDataUpdateCoordinator as LunatoneInfoDataUpdateCoordinator
|
|
3
|
+
from homeassistant.const import CONF_URL as CONF_URL, Platform as Platform
|
|
4
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
5
|
+
from homeassistant.exceptions import ConfigEntryError as ConfigEntryError
|
|
6
|
+
from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
|
|
7
|
+
from typing import Final
|
|
8
|
+
|
|
9
|
+
PLATFORMS: Final[list[Platform]]
|
|
10
|
+
|
|
11
|
+
async def async_setup_entry(hass: HomeAssistant, entry: LunatoneConfigEntry) -> bool: ...
|
|
12
|
+
async def async_unload_entry(hass: HomeAssistant, entry: LunatoneConfigEntry) -> bool: ...
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import voluptuous as vol
|
|
2
|
+
from .const import DOMAIN as DOMAIN
|
|
3
|
+
from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, SOURCE_RECONFIGURE as SOURCE_RECONFIGURE
|
|
4
|
+
from homeassistant.const import CONF_URL as CONF_URL
|
|
5
|
+
from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
|
|
6
|
+
from typing import Any, Final
|
|
7
|
+
|
|
8
|
+
DATA_SCHEMA: Final[vol.Schema]
|
|
9
|
+
|
|
10
|
+
def compose_title(name: str | None, serial_number: int) -> str: ...
|
|
11
|
+
|
|
12
|
+
class LunatoneConfigFlow(ConfigFlow, domain=DOMAIN):
|
|
13
|
+
VERSION: int
|
|
14
|
+
MINOR_VERSION: int
|
|
15
|
+
async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
|
16
|
+
async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
|
@@ -0,0 +1,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.core import HomeAssistant as HomeAssistant
|
|
6
|
+
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
|
|
7
|
+
from lunatone_rest_api_client import Device, Devices as Devices, Info as Info
|
|
8
|
+
from lunatone_rest_api_client.models import InfoData
|
|
9
|
+
|
|
10
|
+
_LOGGER: Incomplete
|
|
11
|
+
DEFAULT_DEVICES_SCAN_INTERVAL: Incomplete
|
|
12
|
+
|
|
13
|
+
@dataclass
|
|
14
|
+
class LunatoneData:
|
|
15
|
+
coordinator_info: LunatoneInfoDataUpdateCoordinator
|
|
16
|
+
coordinator_devices: LunatoneDevicesDataUpdateCoordinator
|
|
17
|
+
type LunatoneConfigEntry = ConfigEntry[LunatoneData]
|
|
18
|
+
|
|
19
|
+
class LunatoneInfoDataUpdateCoordinator(DataUpdateCoordinator[InfoData]):
|
|
20
|
+
config_entry: LunatoneConfigEntry
|
|
21
|
+
info_api: Incomplete
|
|
22
|
+
def __init__(self, hass: HomeAssistant, config_entry: LunatoneConfigEntry, info_api: Info) -> None: ...
|
|
23
|
+
async def _async_update_data(self) -> InfoData: ...
|
|
24
|
+
|
|
25
|
+
class LunatoneDevicesDataUpdateCoordinator(DataUpdateCoordinator[dict[int, Device]]):
|
|
26
|
+
config_entry: LunatoneConfigEntry
|
|
27
|
+
devices_api: Incomplete
|
|
28
|
+
def __init__(self, hass: HomeAssistant, config_entry: LunatoneConfigEntry, devices_api: Devices) -> None: ...
|
|
29
|
+
async def _async_update_data(self) -> dict[int, Device]: ...
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
from .const import DOMAIN as DOMAIN
|
|
2
|
+
from .coordinator import LunatoneConfigEntry as LunatoneConfigEntry, LunatoneDevicesDataUpdateCoordinator as LunatoneDevicesDataUpdateCoordinator
|
|
3
|
+
from _typeshed import Incomplete
|
|
4
|
+
from homeassistant.components.light import ATTR_BRIGHTNESS as ATTR_BRIGHTNESS, ColorMode as ColorMode, LightEntity as LightEntity, brightness_supported as brightness_supported
|
|
5
|
+
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
|
6
|
+
from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
|
|
7
|
+
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
8
|
+
from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
|
|
9
|
+
from homeassistant.util.color import brightness_to_value as brightness_to_value, value_to_brightness as value_to_brightness
|
|
10
|
+
from typing import Any
|
|
11
|
+
|
|
12
|
+
PARALLEL_UPDATES: int
|
|
13
|
+
STATUS_UPDATE_DELAY: float
|
|
14
|
+
|
|
15
|
+
async def async_setup_entry(hass: HomeAssistant, config_entry: LunatoneConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
16
|
+
|
|
17
|
+
class LunatoneLight(CoordinatorEntity[LunatoneDevicesDataUpdateCoordinator], LightEntity):
|
|
18
|
+
BRIGHTNESS_SCALE: Incomplete
|
|
19
|
+
_last_brightness: int
|
|
20
|
+
_attr_has_entity_name: bool
|
|
21
|
+
_attr_name: Incomplete
|
|
22
|
+
_attr_should_poll: bool
|
|
23
|
+
_device_id: Incomplete
|
|
24
|
+
_interface_serial_number: Incomplete
|
|
25
|
+
_device: Incomplete
|
|
26
|
+
_attr_unique_id: Incomplete
|
|
27
|
+
def __init__(self, coordinator: LunatoneDevicesDataUpdateCoordinator, device_id: int, interface_serial_number: int) -> None: ...
|
|
28
|
+
@property
|
|
29
|
+
def device_info(self) -> DeviceInfo: ...
|
|
30
|
+
@property
|
|
31
|
+
def available(self) -> bool: ...
|
|
32
|
+
@property
|
|
33
|
+
def is_on(self) -> bool: ...
|
|
34
|
+
@property
|
|
35
|
+
def brightness(self) -> int: ...
|
|
36
|
+
@property
|
|
37
|
+
def color_mode(self) -> ColorMode: ...
|
|
38
|
+
@property
|
|
39
|
+
def supported_color_modes(self) -> set[ColorMode]: ...
|
|
40
|
+
@callback
|
|
41
|
+
def _handle_coordinator_update(self) -> None: ...
|
|
42
|
+
async def async_turn_on(self, **kwargs: Any) -> None: ...
|
|
43
|
+
async def async_turn_off(self, **kwargs: Any) -> None: ...
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from .const import ATTR_FORMAT as ATTR_FORMAT, ATTR_IMAGES as ATTR_IMAGES, CONF_ROOMS_REGEX as CONF_ROOMS_REGEX, DOMAIN as DOMAIN, FORMAT_HTML as FORMAT_HTML
|
|
1
|
+
from .const import ATTR_FORMAT as ATTR_FORMAT, ATTR_IMAGES as ATTR_IMAGES, ATTR_MESSAGE_ID as ATTR_MESSAGE_ID, ATTR_REACTION as ATTR_REACTION, ATTR_ROOM as ATTR_ROOM, ATTR_THREAD_ID as ATTR_THREAD_ID, CONF_ROOMS_REGEX as CONF_ROOMS_REGEX, DOMAIN as DOMAIN, FORMAT_HTML as FORMAT_HTML
|
|
2
2
|
from .services import async_setup_services as async_setup_services
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
4
|
from collections.abc import Sequence
|
|
@@ -10,6 +10,7 @@ from homeassistant.helpers.json import save_json as save_json
|
|
|
10
10
|
from homeassistant.helpers.typing import ConfigType as ConfigType
|
|
11
11
|
from homeassistant.util.json import JsonObjectType as JsonObjectType, load_json_object as load_json_object
|
|
12
12
|
from nio import AsyncClient, Event, MatrixRoom as MatrixRoom
|
|
13
|
+
from nio.events.room_events import RoomMessageText
|
|
13
14
|
from nio.responses import Response as Response
|
|
14
15
|
from typing import Final, Required, TypedDict
|
|
15
16
|
|
|
@@ -20,11 +21,13 @@ CONF_ROOMS: Final[str]
|
|
|
20
21
|
CONF_COMMANDS: Final[str]
|
|
21
22
|
CONF_WORD: Final[str]
|
|
22
23
|
CONF_EXPRESSION: Final[str]
|
|
24
|
+
CONF_REACTION: Final[str]
|
|
23
25
|
CONF_USERNAME_REGEX: str
|
|
24
26
|
EVENT_MATRIX_COMMAND: str
|
|
25
27
|
DEFAULT_CONTENT_TYPE: str
|
|
26
28
|
WordCommand: Incomplete
|
|
27
29
|
ExpressionCommand: Incomplete
|
|
30
|
+
ReactionCommand: Incomplete
|
|
28
31
|
RoomAlias: Incomplete
|
|
29
32
|
RoomID: Incomplete
|
|
30
33
|
RoomAnyID = RoomID | RoomAlias
|
|
@@ -34,6 +37,7 @@ class ConfigCommand(TypedDict, total=False):
|
|
|
34
37
|
rooms: list[RoomID]
|
|
35
38
|
word: WordCommand
|
|
36
39
|
expression: ExpressionCommand
|
|
40
|
+
reaction: ReactionCommand
|
|
37
41
|
|
|
38
42
|
COMMAND_SCHEMA: Incomplete
|
|
39
43
|
CONFIG_SCHEMA: Incomplete
|
|
@@ -52,10 +56,12 @@ class MatrixBot:
|
|
|
52
56
|
_listening_rooms: dict[RoomAnyID, RoomID]
|
|
53
57
|
_word_commands: dict[RoomID, dict[WordCommand, ConfigCommand]]
|
|
54
58
|
_expression_commands: dict[RoomID, list[ConfigCommand]]
|
|
59
|
+
_reaction_commands: dict[RoomID, dict[ReactionCommand, ConfigCommand]]
|
|
55
60
|
_unparsed_commands: Incomplete
|
|
56
61
|
def __init__(self, hass: HomeAssistant, config_file: str, homeserver: str, verify_ssl: bool, username: str, password: str, listening_rooms: list[RoomAnyID], commands: list[ConfigCommand]) -> None: ...
|
|
57
62
|
def _load_commands(self, commands: list[ConfigCommand]) -> None: ...
|
|
58
63
|
async def _handle_room_message(self, room: MatrixRoom, message: Event) -> None: ...
|
|
64
|
+
def _get_thread_parent(self, message: RoomMessageText) -> str | None: ...
|
|
59
65
|
async def _resolve_room_alias(self, room_alias_or_id: RoomAnyID) -> dict[RoomAnyID, RoomID]: ...
|
|
60
66
|
async def _resolve_room_aliases(self, listening_rooms: list[RoomAnyID]) -> None: ...
|
|
61
67
|
async def _join_room(self, room_id: RoomID, room_alias_or_id: RoomAnyID) -> None: ...
|
|
@@ -65,6 +71,8 @@ class MatrixBot:
|
|
|
65
71
|
async def _login(self) -> None: ...
|
|
66
72
|
async def _handle_room_send(self, target_room: RoomAnyID, message_type: str, content: dict) -> None: ...
|
|
67
73
|
async def _handle_multi_room_send(self, target_rooms: Sequence[RoomAnyID], message_type: str, content: dict) -> None: ...
|
|
68
|
-
async def _send_image(self, image_path: str, target_rooms: Sequence[RoomAnyID]) -> None: ...
|
|
74
|
+
async def _send_image(self, image_path: str, target_rooms: Sequence[RoomAnyID], thread_id: str | None) -> None: ...
|
|
69
75
|
async def _send_message(self, message: str, target_rooms: list[RoomAnyID], data: dict | None) -> None: ...
|
|
76
|
+
async def _send_reaction(self, reaction: str, target_room: RoomAnyID, message_id: str) -> None: ...
|
|
70
77
|
async def handle_send_message(self, service: ServiceCall) -> None: ...
|
|
78
|
+
async def handle_send_reaction(self, service: ServiceCall) -> None: ...
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from . import MatrixBot as MatrixBot
|
|
2
|
-
from .const import ATTR_FORMAT as ATTR_FORMAT, ATTR_IMAGES as ATTR_IMAGES, CONF_ROOMS_REGEX as CONF_ROOMS_REGEX, DOMAIN as DOMAIN, FORMAT_HTML as FORMAT_HTML, FORMAT_TEXT as FORMAT_TEXT, SERVICE_SEND_MESSAGE as SERVICE_SEND_MESSAGE
|
|
2
|
+
from .const import ATTR_FORMAT as ATTR_FORMAT, ATTR_IMAGES as ATTR_IMAGES, ATTR_MESSAGE_ID as ATTR_MESSAGE_ID, ATTR_REACTION as ATTR_REACTION, ATTR_ROOM as ATTR_ROOM, ATTR_THREAD_ID as ATTR_THREAD_ID, CONF_ROOMS_REGEX as CONF_ROOMS_REGEX, DOMAIN as DOMAIN, FORMAT_HTML as FORMAT_HTML, FORMAT_TEXT as FORMAT_TEXT, SERVICE_REACT as SERVICE_REACT, SERVICE_SEND_MESSAGE as SERVICE_SEND_MESSAGE
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
4
|
from homeassistant.components.notify import ATTR_DATA as ATTR_DATA, ATTR_MESSAGE as ATTR_MESSAGE, ATTR_TARGET as ATTR_TARGET
|
|
5
5
|
from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
|
|
@@ -7,7 +7,9 @@ from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as Se
|
|
|
7
7
|
MESSAGE_FORMATS: Incomplete
|
|
8
8
|
DEFAULT_MESSAGE_FORMAT = FORMAT_TEXT
|
|
9
9
|
SERVICE_SCHEMA_SEND_MESSAGE: Incomplete
|
|
10
|
+
SERVICE_SCHEMA_REACT: Incomplete
|
|
10
11
|
|
|
11
12
|
async def _handle_send_message(call: ServiceCall) -> None: ...
|
|
13
|
+
async def _handle_react(call: ServiceCall) -> None: ...
|
|
12
14
|
@callback
|
|
13
15
|
def async_setup_services(hass: HomeAssistant) -> None: ...
|
|
@@ -6,6 +6,8 @@ from .const import CONF_INTEGRATION_CREATED_ADDON as CONF_INTEGRATION_CREATED_AD
|
|
|
6
6
|
from .discovery import SUPPORTED_PLATFORMS as SUPPORTED_PLATFORMS
|
|
7
7
|
from .helpers import MatterEntryData as MatterEntryData, get_matter as get_matter, get_node_from_device_entry as get_node_from_device_entry, node_from_ha_device_id as node_from_ha_device_id
|
|
8
8
|
from .models import MatterDeviceInfo as MatterDeviceInfo
|
|
9
|
+
from .services import async_setup_services as async_setup_services
|
|
10
|
+
from _typeshed import Incomplete
|
|
9
11
|
from functools import cache
|
|
10
12
|
from homeassistant.components.hassio import AddonError as AddonError, AddonManager as AddonManager, AddonState as AddonState
|
|
11
13
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigEntryState as ConfigEntryState
|
|
@@ -15,14 +17,17 @@ from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
|
|
|
15
17
|
from homeassistant.helpers import device_registry as dr
|
|
16
18
|
from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
|
|
17
19
|
from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity, async_create_issue as async_create_issue, async_delete_issue as async_delete_issue
|
|
20
|
+
from homeassistant.helpers.typing import ConfigType as ConfigType
|
|
18
21
|
from matter_server.client import MatterClient
|
|
19
22
|
|
|
20
23
|
CONNECT_TIMEOUT: int
|
|
21
24
|
LISTEN_READY_TIMEOUT: int
|
|
25
|
+
CONFIG_SCHEMA: Incomplete
|
|
22
26
|
|
|
23
27
|
@callback
|
|
24
28
|
@cache
|
|
25
29
|
def get_matter_device_info(hass: HomeAssistant, device_id: str) -> MatterDeviceInfo | None: ...
|
|
30
|
+
async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
|
|
26
31
|
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
|
|
27
32
|
async def _client_listen(hass: HomeAssistant, entry: ConfigEntry, matter_client: MatterClient, init_ready: asyncio.Event) -> None: ...
|
|
28
33
|
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
|
|
@@ -13,7 +13,7 @@ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
|
|
|
13
13
|
|
|
14
14
|
async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
15
15
|
|
|
16
|
-
@dataclass(frozen=True)
|
|
16
|
+
@dataclass(frozen=True, kw_only=True)
|
|
17
17
|
class MatterBinarySensorEntityDescription(BinarySensorEntityDescription, MatterEntityDescription): ...
|
|
18
18
|
|
|
19
19
|
class MatterBinarySensor(MatterEntity, BinarySensorEntity):
|
|
@@ -13,7 +13,7 @@ from typing import Any
|
|
|
13
13
|
|
|
14
14
|
async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
15
15
|
|
|
16
|
-
@dataclass(frozen=True)
|
|
16
|
+
@dataclass(frozen=True, kw_only=True)
|
|
17
17
|
class MatterButtonEntityDescription(ButtonEntityDescription, MatterEntityDescription):
|
|
18
18
|
command: Callable[[], Any] | None = ...
|
|
19
19
|
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
from .entity import MatterEntity as MatterEntity
|
|
1
|
+
from .entity import MatterEntity as MatterEntity, MatterEntityDescription as MatterEntityDescription
|
|
2
2
|
from .helpers import get_matter as get_matter
|
|
3
3
|
from .models import MatterDiscoverySchema as MatterDiscoverySchema
|
|
4
4
|
from _typeshed import Incomplete
|
|
5
5
|
from chip.clusters import Objects as clusters
|
|
6
|
+
from dataclasses import dataclass
|
|
6
7
|
from enum import IntEnum
|
|
7
8
|
from homeassistant.components.climate import ATTR_HVAC_MODE as ATTR_HVAC_MODE, ATTR_TARGET_TEMP_HIGH as ATTR_TARGET_TEMP_HIGH, ATTR_TARGET_TEMP_LOW as ATTR_TARGET_TEMP_LOW, ClimateEntity as ClimateEntity, ClimateEntityDescription as ClimateEntityDescription, ClimateEntityFeature as ClimateEntityFeature, DEFAULT_MAX_TEMP as DEFAULT_MAX_TEMP, DEFAULT_MIN_TEMP as DEFAULT_MIN_TEMP, HVACAction as HVACAction, HVACMode as HVACMode
|
|
8
9
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
@@ -11,6 +12,7 @@ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callb
|
|
|
11
12
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
12
13
|
from typing import Any
|
|
13
14
|
|
|
15
|
+
HUMIDITY_SCALING_FACTOR: int
|
|
14
16
|
TEMPERATURE_SCALING_FACTOR: int
|
|
15
17
|
HVAC_SYSTEM_MODE_MAP: Incomplete
|
|
16
18
|
SINGLE_SETPOINT_DEVICES: set[tuple[int, int]]
|
|
@@ -31,6 +33,9 @@ class ThermostatRunningState(IntEnum):
|
|
|
31
33
|
|
|
32
34
|
async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
33
35
|
|
|
36
|
+
@dataclass(frozen=True, kw_only=True)
|
|
37
|
+
class MatterClimateEntityDescription(ClimateEntityDescription, MatterEntityDescription): ...
|
|
38
|
+
|
|
34
39
|
class MatterClimate(MatterEntity, ClimateEntity):
|
|
35
40
|
_attr_temperature_unit: str
|
|
36
41
|
_attr_hvac_mode: HVACMode
|
|
@@ -39,6 +44,7 @@ class MatterClimate(MatterEntity, ClimateEntity):
|
|
|
39
44
|
async def async_set_temperature(self, **kwargs: Any) -> None: ...
|
|
40
45
|
async def async_set_hvac_mode(self, hvac_mode: HVACMode) -> None: ...
|
|
41
46
|
_attr_current_temperature: Incomplete
|
|
47
|
+
_attr_current_humidity: Incomplete
|
|
42
48
|
_attr_hvac_action: Incomplete
|
|
43
49
|
_attr_target_temperature: Incomplete
|
|
44
50
|
_attr_target_temperature_high: Incomplete
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
from .const import LOGGER as LOGGER
|
|
2
|
-
from .entity import MatterEntity as MatterEntity
|
|
2
|
+
from .entity import MatterEntity as MatterEntity, MatterEntityDescription as MatterEntityDescription
|
|
3
3
|
from .helpers import get_matter as get_matter
|
|
4
4
|
from .models import MatterDiscoverySchema as MatterDiscoverySchema
|
|
5
5
|
from _typeshed import Incomplete
|
|
6
|
+
from dataclasses import dataclass
|
|
6
7
|
from enum import IntEnum
|
|
7
8
|
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
|
|
8
9
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
@@ -22,8 +23,11 @@ class OperationalStatus(IntEnum):
|
|
|
22
23
|
|
|
23
24
|
async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
24
25
|
|
|
26
|
+
@dataclass(frozen=True, kw_only=True)
|
|
27
|
+
class MatterCoverEntityDescription(CoverEntityDescription, MatterEntityDescription): ...
|
|
28
|
+
|
|
25
29
|
class MatterCover(MatterEntity, CoverEntity):
|
|
26
|
-
entity_description:
|
|
30
|
+
entity_description: MatterCoverEntityDescription
|
|
27
31
|
@property
|
|
28
32
|
def is_closed(self) -> bool | None: ...
|
|
29
33
|
async def async_stop_cover(self, **kwargs: Any) -> None: ...
|
|
@@ -17,10 +17,11 @@ from propcache.api import cached_property
|
|
|
17
17
|
from typing import Any, Concatenate
|
|
18
18
|
|
|
19
19
|
LOGGER: Incomplete
|
|
20
|
+
VENDOR_LABELING_LIST: dict[int, dict[int, list[str] | None]]
|
|
20
21
|
|
|
21
22
|
def catch_matter_error[_R, **P](func: Callable[Concatenate[MatterEntity, P], Coroutine[Any, Any, _R]]) -> Callable[Concatenate[MatterEntity, P], Coroutine[Any, Any, _R]]: ...
|
|
22
23
|
|
|
23
|
-
@dataclass(frozen=True)
|
|
24
|
+
@dataclass(frozen=True, kw_only=True)
|
|
24
25
|
class MatterEntityDescription(EntityDescription):
|
|
25
26
|
device_to_ha: Callable[[Any], Any] | None = ...
|
|
26
27
|
ha_to_device: Callable[[Any], Any] | None = ...
|
|
@@ -41,8 +42,9 @@ class MatterEntity(Entity):
|
|
|
41
42
|
_attr_device_info: Incomplete
|
|
42
43
|
_attr_available: Incomplete
|
|
43
44
|
_attr_translation_key: Incomplete
|
|
44
|
-
_attr_name: Incomplete
|
|
45
45
|
def __init__(self, matter_client: MatterClient, endpoint: MatterEndpoint, entity_info: MatterEntityInfo) -> None: ...
|
|
46
|
+
def _find_matching_labels(self) -> list[str]: ...
|
|
47
|
+
def _get_name_modifier(self) -> str | None: ...
|
|
46
48
|
async def async_added_to_hass(self) -> None: ...
|
|
47
49
|
@cached_property
|
|
48
50
|
def name(self) -> str | UndefinedType | None: ...
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
from .entity import MatterEntity as MatterEntity
|
|
1
|
+
from .entity import MatterEntity as MatterEntity, MatterEntityDescription as MatterEntityDescription
|
|
2
2
|
from .helpers import get_matter as get_matter
|
|
3
3
|
from .models import MatterDiscoverySchema as MatterDiscoverySchema
|
|
4
4
|
from _typeshed import Incomplete
|
|
5
|
+
from dataclasses import dataclass
|
|
5
6
|
from homeassistant.components.event import EventDeviceClass as EventDeviceClass, EventEntity as EventEntity, EventEntityDescription as EventEntityDescription
|
|
6
7
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
7
8
|
from homeassistant.const import Platform as Platform
|
|
@@ -15,6 +16,9 @@ EVENT_TYPES_MAP: Incomplete
|
|
|
15
16
|
|
|
16
17
|
async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
17
18
|
|
|
19
|
+
@dataclass(frozen=True, kw_only=True)
|
|
20
|
+
class MatterEventEntityDescription(EventEntityDescription, MatterEntityDescription): ...
|
|
21
|
+
|
|
18
22
|
class MatterEventEntity(MatterEntity, EventEntity):
|
|
19
23
|
_attr_event_types: Incomplete
|
|
20
24
|
def __init__(self, *args: Any, **kwargs: Any) -> None: ...
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
from .entity import MatterEntity as MatterEntity
|
|
1
|
+
from .entity import MatterEntity as MatterEntity, MatterEntityDescription as MatterEntityDescription
|
|
2
2
|
from .helpers import get_matter as get_matter
|
|
3
3
|
from .models import MatterDiscoverySchema as MatterDiscoverySchema
|
|
4
4
|
from _typeshed import Incomplete
|
|
5
|
+
from dataclasses import dataclass
|
|
5
6
|
from homeassistant.components.fan import DIRECTION_FORWARD as DIRECTION_FORWARD, DIRECTION_REVERSE as DIRECTION_REVERSE, FanEntity as FanEntity, FanEntityDescription as FanEntityDescription, FanEntityFeature as FanEntityFeature
|
|
6
7
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
7
8
|
from homeassistant.const import Platform as Platform
|
|
@@ -23,6 +24,9 @@ PRESET_SLEEP_WIND: str
|
|
|
23
24
|
|
|
24
25
|
async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
25
26
|
|
|
27
|
+
@dataclass(frozen=True, kw_only=True)
|
|
28
|
+
class MatterFanEntityDescription(FanEntityDescription, MatterEntityDescription): ...
|
|
29
|
+
|
|
26
30
|
class MatterFan(MatterEntity, FanEntity):
|
|
27
31
|
_last_known_preset_mode: str | None
|
|
28
32
|
_last_known_percentage: int
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
from .const import LOGGER as LOGGER
|
|
2
|
-
from .entity import MatterEntity as MatterEntity
|
|
2
|
+
from .entity import MatterEntity as MatterEntity, MatterEntityDescription as MatterEntityDescription
|
|
3
3
|
from .helpers import get_matter as get_matter
|
|
4
4
|
from .models import MatterDiscoverySchema as MatterDiscoverySchema
|
|
5
5
|
from .util import convert_to_hass_hs as convert_to_hass_hs, convert_to_hass_xy as convert_to_hass_xy, convert_to_matter_hs as convert_to_matter_hs, convert_to_matter_xy as convert_to_matter_xy, renormalize as renormalize
|
|
6
6
|
from _typeshed import Incomplete
|
|
7
|
+
from dataclasses import dataclass
|
|
7
8
|
from homeassistant.components.light import ATTR_BRIGHTNESS as ATTR_BRIGHTNESS, ATTR_COLOR_TEMP_KELVIN as ATTR_COLOR_TEMP_KELVIN, ATTR_HS_COLOR as ATTR_HS_COLOR, ATTR_TRANSITION as ATTR_TRANSITION, ATTR_XY_COLOR as ATTR_XY_COLOR, ColorMode as ColorMode, DEFAULT_MAX_KELVIN as DEFAULT_MAX_KELVIN, DEFAULT_MIN_KELVIN as DEFAULT_MIN_KELVIN, LightEntity as LightEntity, LightEntityDescription as LightEntityDescription, LightEntityFeature as LightEntityFeature, filter_supported_color_modes as filter_supported_color_modes
|
|
8
9
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
9
10
|
from homeassistant.const import Platform as Platform
|
|
@@ -16,8 +17,11 @@ TRANSITION_BLOCKLIST: Incomplete
|
|
|
16
17
|
|
|
17
18
|
async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
18
19
|
|
|
20
|
+
@dataclass(frozen=True, kw_only=True)
|
|
21
|
+
class MatterLightEntityDescription(LightEntityDescription, MatterEntityDescription): ...
|
|
22
|
+
|
|
19
23
|
class MatterLight(MatterEntity, LightEntity):
|
|
20
|
-
entity_description:
|
|
24
|
+
entity_description: MatterLightEntityDescription
|
|
21
25
|
_supports_brightness: bool
|
|
22
26
|
_supports_color: bool
|
|
23
27
|
_supports_color_temperature: bool
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
from .const import LOGGER as LOGGER
|
|
3
|
-
from .entity import MatterEntity as MatterEntity
|
|
3
|
+
from .entity import MatterEntity as MatterEntity, MatterEntityDescription as MatterEntityDescription
|
|
4
4
|
from .helpers import get_matter as get_matter
|
|
5
5
|
from .models import MatterDiscoverySchema as MatterDiscoverySchema
|
|
6
6
|
from _typeshed import Incomplete
|
|
7
|
+
from dataclasses import dataclass
|
|
7
8
|
from homeassistant.components.lock import LockEntity as LockEntity, LockEntityDescription as LockEntityDescription, LockEntityFeature as LockEntityFeature
|
|
8
9
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
9
10
|
from homeassistant.const import ATTR_CODE as ATTR_CODE, Platform as Platform
|
|
@@ -17,6 +18,9 @@ DoorLockFeature: Incomplete
|
|
|
17
18
|
|
|
18
19
|
async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
19
20
|
|
|
21
|
+
@dataclass(frozen=True, kw_only=True)
|
|
22
|
+
class MatterLockEntityDescription(LockEntityDescription, MatterEntityDescription): ...
|
|
23
|
+
|
|
20
24
|
class MatterLock(MatterEntity, LockEntity):
|
|
21
25
|
_feature_map: int | None
|
|
22
26
|
_optimistic_timer: asyncio.TimerHandle | None
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
from .entity import MatterEntityDescription as MatterEntityDescription
|
|
1
2
|
from _typeshed import Incomplete
|
|
2
3
|
from chip.clusters import Objects as clusters
|
|
3
4
|
from chip.clusters.Objects import Cluster as Cluster, ClusterAttributeDescriptor as ClusterAttributeDescriptor
|
|
4
5
|
from dataclasses import dataclass
|
|
5
6
|
from homeassistant.const import Platform as Platform
|
|
6
|
-
from homeassistant.helpers.entity import EntityDescription as EntityDescription
|
|
7
7
|
from matter_server.client.models.device_types import DeviceType as DeviceType
|
|
8
8
|
from matter_server.client.models.node import MatterEndpoint as MatterEndpoint
|
|
9
9
|
from typing import Any, TypedDict
|
|
@@ -23,7 +23,7 @@ class MatterEntityInfo:
|
|
|
23
23
|
endpoint: MatterEndpoint
|
|
24
24
|
platform: Platform
|
|
25
25
|
attributes_to_watch: list[type[ClusterAttributeDescriptor]]
|
|
26
|
-
entity_description:
|
|
26
|
+
entity_description: MatterEntityDescription
|
|
27
27
|
entity_class: type
|
|
28
28
|
discovery_schema: MatterDiscoverySchema
|
|
29
29
|
@property
|
|
@@ -32,7 +32,7 @@ class MatterEntityInfo:
|
|
|
32
32
|
@dataclass
|
|
33
33
|
class MatterDiscoverySchema:
|
|
34
34
|
platform: Platform
|
|
35
|
-
entity_description:
|
|
35
|
+
entity_description: MatterEntityDescription
|
|
36
36
|
entity_class: type
|
|
37
37
|
required_attributes: tuple[type[ClusterAttributeDescriptor], ...]
|
|
38
38
|
device_type: tuple[type[DeviceType] | DeviceType, ...] | None = ...
|
|
@@ -14,7 +14,7 @@ from typing import Any
|
|
|
14
14
|
|
|
15
15
|
async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
16
16
|
|
|
17
|
-
@dataclass(frozen=True)
|
|
17
|
+
@dataclass(frozen=True, kw_only=True)
|
|
18
18
|
class MatterNumberEntityDescription(NumberEntityDescription, MatterEntityDescription): ...
|
|
19
19
|
|
|
20
20
|
@dataclass(frozen=True, kw_only=True)
|
|
@@ -21,7 +21,7 @@ type SelectCluster = clusters.ModeSelect | clusters.OvenMode | clusters.LaundryW
|
|
|
21
21
|
|
|
22
22
|
async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
23
23
|
|
|
24
|
-
@dataclass(frozen=True)
|
|
24
|
+
@dataclass(frozen=True, kw_only=True)
|
|
25
25
|
class MatterSelectEntityDescription(SelectEntityDescription, MatterEntityDescription): ...
|
|
26
26
|
|
|
27
27
|
@dataclass(frozen=True, kw_only=True)
|
|
@@ -16,18 +16,21 @@ AIR_QUALITY_MAP: Incomplete
|
|
|
16
16
|
CONTAMINATION_STATE_MAP: Incomplete
|
|
17
17
|
EVE_CLUSTER_WEATHER_MAP: Incomplete
|
|
18
18
|
OPERATIONAL_STATE_MAP: Incomplete
|
|
19
|
+
OPERATIONAL_STATE_ERROR_MAP: Incomplete
|
|
19
20
|
RVC_OPERATIONAL_STATE_MAP: Incomplete
|
|
21
|
+
RVC_OPERATIONAL_STATE_ERROR_MAP: Incomplete
|
|
20
22
|
BOOST_STATE_MAP: Incomplete
|
|
21
23
|
CHARGE_STATE_MAP: Incomplete
|
|
22
24
|
DEM_OPT_OUT_STATE_MAP: Incomplete
|
|
23
25
|
ESA_STATE_MAP: Incomplete
|
|
24
26
|
EVSE_FAULT_STATE_MAP: Incomplete
|
|
25
27
|
PUMP_CONTROL_MODE_MAP: Incomplete
|
|
28
|
+
HUMIDITY_SCALING_FACTOR: int
|
|
26
29
|
TEMPERATURE_SCALING_FACTOR: int
|
|
27
30
|
|
|
28
31
|
async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
29
32
|
|
|
30
|
-
@dataclass(frozen=True)
|
|
33
|
+
@dataclass(frozen=True, kw_only=True)
|
|
31
34
|
class MatterSensorEntityDescription(SensorEntityDescription, MatterEntityDescription): ...
|
|
32
35
|
|
|
33
36
|
@dataclass(frozen=True, kw_only=True)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from .const import DOMAIN as DOMAIN
|
|
2
|
+
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
|
3
|
+
from homeassistant.helpers import service as service
|
|
4
|
+
|
|
5
|
+
ATTR_DURATION: str
|
|
6
|
+
ATTR_EMERGENCY_BOOST: str
|
|
7
|
+
ATTR_TEMPORARY_SETPOINT: str
|
|
8
|
+
SERVICE_WATER_HEATER_BOOST: str
|
|
9
|
+
|
|
10
|
+
@callback
|
|
11
|
+
def async_setup_services(hass: HomeAssistant) -> None: ...
|
|
@@ -16,6 +16,9 @@ EVSE_SUPPLY_STATE_MAP: Incomplete
|
|
|
16
16
|
|
|
17
17
|
async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
18
18
|
|
|
19
|
+
@dataclass(frozen=True, kw_only=True)
|
|
20
|
+
class MatterSwitchEntityDescription(SwitchEntityDescription, MatterEntityDescription): ...
|
|
21
|
+
|
|
19
22
|
class MatterSwitch(MatterEntity, SwitchEntity):
|
|
20
23
|
_platform_translation_key: str
|
|
21
24
|
async def async_turn_on(self, **kwargs: Any) -> None: ...
|
|
@@ -34,13 +37,13 @@ class MatterGenericCommandSwitch(MatterSwitch):
|
|
|
34
37
|
def _update_from_device(self) -> None: ...
|
|
35
38
|
async def send_device_command(self, command: ClusterCommand, command_timeout: int | None = None, **kwargs: Any) -> None: ...
|
|
36
39
|
|
|
37
|
-
@dataclass(frozen=True)
|
|
40
|
+
@dataclass(frozen=True, kw_only=True)
|
|
38
41
|
class MatterGenericCommandSwitchEntityDescription(SwitchEntityDescription, MatterEntityDescription):
|
|
39
42
|
on_command: Callable[[], Any] | None = ...
|
|
40
43
|
off_command: Callable[[], Any] | None = ...
|
|
41
44
|
command_timeout: int | None = ...
|
|
42
45
|
|
|
43
|
-
@dataclass(frozen=True)
|
|
46
|
+
@dataclass(frozen=True, kw_only=True)
|
|
44
47
|
class MatterNumericSwitchEntityDescription(SwitchEntityDescription, MatterEntityDescription): ...
|
|
45
48
|
|
|
46
49
|
class MatterNumericSwitch(MatterSwitch):
|