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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (863) 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 +7 -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/config_flow.pyi +11 -12
  279. homeassistant-stubs/components/fritzbox/config_flow.pyi +7 -8
  280. homeassistant-stubs/components/fritzbox_callmonitor/config_flow.pyi +9 -10
  281. homeassistant-stubs/components/fronius/config_flow.pyi +5 -6
  282. homeassistant-stubs/components/frontend/__init__.pyi +1 -1
  283. homeassistant-stubs/components/fully_kiosk/button.pyi +3 -7
  284. homeassistant-stubs/components/fully_kiosk/config_flow.pyi +7 -8
  285. homeassistant-stubs/components/fully_kiosk/switch.pyi +3 -7
  286. homeassistant-stubs/components/generic_hygrostat/humidifier.pyi +5 -5
  287. homeassistant-stubs/components/generic_thermostat/climate.pyi +3 -3
  288. homeassistant-stubs/components/geo_location/trigger.pyi +2 -2
  289. homeassistant-stubs/components/geocaching/config_flow.pyi +4 -4
  290. homeassistant-stubs/components/geocaching/sensor.pyi +3 -7
  291. homeassistant-stubs/components/gios/config_flow.pyi +3 -4
  292. homeassistant-stubs/components/glances/config_flow.pyi +6 -7
  293. homeassistant-stubs/components/glances/sensor.pyi +3 -7
  294. homeassistant-stubs/components/goalzero/config_flow.pyi +5 -6
  295. homeassistant-stubs/components/google/config_flow.pyi +11 -12
  296. homeassistant-stubs/components/google_assistant_sdk/config_flow.pyi +8 -10
  297. homeassistant-stubs/components/google_sheets/config_flow.pyi +4 -5
  298. homeassistant-stubs/components/gpsd/config_flow.pyi +4 -5
  299. homeassistant-stubs/components/group/__init__.pyi +7 -102
  300. homeassistant-stubs/components/group/binary_sensor.pyi +1 -1
  301. homeassistant-stubs/components/group/config_flow.pyi +2 -2
  302. homeassistant-stubs/components/group/const.pyi +12 -0
  303. homeassistant-stubs/components/group/cover.pyi +1 -1
  304. homeassistant-stubs/components/group/entity.pyi +81 -0
  305. homeassistant-stubs/components/group/event.pyi +3 -3
  306. homeassistant-stubs/components/group/fan.pyi +1 -1
  307. homeassistant-stubs/components/group/light.pyi +1 -1
  308. homeassistant-stubs/components/group/lock.pyi +1 -1
  309. homeassistant-stubs/components/group/media_player.pyi +3 -3
  310. homeassistant-stubs/components/group/registry.pyi +23 -0
  311. homeassistant-stubs/components/group/sensor.pyi +1 -1
  312. homeassistant-stubs/components/group/switch.pyi +1 -1
  313. homeassistant-stubs/components/guardian/config_flow.pyi +7 -8
  314. homeassistant-stubs/components/hardkernel/config_flow.pyi +2 -3
  315. homeassistant-stubs/components/here_travel_time/__init__.pyi +1 -0
  316. homeassistant-stubs/components/here_travel_time/config_flow.pyi +17 -18
  317. homeassistant-stubs/components/here_travel_time/sensor.pyi +0 -1
  318. homeassistant-stubs/components/history/__init__.pyi +1 -1
  319. homeassistant-stubs/components/history/websocket_api.pyi +2 -2
  320. homeassistant-stubs/components/history_stats/coordinator.pyi +2 -3
  321. homeassistant-stubs/components/history_stats/data.pyi +2 -3
  322. homeassistant-stubs/components/holiday/config_flow.pyi +7 -5
  323. homeassistant-stubs/components/homeassistant/trigger.pyi +2 -1
  324. homeassistant-stubs/components/homeassistant/triggers/event.pyi +5 -1
  325. homeassistant-stubs/components/homeassistant/triggers/homeassistant.pyi +1 -0
  326. homeassistant-stubs/components/homeassistant/triggers/numeric_state.pyi +2 -2
  327. homeassistant-stubs/components/homeassistant/triggers/state.pyi +2 -2
  328. homeassistant-stubs/components/homeassistant/triggers/time.pyi +2 -2
  329. homeassistant-stubs/components/homeassistant_green/config_flow.pyi +4 -5
  330. homeassistant-stubs/components/homeassistant_hardware/silabs_multiprotocol_addon.pyi +29 -29
  331. homeassistant-stubs/components/homeassistant_sky_connect/__init__.pyi +1 -1
  332. homeassistant-stubs/components/homeassistant_sky_connect/config_flow.pyi +6 -5
  333. homeassistant-stubs/components/homeassistant_sky_connect/const.pyi +18 -0
  334. homeassistant-stubs/components/homeassistant_sky_connect/hardware.pyi +1 -1
  335. homeassistant-stubs/components/homeassistant_sky_connect/util.pyi +2 -0
  336. homeassistant-stubs/components/homeassistant_yellow/config_flow.pyi +9 -10
  337. homeassistant-stubs/components/homekit/__init__.pyi +9 -6
  338. homeassistant-stubs/components/homekit/accessories.pyi +5 -6
  339. homeassistant-stubs/components/homekit/config_flow.pyi +16 -18
  340. homeassistant-stubs/components/homekit/const.pyi +3 -0
  341. homeassistant-stubs/components/homekit/type_cameras.pyi +3 -4
  342. homeassistant-stubs/components/homekit/type_covers.pyi +2 -3
  343. homeassistant-stubs/components/homekit/type_humidifiers.pyi +2 -3
  344. homeassistant-stubs/components/homekit/util.pyi +2 -3
  345. homeassistant-stubs/components/homekit_controller/__init__.pyi +1 -0
  346. homeassistant-stubs/components/homekit_controller/config_flow.pyi +13 -13
  347. homeassistant-stubs/components/homekit_controller/select.pyi +3 -7
  348. homeassistant-stubs/components/homewizard/config_flow.pyi +7 -7
  349. homeassistant-stubs/components/homewizard/coordinator.pyi +0 -1
  350. homeassistant-stubs/components/homeworks/__init__.pyi +63 -0
  351. homeassistant-stubs/components/homeworks/binary_sensor.pyi +25 -0
  352. homeassistant-stubs/components/homeworks/button.pyi +18 -0
  353. homeassistant-stubs/components/homeworks/config_flow.pyi +61 -0
  354. homeassistant-stubs/components/homeworks/const.pyi +14 -0
  355. homeassistant-stubs/components/homeworks/light.pyi +34 -0
  356. homeassistant-stubs/components/http/__init__.pyi +4 -3
  357. homeassistant-stubs/components/http/ban.pyi +4 -3
  358. homeassistant-stubs/components/http/const.pyi +1 -2
  359. homeassistant-stubs/components/http/cors.pyi +1 -0
  360. homeassistant-stubs/components/http/static.pyi +0 -1
  361. homeassistant-stubs/components/huawei_lte/config_flow.pyi +12 -13
  362. homeassistant-stubs/components/huawei_lte/select.pyi +3 -7
  363. homeassistant-stubs/components/humidifier/__init__.pyi +8 -8
  364. homeassistant-stubs/components/hydrawise/config_flow.pyi +8 -8
  365. homeassistant-stubs/components/hyperion/config_flow.pyi +12 -13
  366. homeassistant-stubs/components/hyperion/const.pyi +2 -0
  367. homeassistant-stubs/components/hyperion/sensor.pyi +39 -0
  368. homeassistant-stubs/components/ibeacon/config_flow.pyi +7 -8
  369. homeassistant-stubs/components/ibeacon/device_tracker.pyi +1 -2
  370. homeassistant-stubs/components/ibeacon/sensor.pyi +3 -7
  371. homeassistant-stubs/components/idasen_desk/button.pyi +4 -8
  372. homeassistant-stubs/components/idasen_desk/config_flow.pyi +4 -5
  373. homeassistant-stubs/components/idasen_desk/cover.pyi +3 -3
  374. homeassistant-stubs/components/idasen_desk/sensor.pyi +3 -7
  375. homeassistant-stubs/components/image/__init__.pyi +2 -2
  376. homeassistant-stubs/components/image_processing/__init__.pyi +1 -1
  377. homeassistant-stubs/components/image_upload/__init__.pyi +1 -1
  378. homeassistant-stubs/components/imap/config_flow.pyi +10 -10
  379. homeassistant-stubs/components/integration/sensor.pyi +36 -5
  380. homeassistant-stubs/components/ios/__init__.pyi +1 -1
  381. homeassistant-stubs/components/ipp/config_flow.pyi +5 -6
  382. homeassistant-stubs/components/ipp/sensor.pyi +3 -7
  383. homeassistant-stubs/components/iqvia/config_flow.pyi +3 -4
  384. homeassistant-stubs/components/islamic_prayer_times/config_flow.pyi +7 -8
  385. homeassistant-stubs/components/isy994/config_flow.pyi +18 -17
  386. homeassistant-stubs/components/jellyfin/config_flow.pyi +5 -6
  387. homeassistant-stubs/components/jellyfin/sensor.pyi +3 -7
  388. homeassistant-stubs/components/jvc_projector/config_flow.pyi +4 -5
  389. homeassistant-stubs/components/jvc_projector/sensor.pyi +20 -0
  390. homeassistant-stubs/components/kaleidescape/config_flow.pyi +4 -5
  391. homeassistant-stubs/components/kaleidescape/sensor.pyi +3 -7
  392. homeassistant-stubs/components/knx/config_flow.pyi +18 -19
  393. homeassistant-stubs/components/knx/expose.pyi +3 -3
  394. homeassistant-stubs/components/kraken/config_flow.pyi +7 -8
  395. homeassistant-stubs/components/kraken/sensor.pyi +3 -7
  396. homeassistant-stubs/components/lacrosse_view/config_flow.pyi +5 -6
  397. homeassistant-stubs/components/lacrosse_view/sensor.pyi +3 -7
  398. homeassistant-stubs/components/lamarzocco/config_flow.pyi +16 -8
  399. homeassistant-stubs/components/lamarzocco/const.pyi +1 -0
  400. homeassistant-stubs/components/lamarzocco/coordinator.pyi +7 -2
  401. homeassistant-stubs/components/lametric/config_flow.pyi +11 -11
  402. homeassistant-stubs/components/laundrify/binary_sensor.pyi +1 -1
  403. homeassistant-stubs/components/laundrify/config_flow.pyi +5 -6
  404. homeassistant-stubs/components/lcn/config_flow.pyi +4 -5
  405. homeassistant-stubs/components/ld2410_ble/config_flow.pyi +4 -5
  406. homeassistant-stubs/components/led_ble/config_flow.pyi +4 -5
  407. homeassistant-stubs/components/lidarr/config_flow.pyi +4 -5
  408. homeassistant-stubs/components/lifx/config_flow.pyi +10 -11
  409. homeassistant-stubs/components/linear_garage_door/config_flow.pyi +5 -6
  410. homeassistant-stubs/components/litejet/config_flow.pyi +7 -8
  411. homeassistant-stubs/components/litterrobot/config_flow.pyi +5 -6
  412. homeassistant-stubs/components/litterrobot/switch.pyi +2 -5
  413. homeassistant-stubs/components/local_ip/config_flow.pyi +2 -3
  414. homeassistant-stubs/components/local_ip/sensor.pyi +1 -1
  415. homeassistant-stubs/components/local_todo/config_flow.pyi +3 -4
  416. homeassistant-stubs/components/logbook/helpers.pyi +1 -2
  417. homeassistant-stubs/components/logbook/rest_api.pyi +1 -1
  418. homeassistant-stubs/components/logbook/websocket_api.pyi +1 -0
  419. homeassistant-stubs/components/lookin/config_flow.pyi +5 -6
  420. homeassistant-stubs/components/luftdaten/config_flow.pyi +4 -5
  421. homeassistant-stubs/components/map/__init__.pyi +6 -1
  422. homeassistant-stubs/components/matter/config_flow.pyi +14 -14
  423. homeassistant-stubs/components/met_eireann/config_flow.pyi +3 -4
  424. homeassistant-stubs/components/met_eireann/weather.pyi +1 -5
  425. homeassistant-stubs/components/metoffice/config_flow.pyi +7 -6
  426. homeassistant-stubs/components/metoffice/weather.pyi +2 -5
  427. homeassistant-stubs/components/mikrotik/config_flow.pyi +11 -12
  428. homeassistant-stubs/components/min_max/sensor.pyi +3 -3
  429. homeassistant-stubs/components/minecraft_server/binary_sensor.pyi +2 -9
  430. homeassistant-stubs/components/minecraft_server/config_flow.pyi +3 -4
  431. homeassistant-stubs/components/minecraft_server/sensor.pyi +3 -16
  432. homeassistant-stubs/components/mjpeg/config_flow.pyi +3 -4
  433. homeassistant-stubs/components/modbus/__init__.pyi +2 -2
  434. homeassistant-stubs/components/modbus/base_platform.pyi +1 -3
  435. homeassistant-stubs/components/modbus/const.pyi +0 -2
  436. homeassistant-stubs/components/modbus/modbus.pyi +3 -5
  437. homeassistant-stubs/components/modbus/validators.pyi +7 -2
  438. homeassistant-stubs/components/modem_callerid/button.pyi +0 -1
  439. homeassistant-stubs/components/modem_callerid/config_flow.pyi +5 -6
  440. homeassistant-stubs/components/modem_callerid/const.pyi +0 -1
  441. homeassistant-stubs/components/modem_callerid/sensor.pyi +2 -2
  442. homeassistant-stubs/components/moon/config_flow.pyi +2 -3
  443. homeassistant-stubs/components/moon/sensor.pyi +0 -2
  444. homeassistant-stubs/components/mopeka/config_flow.pyi +4 -5
  445. homeassistant-stubs/components/motionmount/config_flow.pyi +6 -7
  446. homeassistant-stubs/components/mqtt/__init__.pyi +2 -2
  447. homeassistant-stubs/components/mqtt/climate.pyi +1 -1
  448. homeassistant-stubs/components/mqtt/config_flow.pyi +8 -9
  449. homeassistant-stubs/components/mqtt/const.pyi +0 -1
  450. homeassistant-stubs/components/mqtt/discovery.pyi +6 -4
  451. homeassistant-stubs/components/mqtt/event.pyi +2 -2
  452. homeassistant-stubs/components/mqtt/humidifier.pyi +1 -1
  453. homeassistant-stubs/components/mqtt/image.pyi +2 -2
  454. homeassistant-stubs/components/mqtt/light/schema_json.pyi +5 -2
  455. homeassistant-stubs/components/mqtt/mixins.pyi +7 -7
  456. homeassistant-stubs/components/mqtt/models.pyi +9 -3
  457. homeassistant-stubs/components/mqtt/sensor.pyi +4 -1
  458. homeassistant-stubs/components/mqtt/tag.pyi +3 -2
  459. homeassistant-stubs/components/mqtt/util.pyi +5 -1
  460. homeassistant-stubs/components/mysensors/config_flow.pyi +8 -10
  461. homeassistant-stubs/components/mysensors/gateway.pyi +1 -1
  462. homeassistant-stubs/components/myuplink/config_flow.pyi +4 -5
  463. homeassistant-stubs/components/myuplink/helpers.pyi +1 -0
  464. homeassistant-stubs/components/myuplink/number.pyi +1 -1
  465. homeassistant-stubs/components/myuplink/sensor.pyi +1 -1
  466. homeassistant-stubs/components/myuplink/switch.pyi +1 -1
  467. homeassistant-stubs/components/nam/config_flow.pyi +8 -9
  468. homeassistant-stubs/components/nam/sensor.pyi +3 -7
  469. homeassistant-stubs/components/nanoleaf/config_flow.pyi +12 -13
  470. homeassistant-stubs/components/nanoleaf/light.pyi +1 -1
  471. homeassistant-stubs/components/neato/config_flow.pyi +5 -6
  472. homeassistant-stubs/components/neato/vacuum.pyi +0 -1
  473. homeassistant-stubs/components/nest/config_flow.pyi +10 -11
  474. homeassistant-stubs/components/netatmo/config_flow.pyi +12 -13
  475. homeassistant-stubs/components/netatmo/sensor.pyi +3 -7
  476. homeassistant-stubs/components/network/network.pyi +1 -0
  477. homeassistant-stubs/components/nextdns/config_flow.pyi +4 -5
  478. homeassistant-stubs/components/nfandroidtv/config_flow.pyi +3 -4
  479. homeassistant-stubs/components/nightscout/config_flow.pyi +5 -5
  480. homeassistant-stubs/components/notify/legacy.pyi +1 -1
  481. homeassistant-stubs/components/notion/__init__.pyi +4 -29
  482. homeassistant-stubs/components/notion/binary_sensor.pyi +1 -0
  483. homeassistant-stubs/components/notion/config_flow.pyi +5 -7
  484. homeassistant-stubs/components/notion/coordinator.pyi +44 -0
  485. homeassistant-stubs/components/notion/diagnostics.pyi +1 -2
  486. homeassistant-stubs/components/notion/sensor.pyi +1 -0
  487. homeassistant-stubs/components/nut/__init__.pyi +10 -9
  488. homeassistant-stubs/components/nut/config_flow.pyi +12 -12
  489. homeassistant-stubs/components/onboarding/__init__.pyi +16 -2
  490. homeassistant-stubs/components/onboarding/views.pyi +8 -6
  491. homeassistant-stubs/components/oncue/config_flow.pyi +3 -4
  492. homeassistant-stubs/components/onewire/config_flow.pyi +5 -6
  493. homeassistant-stubs/components/open_meteo/config_flow.pyi +2 -3
  494. homeassistant-stubs/components/open_meteo/weather.pyi +0 -2
  495. homeassistant-stubs/components/openexchangerates/config_flow.pyi +5 -5
  496. homeassistant-stubs/components/opensky/config_flow.pyi +3 -4
  497. homeassistant-stubs/components/opensky/sensor.pyi +1 -1
  498. homeassistant-stubs/components/openuv/config_flow.pyi +6 -8
  499. homeassistant-stubs/components/oralb/config_flow.pyi +4 -5
  500. homeassistant-stubs/components/otbr/config_flow.pyi +3 -4
  501. homeassistant-stubs/components/overkiz/alarm_control_panel.pyi +3 -7
  502. homeassistant-stubs/components/overkiz/binary_sensor.pyi +3 -7
  503. homeassistant-stubs/components/overkiz/climate_entities/hitachi_air_to_air_heat_pump_ovp.pyi +1 -0
  504. homeassistant-stubs/components/overkiz/config_flow.pyi +10 -12
  505. homeassistant-stubs/components/overkiz/executor.pyi +1 -1
  506. homeassistant-stubs/components/overkiz/number.pyi +3 -7
  507. homeassistant-stubs/components/overkiz/select.pyi +3 -7
  508. homeassistant-stubs/components/overkiz/switch.pyi +3 -7
  509. homeassistant-stubs/components/p1_monitor/config_flow.pyi +2 -3
  510. homeassistant-stubs/components/peco/config_flow.pyi +4 -5
  511. homeassistant-stubs/components/peco/sensor.pyi +3 -7
  512. homeassistant-stubs/components/persistent_notification/__init__.pyi +2 -1
  513. homeassistant-stubs/components/pi_hole/binary_sensor.pyi +3 -7
  514. homeassistant-stubs/components/pi_hole/config_flow.pyi +6 -7
  515. homeassistant-stubs/components/ping/binary_sensor.pyi +2 -3
  516. homeassistant-stubs/components/ping/config_flow.pyi +8 -9
  517. homeassistant-stubs/components/ping/coordinator.pyi +1 -1
  518. homeassistant-stubs/components/ping/entity.pyi +12 -0
  519. homeassistant-stubs/components/ping/sensor.pyi +29 -0
  520. homeassistant-stubs/components/plugwise/config_flow.pyi +3 -4
  521. homeassistant-stubs/components/poolsense/config_flow.pyi +3 -4
  522. homeassistant-stubs/components/powerwall/config_flow.pyi +12 -11
  523. homeassistant-stubs/components/private_ble_device/config_flow.pyi +2 -3
  524. homeassistant-stubs/components/private_ble_device/device_tracker.pyi +1 -2
  525. homeassistant-stubs/components/private_ble_device/sensor.pyi +3 -7
  526. homeassistant-stubs/components/prometheus/__init__.pyi +4 -4
  527. homeassistant-stubs/components/proximity/config_flow.pyi +4 -5
  528. homeassistant-stubs/components/proximity/coordinator.pyi +3 -3
  529. homeassistant-stubs/components/prusalink/__init__.pyi +1 -1
  530. homeassistant-stubs/components/prusalink/config_flow.pyi +6 -5
  531. homeassistant-stubs/components/pure_energie/config_flow.pyi +4 -5
  532. homeassistant-stubs/components/pure_energie/sensor.pyi +3 -7
  533. homeassistant-stubs/components/purpleair/config_flow.pyi +14 -17
  534. homeassistant-stubs/components/pushbullet/config_flow.pyi +3 -4
  535. homeassistant-stubs/components/pvoutput/config_flow.pyi +4 -5
  536. homeassistant-stubs/components/qnap_qsw/button.pyi +3 -7
  537. homeassistant-stubs/components/qnap_qsw/config_flow.pyi +6 -6
  538. homeassistant-stubs/components/rabbitair/config_flow.pyi +2 -3
  539. homeassistant-stubs/components/radarr/config_flow.pyi +4 -5
  540. homeassistant-stubs/components/rainforest_raven/config_flow.pyi +5 -6
  541. homeassistant-stubs/components/rainmachine/config_flow.pyi +8 -10
  542. homeassistant-stubs/components/raspberry_pi/config_flow.pyi +2 -3
  543. homeassistant-stubs/components/rdw/config_flow.pyi +2 -3
  544. homeassistant-stubs/components/recollect_waste/calendar.pyi +1 -1
  545. homeassistant-stubs/components/recollect_waste/config_flow.pyi +7 -8
  546. homeassistant-stubs/components/recorder/core.pyi +4 -3
  547. homeassistant-stubs/components/recorder/db_schema.pyi +7 -0
  548. homeassistant-stubs/components/recorder/history/modern.pyi +4 -4
  549. homeassistant-stubs/components/recorder/migration.pyi +47 -5
  550. homeassistant-stubs/components/recorder/models/legacy.pyi +10 -0
  551. homeassistant-stubs/components/recorder/models/state.pyi +4 -0
  552. homeassistant-stubs/components/recorder/queries.pyi +2 -1
  553. homeassistant-stubs/components/recorder/table_managers/states.pyi +3 -0
  554. homeassistant-stubs/components/renault/binary_sensor.pyi +3 -11
  555. homeassistant-stubs/components/renault/button.pyi +3 -7
  556. homeassistant-stubs/components/renault/config_flow.pyi +8 -9
  557. homeassistant-stubs/components/renault/select.pyi +3 -13
  558. homeassistant-stubs/components/renault/sensor.pyi +3 -12
  559. homeassistant-stubs/components/rest/__init__.pyi +1 -0
  560. homeassistant-stubs/components/rfxtrx/config_flow.pyi +12 -12
  561. homeassistant-stubs/components/rfxtrx/event.pyi +22 -0
  562. homeassistant-stubs/components/rhasspy/config_flow.pyi +3 -4
  563. homeassistant-stubs/components/ridwell/calendar.pyi +1 -1
  564. homeassistant-stubs/components/ridwell/config_flow.pyi +6 -7
  565. homeassistant-stubs/components/rituals_perfume_genie/config_flow.pyi +3 -4
  566. homeassistant-stubs/components/rituals_perfume_genie/switch.pyi +3 -7
  567. homeassistant-stubs/components/roku/binary_sensor.pyi +3 -7
  568. homeassistant-stubs/components/roku/config_flow.pyi +6 -7
  569. homeassistant-stubs/components/roku/select.pyi +6 -10
  570. homeassistant-stubs/components/roku/sensor.pyi +3 -7
  571. homeassistant-stubs/components/romy/config_flow.pyi +5 -6
  572. homeassistant-stubs/components/romy/entity.pyi +11 -0
  573. homeassistant-stubs/components/romy/vacuum.pyi +4 -11
  574. homeassistant-stubs/components/rpi_power/config_flow.pyi +2 -2
  575. homeassistant-stubs/components/rtsp_to_webrtc/config_flow.pyi +9 -10
  576. homeassistant-stubs/components/ruuvi_gateway/config_flow.pyi +5 -6
  577. homeassistant-stubs/components/ruuvitag_ble/config_flow.pyi +4 -5
  578. homeassistant-stubs/components/samsungtv/config_flow.pyi +17 -17
  579. homeassistant-stubs/components/samsungtv/media_player.pyi +1 -0
  580. homeassistant-stubs/components/scrape/config_flow.pyi +1 -0
  581. homeassistant-stubs/components/search/__init__.pyi +41 -20
  582. homeassistant-stubs/components/sensibo/binary_sensor.pyi +6 -14
  583. homeassistant-stubs/components/sensibo/button.pyi +3 -7
  584. homeassistant-stubs/components/sensibo/config_flow.pyi +6 -7
  585. homeassistant-stubs/components/sensibo/number.pyi +3 -7
  586. homeassistant-stubs/components/sensibo/select.pyi +3 -7
  587. homeassistant-stubs/components/sensibo/sensor.pyi +6 -14
  588. homeassistant-stubs/components/sensibo/switch.pyi +3 -7
  589. homeassistant-stubs/components/sensibo/update.pyi +3 -7
  590. homeassistant-stubs/components/sensirion_ble/config_flow.pyi +4 -5
  591. homeassistant-stubs/components/sfr_box/binary_sensor.pyi +3 -7
  592. homeassistant-stubs/components/sfr_box/button.pyi +3 -7
  593. homeassistant-stubs/components/sfr_box/config_flow.pyi +6 -7
  594. homeassistant-stubs/components/sfr_box/sensor.pyi +3 -7
  595. homeassistant-stubs/components/shelly/__init__.pyi +2 -2
  596. homeassistant-stubs/components/shelly/binary_sensor.pyi +4 -4
  597. homeassistant-stubs/components/shelly/button.pyi +3 -7
  598. homeassistant-stubs/components/shelly/config_flow.pyi +15 -14
  599. homeassistant-stubs/components/shelly/const.pyi +2 -2
  600. homeassistant-stubs/components/shelly/coordinator.pyi +3 -1
  601. homeassistant-stubs/components/shelly/entity.pyi +4 -8
  602. homeassistant-stubs/components/shelly/event.pyi +2 -2
  603. homeassistant-stubs/components/shelly/light.pyi +29 -13
  604. homeassistant-stubs/components/shelly/number.pyi +1 -1
  605. homeassistant-stubs/components/shelly/sensor.pyi +4 -4
  606. homeassistant-stubs/components/shelly/switch.pyi +1 -1
  607. homeassistant-stubs/components/shelly/update.pyi +6 -14
  608. homeassistant-stubs/components/shelly/utils.pyi +8 -4
  609. homeassistant-stubs/components/shopping_list/config_flow.pyi +3 -4
  610. homeassistant-stubs/components/shopping_list/todo.pyi +0 -1
  611. homeassistant-stubs/components/simplepush/config_flow.pyi +3 -4
  612. homeassistant-stubs/components/simplisafe/config_flow.pyi +6 -8
  613. homeassistant-stubs/components/skybell/config_flow.pyi +5 -6
  614. homeassistant-stubs/components/skybell/sensor.pyi +3 -7
  615. homeassistant-stubs/components/slack/config_flow.pyi +3 -4
  616. homeassistant-stubs/components/sleepiq/button.pyi +3 -7
  617. homeassistant-stubs/components/sleepiq/config_flow.pyi +5 -6
  618. homeassistant-stubs/components/sleepiq/number.pyi +3 -7
  619. homeassistant-stubs/components/smhi/config_flow.pyi +6 -4
  620. homeassistant-stubs/components/smhi/weather.pyi +0 -2
  621. homeassistant-stubs/components/snooz/config_flow.pyi +8 -9
  622. homeassistant-stubs/components/sonarr/config_flow.pyi +6 -7
  623. homeassistant-stubs/components/speedtestdotnet/__init__.pyi +4 -2
  624. homeassistant-stubs/components/speedtestdotnet/config_flow.pyi +7 -8
  625. homeassistant-stubs/components/speedtestdotnet/const.pyi +0 -1
  626. homeassistant-stubs/components/speedtestdotnet/sensor.pyi +1 -2
  627. homeassistant-stubs/components/sql/config_flow.pyi +6 -7
  628. homeassistant-stubs/components/ssdp/__init__.pyi +9 -7
  629. homeassistant-stubs/components/starlink/binary_sensor.pyi +3 -7
  630. homeassistant-stubs/components/starlink/button.pyi +3 -7
  631. homeassistant-stubs/components/starlink/config_flow.pyi +2 -3
  632. homeassistant-stubs/components/starlink/coordinator.pyi +6 -1
  633. homeassistant-stubs/components/starlink/device_tracker.pyi +3 -7
  634. homeassistant-stubs/components/starlink/sensor.pyi +3 -7
  635. homeassistant-stubs/components/starlink/switch.pyi +3 -7
  636. homeassistant-stubs/components/starlink/time.pyi +33 -0
  637. homeassistant-stubs/components/statistics/sensor.pyi +2 -2
  638. homeassistant-stubs/components/steamist/config_flow.pyi +9 -10
  639. homeassistant-stubs/components/steamist/sensor.pyi +3 -7
  640. homeassistant-stubs/components/stookalert/config_flow.pyi +2 -3
  641. homeassistant-stubs/components/stream/__init__.pyi +1 -0
  642. homeassistant-stubs/components/stream/core.pyi +1 -1
  643. homeassistant-stubs/components/streamlabswater/config_flow.pyi +3 -4
  644. homeassistant-stubs/components/stt/legacy.pyi +1 -1
  645. homeassistant-stubs/components/suez_water/config_flow.pyi +3 -4
  646. homeassistant-stubs/components/sun/__init__.pyi +4 -64
  647. homeassistant-stubs/components/sun/config_flow.pyi +3 -4
  648. homeassistant-stubs/components/sun/const.pyi +11 -0
  649. homeassistant-stubs/components/sun/entity.pyi +64 -0
  650. homeassistant-stubs/components/sun/sensor.pyi +1 -1
  651. homeassistant-stubs/components/surepetcare/config_flow.pyi +5 -6
  652. homeassistant-stubs/components/switch/light.pyi +2 -2
  653. homeassistant-stubs/components/switchbee/config_flow.pyi +3 -4
  654. homeassistant-stubs/components/switchbot_cloud/config_flow.pyi +3 -4
  655. homeassistant-stubs/components/switcher_kis/button.pyi +3 -7
  656. homeassistant-stubs/components/switcher_kis/config_flow.pyi +5 -6
  657. homeassistant-stubs/components/switcher_kis/cover.pyi +1 -1
  658. homeassistant-stubs/components/switcher_kis/switch.pyi +2 -0
  659. homeassistant-stubs/components/synology_dsm/binary_sensor.pyi +2 -2
  660. homeassistant-stubs/components/synology_dsm/button.pyi +3 -7
  661. homeassistant-stubs/components/synology_dsm/camera.pyi +2 -2
  662. homeassistant-stubs/components/synology_dsm/config_flow.pyi +14 -15
  663. homeassistant-stubs/components/synology_dsm/entity.pyi +3 -7
  664. homeassistant-stubs/components/synology_dsm/sensor.pyi +2 -2
  665. homeassistant-stubs/components/synology_dsm/switch.pyi +2 -2
  666. homeassistant-stubs/components/synology_dsm/update.pyi +2 -2
  667. homeassistant-stubs/components/system_log/__init__.pyi +4 -2
  668. homeassistant-stubs/components/systemmonitor/__init__.pyi +3 -1
  669. homeassistant-stubs/components/systemmonitor/binary_sensor.pyi +14 -12
  670. homeassistant-stubs/components/systemmonitor/config_flow.pyi +2 -2
  671. homeassistant-stubs/components/systemmonitor/const.pyi +1 -1
  672. homeassistant-stubs/components/systemmonitor/coordinator.pyi +29 -46
  673. homeassistant-stubs/components/systemmonitor/diagnostics.pyi +2 -2
  674. homeassistant-stubs/components/systemmonitor/sensor.pyi +23 -20
  675. homeassistant-stubs/components/systemmonitor/util.pyi +1 -1
  676. homeassistant-stubs/components/tailscale/config_flow.pyi +4 -5
  677. homeassistant-stubs/components/tailwind/config_flow.pyi +9 -9
  678. homeassistant-stubs/components/tami4/config_flow.pyi +4 -5
  679. homeassistant-stubs/components/tautulli/config_flow.pyi +4 -5
  680. homeassistant-stubs/components/tautulli/sensor.pyi +6 -14
  681. homeassistant-stubs/components/technove/config_flow.pyi +4 -5
  682. homeassistant-stubs/components/tedee/config_flow.pyi +7 -5
  683. homeassistant-stubs/components/threshold/binary_sensor.pyi +2 -2
  684. homeassistant-stubs/components/tibber/config_flow.pyi +3 -4
  685. homeassistant-stubs/components/tile/config_flow.pyi +7 -8
  686. homeassistant-stubs/components/tile/device_tracker.pyi +1 -2
  687. homeassistant-stubs/components/tilt_ble/config_flow.pyi +4 -5
  688. homeassistant-stubs/components/tolo/__init__.pyi +3 -3
  689. homeassistant-stubs/components/tolo/binary_sensor.pyi +0 -2
  690. homeassistant-stubs/components/tolo/button.pyi +0 -1
  691. homeassistant-stubs/components/tolo/climate.pyi +6 -5
  692. homeassistant-stubs/components/tolo/config_flow.pyi +5 -6
  693. homeassistant-stubs/components/tolo/const.pyi +11 -7
  694. homeassistant-stubs/components/tolo/number.pyi +6 -11
  695. homeassistant-stubs/components/tolo/select.pyi +19 -7
  696. homeassistant-stubs/components/tolo/sensor.pyi +6 -10
  697. homeassistant-stubs/components/tolo/switch.pyi +30 -0
  698. homeassistant-stubs/components/tplink/config_flow.pyi +14 -16
  699. homeassistant-stubs/components/tplink/switch.pyi +0 -1
  700. homeassistant-stubs/components/tplink_omada/binary_sensor.pyi +17 -20
  701. homeassistant-stubs/components/tplink_omada/config_flow.pyi +6 -7
  702. homeassistant-stubs/components/tplink_omada/entity.pyi +3 -3
  703. homeassistant-stubs/components/tplink_omada/switch.pyi +54 -17
  704. homeassistant-stubs/components/tplink_omada/update.pyi +1 -1
  705. homeassistant-stubs/components/tractive/config_flow.pyi +5 -6
  706. homeassistant-stubs/components/tractive/sensor.pyi +3 -7
  707. homeassistant-stubs/components/tractive/switch.pyi +3 -7
  708. homeassistant-stubs/components/tradfri/config_flow.pyi +6 -7
  709. homeassistant-stubs/components/tradfri/sensor.pyi +3 -7
  710. homeassistant-stubs/components/trafikverket_camera/binary_sensor.pyi +3 -7
  711. homeassistant-stubs/components/trafikverket_camera/config_flow.pyi +7 -8
  712. homeassistant-stubs/components/trafikverket_camera/sensor.pyi +3 -7
  713. homeassistant-stubs/components/trafikverket_ferry/config_flow.pyi +6 -7
  714. homeassistant-stubs/components/trafikverket_ferry/sensor.pyi +3 -8
  715. homeassistant-stubs/components/trafikverket_train/config_flow.pyi +9 -10
  716. homeassistant-stubs/components/trafikverket_train/sensor.pyi +3 -7
  717. homeassistant-stubs/components/trafikverket_weatherstation/config_flow.pyi +6 -7
  718. homeassistant-stubs/components/trafikverket_weatherstation/sensor.pyi +3 -7
  719. homeassistant-stubs/components/transmission/__init__.pyi +3 -2
  720. homeassistant-stubs/components/transmission/config_flow.pyi +13 -13
  721. homeassistant-stubs/components/transmission/const.pyi +2 -0
  722. homeassistant-stubs/components/transmission/switch.pyi +3 -7
  723. homeassistant-stubs/components/trend/binary_sensor.pyi +2 -2
  724. homeassistant-stubs/components/tts/__init__.pyi +1 -0
  725. homeassistant-stubs/components/tts/legacy.pyi +1 -1
  726. homeassistant-stubs/components/twentemilieu/calendar.pyi +1 -1
  727. homeassistant-stubs/components/twentemilieu/config_flow.pyi +3 -4
  728. homeassistant-stubs/components/unifi/button.pyi +4 -8
  729. homeassistant-stubs/components/unifi/config_flow.pyi +16 -17
  730. homeassistant-stubs/components/unifi/device_tracker.pyi +4 -8
  731. homeassistant-stubs/components/unifi/entity.pyi +12 -15
  732. homeassistant-stubs/components/unifi/hub/config.pyi +31 -0
  733. homeassistant-stubs/components/unifi/hub/entity_loader.pyi +26 -0
  734. homeassistant-stubs/components/unifi/hub/hub.pyi +8 -28
  735. homeassistant-stubs/components/unifi/image.pyi +3 -8
  736. homeassistant-stubs/components/unifi/sensor.pyi +4 -10
  737. homeassistant-stubs/components/unifi/switch.pyi +6 -11
  738. homeassistant-stubs/components/unifi/update.pyi +4 -8
  739. homeassistant-stubs/components/unifiprotect/camera.pyi +5 -2
  740. homeassistant-stubs/components/unifiprotect/config_flow.pyi +16 -17
  741. homeassistant-stubs/components/unifiprotect/migrate.pyi +18 -4
  742. homeassistant-stubs/components/unifiprotect/repairs.pyi +17 -6
  743. homeassistant-stubs/components/unifiprotect/select.pyi +1 -0
  744. homeassistant-stubs/components/unifiprotect/services.pyi +8 -2
  745. homeassistant-stubs/components/unifiprotect/utils.pyi +2 -1
  746. homeassistant-stubs/components/upcloud/config_flow.pyi +8 -9
  747. homeassistant-stubs/components/uptime/config_flow.pyi +2 -3
  748. homeassistant-stubs/components/uptimerobot/config_flow.pyi +5 -6
  749. homeassistant-stubs/components/uptimerobot/sensor.pyi +0 -7
  750. homeassistant-stubs/components/uptimerobot/switch.pyi +1 -1
  751. homeassistant-stubs/components/usb/__init__.pyi +2 -1
  752. homeassistant-stubs/components/vacuum/__init__.pyi +1 -4
  753. homeassistant-stubs/components/vacuum/const.pyi +7 -0
  754. homeassistant-stubs/components/vacuum/group.pyi +1 -1
  755. homeassistant-stubs/components/vallox/binary_sensor.pyi +3 -7
  756. homeassistant-stubs/components/vallox/config_flow.pyi +3 -4
  757. homeassistant-stubs/components/vallox/date.pyi +22 -0
  758. homeassistant-stubs/components/vallox/number.pyi +3 -7
  759. homeassistant-stubs/components/vallox/switch.pyi +3 -7
  760. homeassistant-stubs/components/velbus/config_flow.pyi +6 -7
  761. homeassistant-stubs/components/vlc_telnet/config_flow.pyi +11 -11
  762. homeassistant-stubs/components/wallbox/config_flow.pyi +6 -6
  763. homeassistant-stubs/components/wallbox/number.pyi +3 -7
  764. homeassistant-stubs/components/waqi/__init__.pyi +0 -1
  765. homeassistant-stubs/components/waqi/config_flow.pyi +7 -11
  766. homeassistant-stubs/components/waqi/sensor.pyi +7 -22
  767. homeassistant-stubs/components/water_heater/const.pyi +6 -0
  768. homeassistant-stubs/components/water_heater/group.pyi +1 -1
  769. homeassistant-stubs/components/watttime/config_flow.pyi +10 -12
  770. homeassistant-stubs/components/weather/__init__.pyi +0 -13
  771. homeassistant-stubs/components/webhook/__init__.pyi +1 -2
  772. homeassistant-stubs/components/webostv/config_flow.pyi +8 -8
  773. homeassistant-stubs/components/websocket_api/commands.pyi +2 -3
  774. homeassistant-stubs/components/websocket_api/http.pyi +1 -1
  775. homeassistant-stubs/components/websocket_api/messages.pyi +4 -3
  776. homeassistant-stubs/components/wemo/__init__.pyi +3 -1
  777. homeassistant-stubs/components/wemo/config_flow.pyi +2 -3
  778. homeassistant-stubs/components/wemo/wemo_device.pyi +2 -1
  779. homeassistant-stubs/components/whois/config_flow.pyi +2 -3
  780. homeassistant-stubs/components/withings/__init__.pyi +13 -0
  781. homeassistant-stubs/components/withings/config_flow.pyi +4 -5
  782. homeassistant-stubs/components/wiz/config_flow.pyi +8 -8
  783. homeassistant-stubs/components/wled/config_flow.pyi +6 -10
  784. homeassistant-stubs/components/xiaomi_ble/config_flow.pyi +9 -10
  785. homeassistant-stubs/components/xiaomi_ble/const.pyi +9 -2
  786. homeassistant-stubs/components/xiaomi_ble/device_trigger.pyi +1 -1
  787. homeassistant-stubs/components/xiaomi_ble/event.pyi +1 -1
  788. homeassistant-stubs/components/yale_smart_alarm/config_flow.pyi +5 -6
  789. homeassistant-stubs/components/yalexs_ble/config_flow.pyi +14 -14
  790. homeassistant-stubs/components/yalexs_ble/sensor.pyi +3 -7
  791. homeassistant-stubs/components/youtube/config_flow.pyi +6 -7
  792. homeassistant-stubs/components/youtube/sensor.pyi +3 -7
  793. homeassistant-stubs/components/zeroconf/__init__.pyi +1 -1
  794. homeassistant-stubs/components/zodiac/config_flow.pyi +2 -3
  795. homeassistant-stubs/components/zodiac/sensor.pyi +0 -2
  796. homeassistant-stubs/components/zone/__init__.pyi +2 -2
  797. homeassistant-stubs/components/zone/config_flow.pyi +2 -2
  798. homeassistant-stubs/components/zone/trigger.pyi +2 -2
  799. homeassistant-stubs/components/zwave_js/api.pyi +1 -2
  800. homeassistant-stubs/components/zwave_js/binary_sensor.pyi +3 -7
  801. homeassistant-stubs/components/zwave_js/config_flow.pyi +39 -38
  802. homeassistant-stubs/components/zwave_js/humidifier.pyi +3 -7
  803. homeassistant-stubs/config.pyi +18 -3
  804. homeassistant-stubs/config_entries.pyi +52 -33
  805. homeassistant-stubs/const.pyi +11 -6
  806. homeassistant-stubs/core.pyi +62 -38
  807. homeassistant-stubs/data_entry_flow.pyi +38 -37
  808. homeassistant-stubs/exceptions.pyi +12 -5
  809. homeassistant-stubs/helpers/area_registry.pyi +7 -19
  810. homeassistant-stubs/helpers/category_registry.pyi +43 -0
  811. homeassistant-stubs/helpers/check_config.pyi +1 -1
  812. homeassistant-stubs/helpers/config_entry_flow.pyi +11 -12
  813. homeassistant-stubs/helpers/config_entry_oauth2_flow.pyi +6 -7
  814. homeassistant-stubs/helpers/config_validation.pyi +8 -1
  815. homeassistant-stubs/helpers/data_entry_flow.pyi +9 -5
  816. homeassistant-stubs/helpers/debounce.pyi +2 -1
  817. homeassistant-stubs/helpers/device_registry.pyi +9 -5
  818. homeassistant-stubs/helpers/discovery.pyi +2 -1
  819. homeassistant-stubs/helpers/discovery_flow.pyi +2 -2
  820. homeassistant-stubs/helpers/dispatcher.pyi +2 -10
  821. homeassistant-stubs/helpers/entity.pyi +9 -7
  822. homeassistant-stubs/helpers/entity_component.pyi +2 -1
  823. homeassistant-stubs/helpers/entity_platform.pyi +2 -2
  824. homeassistant-stubs/helpers/entity_registry.pyi +14 -9
  825. homeassistant-stubs/helpers/event.pyi +30 -30
  826. homeassistant-stubs/helpers/floor_registry.pyi +12 -24
  827. homeassistant-stubs/helpers/frame.pyi +11 -3
  828. homeassistant-stubs/helpers/http.pyi +6 -3
  829. homeassistant-stubs/helpers/importlib.pyi +11 -0
  830. homeassistant-stubs/helpers/integration_platform.pyi +8 -6
  831. homeassistant-stubs/helpers/issue_registry.pyi +2 -3
  832. homeassistant-stubs/helpers/label_registry.pyi +11 -23
  833. homeassistant-stubs/helpers/normalized_name_base_registry.pyi +22 -0
  834. homeassistant-stubs/helpers/ratelimit.pyi +2 -3
  835. homeassistant-stubs/helpers/registry.pyi +15 -0
  836. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +15 -15
  837. homeassistant-stubs/helpers/script.pyi +22 -8
  838. homeassistant-stubs/helpers/selector.pyi +9 -0
  839. homeassistant-stubs/helpers/service.pyi +9 -4
  840. homeassistant-stubs/helpers/storage.pyi +28 -4
  841. homeassistant-stubs/helpers/system_info.pyi +1 -0
  842. homeassistant-stubs/helpers/template.pyi +18 -3
  843. homeassistant-stubs/helpers/translation.pyi +2 -1
  844. homeassistant-stubs/helpers/trigger.pyi +1 -0
  845. homeassistant-stubs/helpers/typing.pyi +2 -5
  846. homeassistant-stubs/helpers/update_coordinator.pyi +5 -5
  847. homeassistant-stubs/loader.pyi +24 -5
  848. homeassistant-stubs/setup.pyi +21 -4
  849. homeassistant-stubs/util/async_.pyi +2 -2
  850. homeassistant-stubs/util/percentage.pyi +1 -1
  851. homeassistant-stubs/util/signal_type.pyi +20 -0
  852. homeassistant-stubs/util/unit_conversion.pyi +10 -0
  853. {homeassistant_stubs-2024.3.3.dist-info → homeassistant_stubs-2024.4.0b0.dist-info}/METADATA +4 -5
  854. {homeassistant_stubs-2024.3.3.dist-info → homeassistant_stubs-2024.4.0b0.dist-info}/RECORD +856 -817
  855. homeassistant-stubs/components/axis/device.pyi +0 -64
  856. homeassistant-stubs/components/binary_sensor/group.pyi +0 -5
  857. homeassistant-stubs/components/fan/group.pyi +0 -5
  858. homeassistant-stubs/components/humidifier/group.pyi +0 -5
  859. homeassistant-stubs/components/light/group.pyi +0 -5
  860. homeassistant-stubs/components/remote/group.pyi +0 -5
  861. homeassistant-stubs/components/switch/group.pyi +0 -5
  862. {homeassistant_stubs-2024.3.3.dist-info → homeassistant_stubs-2024.4.0b0.dist-info}/LICENSE +0 -0
  863. {homeassistant_stubs-2024.3.3.dist-info → homeassistant_stubs-2024.4.0b0.dist-info}/WHEEL +0 -0
