homeassistant-stubs 2025.5.3__py3-none-any.whl → 2025.6.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.
Files changed (391) hide show
  1. homeassistant-stubs/components/airthings/sensor.pyi +1 -1
  2. homeassistant-stubs/components/amazon_devices/__init__.pyi +9 -0
  3. homeassistant-stubs/components/amazon_devices/binary_sensor.pyi +25 -0
  4. homeassistant-stubs/components/amazon_devices/config_flow.pyi +8 -0
  5. homeassistant-stubs/components/amazon_devices/const.pyi +5 -0
  6. homeassistant-stubs/components/amazon_devices/coordinator.pyi +17 -0
  7. homeassistant-stubs/components/amazon_devices/entity.pyi +19 -0
  8. homeassistant-stubs/components/amazon_devices/notify.pyi +25 -0
  9. homeassistant-stubs/components/amazon_devices/switch.pyi +30 -0
  10. homeassistant-stubs/components/apcupsd/config_flow.pyi +1 -0
  11. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +3 -1
  12. homeassistant-stubs/components/axis/config_flow.pyi +2 -2
  13. homeassistant-stubs/components/axis/entity.pyi +1 -0
  14. homeassistant-stubs/components/backup/__init__.pyi +2 -2
  15. homeassistant-stubs/components/backup/coordinator.pyi +3 -0
  16. homeassistant-stubs/components/backup/entity.pyi +5 -2
  17. homeassistant-stubs/components/backup/event.pyi +23 -0
  18. homeassistant-stubs/components/backup/manager.pyi +22 -3
  19. homeassistant-stubs/components/backup/models.pyi +2 -2
  20. homeassistant-stubs/components/blue_current/button.pyi +25 -0
  21. homeassistant-stubs/components/blue_current/entity.pyi +3 -6
  22. homeassistant-stubs/components/bluesound/button.pyi +35 -0
  23. homeassistant-stubs/components/bluesound/media_player.pyi +1 -0
  24. homeassistant-stubs/components/bmw_connected_drive/button.pyi +1 -1
  25. homeassistant-stubs/components/bmw_connected_drive/coordinator.pyi +1 -1
  26. homeassistant-stubs/components/bmw_connected_drive/lock.pyi +1 -1
  27. homeassistant-stubs/components/bmw_connected_drive/notify.pyi +1 -1
  28. homeassistant-stubs/components/bmw_connected_drive/number.pyi +1 -1
  29. homeassistant-stubs/components/bmw_connected_drive/select.pyi +1 -1
  30. homeassistant-stubs/components/bmw_connected_drive/switch.pyi +1 -1
  31. homeassistant-stubs/components/bosch_alarm/__init__.pyi +8 -4
  32. homeassistant-stubs/components/bosch_alarm/alarm_control_panel.pyi +3 -1
  33. homeassistant-stubs/components/bosch_alarm/binary_sensor.pyi +45 -0
  34. homeassistant-stubs/components/bosch_alarm/config_flow.pyi +9 -3
  35. homeassistant-stubs/components/bosch_alarm/const.pyi +4 -1
  36. homeassistant-stubs/components/bosch_alarm/diagnostics.pyi +1 -1
  37. homeassistant-stubs/components/bosch_alarm/entity.pyi +30 -1
  38. homeassistant-stubs/components/bosch_alarm/sensor.pyi +6 -2
  39. homeassistant-stubs/components/bosch_alarm/services.pyi +15 -0
  40. homeassistant-stubs/components/bosch_alarm/switch.pyi +43 -0
  41. homeassistant-stubs/components/bosch_alarm/types.pyi +4 -0
  42. homeassistant-stubs/components/bring/__init__.pyi +1 -1
  43. homeassistant-stubs/components/bring/coordinator.pyi +21 -3
  44. homeassistant-stubs/components/bring/entity.pyi +3 -3
  45. homeassistant-stubs/components/bring/event.pyi +3 -2
  46. homeassistant-stubs/components/bring/sensor.pyi +1 -0
  47. homeassistant-stubs/components/bring/todo.pyi +1 -0
  48. homeassistant-stubs/components/camera/__init__.pyi +2 -10
  49. homeassistant-stubs/components/camera/webrtc.pyi +1 -22
  50. homeassistant-stubs/components/climate/__init__.pyi +3 -13
  51. homeassistant-stubs/components/climate/const.pyi +0 -3
  52. homeassistant-stubs/components/climate/significant_change.pyi +1 -1
  53. homeassistant-stubs/components/cloud/__init__.pyi +1 -1
  54. homeassistant-stubs/components/cloud/alexa_config.pyi +1 -1
  55. homeassistant-stubs/components/cloud/client.pyi +2 -1
  56. homeassistant-stubs/components/cloud/const.pyi +0 -1
  57. homeassistant-stubs/components/cloud/google_config.pyi +1 -1
  58. homeassistant-stubs/components/cloud/http_api.pyi +0 -2
  59. homeassistant-stubs/components/comelit/climate.pyi +14 -5
  60. homeassistant-stubs/components/comelit/config_flow.pyi +3 -4
  61. homeassistant-stubs/components/comelit/const.pyi +3 -0
  62. homeassistant-stubs/components/comelit/cover.pyi +3 -1
  63. homeassistant-stubs/components/comelit/humidifier.pyi +6 -1
  64. homeassistant-stubs/components/comelit/light.pyi +2 -0
  65. homeassistant-stubs/components/comelit/switch.pyi +2 -0
  66. homeassistant-stubs/components/comelit/utils.pyi +11 -0
  67. homeassistant-stubs/components/command_line/notify.pyi +3 -1
  68. homeassistant-stubs/components/config/entity_registry.pyi +6 -0
  69. homeassistant-stubs/components/deconz/entity.pyi +1 -0
  70. homeassistant-stubs/components/deconz/hub/hub.pyi +1 -1
  71. homeassistant-stubs/components/deconz/light.pyi +1 -1
  72. homeassistant-stubs/components/demo/media_player.pyi +2 -1
  73. homeassistant-stubs/components/device_automation/trigger.pyi +5 -2
  74. homeassistant-stubs/components/devolo_home_network/__init__.pyi +3 -18
  75. homeassistant-stubs/components/devolo_home_network/binary_sensor.pyi +1 -2
  76. homeassistant-stubs/components/devolo_home_network/button.pyi +1 -1
  77. homeassistant-stubs/components/devolo_home_network/config_flow.pyi +1 -1
  78. homeassistant-stubs/components/devolo_home_network/coordinator.pyi +56 -6
  79. homeassistant-stubs/components/devolo_home_network/device_tracker.pyi +1 -2
  80. homeassistant-stubs/components/devolo_home_network/diagnostics.pyi +1 -1
  81. homeassistant-stubs/components/devolo_home_network/entity.pyi +1 -2
  82. homeassistant-stubs/components/devolo_home_network/image.pyi +1 -2
  83. homeassistant-stubs/components/devolo_home_network/sensor.pyi +1 -2
  84. homeassistant-stubs/components/devolo_home_network/switch.pyi +1 -2
  85. homeassistant-stubs/components/devolo_home_network/update.pyi +1 -2
  86. homeassistant-stubs/components/dhcp/__init__.pyi +2 -0
  87. homeassistant-stubs/components/downloader/__init__.pyi +3 -4
  88. homeassistant-stubs/components/downloader/services.pyi +7 -0
  89. homeassistant-stubs/components/ecovacs/binary_sensor.pyi +1 -1
  90. homeassistant-stubs/components/ecovacs/button.pyi +2 -2
  91. homeassistant-stubs/components/ecovacs/number.pyi +1 -1
  92. homeassistant-stubs/components/ecovacs/select.pyi +1 -1
  93. homeassistant-stubs/components/ecovacs/sensor.pyi +1 -1
  94. homeassistant-stubs/components/ecovacs/switch.pyi +1 -1
  95. homeassistant-stubs/components/ecovacs/util.pyi +1 -1
  96. homeassistant-stubs/components/eheimdigital/climate.pyi +4 -2
  97. homeassistant-stubs/components/eheimdigital/diagnostics.pyi +9 -0
  98. homeassistant-stubs/components/eheimdigital/entity.pyi +5 -0
  99. homeassistant-stubs/components/eheimdigital/light.pyi +3 -2
  100. homeassistant-stubs/components/eheimdigital/number.pyi +3 -1
  101. homeassistant-stubs/components/eheimdigital/select.pyi +34 -0
  102. homeassistant-stubs/components/eheimdigital/switch.pyi +3 -1
  103. homeassistant-stubs/components/eheimdigital/time.pyi +2 -1
  104. homeassistant-stubs/components/elkm1/climate.pyi +0 -6
  105. homeassistant-stubs/components/esphome/entity.pyi +1 -0
  106. homeassistant-stubs/components/esphome/entry_data.pyi +0 -12
  107. homeassistant-stubs/components/esphome/light.pyi +4 -4
  108. homeassistant-stubs/components/esphome/update.pyi +8 -4
  109. homeassistant-stubs/components/feedreader/event.pyi +1 -2
  110. homeassistant-stubs/components/fritz/__init__.pyi +1 -1
  111. homeassistant-stubs/components/fritz/config_flow.pyi +2 -1
  112. homeassistant-stubs/components/fritz/const.pyi +2 -0
  113. homeassistant-stubs/components/fritz/coordinator.pyi +5 -3
  114. homeassistant-stubs/components/frontend/storage.pyi +25 -9
  115. homeassistant-stubs/components/fyta/image.pyi +18 -4
  116. homeassistant-stubs/components/geocaching/__init__.pyi +3 -5
  117. homeassistant-stubs/components/geocaching/coordinator.pyi +3 -2
  118. homeassistant-stubs/components/geocaching/sensor.pyi +2 -3
  119. homeassistant-stubs/components/google/__init__.pyi +7 -8
  120. homeassistant-stubs/components/google/api.pyi +2 -2
  121. homeassistant-stubs/components/google/calendar.pyi +5 -5
  122. homeassistant-stubs/components/google/config_flow.pyi +3 -2
  123. homeassistant-stubs/components/google/const.pyi +0 -2
  124. homeassistant-stubs/components/google/coordinator.pyi +5 -5
  125. homeassistant-stubs/components/google/diagnostics.pyi +2 -3
  126. homeassistant-stubs/components/google/store.pyi +9 -0
  127. homeassistant-stubs/components/google_assistant_sdk/__init__.pyi +5 -6
  128. homeassistant-stubs/components/google_assistant_sdk/config_flow.pyi +3 -3
  129. homeassistant-stubs/components/google_assistant_sdk/const.pyi +0 -2
  130. homeassistant-stubs/components/google_assistant_sdk/diagnostics.pyi +2 -2
  131. homeassistant-stubs/components/google_assistant_sdk/helpers.pyi +7 -1
  132. homeassistant-stubs/components/google_assistant_sdk/notify.pyi +1 -2
  133. homeassistant-stubs/components/greeneye_monitor/const.pyi +4 -1
  134. homeassistant-stubs/components/guardian/__init__.pyi +11 -18
  135. homeassistant-stubs/components/guardian/binary_sensor.pyi +5 -6
  136. homeassistant-stubs/components/guardian/button.pyi +4 -5
  137. homeassistant-stubs/components/guardian/coordinator.pyi +3 -3
  138. homeassistant-stubs/components/guardian/diagnostics.pyi +3 -4
  139. homeassistant-stubs/components/guardian/entity.pyi +3 -3
  140. homeassistant-stubs/components/guardian/sensor.pyi +3 -4
  141. homeassistant-stubs/components/guardian/services.pyi +28 -0
  142. homeassistant-stubs/components/guardian/switch.pyi +4 -5
  143. homeassistant-stubs/components/guardian/util.pyi +2 -2
  144. homeassistant-stubs/components/guardian/valve.pyi +4 -5
  145. homeassistant-stubs/components/habitica/const.pyi +1 -6
  146. homeassistant-stubs/components/habitica/coordinator.pyi +2 -2
  147. homeassistant-stubs/components/habitica/sensor.pyi +3 -1
  148. homeassistant-stubs/components/habitica/services.pyi +2 -4
  149. homeassistant-stubs/components/habitica/util.pyi +2 -0
  150. homeassistant-stubs/components/hardware/__init__.pyi +3 -1
  151. homeassistant-stubs/components/hardware/const.pyi +4 -0
  152. homeassistant-stubs/components/hardware/hardware.pyi +1 -1
  153. homeassistant-stubs/components/hardware/models.pyi +14 -1
  154. homeassistant-stubs/components/hardware/websocket_api.pyi +2 -12
  155. homeassistant-stubs/components/heos/media_player.pyi +1 -0
  156. homeassistant-stubs/components/here_travel_time/__init__.pyi +4 -5
  157. homeassistant-stubs/components/here_travel_time/coordinator.pyi +5 -4
  158. homeassistant-stubs/components/here_travel_time/sensor.pyi +4 -5
  159. homeassistant-stubs/components/history_stats/config_flow.pyi +1 -1
  160. homeassistant-stubs/components/home_connect/config_flow.pyi +2 -0
  161. homeassistant-stubs/components/home_connect/diagnostics.pyi +1 -2
  162. homeassistant-stubs/components/home_connect/entity.pyi +0 -1
  163. homeassistant-stubs/components/home_connect/light.pyi +2 -2
  164. homeassistant-stubs/components/home_connect/number.pyi +1 -0
  165. homeassistant-stubs/components/home_connect/sensor.pyi +4 -5
  166. homeassistant-stubs/components/home_connect/switch.pyi +1 -19
  167. homeassistant-stubs/components/homeassistant/__init__.pyi +4 -0
  168. homeassistant-stubs/components/homee/alarm_control_panel.pyi +39 -0
  169. homeassistant-stubs/components/homee/const.pyi +2 -0
  170. homeassistant-stubs/components/homee/event.pyi +19 -0
  171. homeassistant-stubs/components/homee/fan.pyi +38 -0
  172. homeassistant-stubs/components/homee/sensor.pyi +5 -1
  173. homeassistant-stubs/components/homekit/const.pyi +1 -0
  174. homeassistant-stubs/components/homekit/util.pyi +1 -1
  175. homeassistant-stubs/components/homeworks/__init__.pyi +5 -5
  176. homeassistant-stubs/components/homeworks/binary_sensor.pyi +2 -3
  177. homeassistant-stubs/components/homeworks/button.pyi +2 -3
  178. homeassistant-stubs/components/homeworks/light.pyi +2 -3
  179. homeassistant-stubs/components/http/decorators.pyi +1 -1
  180. homeassistant-stubs/components/huawei_lte/__init__.pyi +0 -1
  181. homeassistant-stubs/components/husqvarna_automower/binary_sensor.pyi +0 -7
  182. homeassistant-stubs/components/hydrawise/__init__.pyi +4 -5
  183. homeassistant-stubs/components/hydrawise/binary_sensor.pyi +3 -4
  184. homeassistant-stubs/components/hydrawise/coordinator.pyi +4 -3
  185. homeassistant-stubs/components/hydrawise/sensor.pyi +2 -4
  186. homeassistant-stubs/components/hydrawise/switch.pyi +3 -4
  187. homeassistant-stubs/components/hydrawise/valve.pyi +2 -4
  188. homeassistant-stubs/components/immich/__init__.pyi +10 -0
  189. homeassistant-stubs/components/immich/config_flow.pyi +27 -0
  190. homeassistant-stubs/components/immich/const.pyi +4 -0
  191. homeassistant-stubs/components/immich/coordinator.pyi +27 -0
  192. homeassistant-stubs/components/immich/diagnostics.pyi +10 -0
  193. homeassistant-stubs/components/immich/entity.pyi +10 -0
  194. homeassistant-stubs/components/immich/media_source.pyi +37 -0
  195. homeassistant-stubs/components/immich/sensor.pyi +28 -0
  196. homeassistant-stubs/components/iqvia/__init__.pyi +4 -7
  197. homeassistant-stubs/components/iqvia/coordinator.pyi +16 -0
  198. homeassistant-stubs/components/iqvia/diagnostics.pyi +3 -4
  199. homeassistant-stubs/components/iqvia/entity.pyi +5 -6
  200. homeassistant-stubs/components/iqvia/sensor.pyi +3 -3
  201. homeassistant-stubs/components/isy994/__init__.pyi +6 -7
  202. homeassistant-stubs/components/isy994/binary_sensor.pyi +3 -4
  203. homeassistant-stubs/components/isy994/button.pyi +2 -3
  204. homeassistant-stubs/components/isy994/climate.pyi +3 -4
  205. homeassistant-stubs/components/isy994/config_flow.pyi +4 -3
  206. homeassistant-stubs/components/isy994/cover.pyi +3 -5
  207. homeassistant-stubs/components/isy994/fan.pyi +3 -5
  208. homeassistant-stubs/components/isy994/light.pyi +3 -4
  209. homeassistant-stubs/components/isy994/lock.pyi +2 -5
  210. homeassistant-stubs/components/isy994/models.pyi +2 -0
  211. homeassistant-stubs/components/isy994/number.pyi +3 -4
  212. homeassistant-stubs/components/isy994/select.pyi +3 -4
  213. homeassistant-stubs/components/isy994/sensor.pyi +3 -4
  214. homeassistant-stubs/components/isy994/services.pyi +1 -1
  215. homeassistant-stubs/components/isy994/switch.pyi +2 -4
  216. homeassistant-stubs/components/isy994/system_health.pyi +1 -3
  217. homeassistant-stubs/components/isy994/util.pyi +3 -2
  218. homeassistant-stubs/components/jewish_calendar/binary_sensor.pyi +3 -2
  219. homeassistant-stubs/components/jewish_calendar/config_flow.pyi +3 -2
  220. homeassistant-stubs/components/jewish_calendar/const.pyi +1 -0
  221. homeassistant-stubs/components/jewish_calendar/diagnostics.pyi +11 -0
  222. homeassistant-stubs/components/jewish_calendar/entity.pyi +12 -5
  223. homeassistant-stubs/components/jewish_calendar/sensor.pyi +35 -15
  224. homeassistant-stubs/components/jewish_calendar/service.pyi +1 -0
  225. homeassistant-stubs/components/kaleidescape/entity.pyi +1 -0
  226. homeassistant-stubs/components/kaleidescape/media_player.pyi +1 -0
  227. homeassistant-stubs/components/kaleidescape/remote.pyi +1 -0
  228. homeassistant-stubs/components/kaleidescape/sensor.pyi +1 -0
  229. homeassistant-stubs/components/knocki/config_flow.pyi +2 -0
  230. homeassistant-stubs/components/knx/const.pyi +7 -0
  231. homeassistant-stubs/components/knx/cover.pyi +20 -9
  232. homeassistant-stubs/components/knx/schema.pyi +1 -6
  233. homeassistant-stubs/components/knx/storage/const.pyi +6 -0
  234. homeassistant-stubs/components/knx/storage/entity_store_schema.pyi +4 -3
  235. homeassistant-stubs/components/lcn/config_flow.pyi +0 -2
  236. homeassistant-stubs/components/lcn/const.pyi +3 -1
  237. homeassistant-stubs/components/lcn/cover.pyi +7 -2
  238. homeassistant-stubs/components/lcn/entity.pyi +1 -0
  239. homeassistant-stubs/components/lcn/helpers.pyi +0 -1
  240. homeassistant-stubs/components/lcn/schemas.pyi +1 -1
  241. homeassistant-stubs/components/lcn/services.pyi +2 -3
  242. homeassistant-stubs/components/litterrobot/entity.pyi +1 -1
  243. homeassistant-stubs/components/matter/select.pyi +2 -0
  244. homeassistant-stubs/components/matter/sensor.pyi +3 -1
  245. homeassistant-stubs/components/media_player/intent.pyi +11 -1
  246. homeassistant-stubs/components/metoffice/__init__.pyi +3 -5
  247. homeassistant-stubs/components/metoffice/config_flow.pyi +4 -2
  248. homeassistant-stubs/components/metoffice/const.pyi +7 -6
  249. homeassistant-stubs/components/metoffice/helpers.pyi +5 -6
  250. homeassistant-stubs/components/metoffice/sensor.pyi +15 -13
  251. homeassistant-stubs/components/metoffice/weather.pyi +23 -11
  252. homeassistant-stubs/components/miele/__init__.pyi +15 -0
  253. homeassistant-stubs/components/miele/api.pyi +9 -0
  254. homeassistant-stubs/components/miele/application_credentials.pyi +5 -0
  255. homeassistant-stubs/components/miele/binary_sensor.pyi +34 -0
  256. homeassistant-stubs/components/miele/button.pyi +32 -0
  257. homeassistant-stubs/components/miele/climate.pyi +55 -0
  258. homeassistant-stubs/components/miele/config_flow.pyi +17 -0
  259. homeassistant-stubs/components/miele/const.pyi +127 -0
  260. homeassistant-stubs/components/miele/coordinator.pyi +29 -0
  261. homeassistant-stubs/components/miele/diagnostics.pyi +13 -0
  262. homeassistant-stubs/components/miele/entity.pyi +24 -0
  263. homeassistant-stubs/components/miele/fan.pyi +39 -0
  264. homeassistant-stubs/components/miele/light.pyi +39 -0
  265. homeassistant-stubs/components/miele/sensor.pyi +72 -0
  266. homeassistant-stubs/components/miele/switch.pyi +52 -0
  267. homeassistant-stubs/components/miele/vacuum.pyi +84 -0
  268. homeassistant-stubs/components/minecraft_server/api.pyi +1 -1
  269. homeassistant-stubs/components/modbus/__init__.pyi +1 -1
  270. homeassistant-stubs/components/modbus/const.pyi +9 -0
  271. homeassistant-stubs/components/modbus/light.pyi +24 -1
  272. homeassistant-stubs/components/modbus/sensor.pyi +5 -3
  273. homeassistant-stubs/components/mqtt/binary_sensor.pyi +1 -2
  274. homeassistant-stubs/components/mqtt/button.pyi +1 -3
  275. homeassistant-stubs/components/mqtt/config_flow.pyi +25 -8
  276. homeassistant-stubs/components/mqtt/const.pyi +57 -0
  277. homeassistant-stubs/components/mqtt/cover.pyi +1 -25
  278. homeassistant-stubs/components/mqtt/fan.pyi +1 -31
  279. homeassistant-stubs/components/mqtt/switch.pyi +1 -5
  280. homeassistant-stubs/components/music_assistant/media_player.pyi +6 -2
  281. homeassistant-stubs/components/nest/config_flow.pyi +2 -0
  282. homeassistant-stubs/components/number/const.pyi +3 -2
  283. homeassistant-stubs/components/nut/__init__.pyi +1 -1
  284. homeassistant-stubs/components/openai_conversation/conversation.pyi +2 -0
  285. homeassistant-stubs/components/pandora/media_player.pyi +12 -13
  286. homeassistant-stubs/components/paperless_ngx/__init__.pyi +13 -0
  287. homeassistant-stubs/components/paperless_ngx/config_flow.pyi +16 -0
  288. homeassistant-stubs/components/paperless_ngx/const.pyi +4 -0
  289. homeassistant-stubs/components/paperless_ngx/coordinator.pyi +39 -0
  290. homeassistant-stubs/components/{rtsp_to_webrtc → paperless_ngx}/diagnostics.pyi +2 -2
  291. homeassistant-stubs/components/paperless_ngx/entity.pyi +16 -0
  292. homeassistant-stubs/components/paperless_ngx/sensor.pyi +27 -0
  293. homeassistant-stubs/components/plugwise/coordinator.pyi +2 -2
  294. homeassistant-stubs/components/qbus/climate.pyi +1 -0
  295. homeassistant-stubs/components/qbus/entity.pyi +3 -3
  296. homeassistant-stubs/components/qbus/light.pyi +1 -0
  297. homeassistant-stubs/components/qbus/scene.pyi +21 -0
  298. homeassistant-stubs/components/qbus/switch.pyi +1 -0
  299. homeassistant-stubs/components/recorder/services.pyi +7 -1
  300. homeassistant-stubs/components/recorder/statistics.pyi +1 -1
  301. homeassistant-stubs/components/recorder/websocket_api.pyi +1 -1
  302. homeassistant-stubs/components/reolink/media_source.pyi +2 -1
  303. homeassistant-stubs/components/repairs/websocket_api.pyi +0 -1
  304. homeassistant-stubs/components/samsungtv/__init__.pyi +5 -5
  305. homeassistant-stubs/components/samsungtv/bridge.pyi +2 -1
  306. homeassistant-stubs/components/samsungtv/config_flow.pyi +4 -4
  307. homeassistant-stubs/components/samsungtv/entity.pyi +1 -1
  308. homeassistant-stubs/components/samsungtv/media_player.pyi +2 -1
  309. homeassistant-stubs/components/sensor/__init__.pyi +1 -0
  310. homeassistant-stubs/components/sensor/const.pyi +5 -2
  311. homeassistant-stubs/components/sensor/device_condition.pyi +1 -0
  312. homeassistant-stubs/components/sensor/device_trigger.pyi +1 -0
  313. homeassistant-stubs/components/shelly/binary_sensor.pyi +3 -2
  314. homeassistant-stubs/components/shelly/button.pyi +5 -4
  315. homeassistant-stubs/components/shelly/climate.pyi +5 -5
  316. homeassistant-stubs/components/shelly/const.pyi +2 -0
  317. homeassistant-stubs/components/shelly/cover.pyi +2 -0
  318. homeassistant-stubs/components/shelly/entity.pyi +4 -2
  319. homeassistant-stubs/components/shelly/event.pyi +4 -2
  320. homeassistant-stubs/components/shelly/light.pyi +2 -0
  321. homeassistant-stubs/components/shelly/number.pyi +3 -2
  322. homeassistant-stubs/components/shelly/select.pyi +2 -0
  323. homeassistant-stubs/components/shelly/sensor.pyi +9 -2
  324. homeassistant-stubs/components/shelly/switch.pyi +2 -2
  325. homeassistant-stubs/components/shelly/text.pyi +2 -0
  326. homeassistant-stubs/components/shelly/update.pyi +1 -0
  327. homeassistant-stubs/components/shelly/utils.pyi +12 -7
  328. homeassistant-stubs/components/shelly/valve.pyi +2 -0
  329. homeassistant-stubs/components/smlight/button.pyi +3 -2
  330. homeassistant-stubs/components/squeezebox/__init__.pyi +1 -1
  331. homeassistant-stubs/components/squeezebox/binary_sensor.pyi +1 -0
  332. homeassistant-stubs/components/squeezebox/browse_media.pyi +1 -1
  333. homeassistant-stubs/components/squeezebox/button.pyi +3 -0
  334. homeassistant-stubs/components/squeezebox/const.pyi +12 -2
  335. homeassistant-stubs/components/squeezebox/coordinator.pyi +7 -3
  336. homeassistant-stubs/components/squeezebox/media_player.pyi +3 -1
  337. homeassistant-stubs/components/squeezebox/sensor.pyi +1 -0
  338. homeassistant-stubs/components/squeezebox/switch.pyi +47 -0
  339. homeassistant-stubs/components/squeezebox/update.pyi +50 -0
  340. homeassistant-stubs/components/suez_water/coordinator.pyi +19 -4
  341. homeassistant-stubs/components/suez_water/sensor.pyi +2 -0
  342. homeassistant-stubs/components/sun/condition.pyi +13 -0
  343. homeassistant-stubs/components/switchbot_cloud/__init__.pyi +15 -9
  344. homeassistant-stubs/components/switchbot_cloud/binary_sensor.pyi +29 -0
  345. homeassistant-stubs/components/switchbot_cloud/coordinator.pyi +6 -1
  346. homeassistant-stubs/components/tibber/coordinator.pyi +1 -0
  347. homeassistant-stubs/components/tibber/notify.pyi +2 -2
  348. homeassistant-stubs/components/tibber/sensor.pyi +1 -1
  349. homeassistant-stubs/components/tts/__init__.pyi +4 -1
  350. homeassistant-stubs/components/tts/const.pyi +1 -0
  351. homeassistant-stubs/components/tts/entity.pyi +4 -0
  352. homeassistant-stubs/components/tts/legacy.pyi +3 -1
  353. homeassistant-stubs/components/tts/media_source.pyi +5 -2
  354. homeassistant-stubs/components/unifi/__init__.pyi +1 -1
  355. homeassistant-stubs/components/unifi/config_flow.pyi +2 -2
  356. homeassistant-stubs/components/unifi/device_tracker.pyi +1 -0
  357. homeassistant-stubs/components/unifi/services.pyi +1 -0
  358. homeassistant-stubs/components/uptimerobot/coordinator.pyi +0 -1
  359. homeassistant-stubs/components/uptimerobot/switch.pyi +2 -1
  360. homeassistant-stubs/components/wallbox/const.pyi +10 -0
  361. homeassistant-stubs/components/wallbox/coordinator.pyi +4 -1
  362. homeassistant-stubs/components/wallbox/select.pyi +29 -0
  363. homeassistant-stubs/components/wallbox/sensor.pyi +1 -1
  364. homeassistant-stubs/components/wemo/device_trigger.pyi +1 -1
  365. homeassistant-stubs/components/wemo/light.pyi +1 -0
  366. homeassistant-stubs/components/whois/const.pyi +1 -0
  367. homeassistant-stubs/components/whois/sensor.pyi +2 -1
  368. homeassistant-stubs/components/youtube/sensor.pyi +1 -1
  369. homeassistant-stubs/components/zwave_js/config_flow.pyi +6 -3
  370. homeassistant-stubs/config_entries.pyi +0 -1
  371. homeassistant-stubs/const.pyi +5 -0
  372. homeassistant-stubs/core_config.pyi +0 -2
  373. homeassistant-stubs/helpers/condition.pyi +1 -6
  374. homeassistant-stubs/helpers/config_entry_oauth2_flow.pyi +10 -0
  375. homeassistant-stubs/helpers/config_validation.pyi +7 -2
  376. homeassistant-stubs/helpers/device_registry.pyi +4 -4
  377. homeassistant-stubs/helpers/entity_component.pyi +5 -2
  378. homeassistant-stubs/helpers/entity_platform.pyi +4 -1
  379. homeassistant-stubs/helpers/entity_registry.pyi +7 -6
  380. homeassistant-stubs/helpers/selector.pyi +55 -50
  381. homeassistant-stubs/helpers/service.pyi +3 -3
  382. homeassistant-stubs/helpers/template.pyi +4 -1
  383. homeassistant-stubs/util/aiohttp.pyi +5 -0
  384. homeassistant-stubs/util/unit_conversion.pyi +11 -1
  385. {homeassistant_stubs-2025.5.3.dist-info → homeassistant_stubs-2025.6.0b1.dist-info}/METADATA +2 -2
  386. {homeassistant_stubs-2025.5.3.dist-info → homeassistant_stubs-2025.6.0b1.dist-info}/RECORD +388 -331
  387. homeassistant-stubs/components/metoffice/data.pyi +0 -10
  388. homeassistant-stubs/components/rtsp_to_webrtc/__init__.pyi +0 -19
  389. homeassistant-stubs/components/rtsp_to_webrtc/config_flow.pyi +0 -24
  390. {homeassistant_stubs-2025.5.3.dist-info → homeassistant_stubs-2025.6.0b1.dist-info}/WHEEL +0 -0
  391. {homeassistant_stubs-2025.5.3.dist-info → homeassistant_stubs-2025.6.0b1.dist-info}/licenses/LICENSE +0 -0
