homeassistant-stubs 2025.8.2__py3-none-any.whl → 2025.9.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.

Potentially problematic release.


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

Files changed (250) 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 +3 -2
  15. homeassistant-stubs/components/alexa_devices/config_flow.pyi +5 -2
  16. homeassistant-stubs/components/alexa_devices/const.pyi +2 -0
  17. homeassistant-stubs/components/alexa_devices/coordinator.pyi +1 -1
  18. homeassistant-stubs/components/alexa_devices/sensor.pyi +1 -1
  19. homeassistant-stubs/components/alexa_devices/services.pyi +0 -1
  20. homeassistant-stubs/components/amberelectric/config_flow.pyi +1 -1
  21. homeassistant-stubs/components/amberelectric/const.pyi +1 -1
  22. homeassistant-stubs/components/amberelectric/coordinator.pyi +1 -1
  23. homeassistant-stubs/components/amberelectric/services.pyi +2 -1
  24. homeassistant-stubs/components/ambient_station/entity.pyi +1 -1
  25. homeassistant-stubs/components/android_ip_webcam/coordinator.pyi +0 -1
  26. homeassistant-stubs/components/apcupsd/binary_sensor.pyi +2 -6
  27. homeassistant-stubs/components/apcupsd/entity.pyi +11 -0
  28. homeassistant-stubs/components/apcupsd/sensor.pyi +2 -6
  29. homeassistant-stubs/components/asuswrt/bridge.pyi +12 -8
  30. homeassistant-stubs/components/asuswrt/helpers.pyi +8 -0
  31. homeassistant-stubs/components/auth/login_flow.pyi +1 -1
  32. homeassistant-stubs/components/auth/mfa_setup_flow.pyi +1 -1
  33. homeassistant-stubs/components/awair/const.pyi +1 -0
  34. homeassistant-stubs/components/awair/sensor.pyi +2 -2
  35. homeassistant-stubs/components/backup/config.pyi +0 -14
  36. homeassistant-stubs/components/bayesian/__init__.pyi +6 -4
  37. homeassistant-stubs/components/bayesian/binary_sensor.pyi +6 -5
  38. homeassistant-stubs/components/bayesian/config_flow.pyi +69 -0
  39. homeassistant-stubs/components/bayesian/const.pyi +5 -0
  40. homeassistant-stubs/components/bayesian/issues.pyi +1 -1
  41. homeassistant-stubs/components/bosch_alarm/const.pyi +0 -1
  42. homeassistant-stubs/components/bosch_alarm/services.pyi +2 -1
  43. homeassistant-stubs/components/braviatv/button.pyi +1 -1
  44. homeassistant-stubs/components/braviatv/coordinator.pyi +1 -0
  45. homeassistant-stubs/components/braviatv/entity.pyi +1 -1
  46. homeassistant-stubs/components/climate/__init__.pyi +1 -1
  47. homeassistant-stubs/components/cloud/alexa_config.pyi +2 -1
  48. homeassistant-stubs/components/cloud/subscription.pyi +2 -4
  49. homeassistant-stubs/components/co2signal/coordinator.pyi +3 -3
  50. homeassistant-stubs/components/co2signal/helpers.pyi +2 -3
  51. homeassistant-stubs/components/co2signal/sensor.pyi +3 -3
  52. homeassistant-stubs/components/config/config_entries.pyi +6 -3
  53. homeassistant-stubs/components/deconz/hub/hub.pyi +0 -1
  54. homeassistant-stubs/components/deconz/services.pyi +0 -1
  55. homeassistant-stubs/components/demo/media_player.pyi +2 -0
  56. homeassistant-stubs/components/device_automation/condition.pyi +2 -2
  57. homeassistant-stubs/components/enphase_envoy/binary_sensor.pyi +29 -1
  58. homeassistant-stubs/components/enphase_envoy/sensor.pyi +30 -1
  59. homeassistant-stubs/components/esphome/manager.pyi +1 -2
  60. homeassistant-stubs/components/esphome/media_player.pyi +5 -0
  61. homeassistant-stubs/components/fan/intent.pyi +7 -0
  62. homeassistant-stubs/components/fritz/coordinator.pyi +0 -1
  63. homeassistant-stubs/components/fyta/const.pyi +4 -0
  64. homeassistant-stubs/components/fyta/sensor.pyi +11 -0
  65. homeassistant-stubs/components/glances/coordinator.pyi +0 -1
  66. homeassistant-stubs/components/group/config_flow.pyi +2 -0
  67. homeassistant-stubs/components/habitica/__init__.pyi +6 -2
  68. homeassistant-stubs/components/habitica/binary_sensor.pyi +13 -4
  69. homeassistant-stubs/components/habitica/coordinator.pyi +18 -4
  70. homeassistant-stubs/components/habitica/entity.pyi +10 -1
  71. homeassistant-stubs/components/habitica/image.pyi +19 -4
  72. homeassistant-stubs/components/habitica/sensor.pyi +27 -3
  73. homeassistant-stubs/components/habitica/util.pyi +5 -2
  74. homeassistant-stubs/components/home_connect/const.pyi +0 -7
  75. homeassistant-stubs/components/home_connect/services.pyi +1 -14
  76. homeassistant-stubs/components/homeassistant_hardware/coordinator.pyi +0 -1
  77. homeassistant-stubs/components/homee/config_flow.pyi +8 -2
  78. homeassistant-stubs/components/homee/const.pyi +3 -0
  79. homeassistant-stubs/components/homekit/accessories.pyi +1 -1
  80. homeassistant-stubs/components/homekit/const.pyi +4 -0
  81. homeassistant-stubs/components/homekit/type_switches.pyi +11 -1
  82. homeassistant-stubs/components/homekit/util.pyi +3 -2
  83. homeassistant-stubs/components/huawei_lte/__init__.pyi +2 -2
  84. homeassistant-stubs/components/huawei_lte/const.pyi +0 -1
  85. homeassistant-stubs/components/huawei_lte/notify.pyi +2 -2
  86. homeassistant-stubs/components/husqvarna_automower/button.pyi +4 -0
  87. homeassistant-stubs/components/husqvarna_automower/const.pyi +1 -0
  88. homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +10 -0
  89. homeassistant-stubs/components/husqvarna_automower/event.pyi +35 -0
  90. homeassistant-stubs/components/husqvarna_automower/sensor.pyi +1 -2
  91. homeassistant-stubs/components/idasen_desk/__init__.pyi +0 -1
  92. homeassistant-stubs/components/jewish_calendar/__init__.pyi +2 -1
  93. homeassistant-stubs/components/jewish_calendar/coordinator.pyi +41 -0
  94. homeassistant-stubs/components/jewish_calendar/entity.pyi +5 -26
  95. homeassistant-stubs/components/jewish_calendar/sensor.pyi +1 -1
  96. homeassistant-stubs/components/knx/scene.pyi +5 -4
  97. homeassistant-stubs/components/knx/storage/entity_store_schema.pyi +5 -11
  98. homeassistant-stubs/components/knx/storage/knx_selector.pyi +57 -6
  99. homeassistant-stubs/components/knx/storage/serialize.pyi +10 -0
  100. homeassistant-stubs/components/knx/storage/util.pyi +2 -0
  101. homeassistant-stubs/components/knx/websocket.pyi +7 -3
  102. homeassistant-stubs/components/letpot/select.pyi +39 -0
  103. homeassistant-stubs/components/mastodon/__init__.pyi +1 -2
  104. homeassistant-stubs/components/mastodon/config_flow.pyi +2 -2
  105. homeassistant-stubs/components/mastodon/const.pyi +0 -1
  106. homeassistant-stubs/components/mastodon/diagnostics.pyi +2 -2
  107. homeassistant-stubs/components/mastodon/services.pyi +2 -1
  108. homeassistant-stubs/components/matter/lock.pyi +6 -0
  109. homeassistant-stubs/components/matter/sensor.pyi +2 -1
  110. homeassistant-stubs/components/mealie/const.pyi +0 -1
  111. homeassistant-stubs/components/mealie/services.pyi +2 -2
  112. homeassistant-stubs/components/media_player/__init__.pyi +4 -0
  113. homeassistant-stubs/components/media_player/intent.pyi +13 -3
  114. homeassistant-stubs/components/met_eireann/const.pyi +1 -1
  115. homeassistant-stubs/components/met_eireann/weather.pyi +4 -0
  116. homeassistant-stubs/components/miele/climate.pyi +3 -1
  117. homeassistant-stubs/components/miele/const.pyi +1 -0
  118. homeassistant-stubs/components/miele/coordinator.pyi +2 -3
  119. homeassistant-stubs/components/miele/entity.pyi +2 -3
  120. homeassistant-stubs/components/miele/sensor.pyi +25 -6
  121. homeassistant-stubs/components/modbus/binary_sensor.pyi +1 -2
  122. homeassistant-stubs/components/modbus/climate.pyi +1 -2
  123. homeassistant-stubs/components/modbus/const.pyi +2 -0
  124. homeassistant-stubs/components/modbus/entity.pyi +7 -16
  125. homeassistant-stubs/components/modbus/light.pyi +0 -1
  126. homeassistant-stubs/components/modbus/modbus.pyi +9 -11
  127. homeassistant-stubs/components/modbus/sensor.pyi +1 -3
  128. homeassistant-stubs/components/mqtt/alarm_control_panel.pyi +2 -23
  129. homeassistant-stubs/components/mqtt/config_flow.pyi +8 -2
  130. homeassistant-stubs/components/mqtt/const.pyi +40 -1
  131. homeassistant-stubs/components/mqtt/lock.pyi +1 -21
  132. homeassistant-stubs/components/mqtt/number.pyi +1 -0
  133. homeassistant-stubs/components/mqtt/sensor.pyi +1 -1
  134. homeassistant-stubs/components/music_assistant/actions.pyi +2 -1
  135. homeassistant-stubs/components/music_assistant/const.pyi +0 -1
  136. homeassistant-stubs/components/music_assistant/media_browser.pyi +1 -1
  137. homeassistant-stubs/components/nanoleaf/config_flow.pyi +1 -1
  138. homeassistant-stubs/components/number/__init__.pyi +3 -0
  139. homeassistant-stubs/components/number/const.pyi +2 -1
  140. homeassistant-stubs/components/open_router/entity.pyi +2 -2
  141. homeassistant-stubs/components/openai_conversation/entity.pyi +3 -3
  142. homeassistant-stubs/components/opower/__init__.pyi +1 -0
  143. homeassistant-stubs/components/opower/repairs.pyi +13 -0
  144. homeassistant-stubs/components/overseerr/const.pyi +0 -1
  145. homeassistant-stubs/components/overseerr/services.pyi +2 -1
  146. homeassistant-stubs/components/person/__init__.pyi +2 -1
  147. homeassistant-stubs/components/qbus/binary_sensor.pyi +43 -0
  148. homeassistant-stubs/components/qbus/climate.pyi +1 -1
  149. homeassistant-stubs/components/qbus/coordinator.pyi +4 -3
  150. homeassistant-stubs/components/qbus/cover.pyi +1 -1
  151. homeassistant-stubs/components/qbus/entity.pyi +6 -5
  152. homeassistant-stubs/components/qbus/light.pyi +1 -1
  153. homeassistant-stubs/components/qbus/scene.pyi +4 -6
  154. homeassistant-stubs/components/qbus/sensor.pyi +67 -0
  155. homeassistant-stubs/components/qbus/switch.pyi +1 -1
  156. homeassistant-stubs/components/recorder/statistics.pyi +1 -1
  157. homeassistant-stubs/components/recorder/websocket_api.pyi +1 -1
  158. homeassistant-stubs/components/rest_command/__init__.pyi +1 -1
  159. homeassistant-stubs/components/romy/coordinator.pyi +0 -1
  160. homeassistant-stubs/components/russound_rio/media_browser.pyi +8 -0
  161. homeassistant-stubs/components/russound_rio/media_player.pyi +3 -2
  162. homeassistant-stubs/components/ruuvitag_ble/sensor.pyi +2 -2
  163. homeassistant-stubs/components/scene/__init__.pyi +13 -4
  164. homeassistant-stubs/components/sensibo/select.pyi +0 -5
  165. homeassistant-stubs/components/sensor/__init__.pyi +3 -0
  166. homeassistant-stubs/components/sensor/const.pyi +3 -2
  167. homeassistant-stubs/components/sensor/recorder.pyi +1 -1
  168. homeassistant-stubs/components/sleep_as_android/__init__.pyi +16 -0
  169. homeassistant-stubs/components/sleep_as_android/config_flow.pyi +2 -0
  170. homeassistant-stubs/components/sleep_as_android/const.pyi +9 -0
  171. homeassistant-stubs/components/sleep_as_android/diagnostics.pyi +5 -0
  172. homeassistant-stubs/components/sleep_as_android/entity.pyi +20 -0
  173. homeassistant-stubs/components/sleep_as_android/event.pyi +33 -0
  174. homeassistant-stubs/components/sleep_as_android/sensor.pyi +25 -0
  175. homeassistant-stubs/components/solarlog/sensor.pyi +11 -1
  176. homeassistant-stubs/components/speedtestdotnet/coordinator.pyi +0 -1
  177. homeassistant-stubs/components/stookwijzer/const.pyi +0 -1
  178. homeassistant-stubs/components/stookwijzer/services.pyi +2 -1
  179. homeassistant-stubs/components/sun/condition.pyi +2 -2
  180. homeassistant-stubs/components/switchbot_cloud/__init__.pyi +1 -0
  181. homeassistant-stubs/components/switchbot_cloud/const.pyi +10 -0
  182. homeassistant-stubs/components/switchbot_cloud/cover.pyi +57 -0
  183. homeassistant-stubs/components/switchbot_cloud/fan.pyi +22 -1
  184. homeassistant-stubs/components/telegram_bot/__init__.pyi +2 -1
  185. homeassistant-stubs/components/telegram_bot/bot.pyi +4 -1
  186. homeassistant-stubs/components/telegram_bot/notify.pyi +21 -0
  187. homeassistant-stubs/components/unifi/switch.pyi +3 -0
  188. homeassistant-stubs/components/volvo/__init__.pyi +1 -1
  189. homeassistant-stubs/components/volvo/binary_sensor.pyi +42 -0
  190. homeassistant-stubs/components/volvo/const.pyi +1 -1
  191. homeassistant-stubs/components/volvo/coordinator.pyi +8 -1
  192. homeassistant-stubs/components/volvo/sensor.pyi +2 -2
  193. homeassistant-stubs/components/webostv/__init__.pyi +2 -2
  194. homeassistant-stubs/components/webostv/const.pyi +0 -1
  195. homeassistant-stubs/components/webostv/notify.pyi +2 -2
  196. homeassistant-stubs/components/websocket_api/http.pyi +1 -0
  197. homeassistant-stubs/components/wemo/coordinator.pyi +0 -1
  198. homeassistant-stubs/components/withings/diagnostics.pyi +4 -0
  199. homeassistant-stubs/components/workday/__init__.pyi +6 -8
  200. homeassistant-stubs/components/workday/binary_sensor.pyi +9 -33
  201. homeassistant-stubs/components/workday/entity.pyi +34 -0
  202. homeassistant-stubs/components/workday/util.pyi +14 -0
  203. homeassistant-stubs/components/yalexs_ble/__init__.pyi +3 -1
  204. homeassistant-stubs/components/yalexs_ble/config_cache.pyi +10 -0
  205. homeassistant-stubs/components/yalexs_ble/config_flow.pyi +4 -0
  206. homeassistant-stubs/components/zone/condition.pyi +2 -2
  207. homeassistant-stubs/components/zwave_js/__init__.pyi +5 -5
  208. homeassistant-stubs/components/zwave_js/binary_sensor.pyi +18 -10
  209. homeassistant-stubs/components/zwave_js/config_flow.pyi +6 -0
  210. homeassistant-stubs/components/zwave_js/const.pyi +0 -1
  211. homeassistant-stubs/components/zwave_js/discovery.pyi +7 -51
  212. homeassistant-stubs/components/zwave_js/discovery_data_template.pyi +1 -11
  213. homeassistant-stubs/components/zwave_js/entity.pyi +15 -5
  214. homeassistant-stubs/components/zwave_js/helpers.pyi +0 -7
  215. homeassistant-stubs/components/zwave_js/migrate.pyi +2 -2
  216. homeassistant-stubs/components/zwave_js/models.pyi +95 -1
  217. homeassistant-stubs/components/zwave_js/sensor.pyi +7 -4
  218. homeassistant-stubs/components/zwave_js/triggers/event.pyi +5 -4
  219. homeassistant-stubs/components/zwave_js/triggers/trigger_helpers.pyi +2 -2
  220. homeassistant-stubs/components/zwave_js/triggers/value_updated.pyi +3 -2
  221. homeassistant-stubs/components/zwave_js/update.pyi +0 -3
  222. homeassistant-stubs/config_entries.pyi +5 -0
  223. homeassistant-stubs/const.pyi +9 -5
  224. homeassistant-stubs/data_entry_flow.pyi +0 -1
  225. homeassistant-stubs/helpers/automation.pyi +2 -0
  226. homeassistant-stubs/helpers/condition.pyi +6 -6
  227. homeassistant-stubs/helpers/config_validation.pyi +3 -0
  228. homeassistant-stubs/helpers/data_entry_flow.pyi +1 -1
  229. homeassistant-stubs/helpers/device_registry.pyi +2 -2
  230. homeassistant-stubs/helpers/entity_registry.pyi +4 -3
  231. homeassistant-stubs/helpers/json.pyi +0 -7
  232. homeassistant-stubs/helpers/llm.pyi +1 -0
  233. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +2 -1
  234. homeassistant-stubs/helpers/selector.pyi +2 -1
  235. homeassistant-stubs/helpers/target.pyi +3 -2
  236. homeassistant-stubs/helpers/trigger.pyi +6 -6
  237. homeassistant-stubs/util/unit_conversion.pyi +11 -1
  238. {homeassistant_stubs-2025.8.2.dist-info → homeassistant_stubs-2025.9.0.dist-info}/METADATA +2 -2
  239. {homeassistant_stubs-2025.8.2.dist-info → homeassistant_stubs-2025.9.0.dist-info}/RECORD +241 -215
  240. homeassistant-stubs/components/linear_garage_door/__init__.pyi +0 -10
  241. homeassistant-stubs/components/linear_garage_door/config_flow.pyi +0 -25
  242. homeassistant-stubs/components/linear_garage_door/const.pyi +0 -1
  243. homeassistant-stubs/components/linear_garage_door/coordinator.pyi +0 -26
  244. homeassistant-stubs/components/linear_garage_door/cover.pyi +0 -28
  245. homeassistant-stubs/components/linear_garage_door/diagnostics.pyi +0 -10
  246. homeassistant-stubs/components/linear_garage_door/entity.pyi +0 -17
  247. homeassistant-stubs/components/linear_garage_door/light.pyi +0 -23
  248. homeassistant-stubs/components/mastodon/notify.pyi +0 -24
  249. {homeassistant_stubs-2025.8.2.dist-info → homeassistant_stubs-2025.9.0.dist-info}/WHEEL +0 -0
  250. {homeassistant_stubs-2025.8.2.dist-info → homeassistant_stubs-2025.9.0.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,8 +1,8 @@
1
- from .const import DOMAIN as DOMAIN
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
5
- from homeassistant.const import Platform as Platform
5
+ from homeassistant.const import CONF_COUNTRY as CONF_COUNTRY, Platform as Platform
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant
7
7
  from homeassistant.helpers import aiohttp_client as aiohttp_client
8
8
  from homeassistant.helpers.typing import ConfigType as ConfigType
@@ -12,4 +12,5 @@ CONFIG_SCHEMA: Incomplete
12
12
 
13
13
  async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
14
14
  async def async_setup_entry(hass: HomeAssistant, entry: AmazonConfigEntry) -> bool: ...
15
+ async def async_migrate_entry(hass: HomeAssistant, entry: AmazonConfigEntry) -> bool: ...
15
16
  async def async_unload_entry(hass: HomeAssistant, entry: AmazonConfigEntry) -> bool: ...
@@ -2,17 +2,20 @@ from .const import CONF_LOGIN_DATA as CONF_LOGIN_DATA, DOMAIN as DOMAIN
2
2
  from _typeshed import Incomplete
3
3
  from collections.abc import Mapping
4
4
  from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
5
- from homeassistant.const import CONF_CODE as CONF_CODE, CONF_COUNTRY as CONF_COUNTRY, CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME
5
+ from homeassistant.const import CONF_CODE as CONF_CODE, CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant
7
7
  from homeassistant.helpers import aiohttp_client as aiohttp_client
8
- from homeassistant.helpers.selector import CountrySelector as CountrySelector
9
8
  from typing import Any
10
9
 
11
10
  STEP_REAUTH_DATA_SCHEMA: Incomplete
11
+ STEP_RECONFIGURE: Incomplete
12
12
 
13
13
  async def validate_input(hass: HomeAssistant, data: dict[str, Any]) -> dict[str, Any]: ...
14
14
 
15
15
  class AmazonDevicesConfigFlow(ConfigFlow, domain=DOMAIN):
16
+ VERSION: int
17
+ MINOR_VERSION: int
16
18
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
17
19
  async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
18
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,3 +3,5 @@ from _typeshed import Incomplete
3
3
  _LOGGER: Incomplete
4
4
  DOMAIN: str
5
5
  CONF_LOGIN_DATA: str
6
+ DEFAULT_DOMAIN: str
7
+ COUNTRY_DOMAINS: Incomplete
@@ -3,7 +3,7 @@ from _typeshed import Incomplete
3
3
  from aioamazondevices.api import AmazonDevice
4
4
  from aiohttp import ClientSession as ClientSession
5
5
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
- from homeassistant.const import CONF_COUNTRY as CONF_COUNTRY, CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME
6
+ from homeassistant.const import CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant
8
8
  from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed
9
9
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
@@ -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
@@ -9,7 +9,6 @@ from homeassistant.helpers import device_registry as dr
9
9
 
10
10
  ATTR_TEXT_COMMAND: str
11
11
  ATTR_SOUND: str
12
- ATTR_SOUND_VARIANT: str
13
12
  SERVICE_TEXT_COMMAND: str
14
13
  SERVICE_SOUND_NOTIFICATION: str
15
14
  SCHEMA_SOUND_SERVICE: Incomplete
@@ -1,4 +1,4 @@
1
- from .const import CONF_SITE_ID as CONF_SITE_ID, CONF_SITE_NAME as CONF_SITE_NAME, DOMAIN as DOMAIN
1
+ from .const import CONF_SITE_ID as CONF_SITE_ID, CONF_SITE_NAME as CONF_SITE_NAME, DOMAIN as DOMAIN, REQUEST_TIMEOUT as REQUEST_TIMEOUT
2
2
  from amberelectric.models.site import Site as Site
3
3
  from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
4
4
  from homeassistant.const import CONF_API_TOKEN as CONF_API_TOKEN
@@ -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
@@ -14,3 +13,4 @@ SERVICE_GET_FORECASTS: str
14
13
  GENERAL_CHANNEL: str
15
14
  CONTROLLED_LOAD_CHANNEL: str
16
15
  FEED_IN_CHANNEL: str
16
+ REQUEST_TIMEOUT: int
@@ -1,5 +1,5 @@
1
1
  import amberelectric
2
- from .const import LOGGER as LOGGER
2
+ from .const import LOGGER as LOGGER, REQUEST_TIMEOUT as REQUEST_TIMEOUT
3
3
  from .helpers import normalize_descriptor as normalize_descriptor
4
4
  from _typeshed import Incomplete
5
5
  from amberelectric.models.actual_interval import ActualInterval as ActualInterval
@@ -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,20 @@
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.config import ARConfigKey
10
+ from asusrouter.modules.client import AsusClient as AsusClient
11
+ from asusrouter.modules.data import AsusData
7
12
  from collections.abc import Awaitable, Callable, Coroutine
8
13
  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
14
  from homeassistant.core import HomeAssistant as HomeAssistant
10
- from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
15
+ from homeassistant.helpers.aiohttp_client import async_create_clientsession as async_create_clientsession
11
16
  from homeassistant.helpers.device_registry import format_mac as format_mac
12
17
  from homeassistant.helpers.update_coordinator import UpdateFailed as UpdateFailed
13
- from pyasuswrt import AsusWrtHttp
14
18
  from typing import Any, NamedTuple
15
19
 
16
20
  SENSORS_TYPE_BYTES: str
@@ -87,10 +91,11 @@ class AsusWrtLegacyBridge(AsusWrtBridge):
87
91
  async def _get_temperatures(self) -> Any: ...
88
92
 
89
93
  class AsusWrtHttpBridge(AsusWrtBridge):
90
- _api: AsusWrtHttp
94
+ _api: Incomplete
91
95
  def __init__(self, conf: dict[str, Any], session: ClientSession) -> None: ...
92
96
  @staticmethod
93
- def _get_api(conf: dict[str, Any], session: ClientSession) -> AsusWrtHttp: ...
97
+ def _get_api(conf: dict[str, Any], session: ClientSession, config: dict[ARConfigKey, Any]) -> AsusRouter: ...
98
+ def _get_api_config(self) -> dict[ARConfigKey, Any]: ...
94
99
  @property
95
100
  def is_connected(self) -> bool: ...
96
101
  _label_mac: Incomplete
@@ -98,11 +103,10 @@ class AsusWrtHttpBridge(AsusWrtBridge):
98
103
  _model: Incomplete
99
104
  async def async_connect(self) -> None: ...
100
105
  async def async_disconnect(self) -> None: ...
106
+ async def _get_data(self, datatype: AsusData, force: bool = False) -> dict[str, Any]: ...
107
+ async def _get_sensors(self, datatype: AsusData) -> list[str]: ...
101
108
  async def async_get_connected_devices(self) -> dict[str, WrtDevice]: ...
102
109
  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
110
  async def _get_bytes(self) -> Any: ...
107
111
  async def _get_rates(self) -> Any: ...
108
112
  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: ...