@@ -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
 
@@ -9,14 +9,10 @@ from homeassistant.core import HomeAssistant as HomeAssistant
9
9
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
10
  from rokuecp.models import Device as RokuDevice
11
11
 
12
- @dataclass(frozen=True)
13
- class RokuBinarySensorEntityDescriptionMixin:
12
+ @dataclass(frozen=True, kw_only=True)
13
+ class RokuBinarySensorEntityDescription(BinarySensorEntityDescription):
14
14
  value_fn: Callable[[RokuDevice], bool | None]
15
- def __init__(self, value_fn) -> None: ...
16
-
17
- @dataclass(frozen=True)
18
- class RokuBinarySensorEntityDescription(BinarySensorEntityDescription, RokuBinarySensorEntityDescriptionMixin):
19
- def __init__(self, value_fn, *, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, translation_placeholders, unit_of_measurement) -> None: ...
15
+ 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, value_fn) -> None: ...
20
16
 
21
17
  BINARY_SENSORS: tuple[RokuBinarySensorEntityDescription, ...]
22
18
 
@@ -1,10 +1,9 @@
1
1
  from .const import DOMAIN as DOMAIN
2
2
  from _typeshed import Incomplete
3
3
  from homeassistant.components import ssdp as ssdp, zeroconf as zeroconf