@@ -1,10 +1,11 @@
1
- from . import ATTR_MEDIA_VOLUME_LEVEL as ATTR_MEDIA_VOLUME_LEVEL, DOMAIN as DOMAIN, MediaPlayerDeviceClass as MediaPlayerDeviceClass
1
+ from . import ATTR_MEDIA_VOLUME_LEVEL as ATTR_MEDIA_VOLUME_LEVEL, DOMAIN as DOMAIN, MediaPlayerDeviceClass as MediaPlayerDeviceClass, SERVICE_PLAY_MEDIA as SERVICE_PLAY_MEDIA, SERVICE_SEARCH_MEDIA as SERVICE_SEARCH_MEDIA, SearchMedia as SearchMedia
2
2
  from .const import MediaPlayerEntityFeature as MediaPlayerEntityFeature, MediaPlayerState as MediaPlayerState
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Iterable
5
5
  from dataclasses import dataclass, field
6
6
  from homeassistant.const import SERVICE_MEDIA_NEXT_TRACK as SERVICE_MEDIA_NEXT_TRACK, SERVICE_MEDIA_PAUSE as SERVICE_MEDIA_PAUSE, SERVICE_MEDIA_PLAY as SERVICE_MEDIA_PLAY, SERVICE_MEDIA_PREVIOUS_TRACK as SERVICE_MEDIA_PREVIOUS_TRACK, SERVICE_VOLUME_SET as SERVICE_VOLUME_SET
