homeassistant-stubs 2025.5.2__py3-none-any.whl → 2025.6.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.
Files changed (397) hide show
  1. homeassistant-stubs/components/airthings/sensor.pyi +1 -1
  2. homeassistant-stubs/components/amazon_devices/__init__.pyi +9 -0
  3. homeassistant-stubs/components/amazon_devices/binary_sensor.pyi +25 -0
  4. homeassistant-stubs/components/amazon_devices/config_flow.pyi +8 -0
  5. homeassistant-stubs/components/amazon_devices/const.pyi +5 -0
  6. homeassistant-stubs/components/amazon_devices/coordinator.pyi +17 -0
  7. homeassistant-stubs/components/amazon_devices/entity.pyi +19 -0
  8. homeassistant-stubs/components/amazon_devices/notify.pyi +25 -0
  9. homeassistant-stubs/components/amazon_devices/switch.pyi +30 -0
  10. homeassistant-stubs/components/apcupsd/config_flow.pyi +1 -0
  11. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +3 -1
  12. homeassistant-stubs/components/axis/config_flow.pyi +2 -2
  13. homeassistant-stubs/components/axis/entity.pyi +1 -0
  14. homeassistant-stubs/components/backup/__init__.pyi +2 -2
  15. homeassistant-stubs/components/backup/coordinator.pyi +3 -0
  16. homeassistant-stubs/components/backup/entity.pyi +5 -2
  17. homeassistant-stubs/components/backup/event.pyi +23 -0
  18. homeassistant-stubs/components/backup/manager.pyi +22 -3
  19. homeassistant-stubs/components/backup/models.pyi +2 -2
  20. homeassistant-stubs/components/blue_current/button.pyi +25 -0
  21. homeassistant-stubs/components/blue_current/entity.pyi +3 -6
  22. homeassistant-stubs/components/bluesound/button.pyi +35 -0
  23. homeassistant-stubs/components/bluesound/media_player.pyi +1 -0
  24. homeassistant-stubs/components/bmw_connected_drive/button.pyi +1 -1
  25. homeassistant-stubs/components/bmw_connected_drive/coordinator.pyi +1 -1
  26. homeassistant-stubs/components/bmw_connected_drive/lock.pyi +1 -1
  27. homeassistant-stubs/components/bmw_connected_drive/notify.pyi +1 -1
  28. homeassistant-stubs/components/bmw_connected_drive/number.pyi +1 -1
  29. homeassistant-stubs/components/bmw_connected_drive/select.pyi +1 -1
  30. homeassistant-stubs/components/bmw_connected_drive/switch.pyi +1 -1
  31. homeassistant-stubs/components/bosch_alarm/__init__.pyi +8 -4
  32. homeassistant-stubs/components/bosch_alarm/alarm_control_panel.pyi +3 -1
  33. homeassistant-stubs/components/bosch_alarm/binary_sensor.pyi +45 -0
  34. homeassistant-stubs/components/bosch_alarm/config_flow.pyi +9 -3
  35. homeassistant-stubs/components/bosch_alarm/const.pyi +4 -1
  36. homeassistant-stubs/components/bosch_alarm/diagnostics.pyi +1 -1
  37. homeassistant-stubs/components/bosch_alarm/entity.pyi +30 -1
  38. homeassistant-stubs/components/bosch_alarm/sensor.pyi +6 -2
  39. homeassistant-stubs/components/bosch_alarm/services.pyi +15 -0
  40. homeassistant-stubs/components/bosch_alarm/switch.pyi +43 -0
  41. homeassistant-stubs/components/bosch_alarm/types.pyi +4 -0
  42. homeassistant-stubs/components/bring/__init__.pyi +1 -1
  43. homeassistant-stubs/components/bring/coordinator.pyi +21 -3
  44. homeassistant-stubs/components/bring/entity.pyi +3 -3
  45. homeassistant-stubs/components/bring/event.pyi +3 -2
  46. homeassistant-stubs/components/bring/sensor.pyi +1 -0
  47. homeassistant-stubs/components/bring/todo.pyi +1 -0
  48. homeassistant-stubs/components/camera/__init__.pyi +2 -10
  49. homeassistant-stubs/components/camera/webrtc.pyi +1 -22
  50. homeassistant-stubs/components/climate/__init__.pyi +3 -13
  51. homeassistant-stubs/components/climate/const.pyi +0 -3
  52. homeassistant-stubs/components/climate/significant_change.pyi +1 -1
  53. homeassistant-stubs/components/cloud/__init__.pyi +1 -1
  54. homeassistant-stubs/components/cloud/alexa_config.pyi +1 -1
  55. homeassistant-stubs/components/cloud/client.pyi +2 -1
  56. homeassistant-stubs/components/cloud/const.pyi +0 -1
  57. homeassistant-stubs/components/cloud/google_config.pyi +1 -1
  58. homeassistant-stubs/components/cloud/http_api.pyi +0 -2
  59. homeassistant-stubs/components/comelit/climate.pyi +14 -5
  60. homeassistant-stubs/components/comelit/config_flow.pyi +3 -4
  61. homeassistant-stubs/components/comelit/const.pyi +3 -0
  62. homeassistant-stubs/components/comelit/cover.pyi +3 -1
  63. homeassistant-stubs/components/comelit/humidifier.pyi +6 -1
  64. homeassistant-stubs/components/comelit/light.pyi +2 -0
  65. homeassistant-stubs/components/comelit/switch.pyi +2 -0
  66. homeassistant-stubs/components/comelit/utils.pyi +11 -0
  67. homeassistant-stubs/components/command_line/notify.pyi +3 -1
  68. homeassistant-stubs/components/config/entity_registry.pyi +6 -0
  69. homeassistant-stubs/components/deconz/entity.pyi +1 -0
  70. homeassistant-stubs/components/deconz/hub/hub.pyi +1 -1
  71. homeassistant-stubs/components/deconz/light.pyi +1 -1
  72. homeassistant-stubs/components/demo/media_player.pyi +2 -1
  73. homeassistant-stubs/components/device_automation/trigger.pyi +5 -2
  74. homeassistant-stubs/components/devolo_home_network/__init__.pyi +3 -18
  75. homeassistant-stubs/components/devolo_home_network/binary_sensor.pyi +1 -2
  76. homeassistant-stubs/components/devolo_home_network/button.pyi +1 -1
  77. homeassistant-stubs/components/devolo_home_network/config_flow.pyi +1 -1
  78. homeassistant-stubs/components/devolo_home_network/coordinator.pyi +56 -6
  79. homeassistant-stubs/components/devolo_home_network/device_tracker.pyi +1 -2
  80. homeassistant-stubs/components/devolo_home_network/diagnostics.pyi +1 -1
  81. homeassistant-stubs/components/devolo_home_network/entity.pyi +1 -2
  82. homeassistant-stubs/components/devolo_home_network/image.pyi +1 -2
  83. homeassistant-stubs/components/devolo_home_network/sensor.pyi +1 -2
  84. homeassistant-stubs/components/devolo_home_network/switch.pyi +1 -2
  85. homeassistant-stubs/components/devolo_home_network/update.pyi +1 -2
  86. homeassistant-stubs/components/dhcp/__init__.pyi +2 -0
  87. homeassistant-stubs/components/downloader/__init__.pyi +3 -4
  88. homeassistant-stubs/components/downloader/services.pyi +7 -0
  89. homeassistant-stubs/components/ecovacs/binary_sensor.pyi +1 -1
  90. homeassistant-stubs/components/ecovacs/button.pyi +2 -2
  91. homeassistant-stubs/components/ecovacs/number.pyi +1 -1
  92. homeassistant-stubs/components/ecovacs/select.pyi +1 -1
  93. homeassistant-stubs/components/ecovacs/sensor.pyi +1 -1
  94. homeassistant-stubs/components/ecovacs/switch.pyi +1 -1
  95. homeassistant-stubs/components/ecovacs/util.pyi +1 -1
  96. homeassistant-stubs/components/eheimdigital/climate.pyi +4 -2
  97. homeassistant-stubs/components/eheimdigital/diagnostics.pyi +9 -0
  98. homeassistant-stubs/components/eheimdigital/entity.pyi +5 -0
  99. homeassistant-stubs/components/eheimdigital/light.pyi +3 -2
  100. homeassistant-stubs/components/eheimdigital/number.pyi +3 -1
  101. homeassistant-stubs/components/eheimdigital/select.pyi +34 -0
  102. homeassistant-stubs/components/eheimdigital/switch.pyi +3 -1
  103. homeassistant-stubs/components/eheimdigital/time.pyi +2 -1
  104. homeassistant-stubs/components/elkm1/climate.pyi +0 -6
  105. homeassistant-stubs/components/esphome/entity.pyi +1 -0
  106. homeassistant-stubs/components/esphome/entry_data.pyi +0 -12
  107. homeassistant-stubs/components/esphome/light.pyi +4 -4
  108. homeassistant-stubs/components/esphome/update.pyi +8 -4
  109. homeassistant-stubs/components/feedreader/event.pyi +1 -2
  110. homeassistant-stubs/components/fritz/__init__.pyi +1 -1
  111. homeassistant-stubs/components/fritz/config_flow.pyi +2 -1
  112. homeassistant-stubs/components/fritz/const.pyi +2 -0
  113. homeassistant-stubs/components/fritz/coordinator.pyi +5 -3
  114. homeassistant-stubs/components/frontend/storage.pyi +25 -9
  115. homeassistant-stubs/components/fyta/image.pyi +18 -4
  116. homeassistant-stubs/components/geocaching/__init__.pyi +3 -5
  117. homeassistant-stubs/components/geocaching/coordinator.pyi +3 -2
  118. homeassistant-stubs/components/geocaching/sensor.pyi +2 -3
  119. homeassistant-stubs/components/google/__init__.pyi +7 -8
  120. homeassistant-stubs/components/google/api.pyi +2 -2
  121. homeassistant-stubs/components/google/calendar.pyi +5 -5
  122. homeassistant-stubs/components/google/config_flow.pyi +3 -2
  123. homeassistant-stubs/components/google/const.pyi +0 -2
  124. homeassistant-stubs/components/google/coordinator.pyi +5 -5
  125. homeassistant-stubs/components/google/diagnostics.pyi +2 -3
  126. homeassistant-stubs/components/google/store.pyi +9 -0
  127. homeassistant-stubs/components/google_assistant_sdk/__init__.pyi +5 -6
  128. homeassistant-stubs/components/google_assistant_sdk/config_flow.pyi +3 -3
  129. homeassistant-stubs/components/google_assistant_sdk/const.pyi +0 -2
  130. homeassistant-stubs/components/google_assistant_sdk/diagnostics.pyi +2 -2
  131. homeassistant-stubs/components/google_assistant_sdk/helpers.pyi +7 -1
  132. homeassistant-stubs/components/google_assistant_sdk/notify.pyi +1 -2
  133. homeassistant-stubs/components/greeneye_monitor/const.pyi +4 -1
  134. homeassistant-stubs/components/guardian/__init__.pyi +11 -18
  135. homeassistant-stubs/components/guardian/binary_sensor.pyi +5 -6
  136. homeassistant-stubs/components/guardian/button.pyi +4 -5
  137. homeassistant-stubs/components/guardian/coordinator.pyi +3 -3
  138. homeassistant-stubs/components/guardian/diagnostics.pyi +3 -4
  139. homeassistant-stubs/components/guardian/entity.pyi +3 -3
  140. homeassistant-stubs/components/guardian/sensor.pyi +3 -4
  141. homeassistant-stubs/components/guardian/services.pyi +28 -0
  142. homeassistant-stubs/components/guardian/switch.pyi +4 -5
  143. homeassistant-stubs/components/guardian/util.pyi +2 -2
  144. homeassistant-stubs/components/guardian/valve.pyi +4 -5
  145. homeassistant-stubs/components/habitica/const.pyi +1 -6
  146. homeassistant-stubs/components/habitica/coordinator.pyi +2 -2
  147. homeassistant-stubs/components/habitica/sensor.pyi +3 -1
  148. homeassistant-stubs/components/habitica/services.pyi +2 -4
  149. homeassistant-stubs/components/habitica/util.pyi +2 -0
  150. homeassistant-stubs/components/hardware/__init__.pyi +3 -1
  151. homeassistant-stubs/components/hardware/const.pyi +4 -0
  152. homeassistant-stubs/components/hardware/hardware.pyi +1 -1
  153. homeassistant-stubs/components/hardware/models.pyi +14 -1
  154. homeassistant-stubs/components/hardware/websocket_api.pyi +2 -12
  155. homeassistant-stubs/components/heos/media_player.pyi +1 -0
  156. homeassistant-stubs/components/here_travel_time/__init__.pyi +4 -5
  157. homeassistant-stubs/components/here_travel_time/coordinator.pyi +5 -4
  158. homeassistant-stubs/components/here_travel_time/sensor.pyi +4 -5
  159. homeassistant-stubs/components/history_stats/config_flow.pyi +1 -1
  160. homeassistant-stubs/components/history_stats/data.pyi +2 -0
  161. homeassistant-stubs/components/home_connect/config_flow.pyi +2 -0
  162. homeassistant-stubs/components/home_connect/diagnostics.pyi +1 -2
  163. homeassistant-stubs/components/home_connect/entity.pyi +0 -1
  164. homeassistant-stubs/components/home_connect/light.pyi +2 -2
  165. homeassistant-stubs/components/home_connect/number.pyi +1 -0
  166. homeassistant-stubs/components/home_connect/sensor.pyi +4 -5
  167. homeassistant-stubs/components/home_connect/switch.pyi +1 -19
  168. homeassistant-stubs/components/homeassistant/__init__.pyi +4 -0
  169. homeassistant-stubs/components/homee/alarm_control_panel.pyi +39 -0
  170. homeassistant-stubs/components/homee/const.pyi +2 -0
  171. homeassistant-stubs/components/homee/event.pyi +19 -0
  172. homeassistant-stubs/components/homee/fan.pyi +38 -0
  173. homeassistant-stubs/components/homee/sensor.pyi +5 -1
  174. homeassistant-stubs/components/homekit/const.pyi +1 -0
  175. homeassistant-stubs/components/homekit/util.pyi +1 -1
  176. homeassistant-stubs/components/homeworks/__init__.pyi +5 -5
  177. homeassistant-stubs/components/homeworks/binary_sensor.pyi +2 -3
  178. homeassistant-stubs/components/homeworks/button.pyi +2 -3
  179. homeassistant-stubs/components/homeworks/light.pyi +2 -3
  180. homeassistant-stubs/components/http/decorators.pyi +1 -1
  181. homeassistant-stubs/components/huawei_lte/__init__.pyi +0 -1
  182. homeassistant-stubs/components/husqvarna_automower/binary_sensor.pyi +0 -7
  183. homeassistant-stubs/components/hydrawise/__init__.pyi +4 -5
  184. homeassistant-stubs/components/hydrawise/binary_sensor.pyi +3 -4
  185. homeassistant-stubs/components/hydrawise/coordinator.pyi +4 -3
  186. homeassistant-stubs/components/hydrawise/sensor.pyi +2 -4
  187. homeassistant-stubs/components/hydrawise/switch.pyi +3 -4
  188. homeassistant-stubs/components/hydrawise/valve.pyi +2 -4
  189. homeassistant-stubs/components/immich/__init__.pyi +10 -0
  190. homeassistant-stubs/components/immich/config_flow.pyi +27 -0
  191. homeassistant-stubs/components/immich/const.pyi +4 -0
  192. homeassistant-stubs/components/immich/coordinator.pyi +27 -0
  193. homeassistant-stubs/components/immich/diagnostics.pyi +10 -0
  194. homeassistant-stubs/components/immich/entity.pyi +10 -0
  195. homeassistant-stubs/components/immich/media_source.pyi +37 -0
  196. homeassistant-stubs/components/immich/sensor.pyi +28 -0
  197. homeassistant-stubs/components/iqvia/__init__.pyi +4 -7
  198. homeassistant-stubs/components/iqvia/coordinator.pyi +16 -0
  199. homeassistant-stubs/components/iqvia/diagnostics.pyi +3 -4
  200. homeassistant-stubs/components/iqvia/entity.pyi +5 -6
  201. homeassistant-stubs/components/iqvia/sensor.pyi +3 -3
  202. homeassistant-stubs/components/isy994/__init__.pyi +6 -7
  203. homeassistant-stubs/components/isy994/binary_sensor.pyi +3 -4
  204. homeassistant-stubs/components/isy994/button.pyi +2 -3
  205. homeassistant-stubs/components/isy994/climate.pyi +3 -4
  206. homeassistant-stubs/components/isy994/config_flow.pyi +4 -3
  207. homeassistant-stubs/components/isy994/cover.pyi +3 -5
  208. homeassistant-stubs/components/isy994/fan.pyi +3 -5
  209. homeassistant-stubs/components/isy994/light.pyi +3 -4
  210. homeassistant-stubs/components/isy994/lock.pyi +2 -5
  211. homeassistant-stubs/components/isy994/models.pyi +2 -0
  212. homeassistant-stubs/components/isy994/number.pyi +3 -4
  213. homeassistant-stubs/components/isy994/select.pyi +3 -4
  214. homeassistant-stubs/components/isy994/sensor.pyi +3 -4
  215. homeassistant-stubs/components/isy994/services.pyi +1 -1
  216. homeassistant-stubs/components/isy994/switch.pyi +2 -4
  217. homeassistant-stubs/components/isy994/system_health.pyi +1 -3
  218. homeassistant-stubs/components/isy994/util.pyi +3 -2
  219. homeassistant-stubs/components/jewish_calendar/binary_sensor.pyi +3 -2
  220. homeassistant-stubs/components/jewish_calendar/config_flow.pyi +3 -2
  221. homeassistant-stubs/components/jewish_calendar/const.pyi +1 -0
  222. homeassistant-stubs/components/jewish_calendar/diagnostics.pyi +11 -0
  223. homeassistant-stubs/components/jewish_calendar/entity.pyi +12 -5
  224. homeassistant-stubs/components/jewish_calendar/sensor.pyi +35 -15
  225. homeassistant-stubs/components/jewish_calendar/service.pyi +1 -0
  226. homeassistant-stubs/components/kaleidescape/entity.pyi +1 -0
  227. homeassistant-stubs/components/kaleidescape/media_player.pyi +1 -0
  228. homeassistant-stubs/components/kaleidescape/remote.pyi +1 -0
  229. homeassistant-stubs/components/kaleidescape/sensor.pyi +1 -0
  230. homeassistant-stubs/components/knocki/config_flow.pyi +2 -0
  231. homeassistant-stubs/components/knx/const.pyi +7 -0
  232. homeassistant-stubs/components/knx/cover.pyi +20 -9
  233. homeassistant-stubs/components/knx/schema.pyi +1 -6
  234. homeassistant-stubs/components/knx/storage/const.pyi +6 -0
  235. homeassistant-stubs/components/knx/storage/entity_store_schema.pyi +4 -3
  236. homeassistant-stubs/components/lcn/config_flow.pyi +0 -2
  237. homeassistant-stubs/components/lcn/const.pyi +3 -1
  238. homeassistant-stubs/components/lcn/cover.pyi +7 -2
  239. homeassistant-stubs/components/lcn/entity.pyi +1 -0
  240. homeassistant-stubs/components/lcn/helpers.pyi +0 -1
  241. homeassistant-stubs/components/lcn/schemas.pyi +1 -1
  242. homeassistant-stubs/components/lcn/services.pyi +2 -3
  243. homeassistant-stubs/components/litterrobot/entity.pyi +1 -1
  244. homeassistant-stubs/components/matter/select.pyi +2 -0
  245. homeassistant-stubs/components/matter/sensor.pyi +3 -1
  246. homeassistant-stubs/components/media_player/intent.pyi +11 -1
  247. homeassistant-stubs/components/metoffice/__init__.pyi +3 -5
  248. homeassistant-stubs/components/metoffice/config_flow.pyi +4 -2
  249. homeassistant-stubs/components/metoffice/const.pyi +7 -6
  250. homeassistant-stubs/components/metoffice/helpers.pyi +5 -6
  251. homeassistant-stubs/components/metoffice/sensor.pyi +15 -13
  252. homeassistant-stubs/components/metoffice/weather.pyi +23 -11
  253. homeassistant-stubs/components/miele/__init__.pyi +15 -0
  254. homeassistant-stubs/components/miele/api.pyi +9 -0
  255. homeassistant-stubs/components/miele/application_credentials.pyi +5 -0
  256. homeassistant-stubs/components/miele/binary_sensor.pyi +34 -0
  257. homeassistant-stubs/components/miele/button.pyi +32 -0
  258. homeassistant-stubs/components/miele/climate.pyi +55 -0
  259. homeassistant-stubs/components/miele/config_flow.pyi +17 -0
  260. homeassistant-stubs/components/miele/const.pyi +127 -0
  261. homeassistant-stubs/components/miele/coordinator.pyi +29 -0
  262. homeassistant-stubs/components/miele/diagnostics.pyi +13 -0
  263. homeassistant-stubs/components/miele/entity.pyi +24 -0
  264. homeassistant-stubs/components/miele/fan.pyi +39 -0
  265. homeassistant-stubs/components/miele/light.pyi +39 -0
  266. homeassistant-stubs/components/miele/sensor.pyi +72 -0
  267. homeassistant-stubs/components/miele/switch.pyi +52 -0
  268. homeassistant-stubs/components/miele/vacuum.pyi +84 -0
  269. homeassistant-stubs/components/minecraft_server/api.pyi +1 -1
  270. homeassistant-stubs/components/modbus/__init__.pyi +1 -1
  271. homeassistant-stubs/components/modbus/const.pyi +9 -0
  272. homeassistant-stubs/components/modbus/light.pyi +24 -1
  273. homeassistant-stubs/components/modbus/sensor.pyi +5 -3
  274. homeassistant-stubs/components/mqtt/binary_sensor.pyi +1 -2
  275. homeassistant-stubs/components/mqtt/button.pyi +1 -3
  276. homeassistant-stubs/components/mqtt/config_flow.pyi +25 -8
  277. homeassistant-stubs/components/mqtt/const.pyi +57 -0
  278. homeassistant-stubs/components/mqtt/cover.pyi +1 -25
  279. homeassistant-stubs/components/mqtt/fan.pyi +1 -31
  280. homeassistant-stubs/components/mqtt/switch.pyi +1 -5
  281. homeassistant-stubs/components/music_assistant/media_player.pyi +6 -2
  282. homeassistant-stubs/components/nest/config_flow.pyi +2 -0
  283. homeassistant-stubs/components/number/const.pyi +3 -2
  284. homeassistant-stubs/components/nut/__init__.pyi +1 -1
  285. homeassistant-stubs/components/openai_conversation/conversation.pyi +2 -0
  286. homeassistant-stubs/components/otbr/util.pyi +1 -3
  287. homeassistant-stubs/components/pandora/media_player.pyi +12 -13
  288. homeassistant-stubs/components/paperless_ngx/__init__.pyi +13 -0
  289. homeassistant-stubs/components/paperless_ngx/config_flow.pyi +16 -0
  290. homeassistant-stubs/components/paperless_ngx/const.pyi +4 -0
  291. homeassistant-stubs/components/paperless_ngx/coordinator.pyi +39 -0
  292. homeassistant-stubs/components/{rtsp_to_webrtc → paperless_ngx}/diagnostics.pyi +2 -2
  293. homeassistant-stubs/components/paperless_ngx/entity.pyi +16 -0
  294. homeassistant-stubs/components/paperless_ngx/sensor.pyi +27 -0
  295. homeassistant-stubs/components/plugwise/coordinator.pyi +2 -2
  296. homeassistant-stubs/components/qbus/climate.pyi +1 -0
  297. homeassistant-stubs/components/qbus/entity.pyi +3 -3
  298. homeassistant-stubs/components/qbus/light.pyi +1 -0
  299. homeassistant-stubs/components/qbus/scene.pyi +21 -0
  300. homeassistant-stubs/components/qbus/switch.pyi +1 -0
  301. homeassistant-stubs/components/recorder/services.pyi +7 -1
  302. homeassistant-stubs/components/recorder/statistics.pyi +1 -1
  303. homeassistant-stubs/components/recorder/websocket_api.pyi +1 -1
  304. homeassistant-stubs/components/reolink/media_source.pyi +2 -1
  305. homeassistant-stubs/components/repairs/websocket_api.pyi +0 -1
  306. homeassistant-stubs/components/samsungtv/__init__.pyi +5 -5
  307. homeassistant-stubs/components/samsungtv/bridge.pyi +2 -1
  308. homeassistant-stubs/components/samsungtv/config_flow.pyi +4 -4
  309. homeassistant-stubs/components/samsungtv/entity.pyi +1 -1
  310. homeassistant-stubs/components/samsungtv/media_player.pyi +2 -1
  311. homeassistant-stubs/components/sensor/__init__.pyi +1 -0
  312. homeassistant-stubs/components/sensor/const.pyi +5 -2
  313. homeassistant-stubs/components/sensor/device_condition.pyi +1 -0
  314. homeassistant-stubs/components/sensor/device_trigger.pyi +1 -0
  315. homeassistant-stubs/components/shelly/binary_sensor.pyi +3 -2
  316. homeassistant-stubs/components/shelly/button.pyi +5 -4
  317. homeassistant-stubs/components/shelly/climate.pyi +5 -5
  318. homeassistant-stubs/components/shelly/const.pyi +2 -0
  319. homeassistant-stubs/components/shelly/cover.pyi +2 -0
  320. homeassistant-stubs/components/shelly/entity.pyi +4 -2
  321. homeassistant-stubs/components/shelly/event.pyi +4 -2
  322. homeassistant-stubs/components/shelly/light.pyi +2 -0
  323. homeassistant-stubs/components/shelly/number.pyi +3 -2
  324. homeassistant-stubs/components/shelly/select.pyi +2 -0
  325. homeassistant-stubs/components/shelly/sensor.pyi +9 -2
  326. homeassistant-stubs/components/shelly/switch.pyi +2 -2
  327. homeassistant-stubs/components/shelly/text.pyi +2 -0
  328. homeassistant-stubs/components/shelly/update.pyi +1 -0
  329. homeassistant-stubs/components/shelly/utils.pyi +12 -7
  330. homeassistant-stubs/components/shelly/valve.pyi +2 -0
  331. homeassistant-stubs/components/smlight/button.pyi +3 -2
  332. homeassistant-stubs/components/squeezebox/__init__.pyi +1 -1
  333. homeassistant-stubs/components/squeezebox/binary_sensor.pyi +1 -0
  334. homeassistant-stubs/components/squeezebox/browse_media.pyi +1 -1
  335. homeassistant-stubs/components/squeezebox/button.pyi +3 -0
  336. homeassistant-stubs/components/squeezebox/const.pyi +12 -2
  337. homeassistant-stubs/components/squeezebox/coordinator.pyi +7 -3
  338. homeassistant-stubs/components/squeezebox/media_player.pyi +3 -1
  339. homeassistant-stubs/components/squeezebox/sensor.pyi +1 -0
  340. homeassistant-stubs/components/squeezebox/switch.pyi +47 -0
  341. homeassistant-stubs/components/squeezebox/update.pyi +50 -0
  342. homeassistant-stubs/components/suez_water/coordinator.pyi +19 -4
  343. homeassistant-stubs/components/suez_water/sensor.pyi +2 -0
  344. homeassistant-stubs/components/sun/condition.pyi +13 -0
  345. homeassistant-stubs/components/switchbot_cloud/__init__.pyi +15 -9
  346. homeassistant-stubs/components/switchbot_cloud/binary_sensor.pyi +29 -0
  347. homeassistant-stubs/components/switchbot_cloud/coordinator.pyi +6 -1
  348. homeassistant-stubs/components/tibber/coordinator.pyi +1 -0
  349. homeassistant-stubs/components/tibber/notify.pyi +2 -2
  350. homeassistant-stubs/components/tibber/sensor.pyi +1 -1
  351. homeassistant-stubs/components/tts/__init__.pyi +4 -1
  352. homeassistant-stubs/components/tts/const.pyi +1 -0
  353. homeassistant-stubs/components/tts/entity.pyi +4 -0
  354. homeassistant-stubs/components/tts/legacy.pyi +3 -1
  355. homeassistant-stubs/components/tts/media_source.pyi +5 -2
  356. homeassistant-stubs/components/unifi/__init__.pyi +1 -1
  357. homeassistant-stubs/components/unifi/config_flow.pyi +2 -2
  358. homeassistant-stubs/components/unifi/device_tracker.pyi +1 -0
  359. homeassistant-stubs/components/unifi/services.pyi +1 -0
  360. homeassistant-stubs/components/uptimerobot/coordinator.pyi +0 -1
  361. homeassistant-stubs/components/uptimerobot/switch.pyi +2 -1
  362. homeassistant-stubs/components/wallbox/const.pyi +10 -0
  363. homeassistant-stubs/components/wallbox/coordinator.pyi +4 -1
  364. homeassistant-stubs/components/wallbox/select.pyi +29 -0
  365. homeassistant-stubs/components/wallbox/sensor.pyi +1 -1
  366. homeassistant-stubs/components/wemo/device_trigger.pyi +1 -1
  367. homeassistant-stubs/components/wemo/light.pyi +1 -0
  368. homeassistant-stubs/components/whois/const.pyi +1 -0
  369. homeassistant-stubs/components/whois/sensor.pyi +2 -1
  370. homeassistant-stubs/components/youtube/sensor.pyi +1 -1
  371. homeassistant-stubs/components/zwave_js/__init__.pyi +1 -2
  372. homeassistant-stubs/components/zwave_js/api.pyi +1 -2
  373. homeassistant-stubs/components/zwave_js/config_flow.pyi +8 -3
  374. homeassistant-stubs/components/zwave_js/const.pyi +1 -1
  375. homeassistant-stubs/config_entries.pyi +0 -1
  376. homeassistant-stubs/const.pyi +5 -0
  377. homeassistant-stubs/core_config.pyi +0 -2
  378. homeassistant-stubs/helpers/condition.pyi +1 -6
  379. homeassistant-stubs/helpers/config_entry_oauth2_flow.pyi +10 -0
  380. homeassistant-stubs/helpers/config_validation.pyi +7 -2
  381. homeassistant-stubs/helpers/device_registry.pyi +4 -4
  382. homeassistant-stubs/helpers/entity_component.pyi +5 -2
  383. homeassistant-stubs/helpers/entity_platform.pyi +4 -1
  384. homeassistant-stubs/helpers/entity_registry.pyi +7 -6
  385. homeassistant-stubs/helpers/selector.pyi +55 -50
  386. homeassistant-stubs/helpers/service.pyi +3 -3
  387. homeassistant-stubs/helpers/template.pyi +4 -1
  388. homeassistant-stubs/scripts/check_config.pyi +1 -1
  389. homeassistant-stubs/util/aiohttp.pyi +5 -0
  390. homeassistant-stubs/util/unit_conversion.pyi +11 -1
  391. {homeassistant_stubs-2025.5.2.dist-info → homeassistant_stubs-2025.6.0b0.dist-info}/METADATA +2 -2
  392. {homeassistant_stubs-2025.5.2.dist-info → homeassistant_stubs-2025.6.0b0.dist-info}/RECORD +394 -337
  393. homeassistant-stubs/components/metoffice/data.pyi +0 -10
  394. homeassistant-stubs/components/rtsp_to_webrtc/__init__.pyi +0 -19
  395. homeassistant-stubs/components/rtsp_to_webrtc/config_flow.pyi +0 -24
  396. {homeassistant_stubs-2025.5.2.dist-info → homeassistant_stubs-2025.6.0b0.dist-info}/WHEEL +0 -0
  397. {homeassistant_stubs-2025.5.2.dist-info → homeassistant_stubs-2025.6.0b0.dist-info}/licenses/LICENSE +0 -0