4
- from homeassistant.config_entries import ConfigFlow as ConfigFlow
4
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
5
5
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_NAME as CONF_NAME
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
7
- from homeassistant.data_entry_flow import FlowResult as FlowResult
8
7
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
9
8
  from typing import Any
10
9
 
@@ -19,8 +18,8 @@ class RokuConfigFlow(ConfigFlow, domain=DOMAIN):
19
18
  VERSION: int
20
19
  discovery_info: dict[str, Any]
21
20
  def __init__(self) -> None: ...
22
- def _show_form(self, errors: dict[str, Any] | None = None) -> FlowResult: ...
23
- async def async_step_user(self, user_input: dict[str, Any] | None = None) -> FlowResult: ...
24
- async def async_step_homekit(self, discovery_info: zeroconf.ZeroconfServiceInfo) -> FlowResult: ...
25
- async def async_step_ssdp(self, discovery_info: ssdp.SsdpServiceInfo) -> FlowResult: ...
26
- async def async_step_discovery_confirm(self, user_input: dict | None = None) -> FlowResult: ...
21
+ def _show_form(self, errors: dict[str, Any] | None = None) -> ConfigFlowResult: ...
22
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
23
+ async def async_step_homekit(self, discovery_info: zeroconf.ZeroconfServiceInfo) -> ConfigFlowResult: ...
24
+ async def async_step_ssdp(self, discovery_info: ssdp.SsdpServiceInfo) -> ConfigFlowResult: ...
25
+ async def async_step_discovery_confirm(self, user_input: dict | None = None) -> ConfigFlowResult: ...
@@ -12,13 +12,6 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEnti
12
12
  from rokuecp import Roku as Roku