7
7
  from homeassistant.core import Context as Context, HomeAssistant as HomeAssistant, State as State
8
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
8
9
  from homeassistant.helpers import intent as intent
9
10
 
10
11
  INTENT_MEDIA_PAUSE: str
@@ -12,6 +13,8 @@ INTENT_MEDIA_UNPAUSE: str
12
13
  INTENT_MEDIA_NEXT: str
13
14
  INTENT_MEDIA_PREVIOUS: str
14
15
  INTENT_SET_VOLUME: str
16
+ INTENT_MEDIA_SEARCH_AND_PLAY: str
17
+ _LOGGER: Incomplete
15
18
 
16
19
  @dataclass
17
20
  class LastPaused:
@@ -33,3 +36,10 @@ class MediaUnpauseHandler(intent.ServiceIntentHandler):
33
36
  last_paused: Incomplete
34
37
  def __init__(self, last_paused: LastPaused) -> None: ...
35
38
  async def async_handle_states(self, intent_obj: intent.Intent, match_result: intent.MatchTargetsResult, match_constraints: intent.MatchTargetsConstraints, match_preferences: intent.MatchTargetsPreferences | None = None) -> intent.IntentResponse: ...
39
+
40
+ class MediaSearchAndPlayHandler(intent.IntentHandler):
41
+ description: str
42
+ intent_type = INTENT_MEDIA_SEARCH_AND_PLAY
43
+ slot_schema: Incomplete
44
+ platforms: Incomplete
45
+ async def async_handle(self, intent_obj: intent.Intent) -> intent.IntentResponse: ...
@@ -1,11 +1,9 @@
1
- from .const import DEFAULT_SCAN_INTERVAL as DEFAULT_SCAN_INTERVAL, DOMAIN as DOMAIN, METOFFICE_COORDINATES as METOFFICE_COORDINATES, METOFFICE_DAILY_COORDINATOR as METOFFICE_DAILY_COORDINATOR, METOFFICE_HOURLY_COORDINATOR as METOFFICE_HOURLY_COORDINATOR, METOFFICE_NAME as METOFFICE_NAME, MODE_3HOURLY as MODE_3HOURLY, MODE_DAILY as MODE_DAILY
2
- from .data import MetOfficeData as MetOfficeData
3
- from .helpers import fetch_data as fetch_data, fetch_site as fetch_site
1
+ from .const import DEFAULT_SCAN_INTERVAL as DEFAULT_SCAN_INTERVAL, DOMAIN as DOMAIN, METOFFICE_COORDINATES as METOFFICE_COORDINATES, METOFFICE_DAILY_COORDINATOR as METOFFICE_DAILY_COORDINATOR, METOFFICE_HOURLY_COORDINATOR as METOFFICE_HOURLY_COORDINATOR, METOFFICE_NAME as METOFFICE_NAME, METOFFICE_TWICE_DAILY_COORDINATOR as METOFFICE_TWICE_DAILY_COORDINATOR
2
+ from .helpers import fetch_data as fetch_data
4
3
  from _typeshed import Incomplete
