homeassistant-stubs 2023.8.3__py3-none-any.whl → 2023.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.
Files changed (794) hide show
  1. homeassistant-stubs/__main__.pyi +0 -1
  2. homeassistant-stubs/components/abode/__init__.pyi +2 -1
  3. homeassistant-stubs/components/abode/sensor.pyi +18 -6
  4. homeassistant-stubs/components/accuweather/__init__.pyi +1 -2
  5. homeassistant-stubs/components/accuweather/const.pyi +2 -0
  6. homeassistant-stubs/components/accuweather/sensor.pyi +4 -6
  7. homeassistant-stubs/components/accuweather/weather.pyi +6 -5
  8. homeassistant-stubs/components/actiontec/model.pyi +0 -1
  9. homeassistant-stubs/components/adguard/entity.pyi +2 -2
  10. homeassistant-stubs/components/adguard/sensor.pyi +0 -2
  11. homeassistant-stubs/components/adguard/switch.pyi +0 -2
  12. homeassistant-stubs/components/airly/sensor.pyi +1 -3
  13. homeassistant-stubs/components/airzone/binary_sensor.pyi +0 -1
  14. homeassistant-stubs/components/airzone/entity.pyi +7 -1
  15. homeassistant-stubs/components/airzone/select.pyi +0 -2
  16. homeassistant-stubs/components/airzone/sensor.pyi +9 -1
  17. homeassistant-stubs/components/airzone_cloud/binary_sensor.pyi +8 -2
  18. homeassistant-stubs/components/airzone_cloud/entity.pyi +7 -1
  19. homeassistant-stubs/components/aladdin_connect/cover.pyi +1 -1
  20. homeassistant-stubs/components/aladdin_connect/sensor.pyi +1 -3
  21. homeassistant-stubs/components/alarm_control_panel/__init__.pyi +0 -1
  22. homeassistant-stubs/components/alexa/__init__.pyi +16 -0
  23. homeassistant-stubs/components/alexa/auth.pyi +31 -0
  24. homeassistant-stubs/components/alexa/capabilities.pyi +281 -0
  25. homeassistant-stubs/components/alexa/config.pyi +57 -0
  26. homeassistant-stubs/components/alexa/const.pyi +51 -0
  27. homeassistant-stubs/components/alexa/entities.pyi +176 -0
  28. homeassistant-stubs/components/alexa/errors.pyi +69 -0
  29. homeassistant-stubs/components/alexa/flash_briefings.pyi +22 -0
  30. homeassistant-stubs/components/alexa/handlers.pyi +64 -0
  31. homeassistant-stubs/components/alexa/intent.pyi +53 -0
  32. homeassistant-stubs/components/alexa/logbook.pyi +6 -0
  33. homeassistant-stubs/components/alexa/resources.pyi +114 -0
  34. homeassistant-stubs/components/alexa/smart_home.pyi +51 -0
  35. homeassistant-stubs/components/alexa/state_report.pyi +53 -0
  36. homeassistant-stubs/components/ambient_station/__init__.pyi +1 -15
  37. homeassistant-stubs/components/ambient_station/binary_sensor.pyi +1 -3
  38. homeassistant-stubs/components/ambient_station/entity.pyi +21 -0
  39. homeassistant-stubs/components/ambient_station/sensor.pyi +2 -1
  40. homeassistant-stubs/components/amcrest/__init__.pyi +0 -1
  41. homeassistant-stubs/components/amcrest/binary_sensor.pyi +0 -1
  42. homeassistant-stubs/components/analytics/analytics.pyi +0 -1
  43. homeassistant-stubs/components/anova/__init__.pyi +1 -1
  44. homeassistant-stubs/components/anova/config_flow.pyi +4 -4
  45. homeassistant-stubs/components/anova/coordinator.pyi +2 -2
  46. homeassistant-stubs/components/anova/entity.pyi +2 -2
  47. homeassistant-stubs/components/anova/models.pyi +0 -1
  48. homeassistant-stubs/components/anova/sensor.pyi +0 -2
  49. homeassistant-stubs/components/anthemav/__init__.pyi +1 -1
  50. homeassistant-stubs/components/anthemav/const.pyi +1 -1
  51. homeassistant-stubs/components/anthemav/media_player.pyi +2 -2
  52. homeassistant-stubs/components/apcupsd/__init__.pyi +1 -1
  53. homeassistant-stubs/components/aqualogic/sensor.pyi +0 -1
  54. homeassistant-stubs/components/aseko_pool_live/binary_sensor.pyi +0 -2
  55. homeassistant-stubs/components/aseko_pool_live/entity.pyi +2 -1
  56. homeassistant-stubs/components/aseko_pool_live/sensor.pyi +1 -0
  57. homeassistant-stubs/components/assist_pipeline/__init__.pyi +2 -2
  58. homeassistant-stubs/components/assist_pipeline/const.pyi +3 -0
  59. homeassistant-stubs/components/assist_pipeline/error.pyi +2 -0
  60. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +35 -14
  61. homeassistant-stubs/components/assist_pipeline/ring_buffer.pyi +15 -0
  62. homeassistant-stubs/components/assist_pipeline/vad.pyi +41 -6
  63. homeassistant-stubs/components/assist_pipeline/websocket_api.pyi +2 -2
  64. homeassistant-stubs/components/asuswrt/router.pyi +1 -2
  65. homeassistant-stubs/components/asuswrt/sensor.pyi +0 -1
  66. homeassistant-stubs/components/auth/__init__.pyi +2 -1
  67. homeassistant-stubs/components/automation/__init__.pyi +0 -1
  68. homeassistant-stubs/components/awair/__init__.pyi +0 -1
  69. homeassistant-stubs/components/awair/sensor.pyi +1 -3
  70. homeassistant-stubs/components/backup/manager.pyi +0 -1
  71. homeassistant-stubs/components/baf/binary_sensor.pyi +0 -2
  72. homeassistant-stubs/components/baf/entity.pyi +2 -2
  73. homeassistant-stubs/components/baf/light.pyi +1 -2
  74. homeassistant-stubs/components/baf/models.pyi +0 -2
  75. homeassistant-stubs/components/baf/number.pyi +0 -2
  76. homeassistant-stubs/components/baf/sensor.pyi +0 -2
  77. homeassistant-stubs/components/baf/switch.pyi +0 -2
  78. homeassistant-stubs/components/bayesian/helpers.pyi +0 -1
  79. homeassistant-stubs/components/binary_sensor/__init__.pyi +0 -1
  80. homeassistant-stubs/components/bluetooth/base_scanner.pyi +0 -1
  81. homeassistant-stubs/components/bluetooth/match.pyi +0 -1
  82. homeassistant-stubs/components/bluetooth/models.pyi +0 -1
  83. homeassistant-stubs/components/bluetooth/passive_update_processor.pyi +59 -20
  84. homeassistant-stubs/components/bluetooth/update_coordinator.pyi +6 -3
  85. homeassistant-stubs/components/bluetooth/wrappers.pyi +1 -2
  86. homeassistant-stubs/components/bmw_connected_drive/__init__.pyi +1 -1
  87. homeassistant-stubs/components/bmw_connected_drive/binary_sensor.pyi +0 -2
  88. homeassistant-stubs/components/bmw_connected_drive/button.pyi +6 -5
  89. homeassistant-stubs/components/bmw_connected_drive/number.pyi +0 -2
  90. homeassistant-stubs/components/bmw_connected_drive/select.pyi +0 -2
  91. homeassistant-stubs/components/bmw_connected_drive/sensor.pyi +0 -1
  92. homeassistant-stubs/components/bmw_connected_drive/switch.pyi +0 -2
  93. homeassistant-stubs/components/bond/button.pyi +0 -2
  94. homeassistant-stubs/components/bond/entity.pyi +2 -1
  95. homeassistant-stubs/components/bond/models.pyi +0 -1
  96. homeassistant-stubs/components/braviatv/button.pyi +0 -2
  97. homeassistant-stubs/components/braviatv/coordinator.pyi +2 -2
  98. homeassistant-stubs/components/braviatv/entity.pyi +1 -1
  99. homeassistant-stubs/components/brother/sensor.pyi +1 -3
  100. homeassistant-stubs/components/button/__init__.pyi +0 -1
  101. homeassistant-stubs/components/calendar/__init__.pyi +5 -3
  102. homeassistant-stubs/components/calendar/trigger.pyi +0 -2
  103. homeassistant-stubs/components/camera/__init__.pyi +3 -1
  104. homeassistant-stubs/components/camera/prefs.pyi +0 -1
  105. homeassistant-stubs/components/canary/camera.pyi +1 -1
  106. homeassistant-stubs/components/canary/sensor.pyi +1 -1
  107. homeassistant-stubs/components/cloud/alexa_config.pyi +3 -2
  108. homeassistant-stubs/components/cloud/http_api.pyi +3 -3
  109. homeassistant-stubs/components/cover/__init__.pyi +2 -3
  110. homeassistant-stubs/components/cpuspeed/sensor.pyi +1 -1
  111. homeassistant-stubs/components/crownstone/devices.pyi +2 -1
  112. homeassistant-stubs/components/deconz/binary_sensor.pyi +0 -2
  113. homeassistant-stubs/components/deconz/button.pyi +0 -2
  114. homeassistant-stubs/components/deconz/deconz_device.pyi +2 -2
  115. homeassistant-stubs/components/deconz/device_trigger.pyi +1 -0
  116. homeassistant-stubs/components/deconz/light.pyi +1 -1
  117. homeassistant-stubs/components/deconz/number.pyi +0 -2
  118. homeassistant-stubs/components/deconz/sensor.pyi +0 -2
  119. homeassistant-stubs/components/demo/binary_sensor.pyi +1 -1
  120. homeassistant-stubs/components/demo/button.pyi +1 -1
  121. homeassistant-stubs/components/demo/calendar.pyi +2 -2
  122. homeassistant-stubs/components/demo/climate.pyi +1 -1
  123. homeassistant-stubs/components/demo/cover.pyi +1 -1
  124. homeassistant-stubs/components/demo/date.pyi +1 -1
  125. homeassistant-stubs/components/demo/datetime.pyi +1 -1
  126. homeassistant-stubs/components/demo/event.pyi +1 -1
  127. homeassistant-stubs/components/demo/light.pyi +1 -1
  128. homeassistant-stubs/components/demo/number.pyi +1 -1
  129. homeassistant-stubs/components/demo/select.pyi +1 -1
  130. homeassistant-stubs/components/demo/sensor.pyi +1 -1
  131. homeassistant-stubs/components/demo/switch.pyi +1 -1
  132. homeassistant-stubs/components/demo/text.pyi +1 -1
  133. homeassistant-stubs/components/demo/time.pyi +1 -1
  134. homeassistant-stubs/components/demo/update.pyi +1 -1
  135. homeassistant-stubs/components/demo/weather.pyi +1 -0
  136. homeassistant-stubs/components/derivative/sensor.pyi +1 -1
  137. homeassistant-stubs/components/device_automation/__init__.pyi +0 -1
  138. homeassistant-stubs/components/device_tracker/config_entry.pyi +2 -1
  139. homeassistant-stubs/components/devolo_home_control/devolo_device.pyi +2 -1
  140. homeassistant-stubs/components/devolo_home_network/__init__.pyi +2 -2
  141. homeassistant-stubs/components/devolo_home_network/binary_sensor.pyi +0 -2
  142. homeassistant-stubs/components/devolo_home_network/button.pyi +0 -2
  143. homeassistant-stubs/components/devolo_home_network/const.pyi +2 -0
  144. homeassistant-stubs/components/devolo_home_network/entity.pyi +2 -1
  145. homeassistant-stubs/components/devolo_home_network/image.pyi +32 -0
  146. homeassistant-stubs/components/devolo_home_network/sensor.pyi +0 -2
  147. homeassistant-stubs/components/devolo_home_network/switch.pyi +0 -2
  148. homeassistant-stubs/components/devolo_home_network/update.pyi +40 -0
  149. homeassistant-stubs/components/dhcp/__init__.pyi +0 -1
  150. homeassistant-stubs/components/diagnostics/__init__.pyi +0 -2
  151. homeassistant-stubs/components/dlna_dmr/media_player.pyi +2 -2
  152. homeassistant-stubs/components/dnsip/sensor.pyi +1 -2
  153. homeassistant-stubs/components/doorbird/__init__.pyi +25 -0
  154. homeassistant-stubs/components/doorbird/button.pyi +32 -0
  155. homeassistant-stubs/components/doorbird/camera.pyi +33 -0
  156. homeassistant-stubs/components/doorbird/config_flow.pyi +37 -0
  157. homeassistant-stubs/components/doorbird/const.pyi +19 -0
  158. homeassistant-stubs/components/doorbird/device.pyi +40 -0
  159. homeassistant-stubs/components/doorbird/entity.pyi +14 -0
  160. homeassistant-stubs/components/doorbird/logbook.pyi +8 -0
  161. homeassistant-stubs/components/doorbird/models.pyi +8 -0
  162. homeassistant-stubs/components/doorbird/util.pyi +8 -0
  163. homeassistant-stubs/components/doorbird/view.pyi +14 -0
  164. homeassistant-stubs/components/dormakaba_dkey/binary_sensor.pyi +0 -2
  165. homeassistant-stubs/components/dormakaba_dkey/entity.pyi +1 -1
  166. homeassistant-stubs/components/dormakaba_dkey/models.pyi +0 -1
  167. homeassistant-stubs/components/dsmr/sensor.pyi +1 -3
  168. homeassistant-stubs/components/dunehd/media_player.pyi +3 -7
  169. homeassistant-stubs/components/efergy/__init__.pyi +2 -1
  170. homeassistant-stubs/components/electrasmart/climate.pyi +1 -1
  171. homeassistant-stubs/components/electric_kiwi/select.pyi +27 -0
  172. homeassistant-stubs/components/electric_kiwi/sensor.pyi +1 -3
  173. homeassistant-stubs/components/elgato/button.pyi +0 -2
  174. homeassistant-stubs/components/elgato/coordinator.pyi +0 -1
  175. homeassistant-stubs/components/elgato/entity.pyi +1 -2
  176. homeassistant-stubs/components/elgato/sensor.pyi +0 -2
  177. homeassistant-stubs/components/elgato/switch.pyi +0 -2
  178. homeassistant-stubs/components/elkm1/__init__.pyi +2 -2
  179. homeassistant-stubs/components/elkm1/climate.pyi +6 -15
  180. homeassistant-stubs/components/elkm1/sensor.pyi +10 -18
  181. homeassistant-stubs/components/energy/sensor.pyi +0 -1
  182. homeassistant-stubs/components/energy/validate.pyi +0 -3
  183. homeassistant-stubs/components/esphome/bluetooth/cache.pyi +0 -1
  184. homeassistant-stubs/components/esphome/bluetooth/client.pyi +3 -3
  185. homeassistant-stubs/components/esphome/bluetooth/device.pyi +0 -1
  186. homeassistant-stubs/components/esphome/bluetooth/scanner.pyi +2 -0
  187. homeassistant-stubs/components/esphome/domain_data.pyi +0 -1
  188. homeassistant-stubs/components/esphome/entity.pyi +2 -1
  189. homeassistant-stubs/components/esphome/entry_data.pyi +0 -1
  190. homeassistant-stubs/components/esphome/manager.pyi +1 -1
  191. homeassistant-stubs/components/esphome/update.pyi +1 -1
  192. homeassistant-stubs/components/esphome/voice_assistant.pyi +5 -7
  193. homeassistant-stubs/components/event/__init__.pyi +0 -2
  194. homeassistant-stubs/components/evil_genius_labs/__init__.pyi +1 -1
  195. homeassistant-stubs/components/evil_genius_labs/util.pyi +3 -2
  196. homeassistant-stubs/components/fan/__init__.pyi +0 -1
  197. homeassistant-stubs/components/feedreader/__init__.pyi +21 -18
  198. homeassistant-stubs/components/file_upload/__init__.pyi +0 -1
  199. homeassistant-stubs/components/filesize/__init__.pyi +2 -1
  200. homeassistant-stubs/components/filesize/coordinator.pyi +12 -0
  201. homeassistant-stubs/components/filesize/sensor.pyi +3 -8
  202. homeassistant-stubs/components/filter/sensor.pyi +0 -1
  203. homeassistant-stubs/components/fitbit/sensor.pyi +0 -1
  204. homeassistant-stubs/components/flux_led/entity.pyi +2 -1
  205. homeassistant-stubs/components/forecast_solar/__init__.pyi +2 -1
  206. homeassistant-stubs/components/forecast_solar/config_flow.pyi +1 -1
  207. homeassistant-stubs/components/forecast_solar/const.pyi +2 -0
  208. homeassistant-stubs/components/forecast_solar/coordinator.pyi +1 -1
  209. homeassistant-stubs/components/forecast_solar/sensor.pyi +1 -3
  210. homeassistant-stubs/components/fritz/binary_sensor.pyi +0 -1
  211. homeassistant-stubs/components/fritz/button.pyi +1 -4
  212. homeassistant-stubs/components/fritz/common.pyi +2 -6
  213. homeassistant-stubs/components/fritz/sensor.pyi +0 -1
  214. homeassistant-stubs/components/fritz/switch.pyi +2 -2
  215. homeassistant-stubs/components/fritzbox/__init__.pyi +3 -2
  216. homeassistant-stubs/components/fritzbox/binary_sensor.pyi +0 -2
  217. homeassistant-stubs/components/fritzbox/button.pyi +1 -1
  218. homeassistant-stubs/components/fritzbox/coordinator.pyi +0 -1
  219. homeassistant-stubs/components/fritzbox/model.pyi +0 -1
  220. homeassistant-stubs/components/fritzbox/sensor.pyi +5 -3
  221. homeassistant-stubs/components/fritzbox_callmonitor/sensor.pyi +1 -1
  222. homeassistant-stubs/components/fronius/__init__.pyi +1 -1
  223. homeassistant-stubs/components/fronius/const.pyi +1 -1
  224. homeassistant-stubs/components/fronius/sensor.pyi +1 -2
  225. homeassistant-stubs/components/fully_kiosk/button.pyi +0 -2
  226. homeassistant-stubs/components/fully_kiosk/entity.pyi +2 -2
  227. homeassistant-stubs/components/fully_kiosk/sensor.pyi +0 -1
  228. homeassistant-stubs/components/fully_kiosk/switch.pyi +0 -2
  229. homeassistant-stubs/components/geocaching/sensor.pyi +1 -4
  230. homeassistant-stubs/components/gios/sensor.pyi +1 -4
  231. homeassistant-stubs/components/goalzero/entity.pyi +2 -1
  232. homeassistant-stubs/components/google/calendar.pyi +3 -8
  233. homeassistant-stubs/components/group/__init__.pyi +4 -1
  234. homeassistant-stubs/components/group/binary_sensor.pyi +4 -4
  235. homeassistant-stubs/components/group/config_flow.pyi +22 -7
  236. homeassistant-stubs/components/group/cover.pyi +6 -9
  237. homeassistant-stubs/components/group/event.pyi +29 -0
  238. homeassistant-stubs/components/group/fan.pyi +6 -9
  239. homeassistant-stubs/components/group/light.pyi +3 -4
  240. homeassistant-stubs/components/group/lock.pyi +2 -3
  241. homeassistant-stubs/components/group/media_player.pyi +5 -3
  242. homeassistant-stubs/components/group/sensor.pyi +2 -3
  243. homeassistant-stubs/components/group/switch.pyi +2 -3
  244. homeassistant-stubs/components/guardian/__init__.pyi +2 -4
  245. homeassistant-stubs/components/guardian/binary_sensor.pyi +0 -1
  246. homeassistant-stubs/components/guardian/button.pyi +0 -2
  247. homeassistant-stubs/components/guardian/sensor.pyi +0 -1
  248. homeassistant-stubs/components/guardian/switch.pyi +0 -2
  249. homeassistant-stubs/components/guardian/util.pyi +0 -1
  250. homeassistant-stubs/components/hardware/models.pyi +0 -3
  251. homeassistant-stubs/components/hardware/websocket_api.pyi +0 -1
  252. homeassistant-stubs/components/here_travel_time/model.pyi +0 -1
  253. homeassistant-stubs/components/here_travel_time/sensor.pyi +1 -2
  254. homeassistant-stubs/components/history/websocket_api.pyi +0 -1
  255. homeassistant-stubs/components/homeassistant/exposed_entities.pyi +0 -2
  256. homeassistant-stubs/components/homeassistant_alerts/__init__.pyi +0 -1
  257. homeassistant-stubs/components/homeassistant_green/__init__.pyi +7 -0
  258. homeassistant-stubs/components/homeassistant_green/config_flow.pyi +8 -0
  259. homeassistant-stubs/components/homeassistant_green/const.pyi +1 -0
  260. homeassistant-stubs/components/homeassistant_green/hardware.pyi +11 -0
  261. homeassistant-stubs/components/homeassistant_hardware/const.pyi +1 -0
  262. homeassistant-stubs/components/homeassistant_hardware/silabs_multiprotocol_addon.pyi +29 -13
  263. homeassistant-stubs/components/homeassistant_sky_connect/hardware.pyi +1 -0
  264. homeassistant-stubs/components/homeassistant_yellow/hardware.pyi +1 -0
  265. homeassistant-stubs/components/homekit_controller/button.pyi +0 -1
  266. homeassistant-stubs/components/homewizard/const.pyi +0 -1
  267. homeassistant-stubs/components/homewizard/entity.pyi +1 -1
  268. homeassistant-stubs/components/homewizard/helpers.pyi +3 -2
  269. homeassistant-stubs/components/homewizard/sensor.pyi +0 -2
  270. homeassistant-stubs/components/homewizard/switch.pyi +0 -2
  271. homeassistant-stubs/components/http/__init__.pyi +5 -1
  272. homeassistant-stubs/components/http/ban.pyi +2 -2
  273. homeassistant-stubs/components/http/data_validator.pyi +2 -2
  274. homeassistant-stubs/components/http/decorators.pyi +15 -0
  275. homeassistant-stubs/components/http/headers.pyi +5 -0
  276. homeassistant-stubs/components/huawei_lte/__init__.pyi +2 -4
  277. homeassistant-stubs/components/huawei_lte/binary_sensor.pyi +0 -11
  278. homeassistant-stubs/components/huawei_lte/device_tracker.pyi +0 -1
  279. homeassistant-stubs/components/huawei_lte/notify.pyi +0 -1
  280. homeassistant-stubs/components/huawei_lte/sensor.pyi +0 -4
  281. homeassistant-stubs/components/huawei_lte/switch.pyi +0 -5
  282. homeassistant-stubs/components/hyperion/camera.pyi +4 -5
  283. homeassistant-stubs/components/hyperion/const.pyi +0 -2
  284. homeassistant-stubs/components/hyperion/light.pyi +3 -5
  285. homeassistant-stubs/components/hyperion/switch.pyi +5 -6
  286. homeassistant-stubs/components/ibeacon/entity.pyi +2 -1
  287. homeassistant-stubs/components/ibeacon/sensor.pyi +0 -2
  288. homeassistant-stubs/components/image/__init__.pyi +0 -2
  289. homeassistant-stubs/components/image_processing/__init__.pyi +0 -1
  290. homeassistant-stubs/components/imap/sensor.pyi +1 -2
  291. homeassistant-stubs/components/integration/sensor.pyi +1 -2
  292. homeassistant-stubs/components/ipp/__init__.pyi +11 -0
  293. homeassistant-stubs/components/ipp/config_flow.pyi +22 -0
  294. homeassistant-stubs/components/ipp/const.pyi +13 -0
  295. homeassistant-stubs/components/ipp/coordinator.pyi +15 -0
  296. homeassistant-stubs/components/ipp/entity.pyi +13 -0
  297. homeassistant-stubs/components/ipp/sensor.pyi +36 -0
  298. homeassistant-stubs/components/isy994/__init__.pyi +1 -2
  299. homeassistant-stubs/components/isy994/binary_sensor.pyi +2 -1
  300. homeassistant-stubs/components/isy994/button.pyi +2 -1
  301. homeassistant-stubs/components/isy994/climate.pyi +2 -1
  302. homeassistant-stubs/components/isy994/cover.pyi +2 -1
  303. homeassistant-stubs/components/isy994/entity.pyi +2 -1
  304. homeassistant-stubs/components/isy994/fan.pyi +2 -1
  305. homeassistant-stubs/components/isy994/helpers.pyi +1 -1
  306. homeassistant-stubs/components/isy994/light.pyi +2 -1
  307. homeassistant-stubs/components/isy994/lock.pyi +2 -1
  308. homeassistant-stubs/components/isy994/models.pyi +1 -2
  309. homeassistant-stubs/components/isy994/number.pyi +2 -1
  310. homeassistant-stubs/components/isy994/select.pyi +1 -1
  311. homeassistant-stubs/components/isy994/sensor.pyi +2 -1
  312. homeassistant-stubs/components/isy994/switch.pyi +1 -2
  313. homeassistant-stubs/components/jellyfin/entity.pyi +2 -2
  314. homeassistant-stubs/components/jellyfin/media_player.pyi +1 -1
  315. homeassistant-stubs/components/jellyfin/models.pyi +0 -1
  316. homeassistant-stubs/components/jellyfin/sensor.pyi +0 -2
  317. homeassistant-stubs/components/jewish_calendar/binary_sensor.pyi +0 -2
  318. homeassistant-stubs/components/jvc_projector/entity.pyi +1 -1
  319. homeassistant-stubs/components/kaleidescape/__init__.pyi +0 -1
  320. homeassistant-stubs/components/kaleidescape/entity.pyi +2 -1
  321. homeassistant-stubs/components/kaleidescape/sensor.pyi +0 -2
  322. homeassistant-stubs/components/knx/config_flow.pyi +1 -4
  323. homeassistant-stubs/components/knx/device.pyi +1 -1
  324. homeassistant-stubs/components/knx/helpers/keyring.pyi +12 -0
  325. homeassistant-stubs/components/knx/project.pyi +0 -1
  326. homeassistant-stubs/components/knx/sensor.pyi +0 -1
  327. homeassistant-stubs/components/kraken/sensor.pyi +3 -5
  328. homeassistant-stubs/components/lacrosse_view/sensor.pyi +1 -3
  329. homeassistant-stubs/components/lametric/button.pyi +0 -2
  330. homeassistant-stubs/components/lametric/entity.pyi +1 -2
  331. homeassistant-stubs/components/lametric/helpers.pyi +3 -2
  332. homeassistant-stubs/components/lametric/number.pyi +0 -2
  333. homeassistant-stubs/components/lametric/select.pyi +0 -2
  334. homeassistant-stubs/components/lametric/sensor.pyi +0 -2
  335. homeassistant-stubs/components/lametric/switch.pyi +0 -2
  336. homeassistant-stubs/components/laundrify/binary_sensor.pyi +1 -1
  337. homeassistant-stubs/components/lawn_mower/__init__.pyi +35 -0
  338. homeassistant-stubs/components/lawn_mower/const.pyi +17 -0
  339. homeassistant-stubs/components/lcn/__init__.pyi +2 -1
  340. homeassistant-stubs/components/ld2410_ble/binary_sensor.pyi +1 -1
  341. homeassistant-stubs/components/ld2410_ble/coordinator.pyi +1 -1
  342. homeassistant-stubs/components/ld2410_ble/models.pyi +0 -1
  343. homeassistant-stubs/components/ld2410_ble/sensor.pyi +1 -1
  344. homeassistant-stubs/components/lidarr/__init__.pyi +2 -2
  345. homeassistant-stubs/components/lidarr/sensor.pyi +0 -2
  346. homeassistant-stubs/components/lifx/__init__.pyi +1 -1
  347. homeassistant-stubs/components/lifx/entity.pyi +1 -1
  348. homeassistant-stubs/components/lifx/light.pyi +1 -2
  349. homeassistant-stubs/components/light/__init__.pyi +0 -3
  350. homeassistant-stubs/components/litejet/config_flow.pyi +2 -1
  351. homeassistant-stubs/components/litejet/light.pyi +1 -1
  352. homeassistant-stubs/components/litejet/scene.pyi +1 -1
  353. homeassistant-stubs/components/litejet/switch.pyi +1 -1
  354. homeassistant-stubs/components/litterrobot/__init__.pyi +2 -0
  355. homeassistant-stubs/components/litterrobot/binary_sensor.pyi +0 -2
  356. homeassistant-stubs/components/litterrobot/button.pyi +0 -2
  357. homeassistant-stubs/components/litterrobot/entity.pyi +2 -1
  358. homeassistant-stubs/components/litterrobot/select.pyi +0 -2
  359. homeassistant-stubs/components/litterrobot/sensor.pyi +0 -1
  360. homeassistant-stubs/components/litterrobot/switch.pyi +0 -2
  361. homeassistant-stubs/components/litterrobot/time.pyi +0 -2
  362. homeassistant-stubs/components/lock/__init__.pyi +0 -1
  363. homeassistant-stubs/components/logbook/models.pyi +0 -2
  364. homeassistant-stubs/components/logbook/processor.pyi +0 -1
  365. homeassistant-stubs/components/logbook/websocket_api.pyi +0 -1
  366. homeassistant-stubs/components/logger/helpers.pyi +0 -2
  367. homeassistant-stubs/components/lookin/const.pyi +1 -1
  368. homeassistant-stubs/components/lookin/entity.pyi +1 -1
  369. homeassistant-stubs/components/lookin/models.pyi +0 -1
  370. homeassistant-stubs/components/luftdaten/sensor.pyi +1 -1
  371. homeassistant-stubs/components/matter/binary_sensor.pyi +0 -1
  372. homeassistant-stubs/components/matter/entity.pyi +2 -2
  373. homeassistant-stubs/components/matter/helpers.pyi +0 -1
  374. homeassistant-stubs/components/matter/models.pyi +0 -2
  375. homeassistant-stubs/components/matter/sensor.pyi +0 -1
  376. homeassistant-stubs/components/media_extractor/__init__.pyi +31 -0
  377. homeassistant-stubs/components/media_player/__init__.pyi +0 -1
  378. homeassistant-stubs/components/media_source/local_source.pyi +1 -1
  379. homeassistant-stubs/components/media_source/models.pyi +0 -2
  380. homeassistant-stubs/components/metoffice/__init__.pyi +1 -1
  381. homeassistant-stubs/components/metoffice/const.pyi +1 -0
  382. homeassistant-stubs/components/metoffice/data.pyi +0 -1
  383. homeassistant-stubs/components/metoffice/sensor.pyi +1 -1
  384. homeassistant-stubs/components/metoffice/weather.pyi +1 -2
  385. homeassistant-stubs/components/mjpeg/camera.pyi +1 -1
  386. homeassistant-stubs/components/modbus/__init__.pyi +2 -2
  387. homeassistant-stubs/components/modbus/base_platform.pyi +4 -3
  388. homeassistant-stubs/components/modbus/climate.pyi +4 -3
  389. homeassistant-stubs/components/modbus/const.pyi +3 -11
  390. homeassistant-stubs/components/modbus/modbus.pyi +6 -6
  391. homeassistant-stubs/components/modbus/sensor.pyi +4 -1
  392. homeassistant-stubs/components/modbus/validators.pyi +1 -0
  393. homeassistant-stubs/components/modem_callerid/button.pyi +4 -1
  394. homeassistant-stubs/components/modem_callerid/sensor.pyi +5 -2
  395. homeassistant-stubs/components/moon/sensor.pyi +1 -3
  396. homeassistant-stubs/components/mqtt/abbreviations.pyi +1 -0
  397. homeassistant-stubs/components/mqtt/alarm_control_panel.pyi +2 -3
  398. homeassistant-stubs/components/mqtt/climate.pyi +4 -1
  399. homeassistant-stubs/components/mqtt/const.pyi +13 -0
  400. homeassistant-stubs/components/mqtt/device_tracker.pyi +2 -0
  401. homeassistant-stubs/components/mqtt/discovery.pyi +6 -4
  402. homeassistant-stubs/components/mqtt/lawn_mower.pyi +64 -0
  403. homeassistant-stubs/components/mqtt/mixins.pyi +4 -14
  404. homeassistant-stubs/components/mqtt/models.pyi +7 -1
  405. homeassistant-stubs/components/mysensors/binary_sensor.pyi +0 -1
  406. homeassistant-stubs/components/mysensors/device.pyi +2 -1
  407. homeassistant-stubs/components/nam/__init__.pyi +1 -1
  408. homeassistant-stubs/components/nam/config_flow.pyi +0 -1
  409. homeassistant-stubs/components/nam/sensor.pyi +0 -2
  410. homeassistant-stubs/components/nanoleaf/__init__.pyi +0 -1
  411. homeassistant-stubs/components/nanoleaf/entity.pyi +1 -1
  412. homeassistant-stubs/components/neato/__init__.pyi +1 -0
  413. homeassistant-stubs/components/neato/button.pyi +18 -0
  414. homeassistant-stubs/components/neato/camera.pyi +4 -9
  415. homeassistant-stubs/components/neato/entity.pyi +12 -0
  416. homeassistant-stubs/components/neato/sensor.pyi +3 -9
  417. homeassistant-stubs/components/neato/switch.pyi +4 -9
  418. homeassistant-stubs/components/neato/vacuum.pyi +5 -5
  419. homeassistant-stubs/components/nest/camera.pyi +6 -4
  420. homeassistant-stubs/components/nest/climate.pyi +5 -11
  421. homeassistant-stubs/components/nest/device_info.pyi +1 -1
  422. homeassistant-stubs/components/nest/media_source.pyi +0 -1
  423. homeassistant-stubs/components/netatmo/__init__.pyi +1 -0
  424. homeassistant-stubs/components/netatmo/climate.pyi +1 -1
  425. homeassistant-stubs/components/netatmo/data_handler.pyi +0 -4
  426. homeassistant-stubs/components/netatmo/helper.pyi +0 -1
  427. homeassistant-stubs/components/netatmo/netatmo_entity_base.pyi +2 -1
  428. homeassistant-stubs/components/netatmo/sensor.pyi +0 -2
  429. homeassistant-stubs/components/nextdns/__init__.pyi +2 -3
  430. homeassistant-stubs/components/nextdns/binary_sensor.pyi +0 -2
  431. homeassistant-stubs/components/nextdns/sensor.pyi +0 -2
  432. homeassistant-stubs/components/nextdns/switch.pyi +0 -2
  433. homeassistant-stubs/components/notion/__init__.pyi +2 -2
  434. homeassistant-stubs/components/notion/binary_sensor.pyi +0 -2
  435. homeassistant-stubs/components/notion/model.pyi +0 -1
  436. homeassistant-stubs/components/notion/sensor.pyi +0 -1
  437. homeassistant-stubs/components/number/__init__.pyi +0 -2
  438. homeassistant-stubs/components/nut/__init__.pyi +0 -1
  439. homeassistant-stubs/components/nut/sensor.pyi +1 -1
  440. homeassistant-stubs/components/oncue/entity.pyi +3 -1
  441. homeassistant-stubs/components/onewire/binary_sensor.pyi +0 -1
  442. homeassistant-stubs/components/onewire/model.pyi +1 -2
  443. homeassistant-stubs/components/onewire/onewire_entities.pyi +2 -2
  444. homeassistant-stubs/components/onewire/onewirehub.pyi +1 -1
  445. homeassistant-stubs/components/onewire/sensor.pyi +0 -1
  446. homeassistant-stubs/components/onewire/switch.pyi +0 -1
  447. homeassistant-stubs/components/open_meteo/weather.pyi +7 -6
  448. homeassistant-stubs/components/openexchangerates/sensor.pyi +4 -5
  449. homeassistant-stubs/components/opensky/__init__.pyi +5 -1
  450. homeassistant-stubs/components/opensky/config_flow.pyi +10 -3
  451. homeassistant-stubs/components/opensky/const.pyi +3 -1
  452. homeassistant-stubs/components/opensky/coordinator.pyi +17 -0
  453. homeassistant-stubs/components/opensky/sensor.pyi +14 -22
  454. homeassistant-stubs/components/openuv/config_flow.pyi +0 -1
  455. homeassistant-stubs/components/otbr/util.pyi +6 -4
  456. homeassistant-stubs/components/otbr/websocket_api.pyi +0 -1
  457. homeassistant-stubs/components/overkiz/__init__.pyi +0 -1
  458. homeassistant-stubs/components/overkiz/alarm_control_panel.pyi +0 -2
  459. homeassistant-stubs/components/overkiz/binary_sensor.pyi +0 -2
  460. homeassistant-stubs/components/overkiz/button.pyi +0 -1
  461. homeassistant-stubs/components/overkiz/entity.pyi +2 -1
  462. homeassistant-stubs/components/overkiz/number.pyi +0 -2
  463. homeassistant-stubs/components/overkiz/select.pyi +0 -2
  464. homeassistant-stubs/components/overkiz/sensor.pyi +1 -2
  465. homeassistant-stubs/components/overkiz/switch.pyi +0 -2
  466. homeassistant-stubs/components/peco/__init__.pyi +0 -1
  467. homeassistant-stubs/components/peco/sensor.pyi +3 -3
  468. homeassistant-stubs/components/pi_hole/__init__.pyi +1 -1
  469. homeassistant-stubs/components/pi_hole/binary_sensor.pyi +0 -2
  470. homeassistant-stubs/components/pi_hole/update.pyi +0 -1
  471. homeassistant-stubs/components/powerwall/binary_sensor.pyi +4 -5
  472. homeassistant-stubs/components/powerwall/entity.pyi +2 -1
  473. homeassistant-stubs/components/powerwall/models.pyi +0 -2
  474. homeassistant-stubs/components/powerwall/sensor.pyi +4 -6
  475. homeassistant-stubs/components/powerwall/switch.pyi +1 -2
  476. homeassistant-stubs/components/prusalink/__init__.pyi +1 -1
  477. homeassistant-stubs/components/prusalink/button.pyi +0 -2
  478. homeassistant-stubs/components/prusalink/sensor.pyi +0 -2
  479. homeassistant-stubs/components/pure_energie/sensor.pyi +1 -3
  480. homeassistant-stubs/components/purpleair/__init__.pyi +1 -1
  481. homeassistant-stubs/components/purpleair/config_flow.pyi +0 -1
  482. homeassistant-stubs/components/purpleair/sensor.pyi +0 -2
  483. homeassistant-stubs/components/pvoutput/sensor.pyi +1 -3
  484. homeassistant-stubs/components/qnap_qsw/binary_sensor.pyi +2 -1
  485. homeassistant-stubs/components/qnap_qsw/button.pyi +1 -3
  486. homeassistant-stubs/components/qnap_qsw/entity.pyi +3 -3
  487. homeassistant-stubs/components/qnap_qsw/sensor.pyi +2 -1
  488. homeassistant-stubs/components/qnap_qsw/update.pyi +0 -1
  489. homeassistant-stubs/components/radarr/__init__.pyi +2 -2
  490. homeassistant-stubs/components/radarr/sensor.pyi +0 -2
  491. homeassistant-stubs/components/rainmachine/__init__.pyi +1 -2
  492. homeassistant-stubs/components/rainmachine/binary_sensor.pyi +0 -1
  493. homeassistant-stubs/components/rainmachine/button.pyi +0 -2
  494. homeassistant-stubs/components/rainmachine/model.pyi +0 -4
  495. homeassistant-stubs/components/rainmachine/select.pyi +0 -4
  496. homeassistant-stubs/components/rainmachine/sensor.pyi +0 -2
  497. homeassistant-stubs/components/rainmachine/switch.pyi +2 -5
  498. homeassistant-stubs/components/rainmachine/util.pyi +0 -1
  499. homeassistant-stubs/components/rdw/binary_sensor.pyi +1 -4
  500. homeassistant-stubs/components/rdw/sensor.pyi +1 -4
  501. homeassistant-stubs/components/recollect_waste/entity.pyi +1 -2
  502. homeassistant-stubs/components/recorder/migration.pyi +0 -2
  503. homeassistant-stubs/components/recorder/models/database.pyi +0 -2
  504. homeassistant-stubs/components/recorder/statistics.pyi +0 -2
  505. homeassistant-stubs/components/recorder/table_managers/recorder_runs.pyi +0 -1
  506. homeassistant-stubs/components/recorder/tasks.pyi +0 -30
  507. homeassistant-stubs/components/recorder/util.pyi +2 -2
  508. homeassistant-stubs/components/remote/__init__.pyi +0 -1
  509. homeassistant-stubs/components/renault/binary_sensor.pyi +0 -2
  510. homeassistant-stubs/components/renault/button.pyi +0 -2
  511. homeassistant-stubs/components/renault/entity.pyi +0 -2
  512. homeassistant-stubs/components/renault/renault_hub.pyi +1 -0
  513. homeassistant-stubs/components/renault/renault_vehicle.pyi +3 -4
  514. homeassistant-stubs/components/renault/select.pyi +0 -2
  515. homeassistant-stubs/components/renault/sensor.pyi +0 -2
  516. homeassistant-stubs/components/repairs/websocket_api.pyi +1 -0
  517. homeassistant-stubs/components/rest/binary_sensor.pyi +7 -5
  518. homeassistant-stubs/components/rest/schema.pyi +1 -1
  519. homeassistant-stubs/components/rest/sensor.pyi +13 -6
  520. homeassistant-stubs/components/rest/switch.pyi +6 -5
  521. homeassistant-stubs/components/rest/util.pyi +7 -0
  522. homeassistant-stubs/components/rfxtrx/__init__.pyi +2 -1
  523. homeassistant-stubs/components/rfxtrx/sensor.pyi +0 -1
  524. homeassistant-stubs/components/ridwell/entity.pyi +1 -2
  525. homeassistant-stubs/components/ridwell/switch.pyi +0 -1
  526. homeassistant-stubs/components/rituals_perfume_genie/binary_sensor.pyi +0 -2
  527. homeassistant-stubs/components/rituals_perfume_genie/entity.pyi +2 -1
  528. homeassistant-stubs/components/rituals_perfume_genie/number.pyi +0 -2
  529. homeassistant-stubs/components/rituals_perfume_genie/select.pyi +0 -2
  530. homeassistant-stubs/components/rituals_perfume_genie/sensor.pyi +0 -2
  531. homeassistant-stubs/components/rituals_perfume_genie/switch.pyi +0 -2
  532. homeassistant-stubs/components/roku/binary_sensor.pyi +0 -2
  533. homeassistant-stubs/components/roku/coordinator.pyi +2 -1
  534. homeassistant-stubs/components/roku/entity.pyi +4 -6
  535. homeassistant-stubs/components/roku/helpers.pyi +2 -2
  536. homeassistant-stubs/components/roku/select.pyi +0 -2
  537. homeassistant-stubs/components/roku/sensor.pyi +0 -2
  538. homeassistant-stubs/components/ruuvi_gateway/models.pyi +0 -1
  539. homeassistant-stubs/components/samsungtv/entity.pyi +2 -1
  540. homeassistant-stubs/components/scrape/__init__.pyi +1 -1
  541. homeassistant-stubs/components/scrape/config_flow.pyi +1 -1
  542. homeassistant-stubs/components/scrape/sensor.pyi +9 -6
  543. homeassistant-stubs/components/select/__init__.pyi +0 -1
  544. homeassistant-stubs/components/sensibo/binary_sensor.pyi +0 -4
  545. homeassistant-stubs/components/sensibo/button.pyi +0 -2
  546. homeassistant-stubs/components/sensibo/climate.pyi +3 -0
  547. homeassistant-stubs/components/sensibo/entity.pyi +3 -4
  548. homeassistant-stubs/components/sensibo/number.pyi +0 -2
  549. homeassistant-stubs/components/sensibo/select.pyi +0 -2
  550. homeassistant-stubs/components/sensibo/sensor.pyi +0 -4
  551. homeassistant-stubs/components/sensibo/switch.pyi +0 -2
  552. homeassistant-stubs/components/sensibo/update.pyi +0 -2
  553. homeassistant-stubs/components/sensor/__init__.pyi +0 -2
  554. homeassistant-stubs/components/senz/climate.pyi +1 -1
  555. homeassistant-stubs/components/sfr_box/binary_sensor.pyi +1 -3
  556. homeassistant-stubs/components/sfr_box/button.pyi +3 -5
  557. homeassistant-stubs/components/sfr_box/models.pyi +0 -1
  558. homeassistant-stubs/components/sfr_box/sensor.pyi +1 -3
  559. homeassistant-stubs/components/shelly/__init__.pyi +2 -1
  560. homeassistant-stubs/components/shelly/binary_sensor.pyi +0 -3
  561. homeassistant-stubs/components/shelly/button.pyi +1 -4
  562. homeassistant-stubs/components/shelly/climate.pyi +1 -3
  563. homeassistant-stubs/components/shelly/const.pyi +1 -0
  564. homeassistant-stubs/components/shelly/coordinator.pyi +4 -4
  565. homeassistant-stubs/components/shelly/entity.pyi +2 -6
  566. homeassistant-stubs/components/shelly/number.pyi +0 -1
  567. homeassistant-stubs/components/shelly/sensor.pyi +0 -3
  568. homeassistant-stubs/components/shelly/switch.pyi +20 -2
  569. homeassistant-stubs/components/shelly/update.pyi +0 -4
  570. homeassistant-stubs/components/simplisafe/__init__.pyi +1 -1
  571. homeassistant-stubs/components/simplisafe/button.pyi +0 -2
  572. homeassistant-stubs/components/skybell/entity.pyi +2 -1
  573. homeassistant-stubs/components/skybell/sensor.pyi +0 -2
  574. homeassistant-stubs/components/slack/__init__.pyi +2 -2
  575. homeassistant-stubs/components/sleepiq/button.pyi +0 -2
  576. homeassistant-stubs/components/sleepiq/coordinator.pyi +0 -1
  577. homeassistant-stubs/components/sleepiq/entity.pyi +2 -1
  578. homeassistant-stubs/components/sleepiq/number.pyi +0 -2
  579. homeassistant-stubs/components/smhi/weather.pyi +11 -6
  580. homeassistant-stubs/components/snooz/config_flow.pyi +0 -1
  581. homeassistant-stubs/components/snooz/fan.pyi +4 -1
  582. homeassistant-stubs/components/snooz/models.pyi +0 -1
  583. homeassistant-stubs/components/sonarr/entity.pyi +2 -2
  584. homeassistant-stubs/components/sonarr/sensor.pyi +0 -2
  585. homeassistant-stubs/components/speedtestdotnet/sensor.pyi +1 -3
  586. homeassistant-stubs/components/sql/__init__.pyi +1 -1
  587. homeassistant-stubs/components/sql/models.pyi +0 -1
  588. homeassistant-stubs/components/sql/sensor.pyi +7 -9
  589. homeassistant-stubs/components/ssdp/__init__.pyi +0 -1
  590. homeassistant-stubs/components/starlink/__init__.pyi +11 -0
  591. homeassistant-stubs/components/starlink/binary_sensor.pyi +26 -0
  592. homeassistant-stubs/components/starlink/button.pyi +25 -0
  593. homeassistant-stubs/components/starlink/config_flow.pyi +12 -0
  594. homeassistant-stubs/components/starlink/const.pyi +1 -0
  595. homeassistant-stubs/components/starlink/coordinator.pyi +21 -0
  596. homeassistant-stubs/components/starlink/device_tracker.pyi +31 -0
  597. homeassistant-stubs/components/starlink/diagnostics.pyi +11 -0
  598. homeassistant-stubs/components/starlink/entity.pyi +13 -0
  599. homeassistant-stubs/components/starlink/sensor.pyi +28 -0
  600. homeassistant-stubs/components/starlink/switch.pyi +30 -0
  601. homeassistant-stubs/components/steamist/entity.pyi +2 -1
  602. homeassistant-stubs/components/steamist/sensor.pyi +0 -2
  603. homeassistant-stubs/components/stookalert/binary_sensor.pyi +1 -2
  604. homeassistant-stubs/components/stream/__init__.pyi +1 -1
  605. homeassistant-stubs/components/stream/core.pyi +4 -2
  606. homeassistant-stubs/components/sun/sensor.pyi +1 -4
  607. homeassistant-stubs/components/surepetcare/__init__.pyi +1 -0
  608. homeassistant-stubs/components/surepetcare/entity.pyi +1 -1
  609. homeassistant-stubs/components/switch/__init__.pyi +0 -1
  610. homeassistant-stubs/components/switchbee/entity.pyi +1 -1
  611. homeassistant-stubs/components/switcher_kis/button.pyi +2 -4
  612. homeassistant-stubs/components/switcher_kis/climate.pyi +3 -2
  613. homeassistant-stubs/components/switcher_kis/cover.pyi +3 -2
  614. homeassistant-stubs/components/switcher_kis/sensor.pyi +7 -20
  615. homeassistant-stubs/components/switcher_kis/switch.pyi +3 -2
  616. homeassistant-stubs/components/synology_dsm/binary_sensor.pyi +0 -1
  617. homeassistant-stubs/components/synology_dsm/button.pyi +1 -3
  618. homeassistant-stubs/components/synology_dsm/camera.pyi +1 -2
  619. homeassistant-stubs/components/synology_dsm/entity.pyi +2 -3
  620. homeassistant-stubs/components/synology_dsm/models.pyi +0 -1
  621. homeassistant-stubs/components/synology_dsm/sensor.pyi +0 -1
  622. homeassistant-stubs/components/synology_dsm/switch.pyi +1 -2
  623. homeassistant-stubs/components/synology_dsm/update.pyi +0 -1
  624. homeassistant-stubs/components/systemmonitor/sensor.pyi +0 -2
  625. homeassistant-stubs/components/tailscale/__init__.pyi +2 -2
  626. homeassistant-stubs/components/tailscale/binary_sensor.pyi +0 -2
  627. homeassistant-stubs/components/tailscale/sensor.pyi +0 -2
  628. homeassistant-stubs/components/tautulli/__init__.pyi +2 -2
  629. homeassistant-stubs/components/tautulli/sensor.pyi +0 -4
  630. homeassistant-stubs/components/text/__init__.pyi +0 -2
  631. homeassistant-stubs/components/threshold/binary_sensor.pyi +1 -1
  632. homeassistant-stubs/components/tibber/sensor.pyi +1 -1
  633. homeassistant-stubs/components/tile/__init__.pyi +0 -1
  634. homeassistant-stubs/components/tile/device_tracker.pyi +5 -1
  635. homeassistant-stubs/components/tolo/__init__.pyi +1 -1
  636. homeassistant-stubs/components/tolo/number.pyi +0 -2
  637. homeassistant-stubs/components/tolo/sensor.pyi +0 -2
  638. homeassistant-stubs/components/tplink/diagnostics.pyi +1 -0
  639. homeassistant-stubs/components/tplink/entity.pyi +3 -3
  640. homeassistant-stubs/components/tplink/sensor.pyi +0 -1
  641. homeassistant-stubs/components/tplink_omada/entity.pyi +1 -1
  642. homeassistant-stubs/components/tplink_omada/update.pyi +2 -2
  643. homeassistant-stubs/components/tractive/__init__.pyi +3 -2
  644. homeassistant-stubs/components/tractive/binary_sensor.pyi +5 -8
  645. homeassistant-stubs/components/tractive/const.pyi +2 -0
  646. homeassistant-stubs/components/tractive/device_tracker.pyi +2 -3
  647. homeassistant-stubs/components/tractive/entity.pyi +13 -4
  648. homeassistant-stubs/components/tractive/sensor.pyi +11 -24
  649. homeassistant-stubs/components/tractive/switch.pyi +4 -9
  650. homeassistant-stubs/components/tradfri/base_class.pyi +1 -1
  651. homeassistant-stubs/components/tradfri/sensor.pyi +0 -2
  652. homeassistant-stubs/components/trafikverket_camera/__init__.pyi +13 -0
  653. homeassistant-stubs/components/trafikverket_camera/camera.pyi +28 -0
  654. homeassistant-stubs/components/trafikverket_camera/config_flow.pyi +15 -0
  655. homeassistant-stubs/components/trafikverket_camera/const.pyi +9 -0
  656. homeassistant-stubs/components/trafikverket_camera/coordinator.pyi +24 -0
  657. homeassistant-stubs/components/trafikverket_camera/recorder.pyi +5 -0
  658. homeassistant-stubs/components/trafikverket_ferry/sensor.pyi +1 -4
  659. homeassistant-stubs/components/trafikverket_train/__init__.pyi +2 -1
  660. homeassistant-stubs/components/trafikverket_train/config_flow.pyi +13 -4
  661. homeassistant-stubs/components/trafikverket_train/const.pyi +1 -0
  662. homeassistant-stubs/components/trafikverket_train/coordinator.pyi +7 -7
  663. homeassistant-stubs/components/trafikverket_train/sensor.pyi +26 -26
  664. homeassistant-stubs/components/trafikverket_train/util.pyi +4 -1
  665. homeassistant-stubs/components/trafikverket_weatherstation/sensor.pyi +1 -4
  666. homeassistant-stubs/components/tts/models.pyi +0 -1
  667. homeassistant-stubs/components/twentemilieu/entity.pyi +2 -2
  668. homeassistant-stubs/components/twentemilieu/sensor.pyi +0 -2
  669. homeassistant-stubs/components/unifi/button.pyi +30 -0
  670. homeassistant-stubs/components/unifi/config_flow.pyi +2 -2
  671. homeassistant-stubs/components/unifi/controller.pyi +10 -14
  672. homeassistant-stubs/components/unifi/device_tracker.pyi +0 -2
  673. homeassistant-stubs/components/unifi/entity.pyi +7 -7
  674. homeassistant-stubs/components/unifi/image.pyi +1 -3
  675. homeassistant-stubs/components/unifi/sensor.pyi +3 -7
  676. homeassistant-stubs/components/unifi/switch.pyi +12 -13
  677. homeassistant-stubs/components/unifi/update.pyi +0 -2
  678. homeassistant-stubs/components/unifiprotect/binary_sensor.pyi +0 -2
  679. homeassistant-stubs/components/unifiprotect/button.pyi +0 -1
  680. homeassistant-stubs/components/unifiprotect/entity.pyi +2 -1
  681. homeassistant-stubs/components/unifiprotect/models.pyi +0 -4
  682. homeassistant-stubs/components/unifiprotect/number.pyi +0 -2
  683. homeassistant-stubs/components/unifiprotect/select.pyi +0 -1
  684. homeassistant-stubs/components/unifiprotect/sensor.pyi +0 -2
  685. homeassistant-stubs/components/unifiprotect/switch.pyi +0 -1
  686. homeassistant-stubs/components/unifiprotect/text.pyi +0 -1
  687. homeassistant-stubs/components/upcloud/__init__.pyi +1 -3
  688. homeassistant-stubs/components/update/__init__.pyi +1 -1
  689. homeassistant-stubs/components/uptime/sensor.pyi +1 -2
  690. homeassistant-stubs/components/uptimerobot/entity.pyi +2 -2
  691. homeassistant-stubs/components/usb/__init__.pyi +0 -1
  692. homeassistant-stubs/components/usb/models.pyi +0 -1
  693. homeassistant-stubs/components/vacuum/__init__.pyi +0 -2
  694. homeassistant-stubs/components/vallox/__init__.pyi +1 -2
  695. homeassistant-stubs/components/vallox/binary_sensor.pyi +0 -2
  696. homeassistant-stubs/components/vallox/number.pyi +0 -2
  697. homeassistant-stubs/components/vallox/sensor.pyi +0 -1
  698. homeassistant-stubs/components/vallox/switch.pyi +0 -2
  699. homeassistant-stubs/components/velbus/button.pyi +1 -1
  700. homeassistant-stubs/components/velbus/climate.pyi +1 -1
  701. homeassistant-stubs/components/velbus/cover.pyi +1 -1
  702. homeassistant-stubs/components/velbus/entity.pyi +9 -1
  703. homeassistant-stubs/components/velbus/light.pyi +1 -1
  704. homeassistant-stubs/components/velbus/select.pyi +1 -1
  705. homeassistant-stubs/components/velbus/switch.pyi +1 -1
  706. homeassistant-stubs/components/vlc_telnet/media_player.pyi +3 -4
  707. homeassistant-stubs/components/wallbox/__init__.pyi +1 -1
  708. homeassistant-stubs/components/wallbox/number.pyi +0 -1
  709. homeassistant-stubs/components/wallbox/sensor.pyi +0 -1
  710. homeassistant-stubs/components/water_heater/__init__.pyi +0 -1
  711. homeassistant-stubs/components/watttime/sensor.pyi +2 -1
  712. homeassistant-stubs/components/weather/__init__.pyi +60 -34
  713. homeassistant-stubs/components/weather/websocket_api.pyi +1 -0
  714. homeassistant-stubs/components/webostv/media_player.pyi +3 -3
  715. homeassistant-stubs/components/wemo/entity.pyi +1 -1
  716. homeassistant-stubs/components/wemo/light.pyi +1 -2
  717. homeassistant-stubs/components/wemo/models.pyi +0 -2
  718. homeassistant-stubs/components/wemo/sensor.pyi +0 -1
  719. homeassistant-stubs/components/wemo/wemo_device.pyi +1 -4
  720. homeassistant-stubs/components/whois/sensor.pyi +1 -4
  721. homeassistant-stubs/components/wiz/entity.pyi +2 -2
  722. homeassistant-stubs/components/wiz/models.pyi +0 -1
  723. homeassistant-stubs/components/wiz/number.pyi +0 -2
  724. homeassistant-stubs/components/wled/helpers.pyi +3 -2
  725. homeassistant-stubs/components/wled/models.pyi +1 -2
  726. homeassistant-stubs/components/wled/number.pyi +0 -2
  727. homeassistant-stubs/components/wled/sensor.pyi +0 -2
  728. homeassistant-stubs/components/yale_smart_alarm/__init__.pyi +4 -1
  729. homeassistant-stubs/components/yale_smart_alarm/config_flow.pyi +1 -1
  730. homeassistant-stubs/components/yale_smart_alarm/coordinator.pyi +1 -1
  731. homeassistant-stubs/components/yale_smart_alarm/entity.pyi +2 -2
  732. homeassistant-stubs/components/yale_smart_alarm/lock.pyi +1 -1
  733. homeassistant-stubs/components/yalexs_ble/entity.pyi +2 -1
  734. homeassistant-stubs/components/yalexs_ble/models.pyi +0 -1
  735. homeassistant-stubs/components/yalexs_ble/sensor.pyi +0 -2
  736. homeassistant-stubs/components/zeroconf/__init__.pyi +0 -1
  737. homeassistant-stubs/components/zodiac/sensor.pyi +1 -2
  738. homeassistant-stubs/components/zwave_js/__init__.pyi +2 -0
  739. homeassistant-stubs/components/zwave_js/api.pyi +1 -1
  740. homeassistant-stubs/components/zwave_js/binary_sensor.pyi +0 -3
  741. homeassistant-stubs/components/zwave_js/device_action.pyi +2 -2
  742. homeassistant-stubs/components/zwave_js/device_automation_helpers.pyi +1 -4
  743. homeassistant-stubs/components/zwave_js/device_condition.pyi +2 -2
  744. homeassistant-stubs/components/zwave_js/diagnostics.pyi +2 -2
  745. homeassistant-stubs/components/zwave_js/discovery.pyi +0 -5
  746. homeassistant-stubs/components/zwave_js/discovery_data_template.pyi +0 -12
  747. homeassistant-stubs/components/zwave_js/entity.pyi +4 -3
  748. homeassistant-stubs/components/zwave_js/helpers.pyi +1 -4
  749. homeassistant-stubs/components/zwave_js/humidifier.pyi +0 -2
  750. homeassistant-stubs/components/zwave_js/migrate.pyi +0 -1
  751. homeassistant-stubs/components/zwave_js/repairs.pyi +15 -0
  752. homeassistant-stubs/components/zwave_js/sensor.pyi +21 -2
  753. homeassistant-stubs/components/zwave_js/services.pyi +0 -1
  754. homeassistant-stubs/components/zwave_js/update.pyi +0 -1
  755. homeassistant-stubs/config_entries.pyi +3 -0
  756. homeassistant-stubs/const.pyi +2 -0
  757. homeassistant-stubs/core.pyi +6 -5
  758. homeassistant-stubs/data_entry_flow.pyi +7 -4
  759. homeassistant-stubs/exceptions.pyi +0 -4
  760. homeassistant-stubs/helpers/collection.pyi +0 -1
  761. homeassistant-stubs/helpers/deprecation.pyi +3 -2
  762. homeassistant-stubs/helpers/device_registry.pyi +18 -2
  763. homeassistant-stubs/helpers/entity.pyi +4 -22
  764. homeassistant-stubs/helpers/entity_registry.pyi +1 -2
  765. homeassistant-stubs/helpers/event.pyi +5 -7
  766. homeassistant-stubs/helpers/integration_platform.pyi +0 -1
  767. homeassistant-stubs/helpers/intent.pyi +0 -1
  768. homeassistant-stubs/helpers/issue_registry.pyi +3 -3
  769. homeassistant-stubs/helpers/recorder.pyi +0 -1
  770. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +6 -7
  771. homeassistant-stubs/helpers/script.pyi +7 -2
  772. homeassistant-stubs/helpers/selector.pyi +1 -0
  773. homeassistant-stubs/helpers/sensor.pyi +1 -1
  774. homeassistant-stubs/helpers/service.pyi +0 -1
  775. homeassistant-stubs/helpers/service_info/mqtt.pyi +0 -1
  776. homeassistant-stubs/helpers/storage.pyi +2 -1
  777. homeassistant-stubs/helpers/template.pyi +9 -15
  778. homeassistant-stubs/helpers/trigger.pyi +0 -1
  779. homeassistant-stubs/helpers/trigger_template_entity.pyi +62 -0
  780. homeassistant-stubs/helpers/update_coordinator.pyi +7 -1
  781. homeassistant-stubs/loader.pyi +3 -2
  782. homeassistant-stubs/runner.pyi +0 -2
  783. homeassistant-stubs/scripts/check_config.pyi +1 -1
  784. homeassistant-stubs/util/async_.pyi +2 -2
  785. homeassistant-stubs/util/language.pyi +0 -2
  786. homeassistant-stubs/util/pil.pyi +1 -1
  787. homeassistant-stubs/util/variance.pyi +3 -2
  788. homeassistant-stubs/util/yaml/objects.pyi +0 -1
  789. {homeassistant_stubs-2023.8.3.dist-info → homeassistant_stubs-2023.9.0.dist-info}/METADATA +3 -3
  790. {homeassistant_stubs-2023.8.3.dist-info → homeassistant_stubs-2023.9.0.dist-info}/RECORD +792 -721
  791. homeassistant-stubs/components/nest/binary_sensor.pyi +0 -7
  792. homeassistant-stubs/helpers/template_entity.pyi +0 -107
  793. {homeassistant_stubs-2023.8.3.dist-info → homeassistant_stubs-2023.9.0.dist-info}/LICENSE +0 -0
  794. {homeassistant_stubs-2023.8.3.dist-info → homeassistant_stubs-2023.9.0.dist-info}/WHEEL +0 -0
