homeassistant-stubs 2024.3.3__py3-none-any.whl → 2024.4.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (871) hide show
  1. homeassistant-stubs/auth/__init__.pyi +5 -4
  2. homeassistant-stubs/auth/auth_store.pyi +3 -1
  3. homeassistant-stubs/auth/mfa_modules/__init__.pyi +1 -0
  4. homeassistant-stubs/auth/models.pyi +2 -0
  5. homeassistant-stubs/auth/providers/__init__.pyi +8 -7
  6. homeassistant-stubs/auth/providers/command_line.pyi +2 -3
  7. homeassistant-stubs/auth/providers/homeassistant.pyi +2 -3
  8. homeassistant-stubs/auth/providers/insecure_example.pyi +2 -3
  9. homeassistant-stubs/auth/providers/legacy_api_password.pyi +2 -3
  10. homeassistant-stubs/auth/providers/trusted_networks.pyi +2 -3
  11. homeassistant-stubs/bootstrap.pyi +8 -4
  12. homeassistant-stubs/components/__init__.pyi +1 -0
  13. homeassistant-stubs/components/abode/alarm_control_panel.pyi +4 -5
  14. homeassistant-stubs/components/abode/binary_sensor.pyi +2 -2
  15. homeassistant-stubs/components/abode/camera.pyi +2 -2
  16. homeassistant-stubs/components/abode/config_flow.pyi +9 -10
  17. homeassistant-stubs/components/abode/cover.pyi +2 -2
  18. homeassistant-stubs/components/abode/light.pyi +2 -2
  19. homeassistant-stubs/components/abode/lock.pyi +2 -2
  20. homeassistant-stubs/components/abode/sensor.pyi +8 -12
  21. homeassistant-stubs/components/abode/switch.pyi +2 -2
  22. homeassistant-stubs/components/accuweather/config_flow.pyi +3 -5
  23. homeassistant-stubs/components/accuweather/sensor.pyi +3 -7
  24. homeassistant-stubs/components/accuweather/weather.pyi +0 -2
  25. homeassistant-stubs/components/acmeda/config_flow.pyi +4 -5
  26. homeassistant-stubs/components/adax/config_flow.pyi +5 -6
  27. homeassistant-stubs/components/adguard/config_flow.pyi +6 -7
  28. homeassistant-stubs/components/aftership/config_flow.pyi +3 -6
  29. homeassistant-stubs/components/aftership/sensor.pyi +3 -8
  30. homeassistant-stubs/components/airly/config_flow.pyi +3 -4
  31. homeassistant-stubs/components/airnow/config_flow.pyi +4 -6
  32. homeassistant-stubs/components/airnow/sensor.pyi +3 -7
  33. homeassistant-stubs/components/airq/config_flow.pyi +3 -4
  34. homeassistant-stubs/components/airq/sensor.pyi +3 -7
  35. homeassistant-stubs/components/airthings/config_flow.pyi +3 -4
  36. homeassistant-stubs/components/airthings_ble/config_flow.pyi +4 -5
  37. homeassistant-stubs/components/airtouch5/config_flow.pyi +1 -2
  38. homeassistant-stubs/components/airvisual/config_flow.pyi +10 -12
  39. homeassistant-stubs/components/airvisual_pro/config_flow.pyi +6 -8
  40. homeassistant-stubs/components/airzone/config_flow.pyi +6 -6
  41. homeassistant-stubs/components/airzone/select.pyi +3 -7
  42. homeassistant-stubs/components/airzone_cloud/climate.pyi +10 -1
  43. homeassistant-stubs/components/airzone_cloud/config_flow.pyi +4 -5
  44. homeassistant-stubs/components/aladdin_connect/config_flow.pyi +6 -7
  45. homeassistant-stubs/components/aladdin_connect/sensor.pyi +3 -7
  46. homeassistant-stubs/components/alert/__init__.pyi +3 -3
  47. homeassistant-stubs/components/alexa/smart_home.pyi +1 -2
  48. homeassistant-stubs/components/amberelectric/config_flow.pyi +4 -5
  49. homeassistant-stubs/components/ambiclimate/config_flow.pyi +6 -7
  50. homeassistant-stubs/components/ambient_station/config_flow.pyi +4 -5
  51. homeassistant-stubs/components/amcrest/camera.pyi +1 -1
  52. homeassistant-stubs/components/analytics_insights/config_flow.pyi +3 -4
  53. homeassistant-stubs/components/android_ip_webcam/config_flow.pyi +3 -4
  54. homeassistant-stubs/components/android_ip_webcam/sensor.pyi +3 -7
  55. homeassistant-stubs/components/android_ip_webcam/switch.pyi +3 -7
  56. homeassistant-stubs/components/androidtv/config_flow.pyi +10 -11
  57. homeassistant-stubs/components/androidtv_remote/config_flow.pyi +9 -10
  58. homeassistant-stubs/components/anova/config_flow.pyi +2 -3
  59. homeassistant-stubs/components/anthemav/config_flow.pyi +2 -3
  60. homeassistant-stubs/components/apache_kafka/__init__.pyi +3 -3
  61. homeassistant-stubs/components/apcupsd/binary_sensor.pyi +3 -1
  62. homeassistant-stubs/components/apcupsd/config_flow.pyi +4 -5
  63. homeassistant-stubs/components/apcupsd/const.pyi +1 -0
  64. homeassistant-stubs/components/apcupsd/coordinator.pyi +11 -10
  65. homeassistant-stubs/components/apcupsd/diagnostics.pyi +11 -0
  66. homeassistant-stubs/components/apcupsd/sensor.pyi +3 -1
  67. homeassistant-stubs/components/api/__init__.pyi +1 -1
  68. homeassistant-stubs/components/apple_tv/__init__.pyi +3 -0
  69. homeassistant-stubs/components/apple_tv/config_flow.pyi +18 -18
  70. homeassistant-stubs/components/aranet/config_flow.pyi +6 -6
  71. homeassistant-stubs/components/arcam_fmj/config_flow.pyi +7 -8
  72. homeassistant-stubs/components/aseko_pool_live/__init__.pyi +3 -2
  73. homeassistant-stubs/components/aseko_pool_live/binary_sensor.pyi +3 -7
  74. homeassistant-stubs/components/aseko_pool_live/config_flow.pyi +10 -5
  75. homeassistant-stubs/components/asuswrt/config_flow.pyi +5 -6
  76. homeassistant-stubs/components/auth/__init__.pyi +1 -0
  77. homeassistant-stubs/components/auth/login_flow.pyi +4 -3
  78. homeassistant-stubs/components/automation/__init__.pyi +19 -2
  79. homeassistant-stubs/components/awair/config_flow.pyi +9 -10
  80. homeassistant-stubs/components/awair/sensor.pyi +3 -7
  81. homeassistant-stubs/components/axis/__init__.pyi +1 -1
  82. homeassistant-stubs/components/axis/binary_sensor.pyi +26 -14
  83. homeassistant-stubs/components/axis/camera.pyi +2 -2
  84. homeassistant-stubs/components/axis/config_flow.pyi +20 -18
  85. homeassistant-stubs/components/axis/const.pyi +0 -1
  86. homeassistant-stubs/components/axis/diagnostics.pyi +1 -1
  87. homeassistant-stubs/components/axis/entity.pyi +16 -8
  88. homeassistant-stubs/components/axis/hub/__init__.pyi +2 -0
  89. homeassistant-stubs/components/axis/hub/api.pyi +10 -0
  90. homeassistant-stubs/components/axis/hub/config.pyi +21 -0
  91. homeassistant-stubs/components/axis/hub/entity_loader.pyi +15 -0
  92. homeassistant-stubs/components/axis/hub/hub.pyi +41 -0
  93. homeassistant-stubs/components/axis/light.pyi +17 -8
  94. homeassistant-stubs/components/axis/switch.pyi +13 -5
  95. homeassistant-stubs/components/backup/http.pyi +1 -1
  96. homeassistant-stubs/components/baf/binary_sensor.pyi +3 -7
  97. homeassistant-stubs/components/baf/config_flow.pyi +5 -6
  98. homeassistant-stubs/components/baf/number.pyi +3 -7
  99. homeassistant-stubs/components/baf/sensor.pyi +3 -7
  100. homeassistant-stubs/components/baf/switch.pyi +3 -7
  101. homeassistant-stubs/components/bang_olufsen/config_flow.pyi +5 -6
  102. homeassistant-stubs/components/bang_olufsen/const.pyi +22 -22
  103. homeassistant-stubs/components/bang_olufsen/entity.pyi +1 -4
  104. homeassistant-stubs/components/bang_olufsen/media_player.pyi +4 -5
  105. homeassistant-stubs/components/bang_olufsen/websocket.pyi +1 -1
  106. homeassistant-stubs/components/bayesian/binary_sensor.pyi +2 -2
  107. homeassistant-stubs/components/blue_current/__init__.pyi +10 -12
  108. homeassistant-stubs/components/blue_current/config_flow.pyi +5 -6
  109. homeassistant-stubs/components/bluetooth/config_flow.pyi +5 -6
  110. homeassistant-stubs/components/bluetooth/passive_update_coordinator.pyi +3 -2
  111. homeassistant-stubs/components/bmw_connected_drive/binary_sensor.pyi +3 -7
  112. homeassistant-stubs/components/bmw_connected_drive/button.pyi +3 -7
  113. homeassistant-stubs/components/bmw_connected_drive/config_flow.pyi +14 -14
  114. homeassistant-stubs/components/bmw_connected_drive/number.pyi +3 -7
  115. homeassistant-stubs/components/bmw_connected_drive/select.pyi +3 -7
  116. homeassistant-stubs/components/bmw_connected_drive/switch.pyi +3 -7
  117. homeassistant-stubs/components/bond/button.pyi +4 -8
  118. homeassistant-stubs/components/bond/config_flow.pyi +7 -8
  119. homeassistant-stubs/components/bond/light.pyi +1 -1
  120. homeassistant-stubs/components/braviatv/button.pyi +3 -7
  121. homeassistant-stubs/components/braviatv/config_flow.pyi +11 -13
  122. homeassistant-stubs/components/brother/config_flow.pyi +7 -7
  123. homeassistant-stubs/components/brother/sensor.pyi +3 -7
  124. homeassistant-stubs/components/bthome/__init__.pyi +3 -2
  125. homeassistant-stubs/components/bthome/config_flow.pyi +7 -8
  126. homeassistant-stubs/components/bthome/logbook.pyi +2 -3
  127. homeassistant-stubs/components/canary/config_flow.pyi +4 -5
  128. homeassistant-stubs/components/cert_expiry/config_flow.pyi +4 -5
  129. homeassistant-stubs/components/cert_expiry/helper.pyi +1 -2
  130. homeassistant-stubs/components/climate/__init__.pyi +10 -7
  131. homeassistant-stubs/components/cloud/__init__.pyi +1 -1
  132. homeassistant-stubs/components/cloud/config_flow.pyi +2 -3
  133. homeassistant-stubs/components/cloud/http_api.pyi +3 -1
  134. homeassistant-stubs/components/cloud/prefs.pyi +1 -0
  135. homeassistant-stubs/components/cloud/repairs.pyi +1 -1
  136. homeassistant-stubs/components/cloud/tts.pyi +3 -3
  137. homeassistant-stubs/components/co2signal/config_flow.pyi +7 -9
  138. homeassistant-stubs/components/command_line/cover.pyi +3 -3
  139. homeassistant-stubs/components/command_line/sensor.pyi +2 -2
  140. homeassistant-stubs/components/command_line/switch.pyi +4 -4
  141. homeassistant-stubs/components/command_line/utils.pyi +3 -2
  142. homeassistant-stubs/components/config/__init__.pyi +3 -47
  143. homeassistant-stubs/components/config/automation.pyi +2 -1
  144. homeassistant-stubs/components/config/category_registry.pyi +12 -0
  145. homeassistant-stubs/components/config/config_entries.pyi +8 -6
  146. homeassistant-stubs/components/config/const.pyi +3 -0
  147. homeassistant-stubs/components/config/core.pyi +1 -1
  148. homeassistant-stubs/components/config/label_registry.pyi +3 -0
  149. homeassistant-stubs/components/config/scene.pyi +2 -1
  150. homeassistant-stubs/components/config/script.pyi +2 -1
  151. homeassistant-stubs/components/config/view.pyi +48 -0
  152. homeassistant-stubs/components/configurator/__init__.pyi +1 -1
  153. homeassistant-stubs/components/cpuspeed/config_flow.pyi +2 -3
  154. homeassistant-stubs/components/crownstone/config_flow.pyi +10 -11
  155. homeassistant-stubs/components/deconz/__init__.pyi +6 -7
  156. homeassistant-stubs/components/deconz/alarm_control_panel.pyi +3 -3
  157. homeassistant-stubs/components/deconz/binary_sensor.pyi +2 -4
  158. homeassistant-stubs/components/deconz/button.pyi +2 -2
  159. homeassistant-stubs/components/deconz/climate.pyi +2 -2
  160. homeassistant-stubs/components/deconz/config_flow.pyi +14 -16
  161. homeassistant-stubs/components/deconz/cover.pyi +2 -2
  162. homeassistant-stubs/components/deconz/deconz_device.pyi +5 -5
  163. homeassistant-stubs/components/deconz/deconz_event.pyi +4 -4
  164. homeassistant-stubs/components/deconz/device_trigger.pyi +1 -1
  165. homeassistant-stubs/components/deconz/diagnostics.pyi +1 -1
  166. homeassistant-stubs/components/deconz/fan.pyi +2 -2
  167. homeassistant-stubs/components/deconz/hub/__init__.pyi +2 -0
  168. homeassistant-stubs/components/deconz/hub/api.pyi +9 -0
  169. homeassistant-stubs/components/deconz/hub/config.pyi +18 -0
  170. homeassistant-stubs/components/deconz/{gateway.pyi → hub/hub.pyi} +10 -19
  171. homeassistant-stubs/components/deconz/light.pyi +3 -3
  172. homeassistant-stubs/components/deconz/lock.pyi +1 -1
  173. homeassistant-stubs/components/deconz/number.pyi +2 -4
  174. homeassistant-stubs/components/deconz/scene.pyi +1 -1
  175. homeassistant-stubs/components/deconz/select.pyi +1 -1
  176. homeassistant-stubs/components/deconz/sensor.pyi +4 -6
  177. homeassistant-stubs/components/deconz/services.pyi +5 -5
  178. homeassistant-stubs/components/deconz/siren.pyi +1 -1
  179. homeassistant-stubs/components/deconz/switch.pyi +1 -1
  180. homeassistant-stubs/components/demo/climate.pyi +3 -8
  181. homeassistant-stubs/components/demo/config_flow.pyi +10 -11
  182. homeassistant-stubs/components/demo/humidifier.pyi +1 -1
  183. homeassistant-stubs/components/derivative/sensor.pyi +2 -2
  184. homeassistant-stubs/components/device_tracker/const.pyi +2 -1
  185. homeassistant-stubs/components/device_tracker/legacy.pyi +6 -2
  186. homeassistant-stubs/components/devolo_home_control/config_flow.pyi +9 -11
  187. homeassistant-stubs/components/devolo_home_network/binary_sensor.pyi +3 -7
  188. homeassistant-stubs/components/devolo_home_network/button.pyi +3 -7
  189. homeassistant-stubs/components/devolo_home_network/config_flow.pyi +9 -9
  190. homeassistant-stubs/components/devolo_home_network/image.pyi +3 -7
  191. homeassistant-stubs/components/devolo_home_network/sensor.pyi +3 -7
  192. homeassistant-stubs/components/devolo_home_network/switch.pyi +3 -7
  193. homeassistant-stubs/components/devolo_home_network/update.pyi +3 -7
  194. homeassistant-stubs/components/dhcp/__init__.pyi +4 -8
  195. homeassistant-stubs/components/discovergy/config_flow.pyi +5 -7
  196. homeassistant-stubs/components/dlna_dmr/config_flow.pyi +13 -14
  197. homeassistant-stubs/components/dlna_dmr/media_player.pyi +4 -2
  198. homeassistant-stubs/components/dlna_dms/config_flow.pyi +7 -7
  199. homeassistant-stubs/components/dnsip/config_flow.pyi +6 -9
  200. homeassistant-stubs/components/doorbird/button.pyi +3 -7
  201. homeassistant-stubs/components/doorbird/config_flow.pyi +12 -12
  202. homeassistant-stubs/components/doorbird/view.pyi +1 -2
  203. homeassistant-stubs/components/dormakaba_dkey/binary_sensor.pyi +3 -7
  204. homeassistant-stubs/components/dormakaba_dkey/config_flow.pyi +9 -10
  205. homeassistant-stubs/components/downloader/__init__.pyi +7 -12
  206. homeassistant-stubs/components/downloader/config_flow.pyi +12 -0
  207. homeassistant-stubs/components/downloader/const.pyi +13 -0
  208. homeassistant-stubs/components/dsmr/config_flow.pyi +14 -15
  209. homeassistant-stubs/components/dunehd/config_flow.pyi +6 -6
  210. homeassistant-stubs/components/duotecno/config_flow.pyi +3 -4
  211. homeassistant-stubs/components/easyenergy/config_flow.pyi +2 -3
  212. homeassistant-stubs/components/easyenergy/sensor.pyi +3 -7
  213. homeassistant-stubs/components/ecovacs/config_flow.pyi +5 -5
  214. homeassistant-stubs/components/ecovacs/event.pyi +19 -0
  215. homeassistant-stubs/components/ecowitt/config_flow.pyi +3 -4
  216. homeassistant-stubs/components/efergy/config_flow.pyi +4 -5
  217. homeassistant-stubs/components/electrasmart/config_flow.pyi +8 -9
  218. homeassistant-stubs/components/electric_kiwi/config_flow.pyi +4 -5
  219. homeassistant-stubs/components/electric_kiwi/sensor.pyi +6 -14
  220. homeassistant-stubs/components/elgato/config_flow.pyi +6 -7
  221. homeassistant-stubs/components/elkm1/config_flow.pyi +13 -13
  222. homeassistant-stubs/components/elkm1/sensor.pyi +2 -2
  223. homeassistant-stubs/components/emulated_hue/__init__.pyi +2 -1
  224. homeassistant-stubs/components/emulated_hue/config.pyi +3 -3
  225. homeassistant-stubs/components/emulated_hue/hue_api.pyi +2 -3
  226. homeassistant-stubs/components/energy/sensor.pyi +5 -1
  227. homeassistant-stubs/components/energyzero/config_flow.pyi +2 -3
  228. homeassistant-stubs/components/energyzero/sensor.pyi +3 -7
  229. homeassistant-stubs/components/enphase_envoy/binary_sensor.pyi +6 -14
  230. homeassistant-stubs/components/enphase_envoy/config_flow.pyi +5 -6
  231. homeassistant-stubs/components/enphase_envoy/diagnostics.pyi +3 -0
  232. homeassistant-stubs/components/enphase_envoy/number.pyi +6 -14
  233. homeassistant-stubs/components/enphase_envoy/select.pyi +6 -14
  234. homeassistant-stubs/components/enphase_envoy/sensor.pyi +39 -53
  235. homeassistant-stubs/components/enphase_envoy/switch.pyi +9 -21
  236. homeassistant-stubs/components/esphome/alarm_control_panel.pyi +1 -1
  237. homeassistant-stubs/components/esphome/button.pyi +1 -1
  238. homeassistant-stubs/components/esphome/climate.pyi +1 -1
  239. homeassistant-stubs/components/esphome/config_flow.pyi +15 -16
  240. homeassistant-stubs/components/esphome/cover.pyi +1 -1
  241. homeassistant-stubs/components/esphome/date.pyi +14 -0
  242. homeassistant-stubs/components/esphome/entity.pyi +5 -3
  243. homeassistant-stubs/components/esphome/entry_data.pyi +15 -14
  244. homeassistant-stubs/components/esphome/fan.pyi +1 -1
  245. homeassistant-stubs/components/esphome/light.pyi +1 -1
  246. homeassistant-stubs/components/esphome/lock.pyi +1 -1
  247. homeassistant-stubs/components/esphome/manager.pyi +3 -3
  248. homeassistant-stubs/components/esphome/media_player.pyi +1 -1
  249. homeassistant-stubs/components/esphome/number.pyi +1 -1
  250. homeassistant-stubs/components/esphome/select.pyi +1 -1
  251. homeassistant-stubs/components/esphome/switch.pyi +1 -1
  252. homeassistant-stubs/components/esphome/text.pyi +1 -1
  253. homeassistant-stubs/components/esphome/time.pyi +14 -0
  254. homeassistant-stubs/components/esphome/update.pyi +1 -1
  255. homeassistant-stubs/components/evil_genius_labs/config_flow.pyi +3 -4
  256. homeassistant-stubs/components/faa_delays/config_flow.pyi +3 -4
  257. homeassistant-stubs/components/fastdotcom/__init__.pyi +1 -1
  258. homeassistant-stubs/components/fastdotcom/config_flow.pyi +3 -4
  259. homeassistant-stubs/components/fastdotcom/coordinator.pyi +1 -1
  260. homeassistant-stubs/components/fastdotcom/diagnostics.pyi +7 -0
  261. homeassistant-stubs/components/fastdotcom/sensor.pyi +3 -3
  262. homeassistant-stubs/components/fastdotcom/services.pyi +1 -1
  263. homeassistant-stubs/components/file_upload/__init__.pyi +1 -1
  264. homeassistant-stubs/components/filesize/__init__.pyi +0 -2
  265. homeassistant-stubs/components/filesize/config_flow.pyi +2 -3
  266. homeassistant-stubs/components/filesize/coordinator.pyi +6 -1
  267. homeassistant-stubs/components/filter/sensor.pyi +3 -3
  268. homeassistant-stubs/components/fitbit/config_flow.pyi +6 -7
  269. homeassistant-stubs/components/flexit_bacnet/config_flow.pyi +3 -4
  270. homeassistant-stubs/components/flux_led/config_flow.pyi +14 -14
  271. homeassistant-stubs/components/flux_led/discovery.pyi +1 -0
  272. homeassistant-stubs/components/flux_led/number.pyi +0 -5
  273. homeassistant-stubs/components/flux_led/select.pyi +0 -3
  274. homeassistant-stubs/components/flux_led/sensor.pyi +0 -1
  275. homeassistant-stubs/components/flux_led/switch.pyi +0 -4
  276. homeassistant-stubs/components/forecast_solar/config_flow.pyi +3 -4
  277. homeassistant-stubs/components/fritz/button.pyi +3 -7
  278. homeassistant-stubs/components/fritz/common.pyi +1 -0
  279. homeassistant-stubs/components/fritz/config_flow.pyi +11 -12
  280. homeassistant-stubs/components/fritzbox/config_flow.pyi +7 -8
  281. homeassistant-stubs/components/fritzbox_callmonitor/config_flow.pyi +9 -10
  282. homeassistant-stubs/components/fronius/config_flow.pyi +5 -6
  283. homeassistant-stubs/components/frontend/__init__.pyi +1 -1
  284. homeassistant-stubs/components/fully_kiosk/button.pyi +3 -7
  285. homeassistant-stubs/components/fully_kiosk/config_flow.pyi +7 -8
  286. homeassistant-stubs/components/fully_kiosk/switch.pyi +3 -7
  287. homeassistant-stubs/components/generic_hygrostat/humidifier.pyi +5 -5
  288. homeassistant-stubs/components/generic_thermostat/climate.pyi +3 -3
  289. homeassistant-stubs/components/geo_location/trigger.pyi +2 -2
  290. homeassistant-stubs/components/geocaching/config_flow.pyi +4 -4
  291. homeassistant-stubs/components/geocaching/sensor.pyi +3 -7
  292. homeassistant-stubs/components/gios/config_flow.pyi +3 -4
  293. homeassistant-stubs/components/glances/config_flow.pyi +6 -7
  294. homeassistant-stubs/components/glances/sensor.pyi +3 -7
  295. homeassistant-stubs/components/goalzero/config_flow.pyi +5 -6
  296. homeassistant-stubs/components/google/config_flow.pyi +11 -12
  297. homeassistant-stubs/components/google_assistant_sdk/config_flow.pyi +8 -10
  298. homeassistant-stubs/components/google_sheets/config_flow.pyi +4 -5
  299. homeassistant-stubs/components/gpsd/config_flow.pyi +4 -5
  300. homeassistant-stubs/components/group/__init__.pyi +7 -102
  301. homeassistant-stubs/components/group/binary_sensor.pyi +1 -1
  302. homeassistant-stubs/components/group/config_flow.pyi +2 -2
  303. homeassistant-stubs/components/group/const.pyi +12 -0
  304. homeassistant-stubs/components/group/cover.pyi +1 -1
  305. homeassistant-stubs/components/group/entity.pyi +81 -0
  306. homeassistant-stubs/components/group/event.pyi +3 -3
  307. homeassistant-stubs/components/group/fan.pyi +1 -1
  308. homeassistant-stubs/components/group/light.pyi +1 -1
  309. homeassistant-stubs/components/group/lock.pyi +1 -1
  310. homeassistant-stubs/components/group/media_player.pyi +3 -3
  311. homeassistant-stubs/components/group/registry.pyi +23 -0
  312. homeassistant-stubs/components/group/sensor.pyi +1 -1
  313. homeassistant-stubs/components/group/switch.pyi +1 -1
  314. homeassistant-stubs/components/guardian/config_flow.pyi +7 -8
  315. homeassistant-stubs/components/hardkernel/config_flow.pyi +2 -3
  316. homeassistant-stubs/components/here_travel_time/__init__.pyi +1 -0
  317. homeassistant-stubs/components/here_travel_time/config_flow.pyi +17 -18
  318. homeassistant-stubs/components/here_travel_time/sensor.pyi +0 -1
  319. homeassistant-stubs/components/history/__init__.pyi +1 -1
  320. homeassistant-stubs/components/history/websocket_api.pyi +2 -2
  321. homeassistant-stubs/components/history_stats/coordinator.pyi +2 -3
  322. homeassistant-stubs/components/history_stats/data.pyi +2 -3
  323. homeassistant-stubs/components/holiday/config_flow.pyi +7 -5
  324. homeassistant-stubs/components/homeassistant/trigger.pyi +2 -1
  325. homeassistant-stubs/components/homeassistant/triggers/event.pyi +5 -1
  326. homeassistant-stubs/components/homeassistant/triggers/homeassistant.pyi +1 -0
  327. homeassistant-stubs/components/homeassistant/triggers/numeric_state.pyi +2 -2
  328. homeassistant-stubs/components/homeassistant/triggers/state.pyi +2 -2
  329. homeassistant-stubs/components/homeassistant/triggers/time.pyi +2 -2
  330. homeassistant-stubs/components/homeassistant_green/config_flow.pyi +4 -5
  331. homeassistant-stubs/components/homeassistant_hardware/silabs_multiprotocol_addon.pyi +29 -29
  332. homeassistant-stubs/components/homeassistant_sky_connect/__init__.pyi +1 -1
  333. homeassistant-stubs/components/homeassistant_sky_connect/config_flow.pyi +6 -5
  334. homeassistant-stubs/components/homeassistant_sky_connect/const.pyi +18 -0
  335. homeassistant-stubs/components/homeassistant_sky_connect/hardware.pyi +1 -1
  336. homeassistant-stubs/components/homeassistant_sky_connect/util.pyi +2 -0
  337. homeassistant-stubs/components/homeassistant_yellow/config_flow.pyi +9 -10
  338. homeassistant-stubs/components/homekit/__init__.pyi +9 -6
  339. homeassistant-stubs/components/homekit/accessories.pyi +5 -6
  340. homeassistant-stubs/components/homekit/config_flow.pyi +16 -18
  341. homeassistant-stubs/components/homekit/const.pyi +3 -0
  342. homeassistant-stubs/components/homekit/type_cameras.pyi +3 -4
  343. homeassistant-stubs/components/homekit/type_covers.pyi +2 -3
  344. homeassistant-stubs/components/homekit/type_humidifiers.pyi +2 -3
  345. homeassistant-stubs/components/homekit/util.pyi +2 -3
  346. homeassistant-stubs/components/homekit_controller/__init__.pyi +1 -0
  347. homeassistant-stubs/components/homekit_controller/config_flow.pyi +13 -13
  348. homeassistant-stubs/components/homekit_controller/select.pyi +3 -7
  349. homeassistant-stubs/components/homewizard/config_flow.pyi +7 -7
  350. homeassistant-stubs/components/homewizard/coordinator.pyi +0 -1
  351. homeassistant-stubs/components/homeworks/__init__.pyi +63 -0
  352. homeassistant-stubs/components/homeworks/binary_sensor.pyi +25 -0
  353. homeassistant-stubs/components/homeworks/button.pyi +18 -0
  354. homeassistant-stubs/components/homeworks/config_flow.pyi +61 -0
  355. homeassistant-stubs/components/homeworks/const.pyi +14 -0
  356. homeassistant-stubs/components/homeworks/light.pyi +34 -0
  357. homeassistant-stubs/components/http/__init__.pyi +4 -3
  358. homeassistant-stubs/components/http/ban.pyi +4 -3
  359. homeassistant-stubs/components/http/const.pyi +1 -2
  360. homeassistant-stubs/components/http/cors.pyi +1 -0
  361. homeassistant-stubs/components/http/static.pyi +0 -1
  362. homeassistant-stubs/components/huawei_lte/config_flow.pyi +12 -13
  363. homeassistant-stubs/components/huawei_lte/select.pyi +3 -7
  364. homeassistant-stubs/components/humidifier/__init__.pyi +8 -8
  365. homeassistant-stubs/components/hydrawise/config_flow.pyi +8 -8
  366. homeassistant-stubs/components/hyperion/config_flow.pyi +12 -13
  367. homeassistant-stubs/components/hyperion/const.pyi +2 -0
  368. homeassistant-stubs/components/hyperion/sensor.pyi +39 -0
  369. homeassistant-stubs/components/ibeacon/config_flow.pyi +7 -8
  370. homeassistant-stubs/components/ibeacon/device_tracker.pyi +1 -2
  371. homeassistant-stubs/components/ibeacon/sensor.pyi +3 -7
  372. homeassistant-stubs/components/idasen_desk/button.pyi +4 -8
  373. homeassistant-stubs/components/idasen_desk/config_flow.pyi +4 -5
  374. homeassistant-stubs/components/idasen_desk/cover.pyi +3 -3
  375. homeassistant-stubs/components/idasen_desk/sensor.pyi +3 -7
  376. homeassistant-stubs/components/image/__init__.pyi +2 -2
  377. homeassistant-stubs/components/image_processing/__init__.pyi +1 -1
  378. homeassistant-stubs/components/image_upload/__init__.pyi +1 -1
  379. homeassistant-stubs/components/imap/config_flow.pyi +10 -10
  380. homeassistant-stubs/components/integration/sensor.pyi +36 -5
  381. homeassistant-stubs/components/ios/__init__.pyi +1 -1
  382. homeassistant-stubs/components/ipp/config_flow.pyi +5 -6
  383. homeassistant-stubs/components/ipp/sensor.pyi +3 -7
  384. homeassistant-stubs/components/iqvia/config_flow.pyi +3 -4
  385. homeassistant-stubs/components/islamic_prayer_times/config_flow.pyi +7 -8
  386. homeassistant-stubs/components/isy994/config_flow.pyi +18 -17
  387. homeassistant-stubs/components/jellyfin/config_flow.pyi +5 -6
  388. homeassistant-stubs/components/jellyfin/sensor.pyi +3 -7
  389. homeassistant-stubs/components/jvc_projector/config_flow.pyi +4 -5
  390. homeassistant-stubs/components/jvc_projector/sensor.pyi +20 -0
  391. homeassistant-stubs/components/kaleidescape/config_flow.pyi +4 -5
  392. homeassistant-stubs/components/kaleidescape/sensor.pyi +3 -7
  393. homeassistant-stubs/components/knx/config_flow.pyi +18 -19
  394. homeassistant-stubs/components/knx/expose.pyi +3 -3
  395. homeassistant-stubs/components/kraken/config_flow.pyi +7 -8
  396. homeassistant-stubs/components/kraken/sensor.pyi +3 -7
  397. homeassistant-stubs/components/lacrosse_view/config_flow.pyi +5 -6
  398. homeassistant-stubs/components/lacrosse_view/sensor.pyi +3 -7
  399. homeassistant-stubs/components/lamarzocco/config_flow.pyi +16 -8
  400. homeassistant-stubs/components/lamarzocco/const.pyi +1 -0
  401. homeassistant-stubs/components/lamarzocco/coordinator.pyi +7 -2
  402. homeassistant-stubs/components/lametric/config_flow.pyi +11 -11
  403. homeassistant-stubs/components/laundrify/binary_sensor.pyi +1 -1
  404. homeassistant-stubs/components/laundrify/config_flow.pyi +5 -6
  405. homeassistant-stubs/components/lcn/config_flow.pyi +4 -5
  406. homeassistant-stubs/components/ld2410_ble/config_flow.pyi +4 -5
  407. homeassistant-stubs/components/led_ble/config_flow.pyi +4 -5
  408. homeassistant-stubs/components/lidarr/config_flow.pyi +4 -5
  409. homeassistant-stubs/components/lifx/config_flow.pyi +10 -11
  410. homeassistant-stubs/components/linear_garage_door/config_flow.pyi +5 -6
  411. homeassistant-stubs/components/litejet/config_flow.pyi +7 -8
  412. homeassistant-stubs/components/litterrobot/config_flow.pyi +5 -6
  413. homeassistant-stubs/components/litterrobot/switch.pyi +2 -5
  414. homeassistant-stubs/components/local_ip/config_flow.pyi +2 -3
  415. homeassistant-stubs/components/local_ip/sensor.pyi +1 -1
  416. homeassistant-stubs/components/local_todo/config_flow.pyi +3 -4
  417. homeassistant-stubs/components/logbook/helpers.pyi +1 -2
  418. homeassistant-stubs/components/logbook/rest_api.pyi +1 -1
  419. homeassistant-stubs/components/logbook/websocket_api.pyi +1 -0
  420. homeassistant-stubs/components/lookin/config_flow.pyi +5 -6
  421. homeassistant-stubs/components/luftdaten/config_flow.pyi +4 -5
  422. homeassistant-stubs/components/map/__init__.pyi +6 -1
  423. homeassistant-stubs/components/matter/config_flow.pyi +14 -14
  424. homeassistant-stubs/components/met_eireann/config_flow.pyi +3 -4
  425. homeassistant-stubs/components/met_eireann/weather.pyi +1 -5
  426. homeassistant-stubs/components/metoffice/config_flow.pyi +7 -6
  427. homeassistant-stubs/components/metoffice/weather.pyi +2 -5
  428. homeassistant-stubs/components/mikrotik/config_flow.pyi +11 -12
  429. homeassistant-stubs/components/min_max/sensor.pyi +3 -3
  430. homeassistant-stubs/components/minecraft_server/binary_sensor.pyi +2 -9
  431. homeassistant-stubs/components/minecraft_server/config_flow.pyi +3 -4
  432. homeassistant-stubs/components/minecraft_server/sensor.pyi +3 -16
  433. homeassistant-stubs/components/mjpeg/config_flow.pyi +3 -4
  434. homeassistant-stubs/components/modbus/__init__.pyi +2 -2
  435. homeassistant-stubs/components/modbus/base_platform.pyi +1 -3
  436. homeassistant-stubs/components/modbus/const.pyi +0 -2
  437. homeassistant-stubs/components/modbus/modbus.pyi +3 -5
  438. homeassistant-stubs/components/modbus/validators.pyi +7 -2
  439. homeassistant-stubs/components/modem_callerid/button.pyi +0 -1
  440. homeassistant-stubs/components/modem_callerid/config_flow.pyi +5 -6
  441. homeassistant-stubs/components/modem_callerid/const.pyi +0 -1
  442. homeassistant-stubs/components/modem_callerid/sensor.pyi +2 -2
  443. homeassistant-stubs/components/moon/config_flow.pyi +2 -3
  444. homeassistant-stubs/components/moon/sensor.pyi +0 -2
  445. homeassistant-stubs/components/mopeka/config_flow.pyi +4 -5
  446. homeassistant-stubs/components/motionmount/config_flow.pyi +6 -7
  447. homeassistant-stubs/components/mqtt/__init__.pyi +2 -2
  448. homeassistant-stubs/components/mqtt/climate.pyi +1 -1
  449. homeassistant-stubs/components/mqtt/config_flow.pyi +8 -9
  450. homeassistant-stubs/components/mqtt/const.pyi +0 -1
  451. homeassistant-stubs/components/mqtt/discovery.pyi +6 -4
  452. homeassistant-stubs/components/mqtt/event.pyi +2 -2
  453. homeassistant-stubs/components/mqtt/humidifier.pyi +1 -1
  454. homeassistant-stubs/components/mqtt/image.pyi +2 -2
  455. homeassistant-stubs/components/mqtt/light/schema_json.pyi +5 -2
  456. homeassistant-stubs/components/mqtt/mixins.pyi +7 -7
  457. homeassistant-stubs/components/mqtt/models.pyi +9 -3
  458. homeassistant-stubs/components/mqtt/sensor.pyi +4 -1
  459. homeassistant-stubs/components/mqtt/tag.pyi +3 -2
  460. homeassistant-stubs/components/mqtt/util.pyi +5 -1
  461. homeassistant-stubs/components/mysensors/config_flow.pyi +8 -10
  462. homeassistant-stubs/components/mysensors/gateway.pyi +1 -1
  463. homeassistant-stubs/components/myuplink/config_flow.pyi +4 -5
  464. homeassistant-stubs/components/myuplink/helpers.pyi +1 -0
  465. homeassistant-stubs/components/myuplink/number.pyi +1 -1
  466. homeassistant-stubs/components/myuplink/sensor.pyi +1 -1
  467. homeassistant-stubs/components/myuplink/switch.pyi +1 -1
  468. homeassistant-stubs/components/nam/config_flow.pyi +8 -9
  469. homeassistant-stubs/components/nam/sensor.pyi +3 -7
  470. homeassistant-stubs/components/nanoleaf/config_flow.pyi +12 -13
  471. homeassistant-stubs/components/nanoleaf/light.pyi +1 -1
  472. homeassistant-stubs/components/neato/config_flow.pyi +5 -6
  473. homeassistant-stubs/components/neato/vacuum.pyi +0 -1
  474. homeassistant-stubs/components/nest/config_flow.pyi +10 -11
  475. homeassistant-stubs/components/netatmo/config_flow.pyi +12 -13
  476. homeassistant-stubs/components/netatmo/sensor.pyi +3 -7
  477. homeassistant-stubs/components/network/network.pyi +1 -0
  478. homeassistant-stubs/components/nextdns/config_flow.pyi +4 -5
  479. homeassistant-stubs/components/nfandroidtv/config_flow.pyi +3 -4
  480. homeassistant-stubs/components/nightscout/config_flow.pyi +5 -5
  481. homeassistant-stubs/components/notify/legacy.pyi +1 -1
  482. homeassistant-stubs/components/notion/__init__.pyi +4 -29
  483. homeassistant-stubs/components/notion/binary_sensor.pyi +1 -0
  484. homeassistant-stubs/components/notion/config_flow.pyi +5 -7
  485. homeassistant-stubs/components/notion/coordinator.pyi +44 -0
  486. homeassistant-stubs/components/notion/diagnostics.pyi +1 -2
  487. homeassistant-stubs/components/notion/sensor.pyi +1 -0
  488. homeassistant-stubs/components/nut/__init__.pyi +10 -9
  489. homeassistant-stubs/components/nut/config_flow.pyi +12 -12
  490. homeassistant-stubs/components/onboarding/__init__.pyi +16 -2
  491. homeassistant-stubs/components/onboarding/views.pyi +8 -6
  492. homeassistant-stubs/components/oncue/config_flow.pyi +3 -4
  493. homeassistant-stubs/components/onewire/config_flow.pyi +5 -6
  494. homeassistant-stubs/components/open_meteo/config_flow.pyi +2 -3
  495. homeassistant-stubs/components/open_meteo/weather.pyi +0 -2
  496. homeassistant-stubs/components/openexchangerates/config_flow.pyi +5 -5
  497. homeassistant-stubs/components/opensky/config_flow.pyi +3 -4
  498. homeassistant-stubs/components/opensky/sensor.pyi +1 -1
  499. homeassistant-stubs/components/openuv/config_flow.pyi +6 -8
  500. homeassistant-stubs/components/oralb/config_flow.pyi +4 -5
  501. homeassistant-stubs/components/otbr/config_flow.pyi +3 -4
  502. homeassistant-stubs/components/overkiz/alarm_control_panel.pyi +3 -7
  503. homeassistant-stubs/components/overkiz/binary_sensor.pyi +3 -7
  504. homeassistant-stubs/components/overkiz/climate.pyi +1 -0
  505. homeassistant-stubs/components/overkiz/climate_entities/atlantic_pass_apc_heating_zone.pyi +2 -2
  506. homeassistant-stubs/components/overkiz/climate_entities/atlantic_pass_apc_zone_control_zone.pyi +30 -7
  507. homeassistant-stubs/components/overkiz/climate_entities/hitachi_air_to_air_heat_pump_ovp.pyi +1 -0
  508. homeassistant-stubs/components/overkiz/config_flow.pyi +10 -12
  509. homeassistant-stubs/components/overkiz/executor.pyi +1 -1
  510. homeassistant-stubs/components/overkiz/number.pyi +3 -7
  511. homeassistant-stubs/components/overkiz/select.pyi +3 -7
  512. homeassistant-stubs/components/overkiz/switch.pyi +3 -7
  513. homeassistant-stubs/components/p1_monitor/config_flow.pyi +2 -3
  514. homeassistant-stubs/components/peco/config_flow.pyi +4 -5
  515. homeassistant-stubs/components/peco/sensor.pyi +3 -7
  516. homeassistant-stubs/components/persistent_notification/__init__.pyi +2 -1
  517. homeassistant-stubs/components/pi_hole/binary_sensor.pyi +3 -7
  518. homeassistant-stubs/components/pi_hole/config_flow.pyi +6 -7
  519. homeassistant-stubs/components/ping/binary_sensor.pyi +2 -3
  520. homeassistant-stubs/components/ping/config_flow.pyi +8 -9
  521. homeassistant-stubs/components/ping/coordinator.pyi +1 -1
  522. homeassistant-stubs/components/ping/entity.pyi +12 -0
  523. homeassistant-stubs/components/ping/sensor.pyi +29 -0
  524. homeassistant-stubs/components/plugwise/config_flow.pyi +3 -4
  525. homeassistant-stubs/components/poolsense/config_flow.pyi +3 -4
  526. homeassistant-stubs/components/powerwall/config_flow.pyi +12 -11
  527. homeassistant-stubs/components/private_ble_device/config_flow.pyi +2 -3
  528. homeassistant-stubs/components/private_ble_device/device_tracker.pyi +1 -2
  529. homeassistant-stubs/components/private_ble_device/sensor.pyi +3 -7
  530. homeassistant-stubs/components/prometheus/__init__.pyi +4 -4
  531. homeassistant-stubs/components/proximity/config_flow.pyi +4 -5
  532. homeassistant-stubs/components/proximity/coordinator.pyi +3 -3
  533. homeassistant-stubs/components/prusalink/__init__.pyi +1 -1
  534. homeassistant-stubs/components/prusalink/config_flow.pyi +6 -5
  535. homeassistant-stubs/components/pure_energie/config_flow.pyi +4 -5
  536. homeassistant-stubs/components/pure_energie/sensor.pyi +3 -7
  537. homeassistant-stubs/components/purpleair/config_flow.pyi +14 -17
  538. homeassistant-stubs/components/pushbullet/config_flow.pyi +3 -4
  539. homeassistant-stubs/components/pvoutput/config_flow.pyi +4 -5
  540. homeassistant-stubs/components/qnap_qsw/button.pyi +3 -7
  541. homeassistant-stubs/components/qnap_qsw/config_flow.pyi +6 -6
  542. homeassistant-stubs/components/rabbitair/config_flow.pyi +2 -3
  543. homeassistant-stubs/components/radarr/config_flow.pyi +4 -5
  544. homeassistant-stubs/components/rainforest_raven/config_flow.pyi +5 -6
  545. homeassistant-stubs/components/rainmachine/config_flow.pyi +8 -10
  546. homeassistant-stubs/components/raspberry_pi/config_flow.pyi +2 -3
  547. homeassistant-stubs/components/rdw/config_flow.pyi +2 -3
  548. homeassistant-stubs/components/recollect_waste/calendar.pyi +1 -1
  549. homeassistant-stubs/components/recollect_waste/config_flow.pyi +7 -8
  550. homeassistant-stubs/components/recorder/const.pyi +1 -0
  551. homeassistant-stubs/components/recorder/core.pyi +4 -3
  552. homeassistant-stubs/components/recorder/db_schema.pyi +7 -0
  553. homeassistant-stubs/components/recorder/history/modern.pyi +7 -6
  554. homeassistant-stubs/components/recorder/migration.pyi +47 -5
  555. homeassistant-stubs/components/recorder/models/legacy.pyi +10 -0
  556. homeassistant-stubs/components/recorder/models/state.pyi +4 -0
  557. homeassistant-stubs/components/recorder/queries.pyi +2 -1
  558. homeassistant-stubs/components/recorder/table_managers/states.pyi +3 -0
  559. homeassistant-stubs/components/renault/binary_sensor.pyi +3 -11
  560. homeassistant-stubs/components/renault/button.pyi +3 -7
  561. homeassistant-stubs/components/renault/config_flow.pyi +8 -9
  562. homeassistant-stubs/components/renault/select.pyi +3 -13
  563. homeassistant-stubs/components/renault/sensor.pyi +3 -12
  564. homeassistant-stubs/components/rest/__init__.pyi +1 -0
  565. homeassistant-stubs/components/rfxtrx/config_flow.pyi +12 -12
  566. homeassistant-stubs/components/rfxtrx/event.pyi +22 -0
  567. homeassistant-stubs/components/rhasspy/config_flow.pyi +3 -4
  568. homeassistant-stubs/components/ridwell/calendar.pyi +1 -1
  569. homeassistant-stubs/components/ridwell/config_flow.pyi +6 -7
  570. homeassistant-stubs/components/rituals_perfume_genie/config_flow.pyi +3 -4
  571. homeassistant-stubs/components/rituals_perfume_genie/switch.pyi +3 -7
  572. homeassistant-stubs/components/roku/binary_sensor.pyi +3 -7
  573. homeassistant-stubs/components/roku/config_flow.pyi +6 -7
  574. homeassistant-stubs/components/roku/select.pyi +6 -10
  575. homeassistant-stubs/components/roku/sensor.pyi +3 -7
  576. homeassistant-stubs/components/romy/config_flow.pyi +5 -6
  577. homeassistant-stubs/components/romy/entity.pyi +11 -0
  578. homeassistant-stubs/components/romy/vacuum.pyi +4 -11
  579. homeassistant-stubs/components/rpi_power/config_flow.pyi +2 -2
  580. homeassistant-stubs/components/rtsp_to_webrtc/config_flow.pyi +9 -10
  581. homeassistant-stubs/components/ruuvi_gateway/config_flow.pyi +5 -6
  582. homeassistant-stubs/components/ruuvitag_ble/config_flow.pyi +4 -5
  583. homeassistant-stubs/components/samsungtv/config_flow.pyi +17 -17
  584. homeassistant-stubs/components/samsungtv/media_player.pyi +1 -0
  585. homeassistant-stubs/components/scrape/config_flow.pyi +1 -0
  586. homeassistant-stubs/components/search/__init__.pyi +41 -20
  587. homeassistant-stubs/components/sensibo/binary_sensor.pyi +6 -14
  588. homeassistant-stubs/components/sensibo/button.pyi +3 -7
  589. homeassistant-stubs/components/sensibo/config_flow.pyi +6 -7
  590. homeassistant-stubs/components/sensibo/number.pyi +3 -7
  591. homeassistant-stubs/components/sensibo/select.pyi +3 -7
  592. homeassistant-stubs/components/sensibo/sensor.pyi +6 -14
  593. homeassistant-stubs/components/sensibo/switch.pyi +3 -7
  594. homeassistant-stubs/components/sensibo/update.pyi +3 -7
  595. homeassistant-stubs/components/sensirion_ble/config_flow.pyi +4 -5
  596. homeassistant-stubs/components/sfr_box/binary_sensor.pyi +3 -7
  597. homeassistant-stubs/components/sfr_box/button.pyi +3 -7
  598. homeassistant-stubs/components/sfr_box/config_flow.pyi +6 -7
  599. homeassistant-stubs/components/sfr_box/sensor.pyi +3 -7
  600. homeassistant-stubs/components/shelly/__init__.pyi +2 -2
  601. homeassistant-stubs/components/shelly/binary_sensor.pyi +4 -4
  602. homeassistant-stubs/components/shelly/button.pyi +3 -7
  603. homeassistant-stubs/components/shelly/config_flow.pyi +15 -14
  604. homeassistant-stubs/components/shelly/const.pyi +3 -2
  605. homeassistant-stubs/components/shelly/coordinator.pyi +3 -1
  606. homeassistant-stubs/components/shelly/entity.pyi +4 -8
  607. homeassistant-stubs/components/shelly/event.pyi +2 -2
  608. homeassistant-stubs/components/shelly/light.pyi +30 -14
  609. homeassistant-stubs/components/shelly/number.pyi +1 -1
  610. homeassistant-stubs/components/shelly/sensor.pyi +4 -4
  611. homeassistant-stubs/components/shelly/switch.pyi +1 -1
  612. homeassistant-stubs/components/shelly/update.pyi +8 -15
  613. homeassistant-stubs/components/shelly/utils.pyi +9 -4
  614. homeassistant-stubs/components/shopping_list/config_flow.pyi +3 -4
  615. homeassistant-stubs/components/shopping_list/todo.pyi +0 -1
  616. homeassistant-stubs/components/simplepush/config_flow.pyi +3 -4
  617. homeassistant-stubs/components/simplisafe/config_flow.pyi +6 -8
  618. homeassistant-stubs/components/skybell/config_flow.pyi +5 -6
  619. homeassistant-stubs/components/skybell/sensor.pyi +3 -7
  620. homeassistant-stubs/components/slack/config_flow.pyi +3 -4
  621. homeassistant-stubs/components/sleepiq/button.pyi +3 -7
  622. homeassistant-stubs/components/sleepiq/config_flow.pyi +5 -6
  623. homeassistant-stubs/components/sleepiq/number.pyi +3 -7
  624. homeassistant-stubs/components/smhi/config_flow.pyi +6 -4
  625. homeassistant-stubs/components/smhi/weather.pyi +0 -2
  626. homeassistant-stubs/components/snooz/config_flow.pyi +8 -9
  627. homeassistant-stubs/components/sonarr/config_flow.pyi +6 -7
  628. homeassistant-stubs/components/speedtestdotnet/__init__.pyi +4 -2
  629. homeassistant-stubs/components/speedtestdotnet/config_flow.pyi +7 -8
  630. homeassistant-stubs/components/speedtestdotnet/const.pyi +0 -1
  631. homeassistant-stubs/components/speedtestdotnet/sensor.pyi +1 -2
  632. homeassistant-stubs/components/sql/config_flow.pyi +6 -7
  633. homeassistant-stubs/components/ssdp/__init__.pyi +9 -7
  634. homeassistant-stubs/components/starlink/binary_sensor.pyi +3 -7
  635. homeassistant-stubs/components/starlink/button.pyi +3 -7
  636. homeassistant-stubs/components/starlink/config_flow.pyi +2 -3
  637. homeassistant-stubs/components/starlink/coordinator.pyi +6 -1
  638. homeassistant-stubs/components/starlink/device_tracker.pyi +3 -7
  639. homeassistant-stubs/components/starlink/sensor.pyi +3 -7
  640. homeassistant-stubs/components/starlink/switch.pyi +3 -7
  641. homeassistant-stubs/components/starlink/time.pyi +34 -0
  642. homeassistant-stubs/components/statistics/sensor.pyi +2 -2
  643. homeassistant-stubs/components/steamist/config_flow.pyi +9 -10
  644. homeassistant-stubs/components/steamist/sensor.pyi +3 -7
  645. homeassistant-stubs/components/stookalert/config_flow.pyi +2 -3
  646. homeassistant-stubs/components/stream/__init__.pyi +1 -0
  647. homeassistant-stubs/components/stream/core.pyi +1 -1
  648. homeassistant-stubs/components/streamlabswater/config_flow.pyi +3 -4
  649. homeassistant-stubs/components/stt/legacy.pyi +1 -1
  650. homeassistant-stubs/components/suez_water/config_flow.pyi +3 -4
  651. homeassistant-stubs/components/sun/__init__.pyi +4 -64
  652. homeassistant-stubs/components/sun/config_flow.pyi +3 -4
  653. homeassistant-stubs/components/sun/const.pyi +11 -0
  654. homeassistant-stubs/components/sun/entity.pyi +64 -0
  655. homeassistant-stubs/components/sun/sensor.pyi +1 -1
  656. homeassistant-stubs/components/surepetcare/config_flow.pyi +5 -6
  657. homeassistant-stubs/components/switch/light.pyi +2 -2
  658. homeassistant-stubs/components/switchbee/config_flow.pyi +3 -4
  659. homeassistant-stubs/components/switchbot_cloud/config_flow.pyi +3 -4
  660. homeassistant-stubs/components/switcher_kis/button.pyi +3 -7
  661. homeassistant-stubs/components/switcher_kis/config_flow.pyi +5 -6
  662. homeassistant-stubs/components/switcher_kis/cover.pyi +1 -1
  663. homeassistant-stubs/components/switcher_kis/switch.pyi +2 -0
  664. homeassistant-stubs/components/synology_dsm/binary_sensor.pyi +2 -2
  665. homeassistant-stubs/components/synology_dsm/button.pyi +3 -7
  666. homeassistant-stubs/components/synology_dsm/camera.pyi +2 -2
  667. homeassistant-stubs/components/synology_dsm/config_flow.pyi +14 -15
  668. homeassistant-stubs/components/synology_dsm/entity.pyi +3 -7
  669. homeassistant-stubs/components/synology_dsm/sensor.pyi +2 -2
  670. homeassistant-stubs/components/synology_dsm/switch.pyi +2 -2
  671. homeassistant-stubs/components/synology_dsm/update.pyi +2 -2
  672. homeassistant-stubs/components/system_log/__init__.pyi +3 -2
  673. homeassistant-stubs/components/systemmonitor/__init__.pyi +3 -1
  674. homeassistant-stubs/components/systemmonitor/binary_sensor.pyi +14 -12
  675. homeassistant-stubs/components/systemmonitor/config_flow.pyi +2 -2
  676. homeassistant-stubs/components/systemmonitor/const.pyi +1 -1
  677. homeassistant-stubs/components/systemmonitor/coordinator.pyi +29 -46
  678. homeassistant-stubs/components/systemmonitor/diagnostics.pyi +2 -2
  679. homeassistant-stubs/components/systemmonitor/sensor.pyi +23 -20
  680. homeassistant-stubs/components/systemmonitor/util.pyi +1 -1
  681. homeassistant-stubs/components/tailscale/config_flow.pyi +4 -5
  682. homeassistant-stubs/components/tailwind/config_flow.pyi +9 -9
  683. homeassistant-stubs/components/tami4/config_flow.pyi +4 -5
  684. homeassistant-stubs/components/tautulli/config_flow.pyi +4 -5
  685. homeassistant-stubs/components/tautulli/sensor.pyi +6 -14
  686. homeassistant-stubs/components/technove/config_flow.pyi +4 -5
  687. homeassistant-stubs/components/tedee/config_flow.pyi +7 -5
  688. homeassistant-stubs/components/threshold/binary_sensor.pyi +2 -2
  689. homeassistant-stubs/components/tibber/config_flow.pyi +3 -4
  690. homeassistant-stubs/components/tile/config_flow.pyi +7 -8
  691. homeassistant-stubs/components/tile/device_tracker.pyi +1 -2
  692. homeassistant-stubs/components/tilt_ble/config_flow.pyi +4 -5
  693. homeassistant-stubs/components/tolo/__init__.pyi +3 -3
  694. homeassistant-stubs/components/tolo/binary_sensor.pyi +0 -2
  695. homeassistant-stubs/components/tolo/button.pyi +0 -1
  696. homeassistant-stubs/components/tolo/climate.pyi +6 -5
  697. homeassistant-stubs/components/tolo/config_flow.pyi +5 -6
  698. homeassistant-stubs/components/tolo/const.pyi +11 -7
  699. homeassistant-stubs/components/tolo/number.pyi +6 -11
  700. homeassistant-stubs/components/tolo/select.pyi +19 -7
  701. homeassistant-stubs/components/tolo/sensor.pyi +6 -10
  702. homeassistant-stubs/components/tolo/switch.pyi +30 -0
  703. homeassistant-stubs/components/tplink/config_flow.pyi +14 -16
  704. homeassistant-stubs/components/tplink/switch.pyi +0 -1
  705. homeassistant-stubs/components/tplink_omada/binary_sensor.pyi +17 -20
  706. homeassistant-stubs/components/tplink_omada/config_flow.pyi +6 -7
  707. homeassistant-stubs/components/tplink_omada/entity.pyi +3 -3
  708. homeassistant-stubs/components/tplink_omada/switch.pyi +54 -17
  709. homeassistant-stubs/components/tplink_omada/update.pyi +1 -1
  710. homeassistant-stubs/components/tractive/__init__.pyi +1 -2
  711. homeassistant-stubs/components/tractive/config_flow.pyi +5 -6
  712. homeassistant-stubs/components/tractive/const.pyi +0 -1
  713. homeassistant-stubs/components/tractive/sensor.pyi +4 -8
  714. homeassistant-stubs/components/tractive/switch.pyi +3 -7
  715. homeassistant-stubs/components/tradfri/config_flow.pyi +6 -7
  716. homeassistant-stubs/components/tradfri/sensor.pyi +3 -7
  717. homeassistant-stubs/components/trafikverket_camera/binary_sensor.pyi +3 -7
  718. homeassistant-stubs/components/trafikverket_camera/config_flow.pyi +7 -8
  719. homeassistant-stubs/components/trafikverket_camera/sensor.pyi +3 -7
  720. homeassistant-stubs/components/trafikverket_ferry/config_flow.pyi +6 -7
  721. homeassistant-stubs/components/trafikverket_ferry/sensor.pyi +3 -8
  722. homeassistant-stubs/components/trafikverket_train/config_flow.pyi +9 -10
  723. homeassistant-stubs/components/trafikverket_train/sensor.pyi +3 -7
  724. homeassistant-stubs/components/trafikverket_weatherstation/config_flow.pyi +6 -7
  725. homeassistant-stubs/components/trafikverket_weatherstation/sensor.pyi +3 -7
  726. homeassistant-stubs/components/transmission/__init__.pyi +3 -2
  727. homeassistant-stubs/components/transmission/config_flow.pyi +13 -13
  728. homeassistant-stubs/components/transmission/const.pyi +2 -0
  729. homeassistant-stubs/components/transmission/switch.pyi +3 -7
  730. homeassistant-stubs/components/trend/binary_sensor.pyi +2 -2
  731. homeassistant-stubs/components/tts/__init__.pyi +1 -0
  732. homeassistant-stubs/components/tts/legacy.pyi +1 -1
  733. homeassistant-stubs/components/twentemilieu/calendar.pyi +1 -1
  734. homeassistant-stubs/components/twentemilieu/config_flow.pyi +3 -4
  735. homeassistant-stubs/components/unifi/button.pyi +4 -8
  736. homeassistant-stubs/components/unifi/config_flow.pyi +16 -17
  737. homeassistant-stubs/components/unifi/device_tracker.pyi +4 -8
  738. homeassistant-stubs/components/unifi/entity.pyi +12 -15
  739. homeassistant-stubs/components/unifi/hub/config.pyi +31 -0
  740. homeassistant-stubs/components/unifi/hub/entity_loader.pyi +26 -0
  741. homeassistant-stubs/components/unifi/hub/hub.pyi +8 -28
  742. homeassistant-stubs/components/unifi/image.pyi +3 -8
  743. homeassistant-stubs/components/unifi/sensor.pyi +4 -10
  744. homeassistant-stubs/components/unifi/switch.pyi +6 -11
  745. homeassistant-stubs/components/unifi/update.pyi +4 -8
  746. homeassistant-stubs/components/unifiprotect/camera.pyi +5 -2
  747. homeassistant-stubs/components/unifiprotect/config_flow.pyi +16 -17
  748. homeassistant-stubs/components/unifiprotect/migrate.pyi +18 -4
  749. homeassistant-stubs/components/unifiprotect/repairs.pyi +17 -6
  750. homeassistant-stubs/components/unifiprotect/select.pyi +1 -0
  751. homeassistant-stubs/components/unifiprotect/services.pyi +8 -2
  752. homeassistant-stubs/components/unifiprotect/utils.pyi +2 -1
  753. homeassistant-stubs/components/upcloud/config_flow.pyi +8 -9
  754. homeassistant-stubs/components/uptime/config_flow.pyi +2 -3
  755. homeassistant-stubs/components/uptimerobot/config_flow.pyi +5 -6
  756. homeassistant-stubs/components/uptimerobot/sensor.pyi +0 -7
  757. homeassistant-stubs/components/uptimerobot/switch.pyi +1 -1
  758. homeassistant-stubs/components/usb/__init__.pyi +2 -1
  759. homeassistant-stubs/components/vacuum/__init__.pyi +1 -4
  760. homeassistant-stubs/components/vacuum/const.pyi +7 -0
  761. homeassistant-stubs/components/vacuum/group.pyi +1 -1
  762. homeassistant-stubs/components/vallox/binary_sensor.pyi +3 -7
  763. homeassistant-stubs/components/vallox/config_flow.pyi +3 -4
  764. homeassistant-stubs/components/vallox/date.pyi +22 -0
  765. homeassistant-stubs/components/vallox/number.pyi +3 -7
  766. homeassistant-stubs/components/vallox/switch.pyi +3 -7
  767. homeassistant-stubs/components/velbus/config_flow.pyi +6 -7
  768. homeassistant-stubs/components/vlc_telnet/config_flow.pyi +11 -11
  769. homeassistant-stubs/components/wallbox/config_flow.pyi +6 -6
  770. homeassistant-stubs/components/wallbox/number.pyi +3 -7
  771. homeassistant-stubs/components/waqi/__init__.pyi +0 -1
  772. homeassistant-stubs/components/waqi/config_flow.pyi +7 -11
  773. homeassistant-stubs/components/waqi/sensor.pyi +7 -22
  774. homeassistant-stubs/components/water_heater/const.pyi +6 -0
  775. homeassistant-stubs/components/water_heater/group.pyi +1 -1
  776. homeassistant-stubs/components/watttime/config_flow.pyi +10 -12
  777. homeassistant-stubs/components/weather/__init__.pyi +0 -13
  778. homeassistant-stubs/components/webhook/__init__.pyi +1 -2
  779. homeassistant-stubs/components/webostv/config_flow.pyi +8 -8
  780. homeassistant-stubs/components/websocket_api/commands.pyi +2 -3
  781. homeassistant-stubs/components/websocket_api/http.pyi +1 -1
  782. homeassistant-stubs/components/websocket_api/messages.pyi +4 -3
  783. homeassistant-stubs/components/wemo/__init__.pyi +3 -1
  784. homeassistant-stubs/components/wemo/config_flow.pyi +2 -3
  785. homeassistant-stubs/components/wemo/wemo_device.pyi +2 -1
  786. homeassistant-stubs/components/whois/config_flow.pyi +2 -3
  787. homeassistant-stubs/components/withings/__init__.pyi +13 -0
  788. homeassistant-stubs/components/withings/config_flow.pyi +4 -5
  789. homeassistant-stubs/components/wiz/config_flow.pyi +8 -8
  790. homeassistant-stubs/components/wled/config_flow.pyi +6 -10
  791. homeassistant-stubs/components/xiaomi_ble/config_flow.pyi +9 -10
  792. homeassistant-stubs/components/xiaomi_ble/const.pyi +9 -2
  793. homeassistant-stubs/components/xiaomi_ble/device_trigger.pyi +1 -1
  794. homeassistant-stubs/components/xiaomi_ble/event.pyi +1 -1
  795. homeassistant-stubs/components/yale_smart_alarm/config_flow.pyi +5 -6
  796. homeassistant-stubs/components/yalexs_ble/config_flow.pyi +14 -14
  797. homeassistant-stubs/components/yalexs_ble/sensor.pyi +3 -7
  798. homeassistant-stubs/components/youtube/config_flow.pyi +6 -7
  799. homeassistant-stubs/components/youtube/sensor.pyi +3 -7
  800. homeassistant-stubs/components/zeroconf/__init__.pyi +1 -1
  801. homeassistant-stubs/components/zodiac/config_flow.pyi +2 -3
  802. homeassistant-stubs/components/zodiac/sensor.pyi +0 -2
  803. homeassistant-stubs/components/zone/__init__.pyi +2 -2
  804. homeassistant-stubs/components/zone/config_flow.pyi +2 -2
  805. homeassistant-stubs/components/zone/trigger.pyi +2 -2
  806. homeassistant-stubs/components/zwave_js/api.pyi +1 -2
  807. homeassistant-stubs/components/zwave_js/binary_sensor.pyi +3 -7
  808. homeassistant-stubs/components/zwave_js/config_flow.pyi +39 -38
  809. homeassistant-stubs/components/zwave_js/humidifier.pyi +3 -7
  810. homeassistant-stubs/config.pyi +18 -3
  811. homeassistant-stubs/config_entries.pyi +52 -33
  812. homeassistant-stubs/const.pyi +11 -6
  813. homeassistant-stubs/core.pyi +62 -38
  814. homeassistant-stubs/data_entry_flow.pyi +38 -37
  815. homeassistant-stubs/exceptions.pyi +12 -5
  816. homeassistant-stubs/helpers/area_registry.pyi +7 -19
  817. homeassistant-stubs/helpers/category_registry.pyi +43 -0
  818. homeassistant-stubs/helpers/check_config.pyi +1 -1
  819. homeassistant-stubs/helpers/config_entry_flow.pyi +11 -12
  820. homeassistant-stubs/helpers/config_entry_oauth2_flow.pyi +6 -7
  821. homeassistant-stubs/helpers/config_validation.pyi +8 -1
  822. homeassistant-stubs/helpers/data_entry_flow.pyi +9 -5
  823. homeassistant-stubs/helpers/debounce.pyi +2 -1
  824. homeassistant-stubs/helpers/device_registry.pyi +9 -5
  825. homeassistant-stubs/helpers/discovery.pyi +2 -1
  826. homeassistant-stubs/helpers/discovery_flow.pyi +2 -2
  827. homeassistant-stubs/helpers/dispatcher.pyi +2 -10
  828. homeassistant-stubs/helpers/entity.pyi +9 -7
  829. homeassistant-stubs/helpers/entity_component.pyi +2 -1
  830. homeassistant-stubs/helpers/entity_platform.pyi +2 -2
  831. homeassistant-stubs/helpers/entity_registry.pyi +14 -9
  832. homeassistant-stubs/helpers/event.pyi +30 -30
  833. homeassistant-stubs/helpers/floor_registry.pyi +12 -24
  834. homeassistant-stubs/helpers/frame.pyi +11 -3
  835. homeassistant-stubs/helpers/http.pyi +6 -3
  836. homeassistant-stubs/helpers/importlib.pyi +11 -0
  837. homeassistant-stubs/helpers/integration_platform.pyi +8 -6
  838. homeassistant-stubs/helpers/intent.pyi +6 -4
  839. homeassistant-stubs/helpers/issue_registry.pyi +2 -3
  840. homeassistant-stubs/helpers/label_registry.pyi +11 -23
  841. homeassistant-stubs/helpers/normalized_name_base_registry.pyi +22 -0
  842. homeassistant-stubs/helpers/ratelimit.pyi +2 -3
  843. homeassistant-stubs/helpers/registry.pyi +15 -0
  844. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +15 -15
  845. homeassistant-stubs/helpers/script.pyi +22 -8
  846. homeassistant-stubs/helpers/selector.pyi +20 -0
  847. homeassistant-stubs/helpers/service.pyi +9 -4
  848. homeassistant-stubs/helpers/storage.pyi +28 -4
  849. homeassistant-stubs/helpers/system_info.pyi +1 -0
  850. homeassistant-stubs/helpers/template.pyi +18 -3
  851. homeassistant-stubs/helpers/translation.pyi +2 -1
  852. homeassistant-stubs/helpers/trigger.pyi +1 -0
  853. homeassistant-stubs/helpers/typing.pyi +2 -5
  854. homeassistant-stubs/helpers/update_coordinator.pyi +5 -5
  855. homeassistant-stubs/loader.pyi +24 -5
  856. homeassistant-stubs/setup.pyi +21 -4
  857. homeassistant-stubs/util/async_.pyi +2 -2
  858. homeassistant-stubs/util/percentage.pyi +1 -1
  859. homeassistant-stubs/util/signal_type.pyi +20 -0
  860. homeassistant-stubs/util/unit_conversion.pyi +10 -0
  861. {homeassistant_stubs-2024.3.3.dist-info → homeassistant_stubs-2024.4.0.dist-info}/METADATA +4 -5
  862. {homeassistant_stubs-2024.3.3.dist-info → homeassistant_stubs-2024.4.0.dist-info}/RECORD +864 -825
  863. homeassistant-stubs/components/axis/device.pyi +0 -64
  864. homeassistant-stubs/components/binary_sensor/group.pyi +0 -5
  865. homeassistant-stubs/components/fan/group.pyi +0 -5
  866. homeassistant-stubs/components/humidifier/group.pyi +0 -5
  867. homeassistant-stubs/components/light/group.pyi +0 -5
  868. homeassistant-stubs/components/remote/group.pyi +0 -5
  869. homeassistant-stubs/components/switch/group.pyi +0 -5
  870. {homeassistant_stubs-2024.3.3.dist-info → homeassistant_stubs-2024.4.0.dist-info}/LICENSE +0 -0
  871. {homeassistant_stubs-2024.3.3.dist-info → homeassistant_stubs-2024.4.0.dist-info}/WHEEL +0 -0