5
4
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
5
  from homeassistant.const import CONF_API_KEY as CONF_API_KEY, CONF_LATITUDE as CONF_LATITUDE, CONF_LONGITUDE as CONF_LONGITUDE, CONF_NAME as CONF_NAME, Platform as Platform
7
- from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
8
- from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
6
+ from homeassistant.core import HomeAssistant as HomeAssistant
9
7
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
10
8
  from homeassistant.helpers.update_coordinator import TimestampDataUpdateCoordinator as TimestampDataUpdateCoordinator
11
9
 
@@ -1,6 +1,6 @@
1
1
  from .const import DOMAIN as DOMAIN
2
- from .helpers import fetch_site as fetch_site
3
2
  from _typeshed import Incomplete
3
+ from collections.abc import Mapping
4
4
  from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
5
5
  from homeassistant.const import CONF_API_KEY as CONF_API_KEY, CONF_LATITUDE as CONF_LATITUDE, CONF_LONGITUDE as CONF_LONGITUDE, CONF_NAME as CONF_NAME
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant
@@ -9,10 +9,12 @@ from typing import Any
9
9
 
10
10
  _LOGGER: Incomplete
11
11
 
12
- async def validate_input(hass: HomeAssistant, data: dict[str, Any]) -> dict[str, str]: ...
12
+ async def validate_input(hass: HomeAssistant, latitude: float, longitude: float, api_key: str) -> dict[str, Any]: ...
13
13
 