@@ -1,10 +1,10 @@
1
1
  from .const import DOMAIN as DOMAIN
2
2
  from .error import PipelineNotFound as PipelineNotFound
3
- from .pipeline import Pipeline as Pipeline, PipelineEvent as PipelineEvent, PipelineEventCallback, PipelineEventType as PipelineEventType, async_create_default_pipeline as async_create_default_pipeline, async_get_pipelines as async_get_pipelines
3
+ from .pipeline import Pipeline as Pipeline, PipelineEvent as PipelineEvent, PipelineEventCallback, PipelineEventType as PipelineEventType, PipelineStage, WakeWordSettings as WakeWordSettings, async_create_default_pipeline as async_create_default_pipeline, async_get_pipelines as async_get_pipelines
4
4
  from collections.abc import AsyncIterable
5
5
  from homeassistant.components import stt
6
6
  from homeassistant.core import Context, HomeAssistant
7
7
  from homeassistant.helpers.typing import ConfigType
8
8
 
9
9
  async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
10
- async def async_pipeline_from_audio_stream(hass: HomeAssistant, context: Context, event_callback: PipelineEventCallback, stt_metadata: stt.SpeechMetadata, stt_stream: AsyncIterable[bytes], pipeline_id: str | None = ..., conversation_id: str | None = ..., tts_audio_output: str | None = ..., device_id: str | None = ...) -> None: ...
10
+ async def async_pipeline_from_audio_stream(hass: HomeAssistant, *, context: Context, event_callback: PipelineEventCallback, stt_metadata: stt.SpeechMetadata, stt_stream: AsyncIterable[bytes], pipeline_id: str | None = ..., conversation_id: str | None = ..., tts_audio_output: str | None = ..., wake_word_settings: WakeWordSettings | None = ..., device_id: str | None = ..., start_stage: PipelineStage = ..., end_stage: PipelineStage = ...) -> None: ...
@@ -1 +1,4 @@
1
+ from _typeshed import Incomplete
2
+
1
3
  DOMAIN: str