@@ -1,5 +1,6 @@
1
1
  import aiounifi
2
2
  from . import UnifiConfigEntry as UnifiConfigEntry
3
+ from .const import DOMAIN as DOMAIN
3
4
  from .entity import HandlerT as HandlerT, UnifiEntity as UnifiEntity, UnifiEntityDescription as UnifiEntityDescription, async_device_available_fn as async_device_available_fn
4
5
  from .hub import UnifiHub as UnifiHub
5
6
  from _typeshed import Incomplete
@@ -1,3 +1,4 @@
1
+ from .const import DOMAIN as DOMAIN
1
2
  from _typeshed import Incomplete
2
3
  from collections.abc import Mapping
3
4
  from homeassistant.const import ATTR_DEVICE_ID as ATTR_DEVICE_ID
@@ -9,7 +9,6 @@ from pyuptimerobot import UptimeRobot as UptimeRobot, UptimeRobotMonitor
9
9
  type UptimeRobotConfigEntry = ConfigEntry[UptimeRobotDataUpdateCoordinator]
10
10
  class UptimeRobotDataUpdateCoordinator(DataUpdateCoordinator[list[UptimeRobotMonitor]]):
11
11
  config_entry: UptimeRobotConfigEntry
12
- _device_registry: Incomplete
13
12
  api: Incomplete
