homeassistant-stubs 2025.9.3__py3-none-any.whl → 2025.10.0b0__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 (309) hide show
  1. homeassistant-stubs/components/acaia/coordinator.pyi +1 -0
  2. homeassistant-stubs/components/accuweather/__init__.pyi +3 -3
  3. homeassistant-stubs/components/accuweather/config_flow.pyi +5 -0
  4. homeassistant-stubs/components/accuweather/const.pyi +1 -0
  5. homeassistant-stubs/components/accuweather/coordinator.pyi +17 -4
  6. homeassistant-stubs/components/accuweather/weather.pyi +5 -2
  7. homeassistant-stubs/components/airos/binary_sensor.pyi +2 -2
  8. homeassistant-stubs/components/airos/config_flow.pyi +1 -1
  9. homeassistant-stubs/components/airos/coordinator.pyi +4 -4
  10. homeassistant-stubs/components/airos/sensor.pyi +2 -2
  11. homeassistant-stubs/components/airzone/select.pyi +1 -0
  12. homeassistant-stubs/components/alexa_devices/coordinator.pyi +2 -0
  13. homeassistant-stubs/components/analytics/__init__.pyi +4 -21
  14. homeassistant-stubs/components/analytics/analytics.pyi +42 -5
  15. homeassistant-stubs/components/androidtv/__init__.pyi +5 -1
  16. homeassistant-stubs/components/androidtv/media_player.pyi +1 -10
  17. homeassistant-stubs/components/androidtv/services.pyi +16 -0
  18. homeassistant-stubs/components/androidtv_remote/entity.pyi +1 -3
  19. homeassistant-stubs/components/assist_pipeline/__init__.pyi +1 -1
  20. homeassistant-stubs/components/assist_pipeline/const.pyi +1 -0
  21. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +7 -4
  22. homeassistant-stubs/components/assist_pipeline/select.pyi +1 -1
  23. homeassistant-stubs/components/asuswrt/bridge.pyi +12 -0
  24. homeassistant-stubs/components/auth/login_flow.pyi +1 -1
  25. homeassistant-stubs/components/blue_current/__init__.pyi +11 -5
  26. homeassistant-stubs/components/blue_current/const.pyi +6 -0
  27. homeassistant-stubs/components/bluetooth/__init__.pyi +2 -2
  28. homeassistant-stubs/components/bluetooth/api.pyi +5 -2
  29. homeassistant-stubs/components/bluetooth/manager.pyi +7 -1
  30. homeassistant-stubs/components/bluetooth/websocket_api.pyi +6 -1
  31. homeassistant-stubs/components/brother/__init__.pyi +4 -2
  32. homeassistant-stubs/components/brother/config_flow.pyi +5 -2
  33. homeassistant-stubs/components/brother/const.pyi +4 -0
  34. homeassistant-stubs/components/bthome/sensor.pyi +1 -1
  35. homeassistant-stubs/components/camera/__init__.pyi +1 -1
  36. homeassistant-stubs/components/camera/prefs.pyi +3 -1
  37. homeassistant-stubs/components/cloud/http_api.pyi +2 -0
  38. homeassistant-stubs/components/comelit/coordinator.pyi +2 -1
  39. homeassistant-stubs/components/comelit/sensor.pyi +1 -1
  40. homeassistant-stubs/components/compit/__init__.pyi +11 -0
  41. homeassistant-stubs/components/compit/climate.pyi +63 -0
  42. homeassistant-stubs/components/compit/config_flow.pyi +17 -0
  43. homeassistant-stubs/components/compit/const.pyi +2 -0
  44. homeassistant-stubs/components/compit/coordinator.pyi +16 -0
  45. homeassistant-stubs/components/derivative/diagnostics.pyi +5 -0
  46. homeassistant-stubs/components/droplet/__init__.pyi +10 -0
  47. homeassistant-stubs/components/droplet/config_flow.pyi +13 -0
  48. homeassistant-stubs/components/droplet/const.pyi +7 -0
  49. homeassistant-stubs/components/droplet/coordinator.pyi +23 -0
  50. homeassistant-stubs/components/droplet/sensor.pyi +37 -0
  51. homeassistant-stubs/components/ecovacs/number.pyi +4 -1
  52. homeassistant-stubs/components/elkm1/config_flow.pyi +2 -0
  53. homeassistant-stubs/components/elkm1/sensor.pyi +8 -1
  54. homeassistant-stubs/components/energy/sensor.pyi +1 -1
  55. homeassistant-stubs/components/esphome/assist_satellite.pyi +5 -1
  56. homeassistant-stubs/components/esphome/climate.pyi +2 -0
  57. homeassistant-stubs/components/esphome/config_flow.pyi +2 -0
  58. homeassistant-stubs/components/esphome/const.pyi +1 -0
  59. homeassistant-stubs/components/esphome/entry_data.pyi +8 -4
  60. homeassistant-stubs/components/esphome/lock.pyi +1 -1
  61. homeassistant-stubs/components/esphome/select.pyi +4 -3
  62. homeassistant-stubs/components/fritz/sensor.pyi +2 -1
  63. homeassistant-stubs/components/frontend/__init__.pyi +5 -2
  64. homeassistant-stubs/components/geocaching/entity.pyi +14 -0
  65. homeassistant-stubs/components/geocaching/sensor.pyi +25 -5
  66. homeassistant-stubs/components/go2rtc/__init__.pyi +3 -0
  67. homeassistant-stubs/components/google/__init__.pyi +0 -1
  68. homeassistant-stubs/components/google/config_flow.pyi +3 -3
  69. homeassistant-stubs/components/google_cloud/__init__.pyi +0 -1
  70. homeassistant-stubs/components/google_cloud/config_flow.pyi +2 -2
  71. homeassistant-stubs/components/google_photos/media_source.pyi +2 -2
  72. homeassistant-stubs/components/habitica/binary_sensor.pyi +1 -1
  73. homeassistant-stubs/components/habitica/const.pyi +1 -0
  74. homeassistant-stubs/components/habitica/sensor.pyi +3 -1
  75. homeassistant-stubs/components/habitica/services.pyi +2 -1
  76. homeassistant-stubs/components/habitica/util.pyi +1 -0
  77. homeassistant-stubs/components/here_travel_time/__init__.pyi +3 -1
  78. homeassistant-stubs/components/history_stats/config_flow.pyi +7 -2
  79. homeassistant-stubs/components/history_stats/diagnostics.pyi +5 -0
  80. homeassistant-stubs/components/home_connect/application_credentials.pyi +0 -1
  81. homeassistant-stubs/components/home_connect/coordinator.pyi +0 -1
  82. homeassistant-stubs/components/homeassistant_hardware/firmware_config_flow.pyi +38 -11
  83. homeassistant-stubs/components/homee/alarm_control_panel.pyi +3 -2
  84. homeassistant-stubs/components/homee/binary_sensor.pyi +4 -2
  85. homeassistant-stubs/components/homee/button.pyi +3 -1
  86. homeassistant-stubs/components/homee/climate.pyi +3 -1
  87. homeassistant-stubs/components/homee/cover.pyi +3 -1
  88. homeassistant-stubs/components/homee/event.pyi +3 -1
  89. homeassistant-stubs/components/homee/fan.pyi +3 -1
  90. homeassistant-stubs/components/homee/helpers.pyi +6 -0
  91. homeassistant-stubs/components/homee/light.pyi +2 -0
  92. homeassistant-stubs/components/homee/lock.pyi +4 -2
  93. homeassistant-stubs/components/homee/number.pyi +3 -1
  94. homeassistant-stubs/components/homee/select.pyi +3 -1
  95. homeassistant-stubs/components/homee/sensor.pyi +2 -2
  96. homeassistant-stubs/components/homee/siren.pyi +4 -1
  97. homeassistant-stubs/components/homee/switch.pyi +4 -2
  98. homeassistant-stubs/components/homee/valve.pyi +3 -1
  99. homeassistant-stubs/components/homekit/type_switches.pyi +7 -1
  100. homeassistant-stubs/components/homewizard/sensor.pyi +3 -1
  101. homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +1 -1
  102. homeassistant-stubs/components/image/__init__.pyi +1 -0
  103. homeassistant-stubs/components/image_upload/__init__.pyi +1 -1
  104. homeassistant-stubs/components/image_upload/const.pyi +1 -0
  105. homeassistant-stubs/components/image_upload/media_source.pyi +5 -1
  106. homeassistant-stubs/components/immich/media_source.pyi +2 -2
  107. homeassistant-stubs/components/integration/__init__.pyi +0 -1
  108. homeassistant-stubs/components/integration/config_flow.pyi +1 -0
  109. homeassistant-stubs/components/lamarzocco/__init__.pyi +4 -2
  110. homeassistant-stubs/components/lamarzocco/config_flow.pyi +4 -2
  111. homeassistant-stubs/components/lamarzocco/const.pyi +1 -0
  112. homeassistant-stubs/components/lawn_mower/intent.pyi +8 -0
  113. homeassistant-stubs/components/letpot/number.pyi +34 -0
  114. homeassistant-stubs/components/libre_hardware_monitor/__init__.pyi +9 -0
  115. homeassistant-stubs/components/libre_hardware_monitor/config_flow.pyi +12 -0
  116. homeassistant-stubs/components/libre_hardware_monitor/const.pyi +4 -0
  117. homeassistant-stubs/components/libre_hardware_monitor/coordinator.pyi +21 -0
  118. homeassistant-stubs/components/libre_hardware_monitor/sensor.pyi +34 -0
  119. homeassistant-stubs/components/litterrobot/select.pyi +1 -1
  120. homeassistant-stubs/components/litterrobot/switch.pyi +5 -1
  121. homeassistant-stubs/components/logbook/helpers.pyi +4 -3
  122. homeassistant-stubs/components/mastodon/const.pyi +1 -0
  123. homeassistant-stubs/components/mastodon/services.pyi +1 -1
  124. homeassistant-stubs/components/matter/models.pyi +1 -0
  125. homeassistant-stubs/components/matter/sensor.pyi +1 -0
  126. homeassistant-stubs/components/mcp_server/session.pyi +2 -2
  127. homeassistant-stubs/components/media_source/__init__.pyi +2 -10
  128. homeassistant-stubs/components/media_source/helper.pyi +16 -0
  129. homeassistant-stubs/components/media_source/http.pyi +13 -0
  130. homeassistant-stubs/components/media_source/local_source.pyi +19 -11
  131. homeassistant-stubs/components/metoffice/sensor.pyi +1 -1
  132. homeassistant-stubs/components/miele/const.pyi +193 -17
  133. homeassistant-stubs/components/miele/sensor.pyi +12 -3
  134. homeassistant-stubs/components/miele/vacuum.pyi +1 -2
  135. homeassistant-stubs/components/min_max/sensor.pyi +1 -1
  136. homeassistant-stubs/components/modbus/__init__.pyi +1 -1
  137. homeassistant-stubs/components/modbus/binary_sensor.pyi +2 -2
  138. homeassistant-stubs/components/modbus/climate.pyi +2 -2
  139. homeassistant-stubs/components/modbus/const.pyi +1 -0
  140. homeassistant-stubs/components/modbus/cover.pyi +2 -2
  141. homeassistant-stubs/components/modbus/entity.pyi +4 -4
  142. homeassistant-stubs/components/modbus/fan.pyi +2 -2
  143. homeassistant-stubs/components/modbus/light.pyi +2 -2
  144. homeassistant-stubs/components/modbus/modbus.pyi +1 -2
  145. homeassistant-stubs/components/modbus/sensor.pyi +2 -2
  146. homeassistant-stubs/components/modbus/switch.pyi +2 -2
  147. homeassistant-stubs/components/modbus/validators.pyi +1 -1
  148. homeassistant-stubs/components/motionmount/select.pyi +1 -0
  149. homeassistant-stubs/components/mqtt/config_flow.pyi +61 -60
  150. homeassistant-stubs/components/mqtt/const.pyi +6 -0
  151. homeassistant-stubs/components/mqtt/device_automation.pyi +1 -1
  152. homeassistant-stubs/components/mqtt/entity.pyi +2 -2
  153. homeassistant-stubs/components/mqtt/image.pyi +1 -5
  154. homeassistant-stubs/components/mqtt/light/schema_json.pyi +0 -1
  155. homeassistant-stubs/components/mqtt/schemas.pyi +1 -1
  156. homeassistant-stubs/components/mqtt/tag.pyi +1 -1
  157. homeassistant-stubs/components/music_assistant/__init__.pyi +2 -1
  158. homeassistant-stubs/components/music_assistant/config_flow.pyi +1 -1
  159. homeassistant-stubs/components/music_assistant/const.pyi +1 -0
  160. homeassistant-stubs/components/nordpool/coordinator.pyi +4 -2
  161. homeassistant-stubs/components/ntfy/config_flow.pyi +4 -2
  162. homeassistant-stubs/components/ntfy/const.pyi +6 -0
  163. homeassistant-stubs/components/ntfy/entity.pyi +18 -0
  164. homeassistant-stubs/components/ntfy/event.pyi +29 -0
  165. homeassistant-stubs/components/ntfy/notify.pyi +19 -13
  166. homeassistant-stubs/components/{home_connect → ntfy}/repairs.pyi +7 -3
  167. homeassistant-stubs/components/number/const.pyi +1 -1
  168. homeassistant-stubs/components/openai_conversation/ai_task.pyi +5 -1
  169. homeassistant-stubs/components/openai_conversation/const.pyi +1 -0
  170. homeassistant-stubs/components/openai_conversation/entity.pyi +2 -2
  171. homeassistant-stubs/components/openuv/__init__.pyi +1 -1
  172. homeassistant-stubs/components/openuv/binary_sensor.pyi +2 -2
  173. homeassistant-stubs/components/openuv/coordinator.pyi +14 -1
  174. homeassistant-stubs/components/opnsense/__init__.pyi +11 -0
  175. homeassistant-stubs/components/opnsense/const.pyi +5 -0
  176. homeassistant-stubs/components/opnsense/device_tracker.pyi +23 -0
  177. homeassistant-stubs/components/portainer/__init__.pyi +11 -0
  178. homeassistant-stubs/components/portainer/binary_sensor.pyi +39 -0
  179. homeassistant-stubs/components/portainer/config_flow.pyi +20 -0
  180. homeassistant-stubs/components/portainer/const.pyi +2 -0
  181. homeassistant-stubs/components/portainer/coordinator.pyi +29 -0
  182. homeassistant-stubs/components/portainer/entity.pyi +22 -0
  183. homeassistant-stubs/components/prusalink/coordinator.pyi +2 -0
  184. homeassistant-stubs/components/radio_browser/media_source.pyi +3 -0
  185. homeassistant-stubs/components/recorder/models/statistics.pyi +1 -0
  186. homeassistant-stubs/components/recorder/statistics.pyi +1 -1
  187. homeassistant-stubs/components/recorder/util.pyi +1 -0
  188. homeassistant-stubs/components/recorder/websocket_api.pyi +1 -1
  189. homeassistant-stubs/components/reolink/entity.pyi +10 -0
  190. homeassistant-stubs/components/reolink/light.pyi +7 -1
  191. homeassistant-stubs/components/reolink/number.pyi +10 -1
  192. homeassistant-stubs/components/reolink/select.pyi +11 -3
  193. homeassistant-stubs/components/reolink/siren.pyi +11 -1
  194. homeassistant-stubs/components/reolink/switch.pyi +11 -1
  195. homeassistant-stubs/components/roborock/config_flow.pyi +1 -1
  196. homeassistant-stubs/components/roborock/const.pyi +1 -0
  197. homeassistant-stubs/components/roborock/coordinator.pyi +1 -1
  198. homeassistant-stubs/components/route_b_smart_meter/__init__.pyi +10 -0
  199. homeassistant-stubs/components/route_b_smart_meter/config_flow.pyi +22 -0
  200. homeassistant-stubs/components/route_b_smart_meter/const.pyi +9 -0
  201. homeassistant-stubs/components/route_b_smart_meter/coordinator.pyi +26 -0
  202. homeassistant-stubs/components/route_b_smart_meter/sensor.pyi +30 -0
  203. homeassistant-stubs/components/scrape/__init__.pyi +0 -1
  204. homeassistant-stubs/components/scrape/config_flow.pyi +1 -0
  205. homeassistant-stubs/components/scrape/coordinator.pyi +5 -1
  206. homeassistant-stubs/components/sensor/const.pyi +2 -1
  207. homeassistant-stubs/components/sensor/device_condition.pyi +1 -0
  208. homeassistant-stubs/components/sensor/device_trigger.pyi +1 -0
  209. homeassistant-stubs/components/sftp_storage/__init__.pyi +21 -0
  210. homeassistant-stubs/components/sftp_storage/backup.pyi +24 -0
  211. homeassistant-stubs/components/sftp_storage/client.pyi +48 -0
  212. homeassistant-stubs/components/sftp_storage/config_flow.pyi +25 -0
  213. homeassistant-stubs/components/sftp_storage/const.pyi +16 -0
  214. homeassistant-stubs/components/shelly/__init__.pyi +2 -2
  215. homeassistant-stubs/components/shelly/binary_sensor.pyi +5 -1
  216. homeassistant-stubs/components/shelly/button.pyi +10 -2
  217. homeassistant-stubs/components/shelly/const.pyi +5 -2
  218. homeassistant-stubs/components/shelly/cover.pyi +6 -0
  219. homeassistant-stubs/components/shelly/entity.pyi +1 -3
  220. homeassistant-stubs/components/shelly/light.pyi +18 -10
  221. homeassistant-stubs/components/shelly/number.pyi +1 -1
  222. homeassistant-stubs/components/shelly/repairs.pyi +4 -2
  223. homeassistant-stubs/components/shelly/select.pyi +1 -1
  224. homeassistant-stubs/components/shelly/sensor.pyi +12 -8
  225. homeassistant-stubs/components/shelly/switch.pyi +1 -1
  226. homeassistant-stubs/components/shelly/text.pyi +1 -1
  227. homeassistant-stubs/components/shelly/utils.pyi +7 -2
  228. homeassistant-stubs/components/sql/__init__.pyi +2 -2
  229. homeassistant-stubs/components/sql/config_flow.pyi +6 -2
  230. homeassistant-stubs/components/sql/const.pyi +1 -0
  231. homeassistant-stubs/components/sql/sensor.pyi +1 -1
  232. homeassistant-stubs/components/squeezebox/browse_media.pyi +1 -1
  233. homeassistant-stubs/components/ssdp/server.pyi +2 -3
  234. homeassistant-stubs/components/starlink/sensor.pyi +8 -1
  235. homeassistant-stubs/components/statistics/__init__.pyi +0 -1
  236. homeassistant-stubs/components/statistics/config_flow.pyi +1 -0
  237. homeassistant-stubs/components/switchbot_cloud/__init__.pyi +1 -0
  238. homeassistant-stubs/components/switchbot_cloud/binary_sensor.pyi +7 -0
  239. homeassistant-stubs/components/switchbot_cloud/climate.pyi +7 -3
  240. homeassistant-stubs/components/switchbot_cloud/const.pyi +13 -0
  241. homeassistant-stubs/components/switchbot_cloud/humidifier.pyi +48 -0
  242. homeassistant-stubs/components/switchbot_cloud/light.pyi +1 -0
  243. homeassistant-stubs/components/switchbot_cloud/sensor.pyi +13 -1
  244. homeassistant-stubs/components/synology_dsm/media_source.pyi +2 -2
  245. homeassistant-stubs/components/synology_dsm/sensor.pyi +3 -0
  246. homeassistant-stubs/components/systemmonitor/binary_sensor.pyi +1 -1
  247. homeassistant-stubs/components/systemmonitor/const.pyi +1 -0
  248. homeassistant-stubs/components/systemmonitor/coordinator.pyi +2 -0
  249. homeassistant-stubs/components/systemmonitor/sensor.pyi +2 -0
  250. homeassistant-stubs/components/telegram_bot/__init__.pyi +2 -1
  251. homeassistant-stubs/components/telegram_bot/bot.pyi +1 -0
  252. homeassistant-stubs/components/telegram_bot/const.pyi +13 -0
  253. homeassistant-stubs/components/threshold/__init__.pyi +0 -1
  254. homeassistant-stubs/components/threshold/config_flow.pyi +1 -0
  255. homeassistant-stubs/components/tolo/config_flow.pyi +5 -3
  256. homeassistant-stubs/components/tts/__init__.pyi +5 -0
  257. homeassistant-stubs/components/uptimerobot/config_flow.pyi +1 -0
  258. homeassistant-stubs/components/vacuum/intent.pyi +1 -1
  259. homeassistant-stubs/components/volvo/__init__.pyi +1 -1
  260. homeassistant-stubs/components/volvo/api.pyi +4 -0
  261. homeassistant-stubs/components/volvo/coordinator.pyi +28 -15
  262. homeassistant-stubs/components/wake_on_lan/__init__.pyi +0 -1
  263. homeassistant-stubs/components/wake_on_lan/config_flow.pyi +1 -0
  264. homeassistant-stubs/components/webhook/trigger.pyi +2 -1
  265. homeassistant-stubs/components/workday/calendar.pyi +25 -0
  266. homeassistant-stubs/components/yalexs_ble/__init__.pyi +0 -1
  267. homeassistant-stubs/components/yalexs_ble/config_flow.pyi +2 -2
  268. homeassistant-stubs/components/zwave_js/__init__.pyi +1 -1
  269. homeassistant-stubs/components/zwave_js/config_flow.pyi +6 -3
  270. homeassistant-stubs/components/zwave_js/const.pyi +3 -0
  271. homeassistant-stubs/components/zwave_js/device_trigger.pyi +1 -1
  272. homeassistant-stubs/components/zwave_js/triggers/event.pyi +24 -9
  273. homeassistant-stubs/components/zwave_js/triggers/value_updated.pyi +11 -7
  274. homeassistant-stubs/config_entries.pyi +6 -1
  275. homeassistant-stubs/const.pyi +7 -46
  276. homeassistant-stubs/data_entry_flow.pyi +16 -3
  277. homeassistant-stubs/generated/entity_platforms.pyi +46 -0
  278. homeassistant-stubs/helpers/condition.pyi +3 -1
  279. homeassistant-stubs/helpers/config_validation.pyi +1 -1
  280. homeassistant-stubs/helpers/deprecation.pyi +1 -0
  281. homeassistant-stubs/helpers/device_registry.pyi +4 -3
  282. homeassistant-stubs/helpers/entity_component.pyi +1 -3
  283. homeassistant-stubs/helpers/event.pyi +2 -1
  284. homeassistant-stubs/helpers/intent.pyi +5 -8
  285. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +5 -1
  286. homeassistant-stubs/helpers/selector.pyi +16 -16
  287. homeassistant-stubs/helpers/service.pyi +12 -14
  288. homeassistant-stubs/helpers/service_info/esphome.pyi +12 -0
  289. homeassistant-stubs/helpers/{template.pyi → template/__init__.pyi} +14 -97
  290. homeassistant-stubs/helpers/template/context.pyi +16 -0
  291. homeassistant-stubs/helpers/template/extensions/__init__.pyi +8 -0
  292. homeassistant-stubs/helpers/template/extensions/base.pyi +21 -0
  293. homeassistant-stubs/helpers/template/extensions/base64.pyi +9 -0
  294. homeassistant-stubs/helpers/template/extensions/collection.pyi +18 -0
  295. homeassistant-stubs/helpers/template/extensions/crypto.pyi +13 -0
  296. homeassistant-stubs/helpers/template/extensions/math.pyi +43 -0
  297. homeassistant-stubs/helpers/template/extensions/regex.pyi +14 -0
  298. homeassistant-stubs/helpers/template/extensions/string.pyi +9 -0
  299. homeassistant-stubs/helpers/template/helpers.pyi +4 -0
  300. homeassistant-stubs/helpers/template/render_info.pyi +39 -0
  301. homeassistant-stubs/helpers/trigger.pyi +16 -5
  302. homeassistant-stubs/helpers/trigger_template_entity.pyi +2 -1
  303. homeassistant-stubs/runner.pyi +16 -0
  304. homeassistant-stubs/util/unit_conversion.pyi +6 -0
  305. {homeassistant_stubs-2025.9.3.dist-info → homeassistant_stubs-2025.10.0b0.dist-info}/METADATA +2 -2
  306. {homeassistant_stubs-2025.9.3.dist-info → homeassistant_stubs-2025.10.0b0.dist-info}/RECORD +308 -250
  307. homeassistant-stubs/components/home_connect/time.pyi +0 -29
  308. {homeassistant_stubs-2025.9.3.dist-info → homeassistant_stubs-2025.10.0b0.dist-info}/WHEEL +0 -0
  309. {homeassistant_stubs-2025.9.3.dist-info → homeassistant_stubs-2025.10.0b0.dist-info}/licenses/LICENSE +0 -0