4
+ DATA_CONFIG: Incomplete
@@ -7,6 +7,8 @@ class PipelineError(HomeAssistantError):
7
7
  def __init__(self, code: str, message: str) -> None: ...
8
8
 
9
9
  class PipelineNotFound(PipelineError): ...
10
+ class WakeWordDetectionError(PipelineError): ...
11
+ class WakeWordTimeoutError(WakeWordDetectionError): ...
10
12
  class SpeechToTextError(PipelineError): ...
11
13
  class IntentRecognitionError(PipelineError): ...
12
14
  class TextToSpeechError(PipelineError): ...
@@ -1,15 +1,20 @@
1
- from .const import DOMAIN as DOMAIN
2
- from .error import IntentRecognitionError as IntentRecognitionError, PipelineError as PipelineError, PipelineNotFound as PipelineNotFound, SpeechToTextError as SpeechToTextError, TextToSpeechError as TextToSpeechError
1
+ from .const import DATA_CONFIG as DATA_CONFIG, DOMAIN as DOMAIN
2
+ from .error import IntentRecognitionError as IntentRecognitionError, PipelineError as PipelineError, PipelineNotFound as PipelineNotFound, SpeechToTextError as SpeechToTextError, TextToSpeechError as TextToSpeechError, WakeWordDetectionError as WakeWordDetectionError, WakeWordTimeoutError as WakeWordTimeoutError
3
+ from .ring_buffer import RingBuffer as RingBuffer
4
+ from .vad import VoiceActivityTimeout as VoiceActivityTimeout, VoiceCommandSegmenter as VoiceCommandSegmenter
3
5
  from _typeshed import Incomplete