13
13
  from rokuecp.models import Device as RokuDevice
14
14
 
15
- @dataclass(frozen=True)
16
- class RokuSelectEntityDescriptionMixin:
17
- options_fn: Callable[[RokuDevice], list[str]]
18
- value_fn: Callable[[RokuDevice], str | None]
19
- set_fn: Callable[[RokuDevice, Roku, str], Awaitable[None]]
20
- def __init__(self, options_fn, value_fn, set_fn) -> None: ...
21
-
22
15
  def _get_application_name(device: RokuDevice) -> str | None: ...
23
16
  def _get_applications(device: RokuDevice) -> list[str]: ...
24
17
  def _get_channel_name(device: RokuDevice) -> str | None: ...
@@ -26,9 +19,12 @@ def _get_channels(device: RokuDevice) -> list[str]: ...
26
19
  async def _launch_application(device: RokuDevice, roku: Roku, value: str) -> None: ...
27
20
  async def _tune_channel(device: RokuDevice, roku: Roku, value: str) -> None: ...
28
21
 
29
- @dataclass(frozen=True)
30
- class RokuSelectEntityDescription(SelectEntityDescription, RokuSelectEntityDescriptionMixin):
31
- def __init__(self, options_fn, value_fn, set_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, options) -> None: ...
22
+ @dataclass(frozen=True, kw_only=True)
23
+ class RokuSelectEntityDescription(SelectEntityDescription):
24
+ options_fn: Callable[[RokuDevice], list[str]]
25
+ value_fn: Callable[[RokuDevice], str | None]
26
+ set_fn: Callable[[RokuDevice, Roku, str], Awaitable[None]]
27
+ 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, options, options_fn, value_fn, set_fn) -> None: ...
32
28
 
