homeassistant-stubs 2025.7.3__py3-none-any.whl → 2025.8.0__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (495) 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/diagnostics.pyi +13 -0
  9. homeassistant-stubs/components/airos/entity.pyi +11 -0
  10. homeassistant-stubs/components/airos/sensor.pyi +29 -0
  11. homeassistant-stubs/components/airq/const.pyi +0 -1
  12. homeassistant-stubs/components/airq/sensor.pyi +2 -2
  13. homeassistant-stubs/components/airthings/__init__.pyi +1 -3
  14. homeassistant-stubs/components/airthings/coordinator.pyi +3 -1
  15. homeassistant-stubs/components/airthings/sensor.pyi +1 -1
  16. homeassistant-stubs/components/alexa_devices/__init__.pyi +6 -0
  17. homeassistant-stubs/components/alexa_devices/config_flow.pyi +10 -0
  18. homeassistant-stubs/components/alexa_devices/coordinator.pyi +4 -3
  19. homeassistant-stubs/components/alexa_devices/services.pyi +24 -0
  20. homeassistant-stubs/components/amberelectric/__init__.pyi +7 -1
  21. homeassistant-stubs/components/amberelectric/const.pyi +8 -1
  22. homeassistant-stubs/components/amberelectric/coordinator.pyi +1 -2
  23. homeassistant-stubs/components/amberelectric/helpers.pyi +6 -0
  24. homeassistant-stubs/components/amberelectric/sensor.pyi +2 -2
  25. homeassistant-stubs/components/amberelectric/services.pyi +15 -0
  26. homeassistant-stubs/components/analytics/__init__.pyi +1 -0
  27. homeassistant-stubs/components/analytics/analytics.pyi +3 -0
  28. homeassistant-stubs/components/analytics/http.pyi +10 -0
  29. homeassistant-stubs/components/analytics_insights/__init__.pyi +0 -1
  30. homeassistant-stubs/components/analytics_insights/config_flow.pyi +2 -2
  31. homeassistant-stubs/components/androidtv_remote/__init__.pyi +2 -6
  32. homeassistant-stubs/components/androidtv_remote/config_flow.pyi +6 -6
  33. homeassistant-stubs/components/androidtv_remote/diagnostics.pyi +1 -1
  34. homeassistant-stubs/components/androidtv_remote/entity.pyi +2 -2
  35. homeassistant-stubs/components/androidtv_remote/helpers.pyi +3 -1
  36. homeassistant-stubs/components/androidtv_remote/media_player.pyi +4 -4
  37. homeassistant-stubs/components/androidtv_remote/remote.pyi +1 -1
  38. homeassistant-stubs/components/assist_pipeline/__init__.pyi +2 -2
  39. homeassistant-stubs/components/assist_pipeline/const.pyi +0 -1
  40. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +2 -5
  41. homeassistant-stubs/components/asuswrt/router.pyi +3 -1
  42. homeassistant-stubs/components/awair/const.pyi +1 -0
  43. homeassistant-stubs/components/awair/sensor.pyi +1 -1
  44. homeassistant-stubs/components/backup/__init__.pyi +6 -2
  45. homeassistant-stubs/components/backup/coordinator.pyi +0 -1
  46. homeassistant-stubs/components/backup/manager.pyi +6 -3
  47. homeassistant-stubs/components/backup/onboarding.pyi +1 -1
  48. homeassistant-stubs/components/backup/services.pyi +7 -0
  49. homeassistant-stubs/components/backup/websocket.pyi +4 -1
  50. homeassistant-stubs/components/blue_current/__init__.pyi +5 -5
  51. homeassistant-stubs/components/blue_current/const.pyi +11 -0
  52. homeassistant-stubs/components/blue_current/switch.pyi +40 -0
  53. homeassistant-stubs/components/bosch_alarm/__init__.pyi +1 -1
  54. homeassistant-stubs/components/bosch_alarm/services.pyi +3 -2
  55. homeassistant-stubs/components/bring/__init__.pyi +5 -0
  56. homeassistant-stubs/components/bring/const.pyi +4 -0
  57. homeassistant-stubs/components/bring/services.pyi +14 -0
  58. homeassistant-stubs/components/cloud/backup.pyi +3 -3
  59. homeassistant-stubs/components/cloud/repairs.pyi +3 -3
  60. homeassistant-stubs/components/cloud/subscription.pyi +2 -1
  61. homeassistant-stubs/components/cloud/tts.pyi +2 -1
  62. homeassistant-stubs/components/command_line/sensor.pyi +0 -2
  63. homeassistant-stubs/components/demo/vacuum.pyi +0 -3
  64. homeassistant-stubs/components/derivative/__init__.pyi +5 -1
  65. homeassistant-stubs/components/derivative/config_flow.pyi +2 -0
  66. homeassistant-stubs/components/derivative/sensor.pyi +7 -4
  67. homeassistant-stubs/components/devolo_home_control/config_flow.pyi +3 -7
  68. homeassistant-stubs/components/devolo_home_control/entity.pyi +0 -1
  69. homeassistant-stubs/components/devolo_home_network/coordinator.pyi +2 -2
  70. homeassistant-stubs/components/devolo_home_network/device_tracker.pyi +2 -2
  71. homeassistant-stubs/components/devolo_home_network/entity.pyi +1 -1
  72. homeassistant-stubs/components/devolo_home_network/sensor.pyi +1 -1
  73. homeassistant-stubs/components/discovergy/__init__.pyi +1 -0
  74. homeassistant-stubs/components/discovergy/coordinator.pyi +1 -0
  75. homeassistant-stubs/components/dnsip/__init__.pyi +0 -1
  76. homeassistant-stubs/components/dnsip/config_flow.pyi +2 -2
  77. homeassistant-stubs/components/downloader/services.pyi +1 -0
  78. homeassistant-stubs/components/ecovacs/binary_sensor.pyi +13 -3
  79. homeassistant-stubs/components/ecovacs/sensor.pyi +13 -0
  80. homeassistant-stubs/components/ecovacs/vacuum.pyi +1 -7
  81. homeassistant-stubs/components/eheimdigital/config_flow.pyi +2 -1
  82. homeassistant-stubs/components/elevenlabs/config_flow.pyi +1 -1
  83. homeassistant-stubs/components/elevenlabs/const.pyi +0 -2
  84. homeassistant-stubs/components/elevenlabs/tts.pyi +2 -3
  85. homeassistant-stubs/components/enphase_envoy/__init__.pyi +0 -2
  86. homeassistant-stubs/components/enphase_envoy/config_flow.pyi +2 -2
  87. homeassistant-stubs/components/esphome/config_flow.pyi +2 -0
  88. homeassistant-stubs/components/esphome/encryption_key_storage.pyi +29 -0
  89. homeassistant-stubs/components/esphome/entity.pyi +3 -1
  90. homeassistant-stubs/components/esphome/entry_data.pyi +14 -6
  91. homeassistant-stubs/components/esphome/manager.pyi +3 -1
  92. homeassistant-stubs/components/feedreader/__init__.pyi +0 -1
  93. homeassistant-stubs/components/feedreader/config_flow.pyi +3 -3
  94. homeassistant-stubs/components/forecast_solar/__init__.pyi +0 -1
  95. homeassistant-stubs/components/forecast_solar/config_flow.pyi +2 -2
  96. homeassistant-stubs/components/fritz/__init__.pyi +0 -1
  97. homeassistant-stubs/components/fritz/config_flow.pyi +2 -2
  98. homeassistant-stubs/components/fritzbox_callmonitor/__init__.pyi +0 -1
  99. homeassistant-stubs/components/fritzbox_callmonitor/config_flow.pyi +2 -2
  100. homeassistant-stubs/components/frontend/__init__.pyi +1 -0
  101. homeassistant-stubs/components/fujitsu_fglair/climate.pyi +1 -1
  102. homeassistant-stubs/components/generic_hygrostat/__init__.pyi +3 -1
  103. homeassistant-stubs/components/generic_hygrostat/config_flow.pyi +1 -0
  104. homeassistant-stubs/components/generic_hygrostat/humidifier.pyi +3 -3
  105. homeassistant-stubs/components/generic_thermostat/__init__.pyi +5 -1
  106. homeassistant-stubs/components/generic_thermostat/climate.pyi +3 -3
  107. homeassistant-stubs/components/generic_thermostat/config_flow.pyi +1 -0
  108. homeassistant-stubs/components/geo_location/trigger.pyi +0 -1
  109. homeassistant-stubs/components/gios/const.pyi +2 -0
  110. homeassistant-stubs/components/gios/sensor.pyi +1 -1
  111. homeassistant-stubs/components/google_assistant_sdk/application_credentials.pyi +1 -0
  112. homeassistant-stubs/components/google_cloud/const.pyi +1 -0
  113. homeassistant-stubs/components/google_cloud/stt.pyi +3 -2
  114. homeassistant-stubs/components/guardian/__init__.pyi +1 -1
  115. homeassistant-stubs/components/guardian/services.pyi +2 -1
  116. homeassistant-stubs/components/habitica/button.pyi +3 -4
  117. homeassistant-stubs/components/habitica/coordinator.pyi +2 -3
  118. homeassistant-stubs/components/habitica/entity.pyi +1 -1
  119. homeassistant-stubs/components/habitica/sensor.pyi +3 -18
  120. homeassistant-stubs/components/habitica/switch.pyi +4 -3
  121. homeassistant-stubs/components/habitica/util.pyi +2 -1
  122. homeassistant-stubs/components/heos/__init__.pyi +1 -1
  123. homeassistant-stubs/components/heos/config_flow.pyi +3 -0
  124. homeassistant-stubs/components/heos/services.pyi +3 -2
  125. homeassistant-stubs/components/here_travel_time/__init__.pyi +3 -1
  126. homeassistant-stubs/components/here_travel_time/config_flow.pyi +3 -2
  127. homeassistant-stubs/components/here_travel_time/const.pyi +1 -0
  128. homeassistant-stubs/components/here_travel_time/coordinator.pyi +1 -1
  129. homeassistant-stubs/components/here_travel_time/model.pyi +2 -1
  130. homeassistant-stubs/components/history_stats/__init__.pyi +5 -1
  131. homeassistant-stubs/components/history_stats/config_flow.pyi +14 -0
  132. homeassistant-stubs/components/history_stats/coordinator.pyi +3 -1
  133. homeassistant-stubs/components/history_stats/data.pyi +2 -1
  134. homeassistant-stubs/components/history_stats/helpers.pyi +1 -1
  135. homeassistant-stubs/components/history_stats/sensor.pyi +7 -4
  136. homeassistant-stubs/components/holiday/__init__.pyi +0 -1
  137. homeassistant-stubs/components/holiday/config_flow.pyi +2 -2
  138. homeassistant-stubs/components/home_connect/__init__.pyi +1 -1
  139. homeassistant-stubs/components/home_connect/services.pyi +3 -2
  140. homeassistant-stubs/components/homeassistant/__init__.pyi +2 -1
  141. homeassistant-stubs/components/homeassistant/triggers/time.pyi +2 -1
  142. homeassistant-stubs/components/homeassistant_hardware/coordinator.pyi +2 -1
  143. homeassistant-stubs/components/homee/__init__.pyi +1 -1
  144. homeassistant-stubs/components/homee/config_flow.pyi +5 -0
  145. homeassistant-stubs/components/homekit/__init__.pyi +2 -1
  146. homeassistant-stubs/components/http/__init__.pyi +1 -2
  147. homeassistant-stubs/components/huawei_lte/__init__.pyi +1 -2
  148. homeassistant-stubs/components/huawei_lte/config_flow.pyi +5 -4
  149. homeassistant-stubs/components/huawei_lte/const.pyi +1 -1
  150. homeassistant-stubs/components/huawei_lte/diagnostics.pyi +18 -0
  151. homeassistant-stubs/components/husqvarna_automower/button.pyi +2 -2
  152. homeassistant-stubs/components/husqvarna_automower/calendar.pyi +3 -0
  153. homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +15 -13
  154. homeassistant-stubs/components/husqvarna_automower/entity.pyi +2 -6
  155. homeassistant-stubs/components/husqvarna_automower/lawn_mower.pyi +2 -2
  156. homeassistant-stubs/components/husqvarna_automower/sensor.pyi +5 -0
  157. homeassistant-stubs/components/hydrawise/binary_sensor.pyi +1 -1
  158. homeassistant-stubs/components/hydrawise/const.pyi +1 -0
  159. homeassistant-stubs/components/hydrawise/coordinator.pyi +9 -2
  160. homeassistant-stubs/components/hydrawise/entity.pyi +1 -1
  161. homeassistant-stubs/components/hydrawise/sensor.pyi +1 -1
  162. homeassistant-stubs/components/hydrawise/switch.pyi +1 -1
  163. homeassistant-stubs/components/hydrawise/valve.pyi +1 -1
  164. homeassistant-stubs/components/hyperion/__init__.pyi +0 -1
  165. homeassistant-stubs/components/hyperion/config_flow.pyi +2 -2
  166. homeassistant-stubs/components/imgw_pib/sensor.pyi +7 -1
  167. homeassistant-stubs/components/immich/__init__.pyi +6 -0
  168. homeassistant-stubs/components/immich/media_source.pyi +1 -0
  169. homeassistant-stubs/components/immich/services.pyi +18 -0
  170. homeassistant-stubs/components/input_text/__init__.pyi +1 -1
  171. homeassistant-stubs/components/integration/__init__.pyi +5 -1
  172. homeassistant-stubs/components/integration/config_flow.pyi +1 -0
  173. homeassistant-stubs/components/integration/sensor.pyi +5 -6
  174. homeassistant-stubs/components/iron_os/__init__.pyi +0 -3
  175. homeassistant-stubs/components/iron_os/const.pyi +4 -0
  176. homeassistant-stubs/components/iron_os/coordinator.pyi +1 -1
  177. homeassistant-stubs/components/iron_os/number.pyi +20 -4
  178. homeassistant-stubs/components/iron_os/switch.pyi +2 -0
  179. homeassistant-stubs/components/isy994/__init__.pyi +0 -1
  180. homeassistant-stubs/components/isy994/config_flow.pyi +3 -3
  181. homeassistant-stubs/components/jellyfin/browse_media.pyi +2 -1
  182. homeassistant-stubs/components/jellyfin/media_player.pyi +5 -2
  183. homeassistant-stubs/components/jewish_calendar/binary_sensor.pyi +5 -15
  184. homeassistant-stubs/components/jewish_calendar/config_flow.pyi +2 -2
  185. homeassistant-stubs/components/jewish_calendar/entity.pyi +19 -5
  186. homeassistant-stubs/components/jewish_calendar/sensor.pyi +11 -7
  187. homeassistant-stubs/components/knx/__init__.pyi +6 -40
  188. homeassistant-stubs/components/knx/binary_sensor.pyi +3 -2
  189. homeassistant-stubs/components/knx/button.pyi +1 -1
  190. homeassistant-stubs/components/knx/climate.pyi +1 -1
  191. homeassistant-stubs/components/knx/config_flow.pyi +14 -21
  192. homeassistant-stubs/components/knx/const.pyi +1 -1
  193. homeassistant-stubs/components/knx/cover.pyi +3 -2
  194. homeassistant-stubs/components/knx/date.pyi +1 -1
  195. homeassistant-stubs/components/knx/datetime.pyi +1 -1
  196. homeassistant-stubs/components/knx/entity.pyi +1 -1
  197. homeassistant-stubs/components/knx/fan.pyi +1 -1
  198. homeassistant-stubs/components/knx/knx_module.pyi +43 -0
  199. homeassistant-stubs/components/knx/light.pyi +3 -2
  200. homeassistant-stubs/components/knx/notify.pyi +1 -1
  201. homeassistant-stubs/components/knx/number.pyi +1 -1
  202. homeassistant-stubs/components/knx/scene.pyi +1 -1
  203. homeassistant-stubs/components/knx/select.pyi +1 -1
  204. homeassistant-stubs/components/knx/sensor.pyi +1 -1
  205. homeassistant-stubs/components/knx/services.pyi +2 -2
  206. homeassistant-stubs/components/knx/storage/config_store.pyi +4 -0
  207. homeassistant-stubs/components/knx/storage/const.pyi +8 -7
  208. homeassistant-stubs/components/knx/storage/entity_store_schema.pyi +3 -10
  209. homeassistant-stubs/components/knx/storage/knx_selector.pyi +4 -0
  210. homeassistant-stubs/components/knx/storage/migration.pyi +5 -0
  211. homeassistant-stubs/components/knx/storage/util.pyi +16 -0
  212. homeassistant-stubs/components/knx/switch.pyi +3 -2
  213. homeassistant-stubs/components/knx/text.pyi +1 -1
  214. homeassistant-stubs/components/knx/time.pyi +1 -1
  215. homeassistant-stubs/components/knx/weather.pyi +1 -1
  216. homeassistant-stubs/components/knx/websocket.pyi +1 -1
  217. homeassistant-stubs/components/lamarzocco/config_flow.pyi +2 -2
  218. homeassistant-stubs/components/lcn/binary_sensor.pyi +1 -20
  219. homeassistant-stubs/components/lcn/helpers.pyi +1 -0
  220. homeassistant-stubs/components/lcn/light.pyi +2 -1
  221. homeassistant-stubs/components/letpot/coordinator.pyi +3 -4
  222. homeassistant-stubs/components/letpot/switch.pyi +1 -1
  223. homeassistant-stubs/components/letpot/time.pyi +1 -1
  224. homeassistant-stubs/components/lifx/const.pyi +1 -0
  225. homeassistant-stubs/components/lifx/coordinator.pyi +5 -1
  226. homeassistant-stubs/components/lifx/light.pyi +1 -1
  227. homeassistant-stubs/components/lifx/manager.pyi +1 -1
  228. homeassistant-stubs/components/linkplay/select.pyi +35 -0
  229. homeassistant-stubs/components/litterrobot/sensor.pyi +3 -0
  230. homeassistant-stubs/components/matrix/__init__.pyi +1 -1
  231. homeassistant-stubs/components/matrix/services.pyi +3 -2
  232. homeassistant-stubs/components/matter/entity.pyi +2 -2
  233. homeassistant-stubs/components/matter/light.pyi +1 -1
  234. homeassistant-stubs/components/matter/number.pyi +29 -1
  235. homeassistant-stubs/components/matter/select.pyi +2 -2
  236. homeassistant-stubs/components/matter/vacuum.pyi +2 -1
  237. homeassistant-stubs/components/mcp_server/server.pyi +1 -1
  238. homeassistant-stubs/components/mealie/const.pyi +2 -0
  239. homeassistant-stubs/components/mealie/services.pyi +4 -1
  240. homeassistant-stubs/components/media_player/const.pyi +2 -2
  241. homeassistant-stubs/components/media_source/const.pyi +3 -0
  242. homeassistant-stubs/components/media_source/local_source.pyi +1 -1
  243. homeassistant-stubs/components/media_source/models.pyi +6 -2
  244. homeassistant-stubs/components/met_eireann/__init__.pyi +2 -17
  245. homeassistant-stubs/components/met_eireann/coordinator.pyi +28 -0
  246. homeassistant-stubs/components/met_eireann/weather.pyi +1 -3
  247. homeassistant-stubs/components/miele/__init__.pyi +5 -0
  248. homeassistant-stubs/components/miele/coordinator.pyi +1 -1
  249. homeassistant-stubs/components/miele/entity.pyi +2 -0
  250. homeassistant-stubs/components/miele/sensor.pyi +7 -6
  251. homeassistant-stubs/components/miele/services.pyi +24 -0
  252. homeassistant-stubs/components/miele/vacuum.pyi +0 -2
  253. homeassistant-stubs/components/modem_callerid/sensor.pyi +2 -2
  254. homeassistant-stubs/components/mold_indicator/__init__.pyi +8 -1
  255. homeassistant-stubs/components/mold_indicator/config_flow.pyi +2 -0
  256. homeassistant-stubs/components/mold_indicator/sensor.pyi +2 -2
  257. homeassistant-stubs/components/mqtt/climate.pyi +1 -37
  258. homeassistant-stubs/components/mqtt/config_flow.pyi +38 -6
  259. homeassistant-stubs/components/mqtt/const.pyi +33 -2
  260. homeassistant-stubs/components/mqtt/repairs.pyi +15 -0
  261. homeassistant-stubs/components/mqtt/vacuum.pyi +4 -3
  262. homeassistant-stubs/components/nasweb/const.pyi +1 -0
  263. homeassistant-stubs/components/nasweb/coordinator.pyi +3 -1
  264. homeassistant-stubs/components/nasweb/sensor.pyi +54 -0
  265. homeassistant-stubs/components/netatmo/climate.pyi +1 -1
  266. homeassistant-stubs/components/netatmo/const.pyi +1 -0
  267. homeassistant-stubs/components/nextdns/__init__.pyi +2 -3
  268. homeassistant-stubs/components/nextdns/coordinator.pyi +10 -2
  269. homeassistant-stubs/components/nordpool/const.pyi +1 -0
  270. homeassistant-stubs/components/nordpool/services.pyi +5 -1
  271. homeassistant-stubs/components/number/const.pyi +2 -1
  272. homeassistant-stubs/components/nut/__init__.pyi +0 -1
  273. homeassistant-stubs/components/onewire/__init__.pyi +0 -1
  274. homeassistant-stubs/components/onewire/config_flow.pyi +2 -2
  275. homeassistant-stubs/components/onkyo/__init__.pyi +2 -3
  276. homeassistant-stubs/components/onkyo/config_flow.pyi +9 -6
  277. homeassistant-stubs/components/onkyo/const.pyi +7 -65
  278. homeassistant-stubs/components/onkyo/media_player.pyi +16 -44
  279. homeassistant-stubs/components/onkyo/receiver.pyi +24 -25
  280. homeassistant-stubs/components/onkyo/services.pyi +3 -3
  281. homeassistant-stubs/components/onkyo/util.pyi +3 -0
  282. homeassistant-stubs/components/open_router/__init__.pyi +15 -0
  283. homeassistant-stubs/components/open_router/ai_task.pyi +17 -0
  284. homeassistant-stubs/components/open_router/config_flow.pyi +30 -0
  285. homeassistant-stubs/components/open_router/const.pyi +8 -0
  286. homeassistant-stubs/components/open_router/conversation.pyi +20 -0
  287. homeassistant-stubs/components/open_router/entity.pyi +33 -0
  288. homeassistant-stubs/components/openai_conversation/__init__.pyi +4 -2
  289. homeassistant-stubs/components/openai_conversation/ai_task.pyi +16 -0
  290. homeassistant-stubs/components/openai_conversation/config_flow.pyi +2 -3
  291. homeassistant-stubs/components/openai_conversation/const.pyi +9 -1
  292. homeassistant-stubs/components/openai_conversation/conversation.pyi +6 -22
  293. homeassistant-stubs/components/openai_conversation/entity.pyi +36 -0
  294. homeassistant-stubs/components/opower/__init__.pyi +8 -0
  295. homeassistant-stubs/components/opower/config_flow.pyi +30 -0
  296. homeassistant-stubs/components/opower/const.pyi +4 -0
  297. homeassistant-stubs/components/opower/coordinator.pyi +24 -0
  298. homeassistant-stubs/components/opower/sensor.pyi +35 -0
  299. homeassistant-stubs/components/pegel_online/__init__.pyi +1 -1
  300. homeassistant-stubs/components/pegel_online/sensor.pyi +2 -0
  301. homeassistant-stubs/components/pi_hole/__init__.pyi +6 -2
  302. homeassistant-stubs/components/pi_hole/config_flow.pyi +1 -2
  303. homeassistant-stubs/components/pi_hole/const.pyi +1 -0
  304. homeassistant-stubs/components/pi_hole/sensor.pyi +5 -0
  305. homeassistant-stubs/components/pi_hole/update.pyi +3 -3
  306. homeassistant-stubs/components/ping/__init__.pyi +0 -1
  307. homeassistant-stubs/components/ping/config_flow.pyi +3 -3
  308. homeassistant-stubs/components/plugwise/select.pyi +1 -1
  309. homeassistant-stubs/components/proximity/__init__.pyi +0 -1
  310. homeassistant-stubs/components/proximity/config_flow.pyi +3 -3
  311. homeassistant-stubs/components/purpleair/__init__.pyi +0 -1
  312. homeassistant-stubs/components/purpleair/config_flow.pyi +2 -2
  313. homeassistant-stubs/components/pyload/config_flow.pyi +4 -0
  314. homeassistant-stubs/components/recorder/pool.pyi +2 -1
  315. homeassistant-stubs/components/renault/__init__.pyi +1 -1
  316. homeassistant-stubs/components/renault/services.pyi +3 -2
  317. homeassistant-stubs/components/reolink/__init__.pyi +0 -1
  318. homeassistant-stubs/components/reolink/config_flow.pyi +2 -2
  319. homeassistant-stubs/components/reolink/number.pyi +1 -1
  320. homeassistant-stubs/components/reolink/sensor.pyi +1 -1
  321. homeassistant-stubs/components/rest/sensor.pyi +1 -3
  322. homeassistant-stubs/components/roborock/__init__.pyi +0 -1
  323. homeassistant-stubs/components/roborock/config_flow.pyi +2 -2
  324. homeassistant-stubs/components/roborock/vacuum.pyi +0 -2
  325. homeassistant-stubs/components/roku/__init__.pyi +0 -1
  326. homeassistant-stubs/components/roku/config_flow.pyi +2 -2
  327. homeassistant-stubs/components/russound_rio/const.pyi +2 -0
  328. homeassistant-stubs/components/russound_rio/media_player.pyi +6 -0
  329. homeassistant-stubs/components/scrape/sensor.pyi +1 -2
  330. homeassistant-stubs/components/sensor/const.pyi +2 -1
  331. homeassistant-stubs/components/sensor/device_condition.pyi +1 -0
  332. homeassistant-stubs/components/sensor/device_trigger.pyi +1 -0
  333. homeassistant-stubs/components/shelly/button.pyi +2 -2
  334. homeassistant-stubs/components/shelly/climate.pyi +2 -2
  335. homeassistant-stubs/components/shelly/coordinator.pyi +5 -1
  336. homeassistant-stubs/components/shelly/entity.pyi +3 -0
  337. homeassistant-stubs/components/shelly/event.pyi +2 -2
  338. homeassistant-stubs/components/shelly/sensor.pyi +2 -2
  339. homeassistant-stubs/components/shelly/utils.pyi +2 -2
  340. homeassistant-stubs/components/sleepiq/const.pyi +2 -0
  341. homeassistant-stubs/components/sleepiq/number.pyi +7 -3
  342. homeassistant-stubs/components/sleepiq/select.pyi +15 -2
  343. homeassistant-stubs/components/smhi/coordinator.pyi +3 -0
  344. homeassistant-stubs/components/smhi/entity.pyi +3 -1
  345. homeassistant-stubs/components/smhi/sensor.pyi +30 -0
  346. homeassistant-stubs/components/smhi/weather.pyi +4 -2
  347. homeassistant-stubs/components/sonarr/__init__.pyi +0 -1
  348. homeassistant-stubs/components/sonarr/config_flow.pyi +2 -2
  349. homeassistant-stubs/components/speedtestdotnet/__init__.pyi +0 -1
  350. homeassistant-stubs/components/speedtestdotnet/config_flow.pyi +2 -2
  351. homeassistant-stubs/components/sql/__init__.pyi +0 -1
  352. homeassistant-stubs/components/sql/config_flow.pyi +2 -2
  353. homeassistant-stubs/components/squeezebox/__init__.pyi +3 -2
  354. homeassistant-stubs/components/squeezebox/browse_media.pyi +3 -1
  355. homeassistant-stubs/components/squeezebox/const.pyi +2 -3
  356. homeassistant-stubs/components/squeezebox/coordinator.pyi +2 -2
  357. homeassistant-stubs/components/squeezebox/media_player.pyi +3 -2
  358. homeassistant-stubs/components/statistics/__init__.pyi +3 -1
  359. homeassistant-stubs/components/statistics/config_flow.pyi +1 -0
  360. homeassistant-stubs/components/statistics/sensor.pyi +5 -5
  361. homeassistant-stubs/components/stookwijzer/__init__.pyi +4 -0
  362. homeassistant-stubs/components/stookwijzer/const.pyi +2 -0
  363. homeassistant-stubs/components/stookwijzer/services.pyi +17 -0
  364. homeassistant-stubs/components/switch_as_x/__init__.pyi +2 -2
  365. homeassistant-stubs/components/switch_as_x/entity.pyi +1 -3
  366. homeassistant-stubs/components/switchbot_cloud/__init__.pyi +2 -0
  367. homeassistant-stubs/components/switchbot_cloud/const.pyi +1 -0
  368. homeassistant-stubs/components/switchbot_cloud/fan.pyi +26 -0
  369. homeassistant-stubs/components/switchbot_cloud/light.pyi +40 -0
  370. homeassistant-stubs/components/switchbot_cloud/vacuum.pyi +17 -1
  371. homeassistant-stubs/components/synology_dsm/__init__.pyi +0 -1
  372. homeassistant-stubs/components/synology_dsm/config_flow.pyi +2 -2
  373. homeassistant-stubs/components/tankerkoenig/__init__.pyi +10 -0
  374. homeassistant-stubs/components/tankerkoenig/binary_sensor.pyi +23 -0
  375. homeassistant-stubs/components/tankerkoenig/config_flow.pyi +33 -0
  376. homeassistant-stubs/components/tankerkoenig/const.pyi +13 -0
  377. homeassistant-stubs/components/tankerkoenig/coordinator.pyi +22 -0
  378. homeassistant-stubs/components/tankerkoenig/diagnostics.pyi +10 -0
  379. homeassistant-stubs/components/tankerkoenig/entity.pyi +11 -0
  380. homeassistant-stubs/components/tankerkoenig/sensor.pyi +28 -0
  381. homeassistant-stubs/components/telegram_bot/webhooks.pyi +3 -1
  382. homeassistant-stubs/components/threshold/__init__.pyi +5 -1
  383. homeassistant-stubs/components/threshold/binary_sensor.pyi +3 -4
  384. homeassistant-stubs/components/threshold/config_flow.pyi +1 -0
  385. homeassistant-stubs/components/time_date/config_flow.pyi +1 -2
  386. homeassistant-stubs/components/trafikverket_train/__init__.pyi +0 -1
  387. homeassistant-stubs/components/trafikverket_train/config_flow.pyi +2 -2
  388. homeassistant-stubs/components/trend/__init__.pyi +3 -1
  389. homeassistant-stubs/components/trend/binary_sensor.pyi +3 -4
  390. homeassistant-stubs/components/trend/config_flow.pyi +1 -0
  391. homeassistant-stubs/components/tts/entity.pyi +0 -2
  392. homeassistant-stubs/components/unifi/hub/entity_loader.pyi +3 -2
  393. homeassistant-stubs/components/unifiprotect/__init__.pyi +5 -5
  394. homeassistant-stubs/components/unifiprotect/config_flow.pyi +5 -5
  395. homeassistant-stubs/components/unifiprotect/repairs.pyi +0 -6
  396. homeassistant-stubs/components/unifiprotect/services.pyi +1 -1
  397. homeassistant-stubs/components/uptime_kuma/__init__.pyi +14 -0
  398. homeassistant-stubs/components/uptime_kuma/config_flow.pyi +26 -0
  399. homeassistant-stubs/components/uptime_kuma/const.pyi +7 -0
  400. homeassistant-stubs/components/uptime_kuma/coordinator.pyi +30 -0
  401. homeassistant-stubs/components/uptime_kuma/diagnostics.pyi +9 -0
  402. homeassistant-stubs/components/uptime_kuma/sensor.pyi +46 -0
  403. homeassistant-stubs/components/uptime_kuma/update.pyi +39 -0
  404. homeassistant-stubs/components/vacuum/__init__.pyi +8 -0
  405. homeassistant-stubs/components/velbus/__init__.pyi +1 -1
  406. homeassistant-stubs/components/velbus/const.pyi +0 -1
  407. homeassistant-stubs/components/velbus/services.pyi +4 -4
  408. homeassistant-stubs/components/vodafone_station/__init__.pyi +0 -1
  409. homeassistant-stubs/components/vodafone_station/config_flow.pyi +2 -2
  410. homeassistant-stubs/components/volvo/__init__.pyi +15 -0
  411. homeassistant-stubs/components/volvo/api.pyi +14 -0
  412. homeassistant-stubs/components/volvo/application_credentials.pyi +9 -0
  413. homeassistant-stubs/components/volvo/config_flow.pyi +36 -0
  414. homeassistant-stubs/components/volvo/const.pyi +8 -0
  415. homeassistant-stubs/components/volvo/coordinator.pyi +46 -0
  416. homeassistant-stubs/components/volvo/entity.pyi +33 -0
  417. homeassistant-stubs/components/volvo/sensor.pyi +35 -0
  418. homeassistant-stubs/components/wallbox/__init__.pyi +4 -5
  419. homeassistant-stubs/components/wallbox/coordinator.pyi +8 -2
  420. homeassistant-stubs/components/wallbox/lock.pyi +5 -4
  421. homeassistant-stubs/components/wallbox/number.pyi +6 -5
  422. homeassistant-stubs/components/wallbox/select.pyi +4 -3
  423. homeassistant-stubs/components/wallbox/sensor.pyi +5 -4
  424. homeassistant-stubs/components/wallbox/switch.pyi +5 -4
  425. homeassistant-stubs/components/waqi/__init__.pyi +3 -5
  426. homeassistant-stubs/components/waqi/coordinator.pyi +3 -2
  427. homeassistant-stubs/components/waqi/sensor.pyi +2 -13
  428. homeassistant-stubs/components/webostv/__init__.pyi +0 -1
  429. homeassistant-stubs/components/webostv/config_flow.pyi +3 -3
  430. homeassistant-stubs/components/websocket_api/commands.pyi +4 -0
  431. homeassistant-stubs/components/wiz/fan.pyi +34 -0
  432. homeassistant-stubs/components/wled/__init__.pyi +0 -1
  433. homeassistant-stubs/components/wled/config_flow.pyi +2 -2
  434. homeassistant-stubs/components/workday/__init__.pyi +0 -1
  435. homeassistant-stubs/components/workday/config_flow.pyi +2 -2
  436. homeassistant-stubs/components/yale_smart_alarm/__init__.pyi +0 -1
  437. homeassistant-stubs/components/yale_smart_alarm/config_flow.pyi +2 -2
  438. homeassistant-stubs/components/yalexs_ble/lock.pyi +14 -2
  439. homeassistant-stubs/components/zone/condition.pyi +22 -0
  440. homeassistant-stubs/components/zone/trigger.pyi +2 -1
  441. homeassistant-stubs/components/zwave_js/__init__.pyi +12 -10
  442. homeassistant-stubs/components/zwave_js/api.pyi +36 -35
  443. homeassistant-stubs/components/zwave_js/binary_sensor.pyi +7 -7
  444. homeassistant-stubs/components/zwave_js/button.pyi +5 -5
  445. homeassistant-stubs/components/zwave_js/climate.pyi +5 -5
  446. homeassistant-stubs/components/zwave_js/config_flow.pyi +7 -4
  447. homeassistant-stubs/components/zwave_js/const.pyi +0 -3
  448. homeassistant-stubs/components/zwave_js/cover.pyi +7 -7
  449. homeassistant-stubs/components/zwave_js/device_automation_helpers.pyi +1 -1
  450. homeassistant-stubs/components/zwave_js/diagnostics.pyi +5 -5
  451. homeassistant-stubs/components/zwave_js/entity.pyi +0 -4
  452. homeassistant-stubs/components/zwave_js/event.pyi +4 -4
  453. homeassistant-stubs/components/zwave_js/fan.pyi +6 -6
  454. homeassistant-stubs/components/zwave_js/helpers.pyi +10 -6
  455. homeassistant-stubs/components/zwave_js/humidifier.pyi +4 -4
  456. homeassistant-stubs/components/zwave_js/light.pyi +15 -5
  457. homeassistant-stubs/components/zwave_js/lock.pyi +3 -3
  458. homeassistant-stubs/components/zwave_js/models.pyi +12 -0
  459. homeassistant-stubs/components/zwave_js/number.pyi +6 -6
  460. homeassistant-stubs/components/zwave_js/select.pyi +8 -8
  461. homeassistant-stubs/components/zwave_js/sensor.pyi +10 -10
  462. homeassistant-stubs/components/zwave_js/siren.pyi +4 -4
  463. homeassistant-stubs/components/zwave_js/switch.pyi +7 -7
  464. homeassistant-stubs/components/zwave_js/triggers/event.pyi +1 -2
  465. homeassistant-stubs/components/zwave_js/triggers/trigger_helpers.pyi +1 -1
  466. homeassistant-stubs/components/zwave_js/update.pyi +28 -18
  467. homeassistant-stubs/config.pyi +0 -2
  468. homeassistant-stubs/config_entries.pyi +3 -0
  469. homeassistant-stubs/const.pyi +2 -0
  470. homeassistant-stubs/core.pyi +12 -8
  471. homeassistant-stubs/helpers/condition.pyi +25 -6
  472. homeassistant-stubs/helpers/config_validation.pyi +0 -2
  473. homeassistant-stubs/helpers/device.pyi +2 -0
  474. homeassistant-stubs/helpers/device_registry.pyi +16 -8
  475. homeassistant-stubs/helpers/entity.pyi +3 -1
  476. homeassistant-stubs/helpers/entity_platform.pyi +30 -9
  477. homeassistant-stubs/helpers/frame.pyi +1 -1
  478. homeassistant-stubs/helpers/helper_integration.pyi +2 -1
  479. homeassistant-stubs/helpers/llm.pyi +5 -1
  480. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +1 -0
  481. homeassistant-stubs/helpers/selector.pyi +42 -37
  482. homeassistant-stubs/helpers/service.pyi +9 -26
  483. homeassistant-stubs/helpers/target.pyi +59 -0
  484. homeassistant-stubs/helpers/trigger.pyi +3 -1
  485. homeassistant-stubs/helpers/trigger_template_entity.pyi +5 -1
  486. homeassistant-stubs/loader.pyi +2 -9
  487. homeassistant-stubs/runner.pyi +1 -0
  488. homeassistant-stubs/util/resource.pyi +7 -0
  489. homeassistant-stubs/util/unit_conversion.pyi +1 -1
  490. {homeassistant_stubs-2025.7.3.dist-info → homeassistant_stubs-2025.8.0.dist-info}/METADATA +2 -2
  491. {homeassistant_stubs-2025.7.3.dist-info → homeassistant_stubs-2025.8.0.dist-info}/RECORD +493 -424
  492. homeassistant-stubs/components/backup/basic_websocket.pyi +0 -12
  493. homeassistant-stubs/helpers/backup.pyi +0 -24
  494. {homeassistant_stubs-2025.7.3.dist-info → homeassistant_stubs-2025.8.0.dist-info}/WHEEL +0 -0
  495. {homeassistant_stubs-2025.7.3.dist-info → homeassistant_stubs-2025.8.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,4 +1,4 @@
1
- from .const import ADMIN_SERVICES as ADMIN_SERVICES, ALL_KEYS as ALL_KEYS, ATTR_CONFIG_ENTRY_ID as ATTR_CONFIG_ENTRY_ID, CONF_MANUFACTURER as CONF_MANUFACTURER, CONF_UNAUTHENTICATED_MODE as CONF_UNAUTHENTICATED_MODE, CONNECTION_TIMEOUT as CONNECTION_TIMEOUT, DEFAULT_DEVICE_NAME as DEFAULT_DEVICE_NAME, DEFAULT_MANUFACTURER as DEFAULT_MANUFACTURER, DEFAULT_NOTIFY_SERVICE_NAME as DEFAULT_NOTIFY_SERVICE_NAME, DOMAIN as DOMAIN, KEY_DEVICE_BASIC_INFORMATION as KEY_DEVICE_BASIC_INFORMATION, KEY_DEVICE_INFORMATION as KEY_DEVICE_INFORMATION, KEY_DEVICE_SIGNAL as KEY_DEVICE_SIGNAL, KEY_DIALUP_MOBILE_DATASWITCH as KEY_DIALUP_MOBILE_DATASWITCH, KEY_LAN_HOST_INFO as KEY_LAN_HOST_INFO, KEY_MONITORING_CHECK_NOTIFICATIONS as KEY_MONITORING_CHECK_NOTIFICATIONS, KEY_MONITORING_MONTH_STATISTICS as KEY_MONITORING_MONTH_STATISTICS, KEY_MONITORING_STATUS as KEY_MONITORING_STATUS, KEY_MONITORING_TRAFFIC_STATISTICS as KEY_MONITORING_TRAFFIC_STATISTICS, KEY_NET_CURRENT_PLMN as KEY_NET_CURRENT_PLMN, KEY_NET_NET_MODE as KEY_NET_NET_MODE, KEY_SMS_SMS_COUNT as KEY_SMS_SMS_COUNT, KEY_WLAN_HOST_LIST as KEY_WLAN_HOST_LIST, KEY_WLAN_WIFI_FEATURE_SWITCH as KEY_WLAN_WIFI_FEATURE_SWITCH, KEY_WLAN_WIFI_GUEST_NETWORK_SWITCH as KEY_WLAN_WIFI_GUEST_NETWORK_SWITCH, NOTIFY_SUPPRESS_TIMEOUT as NOTIFY_SUPPRESS_TIMEOUT, SERVICE_RESUME_INTEGRATION as SERVICE_RESUME_INTEGRATION, SERVICE_SUSPEND_INTEGRATION as SERVICE_SUSPEND_INTEGRATION, UPDATE_SIGNAL as UPDATE_SIGNAL
1
+ from .const import ADMIN_SERVICES as ADMIN_SERVICES, ALL_KEYS as ALL_KEYS, ATTR_CONFIG_ENTRY_ID as ATTR_CONFIG_ENTRY_ID, CONF_MANUFACTURER as CONF_MANUFACTURER, CONF_UNAUTHENTICATED_MODE as CONF_UNAUTHENTICATED_MODE, CONF_UPNP_UDN as CONF_UPNP_UDN, CONNECTION_TIMEOUT as CONNECTION_TIMEOUT, DEFAULT_DEVICE_NAME as DEFAULT_DEVICE_NAME, DEFAULT_MANUFACTURER as DEFAULT_MANUFACTURER, DEFAULT_NOTIFY_SERVICE_NAME as DEFAULT_NOTIFY_SERVICE_NAME, DOMAIN as DOMAIN, KEY_DEVICE_BASIC_INFORMATION as KEY_DEVICE_BASIC_INFORMATION, KEY_DEVICE_INFORMATION as KEY_DEVICE_INFORMATION, KEY_DEVICE_SIGNAL as KEY_DEVICE_SIGNAL, KEY_DIALUP_MOBILE_DATASWITCH as KEY_DIALUP_MOBILE_DATASWITCH, KEY_LAN_HOST_INFO as KEY_LAN_HOST_INFO, KEY_MONITORING_CHECK_NOTIFICATIONS as KEY_MONITORING_CHECK_NOTIFICATIONS, KEY_MONITORING_MONTH_STATISTICS as KEY_MONITORING_MONTH_STATISTICS, KEY_MONITORING_STATUS as KEY_MONITORING_STATUS, KEY_MONITORING_TRAFFIC_STATISTICS as KEY_MONITORING_TRAFFIC_STATISTICS, KEY_NET_CURRENT_PLMN as KEY_NET_CURRENT_PLMN, KEY_NET_NET_MODE as KEY_NET_NET_MODE, KEY_SMS_SMS_COUNT as KEY_SMS_SMS_COUNT, KEY_WLAN_HOST_LIST as KEY_WLAN_HOST_LIST, KEY_WLAN_WIFI_FEATURE_SWITCH as KEY_WLAN_WIFI_FEATURE_SWITCH, KEY_WLAN_WIFI_GUEST_NETWORK_SWITCH as KEY_WLAN_WIFI_GUEST_NETWORK_SWITCH, SERVICE_RESUME_INTEGRATION as SERVICE_RESUME_INTEGRATION, SERVICE_SUSPEND_INTEGRATION as SERVICE_SUSPEND_INTEGRATION, UPDATE_SIGNAL as UPDATE_SIGNAL
2
2
  from .utils import get_device_macs as get_device_macs, non_verifying_requests_session as non_verifying_requests_session
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Callable as Callable
@@ -34,7 +34,6 @@ class Router:
34
34
  inflight_gets: set[str] = field(default_factory=set, init=False)
35
35
  client: Client = field(init=False)
36
36
  suspended: bool = field(default=False, init=False)
37
- notify_last_attempt: float = field(default=-1, init=False)
38
37
  def __post_init__(self) -> None: ...
39
38
  @property
40
39
  def device_name(self) -> str: ...
@@ -1,4 +1,4 @@
1
- from .const import CONF_MANUFACTURER as CONF_MANUFACTURER, CONF_TRACK_WIRED_CLIENTS as CONF_TRACK_WIRED_CLIENTS, CONF_UNAUTHENTICATED_MODE as CONF_UNAUTHENTICATED_MODE, CONNECTION_TIMEOUT as CONNECTION_TIMEOUT, DEFAULT_DEVICE_NAME as DEFAULT_DEVICE_NAME, DEFAULT_NOTIFY_SERVICE_NAME as DEFAULT_NOTIFY_SERVICE_NAME, DEFAULT_TRACK_WIRED_CLIENTS as DEFAULT_TRACK_WIRED_CLIENTS, DEFAULT_UNAUTHENTICATED_MODE as DEFAULT_UNAUTHENTICATED_MODE, DOMAIN as DOMAIN
1
+ from .const import CONF_MANUFACTURER as CONF_MANUFACTURER, CONF_TRACK_WIRED_CLIENTS as CONF_TRACK_WIRED_CLIENTS, CONF_UNAUTHENTICATED_MODE as CONF_UNAUTHENTICATED_MODE, CONF_UPNP_UDN as CONF_UPNP_UDN, CONNECTION_TIMEOUT as CONNECTION_TIMEOUT, DEFAULT_DEVICE_NAME as DEFAULT_DEVICE_NAME, DEFAULT_NOTIFY_SERVICE_NAME as DEFAULT_NOTIFY_SERVICE_NAME, DEFAULT_TRACK_WIRED_CLIENTS as DEFAULT_TRACK_WIRED_CLIENTS, DEFAULT_UNAUTHENTICATED_MODE as DEFAULT_UNAUTHENTICATED_MODE, DOMAIN as DOMAIN
2
2
  from .utils import get_device_macs as get_device_macs, non_verifying_requests_session as non_verifying_requests_session
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Mapping
@@ -12,13 +12,14 @@ from typing import Any
12
12
 
13
13
  _LOGGER: Incomplete
14
14
 
15
- class ConfigFlowHandler(ConfigFlow, domain=DOMAIN):
15
+ class HuaweiLteConfigFlow(ConfigFlow, domain=DOMAIN):
16
16
  VERSION: int
17
17
  manufacturer: str | None
18
+ upnp_udn: str | None
18
19
  url: str | None
19
20
  @staticmethod
20
21
  @callback
21
- def async_get_options_flow(config_entry: ConfigEntry) -> OptionsFlowHandler: ...
22
+ def async_get_options_flow(config_entry: ConfigEntry) -> HuaweiLteOptionsFlow: ...
22
23
  async def _async_show_user_form(self, user_input: dict[str, Any] | None = None, errors: dict[str, str] | None = None) -> ConfigFlowResult: ...
23
24
  async def _async_show_reauth_form(self, user_input: dict[str, Any], errors: dict[str, str] | None = None) -> ConfigFlowResult: ...
24
25
  async def _connect(self, user_input: dict[str, Any], errors: dict[str, str]) -> Connection | None: ...
@@ -29,5 +30,5 @@ class ConfigFlowHandler(ConfigFlow, domain=DOMAIN):
29
30
  async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
30
31
  async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
31
32
 
32
- class OptionsFlowHandler(OptionsFlow):
33
+ class HuaweiLteOptionsFlow(OptionsFlow):
33
34
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -5,6 +5,7 @@ ATTR_CONFIG_ENTRY_ID: str
5
5
  CONF_MANUFACTURER: str
6
6
  CONF_TRACK_WIRED_CLIENTS: str
7
7
  CONF_UNAUTHENTICATED_MODE: str
8
+ CONF_UPNP_UDN: str
8
9
  DEFAULT_DEVICE_NAME: str
9
10
  DEFAULT_MANUFACTURER: str
10
11
  DEFAULT_NOTIFY_SERVICE_NAME = DOMAIN
@@ -12,7 +13,6 @@ DEFAULT_TRACK_WIRED_CLIENTS: bool
12
13
  DEFAULT_UNAUTHENTICATED_MODE: bool
13
14
  UPDATE_SIGNAL: Incomplete
14
15
  CONNECTION_TIMEOUT: int
15
- NOTIFY_SUPPRESS_TIMEOUT: int
16
16
  SERVICE_RESUME_INTEGRATION: str
17
17
  SERVICE_SUSPEND_INTEGRATION: str
18
18
  ADMIN_SERVICES: Incomplete
@@ -0,0 +1,18 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from _typeshed import Incomplete
3
+ from homeassistant.components.diagnostics import async_redact_data as async_redact_data
4
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
+ from homeassistant.core import HomeAssistant as HomeAssistant
6
+ from typing import Any
7
+
8
+ ENTRY_FIELDS_DATA_TO_REDACT: Incomplete
9
+ DEVICE_INFORMATION_DATA_TO_REDACT: Incomplete
10
+ DEVICE_SIGNAL_DATA_TO_REDACT: Incomplete
11
+ MONITORING_STATUS_DATA_TO_REDACT: Incomplete
12
+ NET_CURRENT_PLMN_DATA_TO_REDACT: Incomplete
13
+ LAN_HOST_INFO_DATA_TO_REDACT: Incomplete
14
+ WLAN_WIFI_GUEST_NETWORK_SWITCH_DATA_TO_REDACT: Incomplete
15
+ WLAN_MULTI_BASIC_SETTINGS_DATA_TO_REDACT: Incomplete
16
+ TO_REDACT: Incomplete
17
+
18
+ async def async_get_config_entry_diagnostics(hass: HomeAssistant, entry: ConfigEntry) -> dict[str, Any]: ...
@@ -1,6 +1,6 @@
1
1
  from . import AutomowerConfigEntry as AutomowerConfigEntry
2
2
  from .coordinator import AutomowerDataUpdateCoordinator as AutomowerDataUpdateCoordinator
3
- from .entity import AutomowerAvailableEntity as AutomowerAvailableEntity, _check_error_free as _check_error_free, handle_sending_exception as handle_sending_exception
3
+ from .entity import AutomowerControlEntity as AutomowerControlEntity, handle_sending_exception as handle_sending_exception
4
4
  from _typeshed import Incomplete
5
5
  from aioautomower.model import MowerAttributes as MowerAttributes
6
6
  from aioautomower.session import AutomowerSession as AutomowerSession
@@ -24,7 +24,7 @@ MOWER_BUTTON_TYPES: tuple[AutomowerButtonEntityDescription, ...]
24
24
 
25
25
  async def async_setup_entry(hass: HomeAssistant, entry: AutomowerConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
26
26
 
27
- class AutomowerButtonEntity(AutomowerAvailableEntity, ButtonEntity):
27
+ class AutomowerButtonEntity(AutomowerControlEntity, ButtonEntity):
28
28
  entity_description: AutomowerButtonEntityDescription
29
29
  _attr_unique_id: Incomplete
30
30
  def __init__(self, mower_id: str, coordinator: AutomowerDataUpdateCoordinator, description: AutomowerButtonEntityDescription) -> None: ...
@@ -1,4 +1,5 @@
1
1
  from . import AutomowerConfigEntry as AutomowerConfigEntry
2
+ from .const import DOMAIN as DOMAIN
2
3
  from .coordinator import AutomowerDataUpdateCoordinator as AutomowerDataUpdateCoordinator
3
4
  from .entity import AutomowerBaseEntity as AutomowerBaseEntity
4
5
  from _typeshed import Incomplete
@@ -18,5 +19,7 @@ class AutomowerCalendarEntity(AutomowerBaseEntity, CalendarEntity):
18
19
  _event: CalendarEvent | None
19
20
  def __init__(self, mower_id: str, coordinator: AutomowerDataUpdateCoordinator) -> None: ...
20
21
  @property
22
+ def device_name(self) -> str: ...
23
+ @property
21
24
  def event(self) -> CalendarEvent | None: ...
22
25
  async def async_get_events(self, hass: HomeAssistant, start_date: datetime, end_date: datetime) -> list[CalendarEvent]: ...
@@ -7,6 +7,7 @@ from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
8
8
  from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed
9
9
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
10
+ from typing import override
10
11
 
11
12
  _LOGGER: Incomplete
12
13
  MAX_WS_RECONNECT_TIME: int
@@ -22,20 +23,21 @@ class AutomowerDataUpdateCoordinator(DataUpdateCoordinator[MowerDictionary]):
22
23
  new_devices_callbacks: list[Callable[[set[str]], None]]
23
24
  new_zones_callbacks: list[Callable[[str, set[str]], None]]
24
25
  new_areas_callbacks: list[Callable[[str, set[int]], None]]
25
- _devices_last_update: set[str]
26
- _zones_last_update: dict[str, set[str]]
27
- _areas_last_update: dict[str, set[int]]
28
26
  def __init__(self, hass: HomeAssistant, config_entry: AutomowerConfigEntry, api: AutomowerSession) -> None: ...
29
- def _async_add_remove_devices_and_entities(self, data: MowerDictionary) -> None: ...
27
+ @override
28
+ @callback
29
+ def async_update_listeners(self) -> None: ...
30
30
  async def _async_update_data(self) -> MowerDictionary: ...
31
31
  @callback
32
- def callback(self, ws_data: MowerDictionary) -> None: ...
33
- async def client_listen(self, hass: HomeAssistant, entry: AutomowerConfigEntry, automower_client: AutomowerSession) -> None: ...
32
+ def _on_data_update(self) -> None: ...
33
+ @callback
34
+ def handle_websocket_updates(self, ws_data: MowerDictionary) -> None: ...
35
+ async def _process_websocket_update(self, ws_data: MowerDictionary) -> None: ...
34
36
  data: Incomplete
35
- def _async_add_remove_devices(self, data: MowerDictionary) -> None: ...
36
- def _remove_device(self, removed_devices: set[str]) -> None: ...
37
- def _add_new_devices(self, new_devices: set[str]) -> None: ...
38
- def _async_add_remove_stay_out_zones(self, data: MowerDictionary) -> None: ...
39
- def _update_stay_out_zones(self, current_zones: dict[str, set[str]]) -> dict[str, set[str]]: ...
40
- def _async_add_remove_work_areas(self, data: MowerDictionary) -> None: ...
41
- def _update_work_areas(self, current_areas: dict[str, set[int]]) -> dict[str, set[int]]: ...
37
+ last_update_success: bool
38
+ @callback
39
+ def async_set_updated_data(self, data: MowerDictionary) -> None: ...
40
+ async def client_listen(self, hass: HomeAssistant, entry: AutomowerConfigEntry, automower_client: AutomowerSession) -> None: ...
41
+ def _async_add_remove_devices(self) -> None: ...
42
+ def _async_add_remove_stay_out_zones(self) -> None: ...
43
+ def _async_add_remove_work_areas(self) -> None: ...
@@ -13,8 +13,6 @@ _LOGGER: Incomplete
13
13
  ERROR_ACTIVITIES: Incomplete
14
14
  ERROR_STATES: Incomplete
15
15
 
16
- @callback
17
- def _check_error_free(mower_attributes: MowerAttributes) -> bool: ...
18
16
  @callback
19
17
  def _work_area_translation_key(work_area_id: int, key: str) -> str: ...
20
18
  type _FuncType[_T, **_P, _R] = Callable[Concatenate[_T, _P], Coroutine[Any, Any, _R]]
@@ -27,16 +25,14 @@ class AutomowerBaseEntity(CoordinatorEntity[AutomowerDataUpdateCoordinator]):
27
25
  def __init__(self, mower_id: str, coordinator: AutomowerDataUpdateCoordinator) -> None: ...
28
26
  @property
29
27
  def mower_attributes(self) -> MowerAttributes: ...
30
-
31
- class AutomowerAvailableEntity(AutomowerBaseEntity):
32
28
  @property
33
29
  def available(self) -> bool: ...
34
30
 
35
- class AutomowerControlEntity(AutomowerAvailableEntity):
31
+ class AutomowerControlEntity(AutomowerBaseEntity):
36
32
  @property
37
33
  def available(self) -> bool: ...
38
34
 
39
- class WorkAreaAvailableEntity(AutomowerAvailableEntity):
35
+ class WorkAreaAvailableEntity(AutomowerControlEntity):
40
36
  work_area_id: Incomplete
41
37
  def __init__(self, mower_id: str, coordinator: AutomowerDataUpdateCoordinator, work_area_id: int) -> None: ...
42
38
  @property
@@ -1,7 +1,7 @@
1
1
  from . import AutomowerConfigEntry as AutomowerConfigEntry
2
2
  from .const import DOMAIN as DOMAIN, ERROR_STATES as ERROR_STATES
3
3
  from .coordinator import AutomowerDataUpdateCoordinator as AutomowerDataUpdateCoordinator
4
- from .entity import AutomowerAvailableEntity as AutomowerAvailableEntity, handle_sending_exception as handle_sending_exception
4
+ from .entity import AutomowerBaseEntity as AutomowerBaseEntity, handle_sending_exception as handle_sending_exception
5
5
  from _typeshed import Incomplete
6
6
  from aioautomower.model import WorkArea as WorkArea
7
7
  from datetime import timedelta
@@ -23,7 +23,7 @@ OVERRIDE_MODES: Incomplete
23
23
 
24
24
  async def async_setup_entry(hass: HomeAssistant, entry: AutomowerConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
25
25
 
26
- class AutomowerLawnMowerEntity(AutomowerAvailableEntity, LawnMowerEntity):
26
+ class AutomowerLawnMowerEntity(AutomowerBaseEntity, LawnMowerEntity):
27
27
  _attr_name: Incomplete
28
28
  _attr_supported_features = SUPPORT_STATE_SERVICES
29
29
  _attr_unique_id: Incomplete
@@ -19,9 +19,12 @@ PARALLEL_UPDATES: int
19
19
  ATTR_WORK_AREA_ID_ASSIGNMENT: str
20
20
  ERROR_KEYS: Incomplete
21
21
  ERROR_KEY_LIST: Incomplete
22
+ INACTIVE_REASONS: list
22
23
  RESTRICTED_REASONS: list
23
24
  STATE_NO_WORK_AREA_ACTIVE: str
24
25
 
26
+ @callback
27
+ def _get_restricted_reason(data: MowerAttributes) -> str: ...
25
28
  @callback
26
29
  def _get_work_area_names(data: MowerAttributes) -> list[str]: ...
27
30
  @callback
@@ -61,6 +64,8 @@ class AutomowerSensorEntity(AutomowerBaseEntity, SensorEntity):
61
64
  def options(self) -> list[str] | None: ...
62
65
  @property
63
66
  def extra_state_attributes(self) -> Mapping[str, Any] | None: ...
67
+ @property
68
+ def available(self) -> bool: ...
64
69
 
65
70
  class WorkAreaSensorEntity(WorkAreaAvailableEntity, SensorEntity):
66
71
  entity_description: WorkAreaSensorEntityDescription
@@ -10,7 +10,7 @@ from homeassistant.core import HomeAssistant as HomeAssistant
10
10
  from homeassistant.helpers import entity_platform as entity_platform
11
11
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
12
12
  from homeassistant.helpers.typing import VolDictType as VolDictType
13
- from pydrawise import Zone as Zone
13
+ from pydrawise import Controller as Controller, Zone as Zone
14
14
 
15
15
  @dataclass(frozen=True, kw_only=True)
16
16
  class HydrawiseBinarySensorEntityDescription(BinarySensorEntityDescription):
@@ -5,6 +5,7 @@ APP_ID: Incomplete
5
5
  DOMAIN: str
6
6
  DEFAULT_WATERING_TIME: Incomplete
7
7
  MANUFACTURER: str
8
+ MODEL_ZONE: str
8
9
  MAIN_SCAN_INTERVAL: Incomplete
9
10
  WATER_USE_SCAN_INTERVAL: Incomplete
10
11
  SIGNAL_UPDATE_HYDRAWISE: str
@@ -1,8 +1,10 @@
1
- from .const import DOMAIN as DOMAIN, LOGGER as LOGGER, MAIN_SCAN_INTERVAL as MAIN_SCAN_INTERVAL, WATER_USE_SCAN_INTERVAL as WATER_USE_SCAN_INTERVAL
1
+ from .const import DOMAIN as DOMAIN, LOGGER as LOGGER, MAIN_SCAN_INTERVAL as MAIN_SCAN_INTERVAL, MODEL_ZONE as MODEL_ZONE, WATER_USE_SCAN_INTERVAL as WATER_USE_SCAN_INTERVAL
2
2
  from _typeshed import Incomplete
3
+ from collections.abc import Callable as Callable, Iterable
3
4
  from dataclasses import dataclass, field
4
5
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
- from homeassistant.core import HomeAssistant as HomeAssistant
6
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
7
+ from homeassistant.helpers.device_registry import DeviceEntry as DeviceEntry
6
8
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator
7
9
  from homeassistant.util.dt import now as now
8
10
  from pydrawise import HydrawiseBase as HydrawiseBase
@@ -14,6 +16,7 @@ class HydrawiseData:
14
16
  user: User
15
17
  controllers: dict[int, Controller] = field(default_factory=dict)
16
18
  zones: dict[int, Zone] = field(default_factory=dict)
19
+ zone_id_to_controller: dict[int, Controller] = field(default_factory=dict)
17
20
  sensors: dict[int, Sensor] = field(default_factory=dict)
18
21
  daily_water_summary: dict[int, ControllerWaterUseSummary] = field(default_factory=dict)
19
22
 
@@ -28,8 +31,12 @@ class HydrawiseDataUpdateCoordinator(DataUpdateCoordinator[HydrawiseData]):
28
31
 
29
32
  class HydrawiseMainDataUpdateCoordinator(HydrawiseDataUpdateCoordinator):
30
33
  api: Incomplete
34
+ new_controllers_callbacks: list[Callable[[Iterable[Controller]], None]]
35
+ new_zones_callbacks: list[Callable[[Iterable[tuple[Zone, Controller]]], None]]
31
36
  def __init__(self, hass: HomeAssistant, config_entry: HydrawiseConfigEntry, api: HydrawiseBase) -> None: ...
32
37
  async def _async_update_data(self) -> HydrawiseData: ...
38
+ @callback
39
+ def _add_remove_zones(self) -> None: ...
33
40
 
34
41
  class HydrawiseWaterUseDataUpdateCoordinator(HydrawiseDataUpdateCoordinator):
35
42
  _main_coordinator: HydrawiseMainDataUpdateCoordinator
@@ -1,4 +1,4 @@
1
- from .const import DOMAIN as DOMAIN, MANUFACTURER as MANUFACTURER
1
+ from .const import DOMAIN as DOMAIN, MANUFACTURER as MANUFACTURER, MODEL_ZONE as MODEL_ZONE
2
2
  from .coordinator import HydrawiseDataUpdateCoordinator as HydrawiseDataUpdateCoordinator
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.core import callback as callback
@@ -7,7 +7,7 @@ from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceCla
7
7
  from homeassistant.const import UnitOfTime as UnitOfTime, UnitOfVolume as UnitOfVolume
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant
9
9
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
10
- from pydrawise.schema import ControllerWaterUseSummary as ControllerWaterUseSummary
10
+ from pydrawise.schema import Controller as Controller, ControllerWaterUseSummary, Zone as Zone
11
11
  from typing import Any
12
12
 
13
13
  @dataclass(frozen=True, kw_only=True)
@@ -6,7 +6,7 @@ from dataclasses import dataclass
6
6
  from homeassistant.components.switch import SwitchDeviceClass as SwitchDeviceClass, SwitchEntity as SwitchEntity, SwitchEntityDescription as SwitchEntityDescription
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant
8
8
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
9
- from pydrawise import HydrawiseBase as HydrawiseBase, Zone as Zone
9
+ from pydrawise import Controller as Controller, HydrawiseBase as HydrawiseBase, Zone as Zone
10
10
  from typing import Any
11
11
 
12
12
  @dataclass(frozen=True, kw_only=True)
@@ -4,7 +4,7 @@ from _typeshed import Incomplete
4
4
  from homeassistant.components.valve import ValveDeviceClass as ValveDeviceClass, ValveEntity as ValveEntity, ValveEntityDescription as ValveEntityDescription, ValveEntityFeature as ValveEntityFeature
5
5
  from homeassistant.core import HomeAssistant as HomeAssistant
6
6
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
7
- from pydrawise.schema import Zone as Zone
7
+ from pydrawise.schema import Controller as Controller, Zone as Zone
8
8
  from typing import Any
9
9
 
10
10
  VALVE_TYPES: tuple[ValveEntityDescription, ...]
@@ -27,5 +27,4 @@ async def async_create_connect_hyperion_client(*args: Any, **kwargs: Any) -> cli
27
27
  @callback
28
28
  def listen_for_instance_updates(hass: HomeAssistant, entry: HyperionConfigEntry, add_func: Callable[[int, str], None], remove_func: Callable[[int], None]) -> None: ...
29
29
  async def async_setup_entry(hass: HomeAssistant, entry: HyperionConfigEntry) -> bool: ...
30
- async def _async_entry_updated(hass: HomeAssistant, entry: HyperionConfigEntry) -> None: ...
31
30
  async def async_unload_entry(hass: HomeAssistant, entry: HyperionConfigEntry) -> bool: ...
@@ -3,7 +3,7 @@ from . import create_hyperion_client as create_hyperion_client
3
3
  from .const import CONF_AUTH_ID as CONF_AUTH_ID, CONF_CREATE_TOKEN as CONF_CREATE_TOKEN, CONF_EFFECT_HIDE_LIST as CONF_EFFECT_HIDE_LIST, CONF_EFFECT_SHOW_LIST as CONF_EFFECT_SHOW_LIST, CONF_PRIORITY as CONF_PRIORITY, DEFAULT_ORIGIN as DEFAULT_ORIGIN, DEFAULT_PRIORITY as DEFAULT_PRIORITY, DOMAIN as DOMAIN
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Mapping
6
- from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow, SOURCE_REAUTH as SOURCE_REAUTH
6
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlowWithReload as OptionsFlowWithReload, SOURCE_REAUTH as SOURCE_REAUTH
7
7
  from homeassistant.const import CONF_BASE as CONF_BASE, CONF_HOST as CONF_HOST, CONF_ID as CONF_ID, CONF_PORT as CONF_PORT, CONF_SOURCE as CONF_SOURCE, CONF_TOKEN as CONF_TOKEN
8
8
  from homeassistant.core import callback as callback
9
9
  from homeassistant.helpers.service_info.ssdp import ATTR_UPNP_SERIAL as ATTR_UPNP_SERIAL, SsdpServiceInfo as SsdpServiceInfo
@@ -40,6 +40,6 @@ class HyperionConfigFlow(ConfigFlow, domain=DOMAIN):
40
40
  @callback
41
41
  def async_get_options_flow(config_entry: ConfigEntry) -> HyperionOptionsFlow: ...
42
42
 
43
- class HyperionOptionsFlow(OptionsFlow):
43
+ class HyperionOptionsFlow(OptionsFlowWithReload):
44
44
  def _create_client(self) -> client.HyperionClient: ...
45
45
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -5,17 +5,21 @@ from _typeshed import Incomplete
5
5
  from collections.abc import Callable as Callable
6
6
  from dataclasses import dataclass
7
7
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
8
- from homeassistant.const import UnitOfLength as UnitOfLength, UnitOfTemperature as UnitOfTemperature
8
+ from homeassistant.const import UnitOfLength as UnitOfLength, UnitOfTemperature as UnitOfTemperature, UnitOfVolumeFlowRate as UnitOfVolumeFlowRate
9
9
  from homeassistant.core import HomeAssistant as HomeAssistant
10
10
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
11
11
  from homeassistant.helpers.typing import StateType as StateType
12
12
  from imgw_pib.model import HydrologicalData as HydrologicalData
13
+ from typing import Any
13
14
 
14
15
  PARALLEL_UPDATES: int
15
16
 
17
+ def gen_alert_attributes(data: HydrologicalData) -> dict[str, Any] | None: ...
18
+
16
19
  @dataclass(frozen=True, kw_only=True)
17
20
  class ImgwPibSensorEntityDescription(SensorEntityDescription):
18
21
  value: Callable[[HydrologicalData], StateType]
22
+ attrs: Callable[[HydrologicalData], dict[str, Any] | None] | None = ...
19
23
 
20
24
  SENSOR_TYPES: tuple[ImgwPibSensorEntityDescription, ...]
21
25
 
@@ -27,3 +31,5 @@ class ImgwPibSensorEntity(ImgwPibEntity, SensorEntity):
27
31
  def __init__(self, coordinator: ImgwPibDataUpdateCoordinator, description: ImgwPibSensorEntityDescription) -> None: ...
28
32
  @property
29
33
  def native_value(self) -> StateType: ...
34
+ @property
35
+ def extra_state_attributes(self) -> dict[str, Any] | None: ...
@@ -1,10 +1,16 @@
1
+ from .const import DOMAIN as DOMAIN
1
2
  from .coordinator import ImmichConfigEntry as ImmichConfigEntry, ImmichDataUpdateCoordinator as ImmichDataUpdateCoordinator
3
+ from .services import async_setup_services as async_setup_services
4
+ from _typeshed import Incomplete
2
5
  from homeassistant.const import CONF_API_KEY as CONF_API_KEY, CONF_HOST as CONF_HOST, CONF_PORT as CONF_PORT, CONF_SSL as CONF_SSL, CONF_VERIFY_SSL as CONF_VERIFY_SSL, Platform as Platform
3
6
  from homeassistant.core import HomeAssistant as HomeAssistant
4
7
  from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
5
8
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
9
+ from homeassistant.helpers.typing import ConfigType as ConfigType
6
10
 
11
+ CONFIG_SCHEMA: Incomplete
7
12
  PLATFORMS: list[Platform]
8
13
 
14
+ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
9
15
  async def async_setup_entry(hass: HomeAssistant, entry: ImmichConfigEntry) -> bool: ...
10
16
  async def async_unload_entry(hass: HomeAssistant, entry: ImmichConfigEntry) -> bool: ...
@@ -2,6 +2,7 @@ from .const import DOMAIN as DOMAIN
2
2
  from .coordinator import ImmichConfigEntry as ImmichConfigEntry
3
3
  from _typeshed import Incomplete
4
4
  from aiohttp.web import Request as Request, Response, StreamResponse
5
+ from aioimmich.assets.models import ImmichAsset as ImmichAsset
5
6
  from homeassistant.components.http import HomeAssistantView as HomeAssistantView
6
7
  from homeassistant.components.media_player import MediaClass as MediaClass
7
8
  from homeassistant.components.media_source import BrowseError as BrowseError, BrowseMediaSource as BrowseMediaSource, MediaSource as MediaSource, MediaSourceItem as MediaSourceItem, PlayMedia as PlayMedia, Unresolvable as Unresolvable
@@ -0,0 +1,18 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .coordinator import ImmichConfigEntry as ImmichConfigEntry
3
+ from _typeshed import Incomplete
4
+ from homeassistant.components.media_source import async_resolve_media as async_resolve_media
5
+ from homeassistant.config_entries import ConfigEntryState as ConfigEntryState
6
+ from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall
7
+ from homeassistant.exceptions import ServiceValidationError as ServiceValidationError
8
+ from homeassistant.helpers.selector import MediaSelector as MediaSelector
9
+
10
+ _LOGGER: Incomplete
11
+ CONF_ALBUM_ID: str
12
+ CONF_CONFIG_ENTRY_ID: str
13
+ CONF_FILE: str
14
+ SERVICE_UPLOAD_FILE: str
15
+ SERVICE_SCHEMA_UPLOAD_FILE: Incomplete
16
+
17
+ async def _async_upload_file(service_call: ServiceCall) -> None: ...
18
+ async def async_setup_services(hass: HomeAssistant) -> None: ...
@@ -1,5 +1,5 @@
1
1
  from _typeshed import Incomplete
2
- from homeassistant.const import ATTR_EDITABLE as ATTR_EDITABLE, ATTR_MODE as ATTR_MODE, CONF_ICON as CONF_ICON, CONF_ID as CONF_ID, CONF_MODE as CONF_MODE, CONF_NAME as CONF_NAME, CONF_UNIT_OF_MEASUREMENT as CONF_UNIT_OF_MEASUREMENT, SERVICE_RELOAD as SERVICE_RELOAD
2
+ from homeassistant.const import ATTR_EDITABLE as ATTR_EDITABLE, ATTR_MODE as ATTR_MODE, CONF_ICON as CONF_ICON, CONF_ID as CONF_ID, CONF_MODE as CONF_MODE, CONF_NAME as CONF_NAME, CONF_UNIT_OF_MEASUREMENT as CONF_UNIT_OF_MEASUREMENT, MAX_LENGTH_STATE_STATE as MAX_LENGTH_STATE_STATE, SERVICE_RELOAD as SERVICE_RELOAD
3
3
  from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
4
4
  from homeassistant.helpers import collection as collection
5
5
  from homeassistant.helpers.entity_component import EntityComponent as EntityComponent
@@ -1,10 +1,14 @@
1
1
  from .const import CONF_SOURCE_SENSOR as CONF_SOURCE_SENSOR
2
+ from _typeshed import Incomplete
2
3
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
3
4
  from homeassistant.const import Platform as Platform
4
5
  from homeassistant.core import HomeAssistant as HomeAssistant
5
6
  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
7
+ 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
8
+
9
+ _LOGGER: Incomplete
7
10
 
8
11
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
12
+ async def async_migrate_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: ...
9
13
  async def config_entry_update_listener(hass: HomeAssistant, entry: ConfigEntry) -> None: ...
10
14
  async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
@@ -23,6 +23,7 @@ CONFIG_FLOW: Incomplete
23
23
  OPTIONS_FLOW: Incomplete
24
24
 
25
25
  class ConfigFlowHandler(SchemaConfigFlowHandler, domain=DOMAIN):
26
+ MINOR_VERSION: int
26
27
  config_flow = CONFIG_FLOW
27
28
  options_flow = OPTIONS_FLOW
28
29
  def async_config_entry_title(self, options: Mapping[str, Any]) -> str: ...
@@ -10,8 +10,7 @@ from homeassistant.components.sensor import DEVICE_CLASS_UNITS as DEVICE_CLASS_U
10
10
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
11
11
  from homeassistant.const import ATTR_DEVICE_CLASS as ATTR_DEVICE_CLASS, ATTR_UNIT_OF_MEASUREMENT as ATTR_UNIT_OF_MEASUREMENT, CONF_METHOD as CONF_METHOD, CONF_NAME as CONF_NAME, CONF_UNIQUE_ID as CONF_UNIQUE_ID, STATE_UNAVAILABLE as STATE_UNAVAILABLE, UnitOfTime as UnitOfTime
12
12
  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
13
- from homeassistant.helpers.device import async_device_info_to_link_from_entity as async_device_info_to_link_from_entity
14
- from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
13
+ from homeassistant.helpers.device import async_entity_id_to_device as async_entity_id_to_device
15
14
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback, AddEntitiesCallback as AddEntitiesCallback
16
15
  from homeassistant.helpers.event import async_call_later as async_call_later, async_track_state_change_event as async_track_state_change_event, async_track_state_report_event as async_track_state_report_event
17
16
  from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
@@ -82,13 +81,13 @@ class IntegrationSensor(RestoreSensor):
82
81
  _attr_icon: str
83
82
  _source_entity: str
84
83
  _last_valid_state: Decimal | None
85
- _attr_device_info: Incomplete
84
+ device_entry: Incomplete
86
85
  _max_sub_interval: timedelta | None
87
86
  _max_sub_interval_exceeded_callback: CALLBACK_TYPE
88
87
  _last_integration_time: datetime
89
88
  _last_integration_trigger: Incomplete
90
89
  _attr_suggested_display_precision: Incomplete
91
- def __init__(self, *, integration_method: str, name: str | None, round_digits: int | None, source_entity: str, unique_id: str | None, unit_prefix: str | None, unit_time: UnitOfTime, max_sub_interval: timedelta | None, device_info: DeviceInfo | None = None) -> None: ...
90
+ def __init__(self, hass: HomeAssistant, *, integration_method: str, name: str | None, round_digits: int | None, source_entity: str, unique_id: str | None, unit_prefix: str | None, unit_time: UnitOfTime, max_sub_interval: timedelta | None) -> None: ...
92
91
  def _calculate_unit(self, source_unit: str) -> str: ...
93
92
  def _calculate_device_class(self, source_device_class: SensorDeviceClass | None, unit_of_measurement: str | None) -> SensorDeviceClass | None: ...
94
93
  _attr_device_class: Incomplete
@@ -101,13 +100,13 @@ class IntegrationSensor(RestoreSensor):
101
100
  @callback
102
101
  def _integrate_on_state_report_with_max_sub_interval(self, event: Event[EventStateReportedData]) -> None: ...
103
102
  @callback
104
- def _integrate_on_state_update_with_max_sub_interval(self, old_last_reported: datetime | None, old_state: State | None, new_state: State | None) -> None: ...
103
+ def _integrate_on_state_update_with_max_sub_interval(self, old_timestamp: datetime | None, new_timestamp: datetime | None, old_state: State | None, new_state: State | None) -> None: ...
105
104
  @callback
106
105
  def _integrate_on_state_change_callback(self, event: Event[EventStateChangedData]) -> None: ...
107
106
  @callback
108
107
  def _integrate_on_state_report_callback(self, event: Event[EventStateReportedData]) -> None: ...
109
108
  _attr_available: bool
110
- def _integrate_on_state_change(self, old_last_reported: datetime | None, old_state: State | None, new_state: State | None) -> None: ...
109
+ def _integrate_on_state_change(self, old_timestamp: datetime | None, new_timestamp: datetime | None, old_state: State | None, new_state: State | None) -> None: ...
111
110
  def _schedule_max_sub_interval_exceeded_if_state_is_numeric(self, source_state: State | None) -> None: ...
112
111
  def _cancel_max_sub_interval_exceeded_callback(self) -> None: ...
113
112
  @property
@@ -4,14 +4,11 @@ from _typeshed import Incomplete
4
4
  from homeassistant.const import Platform as Platform
5
5
  from homeassistant.core import HomeAssistant as HomeAssistant
6
6
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
7
- from homeassistant.helpers.typing import ConfigType as ConfigType
8
7
  from homeassistant.util.hass_dict import HassKey as HassKey
9
8
 
10
9
  PLATFORMS: list[Platform]
11
- CONFIG_SCHEMA: Incomplete
12
10
  IRON_OS_KEY: HassKey[IronOSFirmwareUpdateCoordinator]
13
11
  _LOGGER: Incomplete
14
12
 
15
- async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
16
13
  async def async_setup_entry(hass: HomeAssistant, entry: IronOSConfigEntry) -> bool: ...
17
14
  async def async_unload_entry(hass: HomeAssistant, entry: IronOSConfigEntry) -> bool: ...
@@ -4,4 +4,8 @@ MODEL: str
4
4
  OHM: str
5
5
  DISCOVERY_SVC_UUID: str
6
6
  MAX_TEMP: int
7
+ MAX_TEMP_F: int
7
8
  MIN_TEMP: int
9
+ MIN_TEMP_F: int
10
+ MIN_BOOST_TEMP: int
11
+ MIN_BOOST_TEMP_F: int
@@ -9,7 +9,7 @@ from homeassistant.exceptions import ServiceValidationError as ServiceValidation
9
9
  from homeassistant.helpers.debounce import Debouncer as Debouncer
10
10
  from homeassistant.helpers.device_registry import CONNECTION_BLUETOOTH as CONNECTION_BLUETOOTH
11
11
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
12
- from pynecil import CharSetting as CharSetting, DeviceInfoResponse, IronOSUpdate as IronOSUpdate, LatestRelease, LiveDataResponse, Pynecil as Pynecil, SettingsDataResponse
12
+ from pynecil import CharSetting, DeviceInfoResponse, IronOSUpdate as IronOSUpdate, LatestRelease, LiveDataResponse, Pynecil as Pynecil, SettingsDataResponse
13
13
 
14
14
  _LOGGER: Incomplete
15
15
  SCAN_INTERVAL: Incomplete
@@ -1,15 +1,16 @@
1
1
  from . import IronOSConfigEntry as IronOSConfigEntry
2
- from .const import MAX_TEMP as MAX_TEMP, MIN_TEMP as MIN_TEMP
2
+ from .const import MAX_TEMP as MAX_TEMP, MAX_TEMP_F as MAX_TEMP_F, MIN_BOOST_TEMP as MIN_BOOST_TEMP, MIN_BOOST_TEMP_F as MIN_BOOST_TEMP_F, MIN_TEMP as MIN_TEMP, MIN_TEMP_F as MIN_TEMP_F
3
3
  from .coordinator import IronOSCoordinators as IronOSCoordinators
4
4
  from .entity import IronOSBaseEntity as IronOSBaseEntity
5
5
  from _typeshed import Incomplete
6
6
  from collections.abc import Callable as Callable
7
7
  from dataclasses import dataclass
8
8
  from enum import StrEnum
9
- from homeassistant.components.number import DEFAULT_MAX_VALUE as DEFAULT_MAX_VALUE, NumberDeviceClass as NumberDeviceClass, NumberEntity as NumberEntity, NumberEntityDescription as NumberEntityDescription, NumberMode as NumberMode
9
+ from homeassistant.components.number import NumberDeviceClass as NumberDeviceClass, NumberEntity as NumberEntity, NumberEntityDescription as NumberEntityDescription, NumberMode as NumberMode
10
10
  from homeassistant.const import EntityCategory as EntityCategory, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfPower as UnitOfPower, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime
11
11
  from homeassistant.core import HomeAssistant as HomeAssistant
12
12
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
13
+ from homeassistant.util.unit_conversion import TemperatureConverter as TemperatureConverter
13
14
  from pynecil import CharSetting, LiveDataResponse as LiveDataResponse, SettingsDataResponse as SettingsDataResponse
14
15
 
15
16
  PARALLEL_UPDATES: int
@@ -17,9 +18,10 @@ PARALLEL_UPDATES: int
17
18
  @dataclass(frozen=True, kw_only=True)
18
19
  class IronOSNumberEntityDescription(NumberEntityDescription):
19
20
  value_fn: Callable[[LiveDataResponse, SettingsDataResponse], float | int | None]
20
- max_value_fn: Callable[[LiveDataResponse], float | int] | None = ...
21
21
  characteristic: CharSetting
22
22
  raw_value_fn: Callable[[float], float | int] | None = ...
23
+ native_max_value_f: float | None = ...
24
+ native_min_value_f: float | None = ...
23
25
 
24
26
  class PinecilNumber(StrEnum):
25
27
  SETPOINT_TEMP = 'setpoint_temperature'
@@ -47,6 +49,8 @@ def multiply(value: float | None, multiplier: float) -> float | None: ...
47
49
 
48
50
  PINECIL_NUMBER_DESCRIPTIONS: tuple[IronOSNumberEntityDescription, ...]
49
51
  PINECIL_NUMBER_DESCRIPTIONS_V223: tuple[IronOSNumberEntityDescription, ...]
52
+ PINECIL_TEMP_NUMBER_DESCRIPTIONS: tuple[IronOSNumberEntityDescription, ...]
53
+ PINECIL_SETPOINT_NUMBER_DESCRIPTION: Incomplete
50
54
 
51
55
  async def async_setup_entry(hass: HomeAssistant, entry: IronOSConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
52
56
 
@@ -57,6 +61,18 @@ class IronOSNumberEntity(IronOSBaseEntity, NumberEntity):
57
61
  async def async_set_native_value(self, value: float) -> None: ...
58
62
  @property
59
63
  def native_value(self) -> float | int | None: ...
64
+ async def async_added_to_hass(self) -> None: ...
65
+
66
+ class IronOSTemperatureNumberEntity(IronOSNumberEntity):
67
+ @property
68
+ def native_unit_of_measurement(self) -> str | None: ...
69
+ @property
70
+ def native_min_value(self) -> float: ...
71
+ @property
72
+ def native_max_value(self) -> float: ...
73
+ @property
74
+ def available(self) -> bool: ...
75
+
76
+ class IronOSSetpointNumberEntity(IronOSTemperatureNumberEntity):
60
77
  @property
61
78
  def native_max_value(self) -> float: ...
62
- async def async_added_to_hass(self) -> None: ...
@@ -1,4 +1,5 @@
1
1
  from . import IronOSConfigEntry as IronOSConfigEntry
2
+ from .const import MIN_BOOST_TEMP as MIN_BOOST_TEMP, MIN_BOOST_TEMP_F as MIN_BOOST_TEMP_F
2
3
  from .coordinator import IronOSCoordinators as IronOSCoordinators
3
4
  from .entity import IronOSBaseEntity as IronOSBaseEntity
4
5
  from _typeshed import Incomplete
@@ -27,6 +28,7 @@ class IronOSSwitch(StrEnum):
27
28
  INVERT_BUTTONS = 'invert_buttons'
28
29
  DISPLAY_INVERT = 'display_invert'
29
30
  CALIBRATE_CJC = 'calibrate_cjc'
31
+ BOOST = 'boost'
30
32
 
31
33
  SWITCH_DESCRIPTIONS: tuple[IronOSSwitchEntityDescription, ...]
32
34
 
@@ -16,7 +16,6 @@ CONFIG_SCHEMA: Incomplete
16
16
 
17
17
  async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
18
18
  async def async_setup_entry(hass: HomeAssistant, entry: IsyConfigEntry) -> bool: ...
19
- async def _async_update_listener(hass: HomeAssistant, entry: IsyConfigEntry) -> None: ...
20
19
  @callback
21
20
  def _async_get_or_create_isy_device_in_registry(hass: HomeAssistant, entry: IsyConfigEntry, isy: ISY) -> None: ...
22
21
  def _create_service_device_info(isy: ISY, name: str, unique_id: str) -> DeviceInfo: ...