@@ -1,12 +1,13 @@
1
1
  import asyncio
2
2
  import threading
3
3
  from . import migration as migration, statistics as statistics
4
- from .const import CONTEXT_ID_AS_BINARY_SCHEMA_VERSION as CONTEXT_ID_AS_BINARY_SCHEMA_VERSION, DB_WORKER_PREFIX as DB_WORKER_PREFIX, DOMAIN as DOMAIN, ESTIMATED_QUEUE_ITEM_SIZE as ESTIMATED_QUEUE_ITEM_SIZE, EVENT_TYPE_IDS_SCHEMA_VERSION as EVENT_TYPE_IDS_SCHEMA_VERSION, KEEPALIVE_TIME as KEEPALIVE_TIME, LEGACY_STATES_EVENT_ID_INDEX_SCHEMA_VERSION as LEGACY_STATES_EVENT_ID_INDEX_SCHEMA_VERSION, MARIADB_PYMYSQL_URL_PREFIX as MARIADB_PYMYSQL_URL_PREFIX, MARIADB_URL_PREFIX as MARIADB_URL_PREFIX, MAX_QUEUE_BACKLOG_MIN_VALUE as MAX_QUEUE_BACKLOG_MIN_VALUE, MYSQLDB_PYMYSQL_URL_PREFIX as MYSQLDB_PYMYSQL_URL_PREFIX, MYSQLDB_URL_PREFIX as MYSQLDB_URL_PREFIX, QUEUE_PERCENTAGE_ALLOWED_AVAILABLE_MEMORY as QUEUE_PERCENTAGE_ALLOWED_AVAILABLE_MEMORY, SQLITE_MAX_BIND_VARS as SQLITE_MAX_BIND_VARS, SQLITE_URL_PREFIX as SQLITE_URL_PREFIX, STATES_META_SCHEMA_VERSION as STATES_META_SCHEMA_VERSION, STATISTICS_ROWS_SCHEMA_VERSION as STATISTICS_ROWS_SCHEMA_VERSION, SupportedDialect as SupportedDialect
4
+ from .const import DB_WORKER_PREFIX as DB_WORKER_PREFIX, DOMAIN as DOMAIN, ESTIMATED_QUEUE_ITEM_SIZE as ESTIMATED_QUEUE_ITEM_SIZE, KEEPALIVE_TIME as KEEPALIVE_TIME, LAST_REPORTED_SCHEMA_VERSION as LAST_REPORTED_SCHEMA_VERSION, LEGACY_STATES_EVENT_ID_INDEX_SCHEMA_VERSION as LEGACY_STATES_EVENT_ID_INDEX_SCHEMA_VERSION, MARIADB_PYMYSQL_URL_PREFIX as MARIADB_PYMYSQL_URL_PREFIX, MARIADB_URL_PREFIX as MARIADB_URL_PREFIX, MAX_QUEUE_BACKLOG_MIN_VALUE as MAX_QUEUE_BACKLOG_MIN_VALUE, MYSQLDB_PYMYSQL_URL_PREFIX as MYSQLDB_PYMYSQL_URL_PREFIX, MYSQLDB_URL_PREFIX as MYSQLDB_URL_PREFIX, QUEUE_PERCENTAGE_ALLOWED_AVAILABLE_MEMORY as QUEUE_PERCENTAGE_ALLOWED_AVAILABLE_MEMORY, SQLITE_MAX_BIND_VARS as SQLITE_MAX_BIND_VARS, SQLITE_URL_PREFIX as SQLITE_URL_PREFIX, STATISTICS_ROWS_SCHEMA_VERSION as STATISTICS_ROWS_SCHEMA_VERSION, SupportedDialect as SupportedDialect
5
5
  from .db_schema import Base as Base, EventData as EventData, EventTypes as EventTypes, Events as Events, LEGACY_STATES_ENTITY_ID_LAST_UPDATED_INDEX as LEGACY_STATES_ENTITY_ID_LAST_UPDATED_INDEX, LEGACY_STATES_EVENT_ID_INDEX as LEGACY_STATES_EVENT_ID_INDEX, SCHEMA_VERSION as SCHEMA_VERSION, StateAttributes as StateAttributes, States as States, StatesMeta as StatesMeta, Statistics as Statistics, StatisticsShortTerm as StatisticsShortTerm, TABLE_STATES as TABLE_STATES
