homeassistant-stubs 2025.5.2__py3-none-any.whl → 2025.6.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (423) hide show
  1. homeassistant-stubs/components/airthings/sensor.pyi +1 -1
  2. homeassistant-stubs/components/alexa_devices/__init__.pyi +9 -0
  3. homeassistant-stubs/components/alexa_devices/binary_sensor.pyi +26 -0
  4. homeassistant-stubs/components/alexa_devices/config_flow.pyi +8 -0
  5. homeassistant-stubs/components/alexa_devices/const.pyi +5 -0
  6. homeassistant-stubs/components/alexa_devices/coordinator.pyi +17 -0
  7. homeassistant-stubs/components/alexa_devices/diagnostics.pyi +14 -0
  8. homeassistant-stubs/components/alexa_devices/entity.pyi +19 -0
  9. homeassistant-stubs/components/alexa_devices/notify.pyi +25 -0
  10. homeassistant-stubs/components/alexa_devices/switch.pyi +30 -0
  11. homeassistant-stubs/components/apcupsd/config_flow.pyi +1 -0
  12. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +3 -1
  13. homeassistant-stubs/components/axis/config_flow.pyi +2 -2
  14. homeassistant-stubs/components/axis/entity.pyi +1 -0
  15. homeassistant-stubs/components/backup/__init__.pyi +2 -2
  16. homeassistant-stubs/components/backup/coordinator.pyi +3 -0
  17. homeassistant-stubs/components/backup/entity.pyi +5 -2
  18. homeassistant-stubs/components/backup/event.pyi +23 -0
  19. homeassistant-stubs/components/backup/manager.pyi +22 -3
  20. homeassistant-stubs/components/backup/models.pyi +2 -2
  21. homeassistant-stubs/components/blue_current/button.pyi +25 -0
  22. homeassistant-stubs/components/blue_current/entity.pyi +3 -6
  23. homeassistant-stubs/components/bluesound/button.pyi +35 -0
  24. homeassistant-stubs/components/bluesound/media_player.pyi +1 -0
  25. homeassistant-stubs/components/bmw_connected_drive/button.pyi +1 -1
  26. homeassistant-stubs/components/bmw_connected_drive/coordinator.pyi +1 -1
  27. homeassistant-stubs/components/bmw_connected_drive/lock.pyi +1 -1
  28. homeassistant-stubs/components/bmw_connected_drive/notify.pyi +1 -1
  29. homeassistant-stubs/components/bmw_connected_drive/number.pyi +1 -1
  30. homeassistant-stubs/components/bmw_connected_drive/select.pyi +1 -1
  31. homeassistant-stubs/components/bmw_connected_drive/switch.pyi +1 -1
  32. homeassistant-stubs/components/bosch_alarm/__init__.pyi +8 -4
  33. homeassistant-stubs/components/bosch_alarm/alarm_control_panel.pyi +3 -1
  34. homeassistant-stubs/components/bosch_alarm/binary_sensor.pyi +45 -0
  35. homeassistant-stubs/components/bosch_alarm/config_flow.pyi +9 -3
  36. homeassistant-stubs/components/bosch_alarm/const.pyi +4 -1
  37. homeassistant-stubs/components/bosch_alarm/diagnostics.pyi +1 -1
  38. homeassistant-stubs/components/bosch_alarm/entity.pyi +30 -1
  39. homeassistant-stubs/components/bosch_alarm/sensor.pyi +6 -2
  40. homeassistant-stubs/components/bosch_alarm/services.pyi +15 -0
  41. homeassistant-stubs/components/bosch_alarm/switch.pyi +43 -0
  42. homeassistant-stubs/components/bosch_alarm/types.pyi +4 -0
  43. homeassistant-stubs/components/bring/__init__.pyi +1 -1
  44. homeassistant-stubs/components/bring/coordinator.pyi +21 -3
  45. homeassistant-stubs/components/bring/entity.pyi +3 -3
  46. homeassistant-stubs/components/bring/event.pyi +3 -2
  47. homeassistant-stubs/components/bring/sensor.pyi +1 -0
  48. homeassistant-stubs/components/bring/todo.pyi +1 -0
  49. homeassistant-stubs/components/camera/__init__.pyi +2 -10
  50. homeassistant-stubs/components/camera/webrtc.pyi +1 -22
  51. homeassistant-stubs/components/climate/__init__.pyi +3 -13
  52. homeassistant-stubs/components/climate/const.pyi +0 -3
  53. homeassistant-stubs/components/climate/significant_change.pyi +1 -1
  54. homeassistant-stubs/components/cloud/__init__.pyi +1 -1
  55. homeassistant-stubs/components/cloud/alexa_config.pyi +1 -1
  56. homeassistant-stubs/components/cloud/client.pyi +2 -1
  57. homeassistant-stubs/components/cloud/const.pyi +0 -1
  58. homeassistant-stubs/components/cloud/google_config.pyi +1 -1
  59. homeassistant-stubs/components/cloud/http_api.pyi +0 -2
  60. homeassistant-stubs/components/comelit/climate.pyi +14 -5
  61. homeassistant-stubs/components/comelit/config_flow.pyi +3 -4
  62. homeassistant-stubs/components/comelit/const.pyi +3 -0
  63. homeassistant-stubs/components/comelit/cover.pyi +3 -1
  64. homeassistant-stubs/components/comelit/humidifier.pyi +6 -1
  65. homeassistant-stubs/components/comelit/light.pyi +2 -0
  66. homeassistant-stubs/components/comelit/switch.pyi +2 -0
  67. homeassistant-stubs/components/comelit/utils.pyi +11 -0
  68. homeassistant-stubs/components/command_line/notify.pyi +3 -1
  69. homeassistant-stubs/components/config/entity_registry.pyi +6 -0
  70. homeassistant-stubs/components/deconz/entity.pyi +1 -0
  71. homeassistant-stubs/components/deconz/hub/hub.pyi +1 -1
  72. homeassistant-stubs/components/deconz/light.pyi +1 -1
  73. homeassistant-stubs/components/demo/media_player.pyi +2 -1
  74. homeassistant-stubs/components/derivative/__init__.pyi +2 -1
  75. homeassistant-stubs/components/device_automation/trigger.pyi +5 -2
  76. homeassistant-stubs/components/devolo_home_network/__init__.pyi +3 -18
  77. homeassistant-stubs/components/devolo_home_network/binary_sensor.pyi +1 -2
  78. homeassistant-stubs/components/devolo_home_network/button.pyi +1 -1
  79. homeassistant-stubs/components/devolo_home_network/config_flow.pyi +1 -1
  80. homeassistant-stubs/components/devolo_home_network/coordinator.pyi +56 -6
  81. homeassistant-stubs/components/devolo_home_network/device_tracker.pyi +1 -2
  82. homeassistant-stubs/components/devolo_home_network/diagnostics.pyi +1 -1
  83. homeassistant-stubs/components/devolo_home_network/entity.pyi +1 -2
  84. homeassistant-stubs/components/devolo_home_network/image.pyi +1 -2
  85. homeassistant-stubs/components/devolo_home_network/sensor.pyi +1 -2
  86. homeassistant-stubs/components/devolo_home_network/switch.pyi +1 -2
  87. homeassistant-stubs/components/devolo_home_network/update.pyi +1 -2
  88. homeassistant-stubs/components/dhcp/__init__.pyi +2 -0
  89. homeassistant-stubs/components/downloader/__init__.pyi +3 -4
  90. homeassistant-stubs/components/downloader/services.pyi +7 -0
  91. homeassistant-stubs/components/ecovacs/binary_sensor.pyi +1 -1
  92. homeassistant-stubs/components/ecovacs/button.pyi +2 -2
  93. homeassistant-stubs/components/ecovacs/number.pyi +1 -1
  94. homeassistant-stubs/components/ecovacs/select.pyi +1 -1
  95. homeassistant-stubs/components/ecovacs/sensor.pyi +1 -1
  96. homeassistant-stubs/components/ecovacs/switch.pyi +1 -1
  97. homeassistant-stubs/components/ecovacs/util.pyi +1 -1
  98. homeassistant-stubs/components/eheimdigital/climate.pyi +4 -2
  99. homeassistant-stubs/components/eheimdigital/diagnostics.pyi +9 -0
  100. homeassistant-stubs/components/eheimdigital/entity.pyi +5 -0
  101. homeassistant-stubs/components/eheimdigital/light.pyi +3 -2
  102. homeassistant-stubs/components/eheimdigital/number.pyi +3 -1
  103. homeassistant-stubs/components/eheimdigital/select.pyi +34 -0
  104. homeassistant-stubs/components/eheimdigital/switch.pyi +3 -1
  105. homeassistant-stubs/components/eheimdigital/time.pyi +2 -1
  106. homeassistant-stubs/components/elkm1/climate.pyi +0 -6
  107. homeassistant-stubs/components/esphome/entity.pyi +2 -0
  108. homeassistant-stubs/components/esphome/entry_data.pyi +0 -12
  109. homeassistant-stubs/components/esphome/light.pyi +4 -4
  110. homeassistant-stubs/components/esphome/manager.pyi +0 -1
  111. homeassistant-stubs/components/esphome/update.pyi +8 -4
  112. homeassistant-stubs/components/feedreader/event.pyi +1 -2
  113. homeassistant-stubs/components/fritz/__init__.pyi +1 -1
  114. homeassistant-stubs/components/fritz/config_flow.pyi +2 -1
  115. homeassistant-stubs/components/fritz/const.pyi +2 -0
  116. homeassistant-stubs/components/fritz/coordinator.pyi +5 -3
  117. homeassistant-stubs/components/frontend/storage.pyi +25 -9
  118. homeassistant-stubs/components/fyta/image.pyi +18 -4
  119. homeassistant-stubs/components/generic_hygrostat/__init__.pyi +4 -2
  120. homeassistant-stubs/components/generic_thermostat/__init__.pyi +5 -3
  121. homeassistant-stubs/components/geocaching/__init__.pyi +3 -5
  122. homeassistant-stubs/components/geocaching/coordinator.pyi +3 -2
  123. homeassistant-stubs/components/geocaching/sensor.pyi +2 -3
  124. homeassistant-stubs/components/google/__init__.pyi +7 -8
  125. homeassistant-stubs/components/google/api.pyi +2 -2
  126. homeassistant-stubs/components/google/calendar.pyi +5 -5
  127. homeassistant-stubs/components/google/config_flow.pyi +3 -2
  128. homeassistant-stubs/components/google/const.pyi +0 -2
  129. homeassistant-stubs/components/google/coordinator.pyi +5 -5
  130. homeassistant-stubs/components/google/diagnostics.pyi +2 -3
  131. homeassistant-stubs/components/google/store.pyi +9 -0
  132. homeassistant-stubs/components/google_assistant_sdk/__init__.pyi +5 -6
  133. homeassistant-stubs/components/google_assistant_sdk/config_flow.pyi +3 -3
  134. homeassistant-stubs/components/google_assistant_sdk/const.pyi +0 -2
  135. homeassistant-stubs/components/google_assistant_sdk/diagnostics.pyi +2 -2
  136. homeassistant-stubs/components/google_assistant_sdk/helpers.pyi +8 -1
  137. homeassistant-stubs/components/google_assistant_sdk/notify.pyi +1 -2
  138. homeassistant-stubs/components/greeneye_monitor/const.pyi +4 -1
  139. homeassistant-stubs/components/guardian/__init__.pyi +11 -18
  140. homeassistant-stubs/components/guardian/binary_sensor.pyi +5 -6
  141. homeassistant-stubs/components/guardian/button.pyi +4 -5
  142. homeassistant-stubs/components/guardian/coordinator.pyi +3 -3
  143. homeassistant-stubs/components/guardian/diagnostics.pyi +3 -4
  144. homeassistant-stubs/components/guardian/entity.pyi +3 -3
  145. homeassistant-stubs/components/guardian/sensor.pyi +3 -4
  146. homeassistant-stubs/components/guardian/services.pyi +28 -0
  147. homeassistant-stubs/components/guardian/switch.pyi +4 -5
  148. homeassistant-stubs/components/guardian/util.pyi +2 -2
  149. homeassistant-stubs/components/guardian/valve.pyi +4 -5
  150. homeassistant-stubs/components/habitica/const.pyi +1 -6
  151. homeassistant-stubs/components/habitica/coordinator.pyi +2 -2
  152. homeassistant-stubs/components/habitica/sensor.pyi +3 -1
  153. homeassistant-stubs/components/habitica/services.pyi +2 -4
  154. homeassistant-stubs/components/habitica/util.pyi +2 -0
  155. homeassistant-stubs/components/hardware/__init__.pyi +3 -1
  156. homeassistant-stubs/components/hardware/const.pyi +4 -0
  157. homeassistant-stubs/components/hardware/hardware.pyi +1 -1
  158. homeassistant-stubs/components/hardware/models.pyi +14 -1
  159. homeassistant-stubs/components/hardware/websocket_api.pyi +2 -12
  160. homeassistant-stubs/components/heos/media_player.pyi +1 -0
  161. homeassistant-stubs/components/here_travel_time/__init__.pyi +4 -6
  162. homeassistant-stubs/components/here_travel_time/coordinator.pyi +9 -10
  163. homeassistant-stubs/components/here_travel_time/model.pyi +6 -10
  164. homeassistant-stubs/components/here_travel_time/sensor.pyi +4 -5
  165. homeassistant-stubs/components/history_stats/__init__.pyi +2 -1
  166. homeassistant-stubs/components/history_stats/config_flow.pyi +2 -2
  167. homeassistant-stubs/components/history_stats/data.pyi +2 -0
  168. homeassistant-stubs/components/home_connect/application_credentials.pyi +1 -0
  169. homeassistant-stubs/components/home_connect/config_flow.pyi +2 -0
  170. homeassistant-stubs/components/home_connect/diagnostics.pyi +1 -2
  171. homeassistant-stubs/components/home_connect/entity.pyi +0 -1
  172. homeassistant-stubs/components/home_connect/light.pyi +2 -2
  173. homeassistant-stubs/components/home_connect/number.pyi +1 -0
  174. homeassistant-stubs/components/home_connect/sensor.pyi +4 -5
  175. homeassistant-stubs/components/home_connect/switch.pyi +1 -19
  176. homeassistant-stubs/components/homeassistant/__init__.pyi +5 -0
  177. homeassistant-stubs/components/homee/alarm_control_panel.pyi +39 -0
  178. homeassistant-stubs/components/homee/const.pyi +2 -0
  179. homeassistant-stubs/components/homee/event.pyi +19 -0
  180. homeassistant-stubs/components/homee/fan.pyi +38 -0
  181. homeassistant-stubs/components/homee/sensor.pyi +5 -1
  182. homeassistant-stubs/components/homekit/const.pyi +1 -0
  183. homeassistant-stubs/components/homekit/util.pyi +1 -1
  184. homeassistant-stubs/components/homeworks/__init__.pyi +5 -5
  185. homeassistant-stubs/components/homeworks/binary_sensor.pyi +2 -3
  186. homeassistant-stubs/components/homeworks/button.pyi +2 -3
  187. homeassistant-stubs/components/homeworks/light.pyi +2 -3
  188. homeassistant-stubs/components/http/decorators.pyi +1 -1
  189. homeassistant-stubs/components/huawei_lte/__init__.pyi +0 -1
  190. homeassistant-stubs/components/husqvarna_automower/binary_sensor.pyi +0 -7
  191. homeassistant-stubs/components/hydrawise/__init__.pyi +4 -5
  192. homeassistant-stubs/components/hydrawise/binary_sensor.pyi +3 -4
  193. homeassistant-stubs/components/hydrawise/coordinator.pyi +4 -3
  194. homeassistant-stubs/components/hydrawise/sensor.pyi +2 -4
  195. homeassistant-stubs/components/hydrawise/switch.pyi +3 -4
  196. homeassistant-stubs/components/hydrawise/valve.pyi +2 -4
  197. homeassistant-stubs/components/immich/__init__.pyi +10 -0
  198. homeassistant-stubs/components/immich/config_flow.pyi +27 -0
  199. homeassistant-stubs/components/immich/const.pyi +4 -0
  200. homeassistant-stubs/components/immich/coordinator.pyi +27 -0
  201. homeassistant-stubs/components/immich/diagnostics.pyi +10 -0
  202. homeassistant-stubs/components/immich/entity.pyi +10 -0
  203. homeassistant-stubs/components/immich/media_source.pyi +38 -0
  204. homeassistant-stubs/components/immich/sensor.pyi +28 -0
  205. homeassistant-stubs/components/integration/__init__.pyi +2 -1
  206. homeassistant-stubs/components/iqvia/__init__.pyi +4 -7
  207. homeassistant-stubs/components/iqvia/coordinator.pyi +16 -0
  208. homeassistant-stubs/components/iqvia/diagnostics.pyi +3 -4
  209. homeassistant-stubs/components/iqvia/entity.pyi +5 -6
  210. homeassistant-stubs/components/iqvia/sensor.pyi +3 -3
  211. homeassistant-stubs/components/isy994/__init__.pyi +6 -7
  212. homeassistant-stubs/components/isy994/binary_sensor.pyi +3 -4
  213. homeassistant-stubs/components/isy994/button.pyi +2 -3
  214. homeassistant-stubs/components/isy994/climate.pyi +3 -4
  215. homeassistant-stubs/components/isy994/config_flow.pyi +4 -3
  216. homeassistant-stubs/components/isy994/cover.pyi +3 -5
  217. homeassistant-stubs/components/isy994/fan.pyi +3 -5
  218. homeassistant-stubs/components/isy994/light.pyi +3 -4
  219. homeassistant-stubs/components/isy994/lock.pyi +2 -5
  220. homeassistant-stubs/components/isy994/models.pyi +2 -0
  221. homeassistant-stubs/components/isy994/number.pyi +3 -4
  222. homeassistant-stubs/components/isy994/select.pyi +3 -4
  223. homeassistant-stubs/components/isy994/sensor.pyi +3 -4
  224. homeassistant-stubs/components/isy994/services.pyi +1 -1
  225. homeassistant-stubs/components/isy994/switch.pyi +2 -4
  226. homeassistant-stubs/components/isy994/system_health.pyi +1 -3
  227. homeassistant-stubs/components/isy994/util.pyi +3 -2
  228. homeassistant-stubs/components/jellyfin/__init__.pyi +1 -1
  229. homeassistant-stubs/components/jellyfin/entity.pyi +2 -2
  230. homeassistant-stubs/components/jewish_calendar/binary_sensor.pyi +3 -2
  231. homeassistant-stubs/components/jewish_calendar/config_flow.pyi +3 -2
  232. homeassistant-stubs/components/jewish_calendar/const.pyi +1 -0
  233. homeassistant-stubs/components/jewish_calendar/diagnostics.pyi +11 -0
  234. homeassistant-stubs/components/jewish_calendar/entity.pyi +12 -5
  235. homeassistant-stubs/components/jewish_calendar/sensor.pyi +34 -15
  236. homeassistant-stubs/components/jewish_calendar/service.pyi +1 -0
  237. homeassistant-stubs/components/kaleidescape/entity.pyi +1 -0
  238. homeassistant-stubs/components/kaleidescape/media_player.pyi +1 -0
  239. homeassistant-stubs/components/kaleidescape/remote.pyi +1 -0
  240. homeassistant-stubs/components/kaleidescape/sensor.pyi +1 -0
  241. homeassistant-stubs/components/knocki/config_flow.pyi +2 -0
  242. homeassistant-stubs/components/knx/const.pyi +7 -0
  243. homeassistant-stubs/components/knx/cover.pyi +20 -9
  244. homeassistant-stubs/components/knx/schema.pyi +1 -6
  245. homeassistant-stubs/components/knx/storage/const.pyi +6 -0
  246. homeassistant-stubs/components/knx/storage/entity_store_schema.pyi +4 -3
  247. homeassistant-stubs/components/lcn/config_flow.pyi +0 -2
  248. homeassistant-stubs/components/lcn/const.pyi +3 -1
  249. homeassistant-stubs/components/lcn/cover.pyi +7 -2
  250. homeassistant-stubs/components/lcn/entity.pyi +1 -0
  251. homeassistant-stubs/components/lcn/helpers.pyi +0 -1
  252. homeassistant-stubs/components/lcn/schemas.pyi +1 -1
  253. homeassistant-stubs/components/lcn/services.pyi +2 -3
  254. homeassistant-stubs/components/litterrobot/entity.pyi +1 -1
  255. homeassistant-stubs/components/matter/select.pyi +2 -0
  256. homeassistant-stubs/components/matter/sensor.pyi +3 -1
  257. homeassistant-stubs/components/media_player/intent.pyi +11 -1
  258. homeassistant-stubs/components/metoffice/__init__.pyi +3 -5
  259. homeassistant-stubs/components/metoffice/config_flow.pyi +4 -2
  260. homeassistant-stubs/components/metoffice/const.pyi +7 -6
  261. homeassistant-stubs/components/metoffice/helpers.pyi +5 -6
  262. homeassistant-stubs/components/metoffice/sensor.pyi +15 -13
  263. homeassistant-stubs/components/metoffice/weather.pyi +23 -11
  264. homeassistant-stubs/components/miele/__init__.pyi +15 -0
  265. homeassistant-stubs/components/miele/api.pyi +9 -0
  266. homeassistant-stubs/components/miele/application_credentials.pyi +5 -0
  267. homeassistant-stubs/components/miele/binary_sensor.pyi +34 -0
  268. homeassistant-stubs/components/miele/button.pyi +32 -0
  269. homeassistant-stubs/components/miele/climate.pyi +55 -0
  270. homeassistant-stubs/components/miele/config_flow.pyi +17 -0
  271. homeassistant-stubs/components/miele/const.pyi +127 -0
  272. homeassistant-stubs/components/miele/coordinator.pyi +29 -0
  273. homeassistant-stubs/components/miele/diagnostics.pyi +13 -0
  274. homeassistant-stubs/components/miele/entity.pyi +24 -0
  275. homeassistant-stubs/components/miele/fan.pyi +39 -0
  276. homeassistant-stubs/components/miele/light.pyi +39 -0
  277. homeassistant-stubs/components/miele/sensor.pyi +72 -0
  278. homeassistant-stubs/components/miele/switch.pyi +52 -0
  279. homeassistant-stubs/components/miele/vacuum.pyi +84 -0
  280. homeassistant-stubs/components/minecraft_server/api.pyi +1 -1
  281. homeassistant-stubs/components/modbus/__init__.pyi +1 -1
  282. homeassistant-stubs/components/modbus/const.pyi +9 -0
  283. homeassistant-stubs/components/modbus/light.pyi +24 -1
  284. homeassistant-stubs/components/modbus/sensor.pyi +5 -3
  285. homeassistant-stubs/components/mqtt/binary_sensor.pyi +1 -2
  286. homeassistant-stubs/components/mqtt/button.pyi +1 -3
  287. homeassistant-stubs/components/mqtt/config_flow.pyi +26 -9
  288. homeassistant-stubs/components/mqtt/const.pyi +57 -0
  289. homeassistant-stubs/components/mqtt/cover.pyi +1 -25
  290. homeassistant-stubs/components/mqtt/fan.pyi +1 -31
  291. homeassistant-stubs/components/mqtt/sensor.pyi +1 -1
  292. homeassistant-stubs/components/mqtt/switch.pyi +1 -5
  293. homeassistant-stubs/components/music_assistant/media_player.pyi +6 -2
  294. homeassistant-stubs/components/number/const.pyi +3 -2
  295. homeassistant-stubs/components/nut/__init__.pyi +1 -1
  296. homeassistant-stubs/components/openai_conversation/conversation.pyi +2 -0
  297. homeassistant-stubs/components/openuv/binary_sensor.pyi +2 -1
  298. homeassistant-stubs/components/openuv/entity.pyi +1 -0
  299. homeassistant-stubs/components/otbr/util.pyi +1 -3
  300. homeassistant-stubs/components/pandora/__init__.pyi +1 -0
  301. homeassistant-stubs/components/pandora/media_player.pyi +14 -13
  302. homeassistant-stubs/components/paperless_ngx/__init__.pyi +13 -0
  303. homeassistant-stubs/components/paperless_ngx/config_flow.pyi +16 -0
  304. homeassistant-stubs/components/paperless_ngx/const.pyi +4 -0
  305. homeassistant-stubs/components/paperless_ngx/coordinator.pyi +39 -0
  306. homeassistant-stubs/components/{rtsp_to_webrtc → paperless_ngx}/diagnostics.pyi +2 -2
  307. homeassistant-stubs/components/paperless_ngx/entity.pyi +16 -0
  308. homeassistant-stubs/components/paperless_ngx/sensor.pyi +27 -0
  309. homeassistant-stubs/components/plugwise/coordinator.pyi +2 -2
  310. homeassistant-stubs/components/qbus/climate.pyi +1 -0
  311. homeassistant-stubs/components/qbus/entity.pyi +3 -3
  312. homeassistant-stubs/components/qbus/light.pyi +1 -0
  313. homeassistant-stubs/components/qbus/scene.pyi +21 -0
  314. homeassistant-stubs/components/qbus/switch.pyi +1 -0
  315. homeassistant-stubs/components/recorder/services.pyi +7 -1
  316. homeassistant-stubs/components/recorder/statistics.pyi +1 -1
  317. homeassistant-stubs/components/recorder/websocket_api.pyi +1 -1
  318. homeassistant-stubs/components/reolink/__init__.pyi +3 -1
  319. homeassistant-stubs/components/reolink/const.pyi +5 -0
  320. homeassistant-stubs/components/reolink/host.pyi +3 -3
  321. homeassistant-stubs/components/reolink/media_source.pyi +2 -1
  322. homeassistant-stubs/components/reolink/views.pyi +1 -0
  323. homeassistant-stubs/components/repairs/websocket_api.pyi +0 -1
  324. homeassistant-stubs/components/samsungtv/__init__.pyi +5 -5
  325. homeassistant-stubs/components/samsungtv/bridge.pyi +2 -1
  326. homeassistant-stubs/components/samsungtv/config_flow.pyi +4 -4
  327. homeassistant-stubs/components/samsungtv/entity.pyi +1 -1
  328. homeassistant-stubs/components/samsungtv/media_player.pyi +2 -1
  329. homeassistant-stubs/components/sensor/__init__.pyi +1 -0
  330. homeassistant-stubs/components/sensor/const.pyi +5 -2
  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/__init__.pyi +1 -1
  334. homeassistant-stubs/components/shelly/binary_sensor.pyi +3 -2
  335. homeassistant-stubs/components/shelly/button.pyi +5 -4
  336. homeassistant-stubs/components/shelly/climate.pyi +5 -5
  337. homeassistant-stubs/components/shelly/const.pyi +2 -0
  338. homeassistant-stubs/components/shelly/cover.pyi +2 -0
  339. homeassistant-stubs/components/shelly/entity.pyi +4 -2
  340. homeassistant-stubs/components/shelly/event.pyi +4 -2
  341. homeassistant-stubs/components/shelly/light.pyi +2 -0
  342. homeassistant-stubs/components/shelly/number.pyi +3 -2
  343. homeassistant-stubs/components/shelly/select.pyi +2 -0
  344. homeassistant-stubs/components/shelly/sensor.pyi +9 -2
  345. homeassistant-stubs/components/shelly/switch.pyi +2 -2
  346. homeassistant-stubs/components/shelly/text.pyi +2 -0
  347. homeassistant-stubs/components/shelly/update.pyi +1 -0
  348. homeassistant-stubs/components/shelly/utils.pyi +14 -7
  349. homeassistant-stubs/components/shelly/valve.pyi +2 -0
  350. homeassistant-stubs/components/smlight/button.pyi +3 -2
  351. homeassistant-stubs/components/squeezebox/__init__.pyi +1 -1
  352. homeassistant-stubs/components/squeezebox/binary_sensor.pyi +1 -0
  353. homeassistant-stubs/components/squeezebox/browse_media.pyi +1 -1
  354. homeassistant-stubs/components/squeezebox/button.pyi +3 -0
  355. homeassistant-stubs/components/squeezebox/const.pyi +12 -2
  356. homeassistant-stubs/components/squeezebox/coordinator.pyi +7 -3
  357. homeassistant-stubs/components/squeezebox/media_player.pyi +3 -1
  358. homeassistant-stubs/components/squeezebox/sensor.pyi +1 -0
  359. homeassistant-stubs/components/squeezebox/switch.pyi +47 -0
  360. homeassistant-stubs/components/squeezebox/update.pyi +50 -0
  361. homeassistant-stubs/components/statistics/__init__.pyi +2 -1
  362. homeassistant-stubs/components/suez_water/coordinator.pyi +19 -4
  363. homeassistant-stubs/components/suez_water/sensor.pyi +2 -0
  364. homeassistant-stubs/components/sun/condition.pyi +13 -0
  365. homeassistant-stubs/components/switch_as_x/__init__.pyi +16 -3
  366. homeassistant-stubs/components/switchbot_cloud/__init__.pyi +15 -9
  367. homeassistant-stubs/components/switchbot_cloud/binary_sensor.pyi +29 -0
  368. homeassistant-stubs/components/switchbot_cloud/coordinator.pyi +6 -1
  369. homeassistant-stubs/components/threshold/__init__.pyi +2 -1
  370. homeassistant-stubs/components/tibber/coordinator.pyi +1 -0
  371. homeassistant-stubs/components/tibber/notify.pyi +2 -2
  372. homeassistant-stubs/components/tibber/sensor.pyi +1 -1
  373. homeassistant-stubs/components/trend/__init__.pyi +2 -1
  374. homeassistant-stubs/components/tts/__init__.pyi +4 -1
  375. homeassistant-stubs/components/tts/const.pyi +1 -0
  376. homeassistant-stubs/components/tts/entity.pyi +4 -0
  377. homeassistant-stubs/components/tts/legacy.pyi +3 -1
  378. homeassistant-stubs/components/tts/media_source.pyi +5 -2
  379. homeassistant-stubs/components/unifi/__init__.pyi +1 -1
  380. homeassistant-stubs/components/unifi/config_flow.pyi +2 -2
  381. homeassistant-stubs/components/unifi/device_tracker.pyi +1 -0
  382. homeassistant-stubs/components/unifi/services.pyi +1 -0
  383. homeassistant-stubs/components/uptimerobot/coordinator.pyi +0 -1
  384. homeassistant-stubs/components/uptimerobot/switch.pyi +2 -1
  385. homeassistant-stubs/components/wallbox/const.pyi +10 -0
  386. homeassistant-stubs/components/wallbox/coordinator.pyi +4 -1
  387. homeassistant-stubs/components/wallbox/select.pyi +29 -0
  388. homeassistant-stubs/components/wallbox/sensor.pyi +1 -1
  389. homeassistant-stubs/components/wemo/device_trigger.pyi +1 -1
  390. homeassistant-stubs/components/wemo/light.pyi +1 -0
  391. homeassistant-stubs/components/whois/const.pyi +1 -0
  392. homeassistant-stubs/components/whois/sensor.pyi +2 -1
  393. homeassistant-stubs/components/withings/application_credentials.pyi +2 -0
  394. homeassistant-stubs/components/youtube/sensor.pyi +1 -1
  395. homeassistant-stubs/components/zwave_js/__init__.pyi +1 -3
  396. homeassistant-stubs/components/zwave_js/api.pyi +1 -2
  397. homeassistant-stubs/components/zwave_js/config_flow.pyi +8 -8
  398. homeassistant-stubs/components/zwave_js/const.pyi +2 -3
  399. homeassistant-stubs/config_entries.pyi +0 -1
  400. homeassistant-stubs/const.pyi +5 -0
  401. homeassistant-stubs/core_config.pyi +0 -2
  402. homeassistant-stubs/helpers/condition.pyi +1 -6
  403. homeassistant-stubs/helpers/config_entry_oauth2_flow.pyi +10 -0
  404. homeassistant-stubs/helpers/config_validation.pyi +7 -2
  405. homeassistant-stubs/helpers/device.pyi +1 -1
  406. homeassistant-stubs/helpers/device_registry.pyi +4 -4
  407. homeassistant-stubs/helpers/entity_component.pyi +5 -2
  408. homeassistant-stubs/helpers/entity_platform.pyi +4 -1
  409. homeassistant-stubs/helpers/entity_registry.pyi +7 -6
  410. homeassistant-stubs/helpers/helper_integration.pyi +6 -0
  411. homeassistant-stubs/helpers/selector.pyi +55 -50
  412. homeassistant-stubs/helpers/service.pyi +3 -3
  413. homeassistant-stubs/helpers/template.pyi +4 -1
  414. homeassistant-stubs/scripts/check_config.pyi +1 -1
  415. homeassistant-stubs/util/aiohttp.pyi +5 -0
  416. homeassistant-stubs/util/unit_conversion.pyi +11 -1
  417. {homeassistant_stubs-2025.5.2.dist-info → homeassistant_stubs-2025.6.0.dist-info}/METADATA +2 -2
  418. {homeassistant_stubs-2025.5.2.dist-info → homeassistant_stubs-2025.6.0.dist-info}/RECORD +420 -361
  419. homeassistant-stubs/components/metoffice/data.pyi +0 -10
  420. homeassistant-stubs/components/rtsp_to_webrtc/__init__.pyi +0 -19
  421. homeassistant-stubs/components/rtsp_to_webrtc/config_flow.pyi +0 -24
  422. {homeassistant_stubs-2025.5.2.dist-info → homeassistant_stubs-2025.6.0.dist-info}/WHEEL +0 -0
  423. {homeassistant_stubs-2025.5.2.dist-info → homeassistant_stubs-2025.6.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,5 +1,5 @@
1
1
  import voluptuous as vol
2
- from .const import CONF_CONTEXT_TIMEOUT as CONF_CONTEXT_TIMEOUT, CONF_IGNORE_INTERNAL_STATE as CONF_IGNORE_INTERNAL_STATE, CONF_INVERT as CONF_INVERT, CONF_KNX_EXPOSE as CONF_KNX_EXPOSE, CONF_PAYLOAD_LENGTH as CONF_PAYLOAD_LENGTH, CONF_RESET_AFTER as CONF_RESET_AFTER, CONF_RESPOND_TO_READ as CONF_RESPOND_TO_READ, CONF_STATE_ADDRESS as CONF_STATE_ADDRESS, CONF_SYNC_STATE as CONF_SYNC_STATE, ColorTempModes as ColorTempModes, FanZeroMode as FanZeroMode, KNX_ADDRESS as KNX_ADDRESS
2
+ from .const import CONF_CONTEXT_TIMEOUT as CONF_CONTEXT_TIMEOUT, CONF_IGNORE_INTERNAL_STATE as CONF_IGNORE_INTERNAL_STATE, CONF_INVERT as CONF_INVERT, CONF_KNX_EXPOSE as CONF_KNX_EXPOSE, CONF_PAYLOAD_LENGTH as CONF_PAYLOAD_LENGTH, CONF_RESET_AFTER as CONF_RESET_AFTER, CONF_RESPOND_TO_READ as CONF_RESPOND_TO_READ, CONF_STATE_ADDRESS as CONF_STATE_ADDRESS, CONF_SYNC_STATE as CONF_SYNC_STATE, ColorTempModes as ColorTempModes, CoverConf as CoverConf, FanZeroMode as FanZeroMode, KNX_ADDRESS as KNX_ADDRESS
3
3
  from .validation import backwards_compatible_xknx_climate_enum_member as backwards_compatible_xknx_climate_enum_member, dpt_base_type_validator as dpt_base_type_validator, ga_list_validator as ga_list_validator, ga_validator as ga_validator, numeric_type_validator as numeric_type_validator, sensor_type_validator as sensor_type_validator, string_type_validator as string_type_validator, sync_state_validator as sync_state_validator
4
4
  from _typeshed import Incomplete
5
5
  from abc import ABC
@@ -101,11 +101,6 @@ class CoverSchema(KNXPlatformSchema):
101
101
  CONF_POSITION_STATE_ADDRESS: str
102
102
  CONF_ANGLE_ADDRESS: str
103
103
  CONF_ANGLE_STATE_ADDRESS: str
104
- CONF_TRAVELLING_TIME_DOWN: str
105
- CONF_TRAVELLING_TIME_UP: str
106
- CONF_INVERT_UPDOWN: str
107
- CONF_INVERT_POSITION: str
108
- CONF_INVERT_ANGLE: str
109
104
  DEFAULT_TRAVEL_TIME: int
110
105
  DEFAULT_NAME: str
111
106
  ENTITY_SCHEMA: Incomplete
@@ -24,3 +24,9 @@ CONF_GA_WHITE_BRIGHTNESS: Final[str]
24
24
  CONF_GA_WHITE_SWITCH: Final[str]
25
25
  CONF_GA_HUE: Final[str]
26
26
  CONF_GA_SATURATION: Final[str]
27
+ CONF_GA_UP_DOWN: Final[str]
28
+ CONF_GA_STOP: Final[str]
29
+ CONF_GA_STEP: Final[str]
30
+ CONF_GA_POSITION_SET: Final[str]
31
+ CONF_GA_POSITION_STATE: Final[str]
32
+ CONF_GA_ANGLE: Final[str]
@@ -1,6 +1,6 @@
1
- from ..const import CONF_CONTEXT_TIMEOUT as CONF_CONTEXT_TIMEOUT, CONF_IGNORE_INTERNAL_STATE as CONF_IGNORE_INTERNAL_STATE, CONF_INVERT as CONF_INVERT, CONF_RESET_AFTER as CONF_RESET_AFTER, CONF_RESPOND_TO_READ as CONF_RESPOND_TO_READ, CONF_SYNC_STATE as CONF_SYNC_STATE, ColorTempModes as ColorTempModes, DOMAIN as DOMAIN, SUPPORTED_PLATFORMS_UI as SUPPORTED_PLATFORMS_UI
1
+ from ..const import CONF_CONTEXT_TIMEOUT as CONF_CONTEXT_TIMEOUT, CONF_IGNORE_INTERNAL_STATE as CONF_IGNORE_INTERNAL_STATE, CONF_INVERT as CONF_INVERT, CONF_RESET_AFTER as CONF_RESET_AFTER, CONF_RESPOND_TO_READ as CONF_RESPOND_TO_READ, CONF_SYNC_STATE as CONF_SYNC_STATE, ColorTempModes as ColorTempModes, CoverConf as CoverConf, DOMAIN as DOMAIN, SUPPORTED_PLATFORMS_UI as SUPPORTED_PLATFORMS_UI
2
2
  from ..validation import sync_state_validator as sync_state_validator
3
- from .const import CONF_COLOR_TEMP_MAX as CONF_COLOR_TEMP_MAX, CONF_COLOR_TEMP_MIN as CONF_COLOR_TEMP_MIN, CONF_DATA as CONF_DATA, CONF_DEVICE_INFO as CONF_DEVICE_INFO, CONF_ENTITY as CONF_ENTITY, CONF_GA_BLUE_BRIGHTNESS as CONF_GA_BLUE_BRIGHTNESS, CONF_GA_BLUE_SWITCH as CONF_GA_BLUE_SWITCH, CONF_GA_BRIGHTNESS as CONF_GA_BRIGHTNESS, CONF_GA_COLOR as CONF_GA_COLOR, CONF_GA_COLOR_TEMP as CONF_GA_COLOR_TEMP, CONF_GA_GREEN_BRIGHTNESS as CONF_GA_GREEN_BRIGHTNESS, CONF_GA_GREEN_SWITCH as CONF_GA_GREEN_SWITCH, CONF_GA_HUE as CONF_GA_HUE, CONF_GA_PASSIVE as CONF_GA_PASSIVE, CONF_GA_RED_BRIGHTNESS as CONF_GA_RED_BRIGHTNESS, CONF_GA_RED_SWITCH as CONF_GA_RED_SWITCH, CONF_GA_SATURATION as CONF_GA_SATURATION, CONF_GA_SENSOR as CONF_GA_SENSOR, CONF_GA_STATE as CONF_GA_STATE, CONF_GA_SWITCH as CONF_GA_SWITCH, CONF_GA_WHITE_BRIGHTNESS as CONF_GA_WHITE_BRIGHTNESS, CONF_GA_WHITE_SWITCH as CONF_GA_WHITE_SWITCH, CONF_GA_WRITE as CONF_GA_WRITE
3
+ from .const import CONF_COLOR_TEMP_MAX as CONF_COLOR_TEMP_MAX, CONF_COLOR_TEMP_MIN as CONF_COLOR_TEMP_MIN, CONF_DATA as CONF_DATA, CONF_DEVICE_INFO as CONF_DEVICE_INFO, CONF_ENTITY as CONF_ENTITY, CONF_GA_ANGLE as CONF_GA_ANGLE, CONF_GA_BLUE_BRIGHTNESS as CONF_GA_BLUE_BRIGHTNESS, CONF_GA_BLUE_SWITCH as CONF_GA_BLUE_SWITCH, CONF_GA_BRIGHTNESS as CONF_GA_BRIGHTNESS, CONF_GA_COLOR as CONF_GA_COLOR, CONF_GA_COLOR_TEMP as CONF_GA_COLOR_TEMP, CONF_GA_GREEN_BRIGHTNESS as CONF_GA_GREEN_BRIGHTNESS, CONF_GA_GREEN_SWITCH as CONF_GA_GREEN_SWITCH, CONF_GA_HUE as CONF_GA_HUE, CONF_GA_PASSIVE as CONF_GA_PASSIVE, CONF_GA_POSITION_SET as CONF_GA_POSITION_SET, CONF_GA_POSITION_STATE as CONF_GA_POSITION_STATE, CONF_GA_RED_BRIGHTNESS as CONF_GA_RED_BRIGHTNESS, CONF_GA_RED_SWITCH as CONF_GA_RED_SWITCH, CONF_GA_SATURATION as CONF_GA_SATURATION, CONF_GA_SENSOR as CONF_GA_SENSOR, CONF_GA_STATE as CONF_GA_STATE, CONF_GA_STEP as CONF_GA_STEP, CONF_GA_STOP as CONF_GA_STOP, CONF_GA_SWITCH as CONF_GA_SWITCH, CONF_GA_UP_DOWN as CONF_GA_UP_DOWN, CONF_GA_WHITE_BRIGHTNESS as CONF_GA_WHITE_BRIGHTNESS, CONF_GA_WHITE_SWITCH as CONF_GA_WHITE_SWITCH, CONF_GA_WRITE as CONF_GA_WRITE
4
4
  from .knx_selector import GASelector as GASelector
5
5
  from _typeshed import Incomplete
6
6
  from enum import StrEnum
@@ -14,7 +14,7 @@ BASE_ENTITY_SCHEMA: Incomplete
14
14
  def optional_ga_schema(key: str, ga_selector: GASelector) -> VolDictType: ...
15
15
 
16
16
  BINARY_SENSOR_SCHEMA: Incomplete
17
- SWITCH_SCHEMA: Incomplete
17
+ COVER_SCHEMA: Incomplete
18
18
 
19
19
  class LightColorMode(StrEnum):
20
20
  RGB = '232.600'
@@ -33,6 +33,7 @@ _INDIVIDUAL_LIGHT_SCHEMA: Incomplete
33
33
  _HSV_LIGHT_SCHEMA: Incomplete
34
34
  LIGHT_KNX_SCHEMA: Incomplete
35
35
  LIGHT_SCHEMA: Incomplete
36
+ SWITCH_SCHEMA: Incomplete
36
37
  ENTITY_STORE_DATA_SCHEMA: VolSchemaType
37
38
  CREATE_ENTITY_BASE_SCHEMA: VolDictType
38
39
  UPDATE_ENTITY_BASE_SCHEMA: Incomplete
@@ -3,7 +3,6 @@ from .const import CONF_ACKNOWLEDGE as CONF_ACKNOWLEDGE, CONF_DIM_MODE as CONF_D
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant import config_entries as config_entries
5
5
  from homeassistant.const import CONF_BASE as CONF_BASE, CONF_DEVICES as CONF_DEVICES, CONF_ENTITIES as CONF_ENTITIES, CONF_HOST as CONF_HOST, CONF_IP_ADDRESS as CONF_IP_ADDRESS, CONF_PASSWORD as CONF_PASSWORD, CONF_PORT as CONF_PORT, CONF_USERNAME as CONF_USERNAME
6
- from homeassistant.core import HomeAssistant as HomeAssistant
7
6
  from homeassistant.helpers.typing import ConfigType as ConfigType
8
7
  from typing import Any
9
8
 
@@ -13,7 +12,6 @@ USER_DATA: Incomplete
13
12
  CONFIG_SCHEMA: Incomplete
14
13
  USER_SCHEMA: Incomplete
15
14
 
16
- def get_config_entry(hass: HomeAssistant, data: ConfigType) -> config_entries.ConfigEntry | None: ...
17
15
  async def validate_connection(data: ConfigType) -> str | None: ...
18
16
 
19
17
  class LcnFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
@@ -42,6 +42,7 @@ CONF_SCENES: str
42
42
  CONF_REGISTER: str
43
43
  CONF_OUTPUTS: str
44
44
  CONF_REVERSE_TIME: str
45
+ CONF_POSITIONING_MODE: str
45
46
  DIM_MODES: Incomplete
46
47
  OUTPUT_PORTS: Incomplete
47
48
  RELAY_PORTS: Incomplete
@@ -61,4 +62,5 @@ SENDKEYCOMMANDS: Incomplete
61
62
  SENDKEYS: Incomplete
62
63
  KEY_ACTIONS: Incomplete
63
64
  TIME_UNITS: Incomplete
64
- MOTOR_REVERSE_TIME: Incomplete
65
+ MOTOR_REVERSE_TIMES: Incomplete
66
+ MOTOR_POSITIONING_MODES: Incomplete
@@ -1,9 +1,10 @@
1
- from .const import ADD_ENTITIES_CALLBACKS as ADD_ENTITIES_CALLBACKS, CONF_DOMAIN_DATA as CONF_DOMAIN_DATA, CONF_MOTOR as CONF_MOTOR, CONF_REVERSE_TIME as CONF_REVERSE_TIME, DOMAIN as DOMAIN
1
+ import pypck
2
+ from .const import ADD_ENTITIES_CALLBACKS as ADD_ENTITIES_CALLBACKS, CONF_DOMAIN_DATA as CONF_DOMAIN_DATA, CONF_MOTOR as CONF_MOTOR, CONF_POSITIONING_MODE as CONF_POSITIONING_MODE, CONF_REVERSE_TIME as CONF_REVERSE_TIME, DOMAIN as DOMAIN
2
3
  from .entity import LcnEntity as LcnEntity
3
4
  from .helpers import InputType as InputType
4
5
  from _typeshed import Incomplete
5
6
  from collections.abc import Iterable
6
- from homeassistant.components.cover import CoverEntity as CoverEntity
7
+ from homeassistant.components.cover import ATTR_POSITION as ATTR_POSITION, CoverEntity as CoverEntity, CoverEntityFeature as CoverEntityFeature
7
8
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
9
  from homeassistant.const import CONF_DOMAIN as CONF_DOMAIN, CONF_ENTITIES as CONF_ENTITIES
9
10
  from homeassistant.core import HomeAssistant as HomeAssistant
@@ -36,6 +37,8 @@ class LcnRelayCover(LcnEntity, CoverEntity):
36
37
  _attr_is_closing: bool
37
38
  _attr_is_opening: bool
38
39
  _attr_assumed_state: bool
40
+ _attr_supported_features: Incomplete
41
+ positioning_mode: pypck.lcn_defs.MotorPositioningMode
39
42
  motor: Incomplete
40
43
  motor_port_onoff: Incomplete
41
44
  motor_port_updown: Incomplete
@@ -48,4 +51,6 @@ class LcnRelayCover(LcnEntity, CoverEntity):
48
51
  async def async_close_cover(self, **kwargs: Any) -> None: ...
49
52
  async def async_open_cover(self, **kwargs: Any) -> None: ...
50
53
  async def async_stop_cover(self, **kwargs: Any) -> None: ...
54
+ _attr_current_cover_position: Incomplete
55
+ async def async_set_cover_position(self, **kwargs: Any) -> None: ...
51
56
  def input_received(self, input_obj: InputType) -> None: ...
@@ -10,6 +10,7 @@ from homeassistant.helpers.typing import ConfigType as ConfigType
10
10
 
11
11
  class LcnEntity(Entity):
12
12
  _attr_should_poll: bool
13
+ _attr_has_entity_name: bool
13
14
  device_connection: DeviceConnectionType
14
15
  config: Incomplete
15
16
  config_entry: Incomplete
@@ -22,5 +22,4 @@ def register_lcn_address_devices(hass: HomeAssistant, config_entry: ConfigEntry)
22
22
  async def async_update_device_config(device_connection: DeviceConnectionType, device_config: ConfigType) -> None: ...
23
23
  async def async_update_config_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> None: ...
24
24
  def get_device_config(address: AddressType, config_entry: ConfigEntry) -> ConfigType | None: ...
25
- def is_address(value: str) -> tuple[AddressType, str]: ...
26
25
  def is_states_string(states_string: str) -> list[str]: ...
@@ -1,4 +1,4 @@
1
- from .const import BINSENSOR_PORTS as BINSENSOR_PORTS, CONF_DIMMABLE as CONF_DIMMABLE, CONF_LOCKABLE as CONF_LOCKABLE, CONF_MAX_TEMP as CONF_MAX_TEMP, CONF_MIN_TEMP as CONF_MIN_TEMP, CONF_MOTOR as CONF_MOTOR, CONF_OUTPUT as CONF_OUTPUT, CONF_OUTPUTS as CONF_OUTPUTS, CONF_REGISTER as CONF_REGISTER, CONF_REVERSE_TIME as CONF_REVERSE_TIME, CONF_SETPOINT as CONF_SETPOINT, CONF_TARGET_VALUE_LOCKED as CONF_TARGET_VALUE_LOCKED, CONF_TRANSITION as CONF_TRANSITION, KEYS as KEYS, LED_PORTS as LED_PORTS, LOGICOP_PORTS as LOGICOP_PORTS, MOTOR_PORTS as MOTOR_PORTS, MOTOR_REVERSE_TIME as MOTOR_REVERSE_TIME, OUTPUT_PORTS as OUTPUT_PORTS, RELAY_PORTS as RELAY_PORTS, S0_INPUTS as S0_INPUTS, SETPOINTS as SETPOINTS, THRESHOLDS as THRESHOLDS, VARIABLES as VARIABLES, VAR_UNITS as VAR_UNITS
1
+ from .const import BINSENSOR_PORTS as BINSENSOR_PORTS, CONF_DIMMABLE as CONF_DIMMABLE, CONF_LOCKABLE as CONF_LOCKABLE, CONF_MAX_TEMP as CONF_MAX_TEMP, CONF_MIN_TEMP as CONF_MIN_TEMP, CONF_MOTOR as CONF_MOTOR, CONF_OUTPUT as CONF_OUTPUT, CONF_OUTPUTS as CONF_OUTPUTS, CONF_POSITIONING_MODE as CONF_POSITIONING_MODE, CONF_REGISTER as CONF_REGISTER, CONF_REVERSE_TIME as CONF_REVERSE_TIME, CONF_SETPOINT as CONF_SETPOINT, CONF_TARGET_VALUE_LOCKED as CONF_TARGET_VALUE_LOCKED, CONF_TRANSITION as CONF_TRANSITION, KEYS as KEYS, LED_PORTS as LED_PORTS, LOGICOP_PORTS as LOGICOP_PORTS, MOTOR_PORTS as MOTOR_PORTS, MOTOR_POSITIONING_MODES as MOTOR_POSITIONING_MODES, MOTOR_REVERSE_TIMES as MOTOR_REVERSE_TIMES, OUTPUT_PORTS as OUTPUT_PORTS, RELAY_PORTS as RELAY_PORTS, S0_INPUTS as S0_INPUTS, SETPOINTS as SETPOINTS, THRESHOLDS as THRESHOLDS, VARIABLES as VARIABLES, VAR_UNITS as VAR_UNITS
2
2
  from _typeshed import Incomplete
3
3
  from homeassistant.components.climate import DEFAULT_MAX_TEMP as DEFAULT_MAX_TEMP, DEFAULT_MIN_TEMP as DEFAULT_MIN_TEMP
4
4
  from homeassistant.const import CONF_SCENE as CONF_SCENE, CONF_SOURCE as CONF_SOURCE, CONF_UNIT_OF_MEASUREMENT as CONF_UNIT_OF_MEASUREMENT, UnitOfTemperature as UnitOfTemperature
@@ -1,11 +1,10 @@
1
1
  from .const import CONF_KEYS as CONF_KEYS, CONF_LED as CONF_LED, CONF_OUTPUT as CONF_OUTPUT, CONF_PCK as CONF_PCK, CONF_RELVARREF as CONF_RELVARREF, CONF_ROW as CONF_ROW, CONF_SETPOINT as CONF_SETPOINT, CONF_TABLE as CONF_TABLE, CONF_TEXT as CONF_TEXT, CONF_TIME as CONF_TIME, CONF_TIME_UNIT as CONF_TIME_UNIT, CONF_TRANSITION as CONF_TRANSITION, CONF_VALUE as CONF_VALUE, CONF_VARIABLE as CONF_VARIABLE, DEVICE_CONNECTIONS as DEVICE_CONNECTIONS, DOMAIN as DOMAIN, LED_PORTS as LED_PORTS, LED_STATUS as LED_STATUS, OUTPUT_PORTS as OUTPUT_PORTS, RELVARREF as RELVARREF, SENDKEYCOMMANDS as SENDKEYCOMMANDS, SETPOINTS as SETPOINTS, THRESHOLDS as THRESHOLDS, TIME_UNITS as TIME_UNITS, VARIABLES as VARIABLES, VAR_UNITS as VAR_UNITS
2
- from .helpers import DeviceConnectionType as DeviceConnectionType, get_device_connection as get_device_connection, is_address as is_address, is_states_string as is_states_string
2
+ from .helpers import DeviceConnectionType as DeviceConnectionType, is_states_string as is_states_string
3
3
  from _typeshed import Incomplete
4
4
  from enum import StrEnum
5
- from homeassistant.const import CONF_ADDRESS as CONF_ADDRESS, CONF_BRIGHTNESS as CONF_BRIGHTNESS, CONF_DEVICE_ID as CONF_DEVICE_ID, CONF_HOST as CONF_HOST, CONF_STATE as CONF_STATE, CONF_UNIT_OF_MEASUREMENT as CONF_UNIT_OF_MEASUREMENT
5
+ from homeassistant.const import CONF_BRIGHTNESS as CONF_BRIGHTNESS, CONF_DEVICE_ID as CONF_DEVICE_ID, CONF_STATE as CONF_STATE, CONF_UNIT_OF_MEASUREMENT as CONF_UNIT_OF_MEASUREMENT
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse
7
7
  from homeassistant.exceptions import ServiceValidationError as ServiceValidationError
8
- from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity, async_create_issue as async_create_issue
9
8
 
10
9
  class LcnServiceCall:
11
10
  schema: Incomplete
@@ -9,7 +9,7 @@ from typing import Generic, TypeVar
9
9
 
10
10
  _WhiskerEntityT = TypeVar('_WhiskerEntityT', bound=Robot | Pet)
11
11
 
12
- def get_device_info(whisker_entity: _WhiskerEntityT) -> DeviceInfo: ...
12
+ def get_device_info(whisker_entity: Robot | Pet) -> DeviceInfo: ...
13
13
 
14
14
  class LitterRobotEntity(CoordinatorEntity[LitterRobotDataUpdateCoordinator], Generic[_WhiskerEntityT]):
15
15
  _attr_has_entity_name: bool
@@ -15,6 +15,8 @@ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
15
15
 
16
16
  NUMBER_OF_RINSES_STATE_MAP: Incomplete
17
17
  NUMBER_OF_RINSES_STATE_MAP_REVERSE: Incomplete
18
+ PUMP_OPERATION_MODE_MAP: Incomplete
19
+ PUMP_OPERATION_MODE_MAP_REVERSE: Incomplete
18
20
  type SelectCluster = clusters.ModeSelect | clusters.OvenMode | clusters.LaundryWasherMode | clusters.RefrigeratorAndTemperatureControlledCabinetMode | clusters.RvcRunMode | clusters.RvcCleanMode | clusters.DishwasherMode | clusters.EnergyEvseMode | clusters.DeviceEnergyManagementMode | clusters.WaterHeaterMode
19
21
 
20
22
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
@@ -7,7 +7,7 @@ from chip.clusters.Types import Nullable as Nullable
7
7
  from dataclasses import dataclass
8
8
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
9
9
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
10
- from homeassistant.const import CONCENTRATION_MICROGRAMS_PER_CUBIC_METER as CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, EntityCategory as EntityCategory, LIGHT_LUX as LIGHT_LUX, PERCENTAGE as PERCENTAGE, Platform as Platform, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfPower as UnitOfPower, UnitOfPressure as UnitOfPressure, UnitOfTemperature as UnitOfTemperature, UnitOfVolume as UnitOfVolume, UnitOfVolumeFlowRate as UnitOfVolumeFlowRate
10
+ from homeassistant.const import CONCENTRATION_MICROGRAMS_PER_CUBIC_METER as CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, EntityCategory as EntityCategory, LIGHT_LUX as LIGHT_LUX, PERCENTAGE as PERCENTAGE, Platform as Platform, REVOLUTIONS_PER_MINUTE as REVOLUTIONS_PER_MINUTE, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfPower as UnitOfPower, UnitOfPressure as UnitOfPressure, UnitOfTemperature as UnitOfTemperature, UnitOfVolume as UnitOfVolume, UnitOfVolumeFlowRate as UnitOfVolumeFlowRate
11
11
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
12
12
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
13
13
  from homeassistant.util import slugify as slugify
@@ -16,7 +16,9 @@ AIR_QUALITY_MAP: Incomplete
16
16
  CONTAMINATION_STATE_MAP: Incomplete
17
17
  OPERATIONAL_STATE_MAP: Incomplete
18
18
  BOOST_STATE_MAP: Incomplete
19
+ ESA_STATE_MAP: Incomplete
19
20
  EVSE_FAULT_STATE_MAP: Incomplete
21
+ PUMP_CONTROL_MODE_MAP: Incomplete
20
22
 
21
23
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
22
24
 
@@ -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: ...