14
13
  def __init__(self, hass: HomeAssistant, config_entry: UptimeRobotConfigEntry, api: UptimeRobot) -> None: ...
15
14
  async def _async_update_data(self) -> list[UptimeRobotMonitor]: ...
@@ -1,8 +1,9 @@
1
- from .const import API_ATTR_OK as API_ATTR_OK, LOGGER as LOGGER
1
+ from .const import API_ATTR_OK as API_ATTR_OK, DOMAIN as DOMAIN
2
2
  from .coordinator import UptimeRobotConfigEntry as UptimeRobotConfigEntry
3
3
  from .entity import UptimeRobotEntity as UptimeRobotEntity
4
4
  from homeassistant.components.switch import SwitchDeviceClass as SwitchDeviceClass, SwitchEntity as SwitchEntity, SwitchEntityDescription as SwitchEntityDescription
5
5
  from homeassistant.core import HomeAssistant as HomeAssistant
6
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
6
7
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
7
8
  from typing import Any
8
9
 
@@ -8,6 +8,8 @@ CODE_KEY: str
8
8
  CONF_STATION: str
9
9
  CHARGER_ADDED_DISCHARGED_ENERGY_KEY: str
10
10
  CHARGER_ADDED_ENERGY_KEY: str
11
+ CHARGER_ADDED_GREEN_ENERGY_KEY: str
12
+ CHARGER_ADDED_GRID_ENERGY_KEY: str
11
13
  CHARGER_ADDED_RANGE_KEY: str