6
6
  from .executor import DBInterruptibleThreadPoolExecutor as DBInterruptibleThreadPoolExecutor
7
+ from .migration import EntityIDMigration as EntityIDMigration, EventTypeIDMigration as EventTypeIDMigration, EventsContextIDMigration as EventsContextIDMigration, StatesContextIDMigration as StatesContextIDMigration
7
8
  from .models import DatabaseEngine as DatabaseEngine, StatisticData as StatisticData, StatisticMetaData as StatisticMetaData, UnsupportedDialect as UnsupportedDialect
8
9
  from .pool import MutexPool as MutexPool, POOL_SIZE as POOL_SIZE, RecorderPool as RecorderPool
9
- from .queries import has_entity_ids_to_migrate as has_entity_ids_to_migrate, has_event_type_to_migrate as has_event_type_to_migrate, has_events_context_ids_to_migrate as has_events_context_ids_to_migrate, has_states_context_ids_to_migrate as has_states_context_ids_to_migrate
10
+ from .queries import get_migration_changes as get_migration_changes
10
11
  from .table_managers.event_data import EventDataManager as EventDataManager
11
12
  from .table_managers.event_types import EventTypeManager as EventTypeManager
12
13
  from .table_managers.recorder_runs import RecorderRunsManager as RecorderRunsManager
