homeassistant-stubs 2025.8.3__py3-none-any.whl → 2025.9.0b1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of homeassistant-stubs might be problematic. Click here for more details.

Files changed (234) hide show
  1. homeassistant-stubs/auth/models.pyi +3 -1
  2. homeassistant-stubs/components/airos/binary_sensor.pyi +27 -0
  3. homeassistant-stubs/components/airos/sensor.pyi +4 -2
  4. homeassistant-stubs/components/airq/number.pyi +31 -0
  5. homeassistant-stubs/components/aladdin_connect/__init__.pyi +10 -5
  6. homeassistant-stubs/components/aladdin_connect/api.pyi +12 -0
  7. homeassistant-stubs/components/aladdin_connect/application_credentials.pyi +5 -0
  8. homeassistant-stubs/components/aladdin_connect/config_flow.pyi +15 -4
  9. homeassistant-stubs/components/aladdin_connect/const.pyi +10 -0
  10. homeassistant-stubs/components/aladdin_connect/coordinator.pyi +16 -0
  11. homeassistant-stubs/components/aladdin_connect/cover.pyi +25 -0
  12. homeassistant-stubs/components/aladdin_connect/entity.pyi +15 -0
  13. homeassistant-stubs/components/aladdin_connect/sensor.pyi +25 -0
  14. homeassistant-stubs/components/alexa_devices/__init__.pyi +1 -1
  15. homeassistant-stubs/components/alexa_devices/config_flow.pyi +2 -0
  16. homeassistant-stubs/components/alexa_devices/const.pyi +1 -1
  17. homeassistant-stubs/components/alexa_devices/sensor.pyi +1 -1
  18. homeassistant-stubs/components/amberelectric/const.pyi +0 -1
  19. homeassistant-stubs/components/amberelectric/services.pyi +2 -1
  20. homeassistant-stubs/components/ambient_station/entity.pyi +1 -1
  21. homeassistant-stubs/components/android_ip_webcam/coordinator.pyi +0 -1
  22. homeassistant-stubs/components/apcupsd/binary_sensor.pyi +2 -6
  23. homeassistant-stubs/components/apcupsd/entity.pyi +11 -0
  24. homeassistant-stubs/components/apcupsd/sensor.pyi +2 -6
  25. homeassistant-stubs/components/asuswrt/bridge.pyi +10 -8
  26. homeassistant-stubs/components/asuswrt/helpers.pyi +8 -0
  27. homeassistant-stubs/components/auth/login_flow.pyi +1 -1
  28. homeassistant-stubs/components/auth/mfa_setup_flow.pyi +1 -1
  29. homeassistant-stubs/components/awair/const.pyi +1 -0
  30. homeassistant-stubs/components/awair/sensor.pyi +2 -2
  31. homeassistant-stubs/components/backup/config.pyi +0 -14
  32. homeassistant-stubs/components/bayesian/__init__.pyi +6 -4
  33. homeassistant-stubs/components/bayesian/binary_sensor.pyi +6 -5
  34. homeassistant-stubs/components/bayesian/config_flow.pyi +69 -0
  35. homeassistant-stubs/components/bayesian/const.pyi +5 -0
  36. homeassistant-stubs/components/bayesian/issues.pyi +1 -1
  37. homeassistant-stubs/components/bosch_alarm/const.pyi +0 -1
  38. homeassistant-stubs/components/bosch_alarm/services.pyi +2 -1
  39. homeassistant-stubs/components/braviatv/button.pyi +1 -1
  40. homeassistant-stubs/components/braviatv/coordinator.pyi +1 -0
  41. homeassistant-stubs/components/braviatv/entity.pyi +1 -1
  42. homeassistant-stubs/components/climate/__init__.pyi +1 -1
  43. homeassistant-stubs/components/cloud/alexa_config.pyi +2 -1
  44. homeassistant-stubs/components/cloud/subscription.pyi +2 -4
  45. homeassistant-stubs/components/co2signal/coordinator.pyi +3 -3
  46. homeassistant-stubs/components/co2signal/helpers.pyi +2 -3
  47. homeassistant-stubs/components/co2signal/sensor.pyi +3 -3
  48. homeassistant-stubs/components/config/config_entries.pyi +6 -3
  49. homeassistant-stubs/components/demo/media_player.pyi +2 -0
  50. homeassistant-stubs/components/device_automation/condition.pyi +2 -2
  51. homeassistant-stubs/components/enphase_envoy/binary_sensor.pyi +29 -1
  52. homeassistant-stubs/components/enphase_envoy/sensor.pyi +30 -1
  53. homeassistant-stubs/components/esphome/manager.pyi +1 -2
  54. homeassistant-stubs/components/esphome/media_player.pyi +5 -0
  55. homeassistant-stubs/components/fan/intent.pyi +7 -0
  56. homeassistant-stubs/components/fritz/coordinator.pyi +0 -1
  57. homeassistant-stubs/components/fyta/const.pyi +4 -0
  58. homeassistant-stubs/components/fyta/sensor.pyi +11 -0
  59. homeassistant-stubs/components/glances/coordinator.pyi +0 -1
  60. homeassistant-stubs/components/group/config_flow.pyi +2 -0
  61. homeassistant-stubs/components/habitica/__init__.pyi +6 -2
  62. homeassistant-stubs/components/habitica/binary_sensor.pyi +13 -4
  63. homeassistant-stubs/components/habitica/coordinator.pyi +18 -4
  64. homeassistant-stubs/components/habitica/entity.pyi +10 -1
  65. homeassistant-stubs/components/habitica/image.pyi +19 -4
  66. homeassistant-stubs/components/habitica/sensor.pyi +27 -3
  67. homeassistant-stubs/components/habitica/util.pyi +5 -2
  68. homeassistant-stubs/components/home_connect/const.pyi +0 -7
  69. homeassistant-stubs/components/home_connect/services.pyi +1 -14
  70. homeassistant-stubs/components/homeassistant_hardware/coordinator.pyi +0 -1
  71. homeassistant-stubs/components/homee/config_flow.pyi +8 -2
  72. homeassistant-stubs/components/homee/const.pyi +3 -0
  73. homeassistant-stubs/components/homekit/accessories.pyi +1 -1
  74. homeassistant-stubs/components/homekit/const.pyi +4 -0
  75. homeassistant-stubs/components/homekit/type_switches.pyi +11 -1
  76. homeassistant-stubs/components/homekit/util.pyi +3 -2
  77. homeassistant-stubs/components/huawei_lte/__init__.pyi +2 -2
  78. homeassistant-stubs/components/huawei_lte/const.pyi +0 -1
  79. homeassistant-stubs/components/huawei_lte/notify.pyi +2 -2
  80. homeassistant-stubs/components/husqvarna_automower/button.pyi +4 -0
  81. homeassistant-stubs/components/husqvarna_automower/const.pyi +1 -0
  82. homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +10 -0
  83. homeassistant-stubs/components/husqvarna_automower/event.pyi +35 -0
  84. homeassistant-stubs/components/husqvarna_automower/sensor.pyi +1 -2
  85. homeassistant-stubs/components/idasen_desk/__init__.pyi +0 -1
  86. homeassistant-stubs/components/jewish_calendar/__init__.pyi +2 -1
  87. homeassistant-stubs/components/jewish_calendar/coordinator.pyi +41 -0
  88. homeassistant-stubs/components/jewish_calendar/entity.pyi +5 -26
  89. homeassistant-stubs/components/jewish_calendar/sensor.pyi +1 -1
  90. homeassistant-stubs/components/knx/scene.pyi +5 -4
  91. homeassistant-stubs/components/knx/storage/entity_store_schema.pyi +5 -11
  92. homeassistant-stubs/components/knx/storage/knx_selector.pyi +57 -6
  93. homeassistant-stubs/components/knx/storage/serialize.pyi +10 -0
  94. homeassistant-stubs/components/knx/storage/util.pyi +2 -0
  95. homeassistant-stubs/components/knx/websocket.pyi +7 -3
  96. homeassistant-stubs/components/letpot/select.pyi +39 -0
  97. homeassistant-stubs/components/mastodon/__init__.pyi +1 -2
  98. homeassistant-stubs/components/mastodon/config_flow.pyi +2 -2
  99. homeassistant-stubs/components/mastodon/const.pyi +0 -1
  100. homeassistant-stubs/components/mastodon/diagnostics.pyi +2 -2
  101. homeassistant-stubs/components/mastodon/services.pyi +2 -1
  102. homeassistant-stubs/components/matter/lock.pyi +6 -0
  103. homeassistant-stubs/components/matter/sensor.pyi +2 -1
  104. homeassistant-stubs/components/mealie/const.pyi +0 -1
  105. homeassistant-stubs/components/mealie/services.pyi +2 -2
  106. homeassistant-stubs/components/media_player/__init__.pyi +4 -0
  107. homeassistant-stubs/components/media_player/intent.pyi +13 -3
  108. homeassistant-stubs/components/met_eireann/const.pyi +1 -1
  109. homeassistant-stubs/components/met_eireann/weather.pyi +4 -0
  110. homeassistant-stubs/components/miele/const.pyi +1 -0
  111. homeassistant-stubs/components/miele/coordinator.pyi +2 -3
  112. homeassistant-stubs/components/miele/entity.pyi +2 -3
  113. homeassistant-stubs/components/miele/sensor.pyi +25 -6
  114. homeassistant-stubs/components/modbus/binary_sensor.pyi +1 -2
  115. homeassistant-stubs/components/modbus/climate.pyi +1 -2
  116. homeassistant-stubs/components/modbus/const.pyi +2 -0
  117. homeassistant-stubs/components/modbus/entity.pyi +8 -10
  118. homeassistant-stubs/components/modbus/light.pyi +0 -1
  119. homeassistant-stubs/components/modbus/modbus.pyi +9 -11
  120. homeassistant-stubs/components/modbus/sensor.pyi +1 -3
  121. homeassistant-stubs/components/mqtt/alarm_control_panel.pyi +2 -23
  122. homeassistant-stubs/components/mqtt/config_flow.pyi +8 -2
  123. homeassistant-stubs/components/mqtt/const.pyi +40 -1
  124. homeassistant-stubs/components/mqtt/lock.pyi +1 -21
  125. homeassistant-stubs/components/mqtt/number.pyi +1 -0
  126. homeassistant-stubs/components/mqtt/sensor.pyi +1 -1
  127. homeassistant-stubs/components/music_assistant/actions.pyi +2 -1
  128. homeassistant-stubs/components/music_assistant/const.pyi +0 -1
  129. homeassistant-stubs/components/number/__init__.pyi +3 -0
  130. homeassistant-stubs/components/number/const.pyi +2 -1
  131. homeassistant-stubs/components/open_router/entity.pyi +2 -2
  132. homeassistant-stubs/components/openai_conversation/entity.pyi +3 -3
  133. homeassistant-stubs/components/opower/__init__.pyi +1 -0
  134. homeassistant-stubs/components/opower/repairs.pyi +13 -0
  135. homeassistant-stubs/components/overseerr/const.pyi +0 -1
  136. homeassistant-stubs/components/overseerr/services.pyi +2 -1
  137. homeassistant-stubs/components/person/__init__.pyi +2 -1
  138. homeassistant-stubs/components/qbus/binary_sensor.pyi +43 -0
  139. homeassistant-stubs/components/qbus/climate.pyi +1 -1
  140. homeassistant-stubs/components/qbus/coordinator.pyi +4 -3
  141. homeassistant-stubs/components/qbus/cover.pyi +1 -1
  142. homeassistant-stubs/components/qbus/entity.pyi +6 -5
  143. homeassistant-stubs/components/qbus/light.pyi +1 -1
  144. homeassistant-stubs/components/qbus/scene.pyi +4 -6
  145. homeassistant-stubs/components/qbus/sensor.pyi +67 -0
  146. homeassistant-stubs/components/qbus/switch.pyi +1 -1
  147. homeassistant-stubs/components/recorder/statistics.pyi +1 -1
  148. homeassistant-stubs/components/recorder/websocket_api.pyi +1 -1
  149. homeassistant-stubs/components/rest_command/__init__.pyi +1 -1
  150. homeassistant-stubs/components/romy/coordinator.pyi +0 -1
  151. homeassistant-stubs/components/russound_rio/media_browser.pyi +8 -0
  152. homeassistant-stubs/components/russound_rio/media_player.pyi +3 -2
  153. homeassistant-stubs/components/ruuvitag_ble/sensor.pyi +2 -2
  154. homeassistant-stubs/components/scene/__init__.pyi +13 -4
  155. homeassistant-stubs/components/sensibo/select.pyi +0 -5
  156. homeassistant-stubs/components/sensor/__init__.pyi +3 -0
  157. homeassistant-stubs/components/sensor/const.pyi +3 -2
  158. homeassistant-stubs/components/sensor/recorder.pyi +1 -1
  159. homeassistant-stubs/components/sleep_as_android/__init__.pyi +16 -0
  160. homeassistant-stubs/components/sleep_as_android/config_flow.pyi +2 -0
  161. homeassistant-stubs/components/sleep_as_android/const.pyi +9 -0
  162. homeassistant-stubs/components/sleep_as_android/diagnostics.pyi +5 -0
  163. homeassistant-stubs/components/sleep_as_android/entity.pyi +20 -0
  164. homeassistant-stubs/components/sleep_as_android/event.pyi +33 -0
  165. homeassistant-stubs/components/sleep_as_android/sensor.pyi +25 -0
  166. homeassistant-stubs/components/solarlog/sensor.pyi +11 -1
  167. homeassistant-stubs/components/speedtestdotnet/coordinator.pyi +0 -1
  168. homeassistant-stubs/components/stookwijzer/const.pyi +0 -1
  169. homeassistant-stubs/components/stookwijzer/services.pyi +2 -1
  170. homeassistant-stubs/components/sun/condition.pyi +2 -2
  171. homeassistant-stubs/components/switchbot_cloud/__init__.pyi +1 -0
  172. homeassistant-stubs/components/switchbot_cloud/const.pyi +10 -0
  173. homeassistant-stubs/components/switchbot_cloud/cover.pyi +57 -0
  174. homeassistant-stubs/components/switchbot_cloud/fan.pyi +22 -1
  175. homeassistant-stubs/components/telegram_bot/__init__.pyi +2 -1
  176. homeassistant-stubs/components/telegram_bot/bot.pyi +4 -1
  177. homeassistant-stubs/components/telegram_bot/notify.pyi +21 -0
  178. homeassistant-stubs/components/unifi/switch.pyi +3 -0
  179. homeassistant-stubs/components/volvo/__init__.pyi +1 -1
  180. homeassistant-stubs/components/volvo/binary_sensor.pyi +42 -0
  181. homeassistant-stubs/components/volvo/const.pyi +1 -1
  182. homeassistant-stubs/components/volvo/coordinator.pyi +5 -0
  183. homeassistant-stubs/components/volvo/sensor.pyi +2 -2
  184. homeassistant-stubs/components/webostv/__init__.pyi +2 -2
  185. homeassistant-stubs/components/webostv/const.pyi +0 -1
  186. homeassistant-stubs/components/webostv/notify.pyi +2 -2
  187. homeassistant-stubs/components/wemo/coordinator.pyi +0 -1
  188. homeassistant-stubs/components/workday/__init__.pyi +6 -8
  189. homeassistant-stubs/components/workday/binary_sensor.pyi +9 -33
  190. homeassistant-stubs/components/workday/entity.pyi +34 -0
  191. homeassistant-stubs/components/workday/util.pyi +14 -0
  192. homeassistant-stubs/components/zone/condition.pyi +2 -2
  193. homeassistant-stubs/components/zwave_js/__init__.pyi +5 -5
  194. homeassistant-stubs/components/zwave_js/binary_sensor.pyi +18 -10
  195. homeassistant-stubs/components/zwave_js/const.pyi +0 -1
  196. homeassistant-stubs/components/zwave_js/discovery.pyi +7 -51
  197. homeassistant-stubs/components/zwave_js/discovery_data_template.pyi +1 -11
  198. homeassistant-stubs/components/zwave_js/entity.pyi +15 -5
  199. homeassistant-stubs/components/zwave_js/helpers.pyi +0 -7
  200. homeassistant-stubs/components/zwave_js/migrate.pyi +2 -2
  201. homeassistant-stubs/components/zwave_js/models.pyi +95 -1
  202. homeassistant-stubs/components/zwave_js/triggers/event.pyi +5 -4
  203. homeassistant-stubs/components/zwave_js/triggers/trigger_helpers.pyi +2 -2
  204. homeassistant-stubs/components/zwave_js/triggers/value_updated.pyi +3 -2
  205. homeassistant-stubs/components/zwave_js/update.pyi +0 -3
  206. homeassistant-stubs/config_entries.pyi +5 -0
  207. homeassistant-stubs/const.pyi +9 -5
  208. homeassistant-stubs/data_entry_flow.pyi +0 -1
  209. homeassistant-stubs/helpers/automation.pyi +2 -0
  210. homeassistant-stubs/helpers/condition.pyi +6 -6
  211. homeassistant-stubs/helpers/config_validation.pyi +3 -0
  212. homeassistant-stubs/helpers/data_entry_flow.pyi +1 -1
  213. homeassistant-stubs/helpers/device_registry.pyi +4 -3
  214. homeassistant-stubs/helpers/entity_registry.pyi +6 -4
  215. homeassistant-stubs/helpers/json.pyi +0 -7
  216. homeassistant-stubs/helpers/llm.pyi +1 -0
  217. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +2 -1
  218. homeassistant-stubs/helpers/selector.pyi +2 -1
  219. homeassistant-stubs/helpers/target.pyi +3 -2
  220. homeassistant-stubs/helpers/trigger.pyi +6 -6
  221. homeassistant-stubs/util/unit_conversion.pyi +11 -1
  222. {homeassistant_stubs-2025.8.3.dist-info → homeassistant_stubs-2025.9.0b1.dist-info}/METADATA +2 -2
  223. {homeassistant_stubs-2025.8.3.dist-info → homeassistant_stubs-2025.9.0b1.dist-info}/RECORD +225 -200
  224. homeassistant-stubs/components/linear_garage_door/__init__.pyi +0 -10
  225. homeassistant-stubs/components/linear_garage_door/config_flow.pyi +0 -25
  226. homeassistant-stubs/components/linear_garage_door/const.pyi +0 -1
  227. homeassistant-stubs/components/linear_garage_door/coordinator.pyi +0 -26
  228. homeassistant-stubs/components/linear_garage_door/cover.pyi +0 -28
  229. homeassistant-stubs/components/linear_garage_door/diagnostics.pyi +0 -10
  230. homeassistant-stubs/components/linear_garage_door/entity.pyi +0 -17
  231. homeassistant-stubs/components/linear_garage_door/light.pyi +0 -23
  232. homeassistant-stubs/components/mastodon/notify.pyi +0 -24
  233. {homeassistant_stubs-2025.8.3.dist-info → homeassistant_stubs-2025.9.0b1.dist-info}/WHEEL +0 -0
  234. {homeassistant_stubs-2025.8.3.dist-info → homeassistant_stubs-2025.9.0b1.dist-info}/licenses/LICENSE +0 -0