12
14
  CHARGER_CHARGING_POWER_KEY: str
13
15
  CHARGER_CHARGING_SPEED_KEY: str
@@ -35,6 +37,9 @@ CHARGER_STATE_OF_CHARGE_KEY: str
35
37
  CHARGER_STATUS_ID_KEY: str
36
38
  CHARGER_STATUS_DESCRIPTION_KEY: str
37
39
  CHARGER_CONNECTIONS: str
40
+ CHARGER_ECO_SMART_KEY: str
41
+ CHARGER_ECO_SMART_STATUS_KEY: str
42
+ CHARGER_ECO_SMART_MODE_KEY: str
38
43
 
39
44
  class ChargerStatus(StrEnum):
40
45
  CHARGING = 'Charging'
@@ -55,3 +60,8 @@ class ChargerStatus(StrEnum):
55
60
  WAITING_MID_SAFETY = 'Waiting MID safety margin exceeded'
56
61
  WAITING_IN_QUEUE_ECO_SMART = 'Waiting in queue by Eco-Smart'
57
62
  UNKNOWN = 'Unknown'
63
+
64
+ class EcoSmartMode(StrEnum):
65
+ OFF = 'off'
66
+ ECO_MODE = 'eco_mode'
67
+ FULL_SOLAR = 'full_solar'
@@ -1,4 +1,4 @@
1
- from .const import CHARGER_CURRENCY_KEY as CHARGER_CURRENCY_KEY, CHARGER_DATA_KEY as CHARGER_DATA_KEY, CHARGER_ENERGY_PRICE_KEY as CHARGER_ENERGY_PRICE_KEY, CHARGER_FEATURES_KEY as CHARGER_FEATURES_KEY, CHARGER_LOCKED_UNLOCKED_KEY as CHARGER_LOCKED_UNLOCKED_KEY, CHARGER_MAX_CHARGING_CURRENT_KEY as CHARGER_MAX_CHARGING_CURRENT_KEY, CHARGER_MAX_ICP_CURRENT_KEY as CHARGER_MAX_ICP_CURRENT_KEY, CHARGER_PLAN_KEY as CHARGER_PLAN_KEY, CHARGER_POWER_BOOST_KEY as CHARGER_POWER_BOOST_KEY, CHARGER_STATUS_DESCRIPTION_KEY as CHARGER_STATUS_DESCRIPTION_KEY, CHARGER_STATUS_ID_KEY as CHARGER_STATUS_ID_KEY, CODE_KEY as CODE_KEY, CONF_STATION as CONF_STATION, ChargerStatus as ChargerStatus, DOMAIN as DOMAIN, UPDATE_INTERVAL as UPDATE_INTERVAL
1
+ from .const import CHARGER_CURRENCY_KEY as CHARGER_CURRENCY_KEY, CHARGER_DATA_KEY as CHARGER_DATA_KEY, CHARGER_ECO_SMART_KEY as CHARGER_ECO_SMART_KEY, CHARGER_ECO_SMART_MODE_KEY as CHARGER_ECO_SMART_MODE_KEY, CHARGER_ECO_SMART_STATUS_KEY as CHARGER_ECO_SMART_STATUS_KEY, CHARGER_ENERGY_PRICE_KEY as CHARGER_ENERGY_PRICE_KEY, CHARGER_FEATURES_KEY as CHARGER_FEATURES_KEY, CHARGER_LOCKED_UNLOCKED_KEY as CHARGER_LOCKED_UNLOCKED_KEY, CHARGER_MAX_CHARGING_CURRENT_KEY as CHARGER_MAX_CHARGING_CURRENT_KEY, CHARGER_MAX_ICP_CURRENT_KEY as CHARGER_MAX_ICP_CURRENT_KEY, CHARGER_PLAN_KEY as CHARGER_PLAN_KEY, CHARGER_POWER_BOOST_KEY as CHARGER_POWER_BOOST_KEY, CHARGER_STATUS_DESCRIPTION_KEY as CHARGER_STATUS_DESCRIPTION_KEY, CHARGER_STATUS_ID_KEY as CHARGER_STATUS_ID_KEY, CODE_KEY as CODE_KEY, CONF_STATION as CONF_STATION, ChargerStatus as ChargerStatus, DOMAIN as DOMAIN, EcoSmartMode as EcoSmartMode, UPDATE_INTERVAL as UPDATE_INTERVAL
2
2
  from _typeshed import Incomplete
3
3
  from collections.abc import Callable as Callable