@@ -14,7 +15,7 @@ from .table_managers.state_attributes import StateAttributesManager as StateAttr
14
15
  from .table_managers.states import StatesManager as StatesManager
15
16
  from .table_managers.states_meta import StatesMetaManager as StatesMetaManager
16
17
  from .table_managers.statistics_meta import StatisticsMetaManager as StatisticsMetaManager
17
- from .tasks import AdjustLRUSizeTask as AdjustLRUSizeTask, AdjustStatisticsTask as AdjustStatisticsTask, ChangeStatisticsUnitTask as ChangeStatisticsUnitTask, ClearStatisticsTask as ClearStatisticsTask, CommitTask as CommitTask, CompileMissingStatisticsTask as CompileMissingStatisticsTask, DatabaseLockTask as DatabaseLockTask, EntityIDMigrationTask as EntityIDMigrationTask, EntityIDPostMigrationTask as EntityIDPostMigrationTask, EventIdMigrationTask as EventIdMigrationTask, EventTypeIDMigrationTask as EventTypeIDMigrationTask, EventsContextIDMigrationTask as EventsContextIDMigrationTask, ImportStatisticsTask as ImportStatisticsTask, KeepAliveTask as KeepAliveTask, PerodicCleanupTask as PerodicCleanupTask, PurgeTask as PurgeTask, RecorderTask as RecorderTask, StatesContextIDMigrationTask as StatesContextIDMigrationTask, StatisticsTask as StatisticsTask, StopTask as StopTask, SynchronizeTask as SynchronizeTask, UpdateStatesMetadataTask as UpdateStatesMetadataTask, UpdateStatisticsMetadataTask as UpdateStatisticsMetadataTask, WaitTask as WaitTask
18
+ from .tasks import AdjustLRUSizeTask as AdjustLRUSizeTask, AdjustStatisticsTask as AdjustStatisticsTask, ChangeStatisticsUnitTask as ChangeStatisticsUnitTask, ClearStatisticsTask as ClearStatisticsTask, CommitTask as CommitTask, CompileMissingStatisticsTask as CompileMissingStatisticsTask, DatabaseLockTask as DatabaseLockTask, EntityIDPostMigrationTask as EntityIDPostMigrationTask, EventIdMigrationTask as EventIdMigrationTask, ImportStatisticsTask as ImportStatisticsTask, KeepAliveTask as KeepAliveTask, PerodicCleanupTask as PerodicCleanupTask, PurgeTask as PurgeTask, RecorderTask as RecorderTask, StatisticsTask as StatisticsTask, StopTask as StopTask, SynchronizeTask as SynchronizeTask, UpdateStatesMetadataTask as UpdateStatesMetadataTask, UpdateStatisticsMetadataTask as UpdateStatisticsMetadataTask, WaitTask as WaitTask
18
19
  from .util import async_create_backup_failure_issue as async_create_backup_failure_issue, build_mysqldb_conv as build_mysqldb_conv, dburl_to_path as dburl_to_path, end_incomplete_runs as end_incomplete_runs, execute_stmt_lambda_element as execute_stmt_lambda_element, get_index_by_name as get_index_by_name, is_second_sunday as is_second_sunday, move_away_broken_database as move_away_broken_database, session_scope as session_scope, setup_connection_for_dialect as setup_connection_for_dialect, validate_or_move_away_sqlite_database as validate_or_move_away_sqlite_database, write_lock_db_sqlite as write_lock_db_sqlite