4
- from collections.abc import AsyncIterable, Callable, Iterable
6
+ from collections.abc import AsyncGenerator, AsyncIterable, Callable, Iterable
5
7
  from enum import StrEnum
6
- from homeassistant.components import conversation as conversation, media_source as media_source, stt as stt, tts as tts, websocket_api as websocket_api
8
+ from homeassistant.components import conversation as conversation, media_source as media_source, stt as stt, tts as tts, wake_word as wake_word, websocket_api as websocket_api
7
9
  from homeassistant.core import Context as Context, HomeAssistant as HomeAssistant, callback as callback
8
10
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
9
11
  from homeassistant.helpers.collection import CollectionError as CollectionError, ItemNotFound as ItemNotFound, SerializedStorageCollection as SerializedStorageCollection, StorageCollection as StorageCollection, StorageCollectionWebsocket as StorageCollectionWebsocket
10
12
  from homeassistant.helpers.singleton import singleton as singleton
11
13
  from homeassistant.helpers.storage import Store as Store
12
14
  from homeassistant.util.limited_size_dict import LimitedSizeDict as LimitedSizeDict
15
+ from pathlib import Path
16
+ from queue import Queue
17
+ from threading import Thread
13
18
  from typing import Any
14
19
 
15
20
  _LOGGER: Incomplete