@@ -3,12 +3,13 @@ from .const import DATA_BATTERY_CAPACITY as DATA_BATTERY_CAPACITY, DOMAIN as DOM
3
3
  from _typeshed import Incomplete
4
4
  from abc import abstractmethod
5
5
  from collections.abc import Callable as Callable, Coroutine
6
+ from dataclasses import dataclass
6
7
  from datetime import timedelta
7
8
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
9
  from homeassistant.core import HomeAssistant as HomeAssistant
9
10
  from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed
10
11
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
11
- from typing import Any
12
+ from typing import Any, Generic, TypeVar
12
13
  from volvocarsapi.api import VolvoCarsApi as VolvoCarsApi
13
14
  from volvocarsapi.models import VolvoCarsApiBaseModel, VolvoCarsValueStatusField, VolvoCarsVehicle as VolvoCarsVehicle
14
15
 
@@ -17,39 +18,51 @@ SLOW_INTERVAL: int
17
18
  MEDIUM_INTERVAL: int
18
19
  FAST_INTERVAL: int
19
20
  _LOGGER: Incomplete
20
- type VolvoConfigEntry = ConfigEntry[tuple[VolvoBaseCoordinator, ...]]
21
+
22
+ @dataclass
23
+ class VolvoContext:
24
+ api: VolvoCarsApi
25
+ vehicle: VolvoCarsVehicle
26
+
27
+ @dataclass
28
+ class VolvoRuntimeData:
29
+ interval_coordinators: tuple[VolvoBaseIntervalCoordinator, ...]
30
+ type VolvoConfigEntry = ConfigEntry[VolvoRuntimeData]
21
31
  type CoordinatorData = dict[str, VolvoCarsApiBaseModel | None]