19
20
  from _typeshed import Incomplete
20
21
  from collections.abc import Callable as Callable, Iterable
@@ -30,6 +30,7 @@ TABLE_STATISTICS: str
30
30
  TABLE_STATISTICS_META: str
31
31
  TABLE_STATISTICS_RUNS: str
32
32
  TABLE_STATISTICS_SHORT_TERM: str
33
+ TABLE_MIGRATION_CHANGES: str
33
34
  STATISTICS_TABLES: Incomplete
34
35
  MAX_STATE_ATTRS_BYTES: int
35
36
  MAX_EVENT_DATA_BYTES: int
@@ -135,6 +136,7 @@ class States(Base):
135
136
  event_id: Mapped[int | None]
136
137
  last_changed: Mapped[datetime | None]
137
138
  last_changed_ts: Mapped[float | None]
139
+ last_reported_ts: Mapped[float | None]
138
140
  last_updated: Mapped[datetime | None]
139
141
  last_updated_ts: Mapped[float | None]
140
142
  old_state_id: Mapped[int | None]
@@ -231,6 +233,11 @@ class RecorderRuns(Base):
231
233
  def __repr__(self) -> str: ...
232
234
  def to_native(self, validate_entity_id: bool = True) -> Self: ...
233
235
 
236
+ class MigrationChanges(Base):
237
+ __tablename__ = TABLE_MIGRATION_CHANGES
238
+ migration_id: Mapped[str]
239
+ version: Mapped[int]
240
+
234
241
  class SchemaChanges(Base):
