homeassistant-stubs 2024.2.5__py3-none-any.whl → 2024.3.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/bootstrap.pyi +20 -5
- homeassistant-stubs/components/aftership/const.pyi +0 -1
- homeassistant-stubs/components/aftership/sensor.pyi +2 -2
- homeassistant-stubs/components/airthings_ble/config_flow.pyi +1 -0
- homeassistant-stubs/components/airzone_cloud/sensor.pyi +1 -1
- homeassistant-stubs/components/alexa/config.pyi +2 -0
- homeassistant-stubs/components/amberelectric/sensor.pyi +0 -1
- homeassistant-stubs/components/androidtv/entity.pyi +30 -0
- homeassistant-stubs/components/androidtv/media_player.pyi +5 -23
- homeassistant-stubs/components/anthemav/media_player.pyi +0 -1
- homeassistant-stubs/components/api/__init__.pyi +0 -1
- homeassistant-stubs/components/apple_tv/__init__.pyi +68 -0
- homeassistant-stubs/components/apple_tv/browse_media.pyi +5 -0
- homeassistant-stubs/components/apple_tv/config_flow.pyi +63 -0
- homeassistant-stubs/components/apple_tv/const.pyi +4 -0
- homeassistant-stubs/components/apple_tv/media_player.pyi +93 -0
- homeassistant-stubs/components/apple_tv/remote.pyi +23 -0
- homeassistant-stubs/components/assist_pipeline/__init__.pyi +1 -1
- homeassistant-stubs/components/assist_pipeline/const.pyi +1 -1
- homeassistant-stubs/components/assist_pipeline/error.pyi +4 -0
- homeassistant-stubs/components/assist_pipeline/pipeline.pyi +5 -5
- homeassistant-stubs/components/asterisk_mbox/__init__.pyi +1 -0
- homeassistant-stubs/components/asuswrt/router.pyi +1 -1
- homeassistant-stubs/components/auth/__init__.pyi +2 -2
- homeassistant-stubs/components/automation/__init__.pyi +2 -1
- homeassistant-stubs/components/axis/binary_sensor.pyi +4 -0
- homeassistant-stubs/components/backup/manager.pyi +5 -3
- homeassistant-stubs/components/backup/websocket.pyi +4 -2
- homeassistant-stubs/components/blue_current/__init__.pyi +4 -3
- homeassistant-stubs/components/blue_current/entity.pyi +5 -2
- homeassistant-stubs/components/bluetooth/manager.pyi +2 -2
- homeassistant-stubs/components/bluetooth/match.pyi +3 -0
- homeassistant-stubs/components/bmw_connected_drive/device_tracker.pyi +1 -0
- homeassistant-stubs/components/braviatv/coordinator.pyi +2 -0
- homeassistant-stubs/components/braviatv/media_player.pyi +5 -0
- homeassistant-stubs/components/brother/sensor.pyi +3 -3
- homeassistant-stubs/components/bthome/config_flow.pyi +4 -4
- homeassistant-stubs/components/calendar/trigger.pyi +2 -1
- homeassistant-stubs/components/camera/media_source.pyi +1 -0
- homeassistant-stubs/components/camera/prefs.pyi +2 -0
- homeassistant-stubs/components/cert_expiry/sensor.pyi +0 -1
- homeassistant-stubs/components/climate/__init__.pyi +3 -1
- homeassistant-stubs/components/cloud/const.pyi +2 -0
- homeassistant-stubs/components/cloud/google_config.pyi +7 -5
- homeassistant-stubs/components/cloud/http_api.pyi +1 -1
- homeassistant-stubs/components/cloud/prefs.pyi +6 -2
- homeassistant-stubs/components/cloud/tts.pyi +3 -2
- homeassistant-stubs/components/config/area_registry.pyi +1 -1
- homeassistant-stubs/components/config/auth.pyi +2 -2
- homeassistant-stubs/components/config/auth_provider_homeassistant.pyi +2 -2
- homeassistant-stubs/components/config/automation.pyi +2 -2
- homeassistant-stubs/components/config/config_entries.pyi +5 -4
- homeassistant-stubs/components/config/core.pyi +2 -2
- homeassistant-stubs/components/config/device_registry.pyi +1 -1
- homeassistant-stubs/components/config/entity_registry.pyi +1 -1
- homeassistant-stubs/components/config/floor_registry.pyi +12 -0
- homeassistant-stubs/components/config/label_registry.pyi +12 -0
- homeassistant-stubs/components/config/scene.pyi +2 -2
- homeassistant-stubs/components/config/script.pyi +2 -2
- homeassistant-stubs/components/cpuspeed/sensor.pyi +0 -1
- homeassistant-stubs/components/crownstone/light.pyi +1 -1
- homeassistant-stubs/components/deconz/light.pyi +1 -1
- homeassistant-stubs/components/demo/fan.pyi +1 -0
- homeassistant-stubs/components/dhcp/__init__.pyi +24 -32
- homeassistant-stubs/components/dlna_dmr/media_player.pyi +8 -3
- homeassistant-stubs/components/dnsip/sensor.pyi +1 -1
- homeassistant-stubs/components/dunehd/media_player.pyi +5 -2
- homeassistant-stubs/components/ecovacs/binary_sensor.pyi +3 -3
- homeassistant-stubs/components/ecovacs/button.pyi +5 -5
- homeassistant-stubs/components/ecovacs/controller.pyi +6 -3
- homeassistant-stubs/components/ecovacs/entity.pyi +11 -9
- homeassistant-stubs/components/ecovacs/image.pyi +2 -2
- homeassistant-stubs/components/ecovacs/lawn_mower.pyi +28 -0
- homeassistant-stubs/components/ecovacs/number.pyi +3 -3
- homeassistant-stubs/components/ecovacs/select.pyi +3 -3
- homeassistant-stubs/components/ecovacs/sensor.pyi +6 -6
- homeassistant-stubs/components/ecovacs/switch.pyi +4 -4
- homeassistant-stubs/components/ecovacs/vacuum.pyi +3 -3
- homeassistant-stubs/components/emulated_hue/config.pyi +1 -1
- homeassistant-stubs/components/enphase_envoy/sensor.pyi +39 -4
- homeassistant-stubs/components/esphome/bluetooth.pyi +1 -1
- homeassistant-stubs/components/esphome/camera.pyi +2 -2
- homeassistant-stubs/components/esphome/entry_data.pyi +3 -5
- homeassistant-stubs/components/esphome/manager.pyi +6 -7
- homeassistant-stubs/components/esphome/sensor.pyi +4 -2
- homeassistant-stubs/components/esphome/update.pyi +0 -1
- homeassistant-stubs/components/esphome/voice_assistant.pyi +1 -1
- homeassistant-stubs/components/fastdotcom/sensor.pyi +0 -1
- homeassistant-stubs/components/filesize/sensor.pyi +0 -1
- homeassistant-stubs/components/flexit_bacnet/climate.pyi +4 -2
- homeassistant-stubs/components/flexit_bacnet/number.pyi +31 -0
- homeassistant-stubs/components/flux_led/__init__.pyi +2 -2
- homeassistant-stubs/components/fritz/common.pyi +2 -1
- homeassistant-stubs/components/fully_kiosk/media_player.pyi +2 -1
- homeassistant-stubs/components/generic_thermostat/climate.pyi +1 -1
- homeassistant-stubs/components/goalzero/__init__.pyi +1 -0
- homeassistant-stubs/components/gpsd/sensor.pyi +15 -9
- homeassistant-stubs/components/group/__init__.pyi +1 -1
- homeassistant-stubs/components/group/light.pyi +3 -3
- homeassistant-stubs/components/hardkernel/__init__.pyi +1 -1
- homeassistant-stubs/components/hardware/hardware.pyi +2 -2
- homeassistant-stubs/components/hardware/websocket_api.pyi +1 -1
- homeassistant-stubs/components/homeassistant_green/__init__.pyi +1 -1
- homeassistant-stubs/components/homeassistant_sky_connect/__init__.pyi +2 -1
- homeassistant-stubs/components/homeassistant_yellow/__init__.pyi +3 -2
- homeassistant-stubs/components/homekit/__init__.pyi +1 -1
- homeassistant-stubs/components/homekit/accessories.pyi +1 -1
- homeassistant-stubs/components/homekit/config_flow.pyi +13 -4
- homeassistant-stubs/components/homekit/type_cameras.pyi +1 -1
- homeassistant-stubs/components/homekit/type_covers.pyi +1 -1
- homeassistant-stubs/components/homekit/type_humidifiers.pyi +1 -1
- homeassistant-stubs/components/homekit/type_triggers.pyi +3 -1
- homeassistant-stubs/components/homekit_controller/__init__.pyi +1 -0
- homeassistant-stubs/components/homekit_controller/alarm_control_panel.pyi +0 -1
- homeassistant-stubs/components/homekit_controller/button.pyi +8 -4
- homeassistant-stubs/components/homekit_controller/utils.pyi +4 -0
- homeassistant-stubs/components/http/__init__.pyi +3 -3
- homeassistant-stubs/components/http/auth.pyi +1 -1
- homeassistant-stubs/components/http/ban.pyi +0 -1
- homeassistant-stubs/components/http/const.pyi +1 -1
- homeassistant-stubs/components/http/request_context.pyi +1 -2
- homeassistant-stubs/components/http/view.pyi +1 -29
- homeassistant-stubs/components/huawei_lte/binary_sensor.pyi +0 -6
- homeassistant-stubs/components/huawei_lte/switch.pyi +0 -4
- homeassistant-stubs/components/idasen_desk/sensor.pyi +2 -1
- homeassistant-stubs/components/image/__init__.pyi +13 -3
- homeassistant-stubs/components/image/media_source.pyi +18 -0
- homeassistant-stubs/components/imap/coordinator.pyi +8 -0
- homeassistant-stubs/components/imap/diagnostics.pyi +13 -0
- homeassistant-stubs/components/intent/__init__.pyi +7 -2
- homeassistant-stubs/components/islamic_prayer_times/config_flow.pyi +1 -1
- homeassistant-stubs/components/knx/config_flow.pyi +1 -1
- homeassistant-stubs/components/knx/schema.pyi +3 -18
- homeassistant-stubs/components/knx/validation.pyi +19 -0
- homeassistant-stubs/components/lamarzocco/calendar.pyi +21 -0
- homeassistant-stubs/components/lamarzocco/entity.pyi +7 -4
- homeassistant-stubs/components/lamarzocco/number.pyi +26 -1
- homeassistant-stubs/components/light/__init__.pyi +3 -0
- homeassistant-stubs/components/local_todo/todo.pyi +3 -1
- homeassistant-stubs/components/logbook/__init__.pyi +1 -1
- homeassistant-stubs/components/logbook/helpers.pyi +2 -2
- homeassistant-stubs/components/logbook/models.pyi +2 -2
- homeassistant-stubs/components/mailbox/__init__.pyi +1 -0
- homeassistant-stubs/components/matter/light.pyi +6 -5
- homeassistant-stubs/components/media_player/intent.pyi +11 -0
- homeassistant-stubs/components/minecraft_server/__init__.pyi +1 -1
- homeassistant-stubs/components/modbus/__init__.pyi +1 -1
- homeassistant-stubs/components/modbus/climate.pyi +1 -0
- homeassistant-stubs/components/modbus/validators.pyi +4 -4
- homeassistant-stubs/components/mqtt/__init__.pyi +3 -3
- homeassistant-stubs/components/mqtt/climate.pyi +1 -8
- homeassistant-stubs/components/mqtt/const.pyi +2 -0
- homeassistant-stubs/components/mqtt/event.pyi +1 -1
- homeassistant-stubs/components/mqtt/image.pyi +1 -1
- homeassistant-stubs/components/mqtt/mixins.pyi +2 -2
- homeassistant-stubs/components/mqtt/models.pyi +10 -0
- homeassistant-stubs/components/mqtt/tag.pyi +1 -1
- homeassistant-stubs/components/myuplink/__init__.pyi +2 -1
- homeassistant-stubs/components/myuplink/binary_sensor.pyi +24 -0
- homeassistant-stubs/components/myuplink/config_flow.pyi +7 -0
- homeassistant-stubs/components/myuplink/coordinator.pyi +1 -2
- homeassistant-stubs/components/myuplink/diagnostics.pyi +11 -0
- homeassistant-stubs/components/myuplink/helpers.pyi +6 -0
- homeassistant-stubs/components/myuplink/number.pyi +30 -0
- homeassistant-stubs/components/myuplink/sensor.pyi +20 -3
- homeassistant-stubs/components/myuplink/switch.pyi +29 -0
- homeassistant-stubs/components/myuplink/update.pyi +20 -0
- homeassistant-stubs/components/notion/__init__.pyi +10 -6
- homeassistant-stubs/components/notion/config_flow.pyi +11 -3
- homeassistant-stubs/components/notion/const.pyi +2 -0
- homeassistant-stubs/components/notion/diagnostics.pyi +2 -2
- homeassistant-stubs/components/notion/model.pyi +1 -1
- homeassistant-stubs/components/notion/util.pyi +7 -0
- homeassistant-stubs/components/overkiz/climate.pyi +1 -1
- homeassistant-stubs/components/overkiz/climate_entities/__init__.pyi +8 -0
- homeassistant-stubs/components/overkiz/climate_entities/atlantic_pass_apc_heating_zone.pyi +1 -1
- homeassistant-stubs/components/overkiz/climate_entities/atlantic_pass_apc_zone_control.pyi +5 -1
- homeassistant-stubs/components/overkiz/climate_entities/atlantic_pass_apc_zone_control_zone.pyi +33 -0
- homeassistant-stubs/components/overkiz/climate_entities/hitachi_air_to_air_heat_pump_ovp.pyi +61 -0
- homeassistant-stubs/components/overkiz/number.pyi +7 -1
- homeassistant-stubs/components/proximity/config_flow.pyi +1 -1
- homeassistant-stubs/components/rainmachine/util.pyi +1 -1
- homeassistant-stubs/components/raspberry_pi/__init__.pyi +1 -1
- homeassistant-stubs/components/recorder/__init__.pyi +1 -1
- homeassistant-stubs/components/recorder/core.pyi +1 -0
- homeassistant-stubs/components/recorder/websocket_api.pyi +1 -5
- homeassistant-stubs/components/repairs/issue_handler.pyi +1 -1
- homeassistant-stubs/components/rfxtrx/__init__.pyi +3 -1
- homeassistant-stubs/components/samsungtv/__init__.pyi +1 -1
- homeassistant-stubs/components/samsungtv/config_flow.pyi +1 -0
- homeassistant-stubs/components/sensor/recorder.pyi +0 -2
- homeassistant-stubs/components/shelly/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/shelly/button.pyi +1 -1
- homeassistant-stubs/components/shelly/climate.pyi +1 -3
- homeassistant-stubs/components/shelly/entity.pyi +1 -2
- homeassistant-stubs/components/shelly/number.pyi +1 -1
- homeassistant-stubs/components/shelly/sensor.pyi +2 -2
- homeassistant-stubs/components/shelly/switch.pyi +4 -5
- homeassistant-stubs/components/shelly/utils.pyi +2 -0
- homeassistant-stubs/components/shelly/valve.pyi +1 -1
- homeassistant-stubs/components/ssdp/__init__.pyi +1 -0
- homeassistant-stubs/components/statistics/sensor.pyi +4 -1
- homeassistant-stubs/components/steamist/__init__.pyi +1 -1
- homeassistant-stubs/components/system_health/__init__.pyi +1 -1
- homeassistant-stubs/components/systemmonitor/__init__.pyi +3 -0
- homeassistant-stubs/components/systemmonitor/binary_sensor.pyi +48 -0
- homeassistant-stubs/components/systemmonitor/config_flow.pyi +2 -0
- homeassistant-stubs/components/systemmonitor/const.pyi +1 -0
- homeassistant-stubs/components/systemmonitor/coordinator.pyi +14 -10
- homeassistant-stubs/components/systemmonitor/diagnostics.pyi +7 -0
- homeassistant-stubs/components/systemmonitor/repairs.pyi +15 -0
- homeassistant-stubs/components/systemmonitor/sensor.pyi +5 -4
- homeassistant-stubs/components/systemmonitor/util.pyi +6 -5
- homeassistant-stubs/components/technove/helpers.pyi +9 -0
- homeassistant-stubs/components/technove/switch.pyi +33 -0
- homeassistant-stubs/components/tedee/config_flow.pyi +1 -0
- homeassistant-stubs/components/tedee/sensor.pyi +1 -1
- homeassistant-stubs/components/tibber/sensor.pyi +7 -4
- homeassistant-stubs/components/tplink/__init__.pyi +1 -1
- homeassistant-stubs/components/tplink/config_flow.pyi +2 -2
- homeassistant-stubs/components/tplink/light.pyi +1 -0
- homeassistant-stubs/components/tplink_omada/binary_sensor.pyi +2 -2
- homeassistant-stubs/components/tplink_omada/config_flow.pyi +1 -1
- homeassistant-stubs/components/tplink_omada/controller.pyi +1 -1
- homeassistant-stubs/components/tplink_omada/coordinator.pyi +1 -1
- homeassistant-stubs/components/tplink_omada/update.pyi +1 -1
- homeassistant-stubs/components/tractive/device_tracker.pyi +0 -1
- homeassistant-stubs/components/unifi/__init__.pyi +1 -1
- homeassistant-stubs/components/unifi/button.pyi +1 -1
- homeassistant-stubs/components/unifi/config_flow.pyi +2 -2
- homeassistant-stubs/components/unifi/device_tracker.pyi +6 -6
- homeassistant-stubs/components/unifi/diagnostics.pyi +1 -1
- homeassistant-stubs/components/unifi/entity.pyi +13 -13
- homeassistant-stubs/components/unifi/hub/__init__.pyi +2 -0
- homeassistant-stubs/components/unifi/hub/api.pyi +10 -0
- homeassistant-stubs/components/unifi/{controller.pyi → hub/hub.pyi} +9 -19
- homeassistant-stubs/components/unifi/hub/websocket.pyi +25 -0
- homeassistant-stubs/components/unifi/image.pyi +4 -4
- homeassistant-stubs/components/unifi/sensor.pyi +14 -14
- homeassistant-stubs/components/unifi/switch.pyi +14 -14
- homeassistant-stubs/components/unifi/update.pyi +1 -1
- homeassistant-stubs/components/unifiprotect/__init__.pyi +4 -2
- homeassistant-stubs/components/unifiprotect/const.pyi +1 -0
- homeassistant-stubs/components/unifiprotect/data.pyi +3 -2
- homeassistant-stubs/components/unifiprotect/media_source.pyi +6 -3
- homeassistant-stubs/components/unifiprotect/migrate.pyi +3 -5
- homeassistant-stubs/components/unifiprotect/repairs.pyi +8 -2
- homeassistant-stubs/components/usb/__init__.pyi +1 -1
- homeassistant-stubs/components/vacuum/intent.pyi +8 -0
- homeassistant-stubs/components/vallox/__init__.pyi +5 -23
- homeassistant-stubs/components/vallox/fan.pyi +1 -1
- homeassistant-stubs/components/wake_word/models.pyi +4 -2
- homeassistant-stubs/components/water_heater/__init__.pyi +2 -0
- homeassistant-stubs/components/websocket_api/connection.pyi +1 -1
- homeassistant-stubs/components/websocket_api/http.pyi +1 -0
- homeassistant-stubs/components/wiz/light.pyi +3 -2
- homeassistant-stubs/components/xiaomi_ble/const.pyi +9 -0
- homeassistant-stubs/components/xiaomi_ble/device_trigger.pyi +1 -1
- homeassistant-stubs/components/xiaomi_ble/event.pyi +1 -1
- homeassistant-stubs/components/yalexs_ble/__init__.pyi +1 -1
- homeassistant-stubs/components/yalexs_ble/config_flow.pyi +1 -1
- homeassistant-stubs/components/zwave_js/climate.pyi +4 -0
- homeassistant-stubs/components/zwave_js/sensor.pyi +0 -1
- homeassistant-stubs/config.pyi +4 -2
- homeassistant-stubs/config_entries.pyi +40 -26
- homeassistant-stubs/const.pyi +1 -0
- homeassistant-stubs/core.pyi +11 -7
- homeassistant-stubs/data_entry_flow.pyi +1 -0
- homeassistant-stubs/helpers/area_registry.pyi +9 -4
- homeassistant-stubs/helpers/collection.pyi +19 -0
- homeassistant-stubs/helpers/config_validation.pyi +5 -0
- homeassistant-stubs/helpers/data_entry_flow.pyi +2 -1
- homeassistant-stubs/helpers/debounce.pyi +3 -1
- homeassistant-stubs/helpers/device_registry.pyi +13 -6
- homeassistant-stubs/helpers/entity.pyi +4 -2
- homeassistant-stubs/helpers/entity_component.pyi +1 -1
- homeassistant-stubs/helpers/entity_platform.pyi +7 -3
- homeassistant-stubs/helpers/entity_registry.pyi +10 -4
- homeassistant-stubs/helpers/event.pyi +28 -2
- homeassistant-stubs/helpers/floor_registry.pyi +59 -0
- homeassistant-stubs/helpers/frame.pyi +3 -1
- homeassistant-stubs/helpers/http.pyi +32 -0
- homeassistant-stubs/helpers/icon.pyi +1 -1
- homeassistant-stubs/helpers/integration_platform.pyi +12 -8
- homeassistant-stubs/helpers/intent.pyi +20 -6
- homeassistant-stubs/helpers/json.pyi +1 -0
- homeassistant-stubs/helpers/label_registry.pyi +59 -0
- homeassistant-stubs/helpers/redact.pyi +13 -0
- homeassistant-stubs/helpers/service.pyi +1 -0
- homeassistant-stubs/helpers/storage.pyi +7 -3
- homeassistant-stubs/helpers/template.pyi +7 -0
- homeassistant-stubs/helpers/translation.pyi +18 -4
- homeassistant-stubs/helpers/update_coordinator.pyi +1 -0
- homeassistant-stubs/loader.pyi +35 -13
- homeassistant-stubs/setup.pyi +9 -3
- homeassistant-stubs/util/async_.pyi +3 -3
- homeassistant-stubs/util/file.pyi +2 -2
- homeassistant-stubs/util/yaml/loader.pyi +3 -0
- {homeassistant_stubs-2024.2.5.dist-info → homeassistant_stubs-2024.3.0.dist-info}/METADATA +2 -2
- {homeassistant_stubs-2024.2.5.dist-info → homeassistant_stubs-2024.3.0.dist-info}/RECORD +302 -264
- {homeassistant_stubs-2024.2.5.dist-info → homeassistant_stubs-2024.3.0.dist-info}/LICENSE +0 -0
- {homeassistant_stubs-2024.2.5.dist-info → homeassistant_stubs-2024.3.0.dist-info}/WHEEL +0 -0
@@ -1,11 +1,12 @@
|
|
1
1
|
import abc
|
2
|
-
import
|
2
|
+
import psutil_home_assistant as ha_psutil
|
3
3
|
from _typeshed import Incomplete
|
4
4
|
from abc import abstractmethod
|
5
5
|
from datetime import datetime
|
6
6
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
7
7
|
from homeassistant.helpers.entity_component import DEFAULT_SCAN_INTERVAL as DEFAULT_SCAN_INTERVAL
|
8
|
-
from homeassistant.helpers.update_coordinator import
|
8
|
+
from homeassistant.helpers.update_coordinator import TimestampDataUpdateCoordinator as TimestampDataUpdateCoordinator, UpdateFailed as UpdateFailed
|
9
|
+
from psutil import Process
|
9
10
|
from psutil._common import sdiskusage, shwtemp, snetio, snicaddr, sswap
|
10
11
|
from typing import NamedTuple, TypeVar
|
11
12
|
|
@@ -17,17 +18,18 @@ class VirtualMemory(NamedTuple):
|
|
17
18
|
percent: float
|
18
19
|
used: float
|
19
20
|
free: float
|
20
|
-
dataT = TypeVar('dataT', bound=datetime | dict[str, list[shwtemp]] | dict[str, list[snicaddr]] | dict[str, snetio] | float | list[
|
21
|
+
dataT = TypeVar('dataT', bound=datetime | dict[str, list[shwtemp]] | dict[str, list[snicaddr]] | dict[str, snetio] | float | list[Process] | sswap | VirtualMemory | tuple[float, float, float] | sdiskusage | None)
|
21
22
|
|
22
|
-
class MonitorCoordinator(
|
23
|
-
|
23
|
+
class MonitorCoordinator(TimestampDataUpdateCoordinator[dataT], metaclass=abc.ABCMeta):
|
24
|
+
_psutil: Incomplete
|
25
|
+
def __init__(self, hass: HomeAssistant, psutil_wrapper: ha_psutil.PsutilWrapper, name: str) -> None: ...
|
24
26
|
async def _async_update_data(self) -> dataT: ...
|
25
27
|
@abstractmethod
|
26
28
|
def update_data(self) -> dataT: ...
|
27
29
|
|
28
30
|
class SystemMonitorDiskCoordinator(MonitorCoordinator[sdiskusage]):
|
29
31
|
_argument: Incomplete
|
30
|
-
def __init__(self, hass: HomeAssistant, name: str, argument: str) -> None: ...
|
32
|
+
def __init__(self, hass: HomeAssistant, psutil_wrapper: ha_psutil.PsutilWrapper, name: str, argument: str) -> None: ...
|
31
33
|
def update_data(self) -> sdiskusage: ...
|
32
34
|
|
33
35
|
class SystemMonitorSwapCoordinator(MonitorCoordinator[sswap]):
|
@@ -42,17 +44,19 @@ class SystemMonitorNetIOCoordinator(MonitorCoordinator[dict[str, snetio]]):
|
|
42
44
|
class SystemMonitorNetAddrCoordinator(MonitorCoordinator[dict[str, list[snicaddr]]]):
|
43
45
|
def update_data(self) -> dict[str, list[snicaddr]]: ...
|
44
46
|
|
45
|
-
class SystemMonitorLoadCoordinator(MonitorCoordinator[tuple[float, float, float]]):
|
46
|
-
def update_data(self) -> tuple[float, float, float]: ...
|
47
|
+
class SystemMonitorLoadCoordinator(MonitorCoordinator[tuple[float, float, float] | None]):
|
48
|
+
def update_data(self) -> tuple[float, float, float] | None: ...
|
49
|
+
async def _async_update_data(self) -> tuple[float, float, float] | None: ...
|
47
50
|
|
48
51
|
class SystemMonitorProcessorCoordinator(MonitorCoordinator[float | None]):
|
49
52
|
def update_data(self) -> float | None: ...
|
53
|
+
async def _async_update_data(self) -> float | None: ...
|
50
54
|
|
51
55
|
class SystemMonitorBootTimeCoordinator(MonitorCoordinator[datetime]):
|
52
56
|
def update_data(self) -> datetime: ...
|
53
57
|
|
54
|
-
class SystemMonitorProcessCoordinator(MonitorCoordinator[list[
|
55
|
-
def update_data(self) -> list[
|
58
|
+
class SystemMonitorProcessCoordinator(MonitorCoordinator[list[Process]]):
|
59
|
+
def update_data(self) -> list[Process]: ...
|
56
60
|
|
57
61
|
class SystemMonitorCPUtempCoordinator(MonitorCoordinator[dict[str, list[shwtemp]]]):
|
58
62
|
def update_data(self) -> dict[str, list[shwtemp]]: ...
|
@@ -0,0 +1,7 @@
|
|
1
|
+
from .const import DOMAIN_COORDINATORS as DOMAIN_COORDINATORS
|
2
|
+
from .coordinator import MonitorCoordinator as MonitorCoordinator
|
3
|
+
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
4
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
5
|
+
from typing import Any
|
6
|
+
|
7
|
+
async def async_get_config_entry_diagnostics(hass: HomeAssistant, entry: ConfigEntry) -> dict[str, Any]: ...
|
@@ -0,0 +1,15 @@
|
|
1
|
+
from _typeshed import Incomplete
|
2
|
+
from homeassistant import data_entry_flow as data_entry_flow
|
3
|
+
from homeassistant.components.repairs import ConfirmRepairFlow as ConfirmRepairFlow, RepairsFlow as RepairsFlow
|
4
|
+
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
5
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
6
|
+
from typing import Any
|
7
|
+
|
8
|
+
class ProcessFixFlow(RepairsFlow):
|
9
|
+
entry: Incomplete
|
10
|
+
_processes: Incomplete
|
11
|
+
def __init__(self, entry: ConfigEntry, processes: list[str]) -> None: ...
|
12
|
+
async def async_step_init(self, user_input: dict[str, str] | None = None) -> data_entry_flow.FlowResult: ...
|
13
|
+
async def async_step_migrate_process_sensor(self, user_input: dict[str, Any] | None = None) -> data_entry_flow.FlowResult: ...
|
14
|
+
|
15
|
+
async def async_create_fix_flow(hass: HomeAssistant, issue_id: str, data: dict[str, Any] | None) -> RepairsFlow: ...
|
@@ -1,5 +1,4 @@
|
|
1
|
-
import
|
2
|
-
from .const import CONF_PROCESS as CONF_PROCESS, DOMAIN as DOMAIN, NET_IO_TYPES as NET_IO_TYPES
|
1
|
+
from .const import CONF_PROCESS as CONF_PROCESS, DOMAIN as DOMAIN, DOMAIN_COORDINATORS as DOMAIN_COORDINATORS, NET_IO_TYPES as NET_IO_TYPES
|
3
2
|
from .coordinator import MonitorCoordinator as MonitorCoordinator, SystemMonitorBootTimeCoordinator as SystemMonitorBootTimeCoordinator, SystemMonitorCPUtempCoordinator as SystemMonitorCPUtempCoordinator, SystemMonitorDiskCoordinator as SystemMonitorDiskCoordinator, SystemMonitorLoadCoordinator as SystemMonitorLoadCoordinator, SystemMonitorMemoryCoordinator as SystemMonitorMemoryCoordinator, SystemMonitorNetAddrCoordinator as SystemMonitorNetAddrCoordinator, SystemMonitorNetIOCoordinator as SystemMonitorNetIOCoordinator, SystemMonitorProcessCoordinator as SystemMonitorProcessCoordinator, SystemMonitorProcessorCoordinator as SystemMonitorProcessorCoordinator, SystemMonitorSwapCoordinator as SystemMonitorSwapCoordinator, VirtualMemory as VirtualMemory, dataT as dataT
|
4
3
|
from .util import get_all_disk_mounts as get_all_disk_mounts, get_all_network_interfaces as get_all_network_interfaces, read_cpu_temperature as read_cpu_temperature
|
5
4
|
from _typeshed import Incomplete
|
@@ -9,12 +8,14 @@ from datetime import datetime
|
|
9
8
|
from homeassistant.components.sensor import PLATFORM_SCHEMA as PLATFORM_SCHEMA, SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
|
10
9
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry, SOURCE_IMPORT as SOURCE_IMPORT
|
11
10
|
from homeassistant.const import CONF_RESOURCES as CONF_RESOURCES, CONF_TYPE as CONF_TYPE, EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, STATE_OFF as STATE_OFF, STATE_ON as STATE_ON, UnitOfDataRate as UnitOfDataRate, UnitOfInformation as UnitOfInformation, UnitOfTemperature as UnitOfTemperature
|
12
|
-
from homeassistant.core import HomeAssistant as HomeAssistant
|
11
|
+
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
13
12
|
from homeassistant.helpers.device_registry import DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
|
14
13
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
14
|
+
from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity, async_create_issue as async_create_issue
|
15
15
|
from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType, StateType as StateType
|
16
16
|
from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
|
17
17
|
from homeassistant.util import slugify as slugify
|
18
|
+
from psutil import Process
|
18
19
|
from psutil._common import shwtemp, snetio, snicaddr
|
19
20
|
from typing import Any, Generic, Literal
|
20
21
|
|
@@ -29,7 +30,7 @@ SIGNAL_SYSTEMMONITOR_UPDATE: str
|
|
29
30
|
|
30
31
|
def get_cpu_icon() -> Literal['mdi:cpu-64-bit', 'mdi:cpu-32-bit']: ...
|
31
32
|
def get_processor_temperature(entity: SystemMonitorSensor[dict[str, list[shwtemp]]]) -> float | None: ...
|
32
|
-
def get_process(entity: SystemMonitorSensor[list[
|
33
|
+
def get_process(entity: SystemMonitorSensor[list[Process]]) -> str: ...
|
33
34
|
def get_network(entity: SystemMonitorSensor[dict[str, snetio]]) -> float | None: ...
|
34
35
|
def get_packets(entity: SystemMonitorSensor[dict[str, snetio]]) -> float | None: ...
|
35
36
|
def get_throughput(entity: SystemMonitorSensor[dict[str, snetio]]) -> float | None: ...
|
@@ -1,11 +1,12 @@
|
|
1
|
-
from .const import CPU_SENSOR_PREFIXES as CPU_SENSOR_PREFIXES
|
1
|
+
from .const import CPU_SENSOR_PREFIXES as CPU_SENSOR_PREFIXES, DOMAIN as DOMAIN
|
2
2
|
from _typeshed import Incomplete
|
3
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
3
4
|
from psutil._common import shwtemp as shwtemp
|
4
5
|
|
5
6
|
_LOGGER: Incomplete
|
6
7
|
SKIP_DISK_TYPES: Incomplete
|
7
8
|
|
8
|
-
def get_all_disk_mounts() -> set[str]: ...
|
9
|
-
def get_all_network_interfaces() -> set[str]: ...
|
10
|
-
def get_all_running_processes() -> set[str]: ...
|
11
|
-
def read_cpu_temperature(temps: dict[str, list[shwtemp]] | None = None) -> float | None: ...
|
9
|
+
def get_all_disk_mounts(hass: HomeAssistant) -> set[str]: ...
|
10
|
+
def get_all_network_interfaces(hass: HomeAssistant) -> set[str]: ...
|
11
|
+
def get_all_running_processes(hass: HomeAssistant) -> set[str]: ...
|
12
|
+
def read_cpu_temperature(hass: HomeAssistant, temps: dict[str, list[shwtemp]] | None = None) -> float | None: ...
|
@@ -0,0 +1,9 @@
|
|
1
|
+
from .entity import TechnoVEEntity as TechnoVEEntity
|
2
|
+
from collections.abc import Callable as Callable, Coroutine
|
3
|
+
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
|
4
|
+
from typing import Any, Concatenate, ParamSpec, TypeVar
|
5
|
+
|
6
|
+
_TechnoVEEntityT = TypeVar('_TechnoVEEntityT', bound=TechnoVEEntity)
|
7
|
+
_P = ParamSpec('_P')
|
8
|
+
|
9
|
+
def technove_exception_handler(func: Callable[Concatenate[_TechnoVEEntityT, _P], Coroutine[Any, Any, Any]]) -> Callable[Concatenate[_TechnoVEEntityT, _P], Coroutine[Any, Any, None]]: ...
|
@@ -0,0 +1,33 @@
|
|
1
|
+
from .const import DOMAIN as DOMAIN
|
2
|
+
from .coordinator import TechnoVEDataUpdateCoordinator as TechnoVEDataUpdateCoordinator
|
3
|
+
from .entity import TechnoVEEntity as TechnoVEEntity
|
4
|
+
from .helpers import technove_exception_handler as technove_exception_handler
|
5
|
+
from _typeshed import Incomplete
|
6
|
+
from collections.abc import Awaitable, Callable as Callable
|
7
|
+
from dataclasses import dataclass
|
8
|
+
from homeassistant.components.switch import SwitchEntity as SwitchEntity, SwitchEntityDescription as SwitchEntityDescription
|
9
|
+
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
10
|
+
from homeassistant.const import EntityCategory as EntityCategory
|
11
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
12
|
+
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
13
|
+
from technove import Station as TechnoVEStation, TechnoVE as TechnoVE
|
14
|
+
from typing import Any
|
15
|
+
|
16
|
+
@dataclass(frozen=True, kw_only=True)
|
17
|
+
class TechnoVESwitchDescription(SwitchEntityDescription):
|
18
|
+
is_on_fn: Callable[[TechnoVEStation], bool]
|
19
|
+
turn_on_fn: Callable[[TechnoVE], Awaitable[dict[str, Any]]]
|
20
|
+
turn_off_fn: Callable[[TechnoVE], Awaitable[dict[str, Any]]]
|
21
|
+
def __init__(self, *, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, translation_placeholders, unit_of_measurement, is_on_fn, turn_on_fn, turn_off_fn) -> None: ...
|
22
|
+
|
23
|
+
SWITCHES: Incomplete
|
24
|
+
|
25
|
+
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
|
26
|
+
|
27
|
+
class TechnoVESwitchEntity(TechnoVEEntity, SwitchEntity):
|
28
|
+
entity_description: TechnoVESwitchDescription
|
29
|
+
def __init__(self, coordinator: TechnoVEDataUpdateCoordinator, description: TechnoVESwitchDescription) -> None: ...
|
30
|
+
@property
|
31
|
+
def is_on(self) -> bool: ...
|
32
|
+
async def async_turn_on(self, **kwargs: Any) -> None: ...
|
33
|
+
async def async_turn_off(self, **kwargs: Any) -> None: ...
|
@@ -10,3 +10,4 @@ class TedeeConfigFlow(ConfigFlow, domain=DOMAIN):
|
|
10
10
|
reauth_entry: ConfigEntry | None
|
11
11
|
async def async_step_user(self, user_input: dict[str, Any] | None = None) -> FlowResult: ...
|
12
12
|
async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> FlowResult: ...
|
13
|
+
async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> FlowResult: ...
|
@@ -4,7 +4,7 @@ from collections.abc import Callable as Callable
|
|
4
4
|
from dataclasses import dataclass
|
5
5
|
from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
|
6
6
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
7
|
-
from homeassistant.const import PERCENTAGE as PERCENTAGE, UnitOfTime as UnitOfTime
|
7
|
+
from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfTime as UnitOfTime
|
8
8
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
9
9
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
10
10
|
from pytedee_async import TedeeLock as TedeeLock
|
@@ -21,12 +21,15 @@ ICON: str
|
|
21
21
|
SCAN_INTERVAL: Incomplete
|
22
22
|
MIN_TIME_BETWEEN_UPDATES: Incomplete
|
23
23
|
PARALLEL_UPDATES: int
|
24
|
+
RT_SENSORS_UNIQUE_ID_MIGRATION: Incomplete
|
25
|
+
RT_SENSORS_UNIQUE_ID_MIGRATION_SIMPLE: Incomplete
|
24
26
|
RT_SENSORS: tuple[SensorEntityDescription, ...]
|
25
27
|
SENSORS: tuple[SensorEntityDescription, ...]
|
26
28
|
|
27
29
|
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
|
28
30
|
|
29
31
|
class TibberSensor(SensorEntity):
|
32
|
+
_attr_has_entity_name: bool
|
30
33
|
_tibber_home: Incomplete
|
31
34
|
_home_name: Incomplete
|
32
35
|
_device_name: Incomplete
|
@@ -36,13 +39,13 @@ class TibberSensor(SensorEntity):
|
|
36
39
|
def device_info(self) -> DeviceInfo: ...
|
37
40
|
|
38
41
|
class TibberSensorElPrice(TibberSensor):
|
42
|
+
_attr_state_class: Incomplete
|
43
|
+
_attr_translation_key: str
|
39
44
|
_last_updated: Incomplete
|
40
45
|
_spread_load_constant: Incomplete
|
41
46
|
_attr_available: bool
|
42
47
|
_attr_extra_state_attributes: Incomplete
|
43
48
|
_attr_icon: Incomplete
|
44
|
-
_attr_name: Incomplete
|
45
|
-
_attr_state_class: Incomplete
|
46
49
|
_attr_unique_id: Incomplete
|
47
50
|
_model: str
|
48
51
|
_device_name: Incomplete
|
@@ -54,7 +57,6 @@ class TibberSensorElPrice(TibberSensor):
|
|
54
57
|
class TibberDataSensor(TibberSensor, CoordinatorEntity['TibberDataCoordinator']):
|
55
58
|
entity_description: Incomplete
|
56
59
|
_attr_unique_id: Incomplete
|
57
|
-
_attr_name: Incomplete
|
58
60
|
_attr_native_unit_of_measurement: Incomplete
|
59
61
|
_device_name: Incomplete
|
60
62
|
def __init__(self, tibber_home: tibber.TibberHome, coordinator: TibberDataCoordinator, entity_description: SensorEntityDescription) -> None: ...
|
@@ -65,7 +67,6 @@ class TibberSensorRT(TibberSensor, CoordinatorEntity['TibberRtDataCoordinator'])
|
|
65
67
|
entity_description: Incomplete
|
66
68
|
_model: str
|
67
69
|
_device_name: Incomplete
|
68
|
-
_attr_name: Incomplete
|
69
70
|
_attr_native_value: Incomplete
|
70
71
|
_attr_unique_id: Incomplete
|
71
72
|
_attr_native_unit_of_measurement: Incomplete
|
@@ -81,8 +82,10 @@ class TibberRtDataCoordinator(DataUpdateCoordinator):
|
|
81
82
|
hass: Incomplete
|
82
83
|
_added_sensors: Incomplete
|
83
84
|
_async_remove_device_updates_handler: Incomplete
|
85
|
+
entity_registry: Incomplete
|
84
86
|
def __init__(self, async_add_entities: AddEntitiesCallback, tibber_home: tibber.TibberHome, hass: HomeAssistant) -> None: ...
|
85
87
|
def _handle_ha_stop(self, _event: Event) -> None: ...
|
88
|
+
def _migrate_unique_id(self, sensor_description: SensorEntityDescription) -> None: ...
|
86
89
|
def _add_sensors(self) -> None: ...
|
87
90
|
def get_live_measurement(self) -> Any: ...
|
88
91
|
|
@@ -6,7 +6,7 @@ from aiohttp import ClientSession as ClientSession
|
|
6
6
|
from homeassistant import config_entries as config_entries
|
7
7
|
from homeassistant.components import network as network
|
8
8
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
9
|
-
from homeassistant.const import CONF_ALIAS as CONF_ALIAS, CONF_AUTHENTICATION as CONF_AUTHENTICATION, CONF_HOST as CONF_HOST, CONF_MAC as CONF_MAC, CONF_MODEL as CONF_MODEL, CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME
|
9
|
+
from homeassistant.const import CONF_ALIAS as CONF_ALIAS, CONF_AUTHENTICATION as CONF_AUTHENTICATION, CONF_HOST as CONF_HOST, CONF_MAC as CONF_MAC, CONF_MODEL as CONF_MODEL, CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME
|
10
10
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
11
11
|
from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
|
12
12
|
from homeassistant.helpers import discovery_flow as discovery_flow
|
@@ -7,7 +7,7 @@ from homeassistant.components import dhcp as dhcp
|
|
7
7
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigEntryState as ConfigEntryState, SOURCE_REAUTH as SOURCE_REAUTH
|
8
8
|
from homeassistant.const import CONF_ALIAS as CONF_ALIAS, CONF_DEVICE as CONF_DEVICE, CONF_HOST as CONF_HOST, CONF_MAC as CONF_MAC, CONF_MODEL as CONF_MODEL, CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME
|
9
9
|
from homeassistant.core import callback as callback
|
10
|
-
from homeassistant.data_entry_flow import
|
10
|
+
from homeassistant.data_entry_flow import FlowResult as FlowResult
|
11
11
|
from homeassistant.helpers.typing import DiscoveryInfoType as DiscoveryInfoType
|
12
12
|
from kasa import Credentials, SmartDevice
|
13
13
|
from typing import Any
|
@@ -23,7 +23,7 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
|
23
23
|
def __init__(self) -> None: ...
|
24
24
|
async def async_step_dhcp(self, discovery_info: dhcp.DhcpServiceInfo) -> FlowResult: ...
|
25
25
|
async def async_step_integration_discovery(self, discovery_info: DiscoveryInfoType) -> FlowResult: ...
|
26
|
-
def _update_config_if_entry_in_setup_error(self, entry: ConfigEntry, host: str, config: dict) -> None: ...
|
26
|
+
def _update_config_if_entry_in_setup_error(self, entry: ConfigEntry, host: str, config: dict) -> FlowResult | None: ...
|
27
27
|
async def _async_handle_discovery(self, host: str, formatted_mac: str, config: dict | None = None) -> FlowResult: ...
|
28
28
|
async def async_step_discovery_auth_confirm(self, user_input: dict[str, Any] | None = None) -> FlowResult: ...
|
29
29
|
def _async_make_placeholders_from_discovery(self) -> dict[str, str]: ...
|
@@ -31,6 +31,7 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, asyn
|
|
31
31
|
class TPLinkSmartBulb(CoordinatedTPLinkEntity, LightEntity):
|
32
32
|
_attr_supported_features: Incomplete
|
33
33
|
_attr_name: Incomplete
|
34
|
+
_fixed_color_mode: ColorMode | None
|
34
35
|
device: SmartBulb
|
35
36
|
_attr_unique_id: Incomplete
|
36
37
|
_attr_min_color_temp_kelvin: Incomplete
|
@@ -7,7 +7,7 @@ from homeassistant.components.binary_sensor import BinarySensorDeviceClass as Bi
|
|
7
7
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
8
8
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
9
9
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
10
|
-
from tplink_omada_client.devices import OmadaDevice as OmadaDevice, OmadaGateway,
|
10
|
+
from tplink_omada_client.devices import OmadaDevice as OmadaDevice, OmadaGateway, OmadaGatewayPortStatus as OmadaGatewayPortStatus
|
11
11
|
|
12
12
|
async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
|
13
13
|
def get_gateway_port_status_sensors(gateway: OmadaGateway, hass: HomeAssistant, coordinator: OmadaGatewayCoordinator) -> Generator[BinarySensorEntity, None, None]: ...
|
@@ -17,7 +17,7 @@ class GatewayPortBinarySensorConfig:
|
|
17
17
|
id_suffix: str
|
18
18
|
name_suffix: str
|
19
19
|
device_class: BinarySensorDeviceClass
|
20
|
-
update_func: Callable[[
|
20
|
+
update_func: Callable[[OmadaGatewayPortStatus], bool]
|
21
21
|
def __init__(self, port_number, id_suffix, name_suffix, device_class, update_func) -> None: ...
|
22
22
|
def __lt__(self, other): ...
|
23
23
|
def __le__(self, other): ...
|
@@ -7,7 +7,7 @@ from homeassistant.core import HomeAssistant as HomeAssistant
|
|
7
7
|
from homeassistant.data_entry_flow import FlowResult as FlowResult
|
8
8
|
from homeassistant.helpers import selector as selector
|
9
9
|
from homeassistant.helpers.aiohttp_client import async_create_clientsession as async_create_clientsession, async_get_clientsession as async_get_clientsession
|
10
|
-
from tplink_omada_client
|
10
|
+
from tplink_omada_client import OmadaClient, OmadaSite as OmadaSite
|
11
11
|
from types import MappingProxyType
|
12
12
|
from typing import Any, NamedTuple
|
13
13
|
|
@@ -1,8 +1,8 @@
|
|
1
1
|
from .coordinator import OmadaCoordinator as OmadaCoordinator
|
2
2
|
from _typeshed import Incomplete
|
3
3
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
4
|
+
from tplink_omada_client import OmadaSiteClient as OmadaSiteClient
|
4
5
|
from tplink_omada_client.devices import OmadaGateway, OmadaSwitch as OmadaSwitch, OmadaSwitchPortDetails
|
5
|
-
from tplink_omada_client.omadasiteclient import OmadaSiteClient as OmadaSiteClient
|
6
6
|
|
7
7
|
POLL_SWITCH_PORT: int
|
8
8
|
POLL_GATEWAY: int
|
@@ -1,7 +1,7 @@
|
|
1
1
|
from _typeshed import Incomplete
|
2
2
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
3
3
|
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
|
4
|
-
from tplink_omada_client
|
4
|
+
from tplink_omada_client import OmadaSiteClient as OmadaSiteClient
|
5
5
|
from typing import Generic, TypeVar
|
6
6
|
|
7
7
|
_LOGGER: Incomplete
|
@@ -8,8 +8,8 @@ from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
8
8
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
9
9
|
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
|
10
10
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
11
|
+
from tplink_omada_client import OmadaSiteClient as OmadaSiteClient
|
11
12
|
from tplink_omada_client.devices import OmadaFirmwareUpdate as OmadaFirmwareUpdate, OmadaListDevice as OmadaListDevice
|
12
|
-
from tplink_omada_client.omadasiteclient import OmadaSiteClient as OmadaSiteClient
|
13
13
|
from typing import Any, NamedTuple
|
14
14
|
|
15
15
|
POLL_DELAY_IDLE: Incomplete
|
@@ -12,7 +12,6 @@ from typing import Any
|
|
12
12
|
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
|
13
13
|
|
14
14
|
class TractiveDeviceTracker(TractiveEntity, TrackerEntity):
|
15
|
-
_attr_icon: str
|
16
15
|
_attr_translation_key: str
|
17
16
|
_battery_level: Incomplete
|
18
17
|
_latitude: Incomplete
|
@@ -1,6 +1,6 @@
|
|
1
1
|
from .const import PLATFORMS as PLATFORMS, UNIFI_WIRELESS_CLIENTS as UNIFI_WIRELESS_CLIENTS
|
2
|
-
from .controller import UniFiController as UniFiController, get_unifi_controller as get_unifi_controller
|
3
2
|
from .errors import AuthenticationRequired as AuthenticationRequired, CannotConnect as CannotConnect
|
3
|
+
from .hub import UnifiHub as UnifiHub, get_unifi_api as get_unifi_api
|
4
4
|
from .services import async_setup_services as async_setup_services, async_unload_services as async_unload_services
|
5
5
|
from _typeshed import Incomplete
|
6
6
|
from aiounifi.models.client import Client as Client
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import aiounifi
|
2
|
-
from .controller import UniFiController as UniFiController
|
3
2
|
from .entity import HandlerT as HandlerT, UnifiEntity as UnifiEntity, UnifiEntityDescription as UnifiEntityDescription, async_device_available_fn as async_device_available_fn, async_device_device_info_fn as async_device_device_info_fn
|
3
|
+
from .hub import UnifiHub as UnifiHub
|
4
4
|
from aiounifi.interfaces.api_handlers import ItemEvent as ItemEvent
|
5
5
|
from aiounifi.models.api import ApiItemT
|
6
6
|
from collections.abc import Callable as Callable, Coroutine
|
@@ -1,6 +1,6 @@
|
|
1
1
|
from .const import CONF_ALLOW_BANDWIDTH_SENSORS as CONF_ALLOW_BANDWIDTH_SENSORS, CONF_ALLOW_UPTIME_SENSORS as CONF_ALLOW_UPTIME_SENSORS, CONF_BLOCK_CLIENT as CONF_BLOCK_CLIENT, CONF_CLIENT_SOURCE as CONF_CLIENT_SOURCE, CONF_DETECTION_TIME as CONF_DETECTION_TIME, CONF_DPI_RESTRICTIONS as CONF_DPI_RESTRICTIONS, CONF_IGNORE_WIRED_BUG as CONF_IGNORE_WIRED_BUG, CONF_SITE_ID as CONF_SITE_ID, CONF_SSID_FILTER as CONF_SSID_FILTER, CONF_TRACK_CLIENTS as CONF_TRACK_CLIENTS, CONF_TRACK_DEVICES as CONF_TRACK_DEVICES, CONF_TRACK_WIRED_CLIENTS as CONF_TRACK_WIRED_CLIENTS, DEFAULT_DPI_RESTRICTIONS as DEFAULT_DPI_RESTRICTIONS, DOMAIN as UNIFI_DOMAIN
|
2
|
-
from .controller import UniFiController as UniFiController, get_unifi_controller as get_unifi_controller
|
3
2
|
from .errors import AuthenticationRequired as AuthenticationRequired, CannotConnect as CannotConnect
|
3
|
+
from .hub import UnifiHub as UnifiHub, get_unifi_api as get_unifi_api
|
4
4
|
from _typeshed import Incomplete
|
5
5
|
from aiounifi.interfaces.sites import Sites as Sites
|
6
6
|
from collections.abc import Mapping
|
@@ -32,7 +32,7 @@ class UnifiFlowHandler(config_entries.ConfigFlow, domain=UNIFI_DOMAIN):
|
|
32
32
|
async def async_step_ssdp(self, discovery_info: ssdp.SsdpServiceInfo) -> FlowResult: ...
|
33
33
|
|
34
34
|
class UnifiOptionsFlowHandler(config_entries.OptionsFlow):
|
35
|
-
|
35
|
+
hub: UnifiHub
|
36
36
|
config_entry: Incomplete
|
37
37
|
options: Incomplete
|
38
38
|
def __init__(self, config_entry: config_entries.ConfigEntry) -> None: ...
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import aiounifi
|
2
|
-
from .controller import UNIFI_DOMAIN as UNIFI_DOMAIN, UniFiController as UniFiController
|
3
2
|
from .entity import HandlerT as HandlerT, UnifiEntity as UnifiEntity, UnifiEntityDescription as UnifiEntityDescription, async_device_available_fn as async_device_available_fn
|
3
|
+
from .hub import UnifiHub as UnifiHub
|
4
4
|
from _typeshed import Incomplete
|
5
5
|
from aiounifi.interfaces.api_handlers import ItemEvent
|
6
6
|
from aiounifi.models.api import ApiItemT
|
@@ -26,15 +26,15 @@ WIRED_DISCONNECTION: Incomplete
|
|
26
26
|
WIRELESS_CONNECTION: Incomplete
|
27
27
|
WIRELESS_DISCONNECTION: Incomplete
|
28
28
|
|
29
|
-
def async_client_allowed_fn(
|
30
|
-
def async_client_is_connected_fn(
|
31
|
-
def async_device_heartbeat_timedelta_fn(
|
29
|
+
def async_client_allowed_fn(hub: UnifiHub, obj_id: str) -> bool: ...
|
30
|
+
def async_client_is_connected_fn(hub: UnifiHub, obj_id: str) -> bool: ...
|
31
|
+
def async_device_heartbeat_timedelta_fn(hub: UnifiHub, obj_id: str) -> timedelta: ...
|
32
32
|
|
33
33
|
@dataclass(frozen=True)
|
34
34
|
class UnifiEntityTrackerDescriptionMixin(Generic[HandlerT, ApiItemT]):
|
35
|
-
heartbeat_timedelta_fn: Callable[[
|
35
|
+
heartbeat_timedelta_fn: Callable[[UnifiHub, str], timedelta]
|
36
36
|
ip_address_fn: Callable[[aiounifi.Controller, str], str | None]
|
37
|
-
is_connected_fn: Callable[[
|
37
|
+
is_connected_fn: Callable[[UnifiHub, str], bool]
|
38
38
|
hostname_fn: Callable[[aiounifi.Controller, str], str | None]
|
39
39
|
def __init__(self, heartbeat_timedelta_fn, ip_address_fn, is_connected_fn, hostname_fn) -> None: ...
|
40
40
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
from .
|
1
|
+
from .hub import UnifiHub as UnifiHub
|
2
2
|
from _typeshed import Incomplete
|
3
3
|
from collections.abc import Mapping
|
4
4
|
from homeassistant.components.diagnostics import REDACTED as REDACTED, async_redact_data as async_redact_data
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import abc
|
2
2
|
import aiounifi
|
3
3
|
from .const import ATTR_MANUFACTURER as ATTR_MANUFACTURER, DOMAIN as DOMAIN
|
4
|
-
from .
|
4
|
+
from .hub import UnifiHub as UnifiHub
|
5
5
|
from _typeshed import Incomplete
|
6
6
|
from abc import abstractmethod
|
7
7
|
from aiounifi.interfaces.api_handlers import APIHandler, CallbackType, ItemEvent, UnsubscribeType
|
@@ -18,25 +18,25 @@ from typing import Generic, TypeVar
|
|
18
18
|
HandlerT = TypeVar('HandlerT', bound=APIHandler)
|
19
19
|
SubscriptionT = Callable[[CallbackType, ItemEvent], UnsubscribeType]
|
20
20
|
|
21
|
-
def async_device_available_fn(
|
22
|
-
def async_wlan_available_fn(
|
23
|
-
def async_device_device_info_fn(
|
24
|
-
def async_wlan_device_info_fn(
|
25
|
-
def async_client_device_info_fn(
|
21
|
+
def async_device_available_fn(hub: UnifiHub, obj_id: str) -> bool: ...
|
22
|
+
def async_wlan_available_fn(hub: UnifiHub, obj_id: str) -> bool: ...
|
23
|
+
def async_device_device_info_fn(hub: UnifiHub, obj_id: str) -> DeviceInfo: ...
|
24
|
+
def async_wlan_device_info_fn(hub: UnifiHub, obj_id: str) -> DeviceInfo: ...
|
25
|
+
def async_client_device_info_fn(hub: UnifiHub, obj_id: str) -> DeviceInfo: ...
|
26
26
|
|
27
27
|
@dataclass(frozen=True)
|
28
28
|
class UnifiDescription(Generic[HandlerT, ApiItemT]):
|
29
|
-
allowed_fn: Callable[[
|
29
|
+
allowed_fn: Callable[[UnifiHub, str], bool]
|
30
30
|
api_handler_fn: Callable[[aiounifi.Controller], HandlerT]
|
31
|
-
available_fn: Callable[[
|
32
|
-
device_info_fn: Callable[[
|
31
|
+
available_fn: Callable[[UnifiHub, str], bool]
|
32
|
+
device_info_fn: Callable[[UnifiHub, str], DeviceInfo | None]
|
33
33
|
event_is_on: tuple[EventKey, ...] | None
|
34
34
|
event_to_subscribe: tuple[EventKey, ...] | None
|
35
35
|
name_fn: Callable[[ApiItemT], str | None]
|
36
36
|
object_fn: Callable[[aiounifi.Controller, str], ApiItemT]
|
37
37
|
should_poll: bool
|
38
|
-
supported_fn: Callable[[
|
39
|
-
unique_id_fn: Callable[[
|
38
|
+
supported_fn: Callable[[UnifiHub, str], bool | None]
|
39
|
+
unique_id_fn: Callable[[UnifiHub, str], str]
|
40
40
|
def __init__(self, allowed_fn, api_handler_fn, available_fn, device_info_fn, event_is_on, event_to_subscribe, name_fn, object_fn, should_poll, supported_fn, unique_id_fn) -> None: ...
|
41
41
|
|
42
42
|
@dataclass(frozen=True)
|
@@ -47,13 +47,13 @@ class UnifiEntity(Entity, Generic[HandlerT, ApiItemT], metaclass=abc.ABCMeta):
|
|
47
47
|
entity_description: UnifiEntityDescription[HandlerT, ApiItemT]
|
48
48
|
_attr_unique_id: str
|
49
49
|
_obj_id: Incomplete
|
50
|
-
|
50
|
+
hub: Incomplete
|
51
51
|
_removed: bool
|
52
52
|
_attr_available: Incomplete
|
53
53
|
_attr_device_info: Incomplete
|
54
54
|
_attr_should_poll: Incomplete
|
55
55
|
_attr_name: Incomplete
|
56
|
-
def __init__(self, obj_id: str,
|
56
|
+
def __init__(self, obj_id: str, hub: UnifiHub, description: UnifiEntityDescription[HandlerT, ApiItemT]) -> None: ...
|
57
57
|
async def async_added_to_hass(self) -> None: ...
|
58
58
|
def async_signalling_callback(self, event: ItemEvent, obj_id: str) -> None: ...
|
59
59
|
def async_signal_reachable_callback(self) -> None: ...
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import aiounifi
|
2
|
+
from ..const import CONF_SITE_ID as CONF_SITE_ID, LOGGER as LOGGER
|
3
|
+
from ..errors import AuthenticationRequired as AuthenticationRequired, CannotConnect as CannotConnect
|
4
|
+
from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PASSWORD, CONF_PORT as CONF_PORT, CONF_USERNAME as CONF_USERNAME, CONF_VERIFY_SSL as CONF_VERIFY_SSL
|
5
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
6
|
+
from homeassistant.helpers import aiohttp_client as aiohttp_client
|
7
|
+
from types import MappingProxyType
|
8
|
+
from typing import Any
|
9
|
+
|
10
|
+
async def get_unifi_api(hass: HomeAssistant, config: MappingProxyType[str, Any]) -> aiounifi.Controller: ...
|
@@ -1,32 +1,25 @@
|
|
1
1
|
import aiounifi
|
2
|
-
from
|
3
|
-
from
|
4
|
-
from .
|
2
|
+
from ..const import ATTR_MANUFACTURER as ATTR_MANUFACTURER, CONF_ALLOW_BANDWIDTH_SENSORS as CONF_ALLOW_BANDWIDTH_SENSORS, CONF_ALLOW_UPTIME_SENSORS as CONF_ALLOW_UPTIME_SENSORS, CONF_BLOCK_CLIENT as CONF_BLOCK_CLIENT, CONF_CLIENT_SOURCE as CONF_CLIENT_SOURCE, CONF_DETECTION_TIME as CONF_DETECTION_TIME, CONF_DPI_RESTRICTIONS as CONF_DPI_RESTRICTIONS, CONF_IGNORE_WIRED_BUG as CONF_IGNORE_WIRED_BUG, CONF_SITE_ID as CONF_SITE_ID, CONF_SSID_FILTER as CONF_SSID_FILTER, CONF_TRACK_CLIENTS as CONF_TRACK_CLIENTS, CONF_TRACK_DEVICES as CONF_TRACK_DEVICES, CONF_TRACK_WIRED_CLIENTS as CONF_TRACK_WIRED_CLIENTS, DEFAULT_ALLOW_BANDWIDTH_SENSORS as DEFAULT_ALLOW_BANDWIDTH_SENSORS, DEFAULT_ALLOW_UPTIME_SENSORS as DEFAULT_ALLOW_UPTIME_SENSORS, DEFAULT_DETECTION_TIME as DEFAULT_DETECTION_TIME, DEFAULT_DPI_RESTRICTIONS as DEFAULT_DPI_RESTRICTIONS, DEFAULT_IGNORE_WIRED_BUG as DEFAULT_IGNORE_WIRED_BUG, DEFAULT_TRACK_CLIENTS as DEFAULT_TRACK_CLIENTS, DEFAULT_TRACK_DEVICES as DEFAULT_TRACK_DEVICES, DEFAULT_TRACK_WIRED_CLIENTS as DEFAULT_TRACK_WIRED_CLIENTS, PLATFORMS as PLATFORMS, UNIFI_WIRELESS_CLIENTS as UNIFI_WIRELESS_CLIENTS
|
3
|
+
from ..entity import UnifiEntity as UnifiEntity, UnifiEntityDescription as UnifiEntityDescription
|
4
|
+
from .websocket import UnifiWebsocket as UnifiWebsocket
|
5
5
|
from _typeshed import Incomplete
|
6
6
|
from datetime import datetime
|
7
7
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
8
|
-
from homeassistant.const import CONF_HOST as CONF_HOST,
|
8
|
+
from homeassistant.const import CONF_HOST as CONF_HOST, Platform as Platform
|
9
9
|
from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Event as Event, HomeAssistant as HomeAssistant, callback as callback
|
10
|
-
from homeassistant.helpers import aiohttp_client as aiohttp_client
|
11
10
|
from homeassistant.helpers.device_registry import DeviceEntry as DeviceEntry, DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
|
12
11
|
from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect, async_dispatcher_send as async_dispatcher_send
|
13
12
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
14
13
|
from homeassistant.helpers.entity_registry import async_entries_for_config_entry as async_entries_for_config_entry
|
15
14
|
from homeassistant.helpers.event import async_call_later as async_call_later, async_track_time_interval as async_track_time_interval
|
16
|
-
from types import MappingProxyType
|
17
|
-
from typing import Any
|
18
15
|
|
19
|
-
RETRY_TIMER: int
|
20
16
|
CHECK_HEARTBEAT_INTERVAL: Incomplete
|
21
|
-
CHECK_WEBSOCKET_INTERVAL: Incomplete
|
22
17
|
|
23
|
-
class
|
18
|
+
class UnifiHub:
|
24
19
|
hass: Incomplete
|
25
20
|
config_entry: Incomplete
|
26
21
|
api: Incomplete
|
27
|
-
|
28
|
-
_cancel_websocket_check: Incomplete
|
29
|
-
available: bool
|
22
|
+
websocket: Incomplete
|
30
23
|
wireless_clients: Incomplete
|
31
24
|
site: Incomplete
|
32
25
|
is_admin: bool
|
@@ -51,8 +44,11 @@ class UniFiController:
|
|
51
44
|
def load_config_entry_options(self) -> None: ...
|
52
45
|
@property
|
53
46
|
def host(self) -> str: ...
|
47
|
+
@property
|
48
|
+
def available(self) -> bool: ...
|
54
49
|
@staticmethod
|
55
50
|
def register_platform(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback, entity_class: type[UnifiEntity], descriptions: tuple[UnifiEntityDescription, ...], requires_admin: bool = False) -> None: ...
|
51
|
+
def _async_should_add_entity(self, description: UnifiEntityDescription, obj_id: str) -> bool: ...
|
56
52
|
def register_platform_add_entities(self, unifi_platform_entity: type[UnifiEntity], descriptions: tuple[UnifiEntityDescription, ...], async_add_entities: AddEntitiesCallback) -> None: ...
|
57
53
|
@property
|
58
54
|
def signal_reachable(self) -> str: ...
|
@@ -69,11 +65,5 @@ class UniFiController:
|
|
69
65
|
def async_update_device_registry(self) -> DeviceEntry: ...
|
70
66
|
@staticmethod
|
71
67
|
async def async_config_entry_updated(hass: HomeAssistant, config_entry: ConfigEntry) -> None: ...
|
72
|
-
def start_websocket(self) -> None: ...
|
73
|
-
def reconnect(self, log: bool = False) -> None: ...
|
74
|
-
async def async_reconnect(self) -> None: ...
|
75
|
-
def _async_watch_websocket(self, now: datetime) -> None: ...
|
76
68
|
def shutdown(self, event: Event) -> None: ...
|
77
69
|
async def async_reset(self) -> bool: ...
|
78
|
-
|
79
|
-
async def get_unifi_controller(hass: HomeAssistant, config: MappingProxyType[str, Any]) -> aiounifi.Controller: ...
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import aiounifi
|
2
|
+
from ..const import LOGGER as LOGGER
|
3
|
+
from _typeshed import Incomplete
|
4
|
+
from datetime import datetime
|
5
|
+
from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HomeAssistant as HomeAssistant, callback as callback
|
6
|
+
from homeassistant.helpers.dispatcher import async_dispatcher_send as async_dispatcher_send
|
7
|
+
from homeassistant.helpers.event import async_track_time_interval as async_track_time_interval
|
8
|
+
|
9
|
+
RETRY_TIMER: int
|
10
|
+
CHECK_WEBSOCKET_INTERVAL: Incomplete
|
11
|
+
|
12
|
+
class UnifiWebsocket:
|
13
|
+
hass: Incomplete
|
14
|
+
api: Incomplete
|
15
|
+
signal: Incomplete
|
16
|
+
ws_task: Incomplete
|
17
|
+
_cancel_websocket_check: Incomplete
|
18
|
+
available: bool
|
19
|
+
def __init__(self, hass: HomeAssistant, api: aiounifi.Controller, signal: str) -> None: ...
|
20
|
+
def start(self) -> None: ...
|
21
|
+
def stop(self) -> None: ...
|
22
|
+
async def stop_and_wait(self) -> None: ...
|
23
|
+
def start_websocket(self) -> None: ...
|
24
|
+
def reconnect(self, log: bool = False) -> None: ...
|
25
|
+
def _async_watch_websocket(self, now: datetime) -> None: ...
|