22
32
 
23
33
  def _is_invalid_api_field(field: VolvoCarsApiBaseModel | None) -> bool: ...
34
+ T = TypeVar('T', bound=dict, default=dict[str, Any])
24
35
 
25
- class VolvoBaseCoordinator(DataUpdateCoordinator[CoordinatorData], metaclass=abc.ABCMeta):
36
+ class VolvoBaseCoordinator(DataUpdateCoordinator[T], Generic[T]):
26
37
  config_entry: VolvoConfigEntry
27
- api: Incomplete
28
- vehicle: Incomplete
38
+ context: Incomplete
39
+ def __init__(self, hass: HomeAssistant, entry: VolvoConfigEntry, context: VolvoContext, update_interval: timedelta | None, name: str) -> None: ...
40
+ def get_api_field(self, api_field: str | None) -> VolvoCarsApiBaseModel | None: ...
41
+
42
+ class VolvoBaseIntervalCoordinator(VolvoBaseCoordinator[CoordinatorData], metaclass=abc.ABCMeta):
29
43
  _api_calls: list[Callable[[], Coroutine[Any, Any, Any]]]
30
- def __init__(self, hass: HomeAssistant, entry: VolvoConfigEntry, api: VolvoCarsApi, vehicle: VolvoCarsVehicle, update_interval: timedelta, name: str) -> None: ...
44
+ def __init__(self, hass: HomeAssistant, entry: VolvoConfigEntry, context: VolvoContext, update_interval: timedelta, name: str) -> None: ...
31
45
  update_interval: Incomplete
32
46
  async def _async_setup(self) -> None: ...
33
47
  async def _async_update_data(self) -> CoordinatorData: ...
34
- def get_api_field(self, api_field: str | None) -> VolvoCarsApiBaseModel | None: ...
35
48
  @abstractmethod
36
49
  async def _async_determine_api_calls(self) -> list[Callable[[], Coroutine[Any, Any, Any]]]: ...
37
50
 
38
- class VolvoVerySlowIntervalCoordinator(VolvoBaseCoordinator):
39
- def __init__(self, hass: HomeAssistant, entry: VolvoConfigEntry, api: VolvoCarsApi, vehicle: VolvoCarsVehicle) -> None: ...
51
+ class VolvoVerySlowIntervalCoordinator(VolvoBaseIntervalCoordinator):
52
+ def __init__(self, hass: HomeAssistant, entry: VolvoConfigEntry, context: VolvoContext) -> None: ...
40
53
  async def _async_determine_api_calls(self) -> list[Callable[[], Coroutine[Any, Any, Any]]]: ...
41
54
  async def _async_update_data(self) -> CoordinatorData: ...
42
55
 
43
- class VolvoSlowIntervalCoordinator(VolvoBaseCoordinator):
44
- def __init__(self, hass: HomeAssistant, entry: VolvoConfigEntry, api: VolvoCarsApi, vehicle: VolvoCarsVehicle) -> None: ...
56
+ class VolvoSlowIntervalCoordinator(VolvoBaseIntervalCoordinator):
57
+ def __init__(self, hass: HomeAssistant, entry: VolvoConfigEntry, context: VolvoContext) -> None: ...
45
58
  async def _async_determine_api_calls(self) -> list[Callable[[], Coroutine[Any, Any, Any]]]: ...
46
59
 
47
- class VolvoMediumIntervalCoordinator(VolvoBaseCoordinator):
60
+ class VolvoMediumIntervalCoordinator(VolvoBaseIntervalCoordinator):
48
61
  _supported_capabilities: list[str]
49
- def __init__(self, hass: HomeAssistant, entry: VolvoConfigEntry, api: VolvoCarsApi, vehicle: VolvoCarsVehicle) -> None: ...
62
+ def __init__(self, hass: HomeAssistant, entry: VolvoConfigEntry, context: VolvoContext) -> None: ...
50
63
  async def _async_determine_api_calls(self) -> list[Callable[[], Coroutine[Any, Any, Any]]]: ...
51
64
  async def _async_get_energy_state(self) -> dict[str, VolvoCarsValueStatusField | None]: ...
52
65
 
53
- class VolvoFastIntervalCoordinator(VolvoBaseCoordinator):
54
- def __init__(self, hass: HomeAssistant, entry: VolvoConfigEntry, api: VolvoCarsApi, vehicle: VolvoCarsVehicle) -> None: ...
66
+ class VolvoFastIntervalCoordinator(VolvoBaseIntervalCoordinator):
67
+ def __init__(self, hass: HomeAssistant, entry: VolvoConfigEntry, context: VolvoContext) -> None: ...
55
68
  async def _async_determine_api_calls(self) -> list[Callable[[], Coroutine[Any, Any, Any]]]: ...
@@ -13,4 +13,3 @@ CONFIG_SCHEMA: Incomplete
13
13
  async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
14
14
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
15
15
  async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
16
- async def update_listener(hass: HomeAssistant, entry: ConfigEntry) -> None: ...
@@ -17,4 +17,5 @@ OPTIONS_FLOW: Incomplete
17
17
  class WakeonLanConfigFlowHandler(SchemaConfigFlowHandler, domain=DOMAIN):