235
242
  __tablename__ = TABLE_SCHEMA_CHANGES
236
243
  change_id: Mapped[int]
@@ -1,4 +1,5 @@
1
1
  from ... import recorder as recorder
2
+ from ..const import LAST_REPORTED_SCHEMA_VERSION as LAST_REPORTED_SCHEMA_VERSION
2
3
  from ..db_schema import SHARED_ATTR_OR_LEGACY_ATTRIBUTES as SHARED_ATTR_OR_LEGACY_ATTRIBUTES, StateAttributes as StateAttributes, States as States
3
4
  from ..filters import Filters as Filters
4
5
  from ..models import LazyState as LazyState, datetime_to_timestamp_or_none as datetime_to_timestamp_or_none, extract_metadata_ids as extract_metadata_ids, process_timestamp as process_timestamp, row_to_compressed_state as row_to_compressed_state
@@ -16,20 +17,20 @@ from typing import Any
16
17
 
17
18
  _FIELD_MAP: Incomplete
18
19
 
19
- def _stmt_and_join_attributes(no_attributes: bool, include_last_changed: bool) -> Select: ...
20
- def _stmt_and_join_attributes_for_start_state(no_attributes: bool, include_last_changed: bool) -> Select: ...
21
- def _select_from_subquery(subquery: Subquery | CompoundSelect, no_attributes: bool, include_last_changed: bool) -> Select: ...
20
+ def _stmt_and_join_attributes(no_attributes: bool, include_last_changed: bool, include_last_reported: bool) -> Select: ...
21
+ def _stmt_and_join_attributes_for_start_state(no_attributes: bool, include_last_changed: bool, include_last_reported: bool) -> Select: ...
22
+ def _select_from_subquery(subquery: Subquery | CompoundSelect, no_attributes: bool, include_last_changed: bool, include_last_reported: bool) -> Select: ...
22
23
  def get_significant_states(hass: HomeAssistant, start_time: datetime, end_time: datetime | None = None, entity_ids: list[str] | None = None, filters: Filters | None = None, include_start_time_state: bool = True, significant_changes_only: bool = True, minimal_response: bool = False, no_attributes: bool = False, compressed_state_format: bool = False) -> MutableMapping[str, list[State | dict[str, Any]]]: ...
23
24
  def _significant_states_stmt(start_time_ts: float, end_time_ts: float | None, single_metadata_id: int | None, metadata_ids: list[int], metadata_ids_in_significant_domains: list[int], significant_changes_only: bool, no_attributes: bool, include_start_time_state: bool, run_start_ts: float | None) -> Select | CompoundSelect: ...
24
25
  def get_significant_states_with_session(hass: HomeAssistant, session: Session, start_time: datetime, end_time: datetime | None = None, entity_ids: list[str] | None = None, filters: Filters | None = None, include_start_time_state: bool = True, significant_changes_only: bool = True, minimal_response: bool = False, no_attributes: bool = False, compressed_state_format: bool = False) -> MutableMapping[str, list[State | dict[str, Any]]]: ...
25
26
  def get_full_significant_states_with_session(hass: HomeAssistant, session: Session, start_time: datetime, end_time: datetime | None = None, entity_ids: list[str] | None = None, filters: Filters | None = None, include_start_time_state: bool = True, significant_changes_only: bool = True, no_attributes: bool = False) -> MutableMapping[str, list[State]]: ...
26
- def _state_changed_during_period_stmt(start_time_ts: float, end_time_ts: float | None, single_metadata_id: int, no_attributes: bool, limit: int | None, include_start_time_state: bool, run_start_ts: float | None) -> Select | CompoundSelect: ...
27
+ def _state_changed_during_period_stmt(start_time_ts: float, end_time_ts: float | None, single_metadata_id: int, no_attributes: bool, limit: int | None, include_start_time_state: bool, run_start_ts: float | None, include_last_reported: bool) -> Select | CompoundSelect: ...
27
28
  def state_changes_during_period(hass: HomeAssistant, start_time: datetime, end_time: datetime | None = None, entity_id: str | None = None, no_attributes: bool = False, descending: bool = False, limit: int | None = None, include_start_time_state: bool = True) -> MutableMapping[str, list[State]]: ...
28
29
  def _get_last_state_changes_single_stmt(metadata_id: int) -> Select: ...
29
- def _get_last_state_changes_multiple_stmt(number_of_states: int, metadata_id: int) -> Select: ...
30
+ def _get_last_state_changes_multiple_stmt(number_of_states: int, metadata_id: int, include_last_reported: bool) -> Select: ...
30
31
  def get_last_state_changes(hass: HomeAssistant, number_of_states: int, entity_id: str) -> MutableMapping[str, list[State]]: ...
31
32
  def _get_start_time_state_for_entities_stmt(run_start_ts: float, epoch_time: float, metadata_ids: list[int], no_attributes: bool, include_last_changed: bool) -> Select: ...
32
33
  def _get_run_start_ts_for_utc_point_in_time(hass: HomeAssistant, utc_point_in_time: datetime) -> float | None: ...
33
34
  def _get_start_time_state_stmt(run_start_ts: float, epoch_time: float, single_metadata_id: int | None, metadata_ids: list[int], no_attributes: bool, include_last_changed: bool) -> Select: ...
34
- def _get_single_entity_start_time_stmt(epoch_time: float, metadata_id: int, no_attributes: bool, include_last_changed: bool) -> Select: ...
35
+ def _get_single_entity_start_time_stmt(epoch_time: float, metadata_id: int, no_attributes: bool, include_last_changed: bool, include_last_reported: bool) -> Select: ...
35
36
  def _sorted_states_to_dict(states: Iterable[Row], start_time_ts: float | None, entity_ids: list[str], entity_id_to_metadata_id: dict[str, int | None], minimal_response: bool = False, compressed_state_format: bool = False, descending: bool = False, no_attributes: bool = False) -> MutableMapping[str, list[State | dict[str, Any]]]: ...
@@ -1,14 +1,16 @@
1
+ import abc
1
2
  from . import Recorder as Recorder
2
3
  from .auto_repairs.statistics.duplicates import delete_statistics_duplicates as delete_statistics_duplicates, delete_statistics_meta_duplicates as delete_statistics_meta_duplicates
3
- from .const import SupportedDialect as SupportedDialect
4
- from .db_schema import Base as Base, CONTEXT_ID_BIN_MAX_LENGTH as CONTEXT_ID_BIN_MAX_LENGTH, DOUBLE_PRECISION_TYPE_SQL as DOUBLE_PRECISION_TYPE_SQL, EventTypes as EventTypes, Events as Events, LEGACY_STATES_ENTITY_ID_LAST_UPDATED_INDEX as LEGACY_STATES_ENTITY_ID_LAST_UPDATED_INDEX, LEGACY_STATES_EVENT_ID_INDEX as LEGACY_STATES_EVENT_ID_INDEX, MYSQL_COLLATE as MYSQL_COLLATE, MYSQL_DEFAULT_CHARSET as MYSQL_DEFAULT_CHARSET, SCHEMA_VERSION as SCHEMA_VERSION, STATISTICS_TABLES as STATISTICS_TABLES, SchemaChanges as SchemaChanges, States as States, StatesMeta as StatesMeta, Statistics as Statistics, StatisticsMeta as StatisticsMeta, StatisticsRuns as StatisticsRuns, StatisticsShortTerm as StatisticsShortTerm, TABLE_STATES as TABLE_STATES
4
+ from .const import CONTEXT_ID_AS_BINARY_SCHEMA_VERSION as CONTEXT_ID_AS_BINARY_SCHEMA_VERSION, EVENT_TYPE_IDS_SCHEMA_VERSION as EVENT_TYPE_IDS_SCHEMA_VERSION, STATES_META_SCHEMA_VERSION as STATES_META_SCHEMA_VERSION, SupportedDialect as SupportedDialect
5
+ from .db_schema import Base as Base, CONTEXT_ID_BIN_MAX_LENGTH as CONTEXT_ID_BIN_MAX_LENGTH, DOUBLE_PRECISION_TYPE_SQL as DOUBLE_PRECISION_TYPE_SQL, EventTypes as EventTypes, Events as Events, LEGACY_STATES_ENTITY_ID_LAST_UPDATED_INDEX as LEGACY_STATES_ENTITY_ID_LAST_UPDATED_INDEX, LEGACY_STATES_EVENT_ID_INDEX as LEGACY_STATES_EVENT_ID_INDEX, MYSQL_COLLATE as MYSQL_COLLATE, MYSQL_DEFAULT_CHARSET as MYSQL_DEFAULT_CHARSET, MigrationChanges as MigrationChanges, SCHEMA_VERSION as SCHEMA_VERSION, STATISTICS_TABLES as STATISTICS_TABLES, SchemaChanges as SchemaChanges, States as States, StatesMeta as StatesMeta, Statistics as Statistics, StatisticsMeta as StatisticsMeta, StatisticsRuns as StatisticsRuns, StatisticsShortTerm as StatisticsShortTerm, TABLE_STATES as TABLE_STATES
5
6
  from .models import process_timestamp as process_timestamp
6
7
  from .models.time import datetime_to_timestamp_or_none as datetime_to_timestamp_or_none
7
- from .queries import batch_cleanup_entity_ids as batch_cleanup_entity_ids, delete_duplicate_short_term_statistics_row as delete_duplicate_short_term_statistics_row, delete_duplicate_statistics_row as delete_duplicate_statistics_row, find_entity_ids_to_migrate as find_entity_ids_to_migrate, find_event_type_to_migrate as find_event_type_to_migrate, find_events_context_ids_to_migrate as find_events_context_ids_to_migrate, find_states_context_ids_to_migrate as find_states_context_ids_to_migrate, find_unmigrated_short_term_statistics_rows as find_unmigrated_short_term_statistics_rows, find_unmigrated_statistics_rows as find_unmigrated_statistics_rows, has_used_states_event_ids as has_used_states_event_ids, migrate_single_short_term_statistics_row_to_timestamp as migrate_single_short_term_statistics_row_to_timestamp, migrate_single_statistics_row_to_timestamp as migrate_single_statistics_row_to_timestamp
8
+ from .queries import batch_cleanup_entity_ids as batch_cleanup_entity_ids, delete_duplicate_short_term_statistics_row as delete_duplicate_short_term_statistics_row, delete_duplicate_statistics_row as delete_duplicate_statistics_row, find_entity_ids_to_migrate as find_entity_ids_to_migrate, find_event_type_to_migrate as find_event_type_to_migrate, find_events_context_ids_to_migrate as find_events_context_ids_to_migrate, find_states_context_ids_to_migrate as find_states_context_ids_to_migrate, find_unmigrated_short_term_statistics_rows as find_unmigrated_short_term_statistics_rows, find_unmigrated_statistics_rows as find_unmigrated_statistics_rows, has_entity_ids_to_migrate as has_entity_ids_to_migrate, has_event_type_to_migrate as has_event_type_to_migrate, has_events_context_ids_to_migrate as has_events_context_ids_to_migrate, has_states_context_ids_to_migrate as has_states_context_ids_to_migrate, has_used_states_event_ids as has_used_states_event_ids, migrate_single_short_term_statistics_row_to_timestamp as migrate_single_short_term_statistics_row_to_timestamp, migrate_single_statistics_row_to_timestamp as migrate_single_statistics_row_to_timestamp
8
9
  from .statistics import get_start_time as get_start_time
