homeassistant-stubs 2025.9.4__py3-none-any.whl → 2025.10.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 (306) hide show
  1. homeassistant-stubs/components/acaia/coordinator.pyi +1 -0
  2. homeassistant-stubs/components/accuweather/__init__.pyi +3 -3
  3. homeassistant-stubs/components/accuweather/config_flow.pyi +5 -0
  4. homeassistant-stubs/components/accuweather/const.pyi +1 -0
  5. homeassistant-stubs/components/accuweather/coordinator.pyi +17 -4
  6. homeassistant-stubs/components/accuweather/weather.pyi +5 -2
  7. homeassistant-stubs/components/airos/binary_sensor.pyi +2 -2
  8. homeassistant-stubs/components/airos/config_flow.pyi +1 -1
  9. homeassistant-stubs/components/airos/coordinator.pyi +4 -4
  10. homeassistant-stubs/components/airos/sensor.pyi +2 -2
  11. homeassistant-stubs/components/airzone/select.pyi +1 -0
  12. homeassistant-stubs/components/alexa_devices/coordinator.pyi +2 -0
  13. homeassistant-stubs/components/analytics/__init__.pyi +4 -21
  14. homeassistant-stubs/components/analytics/analytics.pyi +42 -5
  15. homeassistant-stubs/components/androidtv/__init__.pyi +5 -1
  16. homeassistant-stubs/components/androidtv/media_player.pyi +1 -10
  17. homeassistant-stubs/components/androidtv/services.pyi +16 -0
  18. homeassistant-stubs/components/androidtv_remote/entity.pyi +1 -3
  19. homeassistant-stubs/components/assist_pipeline/__init__.pyi +1 -1
  20. homeassistant-stubs/components/assist_pipeline/const.pyi +1 -0
  21. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +7 -4
  22. homeassistant-stubs/components/assist_pipeline/select.pyi +1 -1
  23. homeassistant-stubs/components/asuswrt/bridge.pyi +8 -0
  24. homeassistant-stubs/components/blue_current/__init__.pyi +11 -5
  25. homeassistant-stubs/components/blue_current/const.pyi +6 -0
  26. homeassistant-stubs/components/bluetooth/__init__.pyi +2 -2
  27. homeassistant-stubs/components/bluetooth/api.pyi +5 -2
  28. homeassistant-stubs/components/bluetooth/manager.pyi +7 -1
  29. homeassistant-stubs/components/bluetooth/websocket_api.pyi +6 -1
  30. homeassistant-stubs/components/brother/__init__.pyi +4 -2
  31. homeassistant-stubs/components/brother/config_flow.pyi +5 -2
  32. homeassistant-stubs/components/brother/const.pyi +4 -0
  33. homeassistant-stubs/components/bthome/sensor.pyi +1 -1
  34. homeassistant-stubs/components/camera/__init__.pyi +1 -1
  35. homeassistant-stubs/components/camera/prefs.pyi +3 -1
  36. homeassistant-stubs/components/cloud/http_api.pyi +2 -0
  37. homeassistant-stubs/components/comelit/coordinator.pyi +2 -1
  38. homeassistant-stubs/components/comelit/sensor.pyi +1 -1
  39. homeassistant-stubs/components/compit/__init__.pyi +11 -0
  40. homeassistant-stubs/components/compit/climate.pyi +63 -0
  41. homeassistant-stubs/components/compit/config_flow.pyi +17 -0
  42. homeassistant-stubs/components/compit/const.pyi +2 -0
  43. homeassistant-stubs/components/compit/coordinator.pyi +16 -0
  44. homeassistant-stubs/components/derivative/diagnostics.pyi +5 -0
  45. homeassistant-stubs/components/droplet/__init__.pyi +10 -0
  46. homeassistant-stubs/components/droplet/config_flow.pyi +13 -0
  47. homeassistant-stubs/components/droplet/const.pyi +7 -0
  48. homeassistant-stubs/components/droplet/coordinator.pyi +23 -0
  49. homeassistant-stubs/components/droplet/sensor.pyi +37 -0
  50. homeassistant-stubs/components/ecovacs/number.pyi +4 -1
  51. homeassistant-stubs/components/elkm1/config_flow.pyi +2 -0
  52. homeassistant-stubs/components/elkm1/sensor.pyi +8 -1
  53. homeassistant-stubs/components/energy/sensor.pyi +1 -1
  54. homeassistant-stubs/components/esphome/assist_satellite.pyi +5 -1
  55. homeassistant-stubs/components/esphome/climate.pyi +2 -0
  56. homeassistant-stubs/components/esphome/config_flow.pyi +3 -0
  57. homeassistant-stubs/components/esphome/const.pyi +1 -0
  58. homeassistant-stubs/components/esphome/entry_data.pyi +8 -4
  59. homeassistant-stubs/components/esphome/lock.pyi +1 -1
  60. homeassistant-stubs/components/esphome/manager.pyi +1 -0
  61. homeassistant-stubs/components/esphome/select.pyi +4 -3
  62. homeassistant-stubs/components/fritz/sensor.pyi +2 -1
  63. homeassistant-stubs/components/frontend/__init__.pyi +5 -2
  64. homeassistant-stubs/components/geocaching/entity.pyi +14 -0
  65. homeassistant-stubs/components/geocaching/sensor.pyi +25 -5
  66. homeassistant-stubs/components/go2rtc/__init__.pyi +3 -0
  67. homeassistant-stubs/components/google/__init__.pyi +0 -1
  68. homeassistant-stubs/components/google/config_flow.pyi +3 -3
  69. homeassistant-stubs/components/google_cloud/__init__.pyi +0 -1
  70. homeassistant-stubs/components/google_cloud/config_flow.pyi +2 -2
  71. homeassistant-stubs/components/google_photos/media_source.pyi +2 -2
  72. homeassistant-stubs/components/habitica/binary_sensor.pyi +1 -1
  73. homeassistant-stubs/components/habitica/const.pyi +1 -0
  74. homeassistant-stubs/components/habitica/sensor.pyi +3 -1
  75. homeassistant-stubs/components/habitica/services.pyi +2 -1
  76. homeassistant-stubs/components/habitica/util.pyi +1 -0
  77. homeassistant-stubs/components/here_travel_time/__init__.pyi +3 -1
  78. homeassistant-stubs/components/history_stats/config_flow.pyi +7 -2
  79. homeassistant-stubs/components/history_stats/diagnostics.pyi +5 -0
  80. homeassistant-stubs/components/home_connect/application_credentials.pyi +0 -1
  81. homeassistant-stubs/components/home_connect/coordinator.pyi +0 -1
  82. homeassistant-stubs/components/homeassistant_hardware/firmware_config_flow.pyi +38 -11
  83. homeassistant-stubs/components/homee/alarm_control_panel.pyi +3 -2
  84. homeassistant-stubs/components/homee/binary_sensor.pyi +4 -2
  85. homeassistant-stubs/components/homee/button.pyi +3 -1
  86. homeassistant-stubs/components/homee/climate.pyi +3 -1
  87. homeassistant-stubs/components/homee/cover.pyi +3 -1
  88. homeassistant-stubs/components/homee/event.pyi +3 -1
  89. homeassistant-stubs/components/homee/fan.pyi +3 -1
  90. homeassistant-stubs/components/homee/helpers.pyi +6 -0
  91. homeassistant-stubs/components/homee/light.pyi +2 -0
  92. homeassistant-stubs/components/homee/lock.pyi +4 -2
  93. homeassistant-stubs/components/homee/number.pyi +3 -1
  94. homeassistant-stubs/components/homee/select.pyi +3 -1
  95. homeassistant-stubs/components/homee/sensor.pyi +2 -2
  96. homeassistant-stubs/components/homee/siren.pyi +4 -1
  97. homeassistant-stubs/components/homee/switch.pyi +4 -2
  98. homeassistant-stubs/components/homee/valve.pyi +3 -1
  99. homeassistant-stubs/components/homekit/type_switches.pyi +7 -1
  100. homeassistant-stubs/components/homewizard/sensor.pyi +3 -1
  101. homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +1 -1
  102. homeassistant-stubs/components/image/__init__.pyi +1 -0
  103. homeassistant-stubs/components/image_upload/__init__.pyi +1 -1
  104. homeassistant-stubs/components/image_upload/const.pyi +1 -0
  105. homeassistant-stubs/components/image_upload/media_source.pyi +5 -1
  106. homeassistant-stubs/components/immich/media_source.pyi +2 -2
  107. homeassistant-stubs/components/integration/__init__.pyi +0 -1
  108. homeassistant-stubs/components/integration/config_flow.pyi +1 -0
  109. homeassistant-stubs/components/lawn_mower/intent.pyi +8 -0
  110. homeassistant-stubs/components/letpot/number.pyi +34 -0
  111. homeassistant-stubs/components/libre_hardware_monitor/__init__.pyi +9 -0
  112. homeassistant-stubs/components/libre_hardware_monitor/config_flow.pyi +12 -0
  113. homeassistant-stubs/components/libre_hardware_monitor/const.pyi +4 -0
  114. homeassistant-stubs/components/libre_hardware_monitor/coordinator.pyi +21 -0
  115. homeassistant-stubs/components/libre_hardware_monitor/sensor.pyi +34 -0
  116. homeassistant-stubs/components/litterrobot/select.pyi +1 -1
  117. homeassistant-stubs/components/litterrobot/switch.pyi +5 -1
  118. homeassistant-stubs/components/logbook/helpers.pyi +4 -3
  119. homeassistant-stubs/components/mastodon/const.pyi +1 -0
  120. homeassistant-stubs/components/mastodon/services.pyi +1 -1
  121. homeassistant-stubs/components/matter/models.pyi +1 -0
  122. homeassistant-stubs/components/matter/sensor.pyi +1 -0
  123. homeassistant-stubs/components/mcp_server/session.pyi +2 -2
  124. homeassistant-stubs/components/media_source/__init__.pyi +2 -10
  125. homeassistant-stubs/components/media_source/helper.pyi +16 -0
  126. homeassistant-stubs/components/media_source/http.pyi +13 -0
  127. homeassistant-stubs/components/media_source/local_source.pyi +19 -11
  128. homeassistant-stubs/components/metoffice/sensor.pyi +1 -1
  129. homeassistant-stubs/components/miele/const.pyi +193 -17
  130. homeassistant-stubs/components/miele/sensor.pyi +12 -3
  131. homeassistant-stubs/components/miele/vacuum.pyi +1 -2
  132. homeassistant-stubs/components/min_max/sensor.pyi +1 -1
  133. homeassistant-stubs/components/modbus/__init__.pyi +1 -1
  134. homeassistant-stubs/components/modbus/binary_sensor.pyi +2 -2
  135. homeassistant-stubs/components/modbus/climate.pyi +2 -2
  136. homeassistant-stubs/components/modbus/const.pyi +1 -0
  137. homeassistant-stubs/components/modbus/cover.pyi +2 -2
  138. homeassistant-stubs/components/modbus/entity.pyi +4 -4
  139. homeassistant-stubs/components/modbus/fan.pyi +2 -2
  140. homeassistant-stubs/components/modbus/light.pyi +2 -2
  141. homeassistant-stubs/components/modbus/modbus.pyi +1 -2
  142. homeassistant-stubs/components/modbus/sensor.pyi +2 -2
  143. homeassistant-stubs/components/modbus/switch.pyi +2 -2
  144. homeassistant-stubs/components/modbus/validators.pyi +1 -1
  145. homeassistant-stubs/components/motionmount/select.pyi +1 -0
  146. homeassistant-stubs/components/mqtt/config_flow.pyi +61 -60
  147. homeassistant-stubs/components/mqtt/const.pyi +6 -0
  148. homeassistant-stubs/components/mqtt/device_automation.pyi +1 -1
  149. homeassistant-stubs/components/mqtt/entity.pyi +2 -2
  150. homeassistant-stubs/components/mqtt/image.pyi +1 -5
  151. homeassistant-stubs/components/mqtt/light/schema_json.pyi +0 -1
  152. homeassistant-stubs/components/mqtt/schemas.pyi +1 -1
  153. homeassistant-stubs/components/mqtt/tag.pyi +1 -1
  154. homeassistant-stubs/components/music_assistant/__init__.pyi +2 -1
  155. homeassistant-stubs/components/music_assistant/config_flow.pyi +1 -1
  156. homeassistant-stubs/components/music_assistant/const.pyi +1 -0
  157. homeassistant-stubs/components/nordpool/coordinator.pyi +4 -2
  158. homeassistant-stubs/components/ntfy/config_flow.pyi +4 -2
  159. homeassistant-stubs/components/ntfy/const.pyi +6 -0
  160. homeassistant-stubs/components/ntfy/entity.pyi +18 -0
  161. homeassistant-stubs/components/ntfy/event.pyi +29 -0
  162. homeassistant-stubs/components/ntfy/notify.pyi +19 -13
  163. homeassistant-stubs/components/{home_connect → ntfy}/repairs.pyi +7 -3
  164. homeassistant-stubs/components/number/const.pyi +1 -1
  165. homeassistant-stubs/components/openai_conversation/ai_task.pyi +5 -1
  166. homeassistant-stubs/components/openai_conversation/const.pyi +1 -0
  167. homeassistant-stubs/components/openai_conversation/entity.pyi +2 -2
  168. homeassistant-stubs/components/openuv/__init__.pyi +1 -1
  169. homeassistant-stubs/components/openuv/binary_sensor.pyi +2 -2
  170. homeassistant-stubs/components/openuv/coordinator.pyi +14 -1
  171. homeassistant-stubs/components/opnsense/__init__.pyi +11 -0
  172. homeassistant-stubs/components/opnsense/const.pyi +5 -0
  173. homeassistant-stubs/components/opnsense/device_tracker.pyi +23 -0
  174. homeassistant-stubs/components/portainer/__init__.pyi +11 -0
  175. homeassistant-stubs/components/portainer/binary_sensor.pyi +39 -0
  176. homeassistant-stubs/components/portainer/config_flow.pyi +20 -0
  177. homeassistant-stubs/components/portainer/const.pyi +2 -0
  178. homeassistant-stubs/components/portainer/coordinator.pyi +29 -0
  179. homeassistant-stubs/components/portainer/entity.pyi +22 -0
  180. homeassistant-stubs/components/prusalink/coordinator.pyi +2 -0
  181. homeassistant-stubs/components/radio_browser/media_source.pyi +3 -0
  182. homeassistant-stubs/components/recorder/models/statistics.pyi +1 -0
  183. homeassistant-stubs/components/recorder/statistics.pyi +1 -1
  184. homeassistant-stubs/components/recorder/util.pyi +1 -0
  185. homeassistant-stubs/components/recorder/websocket_api.pyi +1 -1
  186. homeassistant-stubs/components/reolink/entity.pyi +10 -0
  187. homeassistant-stubs/components/reolink/light.pyi +7 -1
  188. homeassistant-stubs/components/reolink/number.pyi +10 -1
  189. homeassistant-stubs/components/reolink/select.pyi +11 -3
  190. homeassistant-stubs/components/reolink/siren.pyi +11 -1
  191. homeassistant-stubs/components/reolink/switch.pyi +11 -1
  192. homeassistant-stubs/components/roborock/config_flow.pyi +1 -1
  193. homeassistant-stubs/components/roborock/const.pyi +1 -0
  194. homeassistant-stubs/components/roborock/coordinator.pyi +1 -1
  195. homeassistant-stubs/components/route_b_smart_meter/__init__.pyi +10 -0
  196. homeassistant-stubs/components/route_b_smart_meter/config_flow.pyi +22 -0
  197. homeassistant-stubs/components/route_b_smart_meter/const.pyi +9 -0
  198. homeassistant-stubs/components/route_b_smart_meter/coordinator.pyi +26 -0
  199. homeassistant-stubs/components/route_b_smart_meter/sensor.pyi +30 -0
  200. homeassistant-stubs/components/scrape/__init__.pyi +0 -1
  201. homeassistant-stubs/components/scrape/config_flow.pyi +1 -0
  202. homeassistant-stubs/components/scrape/coordinator.pyi +5 -1
  203. homeassistant-stubs/components/sensor/const.pyi +2 -1
  204. homeassistant-stubs/components/sensor/device_condition.pyi +1 -0
  205. homeassistant-stubs/components/sensor/device_trigger.pyi +1 -0
  206. homeassistant-stubs/components/sftp_storage/__init__.pyi +21 -0
  207. homeassistant-stubs/components/sftp_storage/backup.pyi +24 -0
  208. homeassistant-stubs/components/sftp_storage/client.pyi +48 -0
  209. homeassistant-stubs/components/sftp_storage/config_flow.pyi +25 -0
  210. homeassistant-stubs/components/sftp_storage/const.pyi +16 -0
  211. homeassistant-stubs/components/shelly/__init__.pyi +2 -2
  212. homeassistant-stubs/components/shelly/binary_sensor.pyi +5 -1
  213. homeassistant-stubs/components/shelly/button.pyi +10 -2
  214. homeassistant-stubs/components/shelly/const.pyi +5 -2
  215. homeassistant-stubs/components/shelly/cover.pyi +6 -0
  216. homeassistant-stubs/components/shelly/entity.pyi +1 -3
  217. homeassistant-stubs/components/shelly/light.pyi +18 -10
  218. homeassistant-stubs/components/shelly/number.pyi +1 -1
  219. homeassistant-stubs/components/shelly/repairs.pyi +4 -2
  220. homeassistant-stubs/components/shelly/select.pyi +1 -1
  221. homeassistant-stubs/components/shelly/sensor.pyi +12 -8
  222. homeassistant-stubs/components/shelly/switch.pyi +1 -1
  223. homeassistant-stubs/components/shelly/text.pyi +1 -1
  224. homeassistant-stubs/components/shelly/utils.pyi +7 -2
  225. homeassistant-stubs/components/sql/__init__.pyi +2 -2
  226. homeassistant-stubs/components/sql/config_flow.pyi +6 -2
  227. homeassistant-stubs/components/sql/const.pyi +1 -0
  228. homeassistant-stubs/components/sql/sensor.pyi +1 -1
  229. homeassistant-stubs/components/squeezebox/browse_media.pyi +1 -1
  230. homeassistant-stubs/components/ssdp/server.pyi +2 -3
  231. homeassistant-stubs/components/starlink/sensor.pyi +8 -1
  232. homeassistant-stubs/components/statistics/__init__.pyi +0 -1
  233. homeassistant-stubs/components/statistics/config_flow.pyi +1 -0
  234. homeassistant-stubs/components/switchbot_cloud/__init__.pyi +1 -0
  235. homeassistant-stubs/components/switchbot_cloud/binary_sensor.pyi +7 -0
  236. homeassistant-stubs/components/switchbot_cloud/climate.pyi +7 -3
  237. homeassistant-stubs/components/switchbot_cloud/const.pyi +13 -0
  238. homeassistant-stubs/components/switchbot_cloud/humidifier.pyi +48 -0
  239. homeassistant-stubs/components/switchbot_cloud/light.pyi +1 -0
  240. homeassistant-stubs/components/switchbot_cloud/sensor.pyi +13 -1
  241. homeassistant-stubs/components/synology_dsm/media_source.pyi +2 -2
  242. homeassistant-stubs/components/synology_dsm/sensor.pyi +3 -0
  243. homeassistant-stubs/components/systemmonitor/binary_sensor.pyi +1 -1
  244. homeassistant-stubs/components/systemmonitor/const.pyi +1 -0
  245. homeassistant-stubs/components/systemmonitor/coordinator.pyi +2 -0
  246. homeassistant-stubs/components/systemmonitor/sensor.pyi +2 -0
  247. homeassistant-stubs/components/telegram_bot/__init__.pyi +2 -1
  248. homeassistant-stubs/components/telegram_bot/bot.pyi +1 -0
  249. homeassistant-stubs/components/telegram_bot/const.pyi +13 -0
  250. homeassistant-stubs/components/threshold/__init__.pyi +0 -1
  251. homeassistant-stubs/components/threshold/config_flow.pyi +1 -0
  252. homeassistant-stubs/components/tolo/config_flow.pyi +5 -3
  253. homeassistant-stubs/components/tts/__init__.pyi +5 -0
  254. homeassistant-stubs/components/uptimerobot/config_flow.pyi +1 -0
  255. homeassistant-stubs/components/vacuum/intent.pyi +1 -1
  256. homeassistant-stubs/components/volvo/__init__.pyi +1 -1
  257. homeassistant-stubs/components/volvo/api.pyi +4 -0
  258. homeassistant-stubs/components/volvo/coordinator.pyi +28 -15
  259. homeassistant-stubs/components/wake_on_lan/__init__.pyi +0 -1
  260. homeassistant-stubs/components/wake_on_lan/config_flow.pyi +1 -0
  261. homeassistant-stubs/components/webhook/trigger.pyi +2 -1
  262. homeassistant-stubs/components/workday/calendar.pyi +25 -0
  263. homeassistant-stubs/components/yalexs_ble/__init__.pyi +0 -1
  264. homeassistant-stubs/components/yalexs_ble/config_flow.pyi +2 -2
  265. homeassistant-stubs/components/zwave_js/__init__.pyi +1 -1
  266. homeassistant-stubs/components/zwave_js/config_flow.pyi +6 -3
  267. homeassistant-stubs/components/zwave_js/const.pyi +3 -0
  268. homeassistant-stubs/components/zwave_js/device_trigger.pyi +1 -1
  269. homeassistant-stubs/components/zwave_js/triggers/event.pyi +24 -9
  270. homeassistant-stubs/components/zwave_js/triggers/value_updated.pyi +11 -7
  271. homeassistant-stubs/config_entries.pyi +6 -1
  272. homeassistant-stubs/const.pyi +7 -46
  273. homeassistant-stubs/data_entry_flow.pyi +16 -3
  274. homeassistant-stubs/generated/entity_platforms.pyi +46 -0
  275. homeassistant-stubs/helpers/condition.pyi +3 -1
  276. homeassistant-stubs/helpers/config_validation.pyi +1 -1
  277. homeassistant-stubs/helpers/deprecation.pyi +1 -0
  278. homeassistant-stubs/helpers/device_registry.pyi +4 -3
  279. homeassistant-stubs/helpers/entity_component.pyi +1 -3
  280. homeassistant-stubs/helpers/event.pyi +2 -1
  281. homeassistant-stubs/helpers/intent.pyi +5 -8
  282. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +5 -1
  283. homeassistant-stubs/helpers/selector.pyi +16 -16
  284. homeassistant-stubs/helpers/service.pyi +12 -14
  285. homeassistant-stubs/helpers/service_info/esphome.pyi +12 -0
  286. homeassistant-stubs/helpers/{template.pyi → template/__init__.pyi} +14 -97
  287. homeassistant-stubs/helpers/template/context.pyi +16 -0
  288. homeassistant-stubs/helpers/template/extensions/__init__.pyi +8 -0
  289. homeassistant-stubs/helpers/template/extensions/base.pyi +21 -0
  290. homeassistant-stubs/helpers/template/extensions/base64.pyi +9 -0
  291. homeassistant-stubs/helpers/template/extensions/collection.pyi +18 -0
  292. homeassistant-stubs/helpers/template/extensions/crypto.pyi +13 -0
  293. homeassistant-stubs/helpers/template/extensions/math.pyi +43 -0
  294. homeassistant-stubs/helpers/template/extensions/regex.pyi +14 -0
  295. homeassistant-stubs/helpers/template/extensions/string.pyi +9 -0
  296. homeassistant-stubs/helpers/template/helpers.pyi +4 -0
  297. homeassistant-stubs/helpers/template/render_info.pyi +39 -0
  298. homeassistant-stubs/helpers/trigger.pyi +16 -5
  299. homeassistant-stubs/helpers/trigger_template_entity.pyi +2 -1
  300. homeassistant-stubs/runner.pyi +16 -0
  301. homeassistant-stubs/util/unit_conversion.pyi +6 -0
  302. {homeassistant_stubs-2025.9.4.dist-info → homeassistant_stubs-2025.10.0b1.dist-info}/METADATA +2 -2
  303. {homeassistant_stubs-2025.9.4.dist-info → homeassistant_stubs-2025.10.0b1.dist-info}/RECORD +305 -247
  304. homeassistant-stubs/components/home_connect/time.pyi +0 -29
  305. {homeassistant_stubs-2025.9.4.dist-info → homeassistant_stubs-2025.10.0b1.dist-info}/WHEEL +0 -0
  306. {homeassistant_stubs-2025.9.4.dist-info → homeassistant_stubs-2025.10.0b1.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,7 @@
1
1
  from .const import CONF_IS_NEW_STYLE_SCALE as CONF_IS_NEW_STYLE_SCALE
2
2
  from _typeshed import Incomplete
3
3
  from aioacaia.acaiascale import AcaiaScale
4
+ from homeassistant.components.bluetooth import async_get_scanner as async_get_scanner
4
5
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
6
  from homeassistant.const import CONF_ADDRESS as CONF_ADDRESS
6
7
  from homeassistant.core import HomeAssistant as HomeAssistant
@@ -1,7 +1,7 @@
1
- from .const import DOMAIN as DOMAIN, UPDATE_INTERVAL_DAILY_FORECAST as UPDATE_INTERVAL_DAILY_FORECAST, UPDATE_INTERVAL_OBSERVATION as UPDATE_INTERVAL_OBSERVATION
2
- from .coordinator import AccuWeatherConfigEntry as AccuWeatherConfigEntry, AccuWeatherDailyForecastDataUpdateCoordinator as AccuWeatherDailyForecastDataUpdateCoordinator, AccuWeatherData as AccuWeatherData, AccuWeatherObservationDataUpdateCoordinator as AccuWeatherObservationDataUpdateCoordinator
1
+ from .const import DOMAIN as DOMAIN
2
+ from .coordinator import AccuWeatherConfigEntry as AccuWeatherConfigEntry, AccuWeatherDailyForecastDataUpdateCoordinator as AccuWeatherDailyForecastDataUpdateCoordinator, AccuWeatherData as AccuWeatherData, AccuWeatherHourlyForecastDataUpdateCoordinator as AccuWeatherHourlyForecastDataUpdateCoordinator, AccuWeatherObservationDataUpdateCoordinator as AccuWeatherObservationDataUpdateCoordinator
3
3
  from _typeshed import Incomplete
4
- from homeassistant.const import CONF_API_KEY as CONF_API_KEY, CONF_NAME as CONF_NAME, Platform as Platform
4
+ from homeassistant.const import CONF_API_KEY as CONF_API_KEY, Platform as Platform
5
5
  from homeassistant.core import HomeAssistant as HomeAssistant
6
6
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
7
7
 
@@ -1,4 +1,5 @@
1
1
  from .const import DOMAIN as DOMAIN
2
+ from collections.abc import Mapping
2
3
  from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
3
4
  from homeassistant.const import CONF_API_KEY as CONF_API_KEY, CONF_LATITUDE as CONF_LATITUDE, CONF_LONGITUDE as CONF_LONGITUDE, CONF_NAME as CONF_NAME
4
5
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
@@ -6,4 +7,8 @@ from typing import Any
6
7
 
7
8
  class AccuWeatherFlowHandler(ConfigFlow, domain=DOMAIN):
8
9
  VERSION: int
10
+ _latitude: float | None
11
+ _longitude: float | None
9
12
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
13
+ async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
14
+ async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -19,3 +19,4 @@ AIR_QUALITY_CATEGORY_MAP: Incomplete
19
19
  POLLEN_CATEGORY_MAP: Incomplete
20
20
  UPDATE_INTERVAL_OBSERVATION: Incomplete
21
21
  UPDATE_INTERVAL_DAILY_FORECAST: Incomplete
22
+ UPDATE_INTERVAL_HOURLY_FORECAST: Incomplete
@@ -1,10 +1,13 @@
1
- from .const import DOMAIN as DOMAIN, MANUFACTURER as MANUFACTURER
1
+ from .const import DOMAIN as DOMAIN, MANUFACTURER as MANUFACTURER, UPDATE_INTERVAL_DAILY_FORECAST as UPDATE_INTERVAL_DAILY_FORECAST, UPDATE_INTERVAL_HOURLY_FORECAST as UPDATE_INTERVAL_HOURLY_FORECAST, UPDATE_INTERVAL_OBSERVATION as UPDATE_INTERVAL_OBSERVATION
2
2
  from _typeshed import Incomplete
3
3
  from accuweather import AccuWeather as AccuWeather
4
+ from collections.abc import Awaitable, Callable as Callable
4
5
  from dataclasses import dataclass
5
6
  from datetime import timedelta
6
7
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
+ from homeassistant.const import CONF_NAME as CONF_NAME
7
9
  from homeassistant.core import HomeAssistant as HomeAssistant
10
+ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed
8
11
  from homeassistant.helpers.device_registry import DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
9
12
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, TimestampDataUpdateCoordinator as TimestampDataUpdateCoordinator, UpdateFailed as UpdateFailed
10
13
  from typing import Any
@@ -16,20 +19,30 @@ _LOGGER: Incomplete
16
19
  class AccuWeatherData:
17
20
  coordinator_observation: AccuWeatherObservationDataUpdateCoordinator
18
21
  coordinator_daily_forecast: AccuWeatherDailyForecastDataUpdateCoordinator
22
+ coordinator_hourly_forecast: AccuWeatherHourlyForecastDataUpdateCoordinator
19
23
  type AccuWeatherConfigEntry = ConfigEntry[AccuWeatherData]
20
24
 
21
25
  class AccuWeatherObservationDataUpdateCoordinator(DataUpdateCoordinator[dict[str, Any]]):
26
+ config_entry: AccuWeatherConfigEntry
22
27
  accuweather: Incomplete
23
28
  location_key: Incomplete
24
29
  device_info: Incomplete
25
- def __init__(self, hass: HomeAssistant, config_entry: AccuWeatherConfigEntry, accuweather: AccuWeather, name: str, coordinator_type: str, update_interval: timedelta) -> None: ...
30
+ def __init__(self, hass: HomeAssistant, config_entry: AccuWeatherConfigEntry, accuweather: AccuWeather) -> None: ...
26
31
  async def _async_update_data(self) -> dict[str, Any]: ...
27
32
 
28
- class AccuWeatherDailyForecastDataUpdateCoordinator(TimestampDataUpdateCoordinator[list[dict[str, Any]]]):
33
+ class AccuWeatherForecastDataUpdateCoordinator(TimestampDataUpdateCoordinator[list[dict[str, Any]]]):
34
+ config_entry: AccuWeatherConfigEntry
29
35
  accuweather: Incomplete
30
36
  location_key: Incomplete
37
+ _fetch_method: Incomplete
31
38
  device_info: Incomplete
32
- def __init__(self, hass: HomeAssistant, config_entry: AccuWeatherConfigEntry, accuweather: AccuWeather, name: str, coordinator_type: str, update_interval: timedelta) -> None: ...
39
+ def __init__(self, hass: HomeAssistant, config_entry: AccuWeatherConfigEntry, accuweather: AccuWeather, coordinator_type: str, update_interval: timedelta, fetch_method: Callable[..., Awaitable[list[dict[str, Any]]]]) -> None: ...
33
40
  async def _async_update_data(self) -> list[dict[str, Any]]: ...
34
41
 
42
+ class AccuWeatherDailyForecastDataUpdateCoordinator(AccuWeatherForecastDataUpdateCoordinator):
43
+ def __init__(self, hass: HomeAssistant, config_entry: AccuWeatherConfigEntry, accuweather: AccuWeather) -> None: ...
44
+
45
+ class AccuWeatherHourlyForecastDataUpdateCoordinator(AccuWeatherForecastDataUpdateCoordinator):
46
+ def __init__(self, hass: HomeAssistant, config_entry: AccuWeatherConfigEntry, accuweather: AccuWeather) -> None: ...
47
+
35
48
  def _get_device_info(location_key: str, name: str) -> DeviceInfo: ...
@@ -1,5 +1,5 @@
1
1
  from .const import API_METRIC as API_METRIC, ATTRIBUTION as ATTRIBUTION, ATTR_DIRECTION as ATTR_DIRECTION, ATTR_SPEED as ATTR_SPEED, ATTR_VALUE as ATTR_VALUE, CONDITION_MAP as CONDITION_MAP
2
- from .coordinator import AccuWeatherConfigEntry as AccuWeatherConfigEntry, AccuWeatherDailyForecastDataUpdateCoordinator as AccuWeatherDailyForecastDataUpdateCoordinator, AccuWeatherData as AccuWeatherData, AccuWeatherObservationDataUpdateCoordinator as AccuWeatherObservationDataUpdateCoordinator
2
+ from .coordinator import AccuWeatherConfigEntry as AccuWeatherConfigEntry, AccuWeatherDailyForecastDataUpdateCoordinator as AccuWeatherDailyForecastDataUpdateCoordinator, AccuWeatherData as AccuWeatherData, AccuWeatherHourlyForecastDataUpdateCoordinator as AccuWeatherHourlyForecastDataUpdateCoordinator, AccuWeatherObservationDataUpdateCoordinator as AccuWeatherObservationDataUpdateCoordinator
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.components.weather import ATTR_FORECAST_CLOUD_COVERAGE as ATTR_FORECAST_CLOUD_COVERAGE, ATTR_FORECAST_CONDITION as ATTR_FORECAST_CONDITION, ATTR_FORECAST_HUMIDITY as ATTR_FORECAST_HUMIDITY, ATTR_FORECAST_NATIVE_APPARENT_TEMP as ATTR_FORECAST_NATIVE_APPARENT_TEMP, ATTR_FORECAST_NATIVE_PRECIPITATION as ATTR_FORECAST_NATIVE_PRECIPITATION, ATTR_FORECAST_NATIVE_TEMP as ATTR_FORECAST_NATIVE_TEMP, ATTR_FORECAST_NATIVE_TEMP_LOW as ATTR_FORECAST_NATIVE_TEMP_LOW, ATTR_FORECAST_NATIVE_WIND_GUST_SPEED as ATTR_FORECAST_NATIVE_WIND_GUST_SPEED, ATTR_FORECAST_NATIVE_WIND_SPEED as ATTR_FORECAST_NATIVE_WIND_SPEED, ATTR_FORECAST_PRECIPITATION_PROBABILITY as ATTR_FORECAST_PRECIPITATION_PROBABILITY, ATTR_FORECAST_TIME as ATTR_FORECAST_TIME, ATTR_FORECAST_UV_INDEX as ATTR_FORECAST_UV_INDEX, ATTR_FORECAST_WIND_BEARING as ATTR_FORECAST_WIND_BEARING, CoordinatorWeatherEntity as CoordinatorWeatherEntity, Forecast as Forecast, WeatherEntityFeature as WeatherEntityFeature
5
5
  from homeassistant.const import UnitOfLength as UnitOfLength, UnitOfPrecipitationDepth as UnitOfPrecipitationDepth, UnitOfPressure as UnitOfPressure, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature
@@ -11,7 +11,7 @@ PARALLEL_UPDATES: int
11
11
 
12
12
  async def async_setup_entry(hass: HomeAssistant, entry: AccuWeatherConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
13
13
 
14
- class AccuWeatherEntity(CoordinatorWeatherEntity[AccuWeatherObservationDataUpdateCoordinator, AccuWeatherDailyForecastDataUpdateCoordinator]):
14
+ class AccuWeatherEntity(CoordinatorWeatherEntity[AccuWeatherObservationDataUpdateCoordinator, AccuWeatherDailyForecastDataUpdateCoordinator, AccuWeatherHourlyForecastDataUpdateCoordinator]):
15
15
  _attr_has_entity_name: bool
16
16
  _attr_name: Incomplete
17
17
  _attr_native_precipitation_unit: Incomplete
@@ -25,6 +25,7 @@ class AccuWeatherEntity(CoordinatorWeatherEntity[AccuWeatherObservationDataUpdat
25
25
  _attr_supported_features: Incomplete
26
26
  observation_coordinator: Incomplete
27
27
  daily_coordinator: Incomplete
28
+ hourly_coordinator: Incomplete
28
29
  def __init__(self, accuweather_data: AccuWeatherData) -> None: ...
29
30
  @property
30
31
  def condition(self) -> str | None: ...
@@ -52,3 +53,5 @@ class AccuWeatherEntity(CoordinatorWeatherEntity[AccuWeatherObservationDataUpdat
52
53
  def uv_index(self) -> float: ...
53
54
  @callback
54
55
  def _async_forecast_daily(self) -> list[Forecast] | None: ...
56
+ @callback
57
+ def _async_forecast_hourly(self) -> list[Forecast] | None: ...
@@ -1,4 +1,4 @@
1
- from .coordinator import AirOSConfigEntry as AirOSConfigEntry, AirOSData as AirOSData, AirOSDataUpdateCoordinator as AirOSDataUpdateCoordinator
1
+ from .coordinator import AirOS8Data as AirOS8Data, AirOSConfigEntry as AirOSConfigEntry, AirOSDataUpdateCoordinator as AirOSDataUpdateCoordinator
2
2
  from .entity import AirOSEntity as AirOSEntity
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Callable as Callable
@@ -13,7 +13,7 @@ PARALLEL_UPDATES: int
13
13
 
14
14
  @dataclass(frozen=True, kw_only=True)
15
15
  class AirOSBinarySensorEntityDescription(BinarySensorEntityDescription):
16
- value_fn: Callable[[AirOSData], bool]
16
+ value_fn: Callable[[AirOS8Data], bool]
17
17
 
18
18
  BINARY_SENSORS: tuple[AirOSBinarySensorEntityDescription, ...]
19
19
 
@@ -1,5 +1,5 @@
1
1
  from .const import DOMAIN as DOMAIN
2
- from .coordinator import AirOS as AirOS
2
+ from .coordinator import AirOS8 as AirOS8
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
5
5
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME
@@ -1,6 +1,6 @@
1
1
  from .const import DOMAIN as DOMAIN, SCAN_INTERVAL as SCAN_INTERVAL
2
2
  from _typeshed import Incomplete
3
- from airos.airos8 import AirOS as AirOS, AirOSData
3
+ from airos.airos8 import AirOS8 as AirOS8, AirOS8Data
4
4
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
5
  from homeassistant.core import HomeAssistant as HomeAssistant
6
6
  from homeassistant.exceptions import ConfigEntryError as ConfigEntryError
@@ -9,8 +9,8 @@ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as Da
9
9
  _LOGGER: Incomplete
10
10
  type AirOSConfigEntry = ConfigEntry[AirOSDataUpdateCoordinator]
11
11
 
12
- class AirOSDataUpdateCoordinator(DataUpdateCoordinator[AirOSData]):
12
+ class AirOSDataUpdateCoordinator(DataUpdateCoordinator[AirOS8Data]):
13
13
  config_entry: AirOSConfigEntry
14
14
  airos_device: Incomplete
15
- def __init__(self, hass: HomeAssistant, config_entry: AirOSConfigEntry, airos_device: AirOS) -> None: ...
16
- async def _async_update_data(self) -> AirOSData: ...
15
+ def __init__(self, hass: HomeAssistant, config_entry: AirOSConfigEntry, airos_device: AirOS8) -> None: ...
16
+ async def _async_update_data(self) -> AirOS8Data: ...
@@ -1,4 +1,4 @@
1
- from .coordinator import AirOSConfigEntry as AirOSConfigEntry, AirOSData as AirOSData, AirOSDataUpdateCoordinator as AirOSDataUpdateCoordinator
1
+ from .coordinator import AirOS8Data as AirOS8Data, AirOSConfigEntry as AirOSConfigEntry, AirOSDataUpdateCoordinator as AirOSDataUpdateCoordinator
2
2
  from .entity import AirOSEntity as AirOSEntity
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Callable as Callable
@@ -17,7 +17,7 @@ PARALLEL_UPDATES: int
17
17
 
18
18
  @dataclass(frozen=True, kw_only=True)
19
19
  class AirOSSensorEntityDescription(SensorEntityDescription):
20
- value_fn: Callable[[AirOSData], StateType]
20
+ value_fn: Callable[[AirOS8Data], StateType]
21
21
 
22
22
  SENSORS: tuple[AirOSSensorEntityDescription, ...]
23
23
 
@@ -19,6 +19,7 @@ class AirzoneSelectDescription(SelectEntityDescription):
19
19
  GRILLE_ANGLE_DICT: Final[dict[str, int]]
20
20
  MODE_DICT: Final[dict[str, int]]
21
21
  SLEEP_DICT: Final[dict[str, int]]
22
+ Q_ADAPT_DICT: Final[dict[str, int]]
22
23
 
23
24
  def main_zone_options(zone_data: dict[str, Any], options: dict[str, int]) -> list[str]: ...
24
25
 
@@ -14,5 +14,7 @@ type AmazonConfigEntry = ConfigEntry[AmazonDevicesCoordinator]
14
14
  class AmazonDevicesCoordinator(DataUpdateCoordinator[dict[str, AmazonDevice]]):
15
15
  config_entry: AmazonConfigEntry
16
16
  api: Incomplete
17
+ previous_devices: set[str]
17
18
  def __init__(self, hass: HomeAssistant, entry: AmazonConfigEntry, session: ClientSession) -> None: ...
18
19
  async def _async_update_data(self) -> dict[str, AmazonDevice]: ...
20
+ async def _async_remove_device_stale(self, stale_devices: set[str]) -> None: ...
@@ -1,22 +1,5 @@
1
- from .analytics import Analytics as Analytics
2
- from .const import ATTR_ONBOARDED as ATTR_ONBOARDED, ATTR_PREFERENCES as ATTR_PREFERENCES, DOMAIN as DOMAIN, INTERVAL as INTERVAL, PREFERENCE_SCHEMA as PREFERENCE_SCHEMA
3
- from .http import AnalyticsDevicesView as AnalyticsDevicesView
4
- from _typeshed import Incomplete
5
- from homeassistant.components import websocket_api as websocket_api
6
- from homeassistant.const import EVENT_HOMEASSISTANT_STARTED as EVENT_HOMEASSISTANT_STARTED
7
- from homeassistant.core import Event as Event, HassJob as HassJob, HomeAssistant as HomeAssistant, callback as callback
8
- from homeassistant.helpers.event import async_call_later as async_call_later, async_track_time_interval as async_track_time_interval
9
- from homeassistant.helpers.typing import ConfigType as ConfigType
10
- from homeassistant.util.hass_dict import HassKey as HassKey
11
- from typing import Any
1
+ from .analytics import AnalyticsInput as AnalyticsInput, AnalyticsModifications as AnalyticsModifications, DeviceAnalyticsModifications as DeviceAnalyticsModifications, EntityAnalyticsModifications as EntityAnalyticsModifications, async_devices_payload as async_devices_payload
2
+ from homeassistant.components import websocket_api
3
+ from homeassistant.core import callback
12
4
 
13
- CONFIG_SCHEMA: Incomplete
14
- DATA_COMPONENT: HassKey[Analytics]
15
-
16
- async def async_setup(hass: HomeAssistant, _: ConfigType) -> bool: ...
17
- @callback
18
- @websocket_api.require_admin
19
- def websocket_analytics(hass: HomeAssistant, connection: websocket_api.connection.ActiveConnection, msg: dict[str, Any]) -> None: ...
20
- @websocket_api.require_admin
21
- @websocket_api.async_response
22
- async def websocket_analytics_preferences(hass: HomeAssistant, connection: websocket_api.connection.ActiveConnection, msg: dict[str, Any]) -> None: ...
5
+ __all__ = ['AnalyticsInput', 'AnalyticsModifications', 'DeviceAnalyticsModifications', 'EntityAnalyticsModifications', 'async_devices_payload']
@@ -1,21 +1,53 @@
1
- from .const import ANALYTICS_ENDPOINT_URL as ANALYTICS_ENDPOINT_URL, ANALYTICS_ENDPOINT_URL_DEV as ANALYTICS_ENDPOINT_URL_DEV, ATTR_ADDONS as ATTR_ADDONS, ATTR_ADDON_COUNT as ATTR_ADDON_COUNT, ATTR_ARCH as ATTR_ARCH, ATTR_AUTOMATION_COUNT as ATTR_AUTOMATION_COUNT, ATTR_AUTO_UPDATE as ATTR_AUTO_UPDATE, ATTR_BASE as ATTR_BASE, ATTR_BOARD as ATTR_BOARD, ATTR_CERTIFICATE as ATTR_CERTIFICATE, ATTR_CONFIGURED as ATTR_CONFIGURED, ATTR_CUSTOM_INTEGRATIONS as ATTR_CUSTOM_INTEGRATIONS, ATTR_DIAGNOSTICS as ATTR_DIAGNOSTICS, ATTR_ENERGY as ATTR_ENERGY, ATTR_ENGINE as ATTR_ENGINE, ATTR_HEALTHY as ATTR_HEALTHY, ATTR_INTEGRATIONS as ATTR_INTEGRATIONS, ATTR_INTEGRATION_COUNT as ATTR_INTEGRATION_COUNT, ATTR_OPERATING_SYSTEM as ATTR_OPERATING_SYSTEM, ATTR_PROTECTED as ATTR_PROTECTED, ATTR_RECORDER as ATTR_RECORDER, ATTR_SLUG as ATTR_SLUG, ATTR_STATE_COUNT as ATTR_STATE_COUNT, ATTR_STATISTICS as ATTR_STATISTICS, ATTR_SUPERVISOR as ATTR_SUPERVISOR, ATTR_SUPPORTED as ATTR_SUPPORTED, ATTR_USAGE as ATTR_USAGE, ATTR_USER_COUNT as ATTR_USER_COUNT, ATTR_UUID as ATTR_UUID, ATTR_VERSION as ATTR_VERSION, LOGGER as LOGGER, PREFERENCE_SCHEMA as PREFERENCE_SCHEMA, STORAGE_KEY as STORAGE_KEY, STORAGE_VERSION as STORAGE_VERSION
1
+ from .const import ANALYTICS_ENDPOINT_URL as ANALYTICS_ENDPOINT_URL, ANALYTICS_ENDPOINT_URL_DEV as ANALYTICS_ENDPOINT_URL_DEV, ATTR_ADDONS as ATTR_ADDONS, ATTR_ADDON_COUNT as ATTR_ADDON_COUNT, ATTR_ARCH as ATTR_ARCH, ATTR_AUTOMATION_COUNT as ATTR_AUTOMATION_COUNT, ATTR_AUTO_UPDATE as ATTR_AUTO_UPDATE, ATTR_BASE as ATTR_BASE, ATTR_BOARD as ATTR_BOARD, ATTR_CERTIFICATE as ATTR_CERTIFICATE, ATTR_CONFIGURED as ATTR_CONFIGURED, ATTR_CUSTOM_INTEGRATIONS as ATTR_CUSTOM_INTEGRATIONS, ATTR_DIAGNOSTICS as ATTR_DIAGNOSTICS, ATTR_ENERGY as ATTR_ENERGY, ATTR_ENGINE as ATTR_ENGINE, ATTR_HEALTHY as ATTR_HEALTHY, ATTR_INTEGRATIONS as ATTR_INTEGRATIONS, ATTR_INTEGRATION_COUNT as ATTR_INTEGRATION_COUNT, ATTR_OPERATING_SYSTEM as ATTR_OPERATING_SYSTEM, ATTR_PROTECTED as ATTR_PROTECTED, ATTR_RECORDER as ATTR_RECORDER, ATTR_SLUG as ATTR_SLUG, ATTR_STATE_COUNT as ATTR_STATE_COUNT, ATTR_STATISTICS as ATTR_STATISTICS, ATTR_SUPERVISOR as ATTR_SUPERVISOR, ATTR_SUPPORTED as ATTR_SUPPORTED, ATTR_USAGE as ATTR_USAGE, ATTR_USER_COUNT as ATTR_USER_COUNT, ATTR_UUID as ATTR_UUID, ATTR_VERSION as ATTR_VERSION, DOMAIN as DOMAIN, LOGGER as LOGGER, PREFERENCE_SCHEMA as PREFERENCE_SCHEMA, STORAGE_KEY as STORAGE_KEY, STORAGE_VERSION as STORAGE_VERSION
2
2
  from _typeshed import Incomplete
3
- from dataclasses import dataclass
3
+ from collections.abc import Awaitable, Callable, Iterable, Mapping
4
+ from dataclasses import dataclass, field
4
5
  from datetime import datetime
5
6
  from homeassistant.components import hassio as hassio
6
7
  from homeassistant.components.api import ATTR_INSTALLATION_TYPE as ATTR_INSTALLATION_TYPE
7
8
  from homeassistant.config_entries import SOURCE_IGNORE as SOURCE_IGNORE
8
- from homeassistant.const import ATTR_DOMAIN as ATTR_DOMAIN, BASE_PLATFORMS as BASE_PLATFORMS
9
+ from homeassistant.const import ATTR_ASSUMED_STATE as ATTR_ASSUMED_STATE, ATTR_DOMAIN as ATTR_DOMAIN, BASE_PLATFORMS as BASE_PLATFORMS
9
10
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
10
11
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
11
12
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
12
13
  from homeassistant.helpers.hassio import is_hassio as is_hassio
14
+ from homeassistant.helpers.singleton import singleton as singleton
13
15
  from homeassistant.helpers.storage import Store as Store
14
16
  from homeassistant.helpers.system_info import async_get_system_info as async_get_system_info
15
- from homeassistant.loader import Integration as Integration, IntegrationNotFound as IntegrationNotFound, async_get_integrations as async_get_integrations
17
+ from homeassistant.helpers.typing import UNDEFINED as UNDEFINED
18
+ from homeassistant.loader import Integration as Integration, IntegrationNotFound as IntegrationNotFound, async_get_integration as async_get_integration, async_get_integrations as async_get_integrations
16
19
  from homeassistant.setup import async_get_loaded_integrations as async_get_loaded_integrations
17
- from typing import Any
20
+ from typing import Any, Protocol
18
21
 
22
+ DATA_ANALYTICS_MODIFIERS: str
23
+ type AnalyticsModifier = Callable[[HomeAssistant, AnalyticsInput], Awaitable[AnalyticsModifications]]
24
+
25
+ def _async_get_modifiers(hass: HomeAssistant) -> dict[str, AnalyticsModifier | None]: ...
26
+
27
+ @dataclass
28
+ class AnalyticsInput:
29
+ device_ids: Iterable[str] = field(default_factory=list)
30
+ entity_ids: Iterable[str] = field(default_factory=list)
31
+
32
+ @dataclass
33
+ class AnalyticsModifications:
34
+ remove: bool = ...
35
+ devices: Mapping[str, DeviceAnalyticsModifications] | None = ...
36
+ entities: Mapping[str, EntityAnalyticsModifications] | None = ...
37
+
38
+ @dataclass
39
+ class DeviceAnalyticsModifications:
40
+ remove: bool = ...
41
+
42
+ @dataclass
43
+ class EntityAnalyticsModifications:
44
+ remove: bool = ...
45
+
46
+ class AnalyticsPlatformProtocol(Protocol):
47
+ async def async_modify_analytics(self, hass: HomeAssistant, analytics_input: AnalyticsInput) -> AnalyticsModifications: ...
48
+
49
+ async def _async_get_analytics_platform(hass: HomeAssistant, domain: str) -> AnalyticsPlatformProtocol | None: ...
50
+ async def _async_get_modifier(hass: HomeAssistant, domain: str) -> AnalyticsModifier | None: ...
19
51
  def gen_uuid() -> str: ...
20
52
 
21
53
  @dataclass
@@ -49,4 +81,9 @@ class Analytics:
49
81
  def _async_should_report_integration(self, integration: Integration, yaml_domains: set[str], entity_registry_platforms: set[str]) -> bool: ...
50
82
 
51
83
  def _domains_from_yaml_config(yaml_configuration: dict[str, Any]) -> set[str]: ...
84
+
85
+ DEFAULT_ANALYTICS_CONFIG: Incomplete
86
+ DEFAULT_DEVICE_ANALYTICS_CONFIG: Incomplete
87
+ DEFAULT_ENTITY_ANALYTICS_CONFIG: Incomplete
88
+
52
89
  async def async_devices_payload(hass: HomeAssistant) -> dict: ...
@@ -1,4 +1,5 @@
1
- from .const import CONF_ADBKEY as CONF_ADBKEY, CONF_ADB_SERVER_IP as CONF_ADB_SERVER_IP, CONF_ADB_SERVER_PORT as CONF_ADB_SERVER_PORT, CONF_SCREENCAP_INTERVAL as CONF_SCREENCAP_INTERVAL, CONF_STATE_DETECTION_RULES as CONF_STATE_DETECTION_RULES, DEFAULT_ADB_SERVER_PORT as DEFAULT_ADB_SERVER_PORT, DEVICE_ANDROIDTV as DEVICE_ANDROIDTV, DEVICE_FIRETV as DEVICE_FIRETV, PROP_ETHMAC as PROP_ETHMAC, PROP_WIFIMAC as PROP_WIFIMAC, SIGNAL_CONFIG_ENTITY as SIGNAL_CONFIG_ENTITY
1
+ from .const import CONF_ADBKEY as CONF_ADBKEY, CONF_ADB_SERVER_IP as CONF_ADB_SERVER_IP, CONF_ADB_SERVER_PORT as CONF_ADB_SERVER_PORT, CONF_SCREENCAP_INTERVAL as CONF_SCREENCAP_INTERVAL, CONF_STATE_DETECTION_RULES as CONF_STATE_DETECTION_RULES, DEFAULT_ADB_SERVER_PORT as DEFAULT_ADB_SERVER_PORT, DEVICE_ANDROIDTV as DEVICE_ANDROIDTV, DEVICE_FIRETV as DEVICE_FIRETV, DOMAIN as DOMAIN, PROP_ETHMAC as PROP_ETHMAC, PROP_WIFIMAC as PROP_WIFIMAC, SIGNAL_CONFIG_ENTITY as SIGNAL_CONFIG_ENTITY
2
+ from .services import async_setup_services as async_setup_services
2
3
  from _typeshed import Incomplete
3
4
  from androidtv.adb_manager.adb_manager_sync import PythonRSASigner as PythonRSASigner
4
5
  from androidtv.setup_async import AndroidTVAsync as AndroidTVAsync, FireTVAsync as FireTVAsync
@@ -11,10 +12,12 @@ from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
11
12
  from homeassistant.helpers.device_registry import format_mac as format_mac
12
13
  from homeassistant.helpers.dispatcher import async_dispatcher_send as async_dispatcher_send
13
14
  from homeassistant.helpers.storage import STORAGE_DIR as STORAGE_DIR
15
+ from homeassistant.helpers.typing import ConfigType as ConfigType
14
16
  from typing import Any
15
17
 
16
18
  ADB_PYTHON_EXCEPTIONS: tuple
17
19
  ADB_TCP_EXCEPTIONS: tuple
20
+ CONFIG_SCHEMA: Incomplete
18
21
  PLATFORMS: Incomplete
19
22
  RELOAD_OPTIONS: Incomplete
20
23
  _INVALID_MACS: Incomplete
@@ -30,6 +33,7 @@ def get_androidtv_mac(dev_props: dict[str, Any]) -> str | None: ...
30
33
  def _setup_androidtv(hass: HomeAssistant, config: Mapping[str, Any]) -> tuple[str, PythonRSASigner | None, str]: ...
31
34
  async def async_connect_androidtv(hass: HomeAssistant, config: Mapping[str, Any], *, state_detection_rules: dict[str, Any] | None = None, timeout: float = 30.0) -> tuple[AndroidTVAsync | FireTVAsync | None, str | None]: ...
32
35
  async def async_migrate_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
36
+ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
33
37
  async def async_setup_entry(hass: HomeAssistant, entry: AndroidTVConfigEntry) -> bool: ...
34
38
  async def async_unload_entry(hass: HomeAssistant, entry: AndroidTVConfigEntry) -> bool: ...
35
39
  async def update_listener(hass: HomeAssistant, entry: AndroidTVConfigEntry) -> None: ...
@@ -1,27 +1,18 @@
1
1
  from . import AndroidTVConfigEntry as AndroidTVConfigEntry
2
2
  from .const import CONF_APPS as CONF_APPS, CONF_EXCLUDE_UNNAMED_APPS as CONF_EXCLUDE_UNNAMED_APPS, CONF_GET_SOURCES as CONF_GET_SOURCES, CONF_SCREENCAP_INTERVAL as CONF_SCREENCAP_INTERVAL, CONF_TURN_OFF_COMMAND as CONF_TURN_OFF_COMMAND, CONF_TURN_ON_COMMAND as CONF_TURN_ON_COMMAND, DEFAULT_EXCLUDE_UNNAMED_APPS as DEFAULT_EXCLUDE_UNNAMED_APPS, DEFAULT_GET_SOURCES as DEFAULT_GET_SOURCES, DEFAULT_SCREENCAP_INTERVAL as DEFAULT_SCREENCAP_INTERVAL, DEVICE_ANDROIDTV as DEVICE_ANDROIDTV, SIGNAL_CONFIG_ENTITY as SIGNAL_CONFIG_ENTITY
3
3
  from .entity import AndroidTVEntity as AndroidTVEntity, adb_decorator as adb_decorator
4
+ from .services import ATTR_ADB_RESPONSE as ATTR_ADB_RESPONSE, ATTR_HDMI_INPUT as ATTR_HDMI_INPUT, SERVICE_LEARN_SENDEVENT as SERVICE_LEARN_SENDEVENT
4
5
  from _typeshed import Incomplete
5
6
  from androidtv.setup_async import AndroidTVAsync as AndroidTVAsync, FireTVAsync as FireTVAsync
6
7
  from datetime import datetime, timedelta
7
8
  from homeassistant.components import persistent_notification as persistent_notification
8
9
  from homeassistant.components.media_player import MediaPlayerDeviceClass as MediaPlayerDeviceClass, MediaPlayerEntity as MediaPlayerEntity, MediaPlayerEntityFeature as MediaPlayerEntityFeature, MediaPlayerState as MediaPlayerState
9
- from homeassistant.const import ATTR_COMMAND as ATTR_COMMAND
10
10
  from homeassistant.core import HomeAssistant as HomeAssistant
11
- from homeassistant.helpers import entity_platform as entity_platform
12
11
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
13
12
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
14
13
  from homeassistant.util.dt import utcnow as utcnow
15
14
 
16
15
  _LOGGER: Incomplete
17
- ATTR_ADB_RESPONSE: str
18
- ATTR_DEVICE_PATH: str
19
- ATTR_HDMI_INPUT: str
20
- ATTR_LOCAL_PATH: str
21
- SERVICE_ADB_COMMAND: str
22
- SERVICE_DOWNLOAD: str
23
- SERVICE_LEARN_SENDEVENT: str
24
- SERVICE_UPLOAD: str
25
16
  ANDROIDTV_STATES: Incomplete
26
17
 
27
18
  async def async_setup_entry(hass: HomeAssistant, entry: AndroidTVConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
@@ -0,0 +1,16 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from homeassistant.const import ATTR_COMMAND as ATTR_COMMAND
3
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
4
+ from homeassistant.helpers import service as service
5
+
6
+ ATTR_ADB_RESPONSE: str
7
+ ATTR_DEVICE_PATH: str
8
+ ATTR_HDMI_INPUT: str
9
+ ATTR_LOCAL_PATH: str
10
+ SERVICE_ADB_COMMAND: str
11
+ SERVICE_DOWNLOAD: str
12
+ SERVICE_LEARN_SENDEVENT: str
13
+ SERVICE_UPLOAD: str
14
+
15
+ @callback
16
+ def async_setup_services(hass: HomeAssistant) -> None: ...
@@ -2,7 +2,7 @@ from .const import CONF_APPS as CONF_APPS, DOMAIN as DOMAIN
2
2
  from .helpers import AndroidTVRemoteConfigEntry as AndroidTVRemoteConfigEntry
3
3
  from _typeshed import Incomplete
4
4
  from androidtvremote2 import AndroidTVRemote as AndroidTVRemote
5
- from homeassistant.const import CONF_HOST as CONF_HOST, CONF_MAC as CONF_MAC, CONF_NAME as CONF_NAME
5
+ from homeassistant.const import CONF_MAC as CONF_MAC, CONF_NAME as CONF_NAME
6
6
  from homeassistant.core import callback as callback
7
7
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
8
8
  from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC, DeviceInfo as DeviceInfo
@@ -14,8 +14,6 @@ class AndroidTVRemoteBaseEntity(Entity):
14
14
  _attr_has_entity_name: bool
15
15
  _attr_should_poll: bool
16
16
  _api: Incomplete
17
- _host: Incomplete
18
- _name: Incomplete
19
17
  _apps: dict[str, Any]
20
18
  _attr_unique_id: Incomplete
21
19
  _attr_is_on: Incomplete
@@ -10,4 +10,4 @@ from typing import Any
10
10
  __all__ = ['DOMAIN', 'EVENT_RECORDING', 'OPTION_PREFERRED', 'SAMPLES_PER_CHUNK', 'SAMPLE_CHANNELS', 'SAMPLE_RATE', 'SAMPLE_WIDTH', 'AudioSettings', 'Pipeline', 'PipelineEvent', 'PipelineEventType', 'PipelineNotFound', 'WakeWordSettings', 'async_create_default_pipeline', 'async_get_pipelines', 'async_pipeline_from_audio_stream', 'async_setup', 'async_update_pipeline']
11
11
 
12
12
  async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
13
- async def async_pipeline_from_audio_stream(hass: HomeAssistant, *, context: Context, event_callback: PipelineEventCallback, stt_metadata: stt.SpeechMetadata, stt_stream: AsyncIterable[bytes], wake_word_phrase: str | None = None, pipeline_id: str | None = None, conversation_id: str | None = None, tts_audio_output: str | dict[str, Any] | None = None, wake_word_settings: WakeWordSettings | None = None, audio_settings: AudioSettings | None = None, device_id: str | None = None, start_stage: PipelineStage = ..., end_stage: PipelineStage = ..., conversation_extra_system_prompt: str | None = None) -> None: ...
13
+ async def async_pipeline_from_audio_stream(hass: HomeAssistant, *, context: Context, event_callback: PipelineEventCallback, stt_metadata: stt.SpeechMetadata, stt_stream: AsyncIterable[bytes], wake_word_phrase: str | None = None, pipeline_id: str | None = None, conversation_id: str | None = None, tts_audio_output: str | dict[str, Any] | None = None, wake_word_settings: WakeWordSettings | None = None, audio_settings: AudioSettings | None = None, device_id: str | None = None, satellite_id: str | None = None, start_stage: PipelineStage = ..., end_stage: PipelineStage = ..., conversation_extra_system_prompt: str | None = None) -> None: ...
@@ -15,3 +15,4 @@ MS_PER_CHUNK: int
15
15
  SAMPLES_PER_CHUNK: Incomplete
16
16
  BYTES_PER_CHUNK: Incomplete
17
17
  OPTION_PREFERRED: str
18
+ ACKNOWLEDGE_PATH: Incomplete
@@ -1,6 +1,6 @@
1
1
  import asyncio
2
2
  from .audio_enhancer import AudioEnhancer as AudioEnhancer, EnhancedAudioChunk as EnhancedAudioChunk, MicroVadSpeexEnhancer as MicroVadSpeexEnhancer
3
- from .const import BYTES_PER_CHUNK as BYTES_PER_CHUNK, CONF_DEBUG_RECORDING_DIR as CONF_DEBUG_RECORDING_DIR, DATA_CONFIG as DATA_CONFIG, DATA_LAST_WAKE_UP as DATA_LAST_WAKE_UP, DOMAIN as DOMAIN, MS_PER_CHUNK as MS_PER_CHUNK, SAMPLES_PER_CHUNK as SAMPLES_PER_CHUNK, SAMPLE_CHANNELS as SAMPLE_CHANNELS, SAMPLE_RATE as SAMPLE_RATE, SAMPLE_WIDTH as SAMPLE_WIDTH, WAKE_WORD_COOLDOWN as WAKE_WORD_COOLDOWN
3
+ from .const import ACKNOWLEDGE_PATH as ACKNOWLEDGE_PATH, BYTES_PER_CHUNK as BYTES_PER_CHUNK, CONF_DEBUG_RECORDING_DIR as CONF_DEBUG_RECORDING_DIR, DATA_CONFIG as DATA_CONFIG, DATA_LAST_WAKE_UP as DATA_LAST_WAKE_UP, DOMAIN as DOMAIN, MS_PER_CHUNK as MS_PER_CHUNK, SAMPLES_PER_CHUNK as SAMPLES_PER_CHUNK, SAMPLE_CHANNELS as SAMPLE_CHANNELS, SAMPLE_RATE as SAMPLE_RATE, SAMPLE_WIDTH as SAMPLE_WIDTH, WAKE_WORD_COOLDOWN as WAKE_WORD_COOLDOWN
4
4
  from .error import DuplicateWakeUpDetectedError as DuplicateWakeUpDetectedError, IntentRecognitionError as IntentRecognitionError, PipelineError as PipelineError, PipelineNotFound as PipelineNotFound, SpeechToTextError as SpeechToTextError, TextToSpeechError as TextToSpeechError, WakeWordDetectionAborted as WakeWordDetectionAborted, WakeWordDetectionError as WakeWordDetectionError, WakeWordTimeoutError as WakeWordTimeoutError
5
5
  from .vad import AudioBuffer as AudioBuffer, VoiceActivityTimeout as VoiceActivityTimeout, VoiceCommandSegmenter as VoiceCommandSegmenter, chunk_samples as chunk_samples
6
6
  from _typeshed import Incomplete
@@ -152,6 +152,7 @@ class PipelineRun:
152
152
  audio_enhancer: AudioEnhancer | None = ...
153
153
  audio_chunking_buffer: AudioBuffer = field(default_factory=Incomplete)
154
154
  _device_id: str | None = ...
155
+ _satellite_id: str | None = ...
155
156
  _conversation_data: PipelineConversationData | None = ...
156
157
  _intent_agent_only = ...
157
158
  _streamed_response_text = ...
@@ -159,7 +160,7 @@ class PipelineRun:
159
160
  def __eq__(self, other: object) -> bool: ...
160
161
  @callback
161
162
  def process_event(self, event: PipelineEvent) -> None: ...
162
- def start(self, conversation_id: str, device_id: str | None) -> None: ...
163
+ def start(self, conversation_id: str, device_id: str | None, satellite_id: str | None) -> None: ...
163
164
  async def end(self) -> None: ...
164
165
  async def prepare_wake_word_detection(self) -> None: ...
165
166
  async def wake_word_detection(self, stream: AsyncIterable[EnhancedAudioChunk], audio_chunks_for_stt: list[EnhancedAudioChunk]) -> wake_word.DetectionResult | None: ...
@@ -168,9 +169,10 @@ class PipelineRun:
168
169
  async def speech_to_text(self, metadata: stt.SpeechMetadata, stream: AsyncIterable[EnhancedAudioChunk]) -> str: ...
169
170
  async def _speech_to_text_stream(self, audio_stream: AsyncIterable[EnhancedAudioChunk], stt_vad: VoiceCommandSegmenter | None, sample_rate: int = ..., sample_width: int = ...) -> AsyncGenerator[bytes]: ...
170
171
  async def prepare_recognize_intent(self, session: chat_session.ChatSession) -> None: ...
171
- async def recognize_intent(self, intent_input: str, conversation_id: str, device_id: str | None, conversation_extra_system_prompt: str | None) -> str: ...
172
+ async def recognize_intent(self, intent_input: str, conversation_id: str, conversation_extra_system_prompt: str | None) -> tuple[str, bool]: ...
173
+ def _get_all_targets_in_satellite_area(self, intent_response: intent.IntentResponse, device_id: str | None) -> bool: ...
172
174
  async def prepare_text_to_speech(self) -> None: ...
173
- async def text_to_speech(self, tts_input: str) -> None: ...
175
+ async def text_to_speech(self, tts_input: str, override_media_path: Path | None = None) -> None: ...
174
176
  def _capture_chunk(self, audio_bytes: bytes | None) -> None: ...
175
177
  def _start_debug_recording_thread(self) -> None: ...
176
178
  async def _stop_debug_recording_thread(self) -> None: ...
@@ -191,6 +193,7 @@ class PipelineInput:
191
193
  tts_input: str | None = ...
192
194
  conversation_extra_system_prompt: str | None = ...
193
195
  device_id: str | None = ...
196
+ satellite_id: str | None = ...
194
197
  async def execute(self) -> None: ...
195
198
  async def validate(self) -> None: ...
196
199
 
@@ -22,7 +22,7 @@ class AssistPipelineSelect(SelectEntity, restore_state.RestoreEntity):
22
22
  _unique_id_prefix: Incomplete
23
23
  _attr_unique_id: Incomplete
24
24
  hass: Incomplete
25
- def __init__(self, hass: HomeAssistant, domain: str, unique_id_prefix: str) -> None: ...
25
+ def __init__(self, hass: HomeAssistant, domain: str, unique_id_prefix: str, index: int = 0) -> None: ...
26
26
  async def async_added_to_hass(self) -> None: ...
27
27
  async def async_select_option(self, option: str) -> None: ...
28
28
  async def _pipelines_updated(self, change_set: Iterable[collection.CollectionChange]) -> None: ...
@@ -45,6 +45,8 @@ class AsusWrtBridge(ABC, metaclass=abc.ABCMeta):
45
45
  _firmware: str | None
46
46
  _label_mac: str | None
47
47
  _model: str | None
48
+ _model_id: str | None
49
+ _serial_number: str | None
48
50
  def __init__(self, host: str) -> None: ...
49
51
  @property
50
52
  def configuration_url(self) -> str: ...
@@ -57,6 +59,10 @@ class AsusWrtBridge(ABC, metaclass=abc.ABCMeta):
57
59
  @property
58
60
  def model(self) -> str | None: ...
59
61
  @property
62
+ def model_id(self) -> str | None: ...
63
+ @property
64
+ def serial_number(self) -> str | None: ...
65
+ @property
60
66
  @abstractmethod
61
67
  def is_connected(self) -> bool: ...
62
68
  @abstractmethod
@@ -105,6 +111,8 @@ class AsusWrtHttpBridge(AsusWrtBridge):
105
111
  _configuration_url: Incomplete
106
112
  _firmware: Incomplete
107
113
  _model: Incomplete
114
+ _model_id: Incomplete
115
+ _serial_number: Incomplete
108
116
  async def async_connect(self) -> None: ...
109
117
  async def async_disconnect(self) -> None: ...
110
118
  async def _get_data(self, datatype: AsusData, force: bool = False) -> dict[str, Any]: ...
@@ -1,23 +1,28 @@
1
- from .const import CHARGEPOINT_SETTINGS as CHARGEPOINT_SETTINGS, CHARGEPOINT_STATUS as CHARGEPOINT_STATUS, DOMAIN as DOMAIN, EVSE_ID as EVSE_ID, LOGGER as LOGGER, PLUG_AND_CHARGE as PLUG_AND_CHARGE, VALUE as VALUE
1
+ from .const import BCU_APP as BCU_APP, CHARGEPOINT_SETTINGS as CHARGEPOINT_SETTINGS, CHARGEPOINT_STATUS as CHARGEPOINT_STATUS, CHARGING_CARD_ID as CHARGING_CARD_ID, DOMAIN as DOMAIN, EVSE_ID as EVSE_ID, LOGGER as LOGGER, PLUG_AND_CHARGE as PLUG_AND_CHARGE, SERVICE_START_CHARGE_SESSION as SERVICE_START_CHARGE_SESSION, VALUE as VALUE
2
2
  from _typeshed import Incomplete
3
3
  from bluecurrent_api import Client
4
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
- from homeassistant.const import CONF_API_TOKEN as CONF_API_TOKEN, Platform as Platform
6
- from homeassistant.core import HomeAssistant as HomeAssistant
7
- from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
4
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigEntryState as ConfigEntryState
5
+ from homeassistant.const import CONF_API_TOKEN as CONF_API_TOKEN, CONF_DEVICE_ID as CONF_DEVICE_ID, Platform as Platform
6
+ from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall
7
+ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady, ServiceValidationError as ServiceValidationError
8
8
  from homeassistant.helpers.dispatcher import async_dispatcher_send as async_dispatcher_send
9
+ from homeassistant.helpers.typing import ConfigType as ConfigType
9
10
  from typing import Any
10
11
 
11
12
  type BlueCurrentConfigEntry = ConfigEntry[Connector]
12
13
  PLATFORMS: Incomplete
13
14
  CHARGE_POINTS: str
15
+ CHARGE_CARDS: str
14
16
  DATA: str
15
17
  DELAY: int
16
18
  GRID: str
17
19
  OBJECT: str
18
20
  VALUE_TYPES: Incomplete
21
+ CONFIG_SCHEMA: Incomplete
22
+ SERVICE_START_CHARGE_SESSION_SCHEMA: Incomplete
19
23
 
20
24
  async def async_setup_entry(hass: HomeAssistant, config_entry: BlueCurrentConfigEntry) -> bool: ...
25
+ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
21
26
  async def async_unload_entry(hass: HomeAssistant, config_entry: BlueCurrentConfigEntry) -> bool: ...
22
27
 
23
28
  class Connector:
@@ -26,6 +31,7 @@ class Connector:
26
31
  client: Incomplete
27
32
  charge_points: dict[str, dict]
28
33
  grid: dict[str, Any]
34
+ charge_cards: dict[str, dict[str, Any]]
29
35
  def __init__(self, hass: HomeAssistant, config: BlueCurrentConfigEntry, client: Client) -> None: ...
30
36
  async def on_data(self, message: dict) -> None: ...
31
37
  async def handle_charge_point_data(self, charge_points_data: list) -> None: ...
@@ -4,6 +4,12 @@ DOMAIN: str
4
4
  LOGGER: Incomplete
5
5
  EVSE_ID: str
6
6
  MODEL_TYPE: str
7
+ CARD: str
8
+ UID: str
9
+ BCU_APP: str
10
+ WITHOUT_CHARGING_CARD: str
11
+ CHARGING_CARD_ID: str
12
+ SERVICE_START_CHARGE_SESSION: str
7
13
  PLUG_AND_CHARGE: str
8
14
  VALUE: str
9
15
  PERMISSION: str
@@ -1,4 +1,4 @@
1
- from .api import async_address_present as async_address_present, async_ble_device_from_address as async_ble_device_from_address, async_discovered_service_info as async_discovered_service_info, async_get_advertisement_callback as async_get_advertisement_callback, async_get_fallback_availability_interval as async_get_fallback_availability_interval, async_get_learned_advertising_interval as async_get_learned_advertising_interval, async_get_scanner as async_get_scanner, async_last_service_info as async_last_service_info, async_process_advertisements as async_process_advertisements, async_rediscover_address as async_rediscover_address, async_register_callback as async_register_callback, async_register_scanner as async_register_scanner, async_remove_scanner as async_remove_scanner, async_scanner_by_source as async_scanner_by_source, async_scanner_count as async_scanner_count, async_scanner_devices_by_address as async_scanner_devices_by_address, async_set_fallback_availability_interval as async_set_fallback_availability_interval, async_track_unavailable as async_track_unavailable
1
+ from .api import async_address_present as async_address_present, async_ble_device_from_address as async_ble_device_from_address, async_current_scanners as async_current_scanners, async_discovered_service_info as async_discovered_service_info, async_get_advertisement_callback as async_get_advertisement_callback, async_get_fallback_availability_interval as async_get_fallback_availability_interval, async_get_learned_advertising_interval as async_get_learned_advertising_interval, async_get_scanner as async_get_scanner, async_last_service_info as async_last_service_info, async_process_advertisements as async_process_advertisements, async_rediscover_address as async_rediscover_address, async_register_callback as async_register_callback, async_register_scanner as async_register_scanner, async_remove_scanner as async_remove_scanner, async_scanner_by_source as async_scanner_by_source, async_scanner_count as async_scanner_count, async_scanner_devices_by_address as async_scanner_devices_by_address, async_set_fallback_availability_interval as async_set_fallback_availability_interval, async_track_unavailable as async_track_unavailable
2
2
  from .const import FALLBACK_MAXIMUM_STALE_ADVERTISEMENT_SECONDS as FALLBACK_MAXIMUM_STALE_ADVERTISEMENT_SECONDS, SOURCE_LOCAL as SOURCE_LOCAL
3
3
  from .match import BluetoothCallbackMatcher as BluetoothCallbackMatcher
4
4
  from .models import BluetoothCallback as BluetoothCallback, BluetoothChange as BluetoothChange
@@ -7,7 +7,7 @@ from habluetooth import BaseHaRemoteScanner as BaseHaRemoteScanner, BaseHaScanne
7
7
  from home_assistant_bluetooth import BluetoothServiceInfo as BluetoothServiceInfo, BluetoothServiceInfoBleak as BluetoothServiceInfoBleak
8
8
  from homeassistant.core import callback as hass_callback
9
9
 
10
- __all__ = ['FALLBACK_MAXIMUM_STALE_ADVERTISEMENT_SECONDS', 'MONOTONIC_TIME', 'SOURCE_LOCAL', 'BaseHaRemoteScanner', 'BaseHaScanner', 'BluetoothCallback', 'BluetoothCallbackMatcher', 'BluetoothChange', 'BluetoothScannerDevice', 'BluetoothScanningMode', 'BluetoothServiceInfo', 'BluetoothServiceInfoBleak', 'HaBluetoothConnector', 'HomeAssistantRemoteScanner', 'async_address_present', 'async_ble_device_from_address', 'async_discovered_service_info', 'async_get_advertisement_callback', 'async_get_fallback_availability_interval', 'async_get_learned_advertising_interval', 'async_get_scanner', 'async_last_service_info', 'async_process_advertisements', 'async_rediscover_address', 'async_register_callback', 'async_register_scanner', 'async_remove_scanner', 'async_scanner_by_source', 'async_scanner_count', 'async_scanner_devices_by_address', 'async_set_fallback_availability_interval', 'async_track_unavailable']
10
+ __all__ = ['FALLBACK_MAXIMUM_STALE_ADVERTISEMENT_SECONDS', 'MONOTONIC_TIME', 'SOURCE_LOCAL', 'BaseHaRemoteScanner', 'BaseHaScanner', 'BluetoothCallback', 'BluetoothCallbackMatcher', 'BluetoothChange', 'BluetoothScannerDevice', 'BluetoothScanningMode', 'BluetoothServiceInfo', 'BluetoothServiceInfoBleak', 'HaBluetoothConnector', 'HomeAssistantRemoteScanner', 'async_address_present', 'async_ble_device_from_address', 'async_current_scanners', 'async_discovered_service_info', 'async_get_advertisement_callback', 'async_get_fallback_availability_interval', 'async_get_learned_advertising_interval', 'async_get_scanner', 'async_last_service_info', 'async_process_advertisements', 'async_rediscover_address', 'async_register_callback', 'async_register_scanner', 'async_remove_scanner', 'async_scanner_by_source', 'async_scanner_count', 'async_scanner_devices_by_address', 'async_set_fallback_availability_interval', 'async_track_unavailable']
11
11
 
12
12
  # Names in __all__ with no definition:
13
13
  # HomeAssistantRemoteScanner
@@ -2,21 +2,24 @@ from .const import DATA_MANAGER as DATA_MANAGER
2
2
  from .manager import HomeAssistantBluetoothManager as HomeAssistantBluetoothManager
3
3
  from .match import BluetoothCallbackMatcher as BluetoothCallbackMatcher
4
4
  from .models import BluetoothCallback as BluetoothCallback, BluetoothChange as BluetoothChange, ProcessAdvertisementCallback as ProcessAdvertisementCallback
5
+ from bleak import BleakScanner
5
6
  from bleak.backends.device import BLEDevice as BLEDevice
6
7
  from collections.abc import Callable as Callable, Iterable
7
- from habluetooth import BaseHaScanner as BaseHaScanner, BluetoothScannerDevice as BluetoothScannerDevice, BluetoothScanningMode as BluetoothScanningMode, HaBleakScannerWrapper
8
+ from habluetooth import BaseHaScanner as BaseHaScanner, BluetoothScannerDevice as BluetoothScannerDevice, BluetoothScanningMode as BluetoothScanningMode
8
9
  from home_assistant_bluetooth import BluetoothServiceInfoBleak as BluetoothServiceInfoBleak
9
10
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HomeAssistant as HomeAssistant, callback as hass_callback
10
11
  from homeassistant.helpers.singleton import singleton as singleton
11
12
 
12
13
  def _get_manager(hass: HomeAssistant) -> HomeAssistantBluetoothManager: ...
13
14
  @hass_callback
14
- def async_get_scanner(hass: HomeAssistant) -> HaBleakScannerWrapper: ...
15
+ def async_get_scanner(hass: HomeAssistant) -> BleakScanner: ...
15
16
  @hass_callback
16
17
  def async_scanner_by_source(hass: HomeAssistant, source: str) -> BaseHaScanner | None: ...
17
18
  @hass_callback
18
19
  def async_scanner_count(hass: HomeAssistant, connectable: bool = True) -> int: ...
19
20
  @hass_callback
21
+ def async_current_scanners(hass: HomeAssistant) -> list[BaseHaScanner]: ...
22
+ @hass_callback
20
23
  def async_discovered_service_info(hass: HomeAssistant, connectable: bool = True) -> Iterable[BluetoothServiceInfoBleak]: ...
21
24
  @hass_callback
22
25
  def async_last_service_info(hass: HomeAssistant, address: str, connectable: bool = True) -> BluetoothServiceInfoBleak | None: ...