homeassistant-stubs 2025.7.4__py3-none-any.whl → 2025.8.0b1__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (481) hide show
  1. homeassistant-stubs/bootstrap.pyi +1 -1
  2. homeassistant-stubs/components/airnow/__init__.pyi +0 -1
  3. homeassistant-stubs/components/airnow/config_flow.pyi +2 -2
  4. homeassistant-stubs/components/airos/__init__.pyi +9 -0
  5. homeassistant-stubs/components/airos/config_flow.pyi +14 -0
  6. homeassistant-stubs/components/airos/const.pyi +5 -0
  7. homeassistant-stubs/components/airos/coordinator.pyi +16 -0
  8. homeassistant-stubs/components/airos/entity.pyi +11 -0
  9. homeassistant-stubs/components/airos/sensor.pyi +29 -0
  10. homeassistant-stubs/components/airq/const.pyi +0 -1
  11. homeassistant-stubs/components/airq/sensor.pyi +2 -2
  12. homeassistant-stubs/components/airthings/sensor.pyi +1 -1
  13. homeassistant-stubs/components/alexa_devices/__init__.pyi +6 -0
  14. homeassistant-stubs/components/alexa_devices/config_flow.pyi +10 -0
  15. homeassistant-stubs/components/alexa_devices/coordinator.pyi +4 -3
  16. homeassistant-stubs/components/alexa_devices/services.pyi +24 -0
  17. homeassistant-stubs/components/amberelectric/__init__.pyi +7 -1
  18. homeassistant-stubs/components/amberelectric/const.pyi +8 -1
  19. homeassistant-stubs/components/amberelectric/coordinator.pyi +1 -2
  20. homeassistant-stubs/components/amberelectric/helpers.pyi +6 -0
  21. homeassistant-stubs/components/amberelectric/sensor.pyi +2 -2
  22. homeassistant-stubs/components/amberelectric/services.pyi +15 -0
  23. homeassistant-stubs/components/analytics/__init__.pyi +1 -0
  24. homeassistant-stubs/components/analytics/analytics.pyi +3 -0
  25. homeassistant-stubs/components/analytics/http.pyi +10 -0
  26. homeassistant-stubs/components/analytics_insights/__init__.pyi +0 -1
  27. homeassistant-stubs/components/analytics_insights/config_flow.pyi +2 -2
  28. homeassistant-stubs/components/androidtv_remote/__init__.pyi +2 -6
  29. homeassistant-stubs/components/androidtv_remote/config_flow.pyi +6 -6
  30. homeassistant-stubs/components/androidtv_remote/diagnostics.pyi +1 -1
  31. homeassistant-stubs/components/androidtv_remote/entity.pyi +2 -2
  32. homeassistant-stubs/components/androidtv_remote/helpers.pyi +3 -1
  33. homeassistant-stubs/components/androidtv_remote/media_player.pyi +4 -4
  34. homeassistant-stubs/components/androidtv_remote/remote.pyi +1 -1
  35. homeassistant-stubs/components/assist_pipeline/__init__.pyi +2 -2
  36. homeassistant-stubs/components/assist_pipeline/const.pyi +0 -1
  37. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +2 -5
  38. homeassistant-stubs/components/awair/const.pyi +1 -0
  39. homeassistant-stubs/components/awair/sensor.pyi +1 -1
  40. homeassistant-stubs/components/backup/__init__.pyi +6 -2
  41. homeassistant-stubs/components/backup/coordinator.pyi +0 -1
  42. homeassistant-stubs/components/backup/manager.pyi +6 -3
  43. homeassistant-stubs/components/backup/onboarding.pyi +1 -1
  44. homeassistant-stubs/components/backup/services.pyi +7 -0
  45. homeassistant-stubs/components/backup/websocket.pyi +4 -1
  46. homeassistant-stubs/components/blue_current/__init__.pyi +5 -5
  47. homeassistant-stubs/components/blue_current/const.pyi +11 -0
  48. homeassistant-stubs/components/blue_current/switch.pyi +40 -0
  49. homeassistant-stubs/components/bosch_alarm/__init__.pyi +1 -1
  50. homeassistant-stubs/components/bosch_alarm/services.pyi +3 -2
  51. homeassistant-stubs/components/bring/__init__.pyi +5 -0
  52. homeassistant-stubs/components/bring/const.pyi +4 -0
  53. homeassistant-stubs/components/bring/services.pyi +14 -0
  54. homeassistant-stubs/components/cloud/backup.pyi +3 -3
  55. homeassistant-stubs/components/cloud/repairs.pyi +3 -3
  56. homeassistant-stubs/components/cloud/subscription.pyi +2 -1
  57. homeassistant-stubs/components/cloud/tts.pyi +2 -1
  58. homeassistant-stubs/components/command_line/sensor.pyi +0 -2
  59. homeassistant-stubs/components/demo/vacuum.pyi +0 -3
  60. homeassistant-stubs/components/derivative/__init__.pyi +5 -1
  61. homeassistant-stubs/components/derivative/config_flow.pyi +2 -0
  62. homeassistant-stubs/components/derivative/sensor.pyi +7 -4
  63. homeassistant-stubs/components/devolo_home_control/config_flow.pyi +3 -7
  64. homeassistant-stubs/components/devolo_home_control/entity.pyi +0 -1
  65. homeassistant-stubs/components/devolo_home_network/coordinator.pyi +2 -2
  66. homeassistant-stubs/components/devolo_home_network/device_tracker.pyi +2 -2
  67. homeassistant-stubs/components/devolo_home_network/entity.pyi +1 -1
  68. homeassistant-stubs/components/devolo_home_network/sensor.pyi +1 -1
  69. homeassistant-stubs/components/discovergy/__init__.pyi +1 -0
  70. homeassistant-stubs/components/discovergy/coordinator.pyi +1 -0
  71. homeassistant-stubs/components/dnsip/__init__.pyi +0 -1
  72. homeassistant-stubs/components/dnsip/config_flow.pyi +2 -2
  73. homeassistant-stubs/components/ecovacs/binary_sensor.pyi +13 -3
  74. homeassistant-stubs/components/ecovacs/sensor.pyi +13 -0
  75. homeassistant-stubs/components/ecovacs/vacuum.pyi +1 -7
  76. homeassistant-stubs/components/eheimdigital/config_flow.pyi +2 -1
  77. homeassistant-stubs/components/elevenlabs/config_flow.pyi +1 -1
  78. homeassistant-stubs/components/elevenlabs/const.pyi +0 -2
  79. homeassistant-stubs/components/elevenlabs/tts.pyi +2 -3
  80. homeassistant-stubs/components/enphase_envoy/__init__.pyi +0 -2
  81. homeassistant-stubs/components/enphase_envoy/config_flow.pyi +2 -2
  82. homeassistant-stubs/components/esphome/config_flow.pyi +2 -0
  83. homeassistant-stubs/components/esphome/encryption_key_storage.pyi +29 -0
  84. homeassistant-stubs/components/esphome/entity.pyi +3 -1
  85. homeassistant-stubs/components/esphome/entry_data.pyi +14 -6
  86. homeassistant-stubs/components/esphome/manager.pyi +3 -1
  87. homeassistant-stubs/components/feedreader/__init__.pyi +0 -1
  88. homeassistant-stubs/components/feedreader/config_flow.pyi +3 -3
  89. homeassistant-stubs/components/forecast_solar/__init__.pyi +0 -1
  90. homeassistant-stubs/components/forecast_solar/config_flow.pyi +2 -2
  91. homeassistant-stubs/components/fritz/__init__.pyi +0 -1
  92. homeassistant-stubs/components/fritz/config_flow.pyi +2 -2
  93. homeassistant-stubs/components/fritzbox_callmonitor/__init__.pyi +0 -1
  94. homeassistant-stubs/components/fritzbox_callmonitor/config_flow.pyi +2 -2
  95. homeassistant-stubs/components/frontend/__init__.pyi +1 -0
  96. homeassistant-stubs/components/generic_hygrostat/__init__.pyi +3 -1
  97. homeassistant-stubs/components/generic_hygrostat/config_flow.pyi +1 -0
  98. homeassistant-stubs/components/generic_hygrostat/humidifier.pyi +3 -3
  99. homeassistant-stubs/components/generic_thermostat/__init__.pyi +5 -1
  100. homeassistant-stubs/components/generic_thermostat/climate.pyi +3 -3
  101. homeassistant-stubs/components/generic_thermostat/config_flow.pyi +1 -0
  102. homeassistant-stubs/components/geo_location/trigger.pyi +0 -1
  103. homeassistant-stubs/components/gios/const.pyi +2 -0
  104. homeassistant-stubs/components/gios/sensor.pyi +1 -1
  105. homeassistant-stubs/components/google_assistant_sdk/application_credentials.pyi +1 -0
  106. homeassistant-stubs/components/google_cloud/const.pyi +1 -0
  107. homeassistant-stubs/components/google_cloud/stt.pyi +3 -2
  108. homeassistant-stubs/components/guardian/__init__.pyi +1 -1
  109. homeassistant-stubs/components/guardian/services.pyi +2 -1
  110. homeassistant-stubs/components/habitica/button.pyi +3 -4
  111. homeassistant-stubs/components/habitica/coordinator.pyi +2 -3
  112. homeassistant-stubs/components/habitica/entity.pyi +1 -1
  113. homeassistant-stubs/components/habitica/sensor.pyi +3 -18
  114. homeassistant-stubs/components/habitica/switch.pyi +4 -3
  115. homeassistant-stubs/components/habitica/util.pyi +2 -1
  116. homeassistant-stubs/components/heos/__init__.pyi +1 -1
  117. homeassistant-stubs/components/heos/config_flow.pyi +3 -0
  118. homeassistant-stubs/components/heos/services.pyi +3 -2
  119. homeassistant-stubs/components/here_travel_time/__init__.pyi +3 -1
  120. homeassistant-stubs/components/here_travel_time/config_flow.pyi +3 -2
  121. homeassistant-stubs/components/here_travel_time/const.pyi +1 -0
  122. homeassistant-stubs/components/here_travel_time/coordinator.pyi +1 -1
  123. homeassistant-stubs/components/here_travel_time/model.pyi +2 -1
  124. homeassistant-stubs/components/history_stats/__init__.pyi +5 -1
  125. homeassistant-stubs/components/history_stats/config_flow.pyi +14 -0
  126. homeassistant-stubs/components/history_stats/coordinator.pyi +3 -1
  127. homeassistant-stubs/components/history_stats/data.pyi +2 -1
  128. homeassistant-stubs/components/history_stats/helpers.pyi +1 -1
  129. homeassistant-stubs/components/history_stats/sensor.pyi +7 -4
  130. homeassistant-stubs/components/holiday/__init__.pyi +0 -1
  131. homeassistant-stubs/components/holiday/config_flow.pyi +2 -2
  132. homeassistant-stubs/components/home_connect/__init__.pyi +1 -1
  133. homeassistant-stubs/components/home_connect/services.pyi +3 -2
  134. homeassistant-stubs/components/homeassistant/__init__.pyi +2 -1
  135. homeassistant-stubs/components/homeassistant/triggers/time.pyi +2 -1
  136. homeassistant-stubs/components/homeassistant_hardware/coordinator.pyi +2 -1
  137. homeassistant-stubs/components/homee/__init__.pyi +1 -1
  138. homeassistant-stubs/components/homee/config_flow.pyi +5 -0
  139. homeassistant-stubs/components/homekit/__init__.pyi +2 -1
  140. homeassistant-stubs/components/http/__init__.pyi +1 -2
  141. homeassistant-stubs/components/huawei_lte/__init__.pyi +1 -2
  142. homeassistant-stubs/components/huawei_lte/config_flow.pyi +5 -4
  143. homeassistant-stubs/components/huawei_lte/const.pyi +1 -1
  144. homeassistant-stubs/components/huawei_lte/diagnostics.pyi +18 -0
  145. homeassistant-stubs/components/husqvarna_automower/button.pyi +2 -2
  146. homeassistant-stubs/components/husqvarna_automower/calendar.pyi +3 -0
  147. homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +15 -13
  148. homeassistant-stubs/components/husqvarna_automower/entity.pyi +2 -6
  149. homeassistant-stubs/components/husqvarna_automower/lawn_mower.pyi +2 -2
  150. homeassistant-stubs/components/husqvarna_automower/sensor.pyi +5 -0
  151. homeassistant-stubs/components/hydrawise/binary_sensor.pyi +1 -1
  152. homeassistant-stubs/components/hydrawise/const.pyi +1 -0
  153. homeassistant-stubs/components/hydrawise/coordinator.pyi +9 -2
  154. homeassistant-stubs/components/hydrawise/entity.pyi +1 -1
  155. homeassistant-stubs/components/hydrawise/sensor.pyi +1 -1
  156. homeassistant-stubs/components/hydrawise/switch.pyi +1 -1
  157. homeassistant-stubs/components/hydrawise/valve.pyi +1 -1
  158. homeassistant-stubs/components/hyperion/__init__.pyi +0 -1
  159. homeassistant-stubs/components/hyperion/config_flow.pyi +2 -2
  160. homeassistant-stubs/components/imgw_pib/sensor.pyi +7 -1
  161. homeassistant-stubs/components/immich/__init__.pyi +6 -0
  162. homeassistant-stubs/components/immich/media_source.pyi +1 -0
  163. homeassistant-stubs/components/immich/services.pyi +18 -0
  164. homeassistant-stubs/components/input_text/__init__.pyi +1 -1
  165. homeassistant-stubs/components/integration/__init__.pyi +5 -1
  166. homeassistant-stubs/components/integration/config_flow.pyi +1 -0
  167. homeassistant-stubs/components/integration/sensor.pyi +5 -6
  168. homeassistant-stubs/components/iron_os/__init__.pyi +0 -3
  169. homeassistant-stubs/components/iron_os/const.pyi +4 -0
  170. homeassistant-stubs/components/iron_os/coordinator.pyi +1 -1
  171. homeassistant-stubs/components/iron_os/number.pyi +20 -4
  172. homeassistant-stubs/components/iron_os/switch.pyi +2 -0
  173. homeassistant-stubs/components/isy994/__init__.pyi +0 -1
  174. homeassistant-stubs/components/isy994/config_flow.pyi +3 -3
  175. homeassistant-stubs/components/jellyfin/browse_media.pyi +2 -1
  176. homeassistant-stubs/components/jellyfin/media_player.pyi +5 -2
  177. homeassistant-stubs/components/jewish_calendar/binary_sensor.pyi +5 -15
  178. homeassistant-stubs/components/jewish_calendar/config_flow.pyi +2 -2
  179. homeassistant-stubs/components/jewish_calendar/entity.pyi +19 -5
  180. homeassistant-stubs/components/jewish_calendar/sensor.pyi +11 -7
  181. homeassistant-stubs/components/knx/__init__.pyi +6 -40
  182. homeassistant-stubs/components/knx/binary_sensor.pyi +3 -2
  183. homeassistant-stubs/components/knx/button.pyi +1 -1
  184. homeassistant-stubs/components/knx/climate.pyi +1 -1
  185. homeassistant-stubs/components/knx/config_flow.pyi +14 -21
  186. homeassistant-stubs/components/knx/const.pyi +1 -1
  187. homeassistant-stubs/components/knx/cover.pyi +3 -2
  188. homeassistant-stubs/components/knx/date.pyi +1 -1
  189. homeassistant-stubs/components/knx/datetime.pyi +1 -1
  190. homeassistant-stubs/components/knx/entity.pyi +1 -1
  191. homeassistant-stubs/components/knx/fan.pyi +1 -1
  192. homeassistant-stubs/components/knx/knx_module.pyi +43 -0
  193. homeassistant-stubs/components/knx/light.pyi +3 -2
  194. homeassistant-stubs/components/knx/notify.pyi +1 -1
  195. homeassistant-stubs/components/knx/number.pyi +1 -1
  196. homeassistant-stubs/components/knx/scene.pyi +1 -1
  197. homeassistant-stubs/components/knx/select.pyi +1 -1
  198. homeassistant-stubs/components/knx/sensor.pyi +1 -1
  199. homeassistant-stubs/components/knx/services.pyi +2 -2
  200. homeassistant-stubs/components/knx/storage/config_store.pyi +4 -0
  201. homeassistant-stubs/components/knx/storage/const.pyi +8 -7
  202. homeassistant-stubs/components/knx/storage/entity_store_schema.pyi +3 -10
  203. homeassistant-stubs/components/knx/storage/knx_selector.pyi +4 -0
  204. homeassistant-stubs/components/knx/storage/migration.pyi +5 -0
  205. homeassistant-stubs/components/knx/storage/util.pyi +16 -0
  206. homeassistant-stubs/components/knx/switch.pyi +3 -2
  207. homeassistant-stubs/components/knx/text.pyi +1 -1
  208. homeassistant-stubs/components/knx/time.pyi +1 -1
  209. homeassistant-stubs/components/knx/weather.pyi +1 -1
  210. homeassistant-stubs/components/knx/websocket.pyi +1 -1
  211. homeassistant-stubs/components/lamarzocco/config_flow.pyi +2 -2
  212. homeassistant-stubs/components/lcn/binary_sensor.pyi +1 -20
  213. homeassistant-stubs/components/lcn/helpers.pyi +1 -0
  214. homeassistant-stubs/components/lcn/light.pyi +2 -1
  215. homeassistant-stubs/components/letpot/coordinator.pyi +3 -4
  216. homeassistant-stubs/components/letpot/switch.pyi +1 -1
  217. homeassistant-stubs/components/letpot/time.pyi +1 -1
  218. homeassistant-stubs/components/lifx/const.pyi +1 -0
  219. homeassistant-stubs/components/lifx/coordinator.pyi +5 -1
  220. homeassistant-stubs/components/lifx/manager.pyi +1 -1
  221. homeassistant-stubs/components/linkplay/select.pyi +35 -0
  222. homeassistant-stubs/components/litterrobot/sensor.pyi +3 -0
  223. homeassistant-stubs/components/matrix/__init__.pyi +1 -1
  224. homeassistant-stubs/components/matrix/services.pyi +3 -2
  225. homeassistant-stubs/components/matter/entity.pyi +2 -2
  226. homeassistant-stubs/components/matter/number.pyi +29 -1
  227. homeassistant-stubs/components/matter/select.pyi +2 -2
  228. homeassistant-stubs/components/matter/vacuum.pyi +2 -0
  229. homeassistant-stubs/components/mcp_server/server.pyi +1 -1
  230. homeassistant-stubs/components/mealie/const.pyi +2 -0
  231. homeassistant-stubs/components/mealie/services.pyi +4 -1
  232. homeassistant-stubs/components/media_player/const.pyi +2 -2
  233. homeassistant-stubs/components/media_source/const.pyi +3 -0
  234. homeassistant-stubs/components/media_source/local_source.pyi +1 -1
  235. homeassistant-stubs/components/media_source/models.pyi +6 -2
  236. homeassistant-stubs/components/met_eireann/__init__.pyi +2 -17
  237. homeassistant-stubs/components/met_eireann/coordinator.pyi +28 -0
  238. homeassistant-stubs/components/met_eireann/weather.pyi +1 -3
  239. homeassistant-stubs/components/miele/__init__.pyi +5 -0
  240. homeassistant-stubs/components/miele/coordinator.pyi +1 -1
  241. homeassistant-stubs/components/miele/entity.pyi +2 -0
  242. homeassistant-stubs/components/miele/sensor.pyi +7 -6
  243. homeassistant-stubs/components/miele/services.pyi +24 -0
  244. homeassistant-stubs/components/miele/vacuum.pyi +0 -2
  245. homeassistant-stubs/components/modem_callerid/sensor.pyi +2 -2
  246. homeassistant-stubs/components/mold_indicator/__init__.pyi +8 -1
  247. homeassistant-stubs/components/mold_indicator/config_flow.pyi +2 -0
  248. homeassistant-stubs/components/mold_indicator/sensor.pyi +2 -2
  249. homeassistant-stubs/components/mqtt/climate.pyi +1 -37
  250. homeassistant-stubs/components/mqtt/config_flow.pyi +38 -6
  251. homeassistant-stubs/components/mqtt/const.pyi +33 -2
  252. homeassistant-stubs/components/mqtt/repairs.pyi +15 -0
  253. homeassistant-stubs/components/nasweb/const.pyi +1 -0
  254. homeassistant-stubs/components/nasweb/coordinator.pyi +3 -1
  255. homeassistant-stubs/components/nasweb/sensor.pyi +54 -0
  256. homeassistant-stubs/components/netatmo/climate.pyi +1 -1
  257. homeassistant-stubs/components/netatmo/const.pyi +1 -0
  258. homeassistant-stubs/components/nextdns/__init__.pyi +2 -3
  259. homeassistant-stubs/components/nextdns/coordinator.pyi +10 -2
  260. homeassistant-stubs/components/nordpool/const.pyi +1 -0
  261. homeassistant-stubs/components/nordpool/services.pyi +5 -1
  262. homeassistant-stubs/components/number/const.pyi +2 -1
  263. homeassistant-stubs/components/nut/__init__.pyi +0 -1
  264. homeassistant-stubs/components/onewire/__init__.pyi +0 -1
  265. homeassistant-stubs/components/onewire/config_flow.pyi +2 -2
  266. homeassistant-stubs/components/onkyo/__init__.pyi +2 -3
  267. homeassistant-stubs/components/onkyo/config_flow.pyi +9 -6
  268. homeassistant-stubs/components/onkyo/const.pyi +7 -65
  269. homeassistant-stubs/components/onkyo/media_player.pyi +16 -44
  270. homeassistant-stubs/components/onkyo/receiver.pyi +24 -25
  271. homeassistant-stubs/components/onkyo/services.pyi +3 -3
  272. homeassistant-stubs/components/onkyo/util.pyi +3 -0
  273. homeassistant-stubs/components/open_router/__init__.pyi +15 -0
  274. homeassistant-stubs/components/open_router/ai_task.pyi +17 -0
  275. homeassistant-stubs/components/open_router/config_flow.pyi +30 -0
  276. homeassistant-stubs/components/open_router/const.pyi +8 -0
  277. homeassistant-stubs/components/open_router/conversation.pyi +20 -0
  278. homeassistant-stubs/components/open_router/entity.pyi +33 -0
  279. homeassistant-stubs/components/openai_conversation/__init__.pyi +3 -2
  280. homeassistant-stubs/components/openai_conversation/ai_task.pyi +16 -0
  281. homeassistant-stubs/components/openai_conversation/config_flow.pyi +2 -3
  282. homeassistant-stubs/components/openai_conversation/const.pyi +9 -1
  283. homeassistant-stubs/components/openai_conversation/conversation.pyi +6 -22
  284. homeassistant-stubs/components/openai_conversation/entity.pyi +36 -0
  285. homeassistant-stubs/components/opower/__init__.pyi +8 -0
  286. homeassistant-stubs/components/opower/config_flow.pyi +25 -0
  287. homeassistant-stubs/components/opower/const.pyi +3 -0
  288. homeassistant-stubs/components/opower/coordinator.pyi +24 -0
  289. homeassistant-stubs/components/opower/sensor.pyi +35 -0
  290. homeassistant-stubs/components/pegel_online/__init__.pyi +1 -1
  291. homeassistant-stubs/components/pegel_online/sensor.pyi +2 -0
  292. homeassistant-stubs/components/pi_hole/__init__.pyi +6 -2
  293. homeassistant-stubs/components/pi_hole/config_flow.pyi +1 -2
  294. homeassistant-stubs/components/pi_hole/const.pyi +1 -0
  295. homeassistant-stubs/components/pi_hole/sensor.pyi +5 -0
  296. homeassistant-stubs/components/pi_hole/update.pyi +3 -3
  297. homeassistant-stubs/components/ping/__init__.pyi +0 -1
  298. homeassistant-stubs/components/ping/config_flow.pyi +3 -3
  299. homeassistant-stubs/components/plugwise/select.pyi +1 -1
  300. homeassistant-stubs/components/proximity/__init__.pyi +0 -1
  301. homeassistant-stubs/components/proximity/config_flow.pyi +3 -3
  302. homeassistant-stubs/components/purpleair/__init__.pyi +0 -1
  303. homeassistant-stubs/components/purpleair/config_flow.pyi +2 -2
  304. homeassistant-stubs/components/pyload/config_flow.pyi +4 -0
  305. homeassistant-stubs/components/recorder/pool.pyi +2 -1
  306. homeassistant-stubs/components/renault/__init__.pyi +1 -1
  307. homeassistant-stubs/components/renault/services.pyi +3 -2
  308. homeassistant-stubs/components/reolink/__init__.pyi +0 -1
  309. homeassistant-stubs/components/reolink/config_flow.pyi +2 -2
  310. homeassistant-stubs/components/reolink/number.pyi +1 -1
  311. homeassistant-stubs/components/reolink/sensor.pyi +1 -1
  312. homeassistant-stubs/components/rest/sensor.pyi +1 -3
  313. homeassistant-stubs/components/roborock/__init__.pyi +0 -1
  314. homeassistant-stubs/components/roborock/config_flow.pyi +2 -2
  315. homeassistant-stubs/components/roku/__init__.pyi +0 -1
  316. homeassistant-stubs/components/roku/config_flow.pyi +2 -2
  317. homeassistant-stubs/components/russound_rio/const.pyi +2 -0
  318. homeassistant-stubs/components/russound_rio/media_player.pyi +6 -0
  319. homeassistant-stubs/components/scrape/sensor.pyi +1 -2
  320. homeassistant-stubs/components/sensor/const.pyi +2 -1
  321. homeassistant-stubs/components/sensor/device_condition.pyi +1 -0
  322. homeassistant-stubs/components/sensor/device_trigger.pyi +1 -0
  323. homeassistant-stubs/components/shelly/button.pyi +2 -2
  324. homeassistant-stubs/components/shelly/climate.pyi +2 -2
  325. homeassistant-stubs/components/shelly/coordinator.pyi +5 -1
  326. homeassistant-stubs/components/shelly/entity.pyi +3 -0
  327. homeassistant-stubs/components/shelly/event.pyi +2 -2
  328. homeassistant-stubs/components/shelly/sensor.pyi +2 -2
  329. homeassistant-stubs/components/shelly/utils.pyi +2 -2
  330. homeassistant-stubs/components/sleepiq/const.pyi +2 -0
  331. homeassistant-stubs/components/sleepiq/number.pyi +7 -3
  332. homeassistant-stubs/components/sleepiq/select.pyi +15 -2
  333. homeassistant-stubs/components/smhi/coordinator.pyi +3 -0
  334. homeassistant-stubs/components/smhi/entity.pyi +3 -1
  335. homeassistant-stubs/components/smhi/sensor.pyi +30 -0
  336. homeassistant-stubs/components/smhi/weather.pyi +4 -2
  337. homeassistant-stubs/components/sonarr/__init__.pyi +0 -1
  338. homeassistant-stubs/components/sonarr/config_flow.pyi +2 -2
  339. homeassistant-stubs/components/speedtestdotnet/__init__.pyi +0 -1
  340. homeassistant-stubs/components/speedtestdotnet/config_flow.pyi +2 -2
  341. homeassistant-stubs/components/sql/__init__.pyi +0 -1
  342. homeassistant-stubs/components/sql/config_flow.pyi +2 -2
  343. homeassistant-stubs/components/squeezebox/__init__.pyi +3 -2
  344. homeassistant-stubs/components/squeezebox/const.pyi +2 -3
  345. homeassistant-stubs/components/squeezebox/coordinator.pyi +2 -2
  346. homeassistant-stubs/components/squeezebox/media_player.pyi +2 -2
  347. homeassistant-stubs/components/statistics/__init__.pyi +3 -1
  348. homeassistant-stubs/components/statistics/config_flow.pyi +1 -0
  349. homeassistant-stubs/components/statistics/sensor.pyi +5 -5
  350. homeassistant-stubs/components/stookwijzer/__init__.pyi +4 -0
  351. homeassistant-stubs/components/stookwijzer/const.pyi +2 -0
  352. homeassistant-stubs/components/stookwijzer/services.pyi +17 -0
  353. homeassistant-stubs/components/switch_as_x/__init__.pyi +2 -2
  354. homeassistant-stubs/components/switch_as_x/entity.pyi +1 -3
  355. homeassistant-stubs/components/switchbot_cloud/__init__.pyi +2 -0
  356. homeassistant-stubs/components/switchbot_cloud/const.pyi +1 -0
  357. homeassistant-stubs/components/switchbot_cloud/fan.pyi +26 -0
  358. homeassistant-stubs/components/switchbot_cloud/light.pyi +40 -0
  359. homeassistant-stubs/components/switchbot_cloud/vacuum.pyi +17 -1
  360. homeassistant-stubs/components/synology_dsm/__init__.pyi +0 -1
  361. homeassistant-stubs/components/synology_dsm/config_flow.pyi +2 -2
  362. homeassistant-stubs/components/tankerkoenig/__init__.pyi +10 -0
  363. homeassistant-stubs/components/tankerkoenig/binary_sensor.pyi +23 -0
  364. homeassistant-stubs/components/tankerkoenig/config_flow.pyi +33 -0
  365. homeassistant-stubs/components/tankerkoenig/const.pyi +13 -0
  366. homeassistant-stubs/components/tankerkoenig/coordinator.pyi +22 -0
  367. homeassistant-stubs/components/tankerkoenig/diagnostics.pyi +10 -0
  368. homeassistant-stubs/components/tankerkoenig/entity.pyi +11 -0
  369. homeassistant-stubs/components/tankerkoenig/sensor.pyi +28 -0
  370. homeassistant-stubs/components/threshold/__init__.pyi +5 -1
  371. homeassistant-stubs/components/threshold/binary_sensor.pyi +3 -4
  372. homeassistant-stubs/components/threshold/config_flow.pyi +1 -0
  373. homeassistant-stubs/components/time_date/config_flow.pyi +1 -2
  374. homeassistant-stubs/components/trafikverket_train/__init__.pyi +0 -1
  375. homeassistant-stubs/components/trafikverket_train/config_flow.pyi +2 -2
  376. homeassistant-stubs/components/trend/__init__.pyi +3 -1
  377. homeassistant-stubs/components/trend/binary_sensor.pyi +3 -4
  378. homeassistant-stubs/components/trend/config_flow.pyi +1 -0
  379. homeassistant-stubs/components/tts/entity.pyi +0 -2
  380. homeassistant-stubs/components/unifiprotect/__init__.pyi +5 -5
  381. homeassistant-stubs/components/unifiprotect/config_flow.pyi +5 -5
  382. homeassistant-stubs/components/unifiprotect/repairs.pyi +0 -6
  383. homeassistant-stubs/components/unifiprotect/services.pyi +1 -1
  384. homeassistant-stubs/components/uptime_kuma/__init__.pyi +14 -0
  385. homeassistant-stubs/components/uptime_kuma/config_flow.pyi +26 -0
  386. homeassistant-stubs/components/uptime_kuma/const.pyi +7 -0
  387. homeassistant-stubs/components/uptime_kuma/coordinator.pyi +30 -0
  388. homeassistant-stubs/components/uptime_kuma/diagnostics.pyi +9 -0
  389. homeassistant-stubs/components/uptime_kuma/sensor.pyi +46 -0
  390. homeassistant-stubs/components/uptime_kuma/update.pyi +39 -0
  391. homeassistant-stubs/components/vacuum/__init__.pyi +7 -0
  392. homeassistant-stubs/components/velbus/__init__.pyi +1 -1
  393. homeassistant-stubs/components/velbus/const.pyi +0 -1
  394. homeassistant-stubs/components/velbus/services.pyi +4 -4
  395. homeassistant-stubs/components/vodafone_station/__init__.pyi +0 -1
  396. homeassistant-stubs/components/vodafone_station/config_flow.pyi +2 -2
  397. homeassistant-stubs/components/volvo/__init__.pyi +15 -0
  398. homeassistant-stubs/components/volvo/api.pyi +14 -0
  399. homeassistant-stubs/components/volvo/application_credentials.pyi +9 -0
  400. homeassistant-stubs/components/volvo/config_flow.pyi +34 -0
  401. homeassistant-stubs/components/volvo/const.pyi +8 -0
  402. homeassistant-stubs/components/volvo/coordinator.pyi +46 -0
  403. homeassistant-stubs/components/volvo/entity.pyi +33 -0
  404. homeassistant-stubs/components/volvo/sensor.pyi +35 -0
  405. homeassistant-stubs/components/wallbox/__init__.pyi +4 -5
  406. homeassistant-stubs/components/wallbox/coordinator.pyi +8 -2
  407. homeassistant-stubs/components/wallbox/lock.pyi +5 -4
  408. homeassistant-stubs/components/wallbox/number.pyi +6 -5
  409. homeassistant-stubs/components/wallbox/select.pyi +4 -3
  410. homeassistant-stubs/components/wallbox/sensor.pyi +5 -4
  411. homeassistant-stubs/components/wallbox/switch.pyi +5 -4
  412. homeassistant-stubs/components/waqi/__init__.pyi +3 -5
  413. homeassistant-stubs/components/waqi/coordinator.pyi +3 -2
  414. homeassistant-stubs/components/waqi/sensor.pyi +2 -13
  415. homeassistant-stubs/components/webostv/__init__.pyi +0 -1
  416. homeassistant-stubs/components/webostv/config_flow.pyi +3 -3
  417. homeassistant-stubs/components/websocket_api/commands.pyi +4 -0
  418. homeassistant-stubs/components/wiz/fan.pyi +34 -0
  419. homeassistant-stubs/components/wled/__init__.pyi +0 -1
  420. homeassistant-stubs/components/wled/config_flow.pyi +2 -2
  421. homeassistant-stubs/components/workday/__init__.pyi +0 -1
  422. homeassistant-stubs/components/workday/config_flow.pyi +2 -2
  423. homeassistant-stubs/components/yale_smart_alarm/__init__.pyi +0 -1
  424. homeassistant-stubs/components/yale_smart_alarm/config_flow.pyi +2 -2
  425. homeassistant-stubs/components/yalexs_ble/lock.pyi +14 -2
  426. homeassistant-stubs/components/zone/condition.pyi +22 -0
  427. homeassistant-stubs/components/zone/trigger.pyi +2 -1
  428. homeassistant-stubs/components/zwave_js/__init__.pyi +10 -9
  429. homeassistant-stubs/components/zwave_js/api.pyi +35 -34
  430. homeassistant-stubs/components/zwave_js/binary_sensor.pyi +7 -7
  431. homeassistant-stubs/components/zwave_js/button.pyi +5 -5
  432. homeassistant-stubs/components/zwave_js/climate.pyi +5 -5
  433. homeassistant-stubs/components/zwave_js/config_flow.pyi +4 -3
  434. homeassistant-stubs/components/zwave_js/const.pyi +0 -2
  435. homeassistant-stubs/components/zwave_js/cover.pyi +7 -7
  436. homeassistant-stubs/components/zwave_js/device_automation_helpers.pyi +1 -1
  437. homeassistant-stubs/components/zwave_js/diagnostics.pyi +5 -5
  438. homeassistant-stubs/components/zwave_js/event.pyi +4 -4
  439. homeassistant-stubs/components/zwave_js/fan.pyi +6 -6
  440. homeassistant-stubs/components/zwave_js/helpers.pyi +6 -5
  441. homeassistant-stubs/components/zwave_js/humidifier.pyi +4 -4
  442. homeassistant-stubs/components/zwave_js/light.pyi +15 -5
  443. homeassistant-stubs/components/zwave_js/lock.pyi +3 -3
  444. homeassistant-stubs/components/zwave_js/models.pyi +12 -0
  445. homeassistant-stubs/components/zwave_js/number.pyi +6 -6
  446. homeassistant-stubs/components/zwave_js/select.pyi +8 -8
  447. homeassistant-stubs/components/zwave_js/sensor.pyi +10 -10
  448. homeassistant-stubs/components/zwave_js/siren.pyi +4 -4
  449. homeassistant-stubs/components/zwave_js/switch.pyi +7 -7
  450. homeassistant-stubs/components/zwave_js/triggers/event.pyi +1 -2
  451. homeassistant-stubs/components/zwave_js/triggers/trigger_helpers.pyi +1 -1
  452. homeassistant-stubs/components/zwave_js/update.pyi +28 -18
  453. homeassistant-stubs/config.pyi +0 -2
  454. homeassistant-stubs/config_entries.pyi +3 -0
  455. homeassistant-stubs/const.pyi +2 -0
  456. homeassistant-stubs/core.pyi +12 -8
  457. homeassistant-stubs/helpers/condition.pyi +25 -6
  458. homeassistant-stubs/helpers/config_validation.pyi +0 -2
  459. homeassistant-stubs/helpers/device.pyi +2 -0
  460. homeassistant-stubs/helpers/device_registry.pyi +11 -6
  461. homeassistant-stubs/helpers/entity.pyi +3 -1
  462. homeassistant-stubs/helpers/entity_platform.pyi +30 -9
  463. homeassistant-stubs/helpers/frame.pyi +1 -1
  464. homeassistant-stubs/helpers/helper_integration.pyi +2 -1
  465. homeassistant-stubs/helpers/llm.pyi +5 -1
  466. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +1 -0
  467. homeassistant-stubs/helpers/selector.pyi +42 -37
  468. homeassistant-stubs/helpers/service.pyi +9 -26
  469. homeassistant-stubs/helpers/target.pyi +59 -0
  470. homeassistant-stubs/helpers/trigger.pyi +3 -1
  471. homeassistant-stubs/helpers/trigger_template_entity.pyi +5 -1
  472. homeassistant-stubs/loader.pyi +2 -9
  473. homeassistant-stubs/runner.pyi +1 -0
  474. homeassistant-stubs/util/resource.pyi +7 -0
  475. homeassistant-stubs/util/unit_conversion.pyi +1 -1
  476. {homeassistant_stubs-2025.7.4.dist-info → homeassistant_stubs-2025.8.0b1.dist-info}/METADATA +2 -2
  477. {homeassistant_stubs-2025.7.4.dist-info → homeassistant_stubs-2025.8.0b1.dist-info}/RECORD +479 -411
  478. homeassistant-stubs/components/backup/basic_websocket.pyi +0 -12
  479. homeassistant-stubs/helpers/backup.pyi +0 -24
  480. {homeassistant_stubs-2025.7.4.dist-info → homeassistant_stubs-2025.8.0b1.dist-info}/WHEEL +0 -0
  481. {homeassistant_stubs-2025.7.4.dist-info → homeassistant_stubs-2025.8.0b1.dist-info}/licenses/LICENSE +0 -0