9
- from .tasks import CommitTask as CommitTask, PostSchemaMigrationTask as PostSchemaMigrationTask, StatisticsTimestampMigrationCleanupTask as StatisticsTimestampMigrationCleanupTask
10
- from .util import database_job_retry_wrapper as database_job_retry_wrapper, get_index_by_name as get_index_by_name, retryable_database_job as retryable_database_job, session_scope as session_scope
10
+ from .tasks import CommitTask as CommitTask, EntityIDMigrationTask as EntityIDMigrationTask, EventTypeIDMigrationTask as EventTypeIDMigrationTask, EventsContextIDMigrationTask as EventsContextIDMigrationTask, PostSchemaMigrationTask as PostSchemaMigrationTask, RecorderTask as RecorderTask, StatesContextIDMigrationTask as StatesContextIDMigrationTask, StatisticsTimestampMigrationCleanupTask as StatisticsTimestampMigrationCleanupTask
11
+ from .util import database_job_retry_wrapper as database_job_retry_wrapper, execute_stmt_lambda_element as execute_stmt_lambda_element, get_index_by_name as get_index_by_name, retryable_database_job as retryable_database_job, session_scope as session_scope
11
12
  from _typeshed import Incomplete
13
+ from abc import ABC, abstractmethod
12
14
  from collections.abc import Callable as Callable, Iterable
13
15
  from dataclasses import dataclass
14
16
  from homeassistant.core import HomeAssistant as HomeAssistant
@@ -16,6 +18,7 @@ from homeassistant.util.enum import try_parse_enum as try_parse_enum
16
18
  from homeassistant.util.ulid import ulid_at_time as ulid_at_time, ulid_to_bytes as ulid_to_bytes
17
19
  from sqlalchemy.engine import CursorResult as CursorResult, Engine as Engine
18
20
  from sqlalchemy.orm.session import Session as Session
21
+ from sqlalchemy.sql.lambdas import StatementLambdaElement as StatementLambdaElement
19
22
 
20
23
  LIVE_MIGRATION_MIN_SCHEMA_VERSION: int
21
24
  _EMPTY_ENTITY_ID: str
@@ -76,3 +79,42 @@ def post_migrate_entity_ids(instance: Recorder) -> bool: ...
76
79
  def cleanup_legacy_states_event_ids(instance: Recorder) -> bool: ...
77
80
  def _initialize_database(session: Session) -> bool: ...
78
81
  def initialize_database(session_maker: Callable[[], Session]) -> bool: ...
82
+
83
+ class BaseRunTimeMigration(ABC, metaclass=abc.ABCMeta):
84
+ required_schema_version: int
85
+ migration_version: int
86
+ migration_id: str
87
+ task: Callable[[], RecorderTask]
88
+ schema_version: Incomplete
89
+ session: Incomplete
90
+ migration_changes: Incomplete
91
+ def __init__(self, session: Session, schema_version: int, migration_changes: dict[str, int]) -> None: ...
92
+ @abstractmethod
93
+ def needs_migrate_query(self) -> StatementLambdaElement: ...
94
+ def needs_migrate(self) -> bool: ...
95
+
96
+ class StatesContextIDMigration(BaseRunTimeMigration):
97
+ required_schema_version = CONTEXT_ID_AS_BINARY_SCHEMA_VERSION
98
+ migration_id: str
99
+ task = StatesContextIDMigrationTask
100
+ def needs_migrate_query(self) -> StatementLambdaElement: ...
101
+
102
+ class EventsContextIDMigration(BaseRunTimeMigration):
103
+ required_schema_version = CONTEXT_ID_AS_BINARY_SCHEMA_VERSION
104
+ migration_id: str
105
+ task = EventsContextIDMigrationTask
106
+ def needs_migrate_query(self) -> StatementLambdaElement: ...
107
+
108
+ class EventTypeIDMigration(BaseRunTimeMigration):
109
+ required_schema_version = EVENT_TYPE_IDS_SCHEMA_VERSION
110
+ migration_id: str
111
+ task = EventTypeIDMigrationTask
112
+ def needs_migrate_query(self) -> StatementLambdaElement: ...
113
+
114
+ class EntityIDMigration(BaseRunTimeMigration):
115
+ required_schema_version = STATES_META_SCHEMA_VERSION
116
+ migration_id: str
117
+ task = EntityIDMigrationTask
118
+ def needs_migrate_query(self) -> StatementLambdaElement: ...
119
+
120
+ def _mark_migration_done(session: Session, migration: type[BaseRunTimeMigration]) -> None: ...
@@ -14,6 +14,7 @@ class LegacyLazyStatePreSchema31(State):
14
14
  state: Incomplete
15
15
  _attributes: Incomplete
16
16
  _last_changed: Incomplete
17
+ _last_reported: Incomplete
17
18
  _last_updated: Incomplete
18
19
  _context: Incomplete
19
20
  attr_cache: Incomplete
@@ -31,6 +32,10 @@ class LegacyLazyStatePreSchema31(State):
31
32
  @last_changed.setter
32
33
  def last_changed(self, value: datetime) -> None: ...
33
34
  @property
35
+ def last_reported(self) -> datetime: ...
36
+ @last_reported.setter
37
+ def last_reported(self, value: datetime) -> None: ...
38
+ @property
34
39
  def last_updated(self) -> datetime: ...
35
40
  @last_updated.setter
36
41
  def last_updated(self, value: datetime) -> None: ...
@@ -46,6 +51,7 @@ class LegacyLazyState(State):
46
51
  _attributes: Incomplete
47
52
  _last_updated_ts: Incomplete
48
53
  _last_changed_ts: Incomplete
54
+ _last_reported_ts: Incomplete
49
55
  _context: Incomplete
50
56
  attr_cache: Incomplete
51
57
  def __init__(self, row: Row, attr_cache: dict[str, dict[str, Any]], start_time: datetime | None, entity_id: str | None = None) -> None: ...
@@ -62,6 +68,10 @@ class LegacyLazyState(State):
62
68
  @last_changed.setter
63
69
  def last_changed(self, value: datetime) -> None: ...
64
70
  @property
71
+ def last_reported(self) -> datetime: ...
72
+ @last_reported.setter
73
+ def last_reported(self, value: datetime) -> None: ...
74
+ @property
65
75
  def last_updated(self) -> datetime: ...
66
76
  @last_updated.setter
67
77
  def last_updated(self, value: datetime) -> None: ...
@@ -28,6 +28,10 @@ class LazyState(State):
28
28
  @cached_property
29
29
  def last_changed(self) -> datetime: ...
30
30
  @cached_property
31
+ def _last_reported_ts(self) -> float | None: ...
32
+ @cached_property
33
+ def last_reported(self) -> datetime: ...
34
+ @cached_property
31
35
  def last_updated(self) -> datetime: ...
32
36
  def as_dict(self) -> dict[str, Any]: ...
33
37
 
@@ -1,4 +1,4 @@
1
- from .db_schema import EventData as EventData, EventTypes as EventTypes, Events as Events, RecorderRuns as RecorderRuns, StateAttributes as StateAttributes, States as States, StatesMeta as StatesMeta, Statistics as Statistics, StatisticsRuns as StatisticsRuns, StatisticsShortTerm as StatisticsShortTerm
1
+ from .db_schema import EventData as EventData, EventTypes as EventTypes, Events as Events, MigrationChanges as MigrationChanges, RecorderRuns as RecorderRuns, StateAttributes as StateAttributes, States as States, StatesMeta as StatesMeta, Statistics as Statistics, StatisticsRuns as StatisticsRuns, StatisticsShortTerm as StatisticsShortTerm
2
2
  from collections.abc import Iterable
3
3
  from datetime import datetime
4
4
  from sqlalchemy.sql.lambdas import StatementLambdaElement as StatementLambdaElement
@@ -42,6 +42,7 @@ def has_states_context_ids_to_migrate() -> StatementLambdaElement: ...
42
42
  def has_event_type_to_migrate() -> StatementLambdaElement: ...
43
43
  def has_entity_ids_to_migrate() -> StatementLambdaElement: ...
44
44
  def find_states_context_ids_to_migrate(max_bind_vars: int) -> StatementLambdaElement: ...
45
+ def get_migration_changes() -> StatementLambdaElement: ...
45
46
  def find_event_types_to_purge() -> StatementLambdaElement: ...
46
47
  def find_entity_ids_to_purge() -> StatementLambdaElement: ...
47
48
  def delete_event_types_rows(event_type_ids: Iterable[int]) -> StatementLambdaElement: ...
@@ -4,10 +4,13 @@ from _typeshed import Incomplete
4
4
  class StatesManager:
5
5
  _pending: Incomplete
6
6
  _last_committed_id: Incomplete
7
+ _last_reported: Incomplete
7
8
  def __init__(self) -> None: ...
8
9
  def pop_pending(self, entity_id: str) -> States | None: ...
9
10
  def pop_committed(self, entity_id: str) -> int | None: ...
10
11
  def add_pending(self, entity_id: str, state: States) -> None: ...
12
+ def update_pending_last_reported(self, state_id: int, last_reported_timestamp: float) -> None: ...
13
+ def get_pending_last_reported_timestamp(self) -> dict[int, float]: ...
11
14
  def post_commit_pending(self) -> None: ...
12
15
  def reset(self) -> None: ...
13
16
  def evict_purged_state_ids(self, purged_state_ids: set[int]) -> None: ...
@@ -1,7 +1,6 @@
1
1
  from .const import DOMAIN as DOMAIN
2
2
  from .entity import RenaultDataEntity as RenaultDataEntity, RenaultDataEntityDescription as RenaultDataEntityDescription
3
3
  from .renault_hub import RenaultHub as RenaultHub
4
- from collections.abc import Callable as Callable
5
4
  from dataclasses import dataclass
6
5
  from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription
7
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
@@ -10,16 +9,11 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEnti
10
9
  from homeassistant.helpers.typing import StateType as StateType
11
10
  from renault_api.kamereon.models import KamereonVehicleBatteryStatusData
12
11
 
13
- @dataclass(frozen=True)
14
- class RenaultBinarySensorRequiredKeysMixin:
12
+ @dataclass(frozen=True, kw_only=True)
13
+ class RenaultBinarySensorEntityDescription(BinarySensorEntityDescription, RenaultDataEntityDescription):
15
14
  on_key: str
16
15
  on_value: StateType
17
- def __init__(self, on_key, on_value) -> None: ...
18
-
19
- @dataclass(frozen=True)
20
- class RenaultBinarySensorEntityDescription(BinarySensorEntityDescription, RenaultDataEntityDescription, RenaultBinarySensorRequiredKeysMixin):
21
- icon_fn: Callable[[RenaultBinarySensor], str] | None = ...
22
- def __init__(self, on_key, on_value, coordinator, *, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, translation_placeholders, unit_of_measurement, icon_fn) -> None: ...
16
+ def __init__(self, coordinator, *, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, translation_placeholders, unit_of_measurement, on_key, on_value) -> None: ...
23
17
 
24
18
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
25
19
 