@@ -32,7 +37,11 @@ def async_get_pipelines(hass: HomeAssistant) -> Iterable[Pipeline]: ...
32
37
  class PipelineEventType(StrEnum):
33
38
  RUN_START: str
34
39
  RUN_END: str
40
+ WAKE_WORD_START: str
41
+ WAKE_WORD_END: str
35
42
  STT_START: str
43
+ STT_VAD_START: str
44
+ STT_VAD_END: str
36
45
  STT_END: str
37
46
  INTENT_START: str
38
47
  INTENT_END: str
@@ -45,7 +54,6 @@ class PipelineEvent:
45
54
  data: dict[str, Any] | None
46
55
  timestamp: str
47
56
  def __init__(self, type, data, timestamp) -> None: ...
48
- def __mypy-replace(*, type, data, timestamp) -> None: ...
49
57
  PipelineEventCallback = Callable[[PipelineEvent], None]
50
58
 
51
59
  class Pipeline:
@@ -61,9 +69,9 @@ class Pipeline:
61
69
  id: str
62
70
  def to_json(self) -> dict[str, Any]: ...
63
71
  def __init__(self, conversation_engine, conversation_language, language, name, stt_engine, stt_language, tts_engine, tts_language, tts_voice, id) -> None: ...
64
- def __mypy-replace(*, conversation_engine, conversation_language, language, name, stt_engine, stt_language, tts_engine, tts_language, tts_voice, id) -> None: ...
65
72
 
