homeassistant-stubs 2025.4.4__py3-none-any.whl → 2025.5.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- homeassistant-stubs/components/adax/__init__.pyi +5 -4
- homeassistant-stubs/components/adax/climate.pyi +25 -17
- homeassistant-stubs/components/adax/const.pyi +2 -0
- homeassistant-stubs/components/adax/coordinator.pyi +21 -0
- homeassistant-stubs/components/androidtv_remote/media_player.pyi +1 -1
- homeassistant-stubs/components/apcupsd/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/apcupsd/coordinator.pyi +2 -0
- homeassistant-stubs/components/apcupsd/sensor.pyi +1 -1
- homeassistant-stubs/components/apsystems/coordinator.pyi +1 -0
- homeassistant-stubs/components/apsystems/switch.pyi +1 -1
- homeassistant-stubs/components/asuswrt/router.pyi +2 -3
- homeassistant-stubs/components/automation/__init__.pyi +2 -2
- homeassistant-stubs/components/automation/config.pyi +2 -2
- homeassistant-stubs/components/automation/const.pyi +0 -4
- homeassistant-stubs/components/axis/hub/api.pyi +2 -2
- homeassistant-stubs/components/backup/config.pyi +10 -2
- homeassistant-stubs/components/backup/onboarding.pyi +30 -0
- homeassistant-stubs/components/bluetooth/passive_update_processor.pyi +3 -0
- homeassistant-stubs/components/bluetooth/storage.pyi +1 -1
- homeassistant-stubs/components/bond/config_flow.pyi +3 -0
- homeassistant-stubs/components/bosch_alarm/__init__.pyi +1 -1
- homeassistant-stubs/components/bosch_alarm/alarm_control_panel.pyi +2 -11
- homeassistant-stubs/components/bosch_alarm/config_flow.pyi +5 -1
- homeassistant-stubs/components/bosch_alarm/diagnostics.pyi +11 -0
- homeassistant-stubs/components/bosch_alarm/entity.pyi +29 -0
- homeassistant-stubs/components/bosch_alarm/sensor.pyi +30 -0
- homeassistant-stubs/components/cambridge_audio/media_player.pyi +2 -0
- homeassistant-stubs/components/canary/__init__.pyi +1 -5
- homeassistant-stubs/components/canary/config_flow.pyi +0 -1
- homeassistant-stubs/components/cloud/const.pyi +1 -0
- homeassistant-stubs/components/cloud/http_api.pyi +1 -1
- homeassistant-stubs/components/cloud/onboarding.pyi +35 -0
- homeassistant-stubs/components/cloud/tts.pyi +4 -1
- homeassistant-stubs/components/comelit/__init__.pyi +1 -0
- homeassistant-stubs/components/comelit/alarm_control_panel.pyi +0 -1
- homeassistant-stubs/components/comelit/binary_sensor.pyi +0 -1
- homeassistant-stubs/components/comelit/climate.pyi +2 -7
- homeassistant-stubs/components/comelit/config_flow.pyi +1 -0
- homeassistant-stubs/components/comelit/coordinator.pyi +3 -2
- homeassistant-stubs/components/comelit/cover.pyi +2 -7
- homeassistant-stubs/components/comelit/entity.pyi +11 -0
- homeassistant-stubs/components/comelit/humidifier.pyi +2 -6
- homeassistant-stubs/components/comelit/light.pyi +2 -9
- homeassistant-stubs/components/comelit/sensor.pyi +2 -7
- homeassistant-stubs/components/comelit/switch.pyi +2 -6
- homeassistant-stubs/components/comelit/utils.pyi +5 -0
- homeassistant-stubs/components/command_line/__init__.pyi +1 -1
- homeassistant-stubs/components/command_line/binary_sensor.pyi +2 -2
- homeassistant-stubs/components/command_line/cover.pyi +2 -2
- homeassistant-stubs/components/command_line/sensor.pyi +2 -2
- homeassistant-stubs/components/command_line/switch.pyi +2 -2
- homeassistant-stubs/components/config/config_entries.pyi +3 -1
- homeassistant-stubs/components/demo/light.pyi +3 -2
- homeassistant-stubs/components/demo/media_player.pyi +4 -0
- homeassistant-stubs/components/device_tracker/config_entry.pyi +2 -2
- homeassistant-stubs/components/devolo_home_control/__init__.pyi +2 -2
- homeassistant-stubs/components/devolo_home_network/device_tracker.pyi +1 -2
- homeassistant-stubs/components/dhcp/__init__.pyi +6 -13
- homeassistant-stubs/components/dhcp/const.pyi +5 -0
- homeassistant-stubs/components/dhcp/helpers.pyi +8 -0
- homeassistant-stubs/components/dhcp/models.pyi +25 -0
- homeassistant-stubs/components/dhcp/websocket_api.pyi +13 -0
- homeassistant-stubs/components/ecovacs/image.pyi +1 -0
- homeassistant-stubs/components/eheimdigital/number.pyi +38 -0
- homeassistant-stubs/components/eheimdigital/sensor.pyi +32 -0
- homeassistant-stubs/components/eheimdigital/switch.pyi +26 -0
- homeassistant-stubs/components/eheimdigital/time.pyi +37 -0
- homeassistant-stubs/components/elevenlabs/tts.pyi +2 -2
- homeassistant-stubs/components/energy/sensor.pyi +5 -0
- homeassistant-stubs/components/enphase_envoy/config_flow.pyi +3 -1
- homeassistant-stubs/components/enphase_envoy/coordinator.pyi +12 -1
- homeassistant-stubs/components/esphome/__init__.pyi +5 -4
- homeassistant-stubs/components/esphome/alarm_control_panel.pyi +1 -0
- homeassistant-stubs/components/esphome/assist_satellite.pyi +7 -6
- homeassistant-stubs/components/esphome/binary_sensor.pyi +5 -13
- homeassistant-stubs/components/esphome/button.pyi +2 -0
- homeassistant-stubs/components/esphome/camera.pyi +2 -0
- homeassistant-stubs/components/esphome/climate.pyi +1 -0
- homeassistant-stubs/components/esphome/config_flow.pyi +26 -5
- homeassistant-stubs/components/esphome/const.pyi +2 -1
- homeassistant-stubs/components/esphome/coordinator.pyi +4 -3
- homeassistant-stubs/components/esphome/cover.pyi +2 -0
- homeassistant-stubs/components/esphome/dashboard.pyi +1 -1
- homeassistant-stubs/components/esphome/date.pyi +2 -0
- homeassistant-stubs/components/esphome/datetime.pyi +2 -0
- homeassistant-stubs/components/esphome/diagnostics.pyi +2 -0
- homeassistant-stubs/components/esphome/entity.pyi +12 -9
- homeassistant-stubs/components/esphome/event.pyi +2 -0
- homeassistant-stubs/components/esphome/fan.pyi +4 -3
- homeassistant-stubs/components/esphome/ffmpeg_proxy.pyi +10 -2
- homeassistant-stubs/components/esphome/light.pyi +8 -7
- homeassistant-stubs/components/esphome/lock.pyi +6 -4
- homeassistant-stubs/components/esphome/manager.pyi +7 -3
- homeassistant-stubs/components/esphome/media_player.pyi +2 -1
- homeassistant-stubs/components/esphome/number.pyi +1 -0
- homeassistant-stubs/components/esphome/repairs.pyi +21 -2
- homeassistant-stubs/components/esphome/select.pyi +3 -2
- homeassistant-stubs/components/esphome/sensor.pyi +4 -2
- homeassistant-stubs/components/esphome/switch.pyi +3 -1
- homeassistant-stubs/components/esphome/text.pyi +1 -0
- homeassistant-stubs/components/esphome/time.pyi +2 -0
- homeassistant-stubs/components/esphome/update.pyi +8 -9
- homeassistant-stubs/components/esphome/valve.pyi +3 -1
- homeassistant-stubs/components/fritz/binary_sensor.pyi +1 -0
- homeassistant-stubs/components/fritz/button.pyi +1 -0
- homeassistant-stubs/components/fritz/coordinator.pyi +3 -4
- homeassistant-stubs/components/fritz/device_tracker.pyi +1 -0
- homeassistant-stubs/components/fritz/image.pyi +1 -0
- homeassistant-stubs/components/fritz/sensor.pyi +1 -0
- homeassistant-stubs/components/fritz/switch.pyi +1 -0
- homeassistant-stubs/components/fritz/update.pyi +1 -0
- homeassistant-stubs/components/fritzbox/binary_sensor.pyi +2 -5
- homeassistant-stubs/components/fritzbox/climate.pyi +4 -3
- homeassistant-stubs/components/fritzbox/coordinator.pyi +1 -1
- homeassistant-stubs/components/fritzbox/sensor.pyi +3 -6
- homeassistant-stubs/components/heos/const.pyi +4 -0
- homeassistant-stubs/components/heos/media_player.pyi +5 -4
- homeassistant-stubs/components/heos/services.pyi +22 -2
- homeassistant-stubs/components/history/websocket_api.pyi +1 -1
- homeassistant-stubs/components/history_stats/data.pyi +2 -1
- homeassistant-stubs/components/home_connect/__init__.pyi +0 -1
- homeassistant-stubs/components/home_connect/binary_sensor.pyi +2 -13
- homeassistant-stubs/components/home_connect/coordinator.pyi +5 -0
- homeassistant-stubs/components/home_connect/repairs.pyi +10 -0
- homeassistant-stubs/components/home_connect/select.pyi +6 -2
- homeassistant-stubs/components/home_connect/sensor.pyi +5 -3
- homeassistant-stubs/components/homee/climate.pyi +47 -0
- homeassistant-stubs/components/homee/const.pyi +1 -0
- homeassistant-stubs/components/homee/number.pyi +12 -4
- homeassistant-stubs/components/homekit/__init__.pyi +5 -3
- homeassistant-stubs/components/homekit/accessories.pyi +2 -1
- homeassistant-stubs/components/homekit/const.pyi +13 -0
- homeassistant-stubs/components/homekit/type_air_purifiers.pyi +69 -0
- homeassistant-stubs/components/homekit/type_fans.pyi +7 -4
- homeassistant-stubs/components/homekit/type_media_players.pyi +2 -1
- homeassistant-stubs/components/homekit/type_switches.pyi +1 -1
- homeassistant-stubs/components/homekit/type_triggers.pyi +1 -1
- homeassistant-stubs/components/homekit/util.pyi +2 -1
- homeassistant-stubs/components/http/headers.pyi +6 -0
- homeassistant-stubs/components/huawei_lte/binary_sensor.pyi +3 -1
- homeassistant-stubs/components/huawei_lte/config_flow.pyi +1 -1
- homeassistant-stubs/components/huawei_lte/entity.pyi +0 -3
- homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +1 -0
- homeassistant-stubs/components/husqvarna_automower/sensor.pyi +2 -1
- homeassistant-stubs/components/hyperion/__init__.pyi +12 -5
- homeassistant-stubs/components/hyperion/camera.pyi +3 -4
- homeassistant-stubs/components/hyperion/const.pyi +0 -3
- homeassistant-stubs/components/hyperion/light.pyi +4 -6
- homeassistant-stubs/components/hyperion/sensor.pyi +3 -4
- homeassistant-stubs/components/hyperion/switch.pyi +3 -4
- homeassistant-stubs/components/incomfort/climate.pyi +1 -2
- homeassistant-stubs/components/iron_os/__init__.pyi +1 -3
- homeassistant-stubs/components/iron_os/config_flow.pyi +3 -0
- homeassistant-stubs/components/iron_os/coordinator.pyi +4 -2
- homeassistant-stubs/components/iron_os/entity.pyi +2 -0
- homeassistant-stubs/components/iron_os/update.pyi +4 -2
- homeassistant-stubs/components/isy994/entity.pyi +1 -0
- homeassistant-stubs/components/isy994/services.pyi +1 -0
- homeassistant-stubs/components/isy994/switch.pyi +1 -1
- homeassistant-stubs/components/jewish_calendar/config_flow.pyi +1 -2
- homeassistant-stubs/components/jewish_calendar/const.pyi +1 -0
- homeassistant-stubs/components/jewish_calendar/entity.pyi +0 -1
- homeassistant-stubs/components/jewish_calendar/sensor.pyi +1 -0
- homeassistant-stubs/components/jewish_calendar/service.pyi +4 -3
- homeassistant-stubs/components/kulersky/__init__.pyi +14 -0
- homeassistant-stubs/components/kulersky/config_flow.pyi +17 -0
- homeassistant-stubs/components/kulersky/const.pyi +4 -0
- homeassistant-stubs/components/kulersky/light.pyi +34 -0
- homeassistant-stubs/components/lamarzocco/__init__.pyi +5 -3
- homeassistant-stubs/components/lamarzocco/binary_sensor.pyi +3 -7
- homeassistant-stubs/components/lamarzocco/calendar.pyi +3 -4
- homeassistant-stubs/components/lamarzocco/config_flow.pyi +5 -4
- homeassistant-stubs/components/lamarzocco/coordinator.pyi +16 -16
- homeassistant-stubs/components/lamarzocco/diagnostics.pyi +3 -8
- homeassistant-stubs/components/lamarzocco/entity.pyi +1 -6
- homeassistant-stubs/components/lamarzocco/number.pyi +4 -29
- homeassistant-stubs/components/lamarzocco/select.pyi +3 -8
- homeassistant-stubs/components/lamarzocco/sensor.pyi +11 -24
- homeassistant-stubs/components/lamarzocco/switch.pyi +6 -5
- homeassistant-stubs/components/lamarzocco/update.pyi +4 -1
- homeassistant-stubs/components/lcn/__init__.pyi +4 -3
- homeassistant-stubs/components/lcn/entity.pyi +3 -3
- homeassistant-stubs/components/lcn/helpers.pyi +2 -2
- homeassistant-stubs/components/lcn/websocket.pyi +1 -1
- homeassistant-stubs/components/linkplay/__init__.pyi +1 -1
- homeassistant-stubs/components/linkplay/const.pyi +8 -2
- homeassistant-stubs/components/linkplay/media_player.pyi +6 -4
- homeassistant-stubs/components/logbook/websocket_api.pyi +1 -1
- homeassistant-stubs/components/logger/__init__.pyi +1 -1
- homeassistant-stubs/components/logger/helpers.pyi +4 -2
- homeassistant-stubs/components/logger/websocket_api.pyi +1 -1
- homeassistant-stubs/components/matter/entity.pyi +1 -0
- homeassistant-stubs/components/matter/select.pyi +1 -1
- homeassistant-stubs/components/matter/sensor.pyi +3 -1
- homeassistant-stubs/components/matter/switch.pyi +20 -0
- homeassistant-stubs/components/matter/water_heater.pyi +39 -0
- homeassistant-stubs/components/mcp/application_credentials.pyi +12 -0
- homeassistant-stubs/components/mcp/config_flow.pyi +27 -6
- homeassistant-stubs/components/mcp/const.pyi +3 -0
- homeassistant-stubs/components/mcp/coordinator.pyi +8 -5
- homeassistant-stubs/components/media_player/__init__.pyi +7 -3
- homeassistant-stubs/components/media_player/browse_media.pyi +16 -1
- homeassistant-stubs/components/media_player/const.pyi +4 -0
- homeassistant-stubs/components/media_player/errors.pyi +1 -0
- homeassistant-stubs/components/media_source/error.pyi +1 -0
- homeassistant-stubs/components/met_eireann/__init__.pyi +2 -2
- homeassistant-stubs/components/met_eireann/weather.pyi +3 -3
- homeassistant-stubs/components/mjpeg/config_flow.pyi +2 -2
- homeassistant-stubs/components/motionmount/select.pyi +1 -1
- homeassistant-stubs/components/mqtt/config_flow.pyi +18 -4
- homeassistant-stubs/components/mqtt/const.pyi +3 -0
- homeassistant-stubs/components/mqtt/device_tracker.pyi +11 -14
- homeassistant-stubs/components/mqtt/entity.pyi +3 -0
- homeassistant-stubs/components/mqtt/light/schema_basic.pyi +1 -2
- homeassistant-stubs/components/mqtt/light/schema_json.pyi +3 -2
- homeassistant-stubs/components/music_assistant/media_browser.pyi +17 -2
- homeassistant-stubs/components/music_assistant/media_player.pyi +3 -2
- homeassistant-stubs/components/network/__init__.pyi +2 -0
- homeassistant-stubs/components/ntfy/__init__.pyi +16 -0
- homeassistant-stubs/components/ntfy/config_flow.pyi +29 -0
- homeassistant-stubs/components/ntfy/const.pyi +6 -0
- homeassistant-stubs/components/ntfy/diagnostics.pyi +7 -0
- homeassistant-stubs/components/ntfy/notify.pyi +25 -0
- homeassistant-stubs/components/nut/__init__.pyi +7 -3
- homeassistant-stubs/components/nut/config_flow.pyi +11 -14
- homeassistant-stubs/components/nut/const.pyi +0 -1
- homeassistant-stubs/components/nut/device_action.pyi +5 -1
- homeassistant-stubs/components/nut/sensor.pyi +6 -3
- homeassistant-stubs/components/ohme/__init__.pyi +15 -0
- homeassistant-stubs/components/ohme/button.pyi +26 -0
- homeassistant-stubs/components/ohme/config_flow.pyi +17 -0
- homeassistant-stubs/components/ohme/const.pyi +5 -0
- homeassistant-stubs/components/ohme/coordinator.pyi +44 -0
- homeassistant-stubs/components/ohme/diagnostics.pyi +5 -0
- homeassistant-stubs/components/ohme/entity.pyi +23 -0
- homeassistant-stubs/components/ohme/number.pyi +30 -0
- homeassistant-stubs/components/ohme/select.pyi +33 -0
- homeassistant-stubs/components/ohme/sensor.pyi +26 -0
- homeassistant-stubs/components/ohme/services.pyi +19 -0
- homeassistant-stubs/components/ohme/switch.pyi +45 -0
- homeassistant-stubs/components/ohme/time.pyi +30 -0
- homeassistant-stubs/components/onboarding/__init__.pyi +1 -0
- homeassistant-stubs/components/onboarding/views.pyi +29 -43
- homeassistant-stubs/components/oncue/__init__.pyi +5 -11
- homeassistant-stubs/components/oncue/config_flow.pyi +2 -13
- homeassistant-stubs/components/onewire/sensor.pyi +1 -2
- homeassistant-stubs/components/onkyo/config_flow.pyi +2 -3
- homeassistant-stubs/components/onkyo/const.pyi +0 -2
- homeassistant-stubs/components/onkyo/media_player.pyi +3 -14
- homeassistant-stubs/components/openai_conversation/config_flow.pyi +3 -3
- homeassistant-stubs/components/openai_conversation/const.pyi +1 -0
- homeassistant-stubs/components/openai_conversation/conversation.pyi +1 -1
- homeassistant-stubs/components/overkiz/climate/atlantic_electrical_heater_with_adjustable_temperature_setpoint.pyi +4 -1
- homeassistant-stubs/components/overkiz/climate/atlantic_electrical_towel_dryer.pyi +2 -1
- homeassistant-stubs/components/overkiz/config_flow.pyi +1 -7
- homeassistant-stubs/components/overkiz/entity.pyi +2 -1
- homeassistant-stubs/components/overkiz/number.pyi +1 -1
- homeassistant-stubs/components/overkiz/sensor.pyi +1 -1
- homeassistant-stubs/components/pegel_online/__init__.pyi +13 -0
- homeassistant-stubs/components/pegel_online/config_flow.pyi +15 -0
- homeassistant-stubs/components/pegel_online/const.pyi +6 -0
- homeassistant-stubs/components/pegel_online/coordinator.pyi +16 -0
- homeassistant-stubs/components/pegel_online/diagnostics.pyi +5 -0
- homeassistant-stubs/components/pegel_online/entity.pyi +12 -0
- homeassistant-stubs/components/pegel_online/sensor.pyi +28 -0
- homeassistant-stubs/components/powerwall/sensor.pyi +0 -1
- homeassistant-stubs/components/recorder/core.pyi +2 -0
- homeassistant-stubs/components/recorder/entity_registry.pyi +2 -1
- homeassistant-stubs/components/recorder/tasks.pyi +2 -1
- homeassistant-stubs/components/remote_calendar/calendar.pyi +2 -0
- homeassistant-stubs/components/remote_calendar/config_flow.pyi +1 -0
- homeassistant-stubs/components/remote_calendar/coordinator.pyi +1 -0
- homeassistant-stubs/components/remote_calendar/ics.pyi +10 -0
- homeassistant-stubs/components/renault/binary_sensor.pyi +8 -2
- homeassistant-stubs/components/renault/config_flow.pyi +2 -1
- homeassistant-stubs/components/renault/const.pyi +2 -1
- homeassistant-stubs/components/renault/coordinator.pyi +4 -1
- homeassistant-stubs/components/renault/entity.pyi +2 -0
- homeassistant-stubs/components/renault/renault_hub.pyi +5 -2
- homeassistant-stubs/components/renault/renault_vehicle.pyi +5 -2
- homeassistant-stubs/components/renault/services.pyi +5 -0
- homeassistant-stubs/components/rest/binary_sensor.pyi +2 -2
- homeassistant-stubs/components/rest/schema.pyi +1 -1
- homeassistant-stubs/components/rest/sensor.pyi +2 -2
- homeassistant-stubs/components/rest/switch.pyi +4 -3
- homeassistant-stubs/components/roborock/__init__.pyi +1 -0
- homeassistant-stubs/components/roborock/config_flow.pyi +1 -0
- homeassistant-stubs/components/samsungtv/__init__.pyi +6 -7
- homeassistant-stubs/components/samsungtv/config_flow.pyi +1 -1
- homeassistant-stubs/components/samsungtv/entity.pyi +3 -2
- homeassistant-stubs/components/samsungtv/media_player.pyi +1 -2
- homeassistant-stubs/components/samsungtv/remote.pyi +2 -2
- homeassistant-stubs/components/scrape/__init__.pyi +1 -1
- homeassistant-stubs/components/scrape/sensor.pyi +4 -5
- homeassistant-stubs/components/shelly/__init__.pyi +1 -0
- homeassistant-stubs/components/shelly/climate.pyi +2 -1
- homeassistant-stubs/components/shelly/const.pyi +2 -0
- homeassistant-stubs/components/shelly/coordinator.pyi +1 -0
- homeassistant-stubs/components/shelly/entity.pyi +5 -2
- homeassistant-stubs/components/shelly/number.pyi +4 -3
- homeassistant-stubs/components/shelly/repairs.pyi +19 -0
- homeassistant-stubs/components/shelly/select.pyi +3 -1
- homeassistant-stubs/components/shelly/text.pyi +4 -1
- homeassistant-stubs/components/shelly/utils.pyi +2 -3
- homeassistant-stubs/components/smlight/binary_sensor.pyi +1 -0
- homeassistant-stubs/components/smlight/button.pyi +1 -0
- homeassistant-stubs/components/smlight/sensor.pyi +2 -0
- homeassistant-stubs/components/smlight/switch.pyi +1 -0
- homeassistant-stubs/components/smlight/update.pyi +3 -1
- homeassistant-stubs/components/smtp/__init__.pyi +0 -0
- homeassistant-stubs/components/smtp/const.pyi +17 -0
- homeassistant-stubs/components/smtp/notify.pyi +47 -0
- homeassistant-stubs/components/sql/__init__.pyi +1 -1
- homeassistant-stubs/components/sql/sensor.pyi +4 -4
- homeassistant-stubs/components/ssdp/__init__.pyi +6 -96
- homeassistant-stubs/components/ssdp/common.pyi +5 -0
- homeassistant-stubs/components/ssdp/const.pyi +3 -0
- homeassistant-stubs/components/ssdp/scanner.pyi +75 -0
- homeassistant-stubs/components/ssdp/server.pyi +30 -0
- homeassistant-stubs/components/ssdp/websocket_api.pyi +16 -0
- homeassistant-stubs/components/switcher_kis/button.pyi +2 -1
- homeassistant-stubs/components/switcher_kis/climate.pyi +2 -4
- homeassistant-stubs/components/switcher_kis/config_flow.pyi +3 -2
- homeassistant-stubs/components/switcher_kis/cover.pyi +0 -2
- homeassistant-stubs/components/switcher_kis/entity.pyi +4 -0
- homeassistant-stubs/components/switcher_kis/light.pyi +3 -8
- homeassistant-stubs/components/switcher_kis/sensor.pyi +13 -6
- homeassistant-stubs/components/switcher_kis/switch.pyi +9 -15
- homeassistant-stubs/components/switcher_kis/utils.pyi +1 -1
- homeassistant-stubs/components/synology_dsm/common.pyi +3 -0
- homeassistant-stubs/components/synology_dsm/sensor.pyi +9 -1
- homeassistant-stubs/components/todo/__init__.pyi +1 -0
- homeassistant-stubs/components/tplink_omada/config_flow.pyi +1 -2
- homeassistant-stubs/components/tractive/__init__.pyi +1 -1
- homeassistant-stubs/components/tractive/binary_sensor.pyi +9 -3
- homeassistant-stubs/components/tractive/const.pyi +1 -0
- homeassistant-stubs/components/tractive/device_tracker.pyi +1 -1
- homeassistant-stubs/components/tts/__init__.pyi +22 -13
- homeassistant-stubs/components/tts/legacy.pyi +1 -0
- homeassistant-stubs/components/tts/media_source.pyi +5 -2
- homeassistant-stubs/components/unifi/hub/api.pyi +2 -2
- homeassistant-stubs/components/uptimerobot/__init__.pyi +4 -5
- homeassistant-stubs/components/uptimerobot/binary_sensor.pyi +4 -4
- homeassistant-stubs/components/uptimerobot/coordinator.pyi +3 -2
- homeassistant-stubs/components/uptimerobot/diagnostics.pyi +2 -4
- homeassistant-stubs/components/uptimerobot/entity.pyi +0 -2
- homeassistant-stubs/components/uptimerobot/sensor.pyi +3 -4
- homeassistant-stubs/components/uptimerobot/switch.pyi +5 -4
- homeassistant-stubs/components/vodafone_station/__init__.pyi +1 -0
- homeassistant-stubs/components/vodafone_station/config_flow.pyi +1 -0
- homeassistant-stubs/components/vodafone_station/coordinator.pyi +2 -1
- homeassistant-stubs/components/vodafone_station/utils.pyi +5 -0
- homeassistant-stubs/components/websocket_api/commands.pyi +3 -1
- homeassistant-stubs/components/websocket_api/http.pyi +4 -1
- homeassistant-stubs/components/wemo/__init__.pyi +1 -1
- homeassistant-stubs/components/wemo/coordinator.pyi +1 -1
- homeassistant-stubs/components/wemo/models.pyi +3 -4
- homeassistant-stubs/components/workday/config_flow.pyi +1 -1
- homeassistant-stubs/components/xiaomi_ble/const.pyi +2 -0
- homeassistant-stubs/components/xiaomi_ble/device_trigger.pyi +1 -1
- homeassistant-stubs/components/xiaomi_ble/sensor.pyi +2 -2
- homeassistant-stubs/components/zeroconf/__init__.pyi +6 -49
- homeassistant-stubs/components/zeroconf/const.pyi +3 -0
- homeassistant-stubs/components/zeroconf/discovery.pyi +63 -0
- homeassistant-stubs/components/zeroconf/websocket_api.pyi +40 -0
- homeassistant-stubs/components/zone/__init__.pyi +4 -1
- homeassistant-stubs/components/zwave_js/__init__.pyi +2 -2
- homeassistant-stubs/components/zwave_js/api.pyi +9 -3
- homeassistant-stubs/components/zwave_js/config_flow.pyi +42 -59
- homeassistant-stubs/components/zwave_js/helpers.pyi +2 -1
- homeassistant-stubs/config_entries.pyi +13 -9
- homeassistant-stubs/const.pyi +5 -0
- homeassistant-stubs/core.pyi +1 -3
- homeassistant-stubs/core_config.pyi +1 -1
- homeassistant-stubs/data_entry_flow.pyi +5 -1
- homeassistant-stubs/helpers/aiohttp_client.pyi +9 -1
- homeassistant-stubs/helpers/area_registry.pyi +5 -1
- homeassistant-stubs/helpers/config_entry_oauth2_flow.pyi +1 -1
- homeassistant-stubs/helpers/config_validation.pyi +1 -0
- homeassistant-stubs/helpers/device_registry.pyi +1 -3
- homeassistant-stubs/helpers/entity.pyi +1 -1
- homeassistant-stubs/helpers/entity_platform.pyi +3 -3
- homeassistant-stubs/helpers/entity_registry.pyi +6 -6
- homeassistant-stubs/helpers/event.pyi +2 -0
- homeassistant-stubs/helpers/floor_registry.pyi +12 -3
- homeassistant-stubs/helpers/llm.pyi +24 -1
- homeassistant-stubs/helpers/network.pyi +1 -1
- homeassistant-stubs/helpers/script.pyi +2 -1
- homeassistant-stubs/helpers/template.pyi +1 -0
- homeassistant-stubs/helpers/trigger_template_entity.pyi +17 -2
- homeassistant-stubs/loader.pyi +2 -11
- homeassistant-stubs/setup.pyi +7 -6
- homeassistant-stubs/util/ssl.pyi +2 -0
- {homeassistant_stubs-2025.4.4.dist-info → homeassistant_stubs-2025.5.0.dist-info}/METADATA +3 -3
- {homeassistant_stubs-2025.4.4.dist-info → homeassistant_stubs-2025.5.0.dist-info}/RECORD +397 -339
- homeassistant-stubs/components/oncue/binary_sensor.pyi +0 -16
- homeassistant-stubs/components/oncue/const.pyi +0 -6
- homeassistant-stubs/components/oncue/entity.pyi +0 -20
- homeassistant-stubs/components/oncue/sensor.pyi +0 -21
- homeassistant-stubs/components/oncue/types.pyi +0 -5
- {homeassistant_stubs-2025.4.4.dist-info → homeassistant_stubs-2025.5.0.dist-info}/WHEEL +0 -0
- {homeassistant_stubs-2025.4.4.dist-info → homeassistant_stubs-2025.5.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,4 +1,4 @@
|
|
1
|
-
from .const import LOGGER as LOGGER
|
1
|
+
from .const import DOMAIN as DOMAIN, LOGGER as LOGGER
|
2
2
|
from .coordinator import SmConfigEntry as SmConfigEntry, SmFirmwareUpdateCoordinator as SmFirmwareUpdateCoordinator, SmFwData as SmFwData
|
3
3
|
from .entity import SmEntity as SmEntity
|
4
4
|
from _typeshed import Incomplete
|
@@ -13,6 +13,8 @@ from pysmlight.models import Firmware as Firmware, Info as Info
|
|
13
13
|
from pysmlight.sse import MessageEvent as MessageEvent
|
14
14
|
from typing import Any
|
15
15
|
|
16
|
+
PARALLEL_UPDATES: int
|
17
|
+
|
16
18
|
def zigbee_latest_version(data: SmFwData, idx: int) -> Firmware | None: ...
|
17
19
|
|
18
20
|
@dataclass(frozen=True, kw_only=True)
|
File without changes
|
@@ -0,0 +1,17 @@
|
|
1
|
+
from _typeshed import Incomplete
|
2
|
+
from typing import Final
|
3
|
+
|
4
|
+
DOMAIN: Final[str]
|
5
|
+
ATTR_IMAGES: Final[str]
|
6
|
+
ATTR_HTML: Final[str]
|
7
|
+
ATTR_SENDER_NAME: Final[str]
|
8
|
+
CONF_ENCRYPTION: Final[str]
|
9
|
+
CONF_DEBUG: Final[str]
|
10
|
+
CONF_SERVER: Final[str]
|
11
|
+
CONF_SENDER_NAME: Final[str]
|
12
|
+
DEFAULT_HOST: Final[str]
|
13
|
+
DEFAULT_PORT: Final[int]
|
14
|
+
DEFAULT_TIMEOUT: Final[int]
|
15
|
+
DEFAULT_DEBUG: Final[bool]
|
16
|
+
DEFAULT_ENCRYPTION: Final[str]
|
17
|
+
ENCRYPTION_OPTIONS: Final[Incomplete]
|
@@ -0,0 +1,47 @@
|
|
1
|
+
import smtplib
|
2
|
+
import ssl
|
3
|
+
from .const import ATTR_HTML as ATTR_HTML, ATTR_IMAGES as ATTR_IMAGES, CONF_DEBUG as CONF_DEBUG, CONF_ENCRYPTION as CONF_ENCRYPTION, CONF_SENDER_NAME as CONF_SENDER_NAME, CONF_SERVER as CONF_SERVER, DEFAULT_DEBUG as DEFAULT_DEBUG, DEFAULT_ENCRYPTION as DEFAULT_ENCRYPTION, DEFAULT_HOST as DEFAULT_HOST, DEFAULT_PORT as DEFAULT_PORT, DEFAULT_TIMEOUT as DEFAULT_TIMEOUT, DOMAIN as DOMAIN, ENCRYPTION_OPTIONS as ENCRYPTION_OPTIONS
|
4
|
+
from _typeshed import Incomplete
|
5
|
+
from email.mime.application import MIMEApplication
|
6
|
+
from email.mime.image import MIMEImage
|
7
|
+
from email.mime.multipart import MIMEMultipart
|
8
|
+
from email.mime.text import MIMEText
|
9
|
+
from homeassistant.components.notify import ATTR_DATA as ATTR_DATA, ATTR_TARGET as ATTR_TARGET, ATTR_TITLE as ATTR_TITLE, ATTR_TITLE_DEFAULT as ATTR_TITLE_DEFAULT, BaseNotificationService as BaseNotificationService
|
10
|
+
from homeassistant.const import CONF_PASSWORD as CONF_PASSWORD, CONF_PORT as CONF_PORT, CONF_RECIPIENT as CONF_RECIPIENT, CONF_SENDER as CONF_SENDER, CONF_TIMEOUT as CONF_TIMEOUT, CONF_USERNAME as CONF_USERNAME, CONF_VERIFY_SSL as CONF_VERIFY_SSL, Platform as Platform
|
11
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
12
|
+
from homeassistant.exceptions import ServiceValidationError as ServiceValidationError
|
13
|
+
from homeassistant.helpers.reload import setup_reload_service as setup_reload_service
|
14
|
+
from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
|
15
|
+
from homeassistant.util.ssl import create_client_context as create_client_context
|
16
|
+
from typing import Any
|
17
|
+
|
18
|
+
PLATFORMS: Incomplete
|
19
|
+
_LOGGER: Incomplete
|
20
|
+
PLATFORM_SCHEMA: Incomplete
|
21
|
+
|
22
|
+
def get_service(hass: HomeAssistant, config: ConfigType, discovery_info: DiscoveryInfoType | None = None) -> MailNotificationService | None: ...
|
23
|
+
|
24
|
+
class MailNotificationService(BaseNotificationService):
|
25
|
+
_server: Incomplete
|
26
|
+
_port: Incomplete
|
27
|
+
_timeout: Incomplete
|
28
|
+
_sender: Incomplete
|
29
|
+
encryption: Incomplete
|
30
|
+
username: Incomplete
|
31
|
+
password: Incomplete
|
32
|
+
recipients: Incomplete
|
33
|
+
_sender_name: Incomplete
|
34
|
+
debug: Incomplete
|
35
|
+
_verify_ssl: Incomplete
|
36
|
+
tries: int
|
37
|
+
_ssl_context: Incomplete
|
38
|
+
def __init__(self, server: str, port: int, timeout: int, sender: str, encryption: str, username: str | None, password: str | None, recipients: list[str], sender_name: str | None, debug: bool, verify_ssl: bool, ssl_context: ssl.SSLContext | None) -> None: ...
|
39
|
+
def connect(self) -> smtplib.SMTP_SSL | smtplib.SMTP: ...
|
40
|
+
def connection_is_valid(self) -> bool: ...
|
41
|
+
def send_message(self, message: str, **kwargs: Any) -> None: ...
|
42
|
+
def _send_email(self, msg: MIMEMultipart | MIMEText, recipients: list[str]) -> None: ...
|
43
|
+
|
44
|
+
def _build_text_msg(message: str) -> MIMEText: ...
|
45
|
+
def _attach_file(hass: HomeAssistant, atch_name: str, content_id: str | None = None) -> MIMEImage | MIMEApplication | None: ...
|
46
|
+
def _build_multipart_msg(hass: HomeAssistant, message: str, images: list[str]) -> MIMEMultipart: ...
|
47
|
+
def _build_html_msg(hass: HomeAssistant, text: str, html: str, images: list[str]) -> MIMEMultipart: ...
|
@@ -7,7 +7,7 @@ from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
7
7
|
from homeassistant.const import CONF_DEVICE_CLASS as CONF_DEVICE_CLASS, CONF_ICON as CONF_ICON, CONF_NAME as CONF_NAME, CONF_UNIQUE_ID as CONF_UNIQUE_ID, CONF_UNIT_OF_MEASUREMENT as CONF_UNIT_OF_MEASUREMENT, CONF_VALUE_TEMPLATE as CONF_VALUE_TEMPLATE, Platform as Platform
|
8
8
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
9
9
|
from homeassistant.helpers import discovery as discovery
|
10
|
-
from homeassistant.helpers.trigger_template_entity import CONF_AVAILABILITY as CONF_AVAILABILITY, CONF_PICTURE as CONF_PICTURE
|
10
|
+
from homeassistant.helpers.trigger_template_entity import CONF_AVAILABILITY as CONF_AVAILABILITY, CONF_PICTURE as CONF_PICTURE, ValueTemplate as ValueTemplate
|
11
11
|
from homeassistant.helpers.typing import ConfigType as ConfigType
|
12
12
|
|
13
13
|
_LOGGER: Incomplete
|
@@ -11,7 +11,7 @@ from homeassistant.exceptions import TemplateError as TemplateError
|
|
11
11
|
from homeassistant.helpers.device_registry import DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
|
12
12
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback, AddEntitiesCallback as AddEntitiesCallback
|
13
13
|
from homeassistant.helpers.template import Template as Template
|
14
|
-
from homeassistant.helpers.trigger_template_entity import CONF_AVAILABILITY as CONF_AVAILABILITY, CONF_PICTURE as CONF_PICTURE, ManualTriggerSensorEntity as ManualTriggerSensorEntity
|
14
|
+
from homeassistant.helpers.trigger_template_entity import CONF_AVAILABILITY as CONF_AVAILABILITY, CONF_PICTURE as CONF_PICTURE, ManualTriggerSensorEntity as ManualTriggerSensorEntity, ValueTemplate as ValueTemplate
|
15
15
|
from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
|
16
16
|
from sqlalchemy.engine import Result as Result
|
17
17
|
from sqlalchemy.orm import Session as Session, scoped_session
|
@@ -27,7 +27,7 @@ async def async_setup_platform(hass: HomeAssistant, config: ConfigType, async_ad
|
|
27
27
|
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
28
28
|
@callback
|
29
29
|
def _async_get_or_init_domain_data(hass: HomeAssistant) -> SQLData: ...
|
30
|
-
async def async_setup_sensor(hass: HomeAssistant, trigger_entity_config: ConfigType, query_str: str, column_name: str, value_template:
|
30
|
+
async def async_setup_sensor(hass: HomeAssistant, trigger_entity_config: ConfigType, query_str: str, column_name: str, value_template: ValueTemplate | None, unique_id: str | None, db_url: str, yaml: bool, async_add_entities: AddEntitiesCallback | AddConfigEntryEntitiesCallback) -> None: ...
|
31
31
|
def _validate_and_get_session_maker_for_db_url(db_url: str) -> scoped_session | None: ...
|
32
32
|
def _generate_lambda_stmt(query: str) -> StatementLambdaElement: ...
|
33
33
|
|
@@ -43,7 +43,7 @@ class SQLSensor(ManualTriggerSensorEntity):
|
|
43
43
|
_attr_name: Incomplete
|
44
44
|
_attr_has_entity_name: bool
|
45
45
|
_attr_device_info: Incomplete
|
46
|
-
def __init__(self, trigger_entity_config: ConfigType, sessmaker: scoped_session, query: str, column: str, value_template:
|
46
|
+
def __init__(self, trigger_entity_config: ConfigType, sessmaker: scoped_session, query: str, column: str, value_template: ValueTemplate | None, yaml: bool, use_database_executor: bool) -> None: ...
|
47
47
|
@property
|
48
48
|
def name(self) -> str | None: ...
|
49
49
|
async def async_added_to_hass(self) -> None: ...
|
@@ -51,4 +51,4 @@ class SQLSensor(ManualTriggerSensorEntity):
|
|
51
51
|
def extra_state_attributes(self) -> dict[str, Any] | None: ...
|
52
52
|
async def async_update(self) -> None: ...
|
53
53
|
_attr_native_value: Incomplete
|
54
|
-
def _update(self) ->
|
54
|
+
def _update(self) -> None: ...
|
@@ -1,36 +1,17 @@
|
|
1
|
+
from . import websocket_api as websocket_api
|
2
|
+
from .const import DOMAIN as DOMAIN, SSDP_SCANNER as SSDP_SCANNER, UPNP_SERVER as UPNP_SERVER
|
3
|
+
from .scanner import IntegrationMatchers as IntegrationMatchers, Scanner as Scanner, SsdpChange as SsdpChange, SsdpHassJobCallback as SsdpHassJobCallback
|
4
|
+
from .server import Server as Server
|
1
5
|
from _typeshed import Incomplete
|
2
|
-
from
|
3
|
-
from
|
4
|
-
from async_upnp_client.server import UpnpServer, UpnpServerDevice, UpnpServerService as UpnpServerService
|
5
|
-
from async_upnp_client.ssdp_listener import SsdpDevice as SsdpDevice, SsdpListener
|
6
|
-
from async_upnp_client.utils import CaseInsensitiveDict
|
7
|
-
from collections.abc import Callable as Callable, Coroutine, Mapping
|
8
|
-
from homeassistant import config_entries as config_entries
|
9
|
-
from homeassistant.components import network as network
|
10
|
-
from homeassistant.const import EVENT_HOMEASSISTANT_STARTED as EVENT_HOMEASSISTANT_STARTED, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP, MATCH_ALL as MATCH_ALL
|
11
|
-
from homeassistant.core import Event as Event, HassJob as HassJob, HomeAssistant as HomeAssistant, callback as core_callback
|
12
|
-
from homeassistant.helpers import discovery_flow as discovery_flow
|
13
|
-
from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
|
6
|
+
from collections.abc import Callable as Callable, Coroutine
|
7
|
+
from homeassistant.core import HassJob as HassJob, HomeAssistant as HomeAssistant
|
14
8
|
from homeassistant.helpers.deprecation import DeprecatedConstant as DeprecatedConstant, all_with_deprecated_constants as all_with_deprecated_constants, check_if_deprecated_constant as check_if_deprecated_constant, dir_with_deprecated_constants as dir_with_deprecated_constants
|
15
|
-
from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
|
16
|
-
from homeassistant.helpers.event import async_track_time_interval as async_track_time_interval
|
17
|
-
from homeassistant.helpers.network import NoURLAvailableError as NoURLAvailableError, get_url as get_url
|
18
9
|
from homeassistant.helpers.service_info.ssdp import SsdpServiceInfo as _SsdpServiceInfo
|
19
|
-
from homeassistant.helpers.system_info import async_get_system_info as async_get_system_info
|
20
10
|
from homeassistant.helpers.typing import ConfigType as ConfigType
|
21
11
|
from homeassistant.loader import async_get_ssdp as async_get_ssdp, bind_hass as bind_hass
|
22
|
-
from homeassistant.util.async_ import create_eager_task as create_eager_task
|
23
12
|
from homeassistant.util.logging import catch_log_exception as catch_log_exception
|
24
|
-
from ipaddress import IPv4Address, IPv6Address
|
25
13
|
from typing import Any
|
26
14
|
|
27
|
-
DOMAIN: str
|
28
|
-
SSDP_SCANNER: str
|
29
|
-
UPNP_SERVER: str
|
30
|
-
UPNP_SERVER_MIN_PORT: int
|
31
|
-
UPNP_SERVER_MAX_PORT: int
|
32
|
-
SCAN_INTERVAL: Incomplete
|
33
|
-
IPV4_BROADCAST: Incomplete
|
34
15
|
ATTR_SSDP_LOCATION: str
|
35
16
|
ATTR_SSDP_ST: str
|
36
17
|
ATTR_SSDP_NT: str
|
@@ -56,13 +37,8 @@ _DEPRECATED_ATTR_UPNP_UDN: Incomplete
|
|
56
37
|
_DEPRECATED_ATTR_UPNP_UPC: Incomplete
|
57
38
|
_DEPRECATED_ATTR_UPNP_PRESENTATION_URL: Incomplete
|
58
39
|
ATTR_HA_MATCHING_DOMAINS: str
|
59
|
-
PRIMARY_MATCH_KEYS: Incomplete
|
60
|
-
_LOGGER: Incomplete
|
61
40
|
CONFIG_SCHEMA: Incomplete
|
62
41
|
_DEPRECATED_SsdpServiceInfo: Incomplete
|
63
|
-
SsdpChange: Incomplete
|
64
|
-
type SsdpHassJobCallback = HassJob[[_SsdpServiceInfo, SsdpChange], Coroutine[Any, Any, None] | None]
|
65
|
-
SSDP_SOURCE_SSDP_CHANGE_MAPPING: Mapping[SsdpSource, SsdpChange]
|
66
42
|
|
67
43
|
def _format_err(name: str, *args: Any) -> str: ...
|
68
44
|
@bind_hass
|
@@ -73,73 +49,7 @@ async def async_get_discovery_info_by_udn_st(hass: HomeAssistant, udn: str, st:
|
|
73
49
|
async def async_get_discovery_info_by_st(hass: HomeAssistant, st: str) -> list[_SsdpServiceInfo]: ...
|
74
50
|
@bind_hass
|
75
51
|
async def async_get_discovery_info_by_udn(hass: HomeAssistant, udn: str) -> list[_SsdpServiceInfo]: ...
|
76
|
-
async def async_build_source_set(hass: HomeAssistant) -> set[IPv4Address | IPv6Address]: ...
|
77
52
|
async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
|
78
|
-
@core_callback
|
79
|
-
def _async_process_callbacks(hass: HomeAssistant, callbacks: list[SsdpHassJobCallback], discovery_info: _SsdpServiceInfo, ssdp_change: SsdpChange) -> None: ...
|
80
|
-
@core_callback
|
81
|
-
def _async_headers_match(headers: CaseInsensitiveDict, lower_match_dict: dict[str, str]) -> bool: ...
|
82
|
-
|
83
|
-
class IntegrationMatchers:
|
84
|
-
_match_by_key: dict[str, dict[str, list[tuple[str, dict[str, str]]]]] | None
|
85
|
-
def __init__(self) -> None: ...
|
86
|
-
@core_callback
|
87
|
-
def async_setup(self, integration_matchers: dict[str, list[dict[str, str]]]) -> None: ...
|
88
|
-
@core_callback
|
89
|
-
def async_matching_domains(self, info_with_desc: CaseInsensitiveDict) -> set[str]: ...
|
90
|
-
|
91
|
-
class Scanner:
|
92
|
-
hass: Incomplete
|
93
|
-
_cancel_scan: Callable[[], None] | None
|
94
|
-
_ssdp_listeners: list[SsdpListener]
|
95
|
-
_device_tracker: Incomplete
|
96
|
-
_callbacks: list[tuple[SsdpHassJobCallback, dict[str, str]]]
|
97
|
-
_description_cache: DescriptionCache | None
|
98
|
-
integration_matchers: Incomplete
|
99
|
-
def __init__(self, hass: HomeAssistant, integration_matchers: IntegrationMatchers) -> None: ...
|
100
|
-
@property
|
101
|
-
def _ssdp_devices(self) -> list[SsdpDevice]: ...
|
102
|
-
async def async_register_callback(self, callback: SsdpHassJobCallback, match_dict: dict[str, str] | None = None) -> Callable[[], None]: ...
|
103
|
-
async def async_stop(self, *_: Any) -> None: ...
|
104
|
-
async def _async_stop_ssdp_listeners(self) -> None: ...
|
105
|
-
async def async_scan(self, *_: Any) -> None: ...
|
106
|
-
async def async_scan_multicast(self, *_: Any) -> None: ...
|
107
|
-
async def async_scan_broadcast(self, *_: Any) -> None: ...
|
108
|
-
async def async_start(self) -> None: ...
|
109
|
-
async def _async_start_ssdp_listeners(self) -> None: ...
|
110
|
-
@core_callback
|
111
|
-
def _async_get_matching_callbacks(self, combined_headers: CaseInsensitiveDict) -> list[SsdpHassJobCallback]: ...
|
112
|
-
def _ssdp_listener_callback(self, ssdp_device: SsdpDevice, dst: DeviceOrServiceType, source: SsdpSource) -> None: ...
|
113
|
-
async def _ssdp_listener_process_callback_with_lookup(self, ssdp_device: SsdpDevice, dst: DeviceOrServiceType, source: SsdpSource) -> None: ...
|
114
|
-
def _ssdp_listener_process_callback(self, ssdp_device: SsdpDevice, dst: DeviceOrServiceType, source: SsdpSource, info_desc: Mapping[str, Any], skip_callbacks: bool = False) -> None: ...
|
115
|
-
def _async_dismiss_discoveries(self, byebye_discovery_info: _SsdpServiceInfo) -> None: ...
|
116
|
-
async def _async_get_description_dict(self, location: str | None) -> Mapping[str, str]: ...
|
117
|
-
async def _async_headers_to_discovery_info(self, ssdp_device: SsdpDevice, headers: CaseInsensitiveDict) -> _SsdpServiceInfo: ...
|
118
|
-
async def async_get_discovery_info_by_udn_st(self, udn: str, st: str) -> _SsdpServiceInfo | None: ...
|
119
|
-
async def async_get_discovery_info_by_st(self, st: str) -> list[_SsdpServiceInfo]: ...
|
120
|
-
async def async_get_discovery_info_by_udn(self, udn: str) -> list[_SsdpServiceInfo]: ...
|
121
|
-
@core_callback
|
122
|
-
def _handle_config_entry_removed(self, entry: config_entries.ConfigEntry) -> None: ...
|
123
|
-
|
124
|
-
def discovery_info_from_headers_and_description(ssdp_device: SsdpDevice, combined_headers: CaseInsensitiveDict, info_desc: Mapping[str, Any]) -> _SsdpServiceInfo: ...
|
125
|
-
def _udn_from_usn(usn: str | None) -> str | None: ...
|
126
|
-
|
127
|
-
class HassUpnpServiceDevice(UpnpServerDevice):
|
128
|
-
DEVICE_DEFINITION: Incomplete
|
129
|
-
EMBEDDED_DEVICES: list[type[UpnpServerDevice]]
|
130
|
-
SERVICES: list[type[UpnpServerService]]
|
131
|
-
|
132
|
-
async def _async_find_next_available_port(source: AddressTupleVXType) -> int: ...
|
133
|
-
|
134
|
-
class Server:
|
135
|
-
hass: Incomplete
|
136
|
-
_upnp_servers: list[UpnpServer]
|
137
|
-
def __init__(self, hass: HomeAssistant) -> None: ...
|
138
|
-
async def async_start(self) -> None: ...
|
139
|
-
async def _async_get_instance_udn(self) -> str: ...
|
140
|
-
async def _async_start_upnp_servers(self, event: Event) -> None: ...
|
141
|
-
async def async_stop(self, *_: Any) -> None: ...
|
142
|
-
async def _async_stop_upnp_servers(self) -> None: ...
|
143
53
|
|
144
54
|
__getattr__: Incomplete
|
145
55
|
__dir__: Incomplete
|
@@ -0,0 +1,75 @@
|
|
1
|
+
from .common import async_build_source_set as async_build_source_set
|
2
|
+
from .const import DOMAIN as DOMAIN
|
3
|
+
from _typeshed import Incomplete
|
4
|
+
from async_upnp_client.const import AddressTupleVXType as AddressTupleVXType, DeviceOrServiceType as DeviceOrServiceType, SsdpSource
|
5
|
+
from async_upnp_client.description_cache import DescriptionCache
|
6
|
+
from async_upnp_client.ssdp_listener import SsdpDevice as SsdpDevice, SsdpListener
|
7
|
+
from async_upnp_client.utils import CaseInsensitiveDict
|
8
|
+
from collections.abc import Callable as Callable, Coroutine, Mapping
|
9
|
+
from homeassistant import config_entries as config_entries
|
10
|
+
from homeassistant.const import EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP, MATCH_ALL as MATCH_ALL
|
11
|
+
from homeassistant.core import HassJob as HassJob, HomeAssistant as HomeAssistant, callback as core_callback
|
12
|
+
from homeassistant.helpers import discovery_flow as discovery_flow
|
13
|
+
from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
|
14
|
+
from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
|
15
|
+
from homeassistant.helpers.event import async_track_time_interval as async_track_time_interval
|
16
|
+
from homeassistant.helpers.service_info.ssdp import SsdpServiceInfo as _SsdpServiceInfo
|
17
|
+
from homeassistant.util.async_ import create_eager_task as create_eager_task
|
18
|
+
from typing import Any
|
19
|
+
|
20
|
+
SCAN_INTERVAL: Incomplete
|
21
|
+
IPV4_BROADCAST: Incomplete
|
22
|
+
PRIMARY_MATCH_KEYS: Incomplete
|
23
|
+
_LOGGER: Incomplete
|
24
|
+
SsdpChange: Incomplete
|
25
|
+
type SsdpHassJobCallback = HassJob[[_SsdpServiceInfo, SsdpChange], Coroutine[Any, Any, None] | None]
|
26
|
+
SSDP_SOURCE_SSDP_CHANGE_MAPPING: Mapping[SsdpSource, SsdpChange]
|
27
|
+
|
28
|
+
@core_callback
|
29
|
+
def _async_process_callbacks(hass: HomeAssistant, callbacks: list[SsdpHassJobCallback], discovery_info: _SsdpServiceInfo, ssdp_change: SsdpChange) -> None: ...
|
30
|
+
@core_callback
|
31
|
+
def _async_headers_match(headers: CaseInsensitiveDict, lower_match_dict: dict[str, str]) -> bool: ...
|
32
|
+
|
33
|
+
class IntegrationMatchers:
|
34
|
+
_match_by_key: dict[str, dict[str, list[tuple[str, dict[str, str]]]]] | None
|
35
|
+
def __init__(self) -> None: ...
|
36
|
+
@core_callback
|
37
|
+
def async_setup(self, integration_matchers: dict[str, list[dict[str, str]]]) -> None: ...
|
38
|
+
@core_callback
|
39
|
+
def async_matching_domains(self, info_with_desc: CaseInsensitiveDict) -> set[str]: ...
|
40
|
+
|
41
|
+
class Scanner:
|
42
|
+
hass: Incomplete
|
43
|
+
_cancel_scan: Callable[[], None] | None
|
44
|
+
_ssdp_listeners: list[SsdpListener]
|
45
|
+
_device_tracker: Incomplete
|
46
|
+
_callbacks: list[tuple[SsdpHassJobCallback, dict[str, str]]]
|
47
|
+
_description_cache: DescriptionCache | None
|
48
|
+
integration_matchers: Incomplete
|
49
|
+
def __init__(self, hass: HomeAssistant, integration_matchers: IntegrationMatchers) -> None: ...
|
50
|
+
@property
|
51
|
+
def _ssdp_devices(self) -> list[SsdpDevice]: ...
|
52
|
+
async def async_register_callback(self, callback: SsdpHassJobCallback, match_dict: dict[str, str] | None = None) -> Callable[[], None]: ...
|
53
|
+
async def async_stop(self, *_: Any) -> None: ...
|
54
|
+
async def _async_stop_ssdp_listeners(self) -> None: ...
|
55
|
+
async def async_scan(self, *_: Any) -> None: ...
|
56
|
+
async def async_scan_multicast(self, *_: Any) -> None: ...
|
57
|
+
async def async_scan_broadcast(self, *_: Any) -> None: ...
|
58
|
+
async def async_start(self) -> None: ...
|
59
|
+
async def _async_start_ssdp_listeners(self) -> None: ...
|
60
|
+
@core_callback
|
61
|
+
def _async_get_matching_callbacks(self, combined_headers: CaseInsensitiveDict) -> list[SsdpHassJobCallback]: ...
|
62
|
+
def _ssdp_listener_callback(self, ssdp_device: SsdpDevice, dst: DeviceOrServiceType, source: SsdpSource) -> None: ...
|
63
|
+
async def _ssdp_listener_process_callback_with_lookup(self, ssdp_device: SsdpDevice, dst: DeviceOrServiceType, source: SsdpSource) -> None: ...
|
64
|
+
def _ssdp_listener_process_callback(self, ssdp_device: SsdpDevice, dst: DeviceOrServiceType, source: SsdpSource, info_desc: Mapping[str, Any], skip_callbacks: bool = False) -> None: ...
|
65
|
+
def _async_dismiss_discoveries(self, byebye_discovery_info: _SsdpServiceInfo) -> None: ...
|
66
|
+
async def _async_get_description_dict(self, location: str | None) -> Mapping[str, str]: ...
|
67
|
+
async def _async_headers_to_discovery_info(self, ssdp_device: SsdpDevice, headers: CaseInsensitiveDict) -> _SsdpServiceInfo: ...
|
68
|
+
async def async_get_discovery_info_by_udn_st(self, udn: str, st: str) -> _SsdpServiceInfo | None: ...
|
69
|
+
async def async_get_discovery_info_by_st(self, st: str) -> list[_SsdpServiceInfo]: ...
|
70
|
+
async def async_get_discovery_info_by_udn(self, udn: str) -> list[_SsdpServiceInfo]: ...
|
71
|
+
@core_callback
|
72
|
+
def _handle_config_entry_removed(self, entry: config_entries.ConfigEntry) -> None: ...
|
73
|
+
|
74
|
+
def discovery_info_from_headers_and_description(ssdp_device: SsdpDevice, combined_headers: CaseInsensitiveDict, info_desc: Mapping[str, Any]) -> _SsdpServiceInfo: ...
|
75
|
+
def _udn_from_usn(usn: str | None) -> str | None: ...
|
@@ -0,0 +1,30 @@
|
|
1
|
+
from .common import async_build_source_set as async_build_source_set
|
2
|
+
from _typeshed import Incomplete
|
3
|
+
from async_upnp_client.const import AddressTupleVXType as AddressTupleVXType
|
4
|
+
from async_upnp_client.server import UpnpServer, UpnpServerDevice, UpnpServerService as UpnpServerService
|
5
|
+
from homeassistant.const import EVENT_HOMEASSISTANT_STARTED as EVENT_HOMEASSISTANT_STARTED, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP
|
6
|
+
from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant
|
7
|
+
from homeassistant.helpers.network import NoURLAvailableError as NoURLAvailableError, get_url as get_url
|
8
|
+
from homeassistant.helpers.system_info import async_get_system_info as async_get_system_info
|
9
|
+
from typing import Any
|
10
|
+
|
11
|
+
UPNP_SERVER_MIN_PORT: int
|
12
|
+
UPNP_SERVER_MAX_PORT: int
|
13
|
+
_LOGGER: Incomplete
|
14
|
+
|
15
|
+
class HassUpnpServiceDevice(UpnpServerDevice):
|
16
|
+
DEVICE_DEFINITION: Incomplete
|
17
|
+
EMBEDDED_DEVICES: list[type[UpnpServerDevice]]
|
18
|
+
SERVICES: list[type[UpnpServerService]]
|
19
|
+
|
20
|
+
async def _async_find_next_available_port(source: AddressTupleVXType) -> int: ...
|
21
|
+
|
22
|
+
class Server:
|
23
|
+
hass: Incomplete
|
24
|
+
_upnp_servers: list[UpnpServer]
|
25
|
+
def __init__(self, hass: HomeAssistant) -> None: ...
|
26
|
+
async def async_start(self) -> None: ...
|
27
|
+
async def _async_get_instance_udn(self) -> str: ...
|
28
|
+
async def _async_start_upnp_servers(self, event: Event) -> None: ...
|
29
|
+
async def async_stop(self, *_: Any) -> None: ...
|
30
|
+
async def _async_stop_upnp_servers(self) -> None: ...
|
@@ -0,0 +1,16 @@
|
|
1
|
+
from .const import DOMAIN as DOMAIN, SSDP_SCANNER as SSDP_SCANNER
|
2
|
+
from .scanner import Scanner as Scanner, SsdpChange as SsdpChange
|
3
|
+
from homeassistant.components import websocket_api as websocket_api
|
4
|
+
from homeassistant.core import HassJob as HassJob, HomeAssistant as HomeAssistant, callback as callback
|
5
|
+
from homeassistant.helpers.json import json_bytes as json_bytes
|
6
|
+
from homeassistant.helpers.service_info.ssdp import ATTR_UPNP_FRIENDLY_NAME as ATTR_UPNP_FRIENDLY_NAME, SsdpServiceInfo as SsdpServiceInfo
|
7
|
+
from typing import Any, Final
|
8
|
+
|
9
|
+
FIELD_SSDP_ST: Final[str]
|
10
|
+
FIELD_SSDP_LOCATION: Final[str]
|
11
|
+
|
12
|
+
@callback
|
13
|
+
def async_setup(hass: HomeAssistant) -> None: ...
|
14
|
+
@websocket_api.require_admin
|
15
|
+
@websocket_api.async_response
|
16
|
+
async def ws_subscribe_discovery(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
|
@@ -4,7 +4,8 @@ from .coordinator import SwitcherDataUpdateCoordinator as SwitcherDataUpdateCoor
|
|
4
4
|
from .entity import SwitcherEntity as SwitcherEntity
|
5
5
|
from .utils import get_breeze_remote_manager as get_breeze_remote_manager
|
6
6
|
from _typeshed import Incomplete
|
7
|
-
from aioswitcher.api import SwitcherApi
|
7
|
+
from aioswitcher.api import SwitcherApi
|
8
|
+
from aioswitcher.api.messages import SwitcherBaseResponse as SwitcherBaseResponse
|
8
9
|
from aioswitcher.api.remotes import SwitcherBreezeRemote
|
9
10
|
from collections.abc import Callable as Callable, Coroutine
|
10
11
|
from dataclasses import dataclass
|
@@ -7,7 +7,7 @@ from _typeshed import Incomplete
|
|
7
7
|
from aioswitcher.api.remotes import SwitcherBreezeRemote as SwitcherBreezeRemote
|
8
8
|
from homeassistant.components.climate import ClimateEntity as ClimateEntity, ClimateEntityFeature as ClimateEntityFeature, FAN_AUTO as FAN_AUTO, FAN_HIGH as FAN_HIGH, FAN_LOW as FAN_LOW, FAN_MEDIUM as FAN_MEDIUM, HVACMode as HVACMode, SWING_OFF as SWING_OFF, SWING_VERTICAL as SWING_VERTICAL
|
9
9
|
from homeassistant.const import ATTR_TEMPERATURE as ATTR_TEMPERATURE, UnitOfTemperature as UnitOfTemperature
|
10
|
-
from homeassistant.core import HomeAssistant as HomeAssistant
|
10
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
11
11
|
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
|
12
12
|
from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
|
13
13
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
@@ -31,8 +31,6 @@ class SwitcherClimateEntity(SwitcherEntity, ClimateEntity):
|
|
31
31
|
_attr_temperature_unit: Incomplete
|
32
32
|
_attr_hvac_modes: Incomplete
|
33
33
|
def __init__(self, coordinator: SwitcherDataUpdateCoordinator, remote: SwitcherBreezeRemote) -> None: ...
|
34
|
-
@callback
|
35
|
-
def _handle_coordinator_update(self) -> None: ...
|
36
34
|
_attr_current_temperature: Incomplete
|
37
35
|
_attr_target_temperature: Incomplete
|
38
36
|
_attr_hvac_mode: Incomplete
|
@@ -40,7 +38,7 @@ class SwitcherClimateEntity(SwitcherEntity, ClimateEntity):
|
|
40
38
|
_attr_fan_modes: Incomplete
|
41
39
|
_attr_swing_mode: Incomplete
|
42
40
|
_attr_swing_modes: Incomplete
|
43
|
-
def _update_data(self
|
41
|
+
def _update_data(self) -> None: ...
|
44
42
|
async def _async_control_breeze_device(self, **kwargs: Any) -> None: ...
|
45
43
|
async def async_set_temperature(self, **kwargs: Any) -> None: ...
|
46
44
|
async def async_set_fan_mode(self, fan_mode: str) -> None: ...
|
@@ -1,7 +1,7 @@
|
|
1
1
|
from .const import DOMAIN as DOMAIN
|
2
2
|
from .utils import async_discover_devices as async_discover_devices
|
3
3
|
from _typeshed import Incomplete
|
4
|
-
from aioswitcher.
|
4
|
+
from aioswitcher.device import SwitcherBase as SwitcherBase
|
5
5
|
from collections.abc import Mapping
|
6
6
|
from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
|
7
7
|
from homeassistant.const import CONF_TOKEN as CONF_TOKEN, CONF_USERNAME as CONF_USERNAME
|
@@ -12,9 +12,10 @@ CONFIG_SCHEMA: Final[Incomplete]
|
|
12
12
|
|
13
13
|
class SwitcherFlowHandler(ConfigFlow, domain=DOMAIN):
|
14
14
|
VERSION: int
|
15
|
+
discovered_devices: dict[str, SwitcherBase]
|
15
16
|
username: str | None
|
16
17
|
token: str | None
|
17
|
-
|
18
|
+
def __init__(self) -> None: ...
|
18
19
|
async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
19
20
|
async def async_step_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
20
21
|
async def async_step_credentials(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
|
@@ -18,8 +18,6 @@ class SwitcherBaseCoverEntity(SwitcherEntity, CoverEntity):
|
|
18
18
|
_attr_device_class: Incomplete
|
19
19
|
_attr_supported_features: Incomplete
|
20
20
|
_cover_id: int
|
21
|
-
@callback
|
22
|
-
def _handle_coordinator_update(self) -> None: ...
|
23
21
|
_attr_current_cover_position: Incomplete
|
24
22
|
_attr_is_closed: Incomplete
|
25
23
|
_attr_is_closing: Incomplete
|
@@ -1,6 +1,7 @@
|
|
1
1
|
from .coordinator import SwitcherDataUpdateCoordinator as SwitcherDataUpdateCoordinator
|
2
2
|
from _typeshed import Incomplete
|
3
3
|
from aioswitcher.api.messages import SwitcherBaseResponse as SwitcherBaseResponse
|
4
|
+
from homeassistant.core import callback as callback
|
4
5
|
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
|
5
6
|
from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
|
6
7
|
from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
|
@@ -12,4 +13,7 @@ class SwitcherEntity(CoordinatorEntity[SwitcherDataUpdateCoordinator]):
|
|
12
13
|
_attr_has_entity_name: bool
|
13
14
|
_attr_device_info: Incomplete
|
14
15
|
def __init__(self, coordinator: SwitcherDataUpdateCoordinator) -> None: ...
|
16
|
+
@callback
|
17
|
+
def _handle_coordinator_update(self) -> None: ...
|
18
|
+
def _update_data(self) -> None: ...
|
15
19
|
async def _async_call_api(self, api: str, *args: Any, **kwargs: Any) -> None: ...
|
@@ -18,24 +18,19 @@ class SwitcherBaseLightEntity(SwitcherEntity, LightEntity):
|
|
18
18
|
_attr_supported_color_modes: Incomplete
|
19
19
|
control_result: bool | None
|
20
20
|
_light_id: int
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
def is_on(self) -> bool: ...
|
21
|
+
def __init__(self, coordinator: SwitcherDataUpdateCoordinator, light_id: int) -> None: ...
|
22
|
+
_attr_is_on: Incomplete
|
23
|
+
def _update_data(self) -> None: ...
|
25
24
|
async def async_turn_on(self, **kwargs: Any) -> None: ...
|
26
25
|
async def async_turn_off(self, **kwargs: Any) -> None: ...
|
27
26
|
|
28
27
|
class SwitcherSingleLightEntity(SwitcherBaseLightEntity):
|
29
28
|
_attr_name: Incomplete
|
30
|
-
_light_id: Incomplete
|
31
|
-
control_result: bool | None
|
32
29
|
_attr_unique_id: Incomplete
|
33
30
|
def __init__(self, coordinator: SwitcherDataUpdateCoordinator, light_id: int) -> None: ...
|
34
31
|
|
35
32
|
class SwitcherMultiLightEntity(SwitcherBaseLightEntity):
|
36
33
|
_attr_translation_key: str
|
37
|
-
_light_id: Incomplete
|
38
|
-
control_result: bool | None
|
39
34
|
_attr_translation_placeholders: Incomplete
|
40
35
|
_attr_unique_id: Incomplete
|
41
36
|
def __init__(self, coordinator: SwitcherDataUpdateCoordinator, light_id: int) -> None: ...
|
@@ -2,17 +2,24 @@ from .const import SIGNAL_DEVICE_ADD as SIGNAL_DEVICE_ADD
|
|
2
2
|
from .coordinator import SwitcherDataUpdateCoordinator as SwitcherDataUpdateCoordinator
|
3
3
|
from .entity import SwitcherEntity as SwitcherEntity
|
4
4
|
from _typeshed import Incomplete
|
5
|
+
from aioswitcher.device import SwitcherBase as SwitcherBase
|
6
|
+
from collections.abc import Callable as Callable
|
7
|
+
from dataclasses import dataclass
|
5
8
|
from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
|
6
9
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
7
|
-
from homeassistant.const import UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfPower as UnitOfPower
|
10
|
+
from homeassistant.const import UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfPower as UnitOfPower, UnitOfTemperature as UnitOfTemperature
|
8
11
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
9
12
|
from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
|
10
13
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
11
14
|
from homeassistant.helpers.typing import StateType as StateType
|
12
15
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
+
@dataclass(frozen=True, kw_only=True)
|
17
|
+
class SwitcherSensorEntityDescription(SensorEntityDescription):
|
18
|
+
value_fn: Callable[[SwitcherBase], StateType]
|
19
|
+
|
20
|
+
POWER_SENSORS: list[SwitcherSensorEntityDescription]
|
21
|
+
TIME_SENSORS: list[SwitcherSensorEntityDescription]
|
22
|
+
TEMPERATURE_SENSORS: list[SwitcherSensorEntityDescription]
|
16
23
|
POWER_PLUG_SENSORS = POWER_SENSORS
|
17
24
|
WATER_HEATER_SENSORS: Incomplete
|
18
25
|
THERMOSTAT_SENSORS = TEMPERATURE_SENSORS
|
@@ -20,8 +27,8 @@ THERMOSTAT_SENSORS = TEMPERATURE_SENSORS
|
|
20
27
|
async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
21
28
|
|
22
29
|
class SwitcherSensorEntity(SwitcherEntity, SensorEntity):
|
23
|
-
entity_description:
|
30
|
+
entity_description: SwitcherSensorEntityDescription
|
24
31
|
_attr_unique_id: Incomplete
|
25
|
-
def __init__(self, coordinator: SwitcherDataUpdateCoordinator, description:
|
32
|
+
def __init__(self, coordinator: SwitcherDataUpdateCoordinator, description: SwitcherSensorEntityDescription) -> None: ...
|
26
33
|
@property
|
27
34
|
def native_value(self) -> StateType: ...
|
@@ -27,10 +27,8 @@ class SwitcherBaseSwitchEntity(SwitcherEntity, SwitchEntity):
|
|
27
27
|
control_result: bool | None
|
28
28
|
_attr_unique_id: Incomplete
|
29
29
|
def __init__(self, coordinator: SwitcherDataUpdateCoordinator) -> None: ...
|
30
|
-
|
31
|
-
def
|
32
|
-
@property
|
33
|
-
def is_on(self) -> bool: ...
|
30
|
+
_attr_is_on: Incomplete
|
31
|
+
def _update_data(self) -> None: ...
|
34
32
|
async def async_turn_on(self, **kwargs: Any) -> None: ...
|
35
33
|
async def async_turn_off(self, **kwargs: Any) -> None: ...
|
36
34
|
async def async_set_auto_off_service(self, auto_off: timedelta) -> None: ...
|
@@ -42,32 +40,28 @@ class SwitcherPowerPlugSwitchEntity(SwitcherBaseSwitchEntity):
|
|
42
40
|
class SwitcherWaterHeaterSwitchEntity(SwitcherBaseSwitchEntity):
|
43
41
|
_attr_device_class: Incomplete
|
44
42
|
async def async_set_auto_off_service(self, auto_off: timedelta) -> None: ...
|
45
|
-
|
43
|
+
_attr_is_on: bool
|
46
44
|
async def async_turn_on_with_timer_service(self, timer_minutes: int) -> None: ...
|
47
45
|
|
48
|
-
class
|
46
|
+
class SwitcherShutterChildLockBaseSwitchEntity(SwitcherEntity, SwitchEntity):
|
49
47
|
_attr_device_class: Incomplete
|
50
48
|
_attr_entity_category: Incomplete
|
51
49
|
_attr_icon: str
|
52
50
|
_cover_id: int
|
53
51
|
control_result: bool | None
|
54
|
-
def __init__(self, coordinator: SwitcherDataUpdateCoordinator) -> None: ...
|
55
|
-
|
56
|
-
def
|
57
|
-
@property
|
58
|
-
def is_on(self) -> bool: ...
|
52
|
+
def __init__(self, coordinator: SwitcherDataUpdateCoordinator, cover_id: int) -> None: ...
|
53
|
+
_attr_is_on: Incomplete
|
54
|
+
def _update_data(self) -> None: ...
|
59
55
|
async def async_turn_on(self, **kwargs: Any) -> None: ...
|
60
56
|
async def async_turn_off(self, **kwargs: Any) -> None: ...
|
61
57
|
|
62
|
-
class
|
58
|
+
class SwitcherShutterChildLockSingleSwitchEntity(SwitcherShutterChildLockBaseSwitchEntity):
|
63
59
|
_attr_translation_key: str
|
64
|
-
_cover_id: Incomplete
|
65
60
|
_attr_unique_id: Incomplete
|
66
61
|
def __init__(self, coordinator: SwitcherDataUpdateCoordinator, cover_id: int) -> None: ...
|
67
62
|
|
68
|
-
class
|
63
|
+
class SwitcherShutterChildLockMultiSwitchEntity(SwitcherShutterChildLockBaseSwitchEntity):
|
69
64
|
_attr_translation_key: str
|
70
|
-
_cover_id: Incomplete
|
71
65
|
_attr_translation_placeholders: Incomplete
|
72
66
|
_attr_unique_id: Incomplete
|
73
67
|
def __init__(self, coordinator: SwitcherDataUpdateCoordinator, cover_id: int) -> None: ...
|
@@ -1,7 +1,7 @@
|
|
1
1
|
from .const import DISCOVERY_TIME_SEC as DISCOVERY_TIME_SEC
|
2
2
|
from _typeshed import Incomplete
|
3
3
|
from aioswitcher.api.remotes import SwitcherBreezeRemoteManager
|
4
|
-
from aioswitcher.
|
4
|
+
from aioswitcher.device import SwitcherBase as SwitcherBase
|
5
5
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
6
6
|
from homeassistant.helpers import singleton as singleton
|
7
7
|
|
@@ -8,6 +8,7 @@ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callb
|
|
8
8
|
from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed
|
9
9
|
from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
|
10
10
|
from synology_dsm import SynologyDSM
|
11
|
+
from synology_dsm.api.core.external_usb import SynoCoreExternalUSB
|
11
12
|
from synology_dsm.api.core.security import SynoCoreSecurity
|
12
13
|
from synology_dsm.api.core.system import SynoCoreSystem
|
13
14
|
from synology_dsm.api.core.upgrade import SynoCoreUpgrade
|
@@ -36,6 +37,7 @@ class SynoApi:
|
|
36
37
|
system: SynoCoreSystem | None
|
37
38
|
upgrade: SynoCoreUpgrade | None
|
38
39
|
utilisation: SynoCoreUtilization | None
|
40
|
+
external_usb: SynoCoreExternalUSB | None
|
39
41
|
_fetching_entities: dict[str, set[str]]
|
40
42
|
_with_file_station: bool
|
41
43
|
_with_information: bool
|
@@ -46,6 +48,7 @@ class SynoApi:
|
|
46
48
|
_with_system: bool
|
47
49
|
_with_upgrade: bool
|
48
50
|
_with_utilisation: bool
|
51
|
+
_with_external_usb: bool
|
49
52
|
_login_future: asyncio.Future[None] | None
|
50
53
|
def __init__(self, hass: HomeAssistant, entry: ConfigEntry) -> None: ...
|
51
54
|
async def async_login(self) -> None: ...
|