homeassistant-stubs 2025.9.3__py3-none-any.whl → 2025.10.0__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (327) 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/__init__.pyi +3 -1
  8. homeassistant-stubs/components/airos/binary_sensor.pyi +2 -2
  9. homeassistant-stubs/components/airos/config_flow.pyi +5 -3
  10. homeassistant-stubs/components/airos/const.pyi +3 -0
  11. homeassistant-stubs/components/airos/coordinator.pyi +4 -4
  12. homeassistant-stubs/components/airos/entity.pyi +2 -2
  13. homeassistant-stubs/components/airos/sensor.pyi +2 -2
  14. homeassistant-stubs/components/airzone/select.pyi +1 -0
  15. homeassistant-stubs/components/aladdin_connect/config_flow.pyi +1 -0
  16. homeassistant-stubs/components/alexa_devices/binary_sensor.pyi +4 -0
  17. homeassistant-stubs/components/alexa_devices/coordinator.pyi +2 -0
  18. homeassistant-stubs/components/alexa_devices/sensor.pyi +3 -0
  19. homeassistant-stubs/components/alexa_devices/switch.pyi +4 -2
  20. homeassistant-stubs/components/alexa_devices/utils.pyi +4 -1
  21. homeassistant-stubs/components/analytics/__init__.pyi +4 -21
  22. homeassistant-stubs/components/analytics/analytics.pyi +42 -5
  23. homeassistant-stubs/components/androidtv/__init__.pyi +5 -1
  24. homeassistant-stubs/components/androidtv/media_player.pyi +1 -10
  25. homeassistant-stubs/components/androidtv/services.pyi +16 -0
  26. homeassistant-stubs/components/androidtv_remote/entity.pyi +1 -3
  27. homeassistant-stubs/components/assist_pipeline/__init__.pyi +1 -1
  28. homeassistant-stubs/components/assist_pipeline/const.pyi +1 -0
  29. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +7 -4
  30. homeassistant-stubs/components/assist_pipeline/select.pyi +1 -1
  31. homeassistant-stubs/components/asuswrt/bridge.pyi +12 -0
  32. homeassistant-stubs/components/auth/login_flow.pyi +1 -1
  33. homeassistant-stubs/components/blue_current/__init__.pyi +11 -5
  34. homeassistant-stubs/components/blue_current/const.pyi +6 -0
  35. homeassistant-stubs/components/bluetooth/__init__.pyi +2 -2
  36. homeassistant-stubs/components/bluetooth/api.pyi +5 -2
  37. homeassistant-stubs/components/bluetooth/manager.pyi +7 -1
  38. homeassistant-stubs/components/bluetooth/websocket_api.pyi +6 -1
  39. homeassistant-stubs/components/brother/__init__.pyi +4 -2
  40. homeassistant-stubs/components/brother/config_flow.pyi +5 -2
  41. homeassistant-stubs/components/brother/const.pyi +4 -0
  42. homeassistant-stubs/components/bthome/sensor.pyi +1 -1
  43. homeassistant-stubs/components/camera/__init__.pyi +1 -1
  44. homeassistant-stubs/components/camera/prefs.pyi +3 -1
  45. homeassistant-stubs/components/cloud/http_api.pyi +2 -0
  46. homeassistant-stubs/components/comelit/config_flow.pyi +2 -1
  47. homeassistant-stubs/components/comelit/coordinator.pyi +2 -1
  48. homeassistant-stubs/components/comelit/sensor.pyi +1 -1
  49. homeassistant-stubs/components/compit/__init__.pyi +11 -0
  50. homeassistant-stubs/components/compit/climate.pyi +63 -0
  51. homeassistant-stubs/components/compit/config_flow.pyi +17 -0
  52. homeassistant-stubs/components/compit/const.pyi +2 -0
  53. homeassistant-stubs/components/compit/coordinator.pyi +16 -0
  54. homeassistant-stubs/components/derivative/diagnostics.pyi +5 -0
  55. homeassistant-stubs/components/dnsip/sensor.pyi +5 -1
  56. homeassistant-stubs/components/droplet/__init__.pyi +10 -0
  57. homeassistant-stubs/components/droplet/config_flow.pyi +13 -0
  58. homeassistant-stubs/components/droplet/const.pyi +7 -0
  59. homeassistant-stubs/components/droplet/coordinator.pyi +23 -0
  60. homeassistant-stubs/components/droplet/sensor.pyi +37 -0
  61. homeassistant-stubs/components/ecovacs/number.pyi +4 -1
  62. homeassistant-stubs/components/elkm1/config_flow.pyi +2 -0
  63. homeassistant-stubs/components/elkm1/sensor.pyi +8 -1
  64. homeassistant-stubs/components/energy/sensor.pyi +1 -1
  65. homeassistant-stubs/components/esphome/analytics.pyi +4 -0
  66. homeassistant-stubs/components/esphome/assist_satellite.pyi +5 -1
  67. homeassistant-stubs/components/esphome/climate.pyi +2 -0
  68. homeassistant-stubs/components/esphome/config_flow.pyi +3 -0
  69. homeassistant-stubs/components/esphome/const.pyi +1 -0
  70. homeassistant-stubs/components/esphome/entry_data.pyi +8 -4
  71. homeassistant-stubs/components/esphome/lock.pyi +1 -1
  72. homeassistant-stubs/components/esphome/manager.pyi +1 -0
  73. homeassistant-stubs/components/esphome/select.pyi +4 -3
  74. homeassistant-stubs/components/fritz/sensor.pyi +2 -1
  75. homeassistant-stubs/components/frontend/__init__.pyi +5 -2
  76. homeassistant-stubs/components/geocaching/entity.pyi +14 -0
  77. homeassistant-stubs/components/geocaching/sensor.pyi +25 -5
  78. homeassistant-stubs/components/go2rtc/__init__.pyi +3 -0
  79. homeassistant-stubs/components/google/__init__.pyi +0 -1
  80. homeassistant-stubs/components/google/config_flow.pyi +3 -3
  81. homeassistant-stubs/components/google_cloud/__init__.pyi +0 -1
  82. homeassistant-stubs/components/google_cloud/config_flow.pyi +2 -2
  83. homeassistant-stubs/components/google_photos/media_source.pyi +2 -2
  84. homeassistant-stubs/components/habitica/binary_sensor.pyi +1 -1
  85. homeassistant-stubs/components/habitica/const.pyi +1 -0
  86. homeassistant-stubs/components/habitica/sensor.pyi +3 -1
  87. homeassistant-stubs/components/habitica/services.pyi +2 -1
  88. homeassistant-stubs/components/habitica/util.pyi +1 -0
  89. homeassistant-stubs/components/here_travel_time/__init__.pyi +3 -1
  90. homeassistant-stubs/components/history_stats/config_flow.pyi +7 -2
  91. homeassistant-stubs/components/history_stats/diagnostics.pyi +5 -0
  92. homeassistant-stubs/components/home_connect/application_credentials.pyi +0 -1
  93. homeassistant-stubs/components/home_connect/coordinator.pyi +0 -1
  94. homeassistant-stubs/components/homeassistant_hardware/firmware_config_flow.pyi +44 -13
  95. homeassistant-stubs/components/homeassistant_hardware/update.pyi +2 -2
  96. homeassistant-stubs/components/homeassistant_hardware/util.pyi +10 -4
  97. homeassistant-stubs/components/homeassistant_sky_connect/update.pyi +1 -1
  98. homeassistant-stubs/components/homeassistant_yellow/config_flow.pyi +3 -1
  99. homeassistant-stubs/components/homeassistant_yellow/update.pyi +2 -2
  100. homeassistant-stubs/components/homee/alarm_control_panel.pyi +3 -2
  101. homeassistant-stubs/components/homee/binary_sensor.pyi +4 -2
  102. homeassistant-stubs/components/homee/button.pyi +3 -1
  103. homeassistant-stubs/components/homee/climate.pyi +3 -1
  104. homeassistant-stubs/components/homee/cover.pyi +3 -1
  105. homeassistant-stubs/components/homee/event.pyi +3 -1
  106. homeassistant-stubs/components/homee/fan.pyi +3 -1
  107. homeassistant-stubs/components/homee/helpers.pyi +6 -0
  108. homeassistant-stubs/components/homee/light.pyi +2 -0
  109. homeassistant-stubs/components/homee/lock.pyi +4 -2
  110. homeassistant-stubs/components/homee/number.pyi +3 -1
  111. homeassistant-stubs/components/homee/select.pyi +3 -1
  112. homeassistant-stubs/components/homee/sensor.pyi +2 -2
  113. homeassistant-stubs/components/homee/siren.pyi +4 -1
  114. homeassistant-stubs/components/homee/switch.pyi +4 -2
  115. homeassistant-stubs/components/homee/valve.pyi +3 -1
  116. homeassistant-stubs/components/homekit/type_switches.pyi +7 -1
  117. homeassistant-stubs/components/homewizard/sensor.pyi +3 -1
  118. homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +1 -1
  119. homeassistant-stubs/components/image/__init__.pyi +1 -0
  120. homeassistant-stubs/components/image_upload/__init__.pyi +1 -1
  121. homeassistant-stubs/components/image_upload/const.pyi +1 -0
  122. homeassistant-stubs/components/image_upload/media_source.pyi +5 -1
  123. homeassistant-stubs/components/immich/media_source.pyi +2 -2
  124. homeassistant-stubs/components/integration/__init__.pyi +0 -1
  125. homeassistant-stubs/components/integration/config_flow.pyi +1 -0
  126. homeassistant-stubs/components/lamarzocco/__init__.pyi +4 -2
  127. homeassistant-stubs/components/lamarzocco/config_flow.pyi +4 -2
  128. homeassistant-stubs/components/lamarzocco/const.pyi +1 -0
  129. homeassistant-stubs/components/lamarzocco/coordinator.pyi +4 -2
  130. homeassistant-stubs/components/lawn_mower/intent.pyi +8 -0
  131. homeassistant-stubs/components/letpot/number.pyi +34 -0
  132. homeassistant-stubs/components/libre_hardware_monitor/__init__.pyi +9 -0
  133. homeassistant-stubs/components/libre_hardware_monitor/config_flow.pyi +12 -0
  134. homeassistant-stubs/components/libre_hardware_monitor/const.pyi +4 -0
  135. homeassistant-stubs/components/libre_hardware_monitor/coordinator.pyi +21 -0
  136. homeassistant-stubs/components/libre_hardware_monitor/sensor.pyi +34 -0
  137. homeassistant-stubs/components/litterrobot/select.pyi +1 -1
  138. homeassistant-stubs/components/litterrobot/switch.pyi +5 -1
  139. homeassistant-stubs/components/logbook/helpers.pyi +4 -3
  140. homeassistant-stubs/components/mastodon/const.pyi +1 -0
  141. homeassistant-stubs/components/mastodon/services.pyi +1 -1
  142. homeassistant-stubs/components/matter/models.pyi +1 -0
  143. homeassistant-stubs/components/matter/sensor.pyi +1 -0
  144. homeassistant-stubs/components/mcp_server/session.pyi +2 -2
  145. homeassistant-stubs/components/media_source/__init__.pyi +2 -10
  146. homeassistant-stubs/components/media_source/helper.pyi +16 -0
  147. homeassistant-stubs/components/media_source/http.pyi +13 -0
  148. homeassistant-stubs/components/media_source/local_source.pyi +19 -11
  149. homeassistant-stubs/components/metoffice/sensor.pyi +1 -1
  150. homeassistant-stubs/components/miele/const.pyi +193 -17
  151. homeassistant-stubs/components/miele/sensor.pyi +12 -3
  152. homeassistant-stubs/components/miele/vacuum.pyi +1 -2
  153. homeassistant-stubs/components/min_max/sensor.pyi +1 -1
  154. homeassistant-stubs/components/modbus/__init__.pyi +1 -1
  155. homeassistant-stubs/components/modbus/binary_sensor.pyi +2 -2
  156. homeassistant-stubs/components/modbus/climate.pyi +2 -2
  157. homeassistant-stubs/components/modbus/const.pyi +1 -0
  158. homeassistant-stubs/components/modbus/cover.pyi +2 -2
  159. homeassistant-stubs/components/modbus/entity.pyi +4 -4
  160. homeassistant-stubs/components/modbus/fan.pyi +2 -2
  161. homeassistant-stubs/components/modbus/light.pyi +2 -2
  162. homeassistant-stubs/components/modbus/modbus.pyi +1 -2
  163. homeassistant-stubs/components/modbus/sensor.pyi +2 -2
  164. homeassistant-stubs/components/modbus/switch.pyi +2 -2
  165. homeassistant-stubs/components/modbus/validators.pyi +1 -1
  166. homeassistant-stubs/components/motionmount/select.pyi +1 -0
  167. homeassistant-stubs/components/mqtt/config_flow.pyi +61 -60
  168. homeassistant-stubs/components/mqtt/const.pyi +6 -0
  169. homeassistant-stubs/components/mqtt/device_automation.pyi +1 -1
  170. homeassistant-stubs/components/mqtt/entity.pyi +2 -2
  171. homeassistant-stubs/components/mqtt/image.pyi +1 -5
  172. homeassistant-stubs/components/mqtt/light/schema_json.pyi +0 -1
  173. homeassistant-stubs/components/mqtt/schemas.pyi +1 -1
  174. homeassistant-stubs/components/mqtt/tag.pyi +1 -1
  175. homeassistant-stubs/components/music_assistant/__init__.pyi +2 -1
  176. homeassistant-stubs/components/music_assistant/config_flow.pyi +1 -1
  177. homeassistant-stubs/components/music_assistant/const.pyi +1 -0
  178. homeassistant-stubs/components/nordpool/coordinator.pyi +4 -2
  179. homeassistant-stubs/components/ntfy/config_flow.pyi +4 -2
  180. homeassistant-stubs/components/ntfy/const.pyi +6 -0
  181. homeassistant-stubs/components/ntfy/entity.pyi +18 -0
  182. homeassistant-stubs/components/ntfy/event.pyi +29 -0
  183. homeassistant-stubs/components/ntfy/notify.pyi +19 -13
  184. homeassistant-stubs/components/{home_connect → ntfy}/repairs.pyi +7 -3
  185. homeassistant-stubs/components/number/const.pyi +1 -1
  186. homeassistant-stubs/components/openai_conversation/ai_task.pyi +5 -1
  187. homeassistant-stubs/components/openai_conversation/const.pyi +1 -0
  188. homeassistant-stubs/components/openai_conversation/entity.pyi +2 -2
  189. homeassistant-stubs/components/openuv/__init__.pyi +1 -1
  190. homeassistant-stubs/components/openuv/binary_sensor.pyi +2 -2
  191. homeassistant-stubs/components/openuv/coordinator.pyi +14 -1
  192. homeassistant-stubs/components/opnsense/__init__.pyi +11 -0
  193. homeassistant-stubs/components/opnsense/const.pyi +5 -0
  194. homeassistant-stubs/components/opnsense/device_tracker.pyi +23 -0
  195. homeassistant-stubs/components/portainer/__init__.pyi +12 -0
  196. homeassistant-stubs/components/portainer/binary_sensor.pyi +39 -0
  197. homeassistant-stubs/components/portainer/config_flow.pyi +21 -0
  198. homeassistant-stubs/components/portainer/const.pyi +2 -0
  199. homeassistant-stubs/components/portainer/coordinator.pyi +29 -0
  200. homeassistant-stubs/components/portainer/entity.pyi +22 -0
  201. homeassistant-stubs/components/prusalink/coordinator.pyi +2 -0
  202. homeassistant-stubs/components/radio_browser/media_source.pyi +3 -0
  203. homeassistant-stubs/components/recorder/models/statistics.pyi +1 -0
  204. homeassistant-stubs/components/recorder/util.pyi +1 -0
  205. homeassistant-stubs/components/reolink/entity.pyi +10 -0
  206. homeassistant-stubs/components/reolink/light.pyi +7 -1
  207. homeassistant-stubs/components/reolink/number.pyi +10 -1
  208. homeassistant-stubs/components/reolink/select.pyi +11 -3
  209. homeassistant-stubs/components/reolink/siren.pyi +11 -1
  210. homeassistant-stubs/components/reolink/switch.pyi +11 -1
  211. homeassistant-stubs/components/roborock/config_flow.pyi +1 -1
  212. homeassistant-stubs/components/roborock/const.pyi +1 -0
  213. homeassistant-stubs/components/roborock/coordinator.pyi +1 -1
  214. homeassistant-stubs/components/route_b_smart_meter/__init__.pyi +10 -0
  215. homeassistant-stubs/components/route_b_smart_meter/config_flow.pyi +22 -0
  216. homeassistant-stubs/components/route_b_smart_meter/const.pyi +9 -0
  217. homeassistant-stubs/components/route_b_smart_meter/coordinator.pyi +26 -0
  218. homeassistant-stubs/components/route_b_smart_meter/sensor.pyi +30 -0
  219. homeassistant-stubs/components/scrape/__init__.pyi +0 -1
  220. homeassistant-stubs/components/scrape/config_flow.pyi +1 -0
  221. homeassistant-stubs/components/scrape/coordinator.pyi +5 -1
  222. homeassistant-stubs/components/sensor/const.pyi +1 -0
  223. homeassistant-stubs/components/sensor/device_condition.pyi +1 -0
  224. homeassistant-stubs/components/sensor/device_trigger.pyi +1 -0
  225. homeassistant-stubs/components/sftp_storage/__init__.pyi +21 -0
  226. homeassistant-stubs/components/sftp_storage/backup.pyi +24 -0
  227. homeassistant-stubs/components/sftp_storage/client.pyi +48 -0
  228. homeassistant-stubs/components/sftp_storage/config_flow.pyi +25 -0
  229. homeassistant-stubs/components/sftp_storage/const.pyi +16 -0
  230. homeassistant-stubs/components/shelly/__init__.pyi +2 -2
  231. homeassistant-stubs/components/shelly/binary_sensor.pyi +5 -1
  232. homeassistant-stubs/components/shelly/button.pyi +10 -2
  233. homeassistant-stubs/components/shelly/const.pyi +5 -2
  234. homeassistant-stubs/components/shelly/cover.pyi +6 -0
  235. homeassistant-stubs/components/shelly/entity.pyi +1 -3
  236. homeassistant-stubs/components/shelly/light.pyi +18 -10
  237. homeassistant-stubs/components/shelly/number.pyi +1 -1
  238. homeassistant-stubs/components/shelly/repairs.pyi +4 -2
  239. homeassistant-stubs/components/shelly/select.pyi +1 -1
  240. homeassistant-stubs/components/shelly/sensor.pyi +16 -8
  241. homeassistant-stubs/components/shelly/switch.pyi +1 -1
  242. homeassistant-stubs/components/shelly/text.pyi +1 -1
  243. homeassistant-stubs/components/shelly/utils.pyi +7 -2
  244. homeassistant-stubs/components/sql/__init__.pyi +2 -2
  245. homeassistant-stubs/components/sql/config_flow.pyi +6 -2
  246. homeassistant-stubs/components/sql/const.pyi +1 -0
  247. homeassistant-stubs/components/sql/sensor.pyi +1 -1
  248. homeassistant-stubs/components/squeezebox/browse_media.pyi +1 -1
  249. homeassistant-stubs/components/ssdp/server.pyi +2 -3
  250. homeassistant-stubs/components/starlink/sensor.pyi +8 -1
  251. homeassistant-stubs/components/statistics/__init__.pyi +0 -1
  252. homeassistant-stubs/components/statistics/config_flow.pyi +1 -0
  253. homeassistant-stubs/components/switchbot_cloud/__init__.pyi +1 -0
  254. homeassistant-stubs/components/switchbot_cloud/binary_sensor.pyi +7 -0
  255. homeassistant-stubs/components/switchbot_cloud/climate.pyi +7 -3
  256. homeassistant-stubs/components/switchbot_cloud/const.pyi +13 -0
  257. homeassistant-stubs/components/switchbot_cloud/entity.pyi +1 -1
  258. homeassistant-stubs/components/switchbot_cloud/humidifier.pyi +48 -0
  259. homeassistant-stubs/components/switchbot_cloud/light.pyi +1 -0
  260. homeassistant-stubs/components/switchbot_cloud/sensor.pyi +13 -1
  261. homeassistant-stubs/components/synology_dsm/media_source.pyi +2 -2
  262. homeassistant-stubs/components/synology_dsm/sensor.pyi +3 -0
  263. homeassistant-stubs/components/systemmonitor/binary_sensor.pyi +1 -1
  264. homeassistant-stubs/components/systemmonitor/const.pyi +1 -0
  265. homeassistant-stubs/components/systemmonitor/coordinator.pyi +2 -0
  266. homeassistant-stubs/components/systemmonitor/sensor.pyi +2 -0
  267. homeassistant-stubs/components/telegram_bot/__init__.pyi +2 -1
  268. homeassistant-stubs/components/telegram_bot/bot.pyi +1 -0
  269. homeassistant-stubs/components/telegram_bot/const.pyi +13 -0
  270. homeassistant-stubs/components/threshold/__init__.pyi +0 -1
  271. homeassistant-stubs/components/threshold/config_flow.pyi +1 -0
  272. homeassistant-stubs/components/tolo/config_flow.pyi +5 -3
  273. homeassistant-stubs/components/tts/__init__.pyi +5 -0
  274. homeassistant-stubs/components/uptimerobot/config_flow.pyi +1 -0
  275. homeassistant-stubs/components/vacuum/intent.pyi +1 -1
  276. homeassistant-stubs/components/volvo/__init__.pyi +1 -1
  277. homeassistant-stubs/components/volvo/api.pyi +4 -0
  278. homeassistant-stubs/components/volvo/coordinator.pyi +28 -15
  279. homeassistant-stubs/components/wake_on_lan/__init__.pyi +0 -1
  280. homeassistant-stubs/components/wake_on_lan/config_flow.pyi +1 -0
  281. homeassistant-stubs/components/webhook/trigger.pyi +2 -1
  282. homeassistant-stubs/components/wled/analytics.pyi +4 -0
  283. homeassistant-stubs/components/workday/calendar.pyi +23 -0
  284. homeassistant-stubs/components/yalexs_ble/__init__.pyi +0 -1
  285. homeassistant-stubs/components/yalexs_ble/config_flow.pyi +2 -2
  286. homeassistant-stubs/components/zwave_js/__init__.pyi +1 -1
  287. homeassistant-stubs/components/zwave_js/config_flow.pyi +6 -3
  288. homeassistant-stubs/components/zwave_js/const.pyi +3 -0
  289. homeassistant-stubs/components/zwave_js/device_trigger.pyi +1 -1
  290. homeassistant-stubs/components/zwave_js/triggers/event.pyi +24 -9
  291. homeassistant-stubs/components/zwave_js/triggers/value_updated.pyi +11 -7
  292. homeassistant-stubs/config_entries.pyi +6 -1
  293. homeassistant-stubs/const.pyi +7 -46
  294. homeassistant-stubs/data_entry_flow.pyi +16 -3
  295. homeassistant-stubs/generated/entity_platforms.pyi +46 -0
  296. homeassistant-stubs/helpers/condition.pyi +3 -1
  297. homeassistant-stubs/helpers/config_validation.pyi +1 -1
  298. homeassistant-stubs/helpers/deprecation.pyi +1 -0
  299. homeassistant-stubs/helpers/device_registry.pyi +4 -3
  300. homeassistant-stubs/helpers/entity_component.pyi +1 -3
  301. homeassistant-stubs/helpers/event.pyi +2 -1
  302. homeassistant-stubs/helpers/intent.pyi +5 -8
  303. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +5 -1
  304. homeassistant-stubs/helpers/selector.pyi +16 -16
  305. homeassistant-stubs/helpers/service.pyi +12 -14
  306. homeassistant-stubs/helpers/service_info/esphome.pyi +12 -0
  307. homeassistant-stubs/helpers/{template.pyi → template/__init__.pyi} +14 -97
  308. homeassistant-stubs/helpers/template/context.pyi +16 -0
  309. homeassistant-stubs/helpers/template/extensions/__init__.pyi +8 -0
  310. homeassistant-stubs/helpers/template/extensions/base.pyi +21 -0
  311. homeassistant-stubs/helpers/template/extensions/base64.pyi +9 -0
  312. homeassistant-stubs/helpers/template/extensions/collection.pyi +18 -0
  313. homeassistant-stubs/helpers/template/extensions/crypto.pyi +13 -0
  314. homeassistant-stubs/helpers/template/extensions/math.pyi +43 -0
  315. homeassistant-stubs/helpers/template/extensions/regex.pyi +14 -0
  316. homeassistant-stubs/helpers/template/extensions/string.pyi +9 -0
  317. homeassistant-stubs/helpers/template/helpers.pyi +4 -0
  318. homeassistant-stubs/helpers/template/render_info.pyi +39 -0
  319. homeassistant-stubs/helpers/trigger.pyi +16 -5
  320. homeassistant-stubs/helpers/trigger_template_entity.pyi +2 -1
  321. homeassistant-stubs/runner.pyi +16 -0
  322. homeassistant-stubs/util/unit_conversion.pyi +1 -0
  323. {homeassistant_stubs-2025.9.3.dist-info → homeassistant_stubs-2025.10.0.dist-info}/METADATA +2 -2
  324. {homeassistant_stubs-2025.9.3.dist-info → homeassistant_stubs-2025.10.0.dist-info}/RECORD +326 -266
  325. homeassistant-stubs/components/home_connect/time.pyi +0 -29
  326. {homeassistant_stubs-2025.9.3.dist-info → homeassistant_stubs-2025.10.0.dist-info}/WHEEL +0 -0
  327. {homeassistant_stubs-2025.9.3.dist-info → homeassistant_stubs-2025.10.0.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,9 +1,11 @@
1
+ from .const import DEFAULT_SSL as DEFAULT_SSL, DEFAULT_VERIFY_SSL as DEFAULT_VERIFY_SSL, SECTION_ADVANCED_SETTINGS as SECTION_ADVANCED_SETTINGS
1
2
  from .coordinator import AirOSConfigEntry as AirOSConfigEntry, AirOSDataUpdateCoordinator as AirOSDataUpdateCoordinator
2
- from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME, Platform as Platform
3
+ from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PASSWORD, CONF_SSL as CONF_SSL, CONF_USERNAME as CONF_USERNAME, CONF_VERIFY_SSL as CONF_VERIFY_SSL, Platform as Platform
3
4
  from homeassistant.core import HomeAssistant as HomeAssistant
4
5
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
5
6
 
6
7
  _PLATFORMS: list[Platform]
7
8
 
8
9
  async def async_setup_entry(hass: HomeAssistant, entry: AirOSConfigEntry) -> bool: ...
10
+ async def async_migrate_entry(hass: HomeAssistant, entry: AirOSConfigEntry) -> bool: ...
9
11
  async def async_unload_entry(hass: HomeAssistant, entry: AirOSConfigEntry) -> bool: ...
@@ -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,8 +1,9 @@
1
- from .const import DOMAIN as DOMAIN
2
- from .coordinator import AirOS as AirOS
1
+ from .const import DEFAULT_SSL as DEFAULT_SSL, DEFAULT_VERIFY_SSL as DEFAULT_VERIFY_SSL, DOMAIN as DOMAIN, SECTION_ADVANCED_SETTINGS as SECTION_ADVANCED_SETTINGS
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
- from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME
5
+ from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PASSWORD, CONF_SSL as CONF_SSL, CONF_USERNAME as CONF_USERNAME, CONF_VERIFY_SSL as CONF_VERIFY_SSL
6
+ from homeassistant.data_entry_flow import section as section
6
7
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
7
8
  from typing import Any
8
9
 
@@ -11,4 +12,5 @@ STEP_USER_DATA_SCHEMA: Incomplete
11
12
 
12
13
  class AirOSConfigFlow(ConfigFlow, domain=DOMAIN):
13
14
  VERSION: int
15
+ MINOR_VERSION: int
14
16
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -3,3 +3,6 @@ from _typeshed import Incomplete
3
3
  DOMAIN: str
4
4
  SCAN_INTERVAL: Incomplete
5
5
  MANUFACTURER: str
6
+ DEFAULT_VERIFY_SSL: bool
7
+ DEFAULT_SSL: bool
8
+ SECTION_ADVANCED_SETTINGS: str
@@ -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,7 +1,7 @@
1
- from .const import DOMAIN as DOMAIN, MANUFACTURER as MANUFACTURER
1
+ from .const import DOMAIN as DOMAIN, MANUFACTURER as MANUFACTURER, SECTION_ADVANCED_SETTINGS as SECTION_ADVANCED_SETTINGS
2
2
  from .coordinator import AirOSDataUpdateCoordinator as AirOSDataUpdateCoordinator
3
3
  from _typeshed import Incomplete
4
- from homeassistant.const import CONF_HOST as CONF_HOST
4
+ from homeassistant.const import CONF_HOST as CONF_HOST, CONF_SSL as CONF_SSL
5
5
  from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC, DeviceInfo as DeviceInfo
6
6
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
7
7
 
@@ -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
 
@@ -9,6 +9,7 @@ class OAuth2FlowHandler(config_entry_oauth2_flow.AbstractOAuth2FlowHandler, doma
9
9
  DOMAIN = DOMAIN
10
10
  VERSION = CONFIG_FLOW_VERSION
11
11
  MINOR_VERSION = CONFIG_FLOW_MINOR_VERSION
12
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
12
13
  async def async_step_reauth(self, user_input: Mapping[str, Any]) -> ConfigFlowResult: ...
13
14
  async def async_step_reauth_confirm(self, user_input: Mapping[str, Any] | None = None) -> ConfigFlowResult: ...
14
15
  async def async_oauth_create_entry(self, data: dict) -> ConfigFlowResult: ...
@@ -1,5 +1,6 @@
1
1
  from .coordinator import AmazonConfigEntry as AmazonConfigEntry
2
2
  from .entity import AmazonEntity as AmazonEntity
3
+ from .utils import async_update_unique_id as async_update_unique_id
3
4
  from _typeshed import Incomplete
4
5
  from aioamazondevices.api import AmazonDevice as AmazonDevice
5
6
  from collections.abc import Callable as Callable
@@ -16,6 +17,7 @@ PARALLEL_UPDATES: int
16
17
  class AmazonBinarySensorEntityDescription(BinarySensorEntityDescription):
17
18
  is_on_fn: Callable[[AmazonDevice, str], bool]
18
19
  is_supported: Callable[[AmazonDevice, str], bool] = ...
20
+ is_available_fn: Callable[[AmazonDevice, str], bool] = ...
19
21
 
20
22
  BINARY_SENSORS: Final[Incomplete]
21
23
 
@@ -25,3 +27,5 @@ class AmazonBinarySensorEntity(AmazonEntity, BinarySensorEntity):
25
27
  entity_description: AmazonBinarySensorEntityDescription
26
28
  @property
27
29
  def is_on(self) -> bool: ...
30
+ @property
31
+ def available(self) -> bool: ...
@@ -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: ...
@@ -16,6 +16,7 @@ PARALLEL_UPDATES: int
16
16
  @dataclass(frozen=True, kw_only=True)
17
17
  class AmazonSensorEntityDescription(SensorEntityDescription):
18
18
  native_unit_of_measurement_fn: Callable[[AmazonDevice, str], str] | None = ...
19
+ is_available_fn: Callable[[AmazonDevice, str], bool] = ...
19
20
 
20
21
  SENSORS: Final[Incomplete]
21
22
 
@@ -27,3 +28,5 @@ class AmazonSensorEntity(AmazonEntity, SensorEntity):
27
28
  def native_unit_of_measurement(self) -> str | None: ...
28
29
  @property
29
30
  def native_value(self) -> StateType: ...
31
+ @property
32
+ def available(self) -> bool: ...
@@ -1,6 +1,6 @@
1
1
  from .coordinator import AmazonConfigEntry as AmazonConfigEntry
2
2
  from .entity import AmazonEntity as AmazonEntity
3
- from .utils import alexa_api_call as alexa_api_call
3
+ from .utils import alexa_api_call as alexa_api_call, async_update_unique_id as async_update_unique_id
4
4
  from _typeshed import Incomplete
5
5
  from aioamazondevices.api import AmazonDevice as AmazonDevice
6
6
  from collections.abc import Callable as Callable
@@ -15,7 +15,7 @@ PARALLEL_UPDATES: int
15
15
  @dataclass(frozen=True, kw_only=True)
16
16
  class AmazonSwitchEntityDescription(SwitchEntityDescription):
17
17
  is_on_fn: Callable[[AmazonDevice], bool]
18
- subkey: str
18
+ is_available_fn: Callable[[AmazonDevice, str], bool] = ...
19
19
  method: str
20
20
 
21
21
  SWITCHES: Final[Incomplete]
@@ -30,3 +30,5 @@ class AmazonSwitchEntity(AmazonEntity, SwitchEntity):
30
30
  async def async_turn_off(self, **kwargs: Any) -> None: ...
31
31
  @property
32
32
  def is_on(self) -> bool: ...
33
+ @property
34
+ def available(self) -> bool: ...
@@ -1,7 +1,10 @@
1
- from .const import DOMAIN as DOMAIN
1
+ from .const import DOMAIN as DOMAIN, _LOGGER as _LOGGER
2
+ from .coordinator import AmazonDevicesCoordinator as AmazonDevicesCoordinator
2
3
  from .entity import AmazonEntity as AmazonEntity
3
4
  from collections.abc import Awaitable, Callable as Callable, Coroutine
5
+ from homeassistant.core import HomeAssistant as HomeAssistant
4
6
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
5
7
  from typing import Any, Concatenate
6
8
 
7
9
  def alexa_api_call[_T: AmazonEntity, **_P](func: Callable[Concatenate[_T, _P], Awaitable[None]]) -> Callable[Concatenate[_T, _P], Coroutine[Any, Any, None]]: ...
10
+ async def async_update_unique_id(hass: HomeAssistant, coordinator: AmazonDevicesCoordinator, domain: str, old_key: str, new_key: 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, satellite_id: str | None, 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: ...