33
29
  ENTITIES: tuple[RokuSelectEntityDescription, ...]
34
30
  CHANNEL_ENTITY: Incomplete
@@ -10,14 +10,10 @@ from homeassistant.core import HomeAssistant as HomeAssistant
10
10
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
11
  from rokuecp.models import Device as RokuDevice
12
12
 
13
- @dataclass(frozen=True)
14
- class RokuSensorEntityDescriptionMixin:
13
+ @dataclass(frozen=True, kw_only=True)
14
+ class RokuSensorEntityDescription(SensorEntityDescription):
15
15
  value_fn: Callable[[RokuDevice], str | None]
16
- def __init__(self, value_fn) -> None: ...
17
-
18
- @dataclass(frozen=True)
19
- class RokuSensorEntityDescription(SensorEntityDescription, RokuSensorEntityDescriptionMixin):
20
- def __init__(self, value_fn, *, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, translation_placeholders, unit_of_measurement, last_reset, native_unit_of_measurement, options, state_class, suggested_display_precision, suggested_unit_of_measurement) -> 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, last_reset, native_unit_of_measurement, options, state_class, suggested_display_precision, suggested_unit_of_measurement, value_fn) -> None: ...
21
17
 
22
18
  SENSORS: tuple[RokuSensorEntityDescription, ...]
23
19