66
73
  class PipelineStage(StrEnum):
74
+ WAKE_WORD: str
67
75
  STT: str
68
76
  INTENT: str
69
77
  TTS: str
@@ -75,6 +83,11 @@ class PipelineRunValidationError(Exception): ...
75
83
  class InvalidPipelineStagesError(PipelineRunValidationError):
76
84
  def __init__(self, start_stage: PipelineStage, end_stage: PipelineStage) -> None: ...
77
85
 
86
+ class WakeWordSettings:
87
+ timeout: float | None
88
+ audio_seconds_to_buffer: float
89
+ def __init__(self, timeout, audio_seconds_to_buffer) -> None: ...
90
+
78
91
  class PipelineRun:
79
92
  hass: HomeAssistant
80
93
  context: Context
@@ -86,23 +99,34 @@ class PipelineRun:
86
99
  runner_data: Any | None
87
100
  intent_agent: str | None
88
101
  tts_audio_output: str | None
102
+ wake_word_settings: WakeWordSettings | None
89
103
  id: str
90
104
  stt_provider: stt.SpeechToTextEntity | stt.Provider
91
105
  tts_engine: str
92
106
  tts_options: dict | None
107
+ wake_word_engine: str
108
+ wake_word_provider: wake_word.WakeWordDetectionEntity
109
+ debug_recording_thread: Thread | None
110
+ debug_recording_queue: Queue[str | bytes | None] | None
93
111
  def __post_init__(self) -> None: ...
94
112
  def process_event(self, event: PipelineEvent) -> None: ...
95
- def start(self) -> None: ...
96
- def end(self) -> None: ...
113
+ def start(self, device_id: str | None) -> None: ...
114
+ async def end(self) -> None: ...
115
+ async def prepare_wake_word_detection(self) -> None: ...
116
+ async def wake_word_detection(self, stream: AsyncIterable[bytes], audio_chunks_for_stt: list[bytes]) -> wake_word.DetectionResult | None: ...
117
+ async def _wake_word_audio_stream(self, audio_stream: AsyncIterable[bytes], stt_audio_buffer: RingBuffer | None, wake_word_vad: VoiceActivityTimeout | None, sample_rate: int = ..., sample_width: int = ...) -> AsyncIterable[tuple[bytes, int]]: ...
97
118
  async def prepare_speech_to_text(self, metadata: stt.SpeechMetadata) -> None: ...
98
119
  async def speech_to_text(self, metadata: stt.SpeechMetadata, stream: AsyncIterable[bytes]) -> str: ...
120
+ async def _speech_to_text_stream(self, audio_stream: AsyncIterable[bytes], stt_vad: VoiceCommandSegmenter | None, sample_rate: int = ..., sample_width: int = ...) -> AsyncGenerator[bytes, None]: ...
99
121
  async def prepare_recognize_intent(self) -> None: ...
100
122
  async def recognize_intent(self, intent_input: str, conversation_id: str | None, device_id: str | None) -> str: ...
101
123
  async def prepare_text_to_speech(self) -> None: ...
102
124
  async def text_to_speech(self, tts_input: str) -> str: ...
103
- def __init__(self, hass, context, pipeline, start_stage, end_stage, event_callback, language, runner_data, intent_agent, tts_audio_output, id) -> None: ...
104
- def __mypy-replace(*, hass, context, pipeline, start_stage, end_stage, event_callback, language, runner_data, intent_agent, tts_audio_output, id, stt_provider, tts_engine, tts_options) -> None: ...
105
- def __mypy-post_init(self) -> None: ...
125
+ def _start_debug_recording_thread(self, device_id: str | None) -> None: ...
126
+ async def _stop_debug_recording_thread(self) -> None: ...
127
+ def __init__(self, hass, context, pipeline, start_stage, end_stage, event_callback, language, runner_data, intent_agent, tts_audio_output, wake_word_settings, id, debug_recording_thread, debug_recording_queue) -> None: ...
128
+
129
+ def _pipeline_debug_recording_thread_proc(run_recording_dir: Path, queue: Queue[str | bytes | None], message_timeout: float = ...) -> None: ...
106
130
 
107
131
  class PipelineInput:
108
132
  run: PipelineRun
@@ -115,7 +139,6 @@ class PipelineInput:
115
139
  async def execute(self) -> None: ...
116
140
  async def validate(self) -> None: ...
117
141
  def __init__(self, run, stt_metadata, stt_stream, intent_input, tts_input, conversation_id, device_id) -> None: ...
118
- def __mypy-replace(*, run, stt_metadata, stt_stream, intent_input, tts_input, conversation_id, device_id) -> None: ...
119
142
 
120
143
  class PipelinePreferred(CollectionError):
121
144
  item_id: Incomplete
@@ -150,12 +173,10 @@ class PipelineData:
150
173
  pipeline_store: PipelineStorageCollection
151
174
  pipeline_devices: set[str]
152
175
  def __init__(self, pipeline_runs, pipeline_store) -> None: ...
153
- def __mypy-replace(*, pipeline_runs, pipeline_store, pipeline_devices) -> None: ...
154
176
 
155
177
  class PipelineRunDebug:
156
178
  events: list[PipelineEvent]
157
179
  timestamp: str
158
180
  def __init__(self) -> None: ...
159
- def __mypy-replace(*, events, timestamp) -> None: ...
160
181
 
161
182
  async def async_setup_pipeline_store(hass: HomeAssistant) -> PipelineData: ...
@@ -0,0 +1,15 @@
1
+ from _typeshed import Incomplete
2
+
3
+ class RingBuffer:
4
+ _buffer: Incomplete
5
+ _pos: int
6
+ _length: int
7
+ _maxlen: Incomplete
8
+ def __init__(self, maxlen: int) -> None: ...
9
+ @property
10
+ def maxlen(self) -> int: ...
11
+ @property
12
+ def pos(self) -> int: ...
13
+ def __len__(self) -> int: ...
14
+ def put(self, data: bytes) -> None: ...
15
+ def getvalue(self) -> bytes: ...
@@ -1,7 +1,11 @@
1
1
  import webrtcvad
2
+ from _typeshed import Incomplete
3
+ from collections.abc import Iterable
2
4
  from enum import StrEnum
5
+ from typing import Final
3
6
 
4
- _SAMPLE_RATE: int
7
+ _SAMPLE_RATE: Final[int]
8
+ _SAMPLE_WIDTH: Final[int]
5
9
 
6
10
  class VadSensitivity(StrEnum):
7
11
  DEFAULT: str
@@ -10,9 +14,21 @@ class VadSensitivity(StrEnum):
10
14
  @staticmethod
11
15
  def to_seconds(sensitivity: VadSensitivity | str) -> float: ...
12
16
 
17
+ class AudioBuffer:
18
+ _buffer: Incomplete
19
+ _length: int
20
+ def __init__(self, maxlen: int) -> None: ...
21
+ @property
22
+ def length(self) -> int: ...
23
+ def clear(self) -> None: ...
24
+ def append(self, data: bytes) -> None: ...
25
+ def bytes(self) -> bytes: ...
26
+ def __len__(self) -> int: ...
27
+ def __bool__(self) -> bool: ...
28
+
13
29
  class VoiceCommandSegmenter:
14
30
  vad_mode: int
15
- vad_frames: int
31
+ vad_samples_per_chunk: int
16
32
  speech_seconds: float
17
33
  silence_seconds: float
18
34
  timeout_seconds: float
@@ -23,13 +39,32 @@ class VoiceCommandSegmenter:
23
39
  _timeout_seconds_left: float
24
40
  _reset_seconds_left: float
25
41
  _vad: webrtcvad.Vad
26
- _audio_buffer: bytes
42
+ _leftover_chunk_buffer: AudioBuffer
27
43
  _bytes_per_chunk: int
28
44
  _seconds_per_chunk: float