14
14
  class MetOfficeConfigFlow(ConfigFlow, domain=DOMAIN):
15
15
  VERSION: int
16
16
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
17
+ async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
18
+ async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
17
19
 
18
20
  class CannotConnect(HomeAssistantError): ...
@@ -1,5 +1,5 @@
1
1
  from _typeshed import Incomplete
2
- 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
2
+ 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_CONDITION as ATTR_FORECAST_CONDITION, ATTR_FORECAST_NATIVE_APPARENT_TEMP as ATTR_FORECAST_NATIVE_APPARENT_TEMP, 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_PRECIPITATION as ATTR_FORECAST_PRECIPITATION, ATTR_FORECAST_PRECIPITATION_PROBABILITY as ATTR_FORECAST_PRECIPITATION_PROBABILITY, ATTR_FORECAST_UV_INDEX as ATTR_FORECAST_UV_INDEX, ATTR_FORECAST_WIND_BEARING as ATTR_FORECAST_WIND_BEARING
3
3
 
4
4
  DOMAIN: str
5
5
  DEFAULT_NAME: str
@@ -8,11 +8,12 @@ DEFAULT_SCAN_INTERVAL: Incomplete
8
8
  METOFFICE_COORDINATES: str
9
9
  METOFFICE_HOURLY_COORDINATOR: str
10
10
  METOFFICE_DAILY_COORDINATOR: str
11
+ METOFFICE_TWICE_DAILY_COORDINATOR: str
11
12
  METOFFICE_MONITORED_CONDITIONS: str
12
13
  METOFFICE_NAME: str
13
- MODE_3HOURLY: str
14
- MODE_DAILY: str
15
- CONDITION_CLASSES: dict[str, list[str]]
14
+ CONDITION_CLASSES: dict[str, list[int]]
16
15
  CONDITION_MAP: Incomplete
17
- VISIBILITY_CLASSES: Incomplete
18
- VISIBILITY_DISTANCE_CLASSES: Incomplete
16
+ HOURLY_FORECAST_ATTRIBUTE_MAP: dict[str, str]
17
+ DAILY_FORECAST_ATTRIBUTE_MAP: dict[str, str]
18
+ DAY_FORECAST_ATTRIBUTE_MAP: dict[str, str]
19
+ NIGHT_FORECAST_ATTRIBUTE_MAP: dict[str, str]
@@ -1,12 +1,11 @@
1
1
  import datapoint
2
- from .const import MODE_3HOURLY as MODE_3HOURLY
3
- from .data import MetOfficeData as MetOfficeData
4
2
  from _typeshed import Incomplete
5
- from datapoint.Site import Site as Site
3
+ from datapoint.Forecast import Forecast as Forecast
4
+ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed
6
5
  from homeassistant.helpers.update_coordinator import UpdateFailed as UpdateFailed
7
- from homeassistant.util.dt import utcnow as utcnow
6
+ from typing import Any, Literal
8
7
 
9
8
  _LOGGER: Incomplete
10
9
 
11
- def fetch_site(connection: datapoint.Manager, latitude: float, longitude: float) -> Site | None: ...
12
- def fetch_data(connection: datapoint.Manager, site: Site, mode: str) -> MetOfficeData: ...
10
+ def fetch_data(connection: datapoint.Manager, latitude: float, longitude: float, frequency: Literal['daily', 'twice-daily', 'hourly']) -> Forecast: ...
11
+ def get_attribute(data: dict[str, Any] | None, attr_name: str) -> Any | None: ...
@@ -1,10 +1,12 @@
1
1
  from . import get_device_info as get_device_info
2
- from .const import ATTRIBUTION as ATTRIBUTION, CONDITION_MAP as CONDITION_MAP, DOMAIN as DOMAIN, METOFFICE_COORDINATES as METOFFICE_COORDINATES, METOFFICE_DAILY_COORDINATOR as METOFFICE_DAILY_COORDINATOR, METOFFICE_HOURLY_COORDINATOR as METOFFICE_HOURLY_COORDINATOR, METOFFICE_NAME as METOFFICE_NAME, MODE_DAILY as MODE_DAILY, VISIBILITY_CLASSES as VISIBILITY_CLASSES, VISIBILITY_DISTANCE_CLASSES as VISIBILITY_DISTANCE_CLASSES
3
- from .data import MetOfficeData as MetOfficeData
2
+ from .const import ATTRIBUTION as ATTRIBUTION, CONDITION_MAP as CONDITION_MAP, DOMAIN as DOMAIN, METOFFICE_COORDINATES as METOFFICE_COORDINATES, METOFFICE_HOURLY_COORDINATOR as METOFFICE_HOURLY_COORDINATOR, METOFFICE_NAME as METOFFICE_NAME
3
+ from .helpers import get_attribute as get_attribute
4
4
  from _typeshed import Incomplete
5
- from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription
5
+ from dataclasses import dataclass
6
+ from datapoint.Forecast import Forecast
7
+ from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
6
8
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
- from homeassistant.const import PERCENTAGE as PERCENTAGE, UV_INDEX as UV_INDEX, UnitOfLength as UnitOfLength, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature
9
+ from homeassistant.const import DEGREE as DEGREE, PERCENTAGE as PERCENTAGE, UV_INDEX as UV_INDEX, UnitOfLength as UnitOfLength, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature
8
10
  from homeassistant.core import HomeAssistant as HomeAssistant
9
11
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
10
12
  from homeassistant.helpers.typing import StateType as StateType
@@ -12,22 +14,22 @@ from homeassistant.helpers.update_coordinator import CoordinatorEntity as Coordi
12
14
  from typing import Any
13
15
 
14
16
  ATTR_LAST_UPDATE: str
15
- ATTR_SENSOR_ID: str
16
- ATTR_SITE_ID: str
17
- ATTR_SITE_NAME: str
18
- SENSOR_TYPES: tuple[SensorEntityDescription, ...]
17
+
18
+ @dataclass(frozen=True, kw_only=True)
19
+ class MetOfficeSensorEntityDescription(SensorEntityDescription):
20
+ native_attr_name: str
21
+
22
+ SENSOR_TYPES: tuple[MetOfficeSensorEntityDescription, ...]
19
23
 
20
24
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
21
25
 
22
- class MetOfficeCurrentSensor(CoordinatorEntity[DataUpdateCoordinator[MetOfficeData]], SensorEntity):
26
+ class MetOfficeCurrentSensor(CoordinatorEntity[DataUpdateCoordinator[Forecast]], SensorEntity):
23
27
  _attr_attribution = ATTRIBUTION
24
28
  _attr_has_entity_name: bool
25
- entity_description: Incomplete
29
+ entity_description: MetOfficeSensorEntityDescription
26
30
  _attr_device_info: Incomplete
27
- _attr_name: Incomplete
28
31
  _attr_unique_id: Incomplete
29
- _attr_entity_registry_enabled_default: Incomplete
30
- def __init__(self, coordinator: DataUpdateCoordinator[MetOfficeData], hass_data: dict[str, Any], use_3hourly: bool, description: SensorEntityDescription) -> None: ...
32
+ def __init__(self, coordinator: DataUpdateCoordinator[Forecast], hass_data: dict[str, Any], description: MetOfficeSensorEntityDescription) -> None: ...
31
33
  @property
32
34
  def native_value(self) -> StateType: ...