@@ -27,7 +21,5 @@ class RenaultBinarySensor(RenaultDataEntity[KamereonVehicleBatteryStatusData], B
27
21
  entity_description: RenaultBinarySensorEntityDescription
28
22
  @property
29
23
  def is_on(self) -> bool | None: ...
30
- @property
31
- def icon(self) -> str | None: ...
32
24
 
33
25
  BINARY_SENSOR_TYPES: tuple[RenaultBinarySensorEntityDescription, ...]
@@ -9,15 +9,11 @@ from homeassistant.core import HomeAssistant as HomeAssistant
9
9
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
10
  from typing import Any
11
11
 
12
- @dataclass(frozen=True)
13
- class RenaultButtonRequiredKeysMixin:
12
+ @dataclass(frozen=True, kw_only=True)
13
+ class RenaultButtonEntityDescription(ButtonEntityDescription):
14
14
  async_press: Callable[[RenaultButtonEntity], Coroutine[Any, Any, Any]]
15
- def __init__(self, async_press) -> None: ...
16
-
17
- @dataclass(frozen=True)
18
- class RenaultButtonEntityDescription(ButtonEntityDescription, RenaultButtonRequiredKeysMixin):
19
15
  requires_electricity: bool = ...
20
- def __init__(self, async_press, *, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, translation_placeholders, unit_of_measurement, requires_electricity) -> None: ...
16
+ def __init__(self, *, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, translation_placeholders, unit_of_measurement, async_press, requires_electricity) -> None: ...
21
17
 
22
18
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
23
19
 
@@ -2,20 +2,19 @@ from .const import CONF_KAMEREON_ACCOUNT_ID as CONF_KAMEREON_ACCOUNT_ID, CONF_LO
2
2
  from .renault_hub import RenaultHub as RenaultHub
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Mapping
5
- from homeassistant import config_entries as config_entries
5
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
6
6
  from homeassistant.const import CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME
7
- from homeassistant.data_entry_flow import FlowResult as FlowResult
8
7
  from typing import Any
9
8
 
10
- class RenaultFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
9
+ class RenaultFlowHandler(ConfigFlow, domain=DOMAIN):
11
10
  VERSION: int
12
11
  _original_data: Incomplete
13
12
  renault_config: Incomplete
14
13
  renault_hub: Incomplete
15
14
  def __init__(self) -> None: ...
16
- async def async_step_user(self, user_input: dict[str, Any] | None = None) -> FlowResult: ...
17
- def _show_user_form(self, errors: dict[str, Any] | None = None) -> FlowResult: ...
18
- async def async_step_kamereon(self, user_input: dict[str, Any] | None = None) -> FlowResult: ...
19
- async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> FlowResult: ...
20
- async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> FlowResult: ...
21
- def _show_reauth_confirm_form(self, errors: dict[str, Any] | None = None) -> FlowResult: ...
15
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
16
+ def _show_user_form(self, errors: dict[str, Any] | None = None) -> ConfigFlowResult: ...
17
+ async def async_step_kamereon(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
18
+ async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
19
+ async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
20
+ def _show_reauth_confirm_form(self, errors: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -1,7 +1,6 @@
1
1
  from .const import DOMAIN as DOMAIN
2
2
  from .entity import RenaultDataEntity as RenaultDataEntity, RenaultDataEntityDescription as RenaultDataEntityDescription
3
3
  from .renault_hub import RenaultHub as RenaultHub
4
- from collections.abc import Callable as Callable
5
4
  from dataclasses import dataclass
6
5
  from homeassistant.components.select import SelectEntity as SelectEntity, SelectEntityDescription as SelectEntityDescription
7
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
@@ -10,15 +9,10 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEnti
10
9
  from homeassistant.helpers.typing import StateType as StateType
11
10
  from renault_api.kamereon.models import KamereonVehicleBatteryStatusData
12
11
 
13
- @dataclass(frozen=True)
14
- class RenaultSelectRequiredKeysMixin:
12
+ @dataclass(frozen=True, kw_only=True)
13
+ class RenaultSelectEntityDescription(SelectEntityDescription, RenaultDataEntityDescription):
15
14
  data_key: str
16
- icon_lambda: Callable[[RenaultSelectEntity], str]
17
- def __init__(self, data_key, icon_lambda) -> None: ...
18
-
19
- @dataclass(frozen=True)
20
- class RenaultSelectEntityDescription(SelectEntityDescription, RenaultDataEntityDescription, RenaultSelectRequiredKeysMixin):
21
- def __init__(self, data_key, icon_lambda, coordinator, *, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, translation_placeholders, unit_of_measurement, options) -> None: ...
15
+ def __init__(self, coordinator, *, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, translation_placeholders, unit_of_measurement, options, data_key) -> None: ...
22
16
 
23
17
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
24
18
 
@@ -28,10 +22,6 @@ class RenaultSelectEntity(RenaultDataEntity[KamereonVehicleBatteryStatusData], S
28
22
  def current_option(self) -> str | None: ...
29
23
  @property
30
24
  def data(self) -> StateType: ...
31
- @property
32
- def icon(self) -> str | None: ...
33
25
  async def async_select_option(self, option: str) -> None: ...
34
26
 
35
- def _get_charge_mode_icon(entity: RenaultSelectEntity) -> str: ...
36
-
37
27
  SENSOR_TYPES: tuple[RenaultSelectEntityDescription, ...]
@@ -15,19 +15,14 @@ from homeassistant.helpers.typing import StateType as StateType
15
15
  from homeassistant.util.dt import as_utc as as_utc, parse_datetime as parse_datetime
16
16
  from typing import Any, Generic
17
17
 
18
- @dataclass(frozen=True)
19
- class RenaultSensorRequiredKeysMixin(Generic[T]):
18
+ @dataclass(frozen=True, kw_only=True)
19
+ class RenaultSensorEntityDescription(SensorEntityDescription, RenaultDataEntityDescription, Generic[T]):
20
20
  data_key: str
21
21
  entity_class: type[RenaultSensor[T]]
22
- def __init__(self, data_key, entity_class) -> None: ...
23
-
24
- @dataclass(frozen=True)
25
- class RenaultSensorEntityDescription(SensorEntityDescription, RenaultDataEntityDescription, RenaultSensorRequiredKeysMixin[T]):
26
- icon_lambda: Callable[[RenaultSensor[T]], str] | None = ...
27
22
  condition_lambda: Callable[[RenaultVehicleProxy], bool] | None = ...
28
23
  requires_fuel: bool = ...
29
24
  value_lambda: Callable[[RenaultSensor[T]], StateType | datetime] | None = ...
30
- def __init__(self, data_key, entity_class, coordinator, *, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, translation_placeholders, unit_of_measurement, last_reset, native_unit_of_measurement, options, state_class, suggested_display_precision, suggested_unit_of_measurement, icon_lambda, condition_lambda, requires_fuel, value_lambda) -> None: ...
25
+ def __init__(self, coordinator, *, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, translation_placeholders, unit_of_measurement, last_reset, native_unit_of_measurement, options, state_class, suggested_display_precision, suggested_unit_of_measurement, data_key, entity_class, condition_lambda, requires_fuel, value_lambda) -> None: ...
31
26
 
32
27
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
33
28
 
@@ -36,15 +31,11 @@ class RenaultSensor(RenaultDataEntity[T], SensorEntity):
36
31
  @property
37
32
  def data(self) -> StateType: ...
38
33
  @property
39
- def icon(self) -> str | None: ...
40
- @property
41
34
  def native_value(self) -> StateType | datetime: ...
42
35
 
43
36
  def _get_charging_power(entity: RenaultSensor[T]) -> StateType: ...
44
37
  def _get_charge_state_formatted(entity: RenaultSensor[T]) -> str | None: ...
45
- def _get_charge_state_icon(entity: RenaultSensor[T]) -> str: ...
46
38
  def _get_plug_state_formatted(entity: RenaultSensor[T]) -> str | None: ...
47
- def _get_plug_state_icon(entity: RenaultSensor[T]) -> str: ...
48
39
  def _get_rounded_value(entity: RenaultSensor[T]) -> float: ...
49
40
  def _get_utc_value(entity: RenaultSensor[T]) -> datetime: ...
50
41
 
@@ -11,6 +11,7 @@ from homeassistant.helpers.entity_component import DEFAULT_SCAN_INTERVAL as DEFA
11
11
  from homeassistant.helpers.reload import async_integration_yaml_config as async_integration_yaml_config, async_reload_integration_platforms as async_reload_integration_platforms
12
12
  from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
13
13
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator
14
+ from homeassistant.util.async_ import create_eager_task as create_eager_task
14
15
 
15
16
  _LOGGER: Incomplete
16
17
  PLATFORMS: Incomplete
@@ -2,10 +2,10 @@ import RFXtrx as rfxtrxmod
2
2
  from . import DOMAIN as DOMAIN, DeviceTuple as DeviceTuple, get_device_id as get_device_id, get_device_tuple_from_identifiers as get_device_tuple_from_identifiers, get_rfx_object as get_rfx_object
3
3
  from .const import CONF_AUTOMATIC_ADD as CONF_AUTOMATIC_ADD, CONF_DATA_BITS as CONF_DATA_BITS, CONF_OFF_DELAY as CONF_OFF_DELAY, CONF_PROTOCOLS as CONF_PROTOCOLS, CONF_REPLACE_DEVICE as CONF_REPLACE_DEVICE, CONF_VENETIAN_BLIND_MODE as CONF_VENETIAN_BLIND_MODE, CONST_VENETIAN_BLIND_MODE_DEFAULT as CONST_VENETIAN_BLIND_MODE_DEFAULT, CONST_VENETIAN_BLIND_MODE_EU as CONST_VENETIAN_BLIND_MODE_EU, CONST_VENETIAN_BLIND_MODE_US as CONST_VENETIAN_BLIND_MODE_US, DEVICE_PACKET_TYPE_LIGHTING4 as DEVICE_PACKET_TYPE_LIGHTING4
4
4
  from _typeshed import Incomplete
5
- from homeassistant import config_entries as config_entries, data_entry_flow as data_entry_flow, exceptions as exceptions
6
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
7
6
  from homeassistant.const import CONF_COMMAND_OFF as CONF_COMMAND_OFF, CONF_COMMAND_ON as CONF_COMMAND_ON, CONF_DEVICE as CONF_DEVICE, CONF_DEVICES as CONF_DEVICES, CONF_DEVICE_ID as CONF_DEVICE_ID, CONF_HOST as CONF_HOST, CONF_PORT as CONF_PORT, CONF_TYPE as CONF_TYPE
8
7
  from homeassistant.core import State as State, callback as callback
8
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
9
9
  from homeassistant.helpers import device_registry as dr
10
10
  from homeassistant.helpers.event import async_track_state_change as async_track_state_change
11
11
  from typing import Any, TypedDict
@@ -20,7 +20,7 @@ class DeviceData(TypedDict):
20
20
 
21
21
  def none_or_int(value: str | None, base: int) -> int | None: ...
22
22
 
23
- class OptionsFlow(config_entries.OptionsFlow):
23
+ class RfxtrxOptionsFlow(OptionsFlow):
24
24
  _device_registry: dr.DeviceRegistry
25
25
  _device_entries: list[dr.DeviceEntry]
26
26
  _config_entry: Incomplete
@@ -30,9 +30,9 @@ class OptionsFlow(config_entries.OptionsFlow):
30
30
  _selected_device_event_code: Incomplete
31
31
  _selected_device_object: Incomplete
32
32
  def __init__(self, config_entry: ConfigEntry) -> None: ...
33
- async def async_step_init(self, user_input: dict[str, Any] | None = None) -> data_entry_flow.FlowResult: ...
34
- async def async_step_prompt_options(self, user_input: dict[str, Any] | None = None) -> data_entry_flow.FlowResult: ...
35
- async def async_step_set_device_options(self, user_input: dict[str, Any] | None = None) -> data_entry_flow.FlowResult: ...
33
+ async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
34
+ async def async_step_prompt_options(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
35
+ async def async_step_set_device_options(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
36
36
  async def _async_replace_device(self, replace_device: str) -> None: ...
37
37
  def _can_add_device(self, new_rfx_obj: rfxtrxmod.RFXtrxEvent) -> bool: ...
38
38
  def _can_replace_device(self, entry_id: str) -> bool: ...
@@ -40,12 +40,12 @@ class OptionsFlow(config_entries.OptionsFlow):
40
40
  def _get_device_data(self, entry_id: str) -> DeviceData: ...
41
41
  def update_config_data(self, global_options: dict[str, Any] | None = None, devices: dict[str, Any] | None = None) -> None: ...
42
42
 
43
- class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
43
+ class RfxtrxConfigFlow(ConfigFlow, domain=DOMAIN):
44
44
  VERSION: int
45
- async def async_step_user(self, user_input: dict[str, Any] | None = None) -> data_entry_flow.FlowResult: ...
46
- async def async_step_setup_network(self, user_input: dict[str, Any] | None = None) -> data_entry_flow.FlowResult: ...
47
- async def async_step_setup_serial(self, user_input: dict[str, Any] | None = None) -> data_entry_flow.FlowResult: ...
48
- async def async_step_setup_serial_manual_path(self, user_input: dict[str, Any] | None = None) -> data_entry_flow.FlowResult: ...
45
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
46
+ async def async_step_setup_network(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
47
+ async def async_step_setup_serial(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
48
+ async def async_step_setup_serial_manual_path(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
49
49
  async def async_validate_rfx(self, host: str | None = None, port: int | None = None, device: str | None = None) -> dict[str, Any]: ...
50
50
  @staticmethod
51
51
  def async_get_options_flow(config_entry: ConfigEntry) -> OptionsFlow: ...
@@ -53,4 +53,4 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
53
53
  def _test_transport(host: str | None, port: int | None, device: str | None) -> bool: ...
54
54
  def get_serial_by_id(dev_path: str) -> str: ...
55
55
 
56
- class CannotConnect(exceptions.HomeAssistantError): ...
56
+ class CannotConnect(HomeAssistantError): ...
@@ -0,0 +1,22 @@
1
+ from . import DeviceTuple as DeviceTuple, RfxtrxEntity as RfxtrxEntity, async_setup_platform_entry as async_setup_platform_entry
2
+ from RFXtrx import RFXtrxDevice as RFXtrxDevice, RFXtrxEvent as RFXtrxEvent
3
+ from _typeshed import Incomplete
4
+ from homeassistant.components.event import EventEntity as EventEntity
5
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
7
+ from homeassistant.helpers.entity import Entity as Entity
8
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
9
+ from homeassistant.util import slugify as slugify
10
+
11
+ _LOGGER: Incomplete
12
+
13
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
14
+
15
+ class RfxtrxEventEntity(RfxtrxEntity, EventEntity):
16
+ _attr_name: Incomplete
17
+ _attr_unique_id: Incomplete
18
+ _attr_event_types: Incomplete
19
+ _attr_translation_key: Incomplete
20
+ _value_attribute: Incomplete
21
+ def __init__(self, device: RFXtrxDevice, device_id: DeviceTuple, device_attribute: str, value_attribute: str, translation_key: str) -> None: ...
22
+ def _handle_event(self, event: RFXtrxEvent, device_id: DeviceTuple) -> None: ...
@@ -1,8 +1,7 @@
1
1
  from .const import DOMAIN as DOMAIN
2
- from homeassistant import config_entries as config_entries
3
- from homeassistant.data_entry_flow import FlowResult as FlowResult
2
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
4
3
  from typing import Any
5
4
 
6
- class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
5
+ class RhasspyConfigFlow(ConfigFlow, domain=DOMAIN):
7
6
  VERSION: int
8
- async def async_step_user(self, user_input: dict[str, Any] | None = None) -> FlowResult: ...
7
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -13,8 +13,8 @@ def async_get_calendar_event_from_pickup_event(pickup_event: RidwellPickupEvent)
13
13
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
14
14
 
15
15
  class RidwellCalendar(RidwellEntity, CalendarEntity):
16
- _attr_icon: str
17
16
  _attr_name: Incomplete
17
+ _attr_translation_key: str
18
18
  _attr_unique_id: Incomplete
19
19
  _event: Incomplete
20
20
  def __init__(self, coordinator: RidwellDataUpdateCoordinator, account: RidwellAccount) -> None: ...
@@ -2,21 +2,20 @@ import voluptuous as vol
2
2
  from .const import DOMAIN as DOMAIN, LOGGER as LOGGER
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Mapping
5
- from homeassistant import config_entries as config_entries
5
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
6
6
  from homeassistant.const import CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME
7
- from homeassistant.data_entry_flow import FlowResult as FlowResult
8
7
  from homeassistant.helpers import aiohttp_client as aiohttp_client
9
8
  from typing import Any
10
9
 
11
10
  STEP_REAUTH_CONFIRM_DATA_SCHEMA: Incomplete
12
11
  STEP_USER_DATA_SCHEMA: Incomplete
13
12
 
14
- class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
13
+ class RidwellConfigFlow(ConfigFlow, domain=DOMAIN):
15
14
  VERSION: int
16
15
  _password: Incomplete
17
16
  _username: Incomplete
18
17
  def __init__(self) -> None: ...
19
- async def _async_validate(self, error_step_id: str, error_schema: vol.Schema) -> FlowResult: ...
20
- async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> FlowResult: ...
21
- async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> FlowResult: ...
22
- async def async_step_user(self, user_input: dict[str, Any] | None = None) -> FlowResult: ...
18
+ async def _async_validate(self, error_step_id: str, error_schema: vol.Schema) -> ConfigFlowResult: ...
19
+ async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
20
+ async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
21
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -1,14 +1,13 @@
1
1
  from .const import ACCOUNT_HASH as ACCOUNT_HASH, DOMAIN as DOMAIN
2
2
  from _typeshed import Incomplete
3
- from homeassistant import config_entries as config_entries
3
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
4
4
  from homeassistant.const import CONF_EMAIL as CONF_EMAIL, CONF_PASSWORD as CONF_PASSWORD
5
- from homeassistant.data_entry_flow import FlowResult as FlowResult
6
5
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
7
6
  from typing import Any
8
7
 
9
8
  _LOGGER: Incomplete
10
9
  DATA_SCHEMA: Incomplete
11
10
 
12
- class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
11
+ class RitualsPerfumeGenieConfigFlow(ConfigFlow, domain=DOMAIN):
13
12
  VERSION: int
14
- async def async_step_user(self, user_input: dict[str, Any] | None = None) -> FlowResult: ...
13
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -11,16 +11,12 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEnti
11
11
  from pyrituals import Diffuser as Diffuser
12
12
  from typing import Any
13
13
 
14
- @dataclass(frozen=True)
15
- class RitualsEntityDescriptionMixin:
14
+ @dataclass(frozen=True, kw_only=True)
15
+ class RitualsSwitchEntityDescription(SwitchEntityDescription):
16
16
  is_on_fn: Callable[[Diffuser], bool]
17
17
  turn_on_fn: Callable[[Diffuser], Awaitable[None]]
18
18
  turn_off_fn: Callable[[Diffuser], Awaitable[None]]
19
- def __init__(self, is_on_fn, turn_on_fn, turn_off_fn) -> None: ...
20
-
21
- @dataclass(frozen=True)
22
- class RitualsSwitchEntityDescription(SwitchEntityDescription, RitualsEntityDescriptionMixin):
23
- def __init__(self, is_on_fn, turn_on_fn, turn_off_fn, *, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, translation_placeholders, unit_of_measurement) -> None: ...
19
+ def __init__(self, *, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, translation_placeholders, unit_of_measurement, is_on_fn, turn_on_fn, turn_off_fn) -> None: ...
24
20
 
25
21
  ENTITY_DESCRIPTIONS: Incomplete
26
22