4
4
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
@@ -39,5 +39,8 @@ class WallboxCoordinator(DataUpdateCoordinator[dict[str, Any]]):
39
39
  @_require_authentication
40
40
  def _pause_charger(self, pause: bool) -> None: ...
41
41
  async def async_pause_charger(self, pause: bool) -> None: ...
42
+ @_require_authentication
43
+ def _set_eco_smart(self, option: str) -> None: ...
44
+ async def async_set_eco_smart(self, option: str) -> None: ...
42
45
 
43
46
  class InvalidAuth(HomeAssistantError): ...
@@ -0,0 +1,29 @@
1
+ from .const import CHARGER_DATA_KEY as CHARGER_DATA_KEY, CHARGER_ECO_SMART_KEY as CHARGER_ECO_SMART_KEY, CHARGER_FEATURES_KEY as CHARGER_FEATURES_KEY, CHARGER_PLAN_KEY as CHARGER_PLAN_KEY, CHARGER_POWER_BOOST_KEY as CHARGER_POWER_BOOST_KEY, CHARGER_SERIAL_NUMBER_KEY as CHARGER_SERIAL_NUMBER_KEY, DOMAIN as DOMAIN, EcoSmartMode as EcoSmartMode
2
+ from .coordinator import WallboxCoordinator as WallboxCoordinator
3
+ from .entity import WallboxEntity as WallboxEntity
4
+ from _typeshed import Incomplete
5
+ from collections.abc import Awaitable, Callable as Callable
6
+ from dataclasses import dataclass
7
+ from homeassistant.components.select import SelectEntity as SelectEntity, SelectEntityDescription as SelectEntityDescription
8
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
9
+ from homeassistant.core import HomeAssistant as HomeAssistant
10
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
11
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
12
+
13
+ @dataclass(frozen=True, kw_only=True)
14
+ class WallboxSelectEntityDescription(SelectEntityDescription):
15
+ current_option_fn: Callable[[WallboxCoordinator], str | None]
16
+ select_option_fn: Callable[[WallboxCoordinator, str], Awaitable[None]]
17
+ supported_fn: Callable[[WallboxCoordinator], bool]
18
+
19
+ SELECT_TYPES: dict[str, WallboxSelectEntityDescription]
20
+
21
+ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
22
+
23
+ class WallboxSelect(WallboxEntity, SelectEntity):
24
+ entity_description: WallboxSelectEntityDescription
25
+ _attr_unique_id: Incomplete
26
+ def __init__(self, coordinator: WallboxCoordinator, description: WallboxSelectEntityDescription) -> None: ...
27
+ @property
28
+ def current_option(self) -> str | None: ...
29
+ async def async_select_option(self, option: str) -> None: ...
@@ -1,4 +1,4 @@
1
- from .const import CHARGER_ADDED_DISCHARGED_ENERGY_KEY as CHARGER_ADDED_DISCHARGED_ENERGY_KEY, CHARGER_ADDED_ENERGY_KEY as CHARGER_ADDED_ENERGY_KEY, CHARGER_ADDED_RANGE_KEY as CHARGER_ADDED_RANGE_KEY, CHARGER_CHARGING_POWER_KEY as CHARGER_CHARGING_POWER_KEY, CHARGER_CHARGING_SPEED_KEY as CHARGER_CHARGING_SPEED_KEY, CHARGER_COST_KEY as CHARGER_COST_KEY, CHARGER_CURRENCY_KEY as CHARGER_CURRENCY_KEY, CHARGER_CURRENT_MODE_KEY as CHARGER_CURRENT_MODE_KEY, CHARGER_DATA_KEY as CHARGER_DATA_KEY, CHARGER_DEPOT_PRICE_KEY as CHARGER_DEPOT_PRICE_KEY, CHARGER_ENERGY_PRICE_KEY as CHARGER_ENERGY_PRICE_KEY, CHARGER_MAX_AVAILABLE_POWER_KEY as CHARGER_MAX_AVAILABLE_POWER_KEY, CHARGER_MAX_CHARGING_CURRENT_KEY as CHARGER_MAX_CHARGING_CURRENT_KEY, CHARGER_MAX_ICP_CURRENT_KEY as CHARGER_MAX_ICP_CURRENT_KEY, CHARGER_SERIAL_NUMBER_KEY as CHARGER_SERIAL_NUMBER_KEY, CHARGER_STATE_OF_CHARGE_KEY as CHARGER_STATE_OF_CHARGE_KEY, CHARGER_STATUS_DESCRIPTION_KEY as CHARGER_STATUS_DESCRIPTION_KEY, DOMAIN as DOMAIN
1
+ from .const import CHARGER_ADDED_DISCHARGED_ENERGY_KEY as CHARGER_ADDED_DISCHARGED_ENERGY_KEY, CHARGER_ADDED_ENERGY_KEY as CHARGER_ADDED_ENERGY_KEY, CHARGER_ADDED_GREEN_ENERGY_KEY as CHARGER_ADDED_GREEN_ENERGY_KEY, CHARGER_ADDED_GRID_ENERGY_KEY as CHARGER_ADDED_GRID_ENERGY_KEY, CHARGER_ADDED_RANGE_KEY as CHARGER_ADDED_RANGE_KEY, CHARGER_CHARGING_POWER_KEY as CHARGER_CHARGING_POWER_KEY, CHARGER_CHARGING_SPEED_KEY as CHARGER_CHARGING_SPEED_KEY, CHARGER_COST_KEY as CHARGER_COST_KEY, CHARGER_CURRENCY_KEY as CHARGER_CURRENCY_KEY, CHARGER_CURRENT_MODE_KEY as CHARGER_CURRENT_MODE_KEY, CHARGER_DATA_KEY as CHARGER_DATA_KEY, CHARGER_DEPOT_PRICE_KEY as CHARGER_DEPOT_PRICE_KEY, CHARGER_ENERGY_PRICE_KEY as CHARGER_ENERGY_PRICE_KEY, CHARGER_MAX_AVAILABLE_POWER_KEY as CHARGER_MAX_AVAILABLE_POWER_KEY, CHARGER_MAX_CHARGING_CURRENT_KEY as CHARGER_MAX_CHARGING_CURRENT_KEY, CHARGER_MAX_ICP_CURRENT_KEY as CHARGER_MAX_ICP_CURRENT_KEY, CHARGER_SERIAL_NUMBER_KEY as CHARGER_SERIAL_NUMBER_KEY, CHARGER_STATE_OF_CHARGE_KEY as CHARGER_STATE_OF_CHARGE_KEY, CHARGER_STATUS_DESCRIPTION_KEY as CHARGER_STATUS_DESCRIPTION_KEY, DOMAIN as DOMAIN
2
2
  from .coordinator import WallboxCoordinator as WallboxCoordinator
3
3
  from .entity import WallboxEntity as WallboxEntity
4
4
  from _typeshed import Incomplete
@@ -1,4 +1,4 @@
1
- from .const import WEMO_SUBSCRIPTION_EVENT as WEMO_SUBSCRIPTION_EVENT
1
+ from .const import DOMAIN as DOMAIN, WEMO_SUBSCRIPTION_EVENT as WEMO_SUBSCRIPTION_EVENT
2
2
  from .coordinator import async_get_coordinator as async_get_coordinator
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.components.device_automation import DEVICE_TRIGGER_BASE_SCHEMA as DEVICE_TRIGGER_BASE_SCHEMA
@@ -1,4 +1,5 @@
1
1
  from . import async_wemo_dispatcher_connect as async_wemo_dispatcher_connect
2
+ from .const import DOMAIN as DOMAIN
2
3
  from .coordinator import DeviceCoordinator as DeviceCoordinator
3
4
  from .entity import WemoBinaryStateEntity as WemoBinaryStateEntity, WemoEntity as WemoEntity
4
5
  from _typeshed import Incomplete
@@ -10,3 +10,4 @@ ATTR_EXPIRES: str
10
10
  ATTR_NAME_SERVERS: str
11
11
  ATTR_REGISTRAR: str
12
12
  ATTR_UPDATED: str
13
+ STATUS_TYPES: Incomplete
@@ -1,4 +1,4 @@
1
- from .const import ATTR_EXPIRES as ATTR_EXPIRES, ATTR_NAME_SERVERS as ATTR_NAME_SERVERS, ATTR_REGISTRAR as ATTR_REGISTRAR, ATTR_UPDATED as ATTR_UPDATED, DOMAIN as DOMAIN
1
+ from .const import ATTR_EXPIRES as ATTR_EXPIRES, ATTR_NAME_SERVERS as ATTR_NAME_SERVERS, ATTR_REGISTRAR as ATTR_REGISTRAR, ATTR_UPDATED as ATTR_UPDATED, DOMAIN as DOMAIN, STATUS_TYPES as STATUS_TYPES
2
2
  from _typeshed import Incomplete
3
3
  from collections.abc import Callable as Callable
4
4
  from dataclasses import dataclass
@@ -18,6 +18,7 @@ class WhoisSensorEntityDescription(SensorEntityDescription):
18
18
 
19
19
  def _days_until_expiration(domain: Domain) -> int | None: ...
20
20
  def _ensure_timezone(timestamp: datetime | None) -> datetime | None: ...
21
+ def _get_status_type(status: str | None) -> str | None: ...
21
22
 
22
23
  SENSORS: tuple[WhoisSensorEntityDescription, ...]
23
24
 
@@ -4,7 +4,7 @@ from .entity import YouTubeChannelEntity as YouTubeChannelEntity
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Callable as Callable
6
6
  from dataclasses import dataclass
7
- from homeassistant.components.sensor import SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription
7
+ from homeassistant.components.sensor import SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
8
8
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
9
9
  from homeassistant.const import ATTR_ICON as ATTR_ICON
10
10
  from homeassistant.core import HomeAssistant as HomeAssistant