@@ -1,7 +1,7 @@
1
1
  from .const import CONF_PLAY_MEDIA_APP_ID as CONF_PLAY_MEDIA_APP_ID, DEFAULT_PLAY_MEDIA_APP_ID as DEFAULT_PLAY_MEDIA_APP_ID, DOMAIN as DOMAIN
2
2
  from .coordinator import RokuConfigEntry as RokuConfigEntry
3
3
  from _typeshed import Incomplete
4
- from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow, SOURCE_RECONFIGURE as SOURCE_RECONFIGURE
4
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlowWithReload as OptionsFlowWithReload, SOURCE_RECONFIGURE as SOURCE_RECONFIGURE
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
7
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
@@ -31,5 +31,5 @@ class RokuConfigFlow(ConfigFlow, domain=DOMAIN):
31
31
  @callback
32
32
  def async_get_options_flow(config_entry: RokuConfigEntry) -> RokuOptionsFlowHandler: ...
33
33
 
34
- class RokuOptionsFlowHandler(OptionsFlow):
34
+ class RokuOptionsFlowHandler(OptionsFlowWithReload):
35
35
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -1,4 +1,6 @@
1
1
  from _typeshed import Incomplete
2
2
 
3
3
  DOMAIN: str
4
+ RUSSOUND_MEDIA_TYPE_PRESET: str
5
+ SELECT_SOURCE_DELAY: float
4
6
  RUSSOUND_RIO_EXCEPTIONS: Incomplete