29
45
  def __post_init__(self) -> None: ...
30
46
  def reset(self) -> None: ...
31
47
  def process(self, samples: bytes) -> bool: ...
48
+ @property
49
+ def audio_buffer(self) -> bytes: ...
32
50
  def _process_chunk(self, chunk: bytes) -> bool: ...
33
- def __init__(self, vad_mode, vad_frames, speech_seconds, silence_seconds, timeout_seconds, reset_seconds, in_command, _speech_seconds_left, _silence_seconds_left, _timeout_seconds_left, _reset_seconds_left, _vad, _audio_buffer, _bytes_per_chunk, _seconds_per_chunk) -> None: ...
34
- def __mypy-replace(*, vad_mode, vad_frames, speech_seconds, silence_seconds, timeout_seconds, reset_seconds, in_command, _speech_seconds_left, _silence_seconds_left, _timeout_seconds_left, _reset_seconds_left, _vad, _audio_buffer, _bytes_per_chunk, _seconds_per_chunk) -> None: ...
35
- def __mypy-post_init(self) -> None: ...
51
+ def __init__(self, vad_mode, vad_samples_per_chunk, speech_seconds, silence_seconds, timeout_seconds, reset_seconds, in_command, _speech_seconds_left, _silence_seconds_left, _timeout_seconds_left, _reset_seconds_left, _vad) -> None: ...
52
+
53
+ class VoiceActivityTimeout:
54
+ silence_seconds: float
55
+ reset_seconds: float
56
+ vad_mode: int
57
+ vad_samples_per_chunk: int
58
+ _silence_seconds_left: float
59
+ _reset_seconds_left: float
60
+ _vad: webrtcvad.Vad
61
+ _leftover_chunk_buffer: AudioBuffer
62
+ _bytes_per_chunk: int
63
+ _seconds_per_chunk: float
64
+ def __post_init__(self) -> None: ...
65
+ def reset(self) -> None: ...
66
+ def process(self, samples: bytes) -> bool: ...
67
+ def _process_chunk(self, chunk: bytes) -> bool: ...
68
+ def __init__(self, silence_seconds, reset_seconds, vad_mode, vad_samples_per_chunk, _silence_seconds_left, _reset_seconds_left, _vad) -> None: ...
69
+
70
+ def chunk_samples(samples: bytes, bytes_per_chunk: int, leftover_chunk_buffer: AudioBuffer) -> Iterable[bytes]: ...
@@ -1,7 +1,6 @@
1
1
  from .const import DOMAIN as DOMAIN
2
2
  from .error import PipelineNotFound as PipelineNotFound
3
- from .pipeline import PipelineData as PipelineData, PipelineError as PipelineError, PipelineEvent as PipelineEvent, PipelineEventType as PipelineEventType, PipelineInput as PipelineInput, PipelineRun as PipelineRun, PipelineStage as PipelineStage, async_get_pipeline as async_get_pipeline
4
- from .vad import VoiceCommandSegmenter as VoiceCommandSegmenter
3
+ from .pipeline import PipelineData as PipelineData, PipelineError as PipelineError, PipelineEvent as PipelineEvent, PipelineEventType as PipelineEventType, PipelineInput as PipelineInput, PipelineRun as PipelineRun, PipelineStage as PipelineStage, WakeWordSettings as WakeWordSettings, async_get_pipeline as async_get_pipeline
5
4
  from _typeshed import Incomplete
6
5
  from collections.abc import Callable as Callable
7
6
  from homeassistant.components import conversation as conversation, stt as stt, tts as tts, websocket_api as websocket_api
@@ -10,6 +9,7 @@ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callb
10
9
  from typing import Any
11
10
 
12
11
  DEFAULT_TIMEOUT: int
12
+ DEFAULT_WAKE_WORD_TIMEOUT: int
13
13
  _LOGGER: Incomplete
14
14
 
15
15
  def async_register_websocket_api(hass: HomeAssistant) -> None: ...
@@ -7,9 +7,8 @@ from homeassistant.components.device_tracker import CONF_CONSIDER_HOME as CONF_C
7
7
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
8
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HomeAssistant as HomeAssistant, callback as callback
9
9
  from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
10
- from homeassistant.helpers.device_registry import format_mac as format_mac
10
+ from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo, format_mac as format_mac
11
11
  from homeassistant.helpers.dispatcher import async_dispatcher_send as async_dispatcher_send
12
- from homeassistant.helpers.entity import DeviceInfo as DeviceInfo
13
12
  from homeassistant.helpers.event import async_track_time_interval as async_track_time_interval
14
13
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
15
14
  from homeassistant.util import slugify as slugify
@@ -12,7 +12,6 @@ from homeassistant.util import slugify as slugify
12
12
  class AsusWrtSensorEntityDescription(SensorEntityDescription):
13
13
  factor: int | None
14
14
  def __init__(self, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, unit_of_measurement, last_reset, native_unit_of_measurement, options, state_class, suggested_display_precision, suggested_unit_of_measurement, factor) -> None: ...
15
- def __mypy-replace(*, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, unit_of_measurement, last_reset, native_unit_of_measurement, options, state_class, suggested_display_precision, suggested_unit_of_measurement, factor) -> None: ...
16
15
 
17
16
  UNIT_DEVICES: str
18
17
  CONNECTION_SENSORS: tuple[AsusWrtSensorEntityDescription, ...]
@@ -3,7 +3,7 @@ from _typeshed import Incomplete
3
3
  from aiohttp import web
4
4
  from collections.abc import Callable
5
5
  from homeassistant.auth import InvalidAuthError as InvalidAuthError
6
- from homeassistant.auth.models import Credentials as Credentials, TOKEN_TYPE_LONG_LIVED_ACCESS_TOKEN as TOKEN_TYPE_LONG_LIVED_ACCESS_TOKEN, User as User
6
+ from homeassistant.auth.models import Credentials as Credentials, RefreshToken as RefreshToken, TOKEN_TYPE_LONG_LIVED_ACCESS_TOKEN as TOKEN_TYPE_LONG_LIVED_ACCESS_TOKEN, User as User
7
7
  from homeassistant.components import websocket_api as websocket_api
8
8
  from homeassistant.components.http.auth import async_sign_path as async_sign_path, async_user_not_allowed_do_auth as async_user_not_allowed_do_auth
9
9
  from homeassistant.components.http.ban import log_invalid_auth as log_invalid_auth