@@ -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_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, DATA_CLIENT as DATA_CLIENT, 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_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_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, DATA_CLIENT as DATA_CLIENT, DOMAIN as DOMAIN, DRIVER_READY_TIMEOUT as DRIVER_READY_TIMEOUT, 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 ZwaveDiscoveryInfo as ZwaveDiscoveryInfo, 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
@@ -26,7 +26,6 @@ from zwave_js_server.model.value import Value as Value, ValueNotification as Val
26
26
 
27
27
  CONNECT_TIMEOUT: int
28
28
  DATA_DRIVER_EVENTS: str
29
- DRIVER_READY_TIMEOUT: int
30
29
  CONFIG_SCHEMA: Incomplete
31
30
  PLATFORMS: Incomplete
32
31
 
@@ -1,5 +1,5 @@
1
1
  from .config_validation import BITMASK_SCHEMA as BITMASK_SCHEMA
2
- from .const import ATTR_COMMAND_CLASS as ATTR_COMMAND_CLASS, ATTR_ENDPOINT as ATTR_ENDPOINT, ATTR_METHOD_NAME as ATTR_METHOD_NAME, ATTR_PARAMETERS as ATTR_PARAMETERS, ATTR_WAIT_FOR_RESULT as ATTR_WAIT_FOR_RESULT, CONF_DATA_COLLECTION_OPTED_IN as CONF_DATA_COLLECTION_OPTED_IN, CONF_INSTALLER_MODE as CONF_INSTALLER_MODE, DATA_CLIENT as DATA_CLIENT, DOMAIN as DOMAIN, EVENT_DEVICE_ADDED_TO_REGISTRY as EVENT_DEVICE_ADDED_TO_REGISTRY, LOGGER as LOGGER, RESTORE_NVM_DRIVER_READY_TIMEOUT as RESTORE_NVM_DRIVER_READY_TIMEOUT, USER_AGENT as USER_AGENT
2
+ from .const import ATTR_COMMAND_CLASS as ATTR_COMMAND_CLASS, ATTR_ENDPOINT as ATTR_ENDPOINT, ATTR_METHOD_NAME as ATTR_METHOD_NAME, ATTR_PARAMETERS as ATTR_PARAMETERS, ATTR_WAIT_FOR_RESULT as ATTR_WAIT_FOR_RESULT, CONF_DATA_COLLECTION_OPTED_IN as CONF_DATA_COLLECTION_OPTED_IN, CONF_INSTALLER_MODE as CONF_INSTALLER_MODE, DATA_CLIENT as DATA_CLIENT, DOMAIN as DOMAIN, DRIVER_READY_TIMEOUT as DRIVER_READY_TIMEOUT, EVENT_DEVICE_ADDED_TO_REGISTRY as EVENT_DEVICE_ADDED_TO_REGISTRY, LOGGER as LOGGER, USER_AGENT as USER_AGENT
3
3
  from .helpers import CannotConnect as CannotConnect, async_enable_statistics as async_enable_statistics, async_get_node_from_device_id as async_get_node_from_device_id, async_get_provisioning_entry_from_device_id as async_get_provisioning_entry_from_device_id, async_get_version_info as async_get_version_info, get_device_id as get_device_id
4
4
  from _typeshed import Incomplete
5
5
  from aiohttp import web as web
@@ -76,7 +76,6 @@ AREA_ID: str
76
76
  FEATURE: str
77
77
  STRATEGY: str
78
78
  MINIMUM_QR_STRING_LENGTH: int
79
- HARD_RESET_CONTROLLER_DRIVER_READY_TIMEOUT: int
80
79
  PLANNED_PROVISIONING_ENTRY_SCHEMA: Incomplete
81
80
  QR_PROVISIONING_INFORMATION_SCHEMA: Incomplete
82
81
  QR_CODE_STRING_SCHEMA: Incomplete
@@ -1,7 +1,7 @@
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_EMULATE_HARDWARE as CONF_ADDON_EMULATE_HARDWARE, CONF_ADDON_LOG_LEVEL as CONF_ADDON_LOG_LEVEL, 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_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, DATA_CLIENT as DATA_CLIENT, DOMAIN as DOMAIN, RESTORE_NVM_DRIVER_READY_TIMEOUT as RESTORE_NVM_DRIVER_READY_TIMEOUT
4
+ from .const import ADDON_SLUG as ADDON_SLUG, CONF_ADDON_DEVICE as CONF_ADDON_DEVICE, CONF_ADDON_EMULATE_HARDWARE as CONF_ADDON_EMULATE_HARDWARE, CONF_ADDON_LOG_LEVEL as CONF_ADDON_LOG_LEVEL, 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_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, DATA_CLIENT as DATA_CLIENT, DOMAIN as DOMAIN, DRIVER_READY_TIMEOUT as DRIVER_READY_TIMEOUT
5
5
  from .helpers import CannotConnect as CannotConnect, async_get_version_info as async_get_version_info
6
6
  from _typeshed import Incomplete
7
7
  from homeassistant.components import usb as usb
@@ -16,6 +16,7 @@ from homeassistant.helpers.service_info.hassio import HassioServiceInfo as Hassi
16
16
  from homeassistant.helpers.service_info.usb import UsbServiceInfo as UsbServiceInfo
17
17
  from homeassistant.helpers.service_info.zeroconf import ZeroconfServiceInfo as ZeroconfServiceInfo
18
18
  from homeassistant.helpers.typing import VolDictType as VolDictType
19
+ from pathlib import Path
19
20
  from typing import Any
20
21
  from zwave_js_server.client import Client as Client
21
22
  from zwave_js_server.model.driver import Driver as Driver
@@ -60,11 +61,12 @@ class ZWaveJSConfigFlow(ConfigFlow, domain=DOMAIN):
60
61
  backup_task: asyncio.Task | None
61
62
  restore_backup_task: asyncio.Task | None
62
63
  backup_data: bytes | None
63
- backup_filepath: str | None
64
+ backup_filepath: Path | None
64
65
  use_addon: bool
65
66
  _migrating: bool
66
67
  _reconfigure_config_entry: ConfigEntry | None
67
68
  _usb_discovery: bool
69
+ _recommended_install: bool
68
70
  def __init__(self) -> None: ...