@@ -1,17 +1,21 @@
1
1
  import datetime as dt
2
2
  from . import RussoundConfigEntry as RussoundConfigEntry
3
+ from .const import DOMAIN as DOMAIN, RUSSOUND_MEDIA_TYPE_PRESET as RUSSOUND_MEDIA_TYPE_PRESET, SELECT_SOURCE_DELAY as SELECT_SOURCE_DELAY
3
4
  from .entity import RussoundBaseEntity as RussoundBaseEntity, command as command
4
5
  from _typeshed import Incomplete
5
6
  from aiorussound import Controller as Controller
6
7
  from aiorussound.models import Source as Source
7
8
  from homeassistant.components.media_player import MediaPlayerDeviceClass as MediaPlayerDeviceClass, MediaPlayerEntity as MediaPlayerEntity, MediaPlayerEntityFeature as MediaPlayerEntityFeature, MediaPlayerState as MediaPlayerState, MediaType as MediaType
8
9
  from homeassistant.core import HomeAssistant as HomeAssistant
10
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
9
11
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
12
+ from typing import Any
10
13
 
11
14
  _LOGGER: Incomplete
12
15
  PARALLEL_UPDATES: int
13
16
 
14
17
  async def async_setup_entry(hass: HomeAssistant, entry: RussoundConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
18
+ def _parse_preset_source_id(media_id: str) -> tuple[int | None, int]: ...
15
19
 
16
20
  class RussoundZoneDevice(RussoundBaseEntity, MediaPlayerEntity):
17
21
  _attr_device_class: Incomplete
@@ -63,3 +67,5 @@ class RussoundZoneDevice(RussoundBaseEntity, MediaPlayerEntity):
63
67
  async def async_mute_volume(self, mute: bool) -> None: ...
64
68
  @command
65
69
  async def async_media_seek(self, position: float) -> None: ...
70
+ @command
71
+ async def async_play_media(self, media_type: MediaType | str, media_id: str, **kwargs: Any) -> None: ...
@@ -2,8 +2,7 @@ from . import ScrapeConfigEntry as ScrapeConfigEntry
2
2
  from .const import CONF_INDEX as CONF_INDEX, CONF_SELECT as CONF_SELECT, DOMAIN as DOMAIN
3
3
  from .coordinator import ScrapeCoordinator as ScrapeCoordinator
4
4
  from _typeshed import Incomplete
5
- from homeassistant.components.sensor import CONF_STATE_CLASS as CONF_STATE_CLASS, SensorDeviceClass as SensorDeviceClass
6
- from homeassistant.components.sensor.helpers import async_parse_date_datetime as async_parse_date_datetime
5
+ from homeassistant.components.sensor import CONF_STATE_CLASS as CONF_STATE_CLASS
7
6
  from homeassistant.const import CONF_ATTRIBUTE as CONF_ATTRIBUTE, CONF_DEVICE_CLASS as CONF_DEVICE_CLASS, CONF_ICON as CONF_ICON, CONF_NAME as CONF_NAME, CONF_UNIQUE_ID as CONF_UNIQUE_ID, CONF_UNIT_OF_MEASUREMENT as CONF_UNIT_OF_MEASUREMENT, CONF_VALUE_TEMPLATE as CONF_VALUE_TEMPLATE
8
7
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
8
  from homeassistant.exceptions import PlatformNotReady as PlatformNotReady
@@ -1,6 +1,6 @@
1
1
  from _typeshed import Incomplete
2
2
  from enum import StrEnum
3
- from homeassistant.const import CONCENTRATION_MICROGRAMS_PER_CUBIC_METER as CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER as CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER, CONCENTRATION_PARTS_PER_BILLION as CONCENTRATION_PARTS_PER_BILLION, CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, DEGREE as DEGREE, LIGHT_LUX as LIGHT_LUX, PERCENTAGE as PERCENTAGE, SIGNAL_STRENGTH_DECIBELS as SIGNAL_STRENGTH_DECIBELS, SIGNAL_STRENGTH_DECIBELS_MILLIWATT as SIGNAL_STRENGTH_DECIBELS_MILLIWATT, UnitOfApparentPower as UnitOfApparentPower, UnitOfArea as UnitOfArea, UnitOfBloodGlucoseConcentration as UnitOfBloodGlucoseConcentration, UnitOfConductivity as UnitOfConductivity, UnitOfDataRate as UnitOfDataRate, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfEnergyDistance as UnitOfEnergyDistance, UnitOfFrequency as UnitOfFrequency, UnitOfInformation as UnitOfInformation, UnitOfIrradiance as UnitOfIrradiance, UnitOfLength as UnitOfLength, UnitOfMass as UnitOfMass, UnitOfPower as UnitOfPower, UnitOfPrecipitationDepth as UnitOfPrecipitationDepth, UnitOfPressure as UnitOfPressure, UnitOfReactiveEnergy as UnitOfReactiveEnergy, UnitOfReactivePower as UnitOfReactivePower, UnitOfSoundPressure as UnitOfSoundPressure, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime, UnitOfVolume as UnitOfVolume, UnitOfVolumeFlowRate as UnitOfVolumeFlowRate, UnitOfVolumetricFlux as UnitOfVolumetricFlux
3
+ from homeassistant.const import CONCENTRATION_GRAMS_PER_CUBIC_METER as CONCENTRATION_GRAMS_PER_CUBIC_METER, CONCENTRATION_MICROGRAMS_PER_CUBIC_METER as CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER as CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER, CONCENTRATION_PARTS_PER_BILLION as CONCENTRATION_PARTS_PER_BILLION, CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, DEGREE as DEGREE, LIGHT_LUX as LIGHT_LUX, PERCENTAGE as PERCENTAGE, SIGNAL_STRENGTH_DECIBELS as SIGNAL_STRENGTH_DECIBELS, SIGNAL_STRENGTH_DECIBELS_MILLIWATT as SIGNAL_STRENGTH_DECIBELS_MILLIWATT, UnitOfApparentPower as UnitOfApparentPower, UnitOfArea as UnitOfArea, UnitOfBloodGlucoseConcentration as UnitOfBloodGlucoseConcentration, UnitOfConductivity as UnitOfConductivity, UnitOfDataRate as UnitOfDataRate, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfEnergyDistance as UnitOfEnergyDistance, UnitOfFrequency as UnitOfFrequency, UnitOfInformation as UnitOfInformation, UnitOfIrradiance as UnitOfIrradiance, UnitOfLength as UnitOfLength, UnitOfMass as UnitOfMass, UnitOfPower as UnitOfPower, UnitOfPrecipitationDepth as UnitOfPrecipitationDepth, UnitOfPressure as UnitOfPressure, UnitOfReactiveEnergy as UnitOfReactiveEnergy, UnitOfReactivePower as UnitOfReactivePower, UnitOfSoundPressure as UnitOfSoundPressure, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime, UnitOfVolume as UnitOfVolume, UnitOfVolumeFlowRate as UnitOfVolumeFlowRate, UnitOfVolumetricFlux as UnitOfVolumetricFlux
4
4
  from homeassistant.util.unit_conversion import AreaConverter as AreaConverter, BaseUnitConverter as BaseUnitConverter, BloodGlucoseConcentrationConverter as BloodGlucoseConcentrationConverter, ConductivityConverter as ConductivityConverter, DataRateConverter as DataRateConverter, DistanceConverter as DistanceConverter, DurationConverter as DurationConverter, ElectricCurrentConverter as ElectricCurrentConverter, ElectricPotentialConverter as ElectricPotentialConverter, EnergyConverter as EnergyConverter, EnergyDistanceConverter as EnergyDistanceConverter, InformationConverter as InformationConverter, MassConverter as MassConverter, MassVolumeConcentrationConverter as MassVolumeConcentrationConverter, PowerConverter as PowerConverter, PressureConverter as PressureConverter, ReactiveEnergyConverter as ReactiveEnergyConverter, SpeedConverter as SpeedConverter, TemperatureConverter as TemperatureConverter, UnitlessRatioConverter as UnitlessRatioConverter, VolumeConverter as VolumeConverter, VolumeFlowRateConverter as VolumeFlowRateConverter
5
5
  from typing import Final
6
6
 
@@ -14,6 +14,7 @@ class SensorDeviceClass(StrEnum):
14
14
  DATE = 'date'
15
15
  ENUM = 'enum'
16
16
  TIMESTAMP = 'timestamp'
17
+ ABSOLUTE_HUMIDITY = 'absolute_humidity'
17
18
  APPARENT_POWER = 'apparent_power'
18
19
  AQI = 'aqi'
19
20
  AREA = 'area'
@@ -10,6 +10,7 @@ from homeassistant.helpers.entity import get_capability as get_capability, get_d
10
10
  from homeassistant.helpers.typing import ConfigType as ConfigType
11
11
 
12
12
  DEVICE_CLASS_NONE: str
13
+ CONF_IS_ABSOLUTE_HUMIDITY: str
13
14
  CONF_IS_APPARENT_POWER: str
14
15
  CONF_IS_AQI: str
15
16
  CONF_IS_AREA: str
@@ -10,6 +10,7 @@ from homeassistant.helpers.trigger import TriggerActionType as TriggerActionType
10
10
  from homeassistant.helpers.typing import ConfigType as ConfigType
11
11
 
12
12
  DEVICE_CLASS_NONE: str
13
+ CONF_ABSOLUTE_HUMIDITY: str
13
14
  CONF_APPARENT_POWER: str
14
15
  CONF_AQI: str
15
16
  CONF_AREA: str
@@ -1,6 +1,7 @@
1
1
  from .const import DOMAIN as DOMAIN, LOGGER as LOGGER, SHELLY_GAS_MODELS as SHELLY_GAS_MODELS
2
2
  from .coordinator import ShellyBlockCoordinator as ShellyBlockCoordinator, ShellyConfigEntry as ShellyConfigEntry, ShellyRpcCoordinator as ShellyRpcCoordinator
3
- from .utils import get_block_device_info as get_block_device_info, get_blu_trv_device_info as get_blu_trv_device_info, get_device_entry_gen as get_device_entry_gen, get_rpc_device_info as get_rpc_device_info, get_rpc_key_ids as get_rpc_key_ids
3
+ from .entity import get_entity_block_device_info as get_entity_block_device_info, get_entity_rpc_device_info as get_entity_rpc_device_info
4
+ from .utils import get_blu_trv_device_info as get_blu_trv_device_info, get_device_entry_gen as get_device_entry_gen, get_rpc_key_ids as get_rpc_key_ids
4
5
  from _typeshed import Incomplete
5
6
  from collections.abc import Callable as Callable
6
7
  from dataclasses import dataclass
@@ -9,7 +10,6 @@ from homeassistant.const import EntityCategory as EntityCategory
9
10
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
10
11
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
11
12
  from homeassistant.helpers import entity_registry as er
12
- from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC, DeviceInfo as DeviceInfo
13
13
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
14
14
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
15
15
  from homeassistant.util import slugify as slugify
@@ -1,7 +1,7 @@
1
1
  from .const import BLU_TRV_TEMPERATURE_SETTINGS as BLU_TRV_TEMPERATURE_SETTINGS, DOMAIN as DOMAIN, LOGGER as LOGGER, NOT_CALIBRATED_ISSUE_ID as NOT_CALIBRATED_ISSUE_ID, RPC_THERMOSTAT_SETTINGS as RPC_THERMOSTAT_SETTINGS, SHTRV_01_TEMPERATURE_SETTINGS as SHTRV_01_TEMPERATURE_SETTINGS
2
2
  from .coordinator import ShellyBlockCoordinator as ShellyBlockCoordinator, ShellyConfigEntry as ShellyConfigEntry, ShellyRpcCoordinator as ShellyRpcCoordinator
3
- from .entity import ShellyRpcEntity as ShellyRpcEntity, rpc_call as rpc_call
4
- from .utils import async_remove_shelly_entity as async_remove_shelly_entity, get_block_device_info as get_block_device_info, get_block_entity_name as get_block_entity_name, get_blu_trv_device_info as get_blu_trv_device_info, get_device_entry_gen as get_device_entry_gen, get_rpc_key_ids as get_rpc_key_ids, is_rpc_thermostat_internal_actuator as is_rpc_thermostat_internal_actuator
3
+ from .entity import ShellyRpcEntity as ShellyRpcEntity, get_entity_block_device_info as get_entity_block_device_info, rpc_call as rpc_call
4
+ from .utils import async_remove_shelly_entity as async_remove_shelly_entity, get_block_entity_name as get_block_entity_name, get_blu_trv_device_info as get_blu_trv_device_info, get_device_entry_gen as get_device_entry_gen, get_rpc_key_ids as get_rpc_key_ids, is_rpc_thermostat_internal_actuator as is_rpc_thermostat_internal_actuator
5
5
  from _typeshed import Incomplete
6
6
  from aioshelly.block_device import Block as Block
7
7
  from collections.abc import Mapping
@@ -26,7 +26,7 @@ class ShellyEntryData:
26
26
  rpc_poll: ShellyRpcPollingCoordinator | None = ...
27
27
  rpc_script_events: dict[int, list[str]] | None = ...
28
28
  rpc_supports_scripts: bool | None = ...
29
- rpc_zigbee_enabled: bool | None = ...
29
+ rpc_zigbee_firmware: bool | None = ...
30
30
  type ShellyConfigEntry = ConfigEntry[ShellyEntryData]
31
31
 
32
32
  class ShellyCoordinatorBase[_DeviceT: BlockDevice | RpcDevice](DataUpdateCoordinator[None]):
@@ -39,8 +39,12 @@ class ShellyCoordinatorBase[_DeviceT: BlockDevice | RpcDevice](DataUpdateCoordin
39
39
  _debounced_reload: Debouncer[Coroutine[Any, Any, None]]
40
40
  def __init__(self, hass: HomeAssistant, entry: ShellyConfigEntry, device: _DeviceT, update_interval: float) -> None: ...
41
41
  @cached_property
42
+ def configuration_url(self) -> str: ...
43
+ @cached_property
42
44
  def model(self) -> str: ...
43
45
  @cached_property
46
+ def model_name(self) -> str | None: ...
47
+ @cached_property
44
48
  def mac(self) -> str: ...
45
49
  @property
46
50
  def sw_version(self) -> str: ...
@@ -7,6 +7,7 @@ from collections.abc import Awaitable, Callable as Callable, Coroutine, Mapping
7
7
  from dataclasses import dataclass
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant, State as State, callback as callback
9
9
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
10
+ from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
10
11
  from homeassistant.helpers.entity import Entity as Entity, EntityDescription as EntityDescription
11
12
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
12
13
  from homeassistant.helpers.entity_registry import RegistryEntry as RegistryEntry
@@ -161,3 +162,5 @@ class ShellySleepingRpcAttributeEntity(ShellyRpcAttributeEntity):
161
162
  async def async_update(self) -> None: ...
162
163
 
163
164
  def get_entity_class(sensor_class: Callable, description: RpcEntityDescription) -> Callable: ...
165
+ def get_entity_block_device_info(coordinator: ShellyBlockCoordinator, block: Block | None = None) -> DeviceInfo: ...
166
+ def get_entity_rpc_device_info(coordinator: ShellyRpcCoordinator, key: str | None = None, emeter_phase: str | None = None) -> DeviceInfo: ...
@@ -1,7 +1,7 @@
1
1
  from .const import BASIC_INPUTS_EVENTS_TYPES as BASIC_INPUTS_EVENTS_TYPES, RPC_INPUTS_EVENTS_TYPES as RPC_INPUTS_EVENTS_TYPES, SHIX3_1_INPUTS_EVENTS_TYPES as SHIX3_1_INPUTS_EVENTS_TYPES
2
2
  from .coordinator import ShellyBlockCoordinator as ShellyBlockCoordinator, ShellyConfigEntry as ShellyConfigEntry, ShellyRpcCoordinator as ShellyRpcCoordinator
3
- from .entity import ShellyBlockEntity as ShellyBlockEntity
4
- from .utils import async_remove_orphaned_entities as async_remove_orphaned_entities, async_remove_shelly_entity as async_remove_shelly_entity, get_device_entry_gen as get_device_entry_gen, get_rpc_device_info as get_rpc_device_info, get_rpc_entity_name as get_rpc_entity_name, get_rpc_key_instances as get_rpc_key_instances, is_block_momentary_input as is_block_momentary_input, is_rpc_momentary_input as is_rpc_momentary_input
3
+ from .entity import ShellyBlockEntity as ShellyBlockEntity, get_entity_rpc_device_info as get_entity_rpc_device_info
4
+ from .utils import async_remove_orphaned_entities as async_remove_orphaned_entities, async_remove_shelly_entity as async_remove_shelly_entity, get_device_entry_gen as get_device_entry_gen, get_rpc_entity_name as get_rpc_entity_name, get_rpc_key_instances as get_rpc_key_instances, is_block_momentary_input as is_block_momentary_input, is_rpc_momentary_input as is_rpc_momentary_input
5
5
  from _typeshed import Incomplete
6
6
  from aioshelly.block_device import Block as Block
7
7
  from collections.abc import Callable as Callable
@@ -1,7 +1,7 @@
1
1
  from .const import CONF_SLEEP_PERIOD as CONF_SLEEP_PERIOD, ROLE_TO_DEVICE_CLASS_MAP as ROLE_TO_DEVICE_CLASS_MAP
2
2
  from .coordinator import ShellyBlockCoordinator as ShellyBlockCoordinator, ShellyConfigEntry as ShellyConfigEntry, ShellyRpcCoordinator as ShellyRpcCoordinator
3
- from .entity import BlockEntityDescription as BlockEntityDescription, RestEntityDescription as RestEntityDescription, RpcEntityDescription as RpcEntityDescription, ShellyBlockAttributeEntity as ShellyBlockAttributeEntity, ShellyRestAttributeEntity as ShellyRestAttributeEntity, ShellyRpcAttributeEntity as ShellyRpcAttributeEntity, ShellySleepingBlockAttributeEntity as ShellySleepingBlockAttributeEntity, ShellySleepingRpcAttributeEntity as ShellySleepingRpcAttributeEntity, async_setup_entry_attribute_entities as async_setup_entry_attribute_entities, async_setup_entry_rest as async_setup_entry_rest, async_setup_entry_rpc as async_setup_entry_rpc
4
- from .utils import async_remove_orphaned_entities as async_remove_orphaned_entities, get_blu_trv_device_info as get_blu_trv_device_info, get_device_entry_gen as get_device_entry_gen, get_device_uptime as get_device_uptime, get_rpc_device_info as get_rpc_device_info, get_shelly_air_lamp_life as get_shelly_air_lamp_life, get_virtual_component_ids as get_virtual_component_ids, is_rpc_wifi_stations_disabled as is_rpc_wifi_stations_disabled
3
+ from .entity import BlockEntityDescription as BlockEntityDescription, RestEntityDescription as RestEntityDescription, RpcEntityDescription as RpcEntityDescription, ShellyBlockAttributeEntity as ShellyBlockAttributeEntity, ShellyRestAttributeEntity as ShellyRestAttributeEntity, ShellyRpcAttributeEntity as ShellyRpcAttributeEntity, ShellySleepingBlockAttributeEntity as ShellySleepingBlockAttributeEntity, ShellySleepingRpcAttributeEntity as ShellySleepingRpcAttributeEntity, async_setup_entry_attribute_entities as async_setup_entry_attribute_entities, async_setup_entry_rest as async_setup_entry_rest, async_setup_entry_rpc as async_setup_entry_rpc, get_entity_rpc_device_info as get_entity_rpc_device_info
4
+ from .utils import async_remove_orphaned_entities as async_remove_orphaned_entities, get_blu_trv_device_info as get_blu_trv_device_info, get_device_entry_gen as get_device_entry_gen, get_device_uptime as get_device_uptime, get_shelly_air_lamp_life as get_shelly_air_lamp_life, get_virtual_component_ids as get_virtual_component_ids, is_rpc_wifi_stations_disabled as is_rpc_wifi_stations_disabled
5
5
  from _typeshed import Incomplete
6
6
  from aioshelly.block_device import Block as Block
7
7
  from collections.abc import Callable as Callable
@@ -77,8 +77,8 @@ async def get_rpc_script_event_types(device: RpcDevice, id: int) -> list[str]: .
77
77
  def is_rpc_exclude_from_relay(settings: dict[str, Any], status: dict[str, Any], channel: str) -> bool: ...
78
78
  def get_shelly_air_lamp_life(lamp_seconds: int) -> float: ...
79
79
  async def get_rpc_scripts_event_types(device: RpcDevice, ignore_scripts: list[str]) -> dict[int, list[str]]: ...
80
- def get_rpc_device_info(device: RpcDevice, mac: str, key: str | None = None, emeter_phase: str | None = None, suggested_area: str | None = None) -> DeviceInfo: ...
80
+ def get_rpc_device_info(device: RpcDevice, mac: str, configuration_url: str, model: str, model_name: str | None = None, key: str | None = None, emeter_phase: str | None = None, suggested_area: str | None = None) -> DeviceInfo: ...
81
81
  def get_blu_trv_device_info(config: dict[str, Any], ble_addr: str, parent_mac: str) -> DeviceInfo: ...
82
- def get_block_device_info(device: BlockDevice, mac: str, block: Block | None = None, suggested_area: str | None = None) -> DeviceInfo: ...
82
+ def get_block_device_info(device: BlockDevice, mac: str, configuration_url: str, model: str, model_name: str | None = None, block: Block | None = None, suggested_area: str | None = None) -> DeviceInfo: ...
83
83
  @callback
84
84
  def remove_stale_blu_trv_devices(hass: HomeAssistant, rpc_device: RpcDevice, entry: ConfigEntry) -> None: ...
@@ -3,6 +3,8 @@ from _typeshed import Incomplete
3
3
  DATA_SLEEPIQ: str
4
4
  DOMAIN: str
5
5
  ACTUATOR: str
6
+ CORE_CLIMATE_TIMER: str
7
+ CORE_CLIMATE: str
6
8
  BED: str
7
9
  FIRMNESS: str
8
10
  ICON_EMPTY: str
@@ -1,12 +1,13 @@
1
- from .const import ACTUATOR as ACTUATOR, DOMAIN as DOMAIN, ENTITY_TYPES as ENTITY_TYPES, FIRMNESS as FIRMNESS, FOOT_WARMING_TIMER as FOOT_WARMING_TIMER, ICON_OCCUPIED as ICON_OCCUPIED
1
+ from .const import ACTUATOR as ACTUATOR, CORE_CLIMATE_TIMER as CORE_CLIMATE_TIMER, DOMAIN as DOMAIN, ENTITY_TYPES as ENTITY_TYPES, FIRMNESS as FIRMNESS, FOOT_WARMING_TIMER as FOOT_WARMING_TIMER, ICON_OCCUPIED as ICON_OCCUPIED
2
2
  from .coordinator import SleepIQData as SleepIQData, SleepIQDataUpdateCoordinator as SleepIQDataUpdateCoordinator
3
3
  from .entity import SleepIQBedEntity as SleepIQBedEntity, sleeper_for_side as sleeper_for_side
4
4
  from _typeshed import Incomplete
5
- from asyncsleepiq import SleepIQActuator as SleepIQActuator, SleepIQBed as SleepIQBed, SleepIQFootWarmer as SleepIQFootWarmer, SleepIQSleeper as SleepIQSleeper
5
+ from asyncsleepiq import SleepIQActuator as SleepIQActuator, SleepIQBed as SleepIQBed, SleepIQCoreClimate, SleepIQFootWarmer as SleepIQFootWarmer, SleepIQSleeper as SleepIQSleeper
6
6
  from collections.abc import Callable as Callable, Coroutine
7
7
  from dataclasses import dataclass
8
- from homeassistant.components.number import NumberEntity as NumberEntity, NumberEntityDescription as NumberEntityDescription
8
+ from homeassistant.components.number import NumberDeviceClass as NumberDeviceClass, NumberEntity as NumberEntity, NumberEntityDescription as NumberEntityDescription
9
9
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
10
+ from homeassistant.const import UnitOfTime as UnitOfTime
10
11
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
11
12
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
12
13
  from typing import Any
@@ -27,6 +28,9 @@ def _get_sleeper_unique_id(bed: SleepIQBed, sleeper: SleepIQSleeper) -> str: ...
27
28
  async def _async_set_foot_warmer_time(foot_warmer: SleepIQFootWarmer, time: int) -> None: ...
28
29
  def _get_foot_warming_name(bed: SleepIQBed, foot_warmer: SleepIQFootWarmer) -> str: ...
29
30
  def _get_foot_warming_unique_id(bed: SleepIQBed, foot_warmer: SleepIQFootWarmer) -> str: ...
31
+ async def _async_set_core_climate_time(core_climate: SleepIQCoreClimate, time: int) -> None: ...
32
+ def _get_core_climate_name(bed: SleepIQBed, core_climate: SleepIQCoreClimate) -> str: ...
33
+ def _get_core_climate_unique_id(bed: SleepIQBed, core_climate: SleepIQCoreClimate) -> str: ...
30
34
 
31
35
  NUMBER_DESCRIPTIONS: dict[str, SleepIQNumberEntityDescription]
32
36
 
@@ -1,8 +1,8 @@
1
- from .const import DOMAIN as DOMAIN, FOOT_WARMER as FOOT_WARMER
1
+ from .const import CORE_CLIMATE as CORE_CLIMATE, DOMAIN as DOMAIN, FOOT_WARMER as FOOT_WARMER
2
2
  from .coordinator import SleepIQData as SleepIQData, SleepIQDataUpdateCoordinator as SleepIQDataUpdateCoordinator
3
3
  from .entity import SleepIQBedEntity as SleepIQBedEntity, SleepIQSleeperEntity as SleepIQSleeperEntity, sleeper_for_side as sleeper_for_side
4
4
  from _typeshed import Incomplete
5
- from asyncsleepiq import SleepIQBed as SleepIQBed, SleepIQFootWarmer as SleepIQFootWarmer, SleepIQPreset as SleepIQPreset
5
+ from asyncsleepiq import SleepIQBed as SleepIQBed, SleepIQCoreClimate as SleepIQCoreClimate, SleepIQFootWarmer as SleepIQFootWarmer, SleepIQPreset as SleepIQPreset
6
6
  from homeassistant.components.select import SelectEntity as SelectEntity
7
7
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
@@ -31,3 +31,16 @@ class SleepIQFootWarmingTempSelectEntity(SleepIQSleeperEntity[SleepIQDataUpdateC
31
31
  @callback
32
32
  def _async_update_attrs(self) -> None: ...
33
33
  async def async_select_option(self, option: str) -> None: ...
34
+
35
+ class SleepIQCoreTempSelectEntity(SleepIQSleeperEntity[SleepIQDataUpdateCoordinator], SelectEntity):
36
+ SLEEPIQ_TO_HA_CORE_TEMP_MAP: Incomplete
37
+ HA_TO_SLEEPIQ_CORE_TEMP_MAP: Incomplete
38
+ _attr_icon: str
39
+ _attr_options: Incomplete
40
+ _attr_translation_key: str
41
+ core_climate: Incomplete
42
+ def __init__(self, coordinator: SleepIQDataUpdateCoordinator, bed: SleepIQBed, core_climate: SleepIQCoreClimate) -> None: ...
43
+ _attr_current_option: Incomplete
44
+ @callback
45
+ def _async_update_attrs(self) -> None: ...
46
+ async def async_select_option(self, option: str) -> None: ...
@@ -13,9 +13,12 @@ type SMHIConfigEntry = ConfigEntry[SMHIDataUpdateCoordinator]
13
13
  class SMHIForecastData:
14
14
  daily: list[SMHIForecast]
15
15
  hourly: list[SMHIForecast]
16
+ twice_daily: list[SMHIForecast]
16
17
 
17
18
  class SMHIDataUpdateCoordinator(DataUpdateCoordinator[SMHIForecastData]):
18
19
  config_entry: SMHIConfigEntry
19
20
  _smhi_api: Incomplete
20
21
  def __init__(self, hass: HomeAssistant, config_entry: SMHIConfigEntry) -> None: ...
21
22
  async def _async_update_data(self) -> SMHIForecastData: ...
23
+ @property
24
+ def current(self) -> SMHIForecast: ...
@@ -3,15 +3,17 @@ from .const import DOMAIN as DOMAIN
3
3
  from .coordinator import SMHIDataUpdateCoordinator as SMHIDataUpdateCoordinator
4
4
  from _typeshed import Incomplete
5
5
  from abc import abstractmethod
6
+ from homeassistant.core import callback as callback
6
7
  from homeassistant.helpers.device_registry import DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
7
8
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
8
9
 
9
10
  class SmhiWeatherBaseEntity(CoordinatorEntity[SMHIDataUpdateCoordinator], metaclass=abc.ABCMeta):
10
11
  _attr_attribution: str
11
12
  _attr_has_entity_name: bool
12
- _attr_name: Incomplete
13
13
  _attr_unique_id: Incomplete
14
14
  _attr_device_info: Incomplete
15
15
  def __init__(self, latitude: str, longitude: str, coordinator: SMHIDataUpdateCoordinator) -> None: ...
16
+ @callback
17
+ def _handle_coordinator_update(self) -> None: ...
16
18
  @abstractmethod
17
19
  def update_entity_data(self) -> None: ...
@@ -0,0 +1,30 @@
1
+ from .coordinator import SMHIConfigEntry as SMHIConfigEntry, SMHIDataUpdateCoordinator as SMHIDataUpdateCoordinator
2
+ from .entity import SmhiWeatherBaseEntity as SmhiWeatherBaseEntity
3
+ from _typeshed import Incomplete
4
+ from collections.abc import Callable as Callable
5
+ from dataclasses import dataclass
6
+ from datetime import datetime
7
+ from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription
8
+ from homeassistant.const import CONF_LATITUDE as CONF_LATITUDE, CONF_LOCATION as CONF_LOCATION, CONF_LONGITUDE as CONF_LONGITUDE, PERCENTAGE as PERCENTAGE
9
+ from homeassistant.core import HomeAssistant as HomeAssistant
10
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
11
+ from homeassistant.helpers.typing import StateType as StateType
12
+
13
+ PARALLEL_UPDATES: int
14
+
15
+ def get_percentage_values(entity: SMHISensor, key: str) -> int | None: ...
16
+
17
+ @dataclass(frozen=True, kw_only=True)
18
+ class SMHISensorEntityDescription(SensorEntityDescription):
19
+ value_fn: Callable[[SMHISensor], StateType | datetime]
20
+
21
+ SENSOR_DESCRIPTIONS: tuple[SMHISensorEntityDescription, ...]
22
+
23
+ async def async_setup_entry(hass: HomeAssistant, entry: SMHIConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
24
+
25
+ class SMHISensor(SmhiWeatherBaseEntity, SensorEntity):
26
+ entity_description: SMHISensorEntityDescription
27
+ _attr_unique_id: Incomplete
28
+ def __init__(self, latitude: str, longitude: str, coordinator: SMHIDataUpdateCoordinator, entity_description: SMHISensorEntityDescription) -> None: ...
29
+ _attr_native_value: Incomplete
30
+ def update_entity_data(self) -> None: ...
@@ -3,7 +3,7 @@ from .coordinator import SMHIConfigEntry as SMHIConfigEntry
3
3
  from .entity import SmhiWeatherBaseEntity as SmhiWeatherBaseEntity
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Mapping
6
- from homeassistant.components.weather import ATTR_CONDITION_CLEAR_NIGHT as ATTR_CONDITION_CLEAR_NIGHT, ATTR_CONDITION_CLOUDY as ATTR_CONDITION_CLOUDY, ATTR_CONDITION_EXCEPTIONAL as ATTR_CONDITION_EXCEPTIONAL, ATTR_CONDITION_FOG as ATTR_CONDITION_FOG, ATTR_CONDITION_HAIL as ATTR_CONDITION_HAIL, ATTR_CONDITION_LIGHTNING as ATTR_CONDITION_LIGHTNING, ATTR_CONDITION_LIGHTNING_RAINY as ATTR_CONDITION_LIGHTNING_RAINY, ATTR_CONDITION_PARTLYCLOUDY as ATTR_CONDITION_PARTLYCLOUDY, ATTR_CONDITION_POURING as ATTR_CONDITION_POURING, ATTR_CONDITION_RAINY as ATTR_CONDITION_RAINY, ATTR_CONDITION_SNOWY as ATTR_CONDITION_SNOWY, ATTR_CONDITION_SNOWY_RAINY as ATTR_CONDITION_SNOWY_RAINY, ATTR_CONDITION_SUNNY as ATTR_CONDITION_SUNNY, ATTR_CONDITION_WINDY as ATTR_CONDITION_WINDY, ATTR_CONDITION_WINDY_VARIANT as ATTR_CONDITION_WINDY_VARIANT, ATTR_FORECAST_CLOUD_COVERAGE as ATTR_FORECAST_CLOUD_COVERAGE, ATTR_FORECAST_CONDITION as ATTR_FORECAST_CONDITION, ATTR_FORECAST_HUMIDITY as ATTR_FORECAST_HUMIDITY, ATTR_FORECAST_NATIVE_PRECIPITATION as ATTR_FORECAST_NATIVE_PRECIPITATION, ATTR_FORECAST_NATIVE_PRESSURE as ATTR_FORECAST_NATIVE_PRESSURE, ATTR_FORECAST_NATIVE_TEMP as ATTR_FORECAST_NATIVE_TEMP, ATTR_FORECAST_NATIVE_TEMP_LOW as ATTR_FORECAST_NATIVE_TEMP_LOW, ATTR_FORECAST_NATIVE_WIND_GUST_SPEED as ATTR_FORECAST_NATIVE_WIND_GUST_SPEED, ATTR_FORECAST_NATIVE_WIND_SPEED as ATTR_FORECAST_NATIVE_WIND_SPEED, ATTR_FORECAST_TIME as ATTR_FORECAST_TIME, ATTR_FORECAST_WIND_BEARING as ATTR_FORECAST_WIND_BEARING, Forecast as Forecast, SingleCoordinatorWeatherEntity as SingleCoordinatorWeatherEntity, WeatherEntityFeature as WeatherEntityFeature
6
+ from homeassistant.components.weather import ATTR_CONDITION_CLEAR_NIGHT as ATTR_CONDITION_CLEAR_NIGHT, ATTR_CONDITION_CLOUDY as ATTR_CONDITION_CLOUDY, ATTR_CONDITION_EXCEPTIONAL as ATTR_CONDITION_EXCEPTIONAL, ATTR_CONDITION_FOG as ATTR_CONDITION_FOG, ATTR_CONDITION_HAIL as ATTR_CONDITION_HAIL, ATTR_CONDITION_LIGHTNING as ATTR_CONDITION_LIGHTNING, ATTR_CONDITION_LIGHTNING_RAINY as ATTR_CONDITION_LIGHTNING_RAINY, ATTR_CONDITION_PARTLYCLOUDY as ATTR_CONDITION_PARTLYCLOUDY, ATTR_CONDITION_POURING as ATTR_CONDITION_POURING, ATTR_CONDITION_RAINY as ATTR_CONDITION_RAINY, ATTR_CONDITION_SNOWY as ATTR_CONDITION_SNOWY, ATTR_CONDITION_SNOWY_RAINY as ATTR_CONDITION_SNOWY_RAINY, ATTR_CONDITION_SUNNY as ATTR_CONDITION_SUNNY, ATTR_CONDITION_WINDY as ATTR_CONDITION_WINDY, ATTR_CONDITION_WINDY_VARIANT as ATTR_CONDITION_WINDY_VARIANT, ATTR_FORECAST_CLOUD_COVERAGE as ATTR_FORECAST_CLOUD_COVERAGE, ATTR_FORECAST_CONDITION as ATTR_FORECAST_CONDITION, ATTR_FORECAST_HUMIDITY as ATTR_FORECAST_HUMIDITY, ATTR_FORECAST_IS_DAYTIME as ATTR_FORECAST_IS_DAYTIME, ATTR_FORECAST_NATIVE_PRECIPITATION as ATTR_FORECAST_NATIVE_PRECIPITATION, ATTR_FORECAST_NATIVE_PRESSURE as ATTR_FORECAST_NATIVE_PRESSURE, ATTR_FORECAST_NATIVE_TEMP as ATTR_FORECAST_NATIVE_TEMP, ATTR_FORECAST_NATIVE_TEMP_LOW as ATTR_FORECAST_NATIVE_TEMP_LOW, ATTR_FORECAST_NATIVE_WIND_GUST_SPEED as ATTR_FORECAST_NATIVE_WIND_GUST_SPEED, ATTR_FORECAST_NATIVE_WIND_SPEED as ATTR_FORECAST_NATIVE_WIND_SPEED, ATTR_FORECAST_TIME as ATTR_FORECAST_TIME, ATTR_FORECAST_WIND_BEARING as ATTR_FORECAST_WIND_BEARING, Forecast as Forecast, SingleCoordinatorWeatherEntity as SingleCoordinatorWeatherEntity, WeatherEntityFeature as WeatherEntityFeature
7
7
  from homeassistant.const import CONF_LATITUDE as CONF_LATITUDE, CONF_LOCATION as CONF_LOCATION, CONF_LONGITUDE as CONF_LONGITUDE, UnitOfLength as UnitOfLength, UnitOfPrecipitationDepth as UnitOfPrecipitationDepth, UnitOfPressure as UnitOfPressure, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
9
  from homeassistant.helpers import sun as sun
@@ -23,6 +23,7 @@ class SmhiWeather(SmhiWeatherBaseEntity, SingleCoordinatorWeatherEntity):
23
23
  _attr_native_wind_speed_unit: Incomplete
24
24
  _attr_native_pressure_unit: Incomplete
25
25
  _attr_supported_features: Incomplete
26
+ _attr_name: Incomplete
26
27
  _attr_native_temperature: Incomplete
27
28
  _attr_humidity: Incomplete
28
29
  _attr_native_wind_speed: Incomplete
@@ -37,6 +38,7 @@ class SmhiWeather(SmhiWeatherBaseEntity, SingleCoordinatorWeatherEntity):
37
38
  def extra_state_attributes(self) -> Mapping[str, Any] | None: ...
38
39
  @callback
39
40
  def _handle_coordinator_update(self) -> None: ...
40
- def _get_forecast_data(self, forecast_data: list[SMHIForecast] | None) -> list[Forecast] | None: ...
41
+ def _get_forecast_data(self, forecast_data: list[SMHIForecast] | None, forecast_type: str) -> list[Forecast] | None: ...
41
42
  def _async_forecast_daily(self) -> list[Forecast] | None: ...
42
43
  def _async_forecast_hourly(self) -> list[Forecast] | None: ...
44
+ def _async_forecast_twice_daily(self) -> list[Forecast] | None: ...
@@ -11,4 +11,3 @@ PLATFORMS: Incomplete
11
11
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
12
12
  async def async_migrate_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
13
13
  async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
14
- async def _async_update_listener(hass: HomeAssistant, entry: ConfigEntry) -> None: ...
@@ -2,7 +2,7 @@ import voluptuous as vol
2
2
  from .const import CONF_UPCOMING_DAYS as CONF_UPCOMING_DAYS, CONF_WANTED_MAX_ITEMS as CONF_WANTED_MAX_ITEMS, DEFAULT_UPCOMING_DAYS as DEFAULT_UPCOMING_DAYS, DEFAULT_VERIFY_SSL as DEFAULT_VERIFY_SSL, DEFAULT_WANTED_MAX_ITEMS as DEFAULT_WANTED_MAX_ITEMS, DOMAIN as DOMAIN
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Mapping
5
- from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow, SOURCE_REAUTH as SOURCE_REAUTH
5
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlowWithReload as OptionsFlowWithReload, SOURCE_REAUTH as SOURCE_REAUTH
6
6
  from homeassistant.const import CONF_API_KEY as CONF_API_KEY, CONF_URL as CONF_URL, CONF_VERIFY_SSL as CONF_VERIFY_SSL
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
8
8
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
@@ -22,5 +22,5 @@ class SonarrConfigFlow(ConfigFlow, domain=DOMAIN):
22
22
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
23
23
  def _get_user_data_schema(self) -> dict[vol.Marker, type]: ...
24
24
 
25
- class SonarrOptionsFlowHandler(OptionsFlow):
25
+ class SonarrOptionsFlowHandler(OptionsFlowWithReload):
26
26
  async def async_step_init(self, user_input: dict[str, int] | None = None) -> ConfigFlowResult: ...
@@ -10,4 +10,3 @@ PLATFORMS: Incomplete
10
10
 
11
11
  async def async_setup_entry(hass: HomeAssistant, config_entry: SpeedTestConfigEntry) -> bool: ...
12
12
  async def async_unload_entry(hass: HomeAssistant, config_entry: SpeedTestConfigEntry) -> bool: ...
13
- async def update_listener(hass: HomeAssistant, config_entry: SpeedTestConfigEntry) -> None: ...
@@ -1,6 +1,6 @@
1
1
  from .const import CONF_SERVER_ID as CONF_SERVER_ID, CONF_SERVER_NAME as CONF_SERVER_NAME, DEFAULT_NAME as DEFAULT_NAME, DEFAULT_SERVER as DEFAULT_SERVER, DOMAIN as DOMAIN
2
2
  from .coordinator import SpeedTestConfigEntry as SpeedTestConfigEntry
3
- from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
3
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlowWithReload as OptionsFlowWithReload
4
4
  from homeassistant.core import callback as callback
5
5
  from typing import Any
6
6
 
@@ -11,7 +11,7 @@ class SpeedTestFlowHandler(ConfigFlow, domain=DOMAIN):
11
11
  def async_get_options_flow(config_entry: SpeedTestConfigEntry) -> SpeedTestOptionsFlowHandler: ...
12
12
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
13
13
 
14
- class SpeedTestOptionsFlowHandler(OptionsFlow):
14
+ class SpeedTestOptionsFlowHandler(OptionsFlowWithReload):
15
15
  _servers: dict
16
16
  def __init__(self) -> None: ...
17
17
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -18,7 +18,6 @@ QUERY_SCHEMA: Incomplete
18
18
  CONFIG_SCHEMA: Incomplete
19
19
 
20
20
  def remove_configured_db_url_if_not_needed(hass: HomeAssistant, entry: ConfigEntry) -> None: ...
21
- async def async_update_listener(hass: HomeAssistant, entry: ConfigEntry) -> None: ...
22
21
  async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
23
22
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
24
23
  async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
@@ -4,7 +4,7 @@ from .util import resolve_db_url as resolve_db_url
4
4
  from _typeshed import Incomplete
5
5
  from homeassistant.components.recorder import CONF_DB_URL as CONF_DB_URL, get_instance as get_instance
6
6
  from homeassistant.components.sensor import CONF_STATE_CLASS as CONF_STATE_CLASS, SensorDeviceClass as SensorDeviceClass, SensorStateClass as SensorStateClass
7
- from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
7
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlowWithReload as OptionsFlowWithReload
8
8
  from homeassistant.const import CONF_DEVICE_CLASS as CONF_DEVICE_CLASS, CONF_NAME as CONF_NAME, CONF_UNIT_OF_MEASUREMENT as CONF_UNIT_OF_MEASUREMENT, CONF_VALUE_TEMPLATE as CONF_VALUE_TEMPLATE
9
9
  from homeassistant.core import callback as callback
10
10
  from homeassistant.helpers import selector as selector
@@ -26,5 +26,5 @@ class SQLConfigFlow(ConfigFlow, domain=DOMAIN):
26
26
  def async_get_options_flow(config_entry: ConfigEntry) -> SQLOptionsFlowHandler: ...
27
27
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
28
28
 
29
- class SQLOptionsFlowHandler(OptionsFlow):
29
+ class SQLOptionsFlowHandler(OptionsFlowWithReload):
30
30
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -1,7 +1,7 @@
1
- from .const import CONF_HTTPS as CONF_HTTPS, DISCOVERY_INTERVAL as DISCOVERY_INTERVAL, DISCOVERY_TASK as DISCOVERY_TASK, DOMAIN as DOMAIN, KNOWN_PLAYERS as KNOWN_PLAYERS, KNOWN_SERVERS as KNOWN_SERVERS, MANUFACTURER as MANUFACTURER, SERVER_MODEL as SERVER_MODEL, SIGNAL_PLAYER_DISCOVERED as SIGNAL_PLAYER_DISCOVERED, SIGNAL_PLAYER_REDISCOVERED as SIGNAL_PLAYER_REDISCOVERED, STATUS_API_TIMEOUT as STATUS_API_TIMEOUT, STATUS_QUERY_LIBRARYNAME as STATUS_QUERY_LIBRARYNAME, STATUS_QUERY_MAC as STATUS_QUERY_MAC, STATUS_QUERY_UUID as STATUS_QUERY_UUID, STATUS_QUERY_VERSION as STATUS_QUERY_VERSION
1
+ from .const import CONF_HTTPS as CONF_HTTPS, DISCOVERY_INTERVAL as DISCOVERY_INTERVAL, DISCOVERY_TASK as DISCOVERY_TASK, DOMAIN as DOMAIN, SERVER_MANUFACTURER as SERVER_MANUFACTURER, SERVER_MODEL as SERVER_MODEL, SERVER_MODEL_ID as SERVER_MODEL_ID, SIGNAL_PLAYER_DISCOVERED as SIGNAL_PLAYER_DISCOVERED, SIGNAL_PLAYER_REDISCOVERED as SIGNAL_PLAYER_REDISCOVERED, STATUS_API_TIMEOUT as STATUS_API_TIMEOUT, STATUS_QUERY_LIBRARYNAME as STATUS_QUERY_LIBRARYNAME, STATUS_QUERY_MAC as STATUS_QUERY_MAC, STATUS_QUERY_UUID as STATUS_QUERY_UUID, STATUS_QUERY_VERSION as STATUS_QUERY_VERSION
2
2
  from .coordinator import LMSStatusDataUpdateCoordinator as LMSStatusDataUpdateCoordinator, SqueezeBoxPlayerUpdateCoordinator as SqueezeBoxPlayerUpdateCoordinator
3
3
  from _typeshed import Incomplete
4
- from dataclasses import dataclass
4
+ from dataclasses import dataclass, field
5
5
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
6
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PASSWORD, CONF_PORT as CONF_PORT, CONF_USERNAME as CONF_USERNAME, Platform as Platform
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant
@@ -19,6 +19,7 @@ PLATFORMS: Incomplete
19
19
  class SqueezeboxData:
20
20
  coordinator: LMSStatusDataUpdateCoordinator
21
21
  server: Server
22
+ known_player_ids: set[str] = field(default_factory=set)
22
23
  type SqueezeboxConfigEntry = ConfigEntry[SqueezeboxData]
23
24
 
24
25
  async def async_setup_entry(hass: HomeAssistant, entry: SqueezeboxConfigEntry) -> bool: ...
@@ -4,12 +4,11 @@ CONF_HTTPS: str
4
4
  DISCOVERY_TASK: str
5
5
  DOMAIN: str
6
6
  DEFAULT_PORT: int
7
- KNOWN_PLAYERS: str
8
- KNOWN_SERVERS: str
9
- MANUFACTURER: str
10
7
  PLAYER_DISCOVERY_UNSUB: str
11
8
  SENSOR_UPDATE_INTERVAL: int
9
+ SERVER_MANUFACTURER: str
12
10
  SERVER_MODEL: str
11
+ SERVER_MODEL_ID: str
13
12
  STATUS_API_TIMEOUT: int
14
13
  STATUS_SENSOR_LASTSCAN: str
15
14
  STATUS_SENSOR_NEEDSRESTART: str
@@ -12,13 +12,13 @@ from typing import Any
12
12
 
13
13
  _LOGGER: Incomplete
14
14
 
15
- class LMSStatusDataUpdateCoordinator(DataUpdateCoordinator):
15
+ class LMSStatusDataUpdateCoordinator(DataUpdateCoordinator[dict[str, Any]]):
16
16
  config_entry: SqueezeboxConfigEntry
17
17
  lms: Incomplete
18
18
  can_server_restart: bool
19
19
  def __init__(self, hass: HomeAssistant, config_entry: SqueezeboxConfigEntry, lms: Server) -> None: ...
20
20
  async def _async_setup(self) -> None: ...
21
- async def _async_update_data(self) -> dict: ...
21
+ async def _async_update_data(self) -> dict[str, Any]: ...
22
22
 
23
23
  class SqueezeBoxPlayerUpdateCoordinator(DataUpdateCoordinator[dict[str, Any]]):
24
24
  config_entry: SqueezeboxConfigEntry
@@ -1,6 +1,6 @@
1
1
  from . import SqueezeboxConfigEntry as SqueezeboxConfigEntry
2
2
  from .browse_media import BrowseData as BrowseData, build_item_response as build_item_response, generate_playlist as generate_playlist, library_payload as library_payload, media_source_content_filter as media_source_content_filter
3
- from .const import ATTR_ANNOUNCE_TIMEOUT as ATTR_ANNOUNCE_TIMEOUT, ATTR_ANNOUNCE_VOLUME as ATTR_ANNOUNCE_VOLUME, CONF_BROWSE_LIMIT as CONF_BROWSE_LIMIT, CONF_VOLUME_STEP as CONF_VOLUME_STEP, DEFAULT_BROWSE_LIMIT as DEFAULT_BROWSE_LIMIT, DEFAULT_VOLUME_STEP as DEFAULT_VOLUME_STEP, DISCOVERY_TASK as DISCOVERY_TASK, DOMAIN as DOMAIN, KNOWN_PLAYERS as KNOWN_PLAYERS, KNOWN_SERVERS as KNOWN_SERVERS, SIGNAL_PLAYER_DISCOVERED as SIGNAL_PLAYER_DISCOVERED, SQUEEZEBOX_SOURCE_STRINGS as SQUEEZEBOX_SOURCE_STRINGS
3
+ from .const import ATTR_ANNOUNCE_TIMEOUT as ATTR_ANNOUNCE_TIMEOUT, ATTR_ANNOUNCE_VOLUME as ATTR_ANNOUNCE_VOLUME, CONF_BROWSE_LIMIT as CONF_BROWSE_LIMIT, CONF_VOLUME_STEP as CONF_VOLUME_STEP, DEFAULT_BROWSE_LIMIT as DEFAULT_BROWSE_LIMIT, DEFAULT_VOLUME_STEP as DEFAULT_VOLUME_STEP, DISCOVERY_TASK as DISCOVERY_TASK, DOMAIN as DOMAIN, SERVER_MANUFACTURER as SERVER_MANUFACTURER, SERVER_MODEL as SERVER_MODEL, SERVER_MODEL_ID as SERVER_MODEL_ID, SIGNAL_PLAYER_DISCOVERED as SIGNAL_PLAYER_DISCOVERED, SQUEEZEBOX_SOURCE_STRINGS as SQUEEZEBOX_SOURCE_STRINGS
4
4
  from .coordinator import SqueezeBoxPlayerUpdateCoordinator as SqueezeBoxPlayerUpdateCoordinator
5
5
  from .entity import SqueezeboxEntity as SqueezeboxEntity
6
6
  from _typeshed import Incomplete
@@ -13,7 +13,7 @@ from homeassistant.const import ATTR_COMMAND as ATTR_COMMAND, CONF_HOST as CONF_
13
13
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
14
14
  from homeassistant.exceptions import ServiceValidationError as ServiceValidationError
15
15
  from homeassistant.helpers import discovery_flow as discovery_flow, entity_platform as entity_platform
16
- from homeassistant.helpers.device_registry import format_mac as format_mac
16
+ from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC, format_mac as format_mac
17
17
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
18
18
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
19
19
  from homeassistant.helpers.start import async_at_start as async_at_start
@@ -3,11 +3,13 @@ from homeassistant.config_entries import ConfigEntry as ConfigEntry
3
3
  from homeassistant.const import CONF_ENTITY_ID as CONF_ENTITY_ID, Platform as Platform
4
4
  from homeassistant.core import HomeAssistant as HomeAssistant
5
5
  from homeassistant.helpers.device import async_entity_id_to_device_id as async_entity_id_to_device_id, async_remove_stale_devices_links_keep_entity_device as async_remove_stale_devices_links_keep_entity_device
6
- from homeassistant.helpers.helper_integration import async_handle_source_entity_changes as async_handle_source_entity_changes
6
+ from homeassistant.helpers.helper_integration import async_handle_source_entity_changes as async_handle_source_entity_changes, async_remove_helper_config_entry_from_source_device as async_remove_helper_config_entry_from_source_device
7
7
 
8
8
  DOMAIN: str
9
9
  PLATFORMS: Incomplete
10
+ _LOGGER: Incomplete
10
11
 
11
12
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
13
+ async def async_migrate_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: ...
12
14
  async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
13
15
  async def update_listener(hass: HomeAssistant, entry: ConfigEntry) -> None: ...
@@ -20,6 +20,7 @@ CONFIG_FLOW: Incomplete
20
20
  OPTIONS_FLOW: Incomplete
21
21
 
22
22
  class StatisticsConfigFlowHandler(SchemaConfigFlowHandler, domain=DOMAIN):
23
+ MINOR_VERSION: int
23
24
  config_flow = CONFIG_FLOW
24
25
  options_flow = OPTIONS_FLOW
25
26
  def async_config_entry_title(self, options: Mapping[str, Any]) -> str: ...
@@ -8,7 +8,7 @@ from homeassistant.components.sensor import DEVICE_CLASS_STATE_CLASSES as DEVICE
8
8
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
9
9
  from homeassistant.const import ATTR_DEVICE_CLASS as ATTR_DEVICE_CLASS, ATTR_UNIT_OF_MEASUREMENT as ATTR_UNIT_OF_MEASUREMENT, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_NAME as CONF_NAME, CONF_UNIQUE_ID as CONF_UNIQUE_ID, PERCENTAGE as PERCENTAGE, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN
10
10
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Event as Event, EventStateChangedData as EventStateChangedData, EventStateReportedData as EventStateReportedData, HomeAssistant as HomeAssistant, State as State, callback as callback, split_entity_id as split_entity_id
11
- from homeassistant.helpers.device import async_device_info_to_link_from_entity as async_device_info_to_link_from_entity
11
+ from homeassistant.helpers.device import async_entity_id_to_device as async_entity_id_to_device
12
12
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback, AddEntitiesCallback as AddEntitiesCallback
13
13
  from homeassistant.helpers.event import async_track_point_in_utc_time as async_track_point_in_utc_time, async_track_state_change_event as async_track_state_change_event, async_track_state_report_event as async_track_state_report_event
14
14
  from homeassistant.helpers.reload import async_setup_reload_service as async_setup_reload_service
@@ -119,7 +119,7 @@ class StatisticsSensor(SensorEntity):
119
119
  _attr_name: str
120
120
  _attr_unique_id: str | None
121
121
  _source_entity_id: str
122
- _attr_device_info: Incomplete
122
+ device_entry: Incomplete
123
123
  is_binary: bool
124
124
  _state_characteristic: str
125
125
  _samples_max_buffer_size: int | None
@@ -134,16 +134,16 @@ class StatisticsSensor(SensorEntity):
134
134
  _state_characteristic_fn: Callable[[deque[bool | float], deque[float], int], float | int | datetime | None]
135
135
  _update_listener: CALLBACK_TYPE | None
136
136
  _preview_callback: Callable[[str, Mapping[str, Any]], None] | None
137
- def __init__(self, hass: HomeAssistant, source_entity_id: str, name: str, unique_id: str | None, state_characteristic: str, samples_max_buffer_size: int | None, samples_max_age: timedelta | None, samples_keep_last: bool, precision: int, percentile: int) -> None: ...
137
+ def __init__(self, hass: HomeAssistant, *, source_entity_id: str, name: str, unique_id: str | None, state_characteristic: str, samples_max_buffer_size: int | None, samples_max_age: timedelta | None, samples_keep_last: bool, precision: int, percentile: int) -> None: ...
138
138
  async def async_start_preview(self, preview_callback: Callable[[str, Mapping[str, Any]], None]) -> CALLBACK_TYPE: ...
139
- def _async_handle_new_state(self, reported_state: State | None) -> None: ...
139
+ def _async_handle_new_state(self, reported_state: State, timestamp: float) -> None: ...
140
140
  @callback
141
141
  def _async_stats_sensor_state_change_listener(self, event: Event[EventStateChangedData]) -> None: ...
142
142
  @callback
143
143
  def _async_stats_sensor_state_report_listener(self, event: Event[EventStateReportedData]) -> None: ...
144
144
  async def _async_stats_sensor_startup(self) -> None: ...
145
145
  async def async_added_to_hass(self) -> None: ...
146
- def _add_state_to_queue(self, new_state: State) -> None: ...
146
+ def _add_state_to_queue(self, new_state: State, last_reported_timestamp: float) -> None: ...
147
147
  _attr_native_unit_of_measurement: Incomplete
148
148
  _attr_device_class: Incomplete
149
149
  _attr_state_class: Incomplete
@@ -1,13 +1,17 @@
1
1
  from .const import DOMAIN as DOMAIN, LOGGER as LOGGER
2
2
  from .coordinator import StookwijzerConfigEntry as StookwijzerConfigEntry, StookwijzerCoordinator as StookwijzerCoordinator
3
+ from .services import setup_services as setup_services
3
4
  from _typeshed import Incomplete
4
5
  from homeassistant.const import CONF_LATITUDE as CONF_LATITUDE, CONF_LOCATION as CONF_LOCATION, CONF_LONGITUDE as CONF_LONGITUDE, Platform as Platform
5
6
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
6
7
  from homeassistant.helpers import entity_registry as er
8
+ from homeassistant.helpers.typing import ConfigType as ConfigType
7
9
  from typing import Any
8
10
 
9
11
  PLATFORMS: Incomplete
12
+ CONFIG_SCHEMA: Incomplete
10
13
 
14
+ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
11
15
  async def async_setup_entry(hass: HomeAssistant, entry: StookwijzerConfigEntry) -> bool: ...
12
16
  async def async_unload_entry(hass: HomeAssistant, entry: StookwijzerConfigEntry) -> bool: ...
13
17
  async def async_migrate_entry(hass: HomeAssistant, entry: StookwijzerConfigEntry) -> bool: ...