33
35
  @property
@@ -1,44 +1,56 @@
1
1
  from . import get_device_info as get_device_info
2
- from .const import ATTRIBUTION as ATTRIBUTION, CONDITION_MAP as CONDITION_MAP, DOMAIN as DOMAIN, METOFFICE_COORDINATES as METOFFICE_COORDINATES, METOFFICE_DAILY_COORDINATOR as METOFFICE_DAILY_COORDINATOR, METOFFICE_HOURLY_COORDINATOR as METOFFICE_HOURLY_COORDINATOR, METOFFICE_NAME as METOFFICE_NAME, MODE_DAILY as MODE_DAILY
3
- from .data import MetOfficeData as MetOfficeData
2
+ from .const import ATTRIBUTION as ATTRIBUTION, CONDITION_MAP as CONDITION_MAP, DAILY_FORECAST_ATTRIBUTE_MAP as DAILY_FORECAST_ATTRIBUTE_MAP, DAY_FORECAST_ATTRIBUTE_MAP as DAY_FORECAST_ATTRIBUTE_MAP, DOMAIN as DOMAIN, HOURLY_FORECAST_ATTRIBUTE_MAP as HOURLY_FORECAST_ATTRIBUTE_MAP, METOFFICE_COORDINATES as METOFFICE_COORDINATES, METOFFICE_DAILY_COORDINATOR as METOFFICE_DAILY_COORDINATOR, METOFFICE_HOURLY_COORDINATOR as METOFFICE_HOURLY_COORDINATOR, METOFFICE_NAME as METOFFICE_NAME, METOFFICE_TWICE_DAILY_COORDINATOR as METOFFICE_TWICE_DAILY_COORDINATOR, NIGHT_FORECAST_ATTRIBUTE_MAP as NIGHT_FORECAST_ATTRIBUTE_MAP
3
+ from .helpers import get_attribute as get_attribute
4
4
  from _typeshed import Incomplete
5
- from datapoint.Timestep import Timestep as Timestep
6
- from homeassistant.components.weather import ATTR_FORECAST_CONDITION as ATTR_FORECAST_CONDITION, ATTR_FORECAST_NATIVE_TEMP as ATTR_FORECAST_NATIVE_TEMP, ATTR_FORECAST_NATIVE_WIND_SPEED as ATTR_FORECAST_NATIVE_WIND_SPEED, ATTR_FORECAST_PRECIPITATION_PROBABILITY as ATTR_FORECAST_PRECIPITATION_PROBABILITY, ATTR_FORECAST_WIND_BEARING as ATTR_FORECAST_WIND_BEARING, CoordinatorWeatherEntity as CoordinatorWeatherEntity, Forecast as Forecast, WeatherEntityFeature as WeatherEntityFeature
5
+ from datapoint.Forecast import Forecast as ForecastData
6
+ from homeassistant.components.weather import ATTR_FORECAST_CONDITION as ATTR_FORECAST_CONDITION, ATTR_FORECAST_IS_DAYTIME as ATTR_FORECAST_IS_DAYTIME, ATTR_FORECAST_NATIVE_APPARENT_TEMP as ATTR_FORECAST_NATIVE_APPARENT_TEMP, 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_PRECIPITATION as ATTR_FORECAST_PRECIPITATION, ATTR_FORECAST_PRECIPITATION_PROBABILITY as ATTR_FORECAST_PRECIPITATION_PROBABILITY, ATTR_FORECAST_UV_INDEX as ATTR_FORECAST_UV_INDEX, ATTR_FORECAST_WIND_BEARING as ATTR_FORECAST_WIND_BEARING, CoordinatorWeatherEntity as CoordinatorWeatherEntity, Forecast as Forecast, WeatherEntityFeature as WeatherEntityFeature
7
7
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
- from homeassistant.const import UnitOfPressure as UnitOfPressure, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature
8
+ from homeassistant.const import UnitOfLength as UnitOfLength, UnitOfPressure as UnitOfPressure, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature
9
9
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
10
10
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
11
11
  from homeassistant.helpers.update_coordinator import TimestampDataUpdateCoordinator as TimestampDataUpdateCoordinator
12
12
  from typing import Any
13
13
 
14
14
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
15
- def _build_forecast_data(timestep: Timestep) -> Forecast: ...
16
- def _calculate_unique_id(coordinates: str, use_3hourly: bool) -> str: ...
15
+ def _build_hourly_forecast_data(timestep: dict[str, Any]) -> Forecast: ...
16
+ def _build_daily_forecast_data(timestep: dict[str, Any]) -> Forecast: ...
17
+ def _build_twice_daily_forecast_data(timestep: dict[str, Any]) -> Forecast: ...
18
+ def _populate_forecast_data(forecast: Forecast, timestep: dict[str, Any], mapping: dict[str, str]) -> None: ...
17
19
 
18
- class MetOfficeWeather(CoordinatorWeatherEntity[TimestampDataUpdateCoordinator[MetOfficeData], TimestampDataUpdateCoordinator[MetOfficeData]]):
20
+ class MetOfficeWeather(CoordinatorWeatherEntity[TimestampDataUpdateCoordinator[ForecastData], TimestampDataUpdateCoordinator[ForecastData], TimestampDataUpdateCoordinator[ForecastData]]):
19
21
  _attr_attribution = ATTRIBUTION
20
22
  _attr_has_entity_name: bool
23
+ _attr_name: Incomplete
21
24
  _attr_native_temperature_unit: Incomplete
22
25
  _attr_native_pressure_unit: Incomplete
26
+ _attr_native_precipitation_unit: Incomplete
27
+ _attr_native_visibility_unit: Incomplete
23
28
  _attr_native_wind_speed_unit: Incomplete
24
29
  _attr_supported_features: Incomplete
25
30
  _attr_device_info: Incomplete
26
- _attr_name: str
27
31
  _attr_unique_id: Incomplete
28
- def __init__(self, coordinator_daily: TimestampDataUpdateCoordinator[MetOfficeData], coordinator_hourly: TimestampDataUpdateCoordinator[MetOfficeData], hass_data: dict[str, Any]) -> None: ...
32
+ def __init__(self, coordinator_daily: TimestampDataUpdateCoordinator[ForecastData], coordinator_hourly: TimestampDataUpdateCoordinator[ForecastData], coordinator_twice_daily: TimestampDataUpdateCoordinator[ForecastData], hass_data: dict[str, Any]) -> None: ...
29
33
  @property
30
34
  def condition(self) -> str | None: ...
31
35
  @property
32
36
  def native_temperature(self) -> float | None: ...
33
37
  @property
38
+ def native_dew_point(self) -> float | None: ...
39
+ @property
34
40
  def native_pressure(self) -> float | None: ...
35
41
  @property
36
42
  def humidity(self) -> float | None: ...
37
43
  @property
44
+ def uv_index(self) -> float | None: ...
45
+ @property
46
+ def native_visibility(self) -> float | None: ...
47
+ @property
38
48
  def native_wind_speed(self) -> float | None: ...
39
49
  @property
40
- def wind_bearing(self) -> str | None: ...
50
+ def wind_bearing(self) -> float | None: ...
41
51
  @callback
42
52
  def _async_forecast_daily(self) -> list[Forecast] | None: ...
43
53
  @callback
44
54
  def _async_forecast_hourly(self) -> list[Forecast] | None: ...