69
71
  async def async_step_install_addon(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
70
72
  async def async_step_install_failed(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -78,6 +80,7 @@ class ZWaveJSConfigFlow(ConfigFlow, domain=DOMAIN):
78
80
  async def _async_install_addon(self) -> None: ...
79
81
  async def _async_get_addon_discovery_info(self) -> dict: ...
80
82
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
83
+ async def async_step_installation_type(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
81
84
  async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
82
85
  async def async_step_zeroconf(self, discovery_info: ZeroconfServiceInfo) -> ConfigFlowResult: ...
83
86
  async def async_step_zeroconf_confirm(self, user_input: dict | None = None) -> ConfigFlowResult: ...
@@ -86,13 +89,15 @@ class ZWaveJSConfigFlow(ConfigFlow, domain=DOMAIN):
86
89
  async def async_step_manual(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
87
90
  async def async_step_hassio(self, discovery_info: HassioServiceInfo) -> ConfigFlowResult: ...
88
91
  async def async_step_hassio_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
92
+ async def async_step_intent_recommended(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
93
+ async def async_step_intent_custom(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
89
94
  async def async_step_on_supervisor(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
90
95
  async def async_step_configure_addon_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
91
96
  async def async_step_finish_addon_setup_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
92
97
  @callback
93
98
  def _async_create_entry_from_vars(self) -> ConfigFlowResult: ...
94
99
  @callback
95
- def _async_update_entry(self, updates: dict[str, Any], *, schedule_reload: bool = True) -> None: ...
100
+ def _async_update_entry(self, updates: dict[str, Any]) -> None: ...
96
101
  async def async_step_intent_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
97
102
  async def async_step_intent_migrate(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
98
103
  async def async_step_backup_nvm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -130,4 +130,4 @@ ENTITY_DESC_KEY_ENERGY_PRODUCTION_TODAY: str
130
130
  API_KEY_FIRMWARE_UPDATE_SERVICE: str
131
131
  COVER_POSITION_PROPERTY_KEYS: set[str | int | None]
132
132
  COVER_TILT_PROPERTY_KEYS: set[str | int | None]
133
- RESTORE_NVM_DRIVER_READY_TIMEOUT: int
133
+ DRIVER_READY_TIMEOUT: int
@@ -354,7 +354,6 @@ class ConfigEntries:
354
354
  def _async_dispatch(self, change_type: ConfigEntryChange, entry: ConfigEntry) -> None: ...
355
355
  async def async_forward_entry_setups(self, entry: ConfigEntry, platforms: Iterable[Platform | str]) -> None: ...
356
356
  async def _async_forward_entry_setups_locked(self, entry: ConfigEntry, platforms: Iterable[Platform | str]) -> None: ...
357
- async def async_forward_entry_setup(self, entry: ConfigEntry, domain: Platform | str) -> bool: ...
358
357
  async def _async_forward_entry_setup(self, entry: ConfigEntry, domain: Platform | str, preload_platform: bool) -> bool: ...
359
358
  async def async_unload_platforms(self, entry: ConfigEntry, platforms: Iterable[Platform | str]) -> bool: ...
360
359
  async def async_forward_entry_unload(self, entry: ConfigEntry, domain: Platform | str) -> bool: ...
@@ -423,8 +423,13 @@ class UnitOfEnergy(StrEnum):
423
423
  MEGA_CALORIE = 'Mcal'
424
424
  GIGA_CALORIE = 'Gcal'
425
425
 
426
+ class UnitOfReactiveEnergy(StrEnum):
427
+ VOLT_AMPERE_REACTIVE_HOUR = 'varh'
428
+ KILO_VOLT_AMPERE_REACTIVE_HOUR = 'kvarh'
429
+
426
430
  class UnitOfEnergyDistance(StrEnum):
427
431
  KILO_WATT_HOUR_PER_100_KM = 'kWh/100km'
432
+ WATT_HOUR_PER_KM = 'Wh/km'
428
433
  MILES_PER_KILO_WATT_HOUR = 'mi/kWh'
429
434
  KM_PER_KILO_WATT_HOUR = 'km/kWh'
430
435
 
@@ -5,7 +5,6 @@ from .const import ATTR_ASSUMED_STATE as ATTR_ASSUMED_STATE, ATTR_FRIENDLY_NAME
5
5
  from .core import HomeAssistant as HomeAssistant
6
6
  from .generated.currencies import HISTORIC_CURRENCIES as HISTORIC_CURRENCIES
7
7
  from .helpers.entity_values import EntityValues as EntityValues
8
- from .helpers.frame import ReportBehavior as ReportBehavior, report_usage as report_usage
9
8
  from .helpers.storage import Store as Store
10
9
  from .helpers.typing import UNDEFINED as UNDEFINED, UndefinedType as UndefinedType
11
10
  from .util import location as location
@@ -97,7 +96,6 @@ class Config:
97
96
  def is_allowed_path(self, path: str) -> bool: ...
98
97
  def as_dict(self) -> dict[str, Any]: ...
99
98
  async def async_set_time_zone(self, time_zone_str: str) -> None: ...
100
- def set_time_zone(self, time_zone_str: str) -> None: ...
101
99
  async def _async_update(self, *, country: str | UndefinedType | None = ..., currency: str | None = None, elevation: int | None = None, external_url: str | UndefinedType | None = ..., internal_url: str | UndefinedType | None = ..., language: str | None = None, latitude: float | None = None, location_name: str | None = None, longitude: float | None = None, radius: int | None = None, source: ConfigSource, time_zone: str | None = None, unit_system: str | None = None) -> None: ...
102
100
  async def async_update(self, **kwargs: Any) -> None: ...
103
101
  async def async_load(self) -> None: ...
@@ -1,6 +1,4 @@
1
1
  import logging
2
- import voluptuous as vol
3
- from .sun import get_astral_event_date as get_astral_event_date
4
2
  from .template import Template as Template, render_complex as render_complex
5
3
  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
6
4
  from .typing import ConfigType as ConfigType, TemplateVarsType as TemplateVarsType
@@ -9,7 +7,7 @@ from collections.abc import Callable, Container, Generator
9
7
  from contextlib import contextmanager
10
8
  from datetime import time as dt_time, timedelta
11
9
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass
12
- from homeassistant.const import ATTR_DEVICE_CLASS as ATTR_DEVICE_CLASS, ATTR_GPS_ACCURACY as ATTR_GPS_ACCURACY, ATTR_LATITUDE as ATTR_LATITUDE, ATTR_LONGITUDE as ATTR_LONGITUDE, 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, CONF_ZONE as CONF_ZONE, ENTITY_MATCH_ALL as ENTITY_MATCH_ALL, ENTITY_MATCH_ANY as ENTITY_MATCH_ANY, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN, SUN_EVENT_SUNRISE as SUN_EVENT_SUNRISE, SUN_EVENT_SUNSET as SUN_EVENT_SUNSET, WEEKDAYS as WEEKDAYS
10
+ from homeassistant.const import ATTR_DEVICE_CLASS as ATTR_DEVICE_CLASS, ATTR_GPS_ACCURACY as ATTR_GPS_ACCURACY, ATTR_LATITUDE as ATTR_LATITUDE, ATTR_LONGITUDE as ATTR_LONGITUDE, 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, CONF_ZONE as CONF_ZONE, 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
11
  from homeassistant.core import HomeAssistant as HomeAssistant, State as State, callback as callback
14
12
  from homeassistant.exceptions import ConditionError as ConditionError, ConditionErrorContainer as ConditionErrorContainer, ConditionErrorIndex as ConditionErrorIndex, ConditionErrorMessage as ConditionErrorMessage, HomeAssistantError as HomeAssistantError, TemplateError as TemplateError
15
13
  from homeassistant.loader import IntegrationNotFound as IntegrationNotFound, async_get_integration as async_get_integration
@@ -23,7 +21,6 @@ _PLATFORM_ALIASES: Incomplete
23
21
  INPUT_ENTITY_ID: Incomplete
24
22
 
25
23
  class ConditionProtocol(Protocol):
26
- CONDITION_SCHEMA: vol.Schema
27
24
  async def async_validate_condition_config(self, hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
28
25
  def async_condition_from_config(self, hass: HomeAssistant, config: ConfigType) -> ConditionCheckerType: ...
29
26
  type ConditionCheckerType = Callable[[HomeAssistant, TemplateVarsType], bool | None]
@@ -44,8 +41,6 @@ def async_numeric_state(hass: HomeAssistant, entity: str | State | None, below:
44
41
  def async_numeric_state_from_config(config: ConfigType) -> ConditionCheckerType: ...
45
42
  def state(hass: HomeAssistant, entity: str | State | None, req_state: Any, for_period: timedelta | None = None, attribute: str | None = None, variables: TemplateVarsType = None) -> bool: ...
46
43
  def state_from_config(config: ConfigType) -> ConditionCheckerType: ...
47
- def sun(hass: HomeAssistant, before: str | None = None, after: str | None = None, before_offset: timedelta | None = None, after_offset: timedelta | None = None) -> bool: ...
48
- def sun_from_config(config: ConfigType) -> ConditionCheckerType: ...
49
44
  def template(hass: HomeAssistant, value_template: Template, variables: TemplateVarsType = None) -> bool: ...
50
45
  def async_template(hass: HomeAssistant, value_template: Template, variables: TemplateVarsType = None, trace_result: bool = True) -> bool: ...
51
46
  def async_template_from_config(config: ConfigType) -> ConditionCheckerType: ...
@@ -3,10 +3,14 @@ import logging
3
3
  from . import http as http
4
4
  from .aiohttp_client import async_get_clientsession as async_get_clientsession
5
5
  from .network import NoURLAvailableError as NoURLAvailableError
6
+ from .service_info.dhcp import DhcpServiceInfo as DhcpServiceInfo
7
+ from .service_info.ssdp import SsdpServiceInfo as SsdpServiceInfo
8
+ from .service_info.zeroconf import ZeroconfServiceInfo as ZeroconfServiceInfo
6
9
  from _typeshed import Incomplete
7
10
  from abc import ABC, ABCMeta, abstractmethod
8
11
  from aiohttp import client as client, web
9
12
  from collections.abc import Awaitable, Callable as Callable
13
+ from habluetooth import BluetoothServiceInfoBleak as BluetoothServiceInfoBleak
10
14
  from homeassistant import config_entries as config_entries
11
15
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
12
16
  from homeassistant.loader import async_get_application_credentials as async_get_application_credentials
@@ -95,6 +99,12 @@ class AbstractOAuth2FlowHandler(config_entries.ConfigFlow, metaclass=ABCMeta):
95
99
  async def async_step_authorize_rejected(self, data: None = None) -> config_entries.ConfigFlowResult: ...
96
100
  async def async_oauth_create_entry(self, data: dict) -> config_entries.ConfigFlowResult: ...
97
101
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> config_entries.ConfigFlowResult: ...
102
+ async def async_step_bluetooth(self, discovery_info: BluetoothServiceInfoBleak) -> config_entries.ConfigFlowResult: ...
103
+ async def async_step_dhcp(self, discovery_info: DhcpServiceInfo) -> config_entries.ConfigFlowResult: ...
104
+ async def async_step_homekit(self, discovery_info: ZeroconfServiceInfo) -> config_entries.ConfigFlowResult: ...
105
+ async def async_step_ssdp(self, discovery_info: SsdpServiceInfo) -> config_entries.ConfigFlowResult: ...
106
+ async def async_step_zeroconf(self, discovery_info: ZeroconfServiceInfo) -> config_entries.ConfigFlowResult: ...
107
+ async def async_step_oauth_discovery(self, user_input: dict[str, Any] | None = None) -> config_entries.ConfigFlowResult: ...
98
108
  @classmethod
99
109
  def async_register_implementation(cls, hass: HomeAssistant, local_impl: LocalOAuth2Implementation) -> None: ...
100
110
 
@@ -5,7 +5,7 @@ from . import template as template_helper
5
5
  from .frame import get_integration_logger as get_integration_logger
6
6
  from .typing import VolDictType as VolDictType, VolSchemaType as VolSchemaType
7
7
  from _typeshed import Incomplete
8
- from collections.abc import Callable as Callable, Hashable
8
+ from collections.abc import Callable, Hashable
9
9
  from contextvars import ContextVar
10
10
  from datetime import date as date_sys, datetime as datetime_sys, time as time_sys, timedelta
11
11
  from enum import Enum, StrEnum
@@ -146,7 +146,8 @@ def _deprecated_or_removed(key: str, replacement_key: str | None, default: Any |
146
146
  def deprecated(key: str, replacement_key: str | None = None, default: Any | None = None, raise_if_present: bool | None = False) -> Callable[[dict], dict]: ...
147
147
  def removed(key: str, default: Any | None = None, raise_if_present: bool | None = True) -> Callable[[dict], dict]: ...
148
148
  def renamed(old_key: str, new_key: str) -> Callable[[Any], Any]: ...
149
- def key_value_schemas(key: str, value_schemas: dict[Hashable, VolSchemaType | Callable[[Any], dict[str, Any]]], default_schema: VolSchemaType | None = None, default_description: str | None = None) -> Callable[[Any], dict[Hashable, Any]]: ...
149
+ type ValueSchemas = dict[Hashable, VolSchemaType | Callable[[Any], dict[str, Any]]]
150
+ 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]]: ...
150
151
  def key_dependency[_KT: Hashable, _VT](key: Hashable, dependency: Hashable) -> Callable[[dict[_KT, _VT]], dict[_KT, _VT]]: ...
151
152
  def custom_serializer(schema: Any) -> Any: ...
152
153
  def _custom_serializer(schema: Any, *, allow_section: bool) -> Any: ...
@@ -207,6 +208,10 @@ def expand_condition_shorthand(value: Any | None) -> Any: ...
207
208
 
208
209
  dynamic_template_condition: Incomplete
209
210
  CONDITION_SHORTHAND_SCHEMA: Incomplete
211
+ BUILT_IN_CONDITIONS: ValueSchemas
212
+
213
+ def _base_condition_validator(value: Any) -> Any: ...
214
+
210
215
  CONDITION_SCHEMA: vol.Schema
211
216
  CONDITIONS_SCHEMA: Incomplete
212
217
  dynamic_template_condition_action: Incomplete
@@ -144,16 +144,16 @@ class DeletedDeviceEntry:
144
144
  config_entries: set[str]
145
145
  config_entries_subentries: dict[str, set[str | None]]
146
146
  connections: set[tuple[str, str]]
147
- identifiers: set[tuple[str, str]]
148
- id: str
149
- orphaned_timestamp: float | None
150
147
  created_at: datetime
148
+ id: str
149
+ identifiers: set[tuple[str, str]]
151
150
  modified_at: datetime
151
+ orphaned_timestamp: float | None
152
152
  _cache: dict[str, Any]
153
153
  def to_device_entry(self, config_entry_id: str, config_subentry_id: str | None, connections: set[tuple[str, str]], identifiers: set[tuple[str, str]]) -> DeviceEntry: ...
154
154
  @under_cached_property
155
155
  def as_storage_fragment(self) -> json_fragment: ...
156
- def __init__(self, config_entries, config_entries_subentries, connections, identifiers, id, orphaned_timestamp, created_at, modified_at, cache) -> None: ...
156
+ def __init__(self, config_entries, config_entries_subentries, connections, created_at, id, identifiers, modified_at, orphaned_timestamp, cache) -> None: ...
157
157
  def __lt__(self, other): ...
158
158
  def __le__(self, other): ...
159
159
  def __gt__(self, other): ...
@@ -1,6 +1,6 @@
1
1
  import logging
2
2
  from . import discovery as discovery, entity as entity, service as service
3
- from .entity_platform import EntityPlatform as EntityPlatform
3
+ from .entity_platform import EntityPlatform as EntityPlatform, async_calculate_suggested_object_id as async_calculate_suggested_object_id
4
4
  from .typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType, VolDictType as VolDictType, VolSchemaType as VolSchemaType
5
5
  from _typeshed import Incomplete
6
6
  from collections.abc import Callable as Callable, Iterable
@@ -11,14 +11,17 @@ from homeassistant.core import Event as Event, HassJob as HassJob, HassJobType a
11
11
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
12
12
  from homeassistant.loader import async_get_integration as async_get_integration, bind_hass as bind_hass
13
13
  from homeassistant.setup import async_prepare_setup_platform as async_prepare_setup_platform
14
+ from homeassistant.util.hass_dict import HassKey as HassKey
14
15
  from types import ModuleType
15
16
  from typing import Any
16
17
 
17
18
  DEFAULT_SCAN_INTERVAL: Incomplete
18
- DATA_INSTANCES: str
19
+ DATA_INSTANCES: HassKey[dict[str, EntityComponent]]
19
20
 
20
21
  @bind_hass
21
22
  async def async_update_entity(hass: HomeAssistant, entity_id: str) -> None: ...
23
+ @callback
24
+ def async_get_entity_suggested_object_id(hass: HomeAssistant, entity_id: str) -> str | None: ...
22
25
 
23
26
  class EntityComponent[_EntityT: entity.Entity = entity.Entity]:
24
27
  logger: Incomplete
@@ -1,5 +1,5 @@
1
1
  import asyncio
2
- from . import service as service, translation as translation
2
+ from . import device_registry as dev_reg, service as service, translation as translation
3
3
  from .entity import Entity as Entity
4
4
  from .entity_registry import EntityRegistry as EntityRegistry, RegistryEntryDisabler as RegistryEntryDisabler, RegistryEntryHider as RegistryEntryHider
5
5
  from .event import async_call_later as async_call_later
@@ -106,6 +106,9 @@ class EntityPlatform:
106
106
  def async_register_entity_service(self, name: str, schema: VolDictType | VolSchemaType | None, func: str | Callable[..., Any], required_features: Iterable[int] | None = None, supports_response: SupportsResponse = ...) -> None: ...
107
107
  async def _async_update_entity_states(self) -> None: ...
108
108
 
109
+ @callback
110
+ def async_calculate_suggested_object_id(entity: Entity, device: dev_reg.DeviceEntry | None) -> str | None: ...
111
+
109
112
  current_platform: ContextVar[EntityPlatform | None]
110
113
 
111
114
  @callback
@@ -90,6 +90,7 @@ class RegistryEntry:
90
90
  original_device_class: str | None
91
91
  original_icon: str | None
92
92
  original_name: str | None
93
+ suggested_object_id: str | None
93
94
  supported_features: int
94
95
  translation_key: str | None
95
96
  unit_of_measurement: str | None
@@ -114,7 +115,7 @@ class RegistryEntry:
114
115
  def as_storage_fragment(self) -> json_fragment: ...
115
116
  @callback
116
117
  def write_unavailable_state(self, hass: HomeAssistant) -> None: ...
117
- def __init__(self, entity_id, unique_id, platform, previous_unique_id, aliases, area_id, categories, capabilities, config_entry_id, config_subentry_id, created_at, device_class, device_id, domain, disabled_by, entity_category, has_entity_name, hidden_by, icon, id, labels, modified_at, name, options, original_device_class, original_icon, original_name, supported_features, translation_key, unit_of_measurement, cache) -> None: ...
118
+ def __init__(self, entity_id, unique_id, platform, previous_unique_id, aliases, area_id, categories, capabilities, config_entry_id, config_subentry_id, created_at, device_class, device_id, domain, disabled_by, entity_category, has_entity_name, hidden_by, icon, id, labels, modified_at, name, options, original_device_class, original_icon, original_name, suggested_object_id, supported_features, translation_key, unit_of_measurement, cache) -> None: ...
118
119
  def __lt__(self, other): ...
119
120
  def __le__(self, other): ...
120
121
  def __gt__(self, other): ...
@@ -126,17 +127,17 @@ class DeletedRegistryEntry:
126
127
  platform: str
127
128
  config_entry_id: str | None
128
129
  config_subentry_id: str | None
130
+ created_at: datetime
129
131
  domain: str
130
132
  id: str
131
- orphaned_timestamp: float | None
132
- created_at: datetime
133
133
  modified_at: datetime
134
+ orphaned_timestamp: float | None
134
135
  _cache: dict[str, Any]
135
136
  @domain.default
136
137
  def _domain_default(self) -> str: ...
137
138
  @under_cached_property
138
139
  def as_storage_fragment(self) -> json_fragment: ...
139
- def __init__(self, entity_id, unique_id, platform, config_entry_id, config_subentry_id, domain, id, orphaned_timestamp, created_at, modified_at, cache) -> None: ...
140
+ def __init__(self, entity_id, unique_id, platform, config_entry_id, config_subentry_id, created_at, domain, id, modified_at, orphaned_timestamp, cache) -> None: ...
140
141
  def __lt__(self, other): ...
141
142
  def __le__(self, other): ...
142
143
  def __gt__(self, other): ...
@@ -182,9 +183,9 @@ class EntityRegistry(BaseRegistry):
182
183
  def async_device_ids(self) -> list[str]: ...
183
184
  def _entity_id_available(self, entity_id: str) -> bool: ...
184
185
  @callback
185
- def async_generate_entity_id(self, domain: str, suggested_object_id: str) -> str: ...
186
+ def async_generate_entity_id(self, domain: str, suggested_object_id: str, *, current_entity_id: str | None = None, reserved_entity_ids: set[str] | None = None) -> str: ...
186
187
  @callback
187
- def async_get_or_create(self, domain: str, platform: str, unique_id: str, *, suggested_object_id: str | None = None, disabled_by: RegistryEntryDisabler | None = None, hidden_by: RegistryEntryHider | None = None, get_initial_options: Callable[[], EntityOptionsType | None] | None = None, capabilities: Mapping[str, Any] | None | UndefinedType = ..., config_entry: ConfigEntry | None | UndefinedType = ..., config_subentry_id: str | None | UndefinedType = ..., device_id: str | None | UndefinedType = ..., entity_category: EntityCategory | UndefinedType | None = ..., has_entity_name: bool | UndefinedType = ..., original_device_class: str | None | UndefinedType = ..., original_icon: str | None | UndefinedType = ..., original_name: str | None | UndefinedType = ..., supported_features: int | None | UndefinedType = ..., translation_key: str | None | UndefinedType = ..., unit_of_measurement: str | None | UndefinedType = ...) -> RegistryEntry: ...
188
+ def async_get_or_create(self, domain: str, platform: str, unique_id: str, *, calculated_object_id: str | None = None, suggested_object_id: str | None = None, disabled_by: RegistryEntryDisabler | None = None, hidden_by: RegistryEntryHider | None = None, get_initial_options: Callable[[], EntityOptionsType | None] | None = None, capabilities: Mapping[str, Any] | None | UndefinedType = ..., config_entry: ConfigEntry | None | UndefinedType = ..., config_subentry_id: str | None | UndefinedType = ..., device_id: str | None | UndefinedType = ..., entity_category: EntityCategory | UndefinedType | None = ..., has_entity_name: bool | UndefinedType = ..., original_device_class: str | None | UndefinedType = ..., original_icon: str | None | UndefinedType = ..., original_name: str | None | UndefinedType = ..., supported_features: int | None | UndefinedType = ..., translation_key: str | None | UndefinedType = ..., unit_of_measurement: str | None | UndefinedType = ...) -> RegistryEntry: ...
188
189
  @callback
189
190
  def async_remove(self, entity_id: str) -> None: ...
190
191
  @callback