@@ -54,4 +54,5 @@ async def websocket_current_user(hass: HomeAssistant, connection: websocket_api.
54
54
  async def websocket_create_long_lived_access_token(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
55
55
  def websocket_refresh_tokens(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
56
56
  async def websocket_delete_refresh_token(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
57
+ async def websocket_delete_all_refresh_tokens(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
57
58
  def websocket_sign_path(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
@@ -146,7 +146,6 @@ class AutomationEntityConfig:
146
146
  raw_config: ConfigType | None
147
147
  validation_failed: bool
148
148
  def __init__(self, config_block, list_no, raw_blueprint_inputs, raw_config, validation_failed) -> None: ...
149
- def __mypy-replace(*, config_block, list_no, raw_blueprint_inputs, raw_config, validation_failed) -> None: ...
150
149
 
151
150
  async def _prepare_automation_config(hass: HomeAssistant, config: ConfigType) -> list[AutomationEntityConfig]: ...
152
151
  def _automation_name(automation_config: AutomationEntityConfig) -> str: ...
@@ -21,7 +21,6 @@ class AwairResult:
21
21
  device: AwairBaseDevice
22
22
  air_data: AirData
23
23
  def __init__(self, device, air_data) -> None: ...
24
- def __mypy-replace(*, device, air_data) -> None: ...
25
24
 
26
25
  class AwairDataUpdateCoordinator(DataUpdateCoordinator[dict[str, AwairResult]]):
27
26
  _config_entry: Incomplete
@@ -5,7 +5,7 @@ from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceCla
5
5
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
6
  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
7
  from homeassistant.core import HomeAssistant as HomeAssistant
8
- from homeassistant.helpers.entity import DeviceInfo as DeviceInfo
8
+ from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
9
9
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
10
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
11
11
  from python_awair.air_data import AirData as AirData
@@ -17,11 +17,9 @@ DUST_ALIASES: Incomplete
17
17
  class AwairRequiredKeysMixin:
18
18
  unique_id_tag: str
19
19
  def __init__(self, unique_id_tag) -> None: ...
20
- def __mypy-replace(*, unique_id_tag) -> None: ...
21
20
 
22
21
  class AwairSensorEntityDescription(SensorEntityDescription, AwairRequiredKeysMixin):
23
22
  def __init__(self, unique_id_tag, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, unit_of_measurement, last_reset, native_unit_of_measurement, options, state_class, suggested_display_precision, suggested_unit_of_measurement) -> None: ...
24
- def __mypy-replace(*, unique_id_tag, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, unit_of_measurement, last_reset, native_unit_of_measurement, options, state_class, suggested_display_precision, suggested_unit_of_measurement) -> None: ...
25
23
 
26
24
  SENSOR_TYPE_SCORE: Incomplete
27
25
  SENSOR_TYPES: tuple[AwairSensorEntityDescription, ...]
@@ -18,7 +18,6 @@ class Backup:
18
18
  size: float
19
19
  def as_dict(self) -> dict: ...
20
20
  def __init__(self, slug, name, date, path, size) -> None: ...
21
- def __mypy-replace(*, slug, name, date, path, size) -> None: ...
22
21
 
23
22
  class BackupPlatformProtocol(Protocol):
24
23
  async def async_pre_backup(self, hass: HomeAssistant) -> None: ...
@@ -12,11 +12,9 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEnti
12
12
  class BAFBinarySensorDescriptionMixin:
13
13
  value_fn: Callable[[Device], bool | None]
14
14
  def __init__(self, value_fn) -> None: ...
15
- def __mypy-replace(*, value_fn) -> None: ...
16
15
 
17
16
  class BAFBinarySensorDescription(BinarySensorEntityDescription, BAFBinarySensorDescriptionMixin):
18
17
  def __init__(self, value_fn, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, unit_of_measurement) -> None: ...
19
- def __mypy-replace(*, value_fn, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, unit_of_measurement) -> None: ...
20
18
 
21
19
  OCCUPANCY_SENSORS: Incomplete
22
20
 
@@ -1,8 +1,8 @@
1
1
  from _typeshed import Incomplete
2
2
  from aiobafi6 import Device as Device
3
3
  from homeassistant.core import callback as callback
4
- from homeassistant.helpers.device_registry import format_mac as format_mac
5
- from homeassistant.helpers.entity import DeviceInfo as DeviceInfo, Entity as Entity
4
+ from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo, format_mac as format_mac
5
+ from homeassistant.helpers.entity import Entity as Entity
6
6
 
7
7
  class BAFEntity(Entity):
8
8
  _attr_should_poll: bool
@@ -13,6 +13,7 @@ from typing import Any
13
13
  async def async_setup_entry(hass: HomeAssistant, entry: config_entries.ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
14
14
 
15
15
  class BAFLight(BAFEntity, LightEntity):
16
+ _attr_name: Incomplete
16
17
  _attr_is_on: Incomplete
17
18
  _attr_brightness: Incomplete
18
19
  def _async_update_attrs(self) -> None: ...
@@ -20,10 +21,8 @@ class BAFLight(BAFEntity, LightEntity):
20
21
  async def async_turn_off(self, **kwargs: Any) -> None: ...
21
22
 
22
23
  class BAFFanLight(BAFLight):
23
- _attr_name: Incomplete
24
24
  _attr_supported_color_modes: Incomplete
25
25
  _attr_color_mode: Incomplete
26
- def __init__(self, device: Device) -> None: ...
27
26
 
28
27
  class BAFStandaloneLight(BAFLight):
29
28
  _attr_supported_color_modes: Incomplete
@@ -5,7 +5,6 @@ class BAFData:
5
5
  device: Device
6
6
  run_future: asyncio.Future
7
7
  def __init__(self, device, run_future) -> None: ...
8
- def __mypy-replace(*, device, run_future) -> None: ...
9
8
 
10
9
  class BAFDiscovery:
11
10
  ip_address: str
@@ -13,4 +12,3 @@ class BAFDiscovery:
13
12
  uuid: str
14
13
  model: str
15
14
  def __init__(self, ip_address, name, uuid, model) -> None: ...
16
- def __mypy-replace(*, ip_address, name, uuid, model) -> None: ...
@@ -13,11 +13,9 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEnti
13
13
  class BAFNumberDescriptionMixin:
14
14
  value_fn: Callable[[Device], int | None]
15
15
  def __init__(self, value_fn) -> None: ...
16
- def __mypy-replace(*, value_fn) -> None: ...
17
16
 
18
17
  class BAFNumberDescription(NumberEntityDescription, BAFNumberDescriptionMixin):
19
18
  def __init__(self, value_fn, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, unit_of_measurement, max_value, min_value, mode, native_max_value, native_min_value, native_step, native_unit_of_measurement, step) -> None: ...
20
- def __mypy-replace(*, value_fn, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, unit_of_measurement, max_value, min_value, mode, native_max_value, native_min_value, native_step, native_unit_of_measurement, step) -> None: ...
21
19
 
22
20
  AUTO_COMFORT_NUMBER_DESCRIPTIONS: Incomplete
23
21
  FAN_NUMBER_DESCRIPTIONS: Incomplete
@@ -13,11 +13,9 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEnti
13
13
  class BAFSensorDescriptionMixin:
14
14
  value_fn: Callable[[Device], int | float | str | None]
15
15
  def __init__(self, value_fn) -> None: ...
16
- def __mypy-replace(*, value_fn) -> None: ...
17
16
 
18
17
  class BAFSensorDescription(SensorEntityDescription, BAFSensorDescriptionMixin):
19
18
  def __init__(self, value_fn, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, unit_of_measurement, last_reset, native_unit_of_measurement, options, state_class, suggested_display_precision, suggested_unit_of_measurement) -> None: ...
20
- def __mypy-replace(*, value_fn, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, unit_of_measurement, last_reset, native_unit_of_measurement, options, state_class, suggested_display_precision, suggested_unit_of_measurement) -> None: ...
21
19
 
22
20
  AUTO_COMFORT_SENSORS: Incomplete
23
21
  DEFINED_ONLY_SENSORS: Incomplete
@@ -14,11 +14,9 @@ from typing import Any
14
14
  class BAFSwitchDescriptionMixin:
15
15
  value_fn: Callable[[Device], bool | None]
16
16
  def __init__(self, value_fn) -> None: ...
17
- def __mypy-replace(*, value_fn) -> None: ...
18
17
 
19
18
  class BAFSwitchDescription(SwitchEntityDescription, BAFSwitchDescriptionMixin):
20
19
  def __init__(self, value_fn, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, unit_of_measurement) -> None: ...
21
- def __mypy-replace(*, value_fn, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, unit_of_measurement) -> None: ...
22
20
 
23
21
  BASE_SWITCHES: Incomplete
24
22
  AUTO_COMFORT_SWITCHES: Incomplete
@@ -19,4 +19,3 @@ class Observation:
19
19
  @property
20
20
  def template(self) -> str | None: ...
21
21
  def __init__(self, entity_id, platform, prob_given_true, prob_given_false, to_state, above, below, value_template, observed, id) -> None: ...
22
- def __mypy-replace(*, entity_id, platform, prob_given_true, prob_given_false, to_state, above, below, value_template, observed, id) -> None: ...
@@ -82,7 +82,6 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: .
82
82
  class BinarySensorEntityDescription(EntityDescription):
83
83
  device_class: BinarySensorDeviceClass | None
84
84
  def __init__(self, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, unit_of_measurement) -> None: ...
85
- def __mypy-replace(*, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, unit_of_measurement) -> None: ...
86
85
 
87
86
  class BinarySensorEntity(Entity):
88
87
  entity_description: BinarySensorEntityDescription
@@ -23,7 +23,6 @@ class BluetoothScannerDevice:
23
23
  ble_device: BLEDevice
24
24
  advertisement: AdvertisementData
25
25
  def __init__(self, scanner, ble_device, advertisement) -> None: ...
26
- def __mypy-replace(*, scanner, ble_device, advertisement) -> None: ...
27
26
 
28
27
  class BaseHaScanner(ABC, metaclass=abc.ABCMeta):
29
28
  __slots__: Incomplete
@@ -33,7 +33,6 @@ class IntegrationMatchHistory:
33
33
  service_data: set[str]
34
34
  service_uuids: set[str]
35
35
  def __init__(self, manufacturer_data, service_data, service_uuids) -> None: ...
36
- def __mypy-replace(*, manufacturer_data, service_data, service_uuids) -> None: ...
37
36
 
38
37
  def seen_all_fields(previous_match: IntegrationMatchHistory, advertisement_data: AdvertisementData) -> bool: ...
39
38
 
@@ -15,7 +15,6 @@ class HaBluetoothConnector:
15
15
  source: str
16
16
  can_connect: Callable[[], bool]
17
17
  def __init__(self, client, source, can_connect) -> None: ...
18
- def __mypy-replace(*, client, source, can_connect) -> None: ...
19
18
 
20
19
  class BluetoothScanningMode(Enum):
21
20
  PASSIVE: str
@@ -1,57 +1,96 @@
1
1
  import logging
2
- from . import BluetoothChange as BluetoothChange, BluetoothScanningMode as BluetoothScanningMode, BluetoothServiceInfoBleak as BluetoothServiceInfoBleak
3
2
  from .const import DOMAIN as DOMAIN
3
+ from .models import BluetoothChange as BluetoothChange, BluetoothScanningMode as BluetoothScanningMode, BluetoothServiceInfoBleak as BluetoothServiceInfoBleak
4
4
  from .update_coordinator import BasePassiveBluetoothCoordinator as BasePassiveBluetoothCoordinator
5
5
  from _typeshed import Incomplete
6
- from collections.abc import Callable as Callable, Mapping
7
- from homeassistant.const import ATTR_IDENTIFIERS as ATTR_IDENTIFIERS, ATTR_NAME as ATTR_NAME
8
- from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
- from homeassistant.helpers.entity import DeviceInfo as DeviceInfo, Entity as Entity, EntityDescription as EntityDescription
10
- from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
- from typing import Any, Generic, TypeVar
6
+ from collections.abc import Callable as Callable
7
+ from homeassistant import config_entries as config_entries
8
+ from homeassistant.const import ATTR_IDENTIFIERS as ATTR_IDENTIFIERS, ATTR_NAME as ATTR_NAME, CONF_ENTITY_CATEGORY as CONF_ENTITY_CATEGORY, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP, EntityCategory as EntityCategory
9
+ from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Event as Event, HomeAssistant as HomeAssistant, callback as callback
10
+ from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
11
+ from homeassistant.helpers.entity import Entity as Entity, EntityDescription as EntityDescription
12
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback, async_get_current_platform as async_get_current_platform
13
+ from homeassistant.helpers.event import async_track_time_interval as async_track_time_interval
14
+ from homeassistant.helpers.storage import Store as Store
15
+ from homeassistant.util.enum import try_parse_enum as try_parse_enum
16
+ from typing import Any, Generic, TypeVar, TypedDict
17
+
18
+ STORAGE_KEY: str
19
+ STORAGE_VERSION: int
20
+ STORAGE_SAVE_INTERVAL: Incomplete
21
+ PASSIVE_UPDATE_PROCESSOR: str
22
+ _T = TypeVar('_T')
12
23
 
13
24
  class PassiveBluetoothEntityKey:
14
25
  key: str
15
26
  device_id: str | None
27
+ def to_string(self) -> str: ...
28
+ @classmethod
29
+ def from_string(cls, key: str) -> PassiveBluetoothEntityKey: ...
16
30
  def __init__(self, key, device_id) -> None: ...
17
- def __mypy-replace(*, key, device_id) -> None: ...
18
- _T = TypeVar('_T')
31
+
32
+ class PassiveBluetoothProcessorData:
33
+ coordinators: set[PassiveBluetoothProcessorCoordinator]
34
+ all_restore_data: dict[str, dict[str, RestoredPassiveBluetoothDataUpdate]]
35
+ def __init__(self, coordinators, all_restore_data) -> None: ...
36
+
37
+ class RestoredPassiveBluetoothDataUpdate(TypedDict):
38
+ devices: dict[str, DeviceInfo]
39
+ entity_descriptions: dict[str, dict[str, Any]]
40
+ entity_names: dict[str, str | None]
41
+ entity_data: dict[str, Any]
42
+
43
+ cached_fields: Incomplete
44
+
45
+ def deserialize_entity_description(descriptions_class: type[EntityDescription], data: dict[str, Any]) -> EntityDescription: ...
46
+ def serialize_entity_description(description: EntityDescription) -> dict[str, Any]: ...
19
47
 
20
48
  class PassiveBluetoothDataUpdate(Generic[_T]):
21
49
  devices: dict[str | None, DeviceInfo]
22
- entity_descriptions: Mapping[PassiveBluetoothEntityKey, EntityDescription]
23
- entity_names: Mapping[PassiveBluetoothEntityKey, str | None]
24
- entity_data: Mapping[PassiveBluetoothEntityKey, _T]
50
+ entity_descriptions: dict[PassiveBluetoothEntityKey, EntityDescription]
51
+ entity_names: dict[PassiveBluetoothEntityKey, str | None]
52
+ entity_data: dict[PassiveBluetoothEntityKey, _T]
53
+ def update(self, new_data: PassiveBluetoothDataUpdate[_T]) -> None: ...
54
+ def async_get_restore_data(self) -> RestoredPassiveBluetoothDataUpdate: ...
55
+ def async_set_restore_data(self, restore_data: RestoredPassiveBluetoothDataUpdate, entity_description_class: type[EntityDescription]) -> None: ...
25
56
  def __init__(self, devices, entity_descriptions, entity_names, entity_data) -> None: ...
26
- def __mypy-replace(*, devices, entity_descriptions, entity_names, entity_data) -> None: ...
57
+
58
+ def async_register_coordinator_for_restore(hass: HomeAssistant, coordinator: PassiveBluetoothProcessorCoordinator) -> CALLBACK_TYPE: ...
59
+ async def async_setup(hass: HomeAssistant) -> None: ...
27
60
 
28
61
  class PassiveBluetoothProcessorCoordinator(BasePassiveBluetoothCoordinator, Generic[_T]):
29
62
  _processors: Incomplete
30
63
  _update_method: Incomplete
31
64
  last_update_success: bool
65
+ restore_data: Incomplete
66
+ restore_key: Incomplete
32
67
  def __init__(self, hass: HomeAssistant, logger: logging.Logger, address: str, mode: BluetoothScanningMode, update_method: Callable[[BluetoothServiceInfoBleak], _T], connectable: bool = ...) -> None: ...
33
68
  @property
34
69
  def available(self) -> bool: ...
35
- def async_register_processor(self, processor: PassiveBluetoothDataProcessor) -> Callable[[], None]: ...
70
+ def async_get_restore_data(self) -> dict[str, RestoredPassiveBluetoothDataUpdate]: ...
71
+ def async_register_processor(self, processor: PassiveBluetoothDataProcessor, entity_description_class: type[EntityDescription] | None = ...) -> Callable[[], None]: ...
36
72
  def _async_handle_unavailable(self, service_info: BluetoothServiceInfoBleak) -> None: ...
37
73
  def _async_handle_bluetooth_event(self, service_info: BluetoothServiceInfoBleak, change: BluetoothChange) -> None: ...
38
74
  _PassiveBluetoothDataProcessorT = TypeVar('_PassiveBluetoothDataProcessorT', bound='PassiveBluetoothDataProcessor[Any]')
39
75
 
40
76
  class PassiveBluetoothDataProcessor(Generic[_T]):
41
77
  coordinator: PassiveBluetoothProcessorCoordinator
78
+ data: PassiveBluetoothDataUpdate[_T]
79
+ entity_names: dict[PassiveBluetoothEntityKey, str | None]
80
+ entity_data: dict[PassiveBluetoothEntityKey, _T]
81
+ entity_descriptions: dict[PassiveBluetoothEntityKey, EntityDescription]
82
+ devices: dict[str | None, DeviceInfo]
83
+ restore_key: str | None
42
84
  _listeners: Incomplete
43
85
  _entity_key_listeners: Incomplete
44
86
  update_method: Incomplete
45
- entity_names: Incomplete
46
- entity_data: Incomplete
47
- entity_descriptions: Incomplete
48
- devices: Incomplete
49
87
  last_update_success: bool
50
- def __init__(self, update_method: Callable[[_T], PassiveBluetoothDataUpdate[_T]]) -> None: ...
88
+ def __init__(self, update_method: Callable[[_T], PassiveBluetoothDataUpdate[_T]], restore_key: str | None = ...) -> None: ...
89
+ def async_register_coordinator(self, coordinator: PassiveBluetoothProcessorCoordinator, entity_description_class: type[EntityDescription] | None) -> None: ...
51
90
  @property
52
91
  def available(self) -> bool: ...
53
92
  def async_handle_unavailable(self) -> None: ...
54
- def async_add_entities_listener(self, entity_class: type[PassiveBluetoothProcessorEntity], async_add_entites: AddEntitiesCallback) -> Callable[[], None]: ...
93
+ def async_add_entities_listener(self, entity_class: type[PassiveBluetoothProcessorEntity], async_add_entities: AddEntitiesCallback) -> Callable[[], None]: ...
55
94
  def async_add_listener(self, update_callback: Callable[[PassiveBluetoothDataUpdate[_T] | None], None]) -> Callable[[], None]: ...
56
95
  def async_add_entity_key_listener(self, update_callback: Callable[[PassiveBluetoothDataUpdate[_T] | None], None], entity_key: PassiveBluetoothEntityKey) -> Callable[[], None]: ...
57
96
  def async_update_listeners(self, data: PassiveBluetoothDataUpdate[_T] | None) -> None: ...