18
18
  config_flow = CONFIG_FLOW
19
19
  options_flow = OPTIONS_FLOW
20
+ options_flow_reloads: bool
20
21
  def async_config_entry_title(self, options: Mapping[str, Any]) -> str: ...
@@ -4,8 +4,9 @@ from aiohttp import web as web
4
4
  from dataclasses import dataclass
5
5
  from homeassistant.const import CONF_PLATFORM as CONF_PLATFORM, CONF_WEBHOOK_ID as CONF_WEBHOOK_ID
6
6
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HassJob as HassJob, HomeAssistant as HomeAssistant, callback as callback
7
+ from homeassistant.helpers.template import Template as Template
7
8
  from homeassistant.helpers.trigger import TriggerActionType as TriggerActionType, TriggerInfo as TriggerInfo
8
- from homeassistant.helpers.typing import ConfigType as ConfigType
9
+ from homeassistant.helpers.typing import ConfigType as ConfigType, TemplateVarsType as TemplateVarsType
9
10
 
10
11
  _LOGGER: Incomplete
11
12
  DEPENDENCIES: Incomplete
@@ -0,0 +1,25 @@
1
+ from . import WorkdayConfigEntry as WorkdayConfigEntry
2
+ from .const import CONF_EXCLUDES as CONF_EXCLUDES, CONF_OFFSET as CONF_OFFSET, CONF_WORKDAYS as CONF_WORKDAYS
3
+ from .entity import BaseWorkdayEntity as BaseWorkdayEntity
4
+ from _typeshed import Incomplete
5
+ from datetime import datetime
6
+ from holidays import HolidayBase as HolidayBase
7
+ from homeassistant.components.calendar import CalendarEntity as CalendarEntity, CalendarEvent as CalendarEvent
8
+ from homeassistant.const import CONF_NAME as CONF_NAME
9
+ from homeassistant.core import HomeAssistant as HomeAssistant
10
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
11
+
12
+ CALENDAR_DAYS_AHEAD: int
13
+
14
+ async def async_setup_entry(hass: HomeAssistant, entry: WorkdayConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
15
+
16
+ class WorkdayCalendarEntity(BaseWorkdayEntity, CalendarEntity):
17
+ _attr_unique_id: Incomplete
18
+ _attr_event: Incomplete
19
+ event_list: list[CalendarEvent]
20
+ _name: Incomplete
21
+ def __init__(self, obj_holidays: HolidayBase, workdays: list[str], excludes: list[str], days_offset: int, name: str, entry_id: str) -> None: ...
22
+ def update_data(self, now: datetime) -> None: ...
23
+ @property
24
+ def event(self) -> CalendarEvent | None: ...
25
+ async def async_get_events(self, hass: HomeAssistant, start_date: datetime, end_date: datetime) -> list[CalendarEvent]: ...
@@ -13,6 +13,5 @@ type YALEXSBLEConfigEntry = ConfigEntry[YaleXSBLEData]
13
13
  PLATFORMS: list[Platform]
14
14
 
15
15
  async def async_setup_entry(hass: HomeAssistant, entry: YALEXSBLEConfigEntry) -> bool: ...
16
- async def _async_update_listener(hass: HomeAssistant, entry: YALEXSBLEConfigEntry) -> None: ...
17
16
  async def _async_wait_for_first_update(push_lock: PushLock, local_name: str) -> None: ...
18
17
  async def async_unload_entry(hass: HomeAssistant, entry: YALEXSBLEConfigEntry) -> bool: ...
@@ -5,7 +5,7 @@ from _typeshed import Incomplete
5
5
  from bleak_retry_connector import BLEDevice as BLEDevice
6
6
  from collections.abc import Mapping
7
7
  from homeassistant.components.bluetooth import BluetoothServiceInfoBleak as BluetoothServiceInfoBleak, async_ble_device_from_address as async_ble_device_from_address, async_discovered_service_info as async_discovered_service_info
8
- from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
8
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlowWithReload as OptionsFlowWithReload
9
9
  from homeassistant.const import CONF_ADDRESS as CONF_ADDRESS
10
10
  from homeassistant.core import callback as callback
11
11
  from homeassistant.data_entry_flow import AbortFlow as AbortFlow
@@ -41,6 +41,6 @@ class YalexsConfigFlow(ConfigFlow, domain=DOMAIN):
41
41
  @callback
42
42
  def async_get_options_flow(config_entry: ConfigEntry) -> YaleXSBLEOptionsFlowHandler: ...
43
43
 
44
- class YaleXSBLEOptionsFlowHandler(OptionsFlow):
44
+ class YaleXSBLEOptionsFlowHandler(OptionsFlowWithReload):
45
45
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
46
46
  async def async_step_device_options(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -1,7 +1,7 @@
1
1
  import asyncio
2
2
  from .addon import get_addon_manager as get_addon_manager
3
3
  from .api import async_register_api as async_register_api
4
- from .const import ATTR_ACKNOWLEDGED_FRAMES as ATTR_ACKNOWLEDGED_FRAMES, ATTR_COMMAND_CLASS as ATTR_COMMAND_CLASS, ATTR_COMMAND_CLASS_NAME as ATTR_COMMAND_CLASS_NAME, ATTR_DATA_TYPE as ATTR_DATA_TYPE, ATTR_DATA_TYPE_LABEL as ATTR_DATA_TYPE_LABEL, ATTR_DIRECTION as ATTR_DIRECTION, ATTR_ENDPOINT as ATTR_ENDPOINT, ATTR_EVENT as ATTR_EVENT, ATTR_EVENT_DATA as ATTR_EVENT_DATA, ATTR_EVENT_LABEL as ATTR_EVENT_LABEL, ATTR_EVENT_TYPE as ATTR_EVENT_TYPE, ATTR_EVENT_TYPE_LABEL as ATTR_EVENT_TYPE_LABEL, ATTR_HOME_ID as ATTR_HOME_ID, ATTR_LABEL as ATTR_LABEL, ATTR_NODE_ID as ATTR_NODE_ID, ATTR_PARAMETERS as ATTR_PARAMETERS, ATTR_PROPERTY as ATTR_PROPERTY, ATTR_PROPERTY_KEY as ATTR_PROPERTY_KEY, ATTR_PROPERTY_KEY_NAME as ATTR_PROPERTY_KEY_NAME, ATTR_PROPERTY_NAME as ATTR_PROPERTY_NAME, ATTR_STATUS as ATTR_STATUS, ATTR_TEST_NODE_ID as ATTR_TEST_NODE_ID, ATTR_TYPE as ATTR_TYPE, ATTR_VALUE as ATTR_VALUE, ATTR_VALUE_RAW as ATTR_VALUE_RAW, CONF_ADDON_DEVICE as CONF_ADDON_DEVICE, CONF_ADDON_LR_S2_ACCESS_CONTROL_KEY as CONF_ADDON_LR_S2_ACCESS_CONTROL_KEY, CONF_ADDON_LR_S2_AUTHENTICATED_KEY as CONF_ADDON_LR_S2_AUTHENTICATED_KEY, CONF_ADDON_NETWORK_KEY as CONF_ADDON_NETWORK_KEY, CONF_ADDON_S0_LEGACY_KEY as CONF_ADDON_S0_LEGACY_KEY, CONF_ADDON_S2_ACCESS_CONTROL_KEY as CONF_ADDON_S2_ACCESS_CONTROL_KEY, CONF_ADDON_S2_AUTHENTICATED_KEY as CONF_ADDON_S2_AUTHENTICATED_KEY, CONF_ADDON_S2_UNAUTHENTICATED_KEY as CONF_ADDON_S2_UNAUTHENTICATED_KEY, CONF_DATA_COLLECTION_OPTED_IN as CONF_DATA_COLLECTION_OPTED_IN, CONF_INSTALLER_MODE as CONF_INSTALLER_MODE, CONF_INTEGRATION_CREATED_ADDON as CONF_INTEGRATION_CREATED_ADDON, CONF_KEEP_OLD_DEVICES as CONF_KEEP_OLD_DEVICES, CONF_LR_S2_ACCESS_CONTROL_KEY as CONF_LR_S2_ACCESS_CONTROL_KEY, CONF_LR_S2_AUTHENTICATED_KEY as CONF_LR_S2_AUTHENTICATED_KEY, CONF_NETWORK_KEY as CONF_NETWORK_KEY, CONF_S0_LEGACY_KEY as CONF_S0_LEGACY_KEY, CONF_S2_ACCESS_CONTROL_KEY as CONF_S2_ACCESS_CONTROL_KEY, CONF_S2_AUTHENTICATED_KEY as CONF_S2_AUTHENTICATED_KEY, CONF_S2_UNAUTHENTICATED_KEY as CONF_S2_UNAUTHENTICATED_KEY, CONF_USB_PATH as CONF_USB_PATH, CONF_USE_ADDON as CONF_USE_ADDON, DOMAIN as DOMAIN, EVENT_DEVICE_ADDED_TO_REGISTRY as EVENT_DEVICE_ADDED_TO_REGISTRY, EVENT_VALUE_UPDATED as EVENT_VALUE_UPDATED, LIB_LOGGER as LIB_LOGGER, LOGGER as LOGGER, LR_ADDON_VERSION as LR_ADDON_VERSION, USER_AGENT as USER_AGENT, ZWAVE_JS_NOTIFICATION_EVENT as ZWAVE_JS_NOTIFICATION_EVENT, ZWAVE_JS_VALUE_NOTIFICATION_EVENT as ZWAVE_JS_VALUE_NOTIFICATION_EVENT, ZWAVE_JS_VALUE_UPDATED_EVENT as ZWAVE_JS_VALUE_UPDATED_EVENT
4
+ from .const import ATTR_ACKNOWLEDGED_FRAMES as ATTR_ACKNOWLEDGED_FRAMES, ATTR_COMMAND_CLASS as ATTR_COMMAND_CLASS, ATTR_COMMAND_CLASS_NAME as ATTR_COMMAND_CLASS_NAME, ATTR_DATA_TYPE as ATTR_DATA_TYPE, ATTR_DATA_TYPE_LABEL as ATTR_DATA_TYPE_LABEL, ATTR_DIRECTION as ATTR_DIRECTION, ATTR_ENDPOINT as ATTR_ENDPOINT, ATTR_EVENT as ATTR_EVENT, ATTR_EVENT_DATA as ATTR_EVENT_DATA, ATTR_EVENT_LABEL as ATTR_EVENT_LABEL, ATTR_EVENT_TYPE as ATTR_EVENT_TYPE, ATTR_EVENT_TYPE_LABEL as ATTR_EVENT_TYPE_LABEL, ATTR_HOME_ID as ATTR_HOME_ID, ATTR_LABEL as ATTR_LABEL, ATTR_NODE_ID as ATTR_NODE_ID, ATTR_PARAMETERS as ATTR_PARAMETERS, ATTR_PROPERTY as ATTR_PROPERTY, ATTR_PROPERTY_KEY as ATTR_PROPERTY_KEY, ATTR_PROPERTY_KEY_NAME as ATTR_PROPERTY_KEY_NAME, ATTR_PROPERTY_NAME as ATTR_PROPERTY_NAME, ATTR_STATUS as ATTR_STATUS, ATTR_TEST_NODE_ID as ATTR_TEST_NODE_ID, ATTR_TYPE as ATTR_TYPE, ATTR_VALUE as ATTR_VALUE, ATTR_VALUE_RAW as ATTR_VALUE_RAW, CONF_ADDON_DEVICE as CONF_ADDON_DEVICE, CONF_ADDON_LR_S2_ACCESS_CONTROL_KEY as CONF_ADDON_LR_S2_ACCESS_CONTROL_KEY, CONF_ADDON_LR_S2_AUTHENTICATED_KEY as CONF_ADDON_LR_S2_AUTHENTICATED_KEY, CONF_ADDON_NETWORK_KEY as CONF_ADDON_NETWORK_KEY, CONF_ADDON_S0_LEGACY_KEY as CONF_ADDON_S0_LEGACY_KEY, CONF_ADDON_S2_ACCESS_CONTROL_KEY as CONF_ADDON_S2_ACCESS_CONTROL_KEY, CONF_ADDON_S2_AUTHENTICATED_KEY as CONF_ADDON_S2_AUTHENTICATED_KEY, CONF_ADDON_S2_UNAUTHENTICATED_KEY as CONF_ADDON_S2_UNAUTHENTICATED_KEY, CONF_ADDON_SOCKET as CONF_ADDON_SOCKET, CONF_DATA_COLLECTION_OPTED_IN as CONF_DATA_COLLECTION_OPTED_IN, CONF_INSTALLER_MODE as CONF_INSTALLER_MODE, CONF_INTEGRATION_CREATED_ADDON as CONF_INTEGRATION_CREATED_ADDON, CONF_KEEP_OLD_DEVICES as CONF_KEEP_OLD_DEVICES, CONF_LR_S2_ACCESS_CONTROL_KEY as CONF_LR_S2_ACCESS_CONTROL_KEY, CONF_LR_S2_AUTHENTICATED_KEY as CONF_LR_S2_AUTHENTICATED_KEY, CONF_NETWORK_KEY as CONF_NETWORK_KEY, CONF_S0_LEGACY_KEY as CONF_S0_LEGACY_KEY, CONF_S2_ACCESS_CONTROL_KEY as CONF_S2_ACCESS_CONTROL_KEY, CONF_S2_AUTHENTICATED_KEY as CONF_S2_AUTHENTICATED_KEY, CONF_S2_UNAUTHENTICATED_KEY as CONF_S2_UNAUTHENTICATED_KEY, CONF_SOCKET_PATH as CONF_SOCKET_PATH, CONF_USB_PATH as CONF_USB_PATH, CONF_USE_ADDON as CONF_USE_ADDON, DOMAIN as DOMAIN, ESPHOME_ADDON_VERSION as ESPHOME_ADDON_VERSION, EVENT_DEVICE_ADDED_TO_REGISTRY as EVENT_DEVICE_ADDED_TO_REGISTRY, EVENT_VALUE_UPDATED as EVENT_VALUE_UPDATED, LIB_LOGGER as LIB_LOGGER, LOGGER as LOGGER, LR_ADDON_VERSION as LR_ADDON_VERSION, USER_AGENT as USER_AGENT, ZWAVE_JS_NOTIFICATION_EVENT as ZWAVE_JS_NOTIFICATION_EVENT, ZWAVE_JS_VALUE_NOTIFICATION_EVENT as ZWAVE_JS_VALUE_NOTIFICATION_EVENT, ZWAVE_JS_VALUE_UPDATED_EVENT as ZWAVE_JS_VALUE_UPDATED_EVENT
5
5
  from .discovery import async_discover_node_values as async_discover_node_values, async_discover_single_value as async_discover_single_value
6
6
  from .helpers import async_disable_server_logging_if_needed as async_disable_server_logging_if_needed, async_enable_server_logging_if_needed as async_enable_server_logging_if_needed, async_enable_statistics as async_enable_statistics, get_device_id as get_device_id, get_device_id_ext as get_device_id_ext, get_network_identifier_for_notification as get_network_identifier_for_notification, get_unique_id as get_unique_id, get_valueless_base_unique_id as get_valueless_base_unique_id
7
7
  from .migrate import async_migrate_discovered_value as async_migrate_discovered_value
@@ -1,19 +1,20 @@
1
1
  import asyncio
2
2
  import voluptuous as vol
3
3
  from .addon import get_addon_manager as get_addon_manager
4
- from .const import ADDON_SLUG as ADDON_SLUG, CONF_ADDON_DEVICE as CONF_ADDON_DEVICE, CONF_ADDON_LR_S2_ACCESS_CONTROL_KEY as CONF_ADDON_LR_S2_ACCESS_CONTROL_KEY, CONF_ADDON_LR_S2_AUTHENTICATED_KEY as CONF_ADDON_LR_S2_AUTHENTICATED_KEY, CONF_ADDON_NETWORK_KEY as CONF_ADDON_NETWORK_KEY, CONF_ADDON_S0_LEGACY_KEY as CONF_ADDON_S0_LEGACY_KEY, CONF_ADDON_S2_ACCESS_CONTROL_KEY as CONF_ADDON_S2_ACCESS_CONTROL_KEY, CONF_ADDON_S2_AUTHENTICATED_KEY as CONF_ADDON_S2_AUTHENTICATED_KEY, CONF_ADDON_S2_UNAUTHENTICATED_KEY as CONF_ADDON_S2_UNAUTHENTICATED_KEY, CONF_INTEGRATION_CREATED_ADDON as CONF_INTEGRATION_CREATED_ADDON, CONF_KEEP_OLD_DEVICES as CONF_KEEP_OLD_DEVICES, CONF_LR_S2_ACCESS_CONTROL_KEY as CONF_LR_S2_ACCESS_CONTROL_KEY, CONF_LR_S2_AUTHENTICATED_KEY as CONF_LR_S2_AUTHENTICATED_KEY, CONF_S0_LEGACY_KEY as CONF_S0_LEGACY_KEY, CONF_S2_ACCESS_CONTROL_KEY as CONF_S2_ACCESS_CONTROL_KEY, CONF_S2_AUTHENTICATED_KEY as CONF_S2_AUTHENTICATED_KEY, CONF_S2_UNAUTHENTICATED_KEY as CONF_S2_UNAUTHENTICATED_KEY, CONF_USB_PATH as CONF_USB_PATH, CONF_USE_ADDON as CONF_USE_ADDON, DOMAIN as DOMAIN
4
+ from .const import ADDON_SLUG as ADDON_SLUG, CONF_ADDON_DEVICE as CONF_ADDON_DEVICE, CONF_ADDON_LR_S2_ACCESS_CONTROL_KEY as CONF_ADDON_LR_S2_ACCESS_CONTROL_KEY, CONF_ADDON_LR_S2_AUTHENTICATED_KEY as CONF_ADDON_LR_S2_AUTHENTICATED_KEY, CONF_ADDON_NETWORK_KEY as CONF_ADDON_NETWORK_KEY, CONF_ADDON_S0_LEGACY_KEY as CONF_ADDON_S0_LEGACY_KEY, CONF_ADDON_S2_ACCESS_CONTROL_KEY as CONF_ADDON_S2_ACCESS_CONTROL_KEY, CONF_ADDON_S2_AUTHENTICATED_KEY as CONF_ADDON_S2_AUTHENTICATED_KEY, CONF_ADDON_S2_UNAUTHENTICATED_KEY as CONF_ADDON_S2_UNAUTHENTICATED_KEY, CONF_ADDON_SOCKET as CONF_ADDON_SOCKET, CONF_INTEGRATION_CREATED_ADDON as CONF_INTEGRATION_CREATED_ADDON, CONF_KEEP_OLD_DEVICES as CONF_KEEP_OLD_DEVICES, CONF_LR_S2_ACCESS_CONTROL_KEY as CONF_LR_S2_ACCESS_CONTROL_KEY, CONF_LR_S2_AUTHENTICATED_KEY as CONF_LR_S2_AUTHENTICATED_KEY, CONF_S0_LEGACY_KEY as CONF_S0_LEGACY_KEY, CONF_S2_ACCESS_CONTROL_KEY as CONF_S2_ACCESS_CONTROL_KEY, CONF_S2_AUTHENTICATED_KEY as CONF_S2_AUTHENTICATED_KEY, CONF_S2_UNAUTHENTICATED_KEY as CONF_S2_UNAUTHENTICATED_KEY, CONF_SOCKET_PATH as CONF_SOCKET_PATH, CONF_USB_PATH as CONF_USB_PATH, CONF_USE_ADDON as CONF_USE_ADDON, DOMAIN as DOMAIN
5
5
  from .helpers import CannotConnect as CannotConnect, async_get_version_info as async_get_version_info, async_wait_for_driver_ready_event as async_wait_for_driver_ready_event
6
6
  from .models import ZwaveJSConfigEntry as ZwaveJSConfigEntry
7
7
  from _typeshed import Incomplete
8
8
  from homeassistant.components import usb as usb
9
9
  from homeassistant.components.hassio import AddonError as AddonError, AddonInfo as AddonInfo, AddonManager as AddonManager, AddonState as AddonState
10
- from homeassistant.config_entries import ConfigEntryState as ConfigEntryState, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, SOURCE_USB as SOURCE_USB
10
+ from homeassistant.config_entries import ConfigEntryState as ConfigEntryState, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, SOURCE_ESPHOME as SOURCE_ESPHOME, SOURCE_USB as SOURCE_USB
11
11
  from homeassistant.const import CONF_NAME as CONF_NAME, CONF_URL as CONF_URL
12
12
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
13
13
  from homeassistant.data_entry_flow import AbortFlow as AbortFlow
14
14
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
15
15
  from homeassistant.helpers import selector as selector
16
16
  from homeassistant.helpers.hassio import is_hassio as is_hassio
17
+ from homeassistant.helpers.service_info.esphome import ESPHomeServiceInfo as ESPHomeServiceInfo
17
18
  from homeassistant.helpers.service_info.hassio import HassioServiceInfo as HassioServiceInfo
18
19
  from homeassistant.helpers.service_info.usb import UsbServiceInfo as UsbServiceInfo
19
20
  from homeassistant.helpers.service_info.zeroconf import ZeroconfServiceInfo as ZeroconfServiceInfo
@@ -54,6 +55,7 @@ class ZWaveJSConfigFlow(ConfigFlow, domain=DOMAIN):
54
55
  lr_s2_access_control_key: str | None
55
56
  lr_s2_authenticated_key: str | None
56
57
  usb_path: str | None
58
+ socket_path: str | None
57
59
  ws_address: str | None
58
60
  restart_addon: bool
59
61
  integration_created_addon: bool
@@ -70,7 +72,7 @@ class ZWaveJSConfigFlow(ConfigFlow, domain=DOMAIN):
70
72
  _addon_config_updates: dict[str, Any]
71
73
  _migrating: bool
72
74
  _reconfigure_config_entry: ZwaveJSConfigEntry | None
73
- _usb_discovery: bool
75
+ _adapter_discovered: bool
74
76
  _recommended_install: bool
75
77
  _rf_region: str | None
76
78
  def __init__(self) -> None: ...
@@ -121,6 +123,7 @@ class ZWaveJSConfigFlow(ConfigFlow, domain=DOMAIN):
121
123
  async def async_step_migration_done(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
122
124
  async def async_step_finish_addon_setup_migrate(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
123
125
  async def async_step_finish_addon_setup_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
126
+ async def async_step_esphome(self, discovery_info: ESPHomeServiceInfo) -> ConfigFlowResult: ...
124
127
  async def async_revert_addon_config(self, reason: str) -> ConfigFlowResult: ...
125
128
  async def _async_backup_network(self) -> None: ...
126
129
  async def _async_restore_network_backup(self) -> None: ...
@@ -2,6 +2,7 @@ from _typeshed import Incomplete
2
2
  from homeassistant.const import APPLICATION_NAME as APPLICATION_NAME
3
3
 
4
4
  LR_ADDON_VERSION: Incomplete
5
+ ESPHOME_ADDON_VERSION: Incomplete
5
6
  USER_AGENT: Incomplete
6
7
  CONF_ADDON_DEVICE: str
7
8
  CONF_ADDON_NETWORK_KEY: str
@@ -11,6 +12,7 @@ CONF_ADDON_S2_AUTHENTICATED_KEY: str
11
12
  CONF_ADDON_S2_UNAUTHENTICATED_KEY: str
12
13
  CONF_ADDON_LR_S2_ACCESS_CONTROL_KEY: str
13
14
  CONF_ADDON_LR_S2_AUTHENTICATED_KEY: str
15
+ CONF_ADDON_SOCKET: str
14
16
  CONF_INSTALLER_MODE: str
15
17
  CONF_INTEGRATION_CREATED_ADDON: str
16
18
  CONF_KEEP_OLD_DEVICES: str
@@ -21,6 +23,7 @@ CONF_S2_AUTHENTICATED_KEY: str
21
23
  CONF_S2_UNAUTHENTICATED_KEY: str
22
24
  CONF_LR_S2_ACCESS_CONTROL_KEY: str
23
25
  CONF_LR_S2_AUTHENTICATED_KEY: str
26
+ CONF_SOCKET_PATH: str
24
27
  CONF_USB_PATH: str
25
28
  CONF_USE_ADDON: str
26
29
  CONF_DATA_COLLECTION_OPTED_IN: str
@@ -7,7 +7,7 @@ from .triggers.value_updated import ATTR_FROM as ATTR_FROM, ATTR_TO as ATTR_TO
7
7
  from _typeshed import Incomplete
8
8
  from homeassistant.components.device_automation import DEVICE_TRIGGER_BASE_SCHEMA as DEVICE_TRIGGER_BASE_SCHEMA, InvalidDeviceAutomationConfig as InvalidDeviceAutomationConfig
9
9
  from homeassistant.components.homeassistant.triggers import event as event, state as state
10
- from homeassistant.const import CONF_DEVICE_ID as CONF_DEVICE_ID, CONF_DOMAIN as CONF_DOMAIN, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_PLATFORM as CONF_PLATFORM, CONF_TYPE as CONF_TYPE
10
+ from homeassistant.const import CONF_DEVICE_ID as CONF_DEVICE_ID, CONF_DOMAIN as CONF_DOMAIN, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_OPTIONS as CONF_OPTIONS, CONF_PLATFORM as CONF_PLATFORM, CONF_TYPE as CONF_TYPE
11
11
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HomeAssistant as HomeAssistant
12
12
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
13
13
  from homeassistant.helpers.trigger import TriggerActionType as TriggerActionType, TriggerInfo as TriggerInfo
@@ -3,11 +3,13 @@ from ..helpers import async_get_nodes_from_targets as async_get_nodes_from_targe
3
3
  from .trigger_helpers import async_bypass_dynamic_config_validation as async_bypass_dynamic_config_validation
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Callable as Callable
6
- from homeassistant.const import ATTR_CONFIG_ENTRY_ID as ATTR_CONFIG_ENTRY_ID, ATTR_DEVICE_ID as ATTR_DEVICE_ID, ATTR_ENTITY_ID as ATTR_ENTITY_ID, CONF_PLATFORM as CONF_PLATFORM
6
+ from homeassistant.const import ATTR_CONFIG_ENTRY_ID as ATTR_CONFIG_ENTRY_ID, ATTR_DEVICE_ID as ATTR_DEVICE_ID, ATTR_ENTITY_ID as ATTR_ENTITY_ID, CONF_OPTIONS as CONF_OPTIONS, CONF_PLATFORM as CONF_PLATFORM
7
7
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HassJob as HassJob, HomeAssistant as HomeAssistant, callback as callback
8
+ from homeassistant.helpers import device_registry as dr
8
9
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
9
- from homeassistant.helpers.trigger import Trigger as Trigger, TriggerActionType as TriggerActionType, TriggerInfo as TriggerInfo
10
+ from homeassistant.helpers.trigger import Trigger as Trigger, TriggerActionType as TriggerActionType, TriggerConfig as TriggerConfig, TriggerData as TriggerData, TriggerInfo as TriggerInfo, move_top_level_schema_fields_to_options as move_top_level_schema_fields_to_options
10
11
  from homeassistant.helpers.typing import ConfigType as ConfigType
12
+ from typing import Any
11
13
  from zwave_js_server.model.driver import Driver as Driver
12
14
 
13
15
  RELATIVE_PLATFORM_TYPE: Incomplete
@@ -17,15 +19,28 @@ def validate_non_node_event_source(obj: dict) -> dict: ...
17
19
  def validate_event_name(obj: dict) -> dict: ...
18
20
  def validate_event_data(obj: dict) -> dict: ...
19
21
 
20
- TRIGGER_SCHEMA: Incomplete
21
-
22
- async def async_validate_trigger_config(hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
23
- async def async_attach_trigger(hass: HomeAssistant, config: ConfigType, action: TriggerActionType, trigger_info: TriggerInfo, *, platform_type: str = ...) -> CALLBACK_TYPE: ...
22
+ _OPTIONS_SCHEMA_DICT: Incomplete
23
+ _CONFIG_SCHEMA: Incomplete
24
24
 
25
25
  class EventTrigger(Trigger):
26
- _config: Incomplete
27
- _hass: Incomplete
28
- def __init__(self, hass: HomeAssistant, config: ConfigType) -> None: ...
26
+ _hass: HomeAssistant
27
+ _options: dict[str, Any]
28
+ _event_source: str
29
+ _event_name: str
30
+ _event_data_filter: dict
31
+ _job: HassJob
32
+ _trigger_data: TriggerData
33
+ _unsubs: list[Callable]
34
+ _platform_type = PLATFORM_TYPE
35
+ @classmethod
36
+ async def async_validate_complete_config(cls, hass: HomeAssistant, complete_config: ConfigType) -> ConfigType: ...
29
37
  @classmethod
30
38
  async def async_validate_config(cls, hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
39
+ def __init__(self, hass: HomeAssistant, config: TriggerConfig) -> None: ...
31
40
  async def async_attach(self, action: TriggerActionType, trigger_info: TriggerInfo) -> CALLBACK_TYPE: ...
41
+ @callback
42
+ def _async_on_event(self, event_data: dict, device: dr.DeviceEntry | None = None) -> None: ...
43
+ @callback
44
+ def _async_remove(self) -> None: ...
45
+ @callback
46
+ def _create_zwave_listeners(self) -> None: ...
@@ -4,11 +4,12 @@ from ..helpers import async_get_nodes_from_targets as async_get_nodes_from_targe
4
4
  from .trigger_helpers import async_bypass_dynamic_config_validation as async_bypass_dynamic_config_validation
5
5
  from _typeshed import Incomplete
6
6
  from collections.abc import Callable as Callable
7
- from homeassistant.const import ATTR_DEVICE_ID as ATTR_DEVICE_ID, ATTR_ENTITY_ID as ATTR_ENTITY_ID, CONF_PLATFORM as CONF_PLATFORM, MATCH_ALL as MATCH_ALL
7
+ from homeassistant.const import ATTR_DEVICE_ID as ATTR_DEVICE_ID, ATTR_ENTITY_ID as ATTR_ENTITY_ID, CONF_OPTIONS as CONF_OPTIONS, CONF_PLATFORM as CONF_PLATFORM, MATCH_ALL as MATCH_ALL
8
8
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HassJob as HassJob, HomeAssistant as HomeAssistant, callback as callback
9
9
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
10
- from homeassistant.helpers.trigger import Trigger as Trigger, TriggerActionType as TriggerActionType, TriggerInfo as TriggerInfo
10
+ from homeassistant.helpers.trigger import Trigger as Trigger, TriggerActionType as TriggerActionType, TriggerConfig as TriggerConfig, TriggerInfo as TriggerInfo, move_top_level_schema_fields_to_options as move_top_level_schema_fields_to_options
11
11
  from homeassistant.helpers.typing import ConfigType as ConfigType
12
+ from typing import Any
12
13
  from zwave_js_server.model.driver import Driver as Driver
13
14
  from zwave_js_server.model.value import Value as Value
14
15
 
@@ -16,15 +17,18 @@ RELATIVE_PLATFORM_TYPE: Incomplete
16
17
  PLATFORM_TYPE: Incomplete
17
18
  ATTR_FROM: str
18
19
  ATTR_TO: str
19
- TRIGGER_SCHEMA: Incomplete
20
+ _OPTIONS_SCHEMA_DICT: Incomplete
21
+ _CONFIG_SCHEMA: Incomplete
20
22
 
21
23
  async def async_validate_trigger_config(hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
22
- async def async_attach_trigger(hass: HomeAssistant, config: ConfigType, action: TriggerActionType, trigger_info: TriggerInfo, *, platform_type: str = ...) -> CALLBACK_TYPE: ...
24
+ async def async_attach_trigger(hass: HomeAssistant, options: ConfigType, action: TriggerActionType, trigger_info: TriggerInfo, *, platform_type: str = ...) -> CALLBACK_TYPE: ...
23
25
 
24
26
  class ValueUpdatedTrigger(Trigger):
25
- _config: Incomplete
26
- _hass: Incomplete
27
- def __init__(self, hass: HomeAssistant, config: ConfigType) -> None: ...
27
+ _hass: HomeAssistant
28
+ _options: dict[str, Any]
29
+ @classmethod
30
+ async def async_validate_complete_config(cls, hass: HomeAssistant, complete_config: ConfigType) -> ConfigType: ...
28
31
  @classmethod
29
32
  async def async_validate_config(cls, hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
33
+ def __init__(self, hass: HomeAssistant, config: TriggerConfig) -> None: ...
30
34
  async def async_attach(self, action: TriggerActionType, trigger_info: TriggerInfo) -> CALLBACK_TYPE: ...
@@ -43,6 +43,7 @@ _LOGGER: Incomplete
43
43
  SOURCE_BLUETOOTH: str
44
44
  SOURCE_DHCP: str
45
45
  SOURCE_DISCOVERY: str
46
+ SOURCE_ESPHOME: str
46
47
  SOURCE_HARDWARE: str
47
48
  SOURCE_HASSIO: str
48
49
  SOURCE_HOMEKIT: str
@@ -127,12 +128,16 @@ class ConfigFlowContext(FlowContext, total=False):
127
128
  unique_id: str | None
128
129
 
129
130
  class ConfigFlowResult(FlowResult[ConfigFlowContext, str], total=False):
131
+ next_flow: tuple[FlowType, str]
130
132
  minor_version: int
131
133
  options: Mapping[str, Any]
132
134
  result: ConfigEntry
133
135
  subentries: Iterable[ConfigSubentryData]
134
136
  version: int
135
137
 
138
+ class FlowType(StrEnum):
139
+ CONFIG_FLOW = 'config_flow'
140
+
136
141
  def _validate_item(*, disabled_by: ConfigEntryDisabler | Any | None = None) -> None: ...
137
142
 
138
143
  class ConfigSubentryData(TypedDict):
@@ -415,7 +420,7 @@ class ConfigFlow(ConfigEntryBaseFlow):
415
420
  async def async_step_usb(self, discovery_info: UsbServiceInfo) -> ConfigFlowResult: ...
416
421
  async def async_step_zeroconf(self, discovery_info: ZeroconfServiceInfo) -> ConfigFlowResult: ...
417
422
  @callback
418
- def async_create_entry(self, *, title: str, data: Mapping[str, Any], description: str | None = None, description_placeholders: Mapping[str, str] | None = None, options: Mapping[str, Any] | None = None, subentries: Iterable[ConfigSubentryData] | None = None) -> ConfigFlowResult: ...
423
+ def async_create_entry(self, *, title: str, data: Mapping[str, Any], description: str | None = None, description_placeholders: Mapping[str, str] | None = None, next_flow: tuple[FlowType, str] | None = None, options: Mapping[str, Any] | None = None, subentries: Iterable[ConfigSubentryData] | None = None) -> ConfigFlowResult: ...
419
424
  @callback
420
425
  def async_update_reload_and_abort(self, entry: ConfigEntry, *, unique_id: str | None | UndefinedType = ..., title: str | UndefinedType = ..., data: Mapping[str, Any] | UndefinedType = ..., data_updates: Mapping[str, Any] | UndefinedType = ..., options: Mapping[str, Any] | UndefinedType = ..., reason: str | UndefinedType = ..., reload_even_if_entry_is_unchanged: bool = True) -> ConfigFlowResult: ...
421
426
  @callback
@@ -1,4 +1,5 @@
1
1
  from .core import EventStateChangedData as EventStateChangedData, EventStateReportedData as EventStateReportedData
2
+ from .generated.entity_platforms import EntityPlatforms as EntityPlatforms
2
3
  from .helpers.deprecation import DeprecatedConstant as DeprecatedConstant, DeprecatedConstantEnum as DeprecatedConstantEnum, EnumWithDeprecatedMembers as EnumWithDeprecatedMembers, all_with_deprecated_constants as all_with_deprecated_constants, check_if_deprecated_constant as check_if_deprecated_constant, dir_with_deprecated_constants as dir_with_deprecated_constants
3
4
  from .helpers.typing import NoEventData as NoEventData
4
5
  from .util.event_type import EventType as EventType
@@ -18,52 +19,7 @@ REQUIRED_PYTHON_VER: Final[tuple[int, int, int]]
18
19
  REQUIRED_NEXT_PYTHON_VER: Final[tuple[int, int, int]]
19
20
  REQUIRED_NEXT_PYTHON_HA_RELEASE: Final[str]
20
21
  PLATFORM_FORMAT: Final[str]
21
-
22
- class Platform(StrEnum):
23
- AI_TASK = 'ai_task'
24
- AIR_QUALITY = 'air_quality'
25
- ALARM_CONTROL_PANEL = 'alarm_control_panel'
26
- ASSIST_SATELLITE = 'assist_satellite'
27
- BINARY_SENSOR = 'binary_sensor'
28
- BUTTON = 'button'
29
- CALENDAR = 'calendar'
30
- CAMERA = 'camera'
31
- CLIMATE = 'climate'
32
- CONVERSATION = 'conversation'
33
- COVER = 'cover'
34
- DATE = 'date'
35
- DATETIME = 'datetime'
36
- DEVICE_TRACKER = 'device_tracker'
37
- EVENT = 'event'
38
- FAN = 'fan'
39
- GEO_LOCATION = 'geo_location'
40
- HUMIDIFIER = 'humidifier'
41
- IMAGE = 'image'
42
- IMAGE_PROCESSING = 'image_processing'
43
- LAWN_MOWER = 'lawn_mower'
44
- LIGHT = 'light'
45
- LOCK = 'lock'
46
- MEDIA_PLAYER = 'media_player'
47
- NOTIFY = 'notify'
48
- NUMBER = 'number'
49
- REMOTE = 'remote'
50
- SCENE = 'scene'
51
- SELECT = 'select'
52
- SENSOR = 'sensor'
53
- SIREN = 'siren'
54
- STT = 'stt'
55
- SWITCH = 'switch'
56
- TEXT = 'text'
57
- TIME = 'time'
58
- TODO = 'todo'
59
- TTS = 'tts'
60
- UPDATE = 'update'
61
- VACUUM = 'vacuum'
62
- VALVE = 'valve'
63
- WAKE_WORD = 'wake_word'
64
- WATER_HEATER = 'water_heater'
65
- WEATHER = 'weather'
66
-
22
+ Platform = EntityPlatforms
67
23
  BASE_PLATFORMS: Final[Incomplete]
68
24
  MATCH_ALL: Final[str]
69
25
  ENTITY_MATCH_NONE: Final[str]
@@ -196,6 +152,7 @@ CONF_MONITORED_VARIABLES: Final[str]
196
152
  CONF_NAME: Final[str]
197
153
  CONF_OFFSET: Final[str]
198
154
  CONF_OPTIMISTIC: Final[str]
155
+ CONF_OPTIONS: Final[str]
199
156
  CONF_PACKAGES: Final[str]
200
157
  CONF_PARALLEL: Final[str]
201
158
  CONF_PARAMS: Final[str]
@@ -395,6 +352,7 @@ ATTR_PERSONS: Final[str]
395
352
  class UnitOfApparentPower(StrEnum):
396
353
  MILLIVOLT_AMPERE = 'mVA'
397
354
  VOLT_AMPERE = 'VA'
355
+ KILO_VOLT_AMPERE = 'kVA'
398
356
 
399
357
  class UnitOfPower(StrEnum):
400
358
  MILLIWATT = 'mW'
@@ -496,6 +454,7 @@ class UnitOfPressure(StrEnum):
496
454
  MBAR = 'mbar'
497
455
  MMHG = 'mmHg'
498
456
  INHG = 'inHg'
457
+ INH2O = 'inH₂O'
499
458
  PSI = 'psi'
500
459
 
501
460
  class UnitOfSoundPressure(StrEnum):
@@ -505,6 +464,7 @@ class UnitOfSoundPressure(StrEnum):
505
464
  class UnitOfVolume(StrEnum):
506
465
  CUBIC_FEET = 'ft³'
507
466
  CENTUM_CUBIC_FEET = 'CCF'
467
+ MILLE_CUBIC_FEET = 'MCF'
508
468
  CUBIC_METERS = 'm³'
509
469
  LITERS = 'L'
510
470
  MILLILITERS = 'mL'
@@ -590,6 +550,7 @@ class UnitOfSpeed(StrEnum):
590
550
  BEAUFORT = 'Beaufort'
591
551
  FEET_PER_SECOND = 'ft/s'
592
552
  INCHES_PER_SECOND = 'in/s'
553
+ METERS_PER_MINUTE = 'm/min'
593
554
  METERS_PER_SECOND = 'm/s'
594
555
  KILOMETERS_PER_HOUR = 'km/h'
595
556
  KNOTS = 'kn'
@@ -7,10 +7,10 @@ from .helpers.frame import ReportBehavior as ReportBehavior, report_usage as rep
7
7
  from .loader import async_suggest_report_issue as async_suggest_report_issue
8
8
  from _typeshed import Incomplete
9
9
  from collections import defaultdict
10
- from collections.abc import Callable as Callable, Container, Hashable, Iterable, Mapping
10
+ from collections.abc import Callable, Container, Coroutine, Hashable, Iterable, Mapping
11
11
  from dataclasses import dataclass
12
12
  from enum import StrEnum
13
- from typing import Any, Generic, Required, TypeVar, TypedDict
13
+ from typing import Any, Concatenate, Generic, Required, TypeVar, TypedDict
14
14
 
15
15
  _LOGGER: Incomplete
16
16
 
@@ -69,12 +69,19 @@ class FlowResult(TypedDict, Generic[_FlowContextT, _HandlerT], total=False):
69
69
  progress_task: asyncio.Task[Any] | None
70
70
  reason: str
71
71
  required: bool
72
+ sort: bool
72
73
  step_id: str
73
74
  title: str
74
75
  translation_domain: str
75
76
  type: FlowResultType
76
77
  url: str
77
78
 
79
+ class ProgressStepData[_FlowResultT](TypedDict):
80
+ tasks: dict[str, asyncio.Task[Any]]
81
+ abort_reason: str
82
+ abort_description_placeholders: Mapping[str, str]
83
+ next_step_result: _FlowResultT | None
84
+
78
85
  def _map_error_to_schema_errors(schema_errors: dict[str, Any], error: vol.Invalid, data_schema: vol.Schema) -> None: ...
79
86
 
80
87
  class FlowManager(abc.ABC, Generic[_FlowContextT, _FlowResultT, _HandlerT], metaclass=abc.ABCMeta):
@@ -132,6 +139,7 @@ class FlowHandler(Generic[_FlowContextT, _FlowResultT, _HandlerT]):
132
139
  __progress_task: asyncio.Task[Any] | None
133
140
  __no_progress_task_reported: bool
134
141
  deprecated_show_progress: bool
142
+ _progress_step_data: ProgressStepData[_FlowResultT]
135
143
  @property
136
144
  def source(self) -> str | None: ...
137
145
  @property
@@ -143,6 +151,8 @@ class FlowHandler(Generic[_FlowContextT, _FlowResultT, _HandlerT]):
143
151
  def async_create_entry(self, *, title: str | None = None, data: Mapping[str, Any], description: str | None = None, description_placeholders: Mapping[str, str] | None = None) -> _FlowResultT: ...
144
152
  @callback
145
153
  def async_abort(self, *, reason: str, description_placeholders: Mapping[str, str] | None = None) -> _FlowResultT: ...
154
+ async def async_step__progress_step_abort(self, user_input: dict[str, Any] | None = None) -> _FlowResultT: ...
155
+ async def async_step__progress_step_progress_done(self, user_input: dict[str, Any] | None = None) -> _FlowResultT: ...
146
156
  @callback
147
157
  def async_external_step(self, *, step_id: str | None = None, url: str, description_placeholders: Mapping[str, str] | None = None) -> _FlowResultT: ...
148
158
  @callback
@@ -154,7 +164,7 @@ class FlowHandler(Generic[_FlowContextT, _FlowResultT, _HandlerT]):
154
164
  @callback
155
165
  def async_show_progress_done(self, *, next_step_id: str) -> _FlowResultT: ...
156
166
  @callback
157
- def async_show_menu(self, *, step_id: str | None = None, menu_options: Container[str], description_placeholders: Mapping[str, str] | None = None) -> _FlowResultT: ...
167
+ def async_show_menu(self, *, step_id: str | None = None, menu_options: Container[str], sort: bool = False, description_placeholders: Mapping[str, str] | None = None) -> _FlowResultT: ...
158
168
  @callback
159
169
  def async_remove(self) -> None: ...
160
170
  @staticmethod
@@ -175,3 +185,6 @@ class section:
175
185
  options: SectionConfig
176
186
  def __init__(self, schema: vol.Schema, options: SectionConfig | None = None) -> None: ...
177
187
  def __call__(self, value: Any) -> Any: ...
188
+ type _FuncType[_T: FlowHandler[Any, Any, Any], _R: FlowResult[Any, Any], **_P] = Callable[Concatenate[_T, _P], Coroutine[Any, Any, _R]]
189
+
190
+ def progress_step[HandlerT: FlowHandler[Any, Any, Any], ResultT: FlowResult[Any, Any], **P](description_placeholders: dict[str, str] | Callable[[Any], dict[str, str]] | None = None) -> Callable[[_FuncType[HandlerT, ResultT, P]], _FuncType[HandlerT, ResultT, P]]: ...
@@ -0,0 +1,46 @@
1
+ from enum import StrEnum
2
+
3
+ class EntityPlatforms(StrEnum):
4
+ AI_TASK = 'ai_task'
5
+ AIR_QUALITY = 'air_quality'
6
+ ALARM_CONTROL_PANEL = 'alarm_control_panel'
7
+ ASSIST_SATELLITE = 'assist_satellite'
8
+ BINARY_SENSOR = 'binary_sensor'
9
+ BUTTON = 'button'
10
+ CALENDAR = 'calendar'
11
+ CAMERA = 'camera'
12
+ CLIMATE = 'climate'
13
+ CONVERSATION = 'conversation'
14
+ COVER = 'cover'
15
+ DATE = 'date'
16
+ DATETIME = 'datetime'
17
+ DEVICE_TRACKER = 'device_tracker'
18
+ EVENT = 'event'
19
+ FAN = 'fan'
20
+ GEO_LOCATION = 'geo_location'
21
+ HUMIDIFIER = 'humidifier'
22
+ IMAGE = 'image'
23
+ IMAGE_PROCESSING = 'image_processing'
24
+ LAWN_MOWER = 'lawn_mower'
25
+ LIGHT = 'light'
26
+ LOCK = 'lock'
27
+ MEDIA_PLAYER = 'media_player'
28
+ NOTIFY = 'notify'
29
+ NUMBER = 'number'
30
+ REMOTE = 'remote'
31
+ SCENE = 'scene'
32
+ SELECT = 'select'
33
+ SENSOR = 'sensor'
34
+ SIREN = 'siren'
35
+ STT = 'stt'
36
+ SWITCH = 'switch'
37
+ TEXT = 'text'
38
+ TIME = 'time'
39
+ TODO = 'todo'
40
+ TTS = 'tts'
41
+ UPDATE = 'update'
42
+ VACUUM = 'vacuum'
43
+ VALVE = 'valve'
44
+ WAKE_WORD = 'wake_word'
45
+ WATER_HEATER = 'water_heater'
46
+ WEATHER = 'weather'
@@ -1,7 +1,9 @@
1
1
  import abc
2
2
  import logging
3
+ from . import selector as selector
3
4
  from .automation import get_absolute_description_key as get_absolute_description_key, get_relative_description_key as get_relative_description_key
4
5
  from .integration_platform import async_process_integration_platforms as async_process_integration_platforms
6
+ from .selector import TargetSelector as TargetSelector
5
7
  from .template import Template as Template, render_complex as render_complex
6
8
  from .trace import TraceElement as TraceElement, trace_append_element as trace_append_element, trace_path as trace_path, trace_path_get as trace_path_get, trace_stack_cv as trace_stack_cv, trace_stack_pop as trace_stack_pop, trace_stack_push as trace_stack_push, trace_stack_top as trace_stack_top
7
9
  from .typing import ConfigType as ConfigType, TemplateVarsType as TemplateVarsType
@@ -9,7 +11,7 @@ from _typeshed import Incomplete
9
11
  from collections.abc import Callable, Container, Coroutine, Generator, Iterable
10
12
  from contextlib import contextmanager
11
13
  from datetime import time as dt_time, timedelta
12
- from homeassistant.const import ATTR_DEVICE_CLASS as ATTR_DEVICE_CLASS, CONF_ABOVE as CONF_ABOVE, CONF_AFTER as CONF_AFTER, CONF_ATTRIBUTE as CONF_ATTRIBUTE, CONF_BEFORE as CONF_BEFORE, CONF_BELOW as CONF_BELOW, CONF_CONDITION as CONF_CONDITION, CONF_DEVICE_ID as CONF_DEVICE_ID, CONF_ENABLED as CONF_ENABLED, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_FOR as CONF_FOR, CONF_ID as CONF_ID, CONF_MATCH as CONF_MATCH, CONF_STATE as CONF_STATE, CONF_VALUE_TEMPLATE as CONF_VALUE_TEMPLATE, CONF_WEEKDAY as CONF_WEEKDAY, ENTITY_MATCH_ALL as ENTITY_MATCH_ALL, ENTITY_MATCH_ANY as ENTITY_MATCH_ANY, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN, WEEKDAYS as WEEKDAYS
14
+ from homeassistant.const import ATTR_DEVICE_CLASS as ATTR_DEVICE_CLASS, CONF_ABOVE as CONF_ABOVE, CONF_AFTER as CONF_AFTER, CONF_ATTRIBUTE as CONF_ATTRIBUTE, CONF_BEFORE as CONF_BEFORE, CONF_BELOW as CONF_BELOW, CONF_CONDITION as CONF_CONDITION, CONF_DEVICE_ID as CONF_DEVICE_ID, CONF_ENABLED as CONF_ENABLED, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_FOR as CONF_FOR, CONF_ID as CONF_ID, CONF_MATCH as CONF_MATCH, CONF_SELECTOR as CONF_SELECTOR, CONF_STATE as CONF_STATE, CONF_VALUE_TEMPLATE as CONF_VALUE_TEMPLATE, CONF_WEEKDAY as CONF_WEEKDAY, ENTITY_MATCH_ALL as ENTITY_MATCH_ALL, ENTITY_MATCH_ANY as ENTITY_MATCH_ANY, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN, WEEKDAYS as WEEKDAYS
13
15
  from homeassistant.core import HomeAssistant as HomeAssistant, State as State, callback as callback
14
16
  from homeassistant.exceptions import ConditionError as ConditionError, ConditionErrorContainer as ConditionErrorContainer, ConditionErrorIndex as ConditionErrorIndex, ConditionErrorMessage as ConditionErrorMessage, HomeAssistantError as HomeAssistantError, TemplateError as TemplateError
15
17
  from homeassistant.loader import Integration as Integration, IntegrationNotFound as IntegrationNotFound, async_get_integration as async_get_integration, async_get_integrations as async_get_integrations
@@ -149,7 +149,7 @@ def deprecated(key: str, replacement_key: str | None = None, default: Any | None
149
149
  def removed(key: str, default: Any | None = None, raise_if_present: bool | None = True) -> Callable[[dict], dict]: ...
150
150
  def renamed(old_key: str, new_key: str) -> Callable[[Any], Any]: ...
151
151
  type ValueSchemas = dict[Hashable, VolSchemaType | Callable[[Any], dict[str, Any]]]
152
- def key_value_schemas(key: str, value_schemas: ValueSchemas, default_schema: VolSchemaType | Callable[[Any], dict[str, Any]] | None = None, default_description: str | None = None) -> Callable[[Any], dict[Hashable, Any]]: ...
152
+ def key_value_schemas(key: str, value_schemas: ValueSchemas, default_schema: VolSchemaType | Callable[[Any], dict[str, Any]] | None = None, default_description: str | None = None, list_alternatives: bool = True) -> Callable[[Any], dict[Hashable, Any]]: ...
153
153
  def key_dependency[_KT: Hashable, _VT](key: Hashable, dependency: Hashable) -> Callable[[dict[_KT, _VT]], dict[_KT, _VT]]: ...
154
154
  def custom_serializer(schema: Any) -> Any: ...
155
155
  def _custom_serializer(schema: Any, *, allow_section: bool) -> Any: ...