55
+ @callback
56
+ def _async_forecast_twice_daily(self) -> list[Forecast] | None: ...
@@ -0,0 +1,15 @@
1
+ from .api import AsyncConfigEntryAuth as AsyncConfigEntryAuth
2
+ from .const import DOMAIN as DOMAIN
3
+ from .coordinator import MieleConfigEntry as MieleConfigEntry, MieleDataUpdateCoordinator as MieleDataUpdateCoordinator
4
+ from homeassistant.const import Platform as Platform
5
+ from homeassistant.core import HomeAssistant as HomeAssistant
6
+ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
7
+ from homeassistant.helpers import device_registry as dr
8
+ from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
9
+ from homeassistant.helpers.config_entry_oauth2_flow import OAuth2Session as OAuth2Session, async_get_config_entry_implementation as async_get_config_entry_implementation
10
+
11
+ PLATFORMS: list[Platform]
12
+
13
+ async def async_setup_entry(hass: HomeAssistant, entry: MieleConfigEntry) -> bool: ...
14
+ async def async_unload_entry(hass: HomeAssistant, entry: MieleConfigEntry) -> bool: ...
15
+ async def async_remove_config_entry_device(hass: HomeAssistant, config_entry: MieleConfigEntry, device_entry: dr.DeviceEntry) -> bool: ...
@@ -0,0 +1,9 @@
1
+ from _typeshed import Incomplete
2
+ from aiohttp import ClientSession as ClientSession
3
+ from homeassistant.helpers import config_entry_oauth2_flow as config_entry_oauth2_flow
4
+ from pymiele import AbstractAuth
5
+
6
+ class AsyncConfigEntryAuth(AbstractAuth):
7
+ _oauth_session: Incomplete
8
+ def __init__(self, websession: ClientSession, oauth_session: config_entry_oauth2_flow.OAuth2Session) -> None: ...
9
+ async def async_get_access_token(self) -> str: ...
@@ -0,0 +1,5 @@
1
+ from homeassistant.components.application_credentials import AuthorizationServer as AuthorizationServer
2
+ from homeassistant.core import HomeAssistant as HomeAssistant
3
+
4
+ async def async_get_authorization_server(hass: HomeAssistant) -> AuthorizationServer: ...
5
+ async def async_get_description_placeholders(hass: HomeAssistant) -> dict[str, str]: ...
@@ -0,0 +1,34 @@
1
+ from .const import MieleAppliance as MieleAppliance
2
+ from .coordinator import MieleConfigEntry as MieleConfigEntry
3
+ from .entity import MieleEntity as MieleEntity
4
+ from _typeshed import Incomplete
5
+ from collections.abc import Callable as Callable
6
+ from dataclasses import dataclass
7
+ from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription
8
+ from homeassistant.const import EntityCategory as EntityCategory
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
+ from pymiele import MieleDevice as MieleDevice
13
+ from typing import Final
14
+
15
+ PARALLEL_UPDATES: int
16
+ _LOGGER: Incomplete
17
+
18
+ @dataclass(frozen=True, kw_only=True)
19
+ class MieleBinarySensorDescription(BinarySensorEntityDescription):
20
+ value_fn: Callable[[MieleDevice], StateType]
21
+
22
+ @dataclass
23
+ class MieleBinarySensorDefinition:
24
+ types: tuple[MieleAppliance, ...]
25
+ description: MieleBinarySensorDescription
26
+
27
+ BINARY_SENSOR_TYPES: Final[tuple[MieleBinarySensorDefinition, ...]]
28
+
29
+ async def async_setup_entry(hass: HomeAssistant, config_entry: MieleConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
30
+
31
+ class MieleBinarySensor(MieleEntity, BinarySensorEntity):
32
+ entity_description: MieleBinarySensorDescription
33
+ @property
34
+ def is_on(self) -> bool | None: ...
@@ -0,0 +1,32 @@
1
+ from .const import DOMAIN as DOMAIN, MieleActions as MieleActions, MieleAppliance as MieleAppliance, PROCESS_ACTION as PROCESS_ACTION
2
+ from .coordinator import MieleConfigEntry as MieleConfigEntry
3
+ from .entity import MieleEntity as MieleEntity
4
+ from _typeshed import Incomplete
5
+ from dataclasses import dataclass
6
+ from homeassistant.components.button import ButtonEntity as ButtonEntity, ButtonEntityDescription as ButtonEntityDescription
7
+ from homeassistant.core import HomeAssistant as HomeAssistant
8
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
9
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
10
+ from typing import Final
11
+
12
+ PARALLEL_UPDATES: int
13
+ _LOGGER: Incomplete
14
+
15
+ @dataclass(frozen=True, kw_only=True)
16
+ class MieleButtonDescription(ButtonEntityDescription):
17
+ press_data: MieleActions
18
+
19
+ @dataclass
20
+ class MieleButtonDefinition:
21
+ types: tuple[MieleAppliance, ...]
22
+ description: MieleButtonDescription
23
+
24
+ BUTTON_TYPES: Final[tuple[MieleButtonDefinition, ...]]
25
+
26
+ async def async_setup_entry(hass: HomeAssistant, config_entry: MieleConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
27
+
28
+ class MieleButton(MieleEntity, ButtonEntity):
29
+ entity_description: MieleButtonDescription
30
+ @property
31
+ def available(self) -> bool: ...
32
+ async def async_press(self) -> None: ...
@@ -0,0 +1,55 @@
1
+ from .const import DEVICE_TYPE_TAGS as DEVICE_TYPE_TAGS, DISABLED_TEMP_ENTITIES as DISABLED_TEMP_ENTITIES, DOMAIN as DOMAIN, MieleAppliance as MieleAppliance
2
+ from .coordinator import MieleConfigEntry as MieleConfigEntry, MieleDataUpdateCoordinator as MieleDataUpdateCoordinator
3
+ from .entity import MieleEntity as MieleEntity
4
+ from _typeshed import Incomplete
5
+ from collections.abc import Callable as Callable
6
+ from dataclasses import dataclass
7
+ from homeassistant.components.climate import ClimateEntity as ClimateEntity, ClimateEntityDescription as ClimateEntityDescription, ClimateEntityFeature as ClimateEntityFeature, HVACMode as HVACMode
8
+ from homeassistant.const import ATTR_TEMPERATURE as ATTR_TEMPERATURE, PRECISION_WHOLE as PRECISION_WHOLE, UnitOfTemperature as UnitOfTemperature
9
+ from homeassistant.core import HomeAssistant as HomeAssistant
10
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
11
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
12
+ from homeassistant.helpers.typing import StateType as StateType
13
+ from pymiele import MieleDevice as MieleDevice
14
+ from typing import Any, Final
15
+
16
+ PARALLEL_UPDATES: int
17
+ _LOGGER: Incomplete
18
+
19
+ @dataclass(frozen=True, kw_only=True)
20
+ class MieleClimateDescription(ClimateEntityDescription):
21
+ value_fn: Callable[[MieleDevice], StateType]
22
+ target_fn: Callable[[MieleDevice], StateType]
23
+ zone: int = ...
24
+
25
+ @dataclass
26
+ class MieleClimateDefinition:
27
+ types: tuple[MieleAppliance, ...]
28
+ description: MieleClimateDescription
29
+
30
+ CLIMATE_TYPES: Final[tuple[MieleClimateDefinition, ...]]
31
+ ZONE1_DEVICES: Incomplete
32
+
33
+ async def async_setup_entry(hass: HomeAssistant, config_entry: MieleConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
34
+
35
+ class MieleClimate(MieleEntity, ClimateEntity):
36
+ entity_description: MieleClimateDescription
37
+ _attr_precision = PRECISION_WHOLE
38
+ _attr_temperature_unit: Incomplete
39
+ _attr_target_temperature_step: float
40
+ _attr_hvac_modes: Incomplete
41
+ _attr_hvac_mode: Incomplete
42
+ _attr_supported_features: Incomplete
43
+ @property
44
+ def current_temperature(self) -> float | None: ...
45
+ _attr_name: Incomplete
46
+ _attr_translation_key: Incomplete
47
+ _attr_unique_id: Incomplete
48
+ def __init__(self, coordinator: MieleDataUpdateCoordinator, device_id: str, description: MieleClimateDescription) -> None: ...
49
+ @property
50
+ def target_temperature(self) -> float | None: ...
51
+ @property
52
+ def max_temp(self) -> float: ...
53
+ @property
54
+ def min_temp(self) -> float: ...
55
+ async def async_set_temperature(self, **kwargs: Any) -> None: ...
@@ -0,0 +1,17 @@
1
+ import logging
2
+ from .const import DOMAIN as DOMAIN
3
+ from collections.abc import Mapping
4
+ from homeassistant.config_entries import ConfigFlowResult as ConfigFlowResult, SOURCE_REAUTH as SOURCE_REAUTH, SOURCE_RECONFIGURE as SOURCE_RECONFIGURE
5
+ from homeassistant.helpers import config_entry_oauth2_flow as config_entry_oauth2_flow
6
+ from typing import Any
7
+
8
+ class OAuth2FlowHandler(config_entry_oauth2_flow.AbstractOAuth2FlowHandler, domain=DOMAIN):
9
+ DOMAIN = DOMAIN
10
+ @property
11
+ def logger(self) -> logging.Logger: ...
12
+ @property
13
+ def extra_authorize_data(self) -> dict: ...
14
+ async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
15
+ async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
16
+ async def async_step_reconfigure(self, user_input: Mapping[str, Any] | None = None) -> ConfigFlowResult: ...
17
+ async def async_oauth_create_entry(self, data: dict) -> ConfigFlowResult: ...
@@ -0,0 +1,127 @@
1
+ from _typeshed import Incomplete
2
+ from enum import IntEnum
3
+ from pymiele import MieleEnum
4
+
5
+ DOMAIN: str
6
+ MANUFACTURER: str
7
+ ACTIONS: str
8
+ POWER_ON: str
9
+ POWER_OFF: str
10
+ PROCESS_ACTION: str
11
+ PROGRAM_ID: str
12
+ VENTILATION_STEP: str
13
+ TARGET_TEMPERATURE: str
14
+ AMBIENT_LIGHT: str
15
+ LIGHT: str
16
+ LIGHT_ON: int
17
+ LIGHT_OFF: int
18
+ DISABLED_TEMP_ENTITIES: Incomplete
19
+
20
+ class MieleAppliance(IntEnum):
21
+ WASHING_MACHINE = 1
22
+ TUMBLE_DRYER = 2
23
+ WASHING_MACHINE_SEMI_PROFESSIONAL = 3
24
+ TUMBLE_DRYER_SEMI_PROFESSIONAL = 4
25
+ WASHING_MACHINE_PROFESSIONAL = 5
26
+ DRYER_PROFESSIONAL = 6
27
+ DISHWASHER = 7
28
+ DISHWASHER_SEMI_PROFESSIONAL = 8
29
+ DISHWASHER_PROFESSIONAL = 9
30
+ OVEN = 12
31
+ OVEN_MICROWAVE = 13
32
+ HOB_HIGHLIGHT = 14
33
+ STEAM_OVEN = 15
34
+ MICROWAVE = 16
35
+ COFFEE_SYSTEM = 17
36
+ HOOD = 18
37
+ FRIDGE = 19
38
+ FREEZER = 20
39
+ FRIDGE_FREEZER = 21
40
+ ROBOT_VACUUM_CLEANER = 23
41
+ WASHER_DRYER = 24
42
+ DISH_WARMER = 25
43
+ HOB_INDUCTION = 27
44
+ STEAM_OVEN_COMBI = 31
45
+ WINE_CABINET = 32
46
+ WINE_CONDITIONING_UNIT = 33
47
+ WINE_STORAGE_CONDITIONING_UNIT = 34
48
+ STEAM_OVEN_MICRO = 45
49
+ DIALOG_OVEN = 67
50
+ WINE_CABINET_FREEZER = 68
51
+ STEAM_OVEN_MK2 = 73
52
+ HOB_INDUCT_EXTR = 74
53
+
54
+ DEVICE_TYPE_TAGS: Incomplete
55
+
56
+ class StateStatus(IntEnum):
57
+ RESERVED = 0
58
+ OFF = 1
59
+ ON = 2
60
+ PROGRAMMED = 3
61
+ WAITING_TO_START = 4
62
+ IN_USE = 5
63
+ PAUSE = 6
64
+ PROGRAM_ENDED = 7
65
+ FAILURE = 8
66
+ PROGRAM_INTERRUPTED = 9
67
+ IDLE = 10
68
+ RINSE_HOLD = 11
69
+ SERVICE = 12
70
+ SUPERFREEZING = 13
71
+ SUPERCOOLING = 14
72
+ SUPERHEATING = 15
73
+ SUPERCOOLING_SUPERFREEZING = 146
74
+ AUTOCLEANING = 147
75
+ NOT_CONNECTED = 255
76
+
77
+ STATE_STATUS_TAGS: Incomplete
78
+
79
+ class MieleActions(IntEnum):
80
+ START = 1
81
+ STOP = 2
82
+ PAUSE = 3
83
+ START_SUPERFREEZE = 4
84
+ STOP_SUPERFREEZE = 5
85
+ START_SUPERCOOL = 6
86
+ STOP_SUPERCOOL = 7
87
+
88
+ PROCESS_ACTIONS: Incomplete
89
+ STATE_PROGRAM_PHASE_WASHING_MACHINE: Incomplete
90
+ STATE_PROGRAM_PHASE_TUMBLE_DRYER: Incomplete
91
+ STATE_PROGRAM_PHASE_DISHWASHER: Incomplete
92
+ STATE_PROGRAM_PHASE_OVEN: Incomplete
93
+ STATE_PROGRAM_PHASE_WARMING_DRAWER: Incomplete
94
+ STATE_PROGRAM_PHASE_MICROWAVE: Incomplete
95
+ STATE_PROGRAM_PHASE_COFFEE_SYSTEM: Incomplete
96
+ STATE_PROGRAM_PHASE_ROBOT_VACUUM_CLEANER: Incomplete
97
+ STATE_PROGRAM_PHASE_STEAM_OVEN: Incomplete
98
+ STATE_PROGRAM_PHASE: dict[int, dict[int, str]]
99
+
100
+ class StateProgramType(MieleEnum):
101
+ normal_operation_mode: int
102
+ own_program: int
103
+ automatic_program: int
104
+ cleaning_care_program: int
105
+ maintenance_program: int
106
+ missing2none: int
107
+
108
+ class StateDryingStep(MieleEnum):
109
+ extra_dry: int
110
+ normal_plus: int
111
+ normal: int
112
+ slightly_dry: int
113
+ hand_iron_1: int
114
+ hand_iron_2: int
115
+ machine_iron: int
116
+ smoothing: int
117
+ missing2none: int
118
+
119
+ WASHING_MACHINE_PROGRAM_ID: dict[int, str]
120
+ DISHWASHER_PROGRAM_ID: dict[int, str]
121
+ TUMBLE_DRYER_PROGRAM_ID: dict[int, str]
122
+ OVEN_PROGRAM_ID: dict[int, str]
123
+ DISH_WARMER_PROGRAM_ID: dict[int, str]
124
+ ROBOT_VACUUM_CLEANER_PROGRAM_ID: dict[int, str]
125
+ COFFEE_SYSTEM_PROGRAM_ID: dict[int, str]
126
+ STEAM_OVEN_MICRO_PROGRAM_ID: dict[int, str]
127
+ STATE_PROGRAM_ID: dict[int, dict[int, str]]
@@ -0,0 +1,29 @@
1
+ from .api import AsyncConfigEntryAuth as AsyncConfigEntryAuth
2
+ from .const import DOMAIN as DOMAIN
3
+ from _typeshed import Incomplete
4
+ from collections.abc import Callable as Callable
5
+ from dataclasses import dataclass
6
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
+ from homeassistant.core import HomeAssistant as HomeAssistant
8
+ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator
9
+ from pymiele import MieleAction, MieleDevice
10
+
11
+ _LOGGER: Incomplete
12
+ type MieleConfigEntry = ConfigEntry[MieleDataUpdateCoordinator]
13
+
14
+ @dataclass
15
+ class MieleCoordinatorData:
16
+ devices: dict[str, MieleDevice]
17
+ actions: dict[str, MieleAction]
18
+
19
+ class MieleDataUpdateCoordinator(DataUpdateCoordinator[MieleCoordinatorData]):
20
+ config_entry: MieleConfigEntry
21
+ new_device_callbacks: list[Callable[[dict[str, MieleDevice]], None]]
22
+ known_devices: set[str]
23
+ devices: dict[str, MieleDevice]
24
+ api: Incomplete
25
+ def __init__(self, hass: HomeAssistant, api: AsyncConfigEntryAuth) -> None: ...
26
+ async def _async_update_data(self) -> MieleCoordinatorData: ...
27
+ def async_add_devices(self, added_devices: set[str]) -> tuple[set[str], set[str]]: ...
28
+ async def callback_update_data(self, devices_json: dict[str, dict]) -> None: ...
29
+ async def callback_update_actions(self, actions_json: dict[str, dict]) -> None: ...
@@ -0,0 +1,13 @@
1
+ from .coordinator import MieleConfigEntry as MieleConfigEntry
2
+ from _typeshed import Incomplete
3
+ from homeassistant.components.diagnostics import async_redact_data as async_redact_data
4
+ from homeassistant.core import HomeAssistant as HomeAssistant
5
+ from homeassistant.helpers.device_registry import DeviceEntry as DeviceEntry
6
+ from typing import Any
7
+
8
+ TO_REDACT: Incomplete
9
+
10
+ def hash_identifier(key: str) -> str: ...
11
+ def redact_identifiers(in_data: dict[str, Any]) -> dict[str, Any]: ...
12
+ async def async_get_config_entry_diagnostics(hass: HomeAssistant, config_entry: MieleConfigEntry) -> dict[str, Any]: ...
13
+ async def async_get_device_diagnostics(hass: HomeAssistant, config_entry: MieleConfigEntry, device: DeviceEntry) -> dict[str, Any]: ...
@@ -0,0 +1,24 @@
1
+ from .api import AsyncConfigEntryAuth as AsyncConfigEntryAuth
2
+ from .const import DEVICE_TYPE_TAGS as DEVICE_TYPE_TAGS, DOMAIN as DOMAIN, MANUFACTURER as MANUFACTURER, MieleAppliance as MieleAppliance, StateStatus as StateStatus
3
+ from .coordinator import MieleDataUpdateCoordinator as MieleDataUpdateCoordinator
4
+ from _typeshed import Incomplete
5
+ from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
6
+ from homeassistant.helpers.entity import EntityDescription as EntityDescription
7
+ from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
8
+ from pymiele import MieleAction as MieleAction, MieleDevice as MieleDevice
9
+
10
+ class MieleEntity(CoordinatorEntity[MieleDataUpdateCoordinator]):
11
+ _attr_has_entity_name: bool
12
+ _device_id: Incomplete
13
+ entity_description: Incomplete
14
+ _attr_unique_id: Incomplete
15
+ _attr_device_info: Incomplete
16
+ def __init__(self, coordinator: MieleDataUpdateCoordinator, device_id: str, description: EntityDescription) -> None: ...
17
+ @property
18
+ def device(self) -> MieleDevice: ...
19
+ @property
20
+ def action(self) -> MieleAction: ...
21
+ @property
22
+ def api(self) -> AsyncConfigEntryAuth: ...
23
+ @property
24
+ def available(self) -> bool: ...