@@ -16,7 +16,9 @@ class AuthFlowContext(FlowContext, total=False):
16
16
  credential_only: bool
17
17
  ip_address: IPv4Address | IPv6Address
18
18
  redirect_uri: str
19
- AuthFlowResult = FlowResult[AuthFlowContext, tuple[str, str]]
19
+
20
+ class AuthFlowResult(FlowResult[AuthFlowContext, tuple[str, str]], total=False):
21
+ result: Credentials
20
22
 
21
23
  class Group:
22
24
  name: str | None
@@ -0,0 +1,27 @@
1
+ from .coordinator import AirOSConfigEntry as AirOSConfigEntry, AirOSData as AirOSData, AirOSDataUpdateCoordinator as AirOSDataUpdateCoordinator
2
+ from .entity import AirOSEntity as AirOSEntity
3
+ from _typeshed import Incomplete
4
+ from collections.abc import Callable as Callable
5
+ from dataclasses import dataclass
6
+ from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription
7
+ from homeassistant.const import EntityCategory as EntityCategory
8
+ from homeassistant.core import HomeAssistant as HomeAssistant
9
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
10
+
11
+ _LOGGER: Incomplete
12
+ PARALLEL_UPDATES: int
13
+
14
+ @dataclass(frozen=True, kw_only=True)
15
+ class AirOSBinarySensorEntityDescription(BinarySensorEntityDescription):
16
+ value_fn: Callable[[AirOSData], bool]
17
+
18
+ BINARY_SENSORS: tuple[AirOSBinarySensorEntityDescription, ...]
19
+
20
+ async def async_setup_entry(hass: HomeAssistant, config_entry: AirOSConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
21
+
22
+ class AirOSBinarySensor(AirOSEntity, BinarySensorEntity):
23
+ entity_description: AirOSBinarySensorEntityDescription
24
+ _attr_unique_id: Incomplete
25
+ def __init__(self, coordinator: AirOSDataUpdateCoordinator, description: AirOSBinarySensorEntityDescription) -> None: ...
26
+ @property
27
+ def is_on(self) -> bool: ...
@@ -4,14 +4,16 @@ from _typeshed import Incomplete
4
4
  from collections.abc import Callable as Callable
5
5
  from dataclasses import dataclass
6
6
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
7
- from homeassistant.const import PERCENTAGE as PERCENTAGE, SIGNAL_STRENGTH_DECIBELS as SIGNAL_STRENGTH_DECIBELS, UnitOfDataRate as UnitOfDataRate, UnitOfFrequency as UnitOfFrequency
7
+ from homeassistant.const import PERCENTAGE as PERCENTAGE, SIGNAL_STRENGTH_DECIBELS as SIGNAL_STRENGTH_DECIBELS, UnitOfDataRate as UnitOfDataRate, UnitOfFrequency as UnitOfFrequency, UnitOfLength as UnitOfLength, UnitOfTime as UnitOfTime
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant
9
9
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
10
10
  from homeassistant.helpers.typing import StateType as StateType
11
11
 
12
12
  _LOGGER: Incomplete
13
- WIRELESS_MODE_OPTIONS: Incomplete
14
13
  NETROLE_OPTIONS: Incomplete
14
+ WIRELESS_MODE_OPTIONS: Incomplete
15
+ WIRELESS_ROLE_OPTIONS: Incomplete
16
+ PARALLEL_UPDATES: int
15
17
 
16
18
  @dataclass(frozen=True, kw_only=True)
17
19
  class AirOSSensorEntityDescription(SensorEntityDescription):
@@ -0,0 +1,31 @@
1
+ from . import AirQConfigEntry as AirQConfigEntry, AirQCoordinator as AirQCoordinator
2
+ from _typeshed import Incomplete
3
+ from aioairq.core import AirQ as AirQ
4
+ from collections.abc import Awaitable, Callable as Callable
5
+ from dataclasses import dataclass
6
+ from homeassistant.components.number import NumberEntity as NumberEntity, NumberEntityDescription as NumberEntityDescription
7
+ from homeassistant.const import PERCENTAGE as PERCENTAGE
8
+ from homeassistant.core import HomeAssistant as HomeAssistant
9
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
10
+ from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
11
+
12
+ _LOGGER: Incomplete
13
+
14
+ @dataclass(frozen=True, kw_only=True)
15
+ class AirQBrightnessDescription(NumberEntityDescription):
16
+ value: Callable[[dict], float]
17
+ set_value: Callable[[AirQ, float], Awaitable[None]]
18
+
19
+ AIRQ_LED_BRIGHTNESS: Incomplete
20
+
21
+ async def async_setup_entry(hass: HomeAssistant, entry: AirQConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
22
+
23
+ class AirQLEDBrightness(CoordinatorEntity[AirQCoordinator], NumberEntity):
24
+ _attr_has_entity_name: bool
25
+ entity_description: AirQBrightnessDescription
26
+ _attr_device_info: Incomplete
27
+ _attr_unique_id: Incomplete
28
+ def __init__(self, coordinator: AirQCoordinator, description: AirQBrightnessDescription) -> None: ...
29
+ @property
30
+ def native_value(self) -> float: ...
31
+ async def async_set_native_value(self, value: float) -> None: ...
@@ -1,8 +1,13 @@
1
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
1
+ from . import api as api
2
+ from .const import CONFIG_FLOW_MINOR_VERSION as CONFIG_FLOW_MINOR_VERSION, CONFIG_FLOW_VERSION as CONFIG_FLOW_VERSION, DOMAIN as DOMAIN
3
+ from .coordinator import AladdinConnectConfigEntry as AladdinConnectConfigEntry, AladdinConnectCoordinator as AladdinConnectCoordinator
4
+ from homeassistant.const import Platform as Platform
2
5
  from homeassistant.core import HomeAssistant as HomeAssistant
6
+ from homeassistant.helpers import aiohttp_client as aiohttp_client, config_entry_oauth2_flow as config_entry_oauth2_flow
3
7
 
4
- DOMAIN: str
8
+ PLATFORMS: list[Platform]
5
9
 
6
- async def async_setup_entry(hass: HomeAssistant, _: ConfigEntry) -> bool: ...
7
- async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
8
- async def async_remove_entry(hass: HomeAssistant, entry: ConfigEntry) -> None: ...
10
+ async def async_setup_entry(hass: HomeAssistant, entry: AladdinConnectConfigEntry) -> bool: ...
11
+ async def async_unload_entry(hass: HomeAssistant, entry: AladdinConnectConfigEntry) -> bool: ...
12
+ async def async_migrate_entry(hass: HomeAssistant, config_entry: AladdinConnectConfigEntry) -> bool: ...
13
+ def remove_stale_devices(hass: HomeAssistant, config_entry: AladdinConnectConfigEntry) -> None: ...
@@ -0,0 +1,12 @@
1
+ from _typeshed import Incomplete
2
+ from aiohttp import ClientSession as ClientSession
3
+ from genie_partner_sdk.auth import Auth
4
+ from homeassistant.helpers import config_entry_oauth2_flow as config_entry_oauth2_flow
5
+
6
+ API_URL: str
7
+ API_KEY: str
8
+
9
+ class AsyncConfigEntryAuth(Auth):
10
+ _oauth_session: Incomplete
11
+ def __init__(self, websession: ClientSession, oauth_session: config_entry_oauth2_flow.OAuth2Session) -> None: ...
12
+ async def async_get_access_token(self) -> str: ...
@@ -0,0 +1,5 @@
1
+ from .const import OAUTH2_AUTHORIZE as OAUTH2_AUTHORIZE, OAUTH2_TOKEN as OAUTH2_TOKEN
2
+ from homeassistant.components.application_credentials import AuthorizationServer as AuthorizationServer
3
+ from homeassistant.core import HomeAssistant as HomeAssistant
4
+
5
+ async def async_get_authorization_server(hass: HomeAssistant) -> AuthorizationServer: ...
@@ -1,5 +1,16 @@
1
- from . import DOMAIN as DOMAIN
2
- from homeassistant.config_entries import ConfigFlow as ConfigFlow
1
+ import logging
2
+ from .const import CONFIG_FLOW_MINOR_VERSION as CONFIG_FLOW_MINOR_VERSION, CONFIG_FLOW_VERSION as CONFIG_FLOW_VERSION, DOMAIN as DOMAIN
3
+ from collections.abc import Mapping
4
+ from homeassistant.config_entries import ConfigFlowResult as ConfigFlowResult, SOURCE_REAUTH as SOURCE_REAUTH
5
+ from homeassistant.helpers import config_entry_oauth2_flow as config_entry_oauth2_flow
6
+ from typing import Any
3
7
 
4
- class AladdinConnectConfigFlow(ConfigFlow, domain=DOMAIN):
5
- VERSION: int
8
+ class OAuth2FlowHandler(config_entry_oauth2_flow.AbstractOAuth2FlowHandler, domain=DOMAIN):
9
+ DOMAIN = DOMAIN
10
+ VERSION = CONFIG_FLOW_VERSION
11
+ MINOR_VERSION = CONFIG_FLOW_MINOR_VERSION
12
+ async def async_step_reauth(self, user_input: Mapping[str, Any]) -> ConfigFlowResult: ...
13
+ async def async_step_reauth_confirm(self, user_input: Mapping[str, Any] | None = None) -> ConfigFlowResult: ...
14
+ async def async_oauth_create_entry(self, data: dict) -> ConfigFlowResult: ...
15
+ @property
16
+ def logger(self) -> logging.Logger: ...
@@ -0,0 +1,10 @@
1
+ from _typeshed import Incomplete
2
+ from homeassistant.components.cover import CoverEntityFeature as CoverEntityFeature
3
+ from typing import Final
4
+
5
+ DOMAIN: str
6
+ CONFIG_FLOW_VERSION: int
7
+ CONFIG_FLOW_MINOR_VERSION: int
8
+ OAUTH2_AUTHORIZE: str
9
+ OAUTH2_TOKEN: str
10
+ SUPPORTED_FEATURES: Final[Incomplete]
@@ -0,0 +1,16 @@
1
+ from _typeshed import Incomplete
2
+ from genie_partner_sdk.client import AladdinConnectClient as AladdinConnectClient
3
+ from genie_partner_sdk.model import GarageDoor
4
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
+ from homeassistant.core import HomeAssistant as HomeAssistant
6
+ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator
7
+
8
+ _LOGGER: Incomplete
9
+ type AladdinConnectConfigEntry = ConfigEntry[dict[str, AladdinConnectCoordinator]]
10
+ SCAN_INTERVAL: Incomplete
11
+
12
+ class AladdinConnectCoordinator(DataUpdateCoordinator[GarageDoor]):
13
+ client: Incomplete
14
+ data: Incomplete
15
+ def __init__(self, hass: HomeAssistant, entry: AladdinConnectConfigEntry, client: AladdinConnectClient, garage_door: GarageDoor) -> None: ...
16
+ async def _async_update_data(self) -> GarageDoor: ...
@@ -0,0 +1,25 @@
1
+ from .const import SUPPORTED_FEATURES as SUPPORTED_FEATURES
2
+ from .coordinator import AladdinConnectConfigEntry as AladdinConnectConfigEntry, AladdinConnectCoordinator as AladdinConnectCoordinator
3
+ from .entity import AladdinConnectEntity as AladdinConnectEntity
4
+ from _typeshed import Incomplete
5
+ from homeassistant.components.cover import CoverDeviceClass as CoverDeviceClass, CoverEntity as CoverEntity
6
+ from homeassistant.core import HomeAssistant as HomeAssistant
7
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
8
+ from typing import Any
9
+
10
+ async def async_setup_entry(hass: HomeAssistant, entry: AladdinConnectConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
11
+
12
+ class AladdinCoverEntity(AladdinConnectEntity, CoverEntity):
13
+ _attr_device_class: Incomplete
14
+ _attr_supported_features = SUPPORTED_FEATURES
15
+ _attr_name: Incomplete
16
+ _attr_unique_id: Incomplete
17
+ def __init__(self, coordinator: AladdinConnectCoordinator) -> None: ...
18
+ async def async_open_cover(self, **kwargs: Any) -> None: ...
19
+ async def async_close_cover(self, **kwargs: Any) -> None: ...
20
+ @property
21
+ def is_closed(self) -> bool | None: ...
22
+ @property
23
+ def is_closing(self) -> bool | None: ...
24
+ @property
25
+ def is_opening(self) -> bool | None: ...
@@ -0,0 +1,15 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .coordinator import AladdinConnectCoordinator as AladdinConnectCoordinator
3
+ from _typeshed import Incomplete
4
+ from genie_partner_sdk.client import AladdinConnectClient as AladdinConnectClient
5
+ from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
6
+ from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
7
+
8
+ class AladdinConnectEntity(CoordinatorEntity[AladdinConnectCoordinator]):
9
+ _attr_has_entity_name: bool
10
+ _attr_device_info: Incomplete
11
+ _device_id: Incomplete
12
+ _number: Incomplete
13
+ def __init__(self, coordinator: AladdinConnectCoordinator) -> None: ...
14
+ @property
15
+ def client(self) -> AladdinConnectClient: ...
@@ -0,0 +1,25 @@
1
+ from .coordinator import AladdinConnectConfigEntry as AladdinConnectConfigEntry, AladdinConnectCoordinator as AladdinConnectCoordinator
2
+ from .entity import AladdinConnectEntity as AladdinConnectEntity
3
+ from _typeshed import Incomplete
4
+ from collections.abc import Callable as Callable
5
+ from dataclasses import dataclass
6
+ from genie_partner_sdk.model import GarageDoor as GarageDoor
7
+ from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
8
+ from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE
9
+ from homeassistant.core import HomeAssistant as HomeAssistant
10
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
11
+
12
+ @dataclass(frozen=True, kw_only=True)
13
+ class AladdinConnectSensorEntityDescription(SensorEntityDescription):
14
+ value_fn: Callable[[GarageDoor], float | None]
15
+
16
+ SENSOR_TYPES: tuple[AladdinConnectSensorEntityDescription, ...]
17
+
18
+ async def async_setup_entry(hass: HomeAssistant, entry: AladdinConnectConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
19
+
20
+ class AladdinConnectSensor(AladdinConnectEntity, SensorEntity):
21
+ entity_description: AladdinConnectSensorEntityDescription
22
+ _attr_unique_id: Incomplete
23
+ def __init__(self, coordinator: AladdinConnectCoordinator, entity_description: AladdinConnectSensorEntityDescription) -> None: ...
24
+ @property
25
+ def native_value(self) -> float | None: ...
@@ -1,4 +1,4 @@
1
- from .const import COUNTRY_DOMAINS as COUNTRY_DOMAINS, DOMAIN as DOMAIN, _LOGGER as _LOGGER
1
+ from .const import CONF_LOGIN_DATA as CONF_LOGIN_DATA, COUNTRY_DOMAINS as COUNTRY_DOMAINS, DOMAIN as DOMAIN, _LOGGER as _LOGGER
2
2
  from .coordinator import AmazonConfigEntry as AmazonConfigEntry, AmazonDevicesCoordinator as AmazonDevicesCoordinator
3
3
  from .services import async_setup_services as async_setup_services
4
4
  from _typeshed import Incomplete
@@ -8,6 +8,7 @@ from homeassistant.helpers import aiohttp_client as aiohttp_client
8
8
  from typing import Any
9
9
 
10
10
  STEP_REAUTH_DATA_SCHEMA: Incomplete
11
+ STEP_RECONFIGURE: Incomplete
11
12
 
12
13
  async def validate_input(hass: HomeAssistant, data: dict[str, Any]) -> dict[str, Any]: ...
13
14
 
@@ -17,3 +18,4 @@ class AmazonDevicesConfigFlow(ConfigFlow, domain=DOMAIN):
17
18
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
18
19
  async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
19
20
  async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
21
+ async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -3,5 +3,5 @@ from _typeshed import Incomplete
3
3
  _LOGGER: Incomplete
4
4
  DOMAIN: str
5
5
  CONF_LOGIN_DATA: str
6
- DEFAULT_DOMAIN: Incomplete
6
+ DEFAULT_DOMAIN: str
7
7
  COUNTRY_DOMAINS: Incomplete
@@ -4,7 +4,7 @@ from _typeshed import Incomplete
4
4
  from aioamazondevices.api import AmazonDevice as AmazonDevice
5
5
  from collections.abc import Callable as Callable
6
6
  from dataclasses import dataclass
7
- from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription
7
+ from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
8
8
  from homeassistant.const import LIGHT_LUX as LIGHT_LUX, UnitOfTemperature as UnitOfTemperature
9
9
  from homeassistant.core import HomeAssistant as HomeAssistant
10
10
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
@@ -5,7 +5,6 @@ from typing import Final
5
5
  DOMAIN: Final[str]
6
6
  CONF_SITE_NAME: str
7
7
  CONF_SITE_ID: str
8
- ATTR_CONFIG_ENTRY_ID: str
9
8
  ATTR_CHANNEL_TYPE: str
10
9
  ATTRIBUTION: str
11
10
  LOGGER: Incomplete
@@ -1,8 +1,9 @@
1
- from .const import ATTR_CHANNEL_TYPE as ATTR_CHANNEL_TYPE, ATTR_CONFIG_ENTRY_ID as ATTR_CONFIG_ENTRY_ID, CONTROLLED_LOAD_CHANNEL as CONTROLLED_LOAD_CHANNEL, DOMAIN as DOMAIN, FEED_IN_CHANNEL as FEED_IN_CHANNEL, GENERAL_CHANNEL as GENERAL_CHANNEL, SERVICE_GET_FORECASTS as SERVICE_GET_FORECASTS
1
+ from .const import ATTR_CHANNEL_TYPE as ATTR_CHANNEL_TYPE, CONTROLLED_LOAD_CHANNEL as CONTROLLED_LOAD_CHANNEL, DOMAIN as DOMAIN, FEED_IN_CHANNEL as FEED_IN_CHANNEL, GENERAL_CHANNEL as GENERAL_CHANNEL, SERVICE_GET_FORECASTS as SERVICE_GET_FORECASTS
2
2
  from .coordinator import AmberConfigEntry as AmberConfigEntry
3
3
  from .helpers import format_cents_to_dollars as format_cents_to_dollars, normalize_descriptor as normalize_descriptor
4
4
  from _typeshed import Incomplete
5
5
  from homeassistant.config_entries import ConfigEntryState as ConfigEntryState
6
+ from homeassistant.const import ATTR_CONFIG_ENTRY_ID as ATTR_CONFIG_ENTRY_ID
6
7
  from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse
7
8
  from homeassistant.exceptions import ServiceValidationError as ServiceValidationError
8
9
  from homeassistant.helpers.selector import ConfigEntrySelector as ConfigEntrySelector
@@ -2,7 +2,7 @@ from . import AmbientStation as AmbientStation
2
2
  from .const import ATTR_LAST_DATA as ATTR_LAST_DATA, DOMAIN as DOMAIN, TYPE_SOLARRADIATION as TYPE_SOLARRADIATION, TYPE_SOLARRADIATION_LX as TYPE_SOLARRADIATION_LX
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.core import callback as callback
5
- from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
5
+ from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC, DeviceInfo as DeviceInfo
6
6
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
7
7
  from homeassistant.helpers.entity import Entity as Entity, EntityDescription as EntityDescription
8
8
 
@@ -11,7 +11,6 @@ type AndroidIPCamConfigEntry = ConfigEntry[AndroidIPCamDataUpdateCoordinator]
11
11
 
12
12
  class AndroidIPCamDataUpdateCoordinator(DataUpdateCoordinator[None]):
13
13
  config_entry: AndroidIPCamConfigEntry
14
- hass: Incomplete
15
14
  cam: Incomplete
16
15
  def __init__(self, hass: HomeAssistant, config_entry: AndroidIPCamConfigEntry, cam: PyDroidIPCam) -> None: ...
17
16
  async def _async_update_data(self) -> None: ...
@@ -1,9 +1,9 @@
1
1
  from .coordinator import APCUPSdConfigEntry as APCUPSdConfigEntry, APCUPSdCoordinator as APCUPSdCoordinator
2
+ from .entity import APCUPSdEntity as APCUPSdEntity
2
3
  from _typeshed import Incomplete
3
4
  from homeassistant.components.binary_sensor import BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription
4
5
  from homeassistant.core import HomeAssistant as HomeAssistant
5
6
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
6
- from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
7
7
  from typing import Final
8
8
 
9
9
  PARALLEL_UPDATES: int
@@ -12,11 +12,7 @@ _VALUE_ONLINE_MASK: Final[int]
12
12
 
13
13
  async def async_setup_entry(hass: HomeAssistant, config_entry: APCUPSdConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
14
14
 
15
- class OnlineStatus(CoordinatorEntity[APCUPSdCoordinator], BinarySensorEntity):
16
- _attr_has_entity_name: bool
17
- entity_description: Incomplete
18
- _attr_unique_id: Incomplete
19
- _attr_device_info: Incomplete
15
+ class OnlineStatus(APCUPSdEntity, BinarySensorEntity):
20
16
  def __init__(self, coordinator: APCUPSdCoordinator, description: BinarySensorEntityDescription) -> None: ...
21
17
  @property
22
18
  def is_on(self) -> bool | None: ...
@@ -0,0 +1,11 @@
1
+ from .coordinator import APCUPSdCoordinator as APCUPSdCoordinator
2
+ from _typeshed import Incomplete
3
+ from homeassistant.helpers.entity import EntityDescription as EntityDescription
4
+ from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
5
+
6
+ class APCUPSdEntity(CoordinatorEntity[APCUPSdCoordinator]):
7
+ _attr_has_entity_name: bool
8
+ entity_description: Incomplete
9
+ _attr_unique_id: Incomplete
10
+ _attr_device_info: Incomplete
11
+ def __init__(self, coordinator: APCUPSdCoordinator, description: EntityDescription) -> None: ...
@@ -1,11 +1,11 @@
1
1
  from .const import LAST_S_TEST as LAST_S_TEST
2
2
  from .coordinator import APCUPSdConfigEntry as APCUPSdConfigEntry, APCUPSdCoordinator as APCUPSdCoordinator
3
+ from .entity import APCUPSdEntity as APCUPSdEntity
3
4
  from _typeshed import Incomplete
4
5
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
5
6
  from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfApparentPower as UnitOfApparentPower, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfFrequency as UnitOfFrequency, UnitOfPower as UnitOfPower, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime
6
7
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
7
8
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
8
- from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
9
9
 
10
10
  PARALLEL_UPDATES: int
11
11
  _LOGGER: Incomplete
@@ -15,11 +15,7 @@ INFERRED_UNITS: Incomplete
15
15
  async def async_setup_entry(hass: HomeAssistant, config_entry: APCUPSdConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
16
16
  def infer_unit(value: str) -> tuple[str, str | None]: ...
17
17
 
18
- class APCUPSdSensor(CoordinatorEntity[APCUPSdCoordinator], SensorEntity):
19
- _attr_has_entity_name: bool
20
- entity_description: Incomplete
21
- _attr_unique_id: Incomplete
22
- _attr_device_info: Incomplete
18
+ class APCUPSdSensor(APCUPSdEntity, SensorEntity):
23
19
  def __init__(self, coordinator: APCUPSdCoordinator, description: SensorEntityDescription) -> None: ...
24
20
  @callback
25
21
  def _handle_coordinator_update(self) -> None: ...
@@ -1,16 +1,19 @@
1
1
  import abc
2
- from .const import CONF_DNSMASQ as CONF_DNSMASQ, CONF_INTERFACE as CONF_INTERFACE, CONF_REQUIRE_IP as CONF_REQUIRE_IP, CONF_SSH_KEY as CONF_SSH_KEY, DEFAULT_DNSMASQ as DEFAULT_DNSMASQ, DEFAULT_INTERFACE as DEFAULT_INTERFACE, KEY_METHOD as KEY_METHOD, KEY_SENSORS as KEY_SENSORS, PROTOCOL_HTTP as PROTOCOL_HTTP, PROTOCOL_HTTPS as PROTOCOL_HTTPS, PROTOCOL_TELNET as PROTOCOL_TELNET, SENSORS_BYTES as SENSORS_BYTES, SENSORS_CPU as SENSORS_CPU, SENSORS_LOAD_AVG as SENSORS_LOAD_AVG, SENSORS_MEMORY as SENSORS_MEMORY, SENSORS_RATES as SENSORS_RATES, SENSORS_TEMPERATURES as SENSORS_TEMPERATURES, SENSORS_TEMPERATURES_LEGACY as SENSORS_TEMPERATURES_LEGACY, SENSORS_UPTIME as SENSORS_UPTIME
2
+ from .const import CONF_DNSMASQ as CONF_DNSMASQ, CONF_INTERFACE as CONF_INTERFACE, CONF_REQUIRE_IP as CONF_REQUIRE_IP, CONF_SSH_KEY as CONF_SSH_KEY, DEFAULT_DNSMASQ as DEFAULT_DNSMASQ, DEFAULT_INTERFACE as DEFAULT_INTERFACE, KEY_METHOD as KEY_METHOD, KEY_SENSORS as KEY_SENSORS, PROTOCOL_HTTP as PROTOCOL_HTTP, PROTOCOL_HTTPS as PROTOCOL_HTTPS, PROTOCOL_TELNET as PROTOCOL_TELNET, SENSORS_BYTES as SENSORS_BYTES, SENSORS_LOAD_AVG as SENSORS_LOAD_AVG, SENSORS_MEMORY as SENSORS_MEMORY, SENSORS_RATES as SENSORS_RATES, SENSORS_TEMPERATURES_LEGACY as SENSORS_TEMPERATURES_LEGACY, SENSORS_UPTIME as SENSORS_UPTIME
3
+ from .helpers import clean_dict as clean_dict, translate_to_legacy as translate_to_legacy
3
4
  from _typeshed import Incomplete
4
5
  from abc import ABC, abstractmethod
5
6
  from aioasuswrt.asuswrt import AsusWrt as AsusWrtLegacy
6
7
  from aiohttp import ClientSession as ClientSession
8
+ from asusrouter import AsusRouter
9
+ from asusrouter.modules.client import AsusClient as AsusClient
10
+ from asusrouter.modules.data import AsusData
7
11
  from collections.abc import Awaitable, Callable, Coroutine
8
12
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_MODE as CONF_MODE, CONF_PASSWORD as CONF_PASSWORD, CONF_PORT as CONF_PORT, CONF_PROTOCOL as CONF_PROTOCOL, CONF_USERNAME as CONF_USERNAME
9
13
  from homeassistant.core import HomeAssistant as HomeAssistant
10
- from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
14
+ from homeassistant.helpers.aiohttp_client import async_create_clientsession as async_create_clientsession
11
15
  from homeassistant.helpers.device_registry import format_mac as format_mac
12
16
  from homeassistant.helpers.update_coordinator import UpdateFailed as UpdateFailed
13
- from pyasuswrt import AsusWrtHttp
14
17
  from typing import Any, NamedTuple
15
18
 
16
19
  SENSORS_TYPE_BYTES: str
@@ -87,10 +90,10 @@ class AsusWrtLegacyBridge(AsusWrtBridge):
87
90
  async def _get_temperatures(self) -> Any: ...
88
91
 
89
92
  class AsusWrtHttpBridge(AsusWrtBridge):
90
- _api: AsusWrtHttp
93
+ _api: Incomplete
91
94
  def __init__(self, conf: dict[str, Any], session: ClientSession) -> None: ...
92
95
  @staticmethod
93
- def _get_api(conf: dict[str, Any], session: ClientSession) -> AsusWrtHttp: ...
96
+ def _get_api(conf: dict[str, Any], session: ClientSession) -> AsusRouter: ...
94
97
  @property
95
98
  def is_connected(self) -> bool: ...
96
99
  _label_mac: Incomplete
@@ -98,11 +101,10 @@ class AsusWrtHttpBridge(AsusWrtBridge):
98
101
  _model: Incomplete
99
102
  async def async_connect(self) -> None: ...
100
103
  async def async_disconnect(self) -> None: ...
104
+ async def _get_data(self, datatype: AsusData, force: bool = False) -> dict[str, Any]: ...
105
+ async def _get_sensors(self, datatype: AsusData) -> list[str]: ...
101
106
  async def async_get_connected_devices(self) -> dict[str, WrtDevice]: ...
102
107
  async def async_get_available_sensors(self) -> dict[str, dict[str, Any]]: ...
103
- async def _get_available_cpu_sensors(self) -> list[str]: ...
104
- async def _get_available_temperature_sensors(self) -> list[str]: ...
105
- async def _get_loadavg_sensors_availability(self) -> list[str]: ...
106
108
  async def _get_bytes(self) -> Any: ...
107
109
  async def _get_rates(self) -> Any: ...
108
110
  async def _get_load_avg(self) -> Any: ...
@@ -0,0 +1,8 @@
1
+ from _typeshed import Incomplete
2
+ from typing import Any, TypeVar
3
+
4
+ T = TypeVar('T', dict[str, Any], list[Any], None)
5
+ TRANSLATION_MAP: Incomplete
6
+
7
+ def clean_dict(raw: dict[str, Any]) -> dict[str, Any]: ...
8
+ def translate_to_legacy(raw: T) -> T: ...
@@ -32,7 +32,7 @@ class AuthProvidersView(HomeAssistantView):
32
32
  requires_auth: bool
33
33
  async def get(self, request: web.Request) -> web.Response: ...
34
34
 
35
- def _prepare_result_json(result: AuthFlowResult) -> AuthFlowResult: ...
35
+ def _prepare_result_json(result: AuthFlowResult) -> dict[str, Any]: ...
36
36
 
37
37
  class LoginFlowBaseView(HomeAssistantView):
38
38
  requires_auth: bool
@@ -23,4 +23,4 @@ def async_setup(hass: HomeAssistant) -> None: ...
23
23
  def websocket_setup_mfa(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
24
24
  @callback
25
25
  def websocket_depose_mfa(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
26
- def _prepare_result_json(result: data_entry_flow.FlowResult) -> data_entry_flow.FlowResult: ...
26
+ def _prepare_result_json(result: data_entry_flow.FlowResult) -> dict[str, Any]: ...
@@ -1,5 +1,6 @@
1
1
  from _typeshed import Incomplete
2
2
 
3
+ API_ABS_HUMID: str
3
4
  API_CO2: str
4
5
  API_DEW_POINT: str
5
6
  API_DUST: str
@@ -1,10 +1,10 @@
1
- from .const import API_CO2 as API_CO2, API_DEW_POINT as API_DEW_POINT, API_DUST as API_DUST, API_HUMID as API_HUMID, API_LUX as API_LUX, API_PM10 as API_PM10, API_PM25 as API_PM25, API_SCORE as API_SCORE, API_SPL_A as API_SPL_A, API_TEMP as API_TEMP, API_VOC as API_VOC, ATTRIBUTION as ATTRIBUTION, DOMAIN as DOMAIN
1
+ from .const import API_ABS_HUMID as API_ABS_HUMID, API_CO2 as API_CO2, API_DEW_POINT as API_DEW_POINT, API_DUST as API_DUST, API_HUMID as API_HUMID, API_LUX as API_LUX, API_PM10 as API_PM10, API_PM25 as API_PM25, API_SCORE as API_SCORE, API_SPL_A as API_SPL_A, API_TEMP as API_TEMP, API_VOC as API_VOC, ATTRIBUTION as ATTRIBUTION, DOMAIN as DOMAIN
2
2
  from .coordinator import AwairConfigEntry as AwairConfigEntry, AwairDataUpdateCoordinator as AwairDataUpdateCoordinator
3
3
  from _typeshed import Incomplete
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 ATTR_CONNECTIONS as ATTR_CONNECTIONS, ATTR_SW_VERSION as ATTR_SW_VERSION, CONCENTRATION_MICROGRAMS_PER_CUBIC_METER as CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONCENTRATION_PARTS_PER_BILLION as CONCENTRATION_PARTS_PER_BILLION, CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, LIGHT_LUX as LIGHT_LUX, PERCENTAGE as PERCENTAGE, UnitOfSoundPressure as UnitOfSoundPressure, UnitOfTemperature as UnitOfTemperature
7
+ from homeassistant.const import ATTR_CONNECTIONS as ATTR_CONNECTIONS, ATTR_SW_VERSION as ATTR_SW_VERSION, CONCENTRATION_GRAMS_PER_CUBIC_METER as CONCENTRATION_GRAMS_PER_CUBIC_METER, CONCENTRATION_MICROGRAMS_PER_CUBIC_METER as CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONCENTRATION_PARTS_PER_BILLION as CONCENTRATION_PARTS_PER_BILLION, CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, LIGHT_LUX as LIGHT_LUX, PERCENTAGE as PERCENTAGE, UnitOfSoundPressure as UnitOfSoundPressure, UnitOfTemperature as UnitOfTemperature
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant
9
9
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
10
10
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
@@ -90,13 +90,11 @@ class AgentRetentionConfig(BaseRetentionConfig): ...
90
90
  class StoredBackupSchedule(TypedDict):
91
91
  days: list[Day]
92
92
  recurrence: ScheduleRecurrence
93
- state: ScheduleState
94
93
  time: str | None
95
94
 
96
95
  class ScheduleParametersDict(TypedDict, total=False):
97
96
  days: list[Day]
98
97
  recurrence: ScheduleRecurrence
99
- state: ScheduleState
100
98
  time: dt.time | None
101
99
 
102
100
  class Day(StrEnum):
@@ -113,22 +111,10 @@ class ScheduleRecurrence(StrEnum):
113
111
  DAILY = 'daily'
114
112
  CUSTOM_DAYS = 'custom_days'
115
113
 
116
- class ScheduleState(StrEnum):
117
- NEVER = 'never'
118
- DAILY = 'daily'
119
- MONDAY = 'mon'
120
- TUESDAY = 'tue'
121
- WEDNESDAY = 'wed'
122
- THURSDAY = 'thu'
123
- FRIDAY = 'fri'
124
- SATURDAY = 'sat'
125
- SUNDAY = 'sun'
126
-
127
114
  @dataclass(kw_only=True)
128
115
  class BackupSchedule:
129
116
  days: list[Day] = field(default_factory=list)
130
117
  recurrence: ScheduleRecurrence = ...
131
- state: ScheduleState = ...
132
118
  time: dt.time | None = ...
133
119
  cron_event: CronSim | None = field(init=False, default=None)
134
120
  next_automatic_backup: datetime | None = field(init=False, default=None)
@@ -1,5 +1,7 @@
1
- from _typeshed import Incomplete
2
- from homeassistant.const import Platform as Platform
1
+ from .const import PLATFORMS as PLATFORMS
2
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
3
+ from homeassistant.core import HomeAssistant as HomeAssistant
3
4
 
4
- DOMAIN: str
5
- PLATFORMS: Incomplete
5
+ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
6
+ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
7
+ async def update_listener(hass: HomeAssistant, entry: ConfigEntry) -> None: ...
@@ -1,16 +1,16 @@
1
- from . import DOMAIN as DOMAIN, PLATFORMS as PLATFORMS
2
- from .const import ATTR_OBSERVATIONS as ATTR_OBSERVATIONS, ATTR_OCCURRED_OBSERVATION_ENTITIES as ATTR_OCCURRED_OBSERVATION_ENTITIES, ATTR_PROBABILITY as ATTR_PROBABILITY, ATTR_PROBABILITY_THRESHOLD as ATTR_PROBABILITY_THRESHOLD, CONF_NUMERIC_STATE as CONF_NUMERIC_STATE, CONF_OBSERVATIONS as CONF_OBSERVATIONS, CONF_PRIOR as CONF_PRIOR, CONF_PROBABILITY_THRESHOLD as CONF_PROBABILITY_THRESHOLD, CONF_P_GIVEN_F as CONF_P_GIVEN_F, CONF_P_GIVEN_T as CONF_P_GIVEN_T, CONF_TEMPLATE as CONF_TEMPLATE, CONF_TO_STATE as CONF_TO_STATE, DEFAULT_NAME as DEFAULT_NAME, DEFAULT_PROBABILITY_THRESHOLD as DEFAULT_PROBABILITY_THRESHOLD
1
+ from .const import ATTR_OBSERVATIONS as ATTR_OBSERVATIONS, ATTR_OCCURRED_OBSERVATION_ENTITIES as ATTR_OCCURRED_OBSERVATION_ENTITIES, ATTR_PROBABILITY as ATTR_PROBABILITY, ATTR_PROBABILITY_THRESHOLD as ATTR_PROBABILITY_THRESHOLD, CONF_NUMERIC_STATE as CONF_NUMERIC_STATE, CONF_OBSERVATIONS as CONF_OBSERVATIONS, CONF_PRIOR as CONF_PRIOR, CONF_PROBABILITY_THRESHOLD as CONF_PROBABILITY_THRESHOLD, CONF_P_GIVEN_F as CONF_P_GIVEN_F, CONF_P_GIVEN_T as CONF_P_GIVEN_T, CONF_TEMPLATE as CONF_TEMPLATE, CONF_TO_STATE as CONF_TO_STATE, DEFAULT_NAME as DEFAULT_NAME, DEFAULT_PROBABILITY_THRESHOLD as DEFAULT_PROBABILITY_THRESHOLD, DOMAIN as DOMAIN, PLATFORMS as PLATFORMS
3
2
  from .helpers import Observation as Observation
4
3
  from .issues import raise_mirrored_entries as raise_mirrored_entries, raise_no_prob_given_false as raise_no_prob_given_false
5
4
  from _typeshed import Incomplete
6
5
  from collections import OrderedDict
7
6
  from collections.abc import Callable as Callable
8
7
  from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity
8
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
9
9
  from homeassistant.const import CONF_ABOVE as CONF_ABOVE, CONF_BELOW as CONF_BELOW, CONF_DEVICE_CLASS as CONF_DEVICE_CLASS, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_NAME as CONF_NAME, CONF_PLATFORM as CONF_PLATFORM, CONF_STATE as CONF_STATE, CONF_UNIQUE_ID as CONF_UNIQUE_ID, CONF_VALUE_TEMPLATE as CONF_VALUE_TEMPLATE, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN
10
10
  from homeassistant.core import Event as Event, EventStateChangedData as EventStateChangedData, HomeAssistant as HomeAssistant, callback as callback
11
11
  from homeassistant.exceptions import ConditionError as ConditionError, TemplateError as TemplateError
12
12
  from homeassistant.helpers import condition as condition
13
- from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
13
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback, AddEntitiesCallback as AddEntitiesCallback
14
14
  from homeassistant.helpers.event import TrackTemplate as TrackTemplate, TrackTemplateResult as TrackTemplateResult, TrackTemplateResultInfo as TrackTemplateResultInfo, async_track_state_change_event as async_track_state_change_event, async_track_template_result as async_track_template_result
15
15
  from homeassistant.helpers.reload import async_setup_reload_service as async_setup_reload_service
16
16
  from homeassistant.helpers.template import Template as Template, result_as_boolean as result_as_boolean
@@ -20,11 +20,11 @@ from uuid import UUID
20
20
 
21
21
  _LOGGER: Incomplete
22
22
 
23
- def _above_greater_than_below(config: dict[str, Any]) -> dict[str, Any]: ...
23
+ def above_greater_than_below(config: dict[str, Any]) -> dict[str, Any]: ...
24
24
 
25
25
  NUMERIC_STATE_SCHEMA: Incomplete
26
26
 
27
- def _no_overlapping(configs: list[dict]) -> list[dict]: ...
27
+ def no_overlapping(configs: list[dict]) -> list[dict]: ...
28
28
 
29
29
  STATE_SCHEMA: Incomplete
30
30
  TEMPLATE_SCHEMA: Incomplete
@@ -32,6 +32,7 @@ PLATFORM_SCHEMA: Incomplete
32
32
 
33
33
  def update_probability(prior: float, prob_given_true: float, prob_given_false: float) -> float: ...
34
34
  async def async_setup_platform(hass: HomeAssistant, config: ConfigType, async_add_entities: AddEntitiesCallback, discovery_info: DiscoveryInfoType | None = None) -> None: ...
35
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback, discovery_info: DiscoveryInfoType | None = None) -> None: ...
35
36
 
36
37
  class BayesianBinarySensor(BinarySensorEntity):
37
38
  _attr_should_poll: bool