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
@@ -67,6 +67,10 @@ CONF_CURRENT_HUMIDITY_TEMPLATE: str
67
67
  CONF_CURRENT_HUMIDITY_TOPIC: str
68
68
  CONF_CURRENT_TEMP_TEMPLATE: str
69
69
  CONF_CURRENT_TEMP_TOPIC: str
70
+ CONF_DIRECTION_COMMAND_TEMPLATE: str
71
+ CONF_DIRECTION_COMMAND_TOPIC: str
72
+ CONF_DIRECTION_STATE_TOPIC: str
73
+ CONF_DIRECTION_VALUE_TEMPLATE: str
70
74
  CONF_ENABLED_BY_DEFAULT: str
71
75
  CONF_EFFECT_COMMAND_TEMPLATE: str
72
76
  CONF_EFFECT_COMMAND_TOPIC: str
@@ -79,6 +83,8 @@ CONF_EXPIRE_AFTER: str
79
83
  CONF_FLASH: str
80
84
  CONF_FLASH_TIME_LONG: str
81
85
  CONF_FLASH_TIME_SHORT: str
86
+ CONF_GET_POSITION_TEMPLATE: str
87
+ CONF_GET_POSITION_TOPIC: str
82
88
  CONF_GREEN_TEMPLATE: str
83
89
  CONF_HS_COMMAND_TEMPLATE: str
84
90
  CONF_HS_COMMAND_TOPIC: str
@@ -94,15 +100,35 @@ CONF_MODE_COMMAND_TOPIC: str
94
100
  CONF_MODE_LIST: str
95
101
  CONF_MODE_STATE_TEMPLATE: str
96
102
  CONF_MODE_STATE_TOPIC: str
103
+ CONF_OFF_DELAY: str
97
104
  CONF_ON_COMMAND_TYPE: str
105
+ CONF_OSCILLATION_COMMAND_TOPIC: str
106
+ CONF_OSCILLATION_COMMAND_TEMPLATE: str
107
+ CONF_OSCILLATION_STATE_TOPIC: str
108
+ CONF_OSCILLATION_VALUE_TEMPLATE: str
98
109
  CONF_PAYLOAD_CLOSE: str
99
110
  CONF_PAYLOAD_OPEN: str
111
+ CONF_PAYLOAD_OSCILLATION_OFF: str
112
+ CONF_PAYLOAD_OSCILLATION_ON: str
113
+ CONF_PAYLOAD_PRESS: str
114
+ CONF_PAYLOAD_RESET_PERCENTAGE: str
115
+ CONF_PAYLOAD_RESET_PRESET_MODE: str
100
116
  CONF_PAYLOAD_STOP: str
117
+ CONF_PAYLOAD_STOP_TILT: str
118
+ CONF_PERCENTAGE_COMMAND_TEMPLATE: str
119
+ CONF_PERCENTAGE_COMMAND_TOPIC: str
120
+ CONF_PERCENTAGE_STATE_TOPIC: str
121
+ CONF_PERCENTAGE_VALUE_TEMPLATE: str
101
122
  CONF_POSITION_CLOSED: str
102
123
  CONF_POSITION_OPEN: str
103
124
  CONF_POWER_COMMAND_TOPIC: str
104
125
  CONF_POWER_COMMAND_TEMPLATE: str
105
126
  CONF_PRECISION: str
127
+ CONF_PRESET_MODE_COMMAND_TEMPLATE: str
128
+ CONF_PRESET_MODE_COMMAND_TOPIC: str
129
+ CONF_PRESET_MODES_LIST: str
130
+ CONF_PRESET_MODE_STATE_TOPIC: str
131
+ CONF_PRESET_MODE_VALUE_TEMPLATE: str
106
132
  CONF_RED_TEMPLATE: str
107
133
  CONF_RGB_COMMAND_TEMPLATE: str
108
134
  CONF_RGB_COMMAND_TOPIC: str
@@ -116,10 +142,17 @@ CONF_RGBWW_COMMAND_TEMPLATE: str
116
142
  CONF_RGBWW_COMMAND_TOPIC: str
117
143
  CONF_RGBWW_STATE_TOPIC: str
118
144
  CONF_RGBWW_VALUE_TEMPLATE: str
145
+ CONF_SET_POSITION_TEMPLATE: str
146
+ CONF_SET_POSITION_TOPIC: str
147
+ CONF_SPEED_RANGE_MAX: str
148
+ CONF_SPEED_RANGE_MIN: str
119
149
  CONF_STATE_CLOSED: str
120
150
  CONF_STATE_CLOSING: str
151
+ CONF_STATE_OFF: str
152
+ CONF_STATE_ON: str
121
153
  CONF_STATE_OPEN: str
122
154
  CONF_STATE_OPENING: str
155
+ CONF_STATE_STOPPED: str
123
156
  CONF_SUGGESTED_DISPLAY_PRECISION: str
124
157
  CONF_SUPPORTED_COLOR_MODES: str
125
158
  CONF_TEMP_COMMAND_TEMPLATE: str
@@ -129,6 +162,15 @@ CONF_TEMP_STATE_TOPIC: str
129
162
  CONF_TEMP_INITIAL: str
130
163
  CONF_TEMP_MAX: str
131
164
  CONF_TEMP_MIN: str
165
+ CONF_TILT_COMMAND_TEMPLATE: str
166
+ CONF_TILT_COMMAND_TOPIC: str
167
+ CONF_TILT_STATUS_TOPIC: str
168
+ CONF_TILT_STATUS_TEMPLATE: str
169
+ CONF_TILT_CLOSED_POSITION: str
170
+ CONF_TILT_MAX: str
171
+ CONF_TILT_MIN: str
172
+ CONF_TILT_OPEN_POSITION: str
173
+ CONF_TILT_STATE_OPTIMISTIC: str
132
174
  CONF_TRANSITION: str
133
175
  CONF_XY_COMMAND_TEMPLATE: str
134
176
  CONF_XY_COMMAND_TOPIC: str
@@ -171,13 +213,28 @@ DEFAULT_PAYLOAD_NOT_AVAILABLE: str
171
213
  DEFAULT_PAYLOAD_OFF: str
172
214
  DEFAULT_PAYLOAD_ON: str
173
215
  DEFAULT_PAYLOAD_OPEN: str
216
+ DEFAULT_PAYLOAD_OSCILLATE_OFF: str
217
+ DEFAULT_PAYLOAD_OSCILLATE_ON: str
218
+ DEFAULT_PAYLOAD_PRESS: str
219
+ DEFAULT_PAYLOAD_STOP: str
220
+ DEFAULT_PAYLOAD_RESET: str
174
221
  DEFAULT_PORT: int
175
222
  DEFAULT_RETAIN: bool
223
+ DEFAULT_TILT_CLOSED_POSITION: int
224
+ DEFAULT_TILT_MAX: int
225
+ DEFAULT_TILT_MIN: int
226
+ DEFAULT_TILT_OPEN_POSITION: int
227
+ DEFAULT_TILT_OPTIMISTIC: bool
176
228
  DEFAULT_WS_HEADERS: dict[str, str]
177
229
  DEFAULT_WS_PATH: str
178
230
  DEFAULT_POSITION_CLOSED: int
179
231
  DEFAULT_POSITION_OPEN: int
232
+ DEFAULT_SPEED_RANGE_MAX: int
233
+ DEFAULT_SPEED_RANGE_MIN: int
234
+ DEFAULT_STATE_STOPPED: str
180
235
  DEFAULT_WHITE_SCALE: int
236
+ COVER_PAYLOAD: str
237
+ TILT_PAYLOAD: str
181
238
  VALUES_ON_COMMAND_TYPE: Incomplete
182
239
  PROTOCOL_31: str
183
240
  PROTOCOL_311: str
@@ -1,6 +1,6 @@
1
1
  from . import subscription as subscription
2
2
  from .config import MQTT_BASE_SCHEMA as MQTT_BASE_SCHEMA
3
- from .const import CONF_COMMAND_TOPIC as CONF_COMMAND_TOPIC, CONF_PAYLOAD_CLOSE as CONF_PAYLOAD_CLOSE, CONF_PAYLOAD_OPEN as CONF_PAYLOAD_OPEN, CONF_PAYLOAD_STOP as CONF_PAYLOAD_STOP, CONF_POSITION_CLOSED as CONF_POSITION_CLOSED, CONF_POSITION_OPEN as CONF_POSITION_OPEN, CONF_RETAIN as CONF_RETAIN, CONF_STATE_CLOSED as CONF_STATE_CLOSED, CONF_STATE_CLOSING as CONF_STATE_CLOSING, CONF_STATE_OPEN as CONF_STATE_OPEN, CONF_STATE_OPENING as CONF_STATE_OPENING, CONF_STATE_TOPIC as CONF_STATE_TOPIC, DEFAULT_OPTIMISTIC as DEFAULT_OPTIMISTIC, DEFAULT_PAYLOAD_CLOSE as DEFAULT_PAYLOAD_CLOSE, DEFAULT_PAYLOAD_OPEN as DEFAULT_PAYLOAD_OPEN, DEFAULT_POSITION_CLOSED as DEFAULT_POSITION_CLOSED, DEFAULT_POSITION_OPEN as DEFAULT_POSITION_OPEN, DEFAULT_RETAIN as DEFAULT_RETAIN, PAYLOAD_NONE as PAYLOAD_NONE
3
+ from .const import CONF_COMMAND_TOPIC as CONF_COMMAND_TOPIC, CONF_GET_POSITION_TEMPLATE as CONF_GET_POSITION_TEMPLATE, CONF_GET_POSITION_TOPIC as CONF_GET_POSITION_TOPIC, CONF_PAYLOAD_CLOSE as CONF_PAYLOAD_CLOSE, CONF_PAYLOAD_OPEN as CONF_PAYLOAD_OPEN, CONF_PAYLOAD_STOP as CONF_PAYLOAD_STOP, CONF_PAYLOAD_STOP_TILT as CONF_PAYLOAD_STOP_TILT, CONF_POSITION_CLOSED as CONF_POSITION_CLOSED, CONF_POSITION_OPEN as CONF_POSITION_OPEN, CONF_RETAIN as CONF_RETAIN, CONF_SET_POSITION_TEMPLATE as CONF_SET_POSITION_TEMPLATE, CONF_SET_POSITION_TOPIC as CONF_SET_POSITION_TOPIC, CONF_STATE_CLOSED as CONF_STATE_CLOSED, CONF_STATE_CLOSING as CONF_STATE_CLOSING, CONF_STATE_OPEN as CONF_STATE_OPEN, CONF_STATE_OPENING as CONF_STATE_OPENING, CONF_STATE_STOPPED as CONF_STATE_STOPPED, CONF_STATE_TOPIC as CONF_STATE_TOPIC, CONF_TILT_CLOSED_POSITION as CONF_TILT_CLOSED_POSITION, CONF_TILT_COMMAND_TEMPLATE as CONF_TILT_COMMAND_TEMPLATE, CONF_TILT_COMMAND_TOPIC as CONF_TILT_COMMAND_TOPIC, CONF_TILT_MAX as CONF_TILT_MAX, CONF_TILT_MIN as CONF_TILT_MIN, CONF_TILT_OPEN_POSITION as CONF_TILT_OPEN_POSITION, CONF_TILT_STATE_OPTIMISTIC as CONF_TILT_STATE_OPTIMISTIC, CONF_TILT_STATUS_TEMPLATE as CONF_TILT_STATUS_TEMPLATE, CONF_TILT_STATUS_TOPIC as CONF_TILT_STATUS_TOPIC, DEFAULT_OPTIMISTIC as DEFAULT_OPTIMISTIC, DEFAULT_PAYLOAD_CLOSE as DEFAULT_PAYLOAD_CLOSE, DEFAULT_PAYLOAD_OPEN as DEFAULT_PAYLOAD_OPEN, DEFAULT_PAYLOAD_STOP as DEFAULT_PAYLOAD_STOP, DEFAULT_POSITION_CLOSED as DEFAULT_POSITION_CLOSED, DEFAULT_POSITION_OPEN as DEFAULT_POSITION_OPEN, DEFAULT_RETAIN as DEFAULT_RETAIN, DEFAULT_STATE_STOPPED as DEFAULT_STATE_STOPPED, DEFAULT_TILT_CLOSED_POSITION as DEFAULT_TILT_CLOSED_POSITION, DEFAULT_TILT_MAX as DEFAULT_TILT_MAX, DEFAULT_TILT_MIN as DEFAULT_TILT_MIN, DEFAULT_TILT_OPEN_POSITION as DEFAULT_TILT_OPEN_POSITION, DEFAULT_TILT_OPTIMISTIC as DEFAULT_TILT_OPTIMISTIC, PAYLOAD_NONE as PAYLOAD_NONE
4
4
  from .entity import MqttEntity as MqttEntity, async_setup_entity_entry_helper as async_setup_entity_entry_helper
5
5
  from .models import MqttCommandTemplate as MqttCommandTemplate, MqttValueTemplate as MqttValueTemplate, ReceiveMessage as ReceiveMessage
6
6
  from .schemas import MQTT_ENTITY_COMMON_SCHEMA as MQTT_ENTITY_COMMON_SCHEMA
@@ -20,31 +20,7 @@ from typing import Any
20
20
 
21
21
  _LOGGER: Incomplete
22
22
  PARALLEL_UPDATES: int
23
- CONF_GET_POSITION_TOPIC: str
24
- CONF_GET_POSITION_TEMPLATE: str
25
- CONF_SET_POSITION_TOPIC: str
26
- CONF_SET_POSITION_TEMPLATE: str
27
- CONF_TILT_COMMAND_TOPIC: str
28
- CONF_TILT_COMMAND_TEMPLATE: str
29
- CONF_TILT_STATUS_TOPIC: str
30
- CONF_TILT_STATUS_TEMPLATE: str
31
- CONF_STATE_STOPPED: str
32
- CONF_PAYLOAD_STOP_TILT: str
33
- CONF_TILT_CLOSED_POSITION: str
34
- CONF_TILT_MAX: str
35
- CONF_TILT_MIN: str
36
- CONF_TILT_OPEN_POSITION: str
37
- CONF_TILT_STATE_OPTIMISTIC: str
38
- TILT_PAYLOAD: str
39
- COVER_PAYLOAD: str
40
23
  DEFAULT_NAME: str
41
- DEFAULT_STATE_STOPPED: str
42
- DEFAULT_PAYLOAD_STOP: str
43
- DEFAULT_TILT_CLOSED_POSITION: int
44
- DEFAULT_TILT_MAX: int
45
- DEFAULT_TILT_MIN: int
46
- DEFAULT_TILT_OPEN_POSITION: int
47
- DEFAULT_TILT_OPTIMISTIC: bool
48
24
  TILT_FEATURES: Incomplete
49
25
  MQTT_COVER_ATTRIBUTES_BLOCKED: Incomplete
50
26
 
@@ -1,6 +1,6 @@
1
1
  from . import subscription as subscription
2
2
  from .config import MQTT_RW_SCHEMA as MQTT_RW_SCHEMA
3
- from .const import CONF_COMMAND_TEMPLATE as CONF_COMMAND_TEMPLATE, CONF_COMMAND_TOPIC as CONF_COMMAND_TOPIC, CONF_STATE_TOPIC as CONF_STATE_TOPIC, CONF_STATE_VALUE_TEMPLATE as CONF_STATE_VALUE_TEMPLATE, PAYLOAD_NONE as PAYLOAD_NONE
3
+ from .const import CONF_COMMAND_TEMPLATE as CONF_COMMAND_TEMPLATE, CONF_COMMAND_TOPIC as CONF_COMMAND_TOPIC, CONF_DIRECTION_COMMAND_TEMPLATE as CONF_DIRECTION_COMMAND_TEMPLATE, CONF_DIRECTION_COMMAND_TOPIC as CONF_DIRECTION_COMMAND_TOPIC, CONF_DIRECTION_STATE_TOPIC as CONF_DIRECTION_STATE_TOPIC, CONF_DIRECTION_VALUE_TEMPLATE as CONF_DIRECTION_VALUE_TEMPLATE, CONF_OSCILLATION_COMMAND_TEMPLATE as CONF_OSCILLATION_COMMAND_TEMPLATE, CONF_OSCILLATION_COMMAND_TOPIC as CONF_OSCILLATION_COMMAND_TOPIC, CONF_OSCILLATION_STATE_TOPIC as CONF_OSCILLATION_STATE_TOPIC, CONF_OSCILLATION_VALUE_TEMPLATE as CONF_OSCILLATION_VALUE_TEMPLATE, CONF_PAYLOAD_OSCILLATION_OFF as CONF_PAYLOAD_OSCILLATION_OFF, CONF_PAYLOAD_OSCILLATION_ON as CONF_PAYLOAD_OSCILLATION_ON, CONF_PAYLOAD_RESET_PERCENTAGE as CONF_PAYLOAD_RESET_PERCENTAGE, CONF_PAYLOAD_RESET_PRESET_MODE as CONF_PAYLOAD_RESET_PRESET_MODE, CONF_PERCENTAGE_COMMAND_TEMPLATE as CONF_PERCENTAGE_COMMAND_TEMPLATE, CONF_PERCENTAGE_COMMAND_TOPIC as CONF_PERCENTAGE_COMMAND_TOPIC, CONF_PERCENTAGE_STATE_TOPIC as CONF_PERCENTAGE_STATE_TOPIC, CONF_PERCENTAGE_VALUE_TEMPLATE as CONF_PERCENTAGE_VALUE_TEMPLATE, CONF_PRESET_MODES_LIST as CONF_PRESET_MODES_LIST, CONF_PRESET_MODE_COMMAND_TEMPLATE as CONF_PRESET_MODE_COMMAND_TEMPLATE, CONF_PRESET_MODE_COMMAND_TOPIC as CONF_PRESET_MODE_COMMAND_TOPIC, CONF_PRESET_MODE_STATE_TOPIC as CONF_PRESET_MODE_STATE_TOPIC, CONF_PRESET_MODE_VALUE_TEMPLATE as CONF_PRESET_MODE_VALUE_TEMPLATE, CONF_SPEED_RANGE_MAX as CONF_SPEED_RANGE_MAX, CONF_SPEED_RANGE_MIN as CONF_SPEED_RANGE_MIN, CONF_STATE_TOPIC as CONF_STATE_TOPIC, CONF_STATE_VALUE_TEMPLATE as CONF_STATE_VALUE_TEMPLATE, DEFAULT_PAYLOAD_OFF as DEFAULT_PAYLOAD_OFF, DEFAULT_PAYLOAD_ON as DEFAULT_PAYLOAD_ON, DEFAULT_PAYLOAD_OSCILLATE_OFF as DEFAULT_PAYLOAD_OSCILLATE_OFF, DEFAULT_PAYLOAD_OSCILLATE_ON as DEFAULT_PAYLOAD_OSCILLATE_ON, DEFAULT_PAYLOAD_RESET as DEFAULT_PAYLOAD_RESET, DEFAULT_SPEED_RANGE_MAX as DEFAULT_SPEED_RANGE_MAX, DEFAULT_SPEED_RANGE_MIN as DEFAULT_SPEED_RANGE_MIN, PAYLOAD_NONE as PAYLOAD_NONE
4
4
  from .entity import MqttEntity as MqttEntity, async_setup_entity_entry_helper as async_setup_entity_entry_helper
5
5
  from .models import MqttCommandTemplate as MqttCommandTemplate, MqttValueTemplate as MqttValueTemplate, PublishPayloadType as PublishPayloadType, ReceiveMessage as ReceiveMessage
6
6
  from .schemas import MQTT_ENTITY_COMMON_SCHEMA as MQTT_ENTITY_COMMON_SCHEMA
@@ -21,37 +21,7 @@ from homeassistant.util.scaling import int_states_in_range as int_states_in_rang
21
21
  from typing import Any
22
22
 
23
23
  PARALLEL_UPDATES: int
24
- CONF_DIRECTION_STATE_TOPIC: str
25
- CONF_DIRECTION_COMMAND_TOPIC: str
26
- CONF_DIRECTION_VALUE_TEMPLATE: str
27
- CONF_DIRECTION_COMMAND_TEMPLATE: str
28
- CONF_PERCENTAGE_STATE_TOPIC: str
29
- CONF_PERCENTAGE_COMMAND_TOPIC: str
30
- CONF_PERCENTAGE_VALUE_TEMPLATE: str
31
- CONF_PERCENTAGE_COMMAND_TEMPLATE: str
32
- CONF_PAYLOAD_RESET_PERCENTAGE: str
33
- CONF_SPEED_RANGE_MIN: str
34
- CONF_SPEED_RANGE_MAX: str
35
- CONF_PRESET_MODE_STATE_TOPIC: str
36
- CONF_PRESET_MODE_COMMAND_TOPIC: str
37
- CONF_PRESET_MODE_VALUE_TEMPLATE: str
38
- CONF_PRESET_MODE_COMMAND_TEMPLATE: str
39
- CONF_PRESET_MODES_LIST: str
40
- CONF_PAYLOAD_RESET_PRESET_MODE: str
41
- CONF_OSCILLATION_STATE_TOPIC: str
42
- CONF_OSCILLATION_COMMAND_TOPIC: str
43
- CONF_OSCILLATION_VALUE_TEMPLATE: str
44
- CONF_OSCILLATION_COMMAND_TEMPLATE: str
45
- CONF_PAYLOAD_OSCILLATION_ON: str
46
- CONF_PAYLOAD_OSCILLATION_OFF: str
47
24
  DEFAULT_NAME: str
48
- DEFAULT_PAYLOAD_ON: str
49
- DEFAULT_PAYLOAD_OFF: str
50
- DEFAULT_PAYLOAD_RESET: str
51
- DEFAULT_SPEED_RANGE_MIN: int
52
- DEFAULT_SPEED_RANGE_MAX: int
53
- OSCILLATE_ON_PAYLOAD: str
54
- OSCILLATE_OFF_PAYLOAD: str
55
25
  MQTT_FAN_ATTRIBUTES_BLOCKED: Incomplete
56
26
  _LOGGER: Incomplete
57
27
 
@@ -1,7 +1,7 @@
1
1
  import voluptuous as vol
2
2
  from . import subscription as subscription
3
3
  from .config import MQTT_RW_SCHEMA as MQTT_RW_SCHEMA
4
- from .const import CONF_COMMAND_TEMPLATE as CONF_COMMAND_TEMPLATE, CONF_COMMAND_TOPIC as CONF_COMMAND_TOPIC, CONF_STATE_TOPIC as CONF_STATE_TOPIC, PAYLOAD_NONE as PAYLOAD_NONE
4
+ from .const import CONF_COMMAND_TEMPLATE as CONF_COMMAND_TEMPLATE, CONF_COMMAND_TOPIC as CONF_COMMAND_TOPIC, CONF_STATE_OFF as CONF_STATE_OFF, CONF_STATE_ON as CONF_STATE_ON, CONF_STATE_TOPIC as CONF_STATE_TOPIC, DEFAULT_PAYLOAD_OFF as DEFAULT_PAYLOAD_OFF, DEFAULT_PAYLOAD_ON as DEFAULT_PAYLOAD_ON, PAYLOAD_NONE as PAYLOAD_NONE
5
5
  from .entity import MqttEntity as MqttEntity, async_setup_entity_entry_helper as async_setup_entity_entry_helper
6
6
  from .models import MqttCommandTemplate as MqttCommandTemplate, MqttValueTemplate as MqttValueTemplate, PublishPayloadType as PublishPayloadType, ReceiveMessage as ReceiveMessage
7
7
  from .schemas import MQTT_ENTITY_COMMON_SCHEMA as MQTT_ENTITY_COMMON_SCHEMA
@@ -20,10 +20,6 @@ from typing import Any
20
20
 
21
21
  PARALLEL_UPDATES: int
22
22
  DEFAULT_NAME: str
23
- DEFAULT_PAYLOAD_ON: str
24
- DEFAULT_PAYLOAD_OFF: str
25
- CONF_STATE_ON: str
26
- CONF_STATE_OFF: str
27
23
  PLATFORM_SCHEMA_MODERN: Incomplete
28
24
  DISCOVERY_SCHEMA: Incomplete
29
25
 
@@ -9,7 +9,7 @@ from homeassistant.components import media_source as media_source
9
9
  from homeassistant.components.media_player import ATTR_MEDIA_ENQUEUE as ATTR_MEDIA_ENQUEUE, ATTR_MEDIA_EXTRA as ATTR_MEDIA_EXTRA, BrowseMedia as BrowseMedia, MediaPlayerDeviceClass as MediaPlayerDeviceClass, MediaPlayerEnqueue as MediaPlayerEnqueue, MediaPlayerEntity as MediaPlayerEntity, MediaPlayerEntityFeature as MediaPlayerEntityFeature, MediaPlayerState as MediaPlayerState, RepeatMode as RepeatMode, SearchMedia as SearchMedia, SearchMediaQuery as SearchMediaQuery, async_process_play_media_url as async_process_play_media_url
10
10
  from homeassistant.const import ATTR_NAME as ATTR_NAME, STATE_OFF as STATE_OFF
11
11
  from homeassistant.core import HomeAssistant as HomeAssistant, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse
12
- from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
12
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
13
13
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback, async_get_current_platform as async_get_current_platform
14
14
  from homeassistant.util.dt import utc_from_timestamp as utc_from_timestamp
15
15
  from music_assistant_client import MusicAssistantClient as MusicAssistantClient
@@ -36,6 +36,7 @@ class MusicAssistantPlayer(MusicAssistantEntity, MediaPlayerEntity):
36
36
  _attr_icon: Incomplete
37
37
  _attr_device_class: Incomplete
38
38
  _prev_time: float
39
+ _source_list_mapping: dict[str, str]
39
40
  def __init__(self, mass: MusicAssistantClient, player_id: str) -> None: ...
40
41
  async def async_added_to_hass(self) -> None: ...
41
42
  @property
@@ -43,6 +44,8 @@ class MusicAssistantPlayer(MusicAssistantEntity, MediaPlayerEntity):
43
44
  @property
44
45
  def extra_state_attributes(self) -> Mapping[str, Any]: ...
45
46
  _attr_state: Incomplete
47
+ _attr_source_list: Incomplete
48
+ _attr_source: Incomplete
46
49
  _attr_group_members: Incomplete
47
50
  _attr_volume_level: Incomplete
48
51
  _attr_is_volume_muted: Incomplete
@@ -84,6 +87,8 @@ class MusicAssistantPlayer(MusicAssistantEntity, MediaPlayerEntity):
84
87
  @catch_musicassistant_error
85
88
  async def async_unjoin_player(self) -> None: ...
86
89
  @catch_musicassistant_error
90
+ async def async_select_source(self, source: str) -> None: ...
91
+ @catch_musicassistant_error
87
92
  async def _async_handle_play_media(self, media_id: list[str], artist: str | None = None, album: str | None = None, enqueue: MediaPlayerEnqueue | QueueOption | None = None, radio_mode: bool | None = None, media_type: str | None = None) -> None: ...
88
93
  @catch_musicassistant_error
89
94
  async def _async_handle_play_announcement(self, url: str, use_pre_announce: bool | None = None, announce_volume: int | None = None) -> None: ...
@@ -106,7 +111,6 @@ class MusicAssistantPlayer(MusicAssistantEntity, MediaPlayerEntity):
106
111
  _attr_app_id: Incomplete
107
112
  _attr_shuffle: Incomplete
108
113
  _attr_repeat: Incomplete
109
- _attr_source: Incomplete
110
114
  def _update_media_attributes(self, player: Player, queue: PlayerQueue | None) -> None: ...
111
115
  def _convert_queueoption_to_media_player_enqueue(self, queue_option: MediaPlayerEnqueue | QueueOption | None) -> QueueOption | None: ...
112
116
  _attr_supported_features: Incomplete
@@ -8,6 +8,7 @@ from google_nest_sdm.structure import Structure as Structure
8
8
  from homeassistant.config_entries import ConfigFlowResult as ConfigFlowResult, SOURCE_REAUTH as SOURCE_REAUTH
9
9
  from homeassistant.helpers import config_entry_oauth2_flow as config_entry_oauth2_flow
10
10
  from homeassistant.helpers.selector import SelectSelector as SelectSelector, SelectSelectorConfig as SelectSelectorConfig, SelectSelectorMode as SelectSelectorMode
11
+ from homeassistant.helpers.service_info.dhcp import DhcpServiceInfo as DhcpServiceInfo
11
12
  from homeassistant.util import get_random_string as get_random_string
12
13
  from typing import Any
13
14
 
@@ -54,3 +55,4 @@ class NestFlowHandler(config_entry_oauth2_flow.AbstractOAuth2FlowHandler, domain
54
55
  async def async_step_pubsub_topic_confirm(self, user_input: dict | None = None) -> ConfigFlowResult: ...
55
56
  async def async_step_pubsub_subscription(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
56
57
  async def _async_finish(self) -> ConfigFlowResult: ...
58
+ async def async_step_dhcp(self, discovery_info: DhcpServiceInfo) -> ConfigFlowResult: ...
@@ -1,7 +1,7 @@
1
1
  from _typeshed import Incomplete
2
2
  from enum import StrEnum
3
- from homeassistant.const import CONCENTRATION_MICROGRAMS_PER_CUBIC_METER as CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONCENTRATION_PARTS_PER_BILLION as CONCENTRATION_PARTS_PER_BILLION, CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, DEGREE as DEGREE, LIGHT_LUX as LIGHT_LUX, PERCENTAGE as PERCENTAGE, SIGNAL_STRENGTH_DECIBELS as SIGNAL_STRENGTH_DECIBELS, SIGNAL_STRENGTH_DECIBELS_MILLIWATT as SIGNAL_STRENGTH_DECIBELS_MILLIWATT, UnitOfApparentPower as UnitOfApparentPower, UnitOfArea as UnitOfArea, UnitOfBloodGlucoseConcentration as UnitOfBloodGlucoseConcentration, UnitOfConductivity as UnitOfConductivity, UnitOfDataRate as UnitOfDataRate, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfEnergyDistance as UnitOfEnergyDistance, UnitOfFrequency as UnitOfFrequency, UnitOfInformation as UnitOfInformation, UnitOfIrradiance as UnitOfIrradiance, UnitOfLength as UnitOfLength, UnitOfMass as UnitOfMass, UnitOfPower as UnitOfPower, UnitOfPrecipitationDepth as UnitOfPrecipitationDepth, UnitOfPressure as UnitOfPressure, UnitOfReactivePower as UnitOfReactivePower, UnitOfSoundPressure as UnitOfSoundPressure, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime, UnitOfVolume as UnitOfVolume, UnitOfVolumeFlowRate as UnitOfVolumeFlowRate, UnitOfVolumetricFlux as UnitOfVolumetricFlux
4
- from homeassistant.util.unit_conversion import BaseUnitConverter as BaseUnitConverter, TemperatureConverter as TemperatureConverter, VolumeFlowRateConverter as VolumeFlowRateConverter
3
+ from homeassistant.const import CONCENTRATION_MICROGRAMS_PER_CUBIC_METER as CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER as CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER, CONCENTRATION_PARTS_PER_BILLION as CONCENTRATION_PARTS_PER_BILLION, CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, DEGREE as DEGREE, LIGHT_LUX as LIGHT_LUX, PERCENTAGE as PERCENTAGE, SIGNAL_STRENGTH_DECIBELS as SIGNAL_STRENGTH_DECIBELS, SIGNAL_STRENGTH_DECIBELS_MILLIWATT as SIGNAL_STRENGTH_DECIBELS_MILLIWATT, UnitOfApparentPower as UnitOfApparentPower, UnitOfArea as UnitOfArea, UnitOfBloodGlucoseConcentration as UnitOfBloodGlucoseConcentration, UnitOfConductivity as UnitOfConductivity, UnitOfDataRate as UnitOfDataRate, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfEnergyDistance as UnitOfEnergyDistance, UnitOfFrequency as UnitOfFrequency, UnitOfInformation as UnitOfInformation, UnitOfIrradiance as UnitOfIrradiance, UnitOfLength as UnitOfLength, UnitOfMass as UnitOfMass, UnitOfPower as UnitOfPower, UnitOfPrecipitationDepth as UnitOfPrecipitationDepth, UnitOfPressure as UnitOfPressure, UnitOfReactiveEnergy as UnitOfReactiveEnergy, UnitOfReactivePower as UnitOfReactivePower, UnitOfSoundPressure as UnitOfSoundPressure, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime, UnitOfVolume as UnitOfVolume, UnitOfVolumeFlowRate as UnitOfVolumeFlowRate, UnitOfVolumetricFlux as UnitOfVolumetricFlux
4
+ from homeassistant.util.unit_conversion import BaseUnitConverter as BaseUnitConverter, ReactiveEnergyConverter as ReactiveEnergyConverter, TemperatureConverter as TemperatureConverter, VolumeFlowRateConverter as VolumeFlowRateConverter
5
5
  from typing import Final
6
6
 
7
7
  ATTR_VALUE: str
@@ -58,6 +58,7 @@ class NumberDeviceClass(StrEnum):
58
58
  PRECIPITATION = 'precipitation'
59
59
  PRECIPITATION_INTENSITY = 'precipitation_intensity'
60
60
  PRESSURE = 'pressure'
61
+ REACTIVE_ENERGY = 'reactive_energy'
61
62
  REACTIVE_POWER = 'reactive_power'
62
63
  SIGNAL_STRENGTH = 'signal_strength'
63
64
  SOUND_PRESSURE = 'sound_pressure'
@@ -22,7 +22,7 @@ class NutRuntimeData:
22
22
 
23
23
  async def async_setup_entry(hass: HomeAssistant, entry: NutConfigEntry) -> bool: ...
24
24
  async def async_unload_entry(hass: HomeAssistant, entry: NutConfigEntry) -> bool: ...
25
- async def async_remove_config_entry_device(hass: HomeAssistant, config_entry: ConfigEntry, device_entry: dr.DeviceEntry) -> bool: ...
25
+ async def async_remove_config_entry_device(hass: HomeAssistant, config_entry: NutConfigEntry, device_entry: dr.DeviceEntry) -> bool: ...
26
26
  async def _async_update_listener(hass: HomeAssistant, entry: NutConfigEntry) -> None: ...
27
27
  def _manufacturer_from_status(status: dict[str, str]) -> str | None: ...
28
28
  def _model_from_status(status: dict[str, str]) -> str | None: ...
@@ -23,6 +23,7 @@ async def _transform_stream(chat_log: conversation.ChatLog, result: AsyncStream[
23
23
  class OpenAIConversationEntity(conversation.ConversationEntity, conversation.AbstractConversationAgent):
24
24
  _attr_has_entity_name: bool
25
25
  _attr_name: Incomplete
26
+ _attr_supports_streaming: bool
26
27
  entry: Incomplete
27
28
  _attr_unique_id: Incomplete
28
29
  _attr_device_info: Incomplete
@@ -33,4 +34,5 @@ class OpenAIConversationEntity(conversation.ConversationEntity, conversation.Abs
33
34
  async def async_added_to_hass(self) -> None: ...
34
35
  async def async_will_remove_from_hass(self) -> None: ...
35
36
  async def _async_handle_message(self, user_input: conversation.ConversationInput, chat_log: conversation.ChatLog) -> conversation.ConversationResult: ...
37
+ async def _async_handle_chat_log(self, chat_log: conversation.ChatLog) -> None: ...
36
38
  async def _async_entry_update_listener(self, hass: HomeAssistant, entry: ConfigEntry) -> None: ...
@@ -29,23 +29,22 @@ class PandoraMediaPlayer(MediaPlayerEntity):
29
29
  _attr_media_duration: int
30
30
  _pianobar: pexpect.spawn[str] | None
31
31
  def __init__(self, name: str) -> None: ...
32
- def turn_on(self) -> None: ...
32
+ async def _start_pianobar(self) -> bool: ...
33
+ async def async_turn_on(self) -> None: ...
33
34
  def turn_off(self) -> None: ...
34
- def media_play(self) -> None: ...
35
- def media_pause(self) -> None: ...
36
- def media_next_track(self) -> None: ...
37
- @property
38
- def media_title(self) -> str | None: ...
39
- def select_source(self, source: str) -> None: ...
40
- def _send_station_list_command(self) -> None: ...
41
- def update_playing_status(self) -> None: ...
42
- def _query_for_playing_status(self) -> str | None: ...
35
+ async def async_media_play(self) -> None: ...
36
+ async def async_media_pause(self) -> None: ...
37
+ async def async_media_next_track(self) -> None: ...
38
+ async def async_select_source(self, source: str) -> None: ...
39
+ async def _send_station_list_command(self) -> None: ...
40
+ async def update_playing_status(self) -> None: ...
41
+ async def _query_for_playing_status(self) -> str | None: ...
43
42
  def _update_current_station(self, response: str) -> None: ...
44
43
  def _update_current_song(self, response: str) -> None: ...
45
44
  def _update_song_position(self) -> None: ...
46
45
  def _log_match(self) -> None: ...
47
- def _send_pianobar_command(self, service_cmd: str) -> None: ...
48
- def _update_stations(self) -> None: ...
49
- def _clear_buffer(self) -> None: ...
46
+ async def _send_pianobar_command(self, service_cmd: str) -> None: ...
47
+ async def _update_stations(self) -> None: ...
48
+ async def _clear_buffer(self) -> None: ...
50
49
 
51
50
  def _pianobar_exists() -> bool: ...
@@ -0,0 +1,13 @@
1
+ from .const import DOMAIN as DOMAIN, LOGGER as LOGGER
2
+ from .coordinator import PaperlessConfigEntry as PaperlessConfigEntry, PaperlessData as PaperlessData, PaperlessStatisticCoordinator as PaperlessStatisticCoordinator, PaperlessStatusCoordinator as PaperlessStatusCoordinator
3
+ from homeassistant.const import CONF_API_KEY as CONF_API_KEY, CONF_URL as CONF_URL, Platform as Platform
4
+ from homeassistant.core import HomeAssistant as HomeAssistant
5
+ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryError as ConfigEntryError, ConfigEntryNotReady as ConfigEntryNotReady
6
+ from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
7
+ from pypaperless import Paperless
8
+
9
+ PLATFORMS: list[Platform]
10
+
11
+ async def async_setup_entry(hass: HomeAssistant, entry: PaperlessConfigEntry) -> bool: ...
12
+ async def async_unload_entry(hass: HomeAssistant, entry: PaperlessConfigEntry) -> bool: ...
13
+ async def _get_paperless_api(hass: HomeAssistant, entry: PaperlessConfigEntry) -> Paperless: ...
@@ -0,0 +1,16 @@
1
+ from .const import DOMAIN as DOMAIN, LOGGER as LOGGER
2
+ from _typeshed import Incomplete
3
+ from collections.abc import Mapping
4
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
5
+ from homeassistant.const import CONF_API_KEY as CONF_API_KEY, CONF_URL as CONF_URL
6
+ from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
7
+ from typing import Any
8
+
9
+ STEP_USER_DATA_SCHEMA: Incomplete
10
+
11
+ class PaperlessConfigFlow(ConfigFlow, domain=DOMAIN):
12
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
13
+ async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
14
+ async def async_step_reauth(self, user_input: Mapping[str, Any]) -> ConfigFlowResult: ...
15
+ async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
16
+ async def _validate_input(self, user_input: dict[str, str]) -> dict[str, str]: ...
@@ -0,0 +1,4 @@
1
+ from _typeshed import Incomplete
2
+
3
+ DOMAIN: str
4
+ LOGGER: Incomplete
@@ -0,0 +1,39 @@
1
+ import abc
2
+ from .const import DOMAIN as DOMAIN, LOGGER as LOGGER
3
+ from _typeshed import Incomplete
4
+ from abc import abstractmethod
5
+ from dataclasses import dataclass
6
+ from datetime import timedelta
7
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
+ from homeassistant.core import HomeAssistant as HomeAssistant
9
+ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed
10
+ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
11
+ from pypaperless import Paperless as Paperless
12
+ from pypaperless.models import Statistic, Status
13
+ from typing import TypeVar
14
+
15
+ type PaperlessConfigEntry = ConfigEntry[PaperlessData]
16
+ TData = TypeVar('TData')
17
+ UPDATE_INTERVAL_STATISTICS: Incomplete
18
+ UPDATE_INTERVAL_STATUS: Incomplete
19
+
20
+ @dataclass
21
+ class PaperlessData:
22
+ statistics: PaperlessStatisticCoordinator
23
+ status: PaperlessStatusCoordinator
24
+
25
+ class PaperlessCoordinator(DataUpdateCoordinator[TData], metaclass=abc.ABCMeta):
26
+ config_entry: PaperlessConfigEntry
27
+ api: Incomplete
28
+ def __init__(self, hass: HomeAssistant, entry: PaperlessConfigEntry, api: Paperless, name: str, update_interval: timedelta) -> None: ...
29
+ async def _async_update_data(self) -> TData: ...
30
+ @abstractmethod
31
+ async def _async_update_data_internal(self) -> TData: ...
32
+
33
+ class PaperlessStatisticCoordinator(PaperlessCoordinator[Statistic]):
34
+ def __init__(self, hass: HomeAssistant, entry: PaperlessConfigEntry, api: Paperless) -> None: ...
35
+ async def _async_update_data_internal(self) -> Statistic: ...
36
+
37
+ class PaperlessStatusCoordinator(PaperlessCoordinator[Status]):
38
+ def __init__(self, hass: HomeAssistant, entry: PaperlessConfigEntry, api: Paperless) -> None: ...
39
+ async def _async_update_data_internal(self) -> Status: ...
@@ -1,5 +1,5 @@
1
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
1
+ from . import PaperlessConfigEntry as PaperlessConfigEntry
2
2
  from homeassistant.core import HomeAssistant as HomeAssistant
3
3
  from typing import Any
4
4
 
5
- async def async_get_config_entry_diagnostics(hass: HomeAssistant, config_entry: ConfigEntry) -> dict[str, Any]: ...
5
+ async def async_get_config_entry_diagnostics(hass: HomeAssistant, entry: PaperlessConfigEntry) -> dict[str, Any]: ...
@@ -0,0 +1,16 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .coordinator import PaperlessCoordinator as PaperlessCoordinator
3
+ from _typeshed import Incomplete
4
+ from homeassistant.components.sensor import EntityDescription as EntityDescription
5
+ from homeassistant.helpers.device_registry import DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
6
+ from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
7
+ from typing import Generic, TypeVar
8
+
9
+ TCoordinator = TypeVar('TCoordinator', bound=PaperlessCoordinator)
10
+
11
+ class PaperlessEntity(CoordinatorEntity[TCoordinator], Generic[TCoordinator]):
12
+ _attr_has_entity_name: bool
13
+ entity_description: Incomplete
14
+ _attr_unique_id: Incomplete
15
+ _attr_device_info: Incomplete
16
+ def __init__(self, coordinator: TCoordinator, description: EntityDescription) -> None: ...
@@ -0,0 +1,27 @@
1
+ from .coordinator import PaperlessConfigEntry as PaperlessConfigEntry, PaperlessStatisticCoordinator as PaperlessStatisticCoordinator, PaperlessStatusCoordinator as PaperlessStatusCoordinator, TData as TData
2
+ from .entity import PaperlessEntity as PaperlessEntity, TCoordinator as TCoordinator
3
+ from collections.abc import Callable as Callable
4
+ from dataclasses import dataclass
5
+ from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
6
+ from homeassistant.const import EntityCategory as EntityCategory, UnitOfInformation as UnitOfInformation
7
+ from homeassistant.core import HomeAssistant as HomeAssistant
8
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
9
+ from homeassistant.helpers.typing import StateType as StateType
10
+ from homeassistant.util.unit_conversion import InformationConverter as InformationConverter
11
+ from typing import Generic
12
+
13
+ PARALLEL_UPDATES: int
14
+
15
+ @dataclass(frozen=True, kw_only=True)
16
+ class PaperlessEntityDescription(SensorEntityDescription, Generic[TData]):
17
+ value_fn: Callable[[TData], StateType]
18
+
19
+ SENSOR_STATISTICS: tuple[PaperlessEntityDescription, ...]
20
+ SENSOR_STATUS: tuple[PaperlessEntityDescription, ...]
21
+
22
+ async def async_setup_entry(hass: HomeAssistant, entry: PaperlessConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
23
+
24
+ class PaperlessSensor(PaperlessEntity[TCoordinator], SensorEntity):
25
+ entity_description: PaperlessEntityDescription
26
+ @property
27
+ def native_value(self) -> StateType: ...
@@ -19,5 +19,5 @@ class PlugwiseDataUpdateCoordinator(DataUpdateCoordinator[dict[str, GwEntityData
19
19
  def __init__(self, hass: HomeAssistant, config_entry: PlugwiseConfigEntry) -> None: ...
20
20
  async def _connect(self) -> None: ...
21
21
  async def _async_update_data(self) -> dict[str, GwEntityData]: ...
22
- def _async_add_remove_devices(self, data: dict[str, GwEntityData], entry: ConfigEntry) -> None: ...
23
- def _async_remove_devices(self, data: dict[str, GwEntityData], entry: ConfigEntry) -> None: ...
22
+ def _async_add_remove_devices(self, data: dict[str, GwEntityData]) -> None: ...
23
+ def _async_remove_devices(self, data: dict[str, GwEntityData]) -> None: ...
@@ -19,6 +19,7 @@ _LOGGER: Incomplete
19
19
  async def async_setup_entry(hass: HomeAssistant, entry: QbusConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
20
20
 
21
21
  class QbusClimate(QbusEntity, ClimateEntity):
22
+ _attr_name: Incomplete
22
23
  _attr_hvac_modes: Incomplete
23
24
  _attr_supported_features: Incomplete
24
25
  _attr_temperature_unit: Incomplete
@@ -15,17 +15,17 @@ _REFID_REGEX: Incomplete
15
15
 
16
16
  def add_new_outputs(coordinator: QbusControllerCoordinator, added_outputs: list[QbusMqttOutput], filter_fn: Callable[[QbusMqttOutput], bool], entity_type: type[QbusEntity], async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
17
17
  def format_ref_id(ref_id: str) -> str | None: ...
18
+ def create_main_device_identifier(mqtt_output: QbusMqttOutput) -> tuple[str, str]: ...
18
19
 
19
20
  class QbusEntity(Entity, ABC, metaclass=abc.ABCMeta):
20
21
  _attr_has_entity_name: bool
21
- _attr_name: Incomplete
22
22
  _attr_should_poll: bool
23
+ _mqtt_output: Incomplete
23
24
  _topic_factory: Incomplete
24
25
  _message_factory: Incomplete
26
+ _state_topic: Incomplete
25
27
  _attr_unique_id: Incomplete
26
28
  _attr_device_info: Incomplete
27
- _mqtt_output: Incomplete
28
- _state_topic: Incomplete
29
29
  def __init__(self, mqtt_output: QbusMqttOutput) -> None: ...
30
30
  async def async_added_to_hass(self) -> None: ...
31
31
  @abstractmethod
@@ -14,6 +14,7 @@ PARALLEL_UPDATES: int
14
14
  async def async_setup_entry(hass: HomeAssistant, entry: QbusConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
15
15
 
16
16
  class QbusLight(QbusEntity, LightEntity):
17
+ _attr_name: Incomplete
17
18
  _attr_supported_color_modes: Incomplete
18
19
  _attr_color_mode: Incomplete
19
20
  def __init__(self, mqtt_output: QbusMqttOutput) -> None: ...
@@ -0,0 +1,21 @@
1
+ from .coordinator import QbusConfigEntry as QbusConfigEntry
2
+ from .entity import QbusEntity as QbusEntity, add_new_outputs as add_new_outputs, create_main_device_identifier as create_main_device_identifier
3
+ from _typeshed import Incomplete
4
+ from homeassistant.components.mqtt import ReceiveMessage as ReceiveMessage
5
+ from homeassistant.components.scene import Scene as Scene
6
+ from homeassistant.core import HomeAssistant as HomeAssistant
7
+ from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
8
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
9
+ from qbusmqttapi.discovery import QbusMqttOutput as QbusMqttOutput
10
+ from typing import Any
11
+
12
+ PARALLEL_UPDATES: int
13
+
14
+ async def async_setup_entry(hass: HomeAssistant, entry: QbusConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
15
+
16
+ class QbusScene(QbusEntity, Scene):
17
+ _attr_device_info: Incomplete
18
+ _attr_name: Incomplete
19
+ def __init__(self, mqtt_output: QbusMqttOutput) -> None: ...
20
+ async def async_activate(self, **kwargs: Any) -> None: ...
21
+ async def _state_received(self, msg: ReceiveMessage) -> None: ...
@@ -13,6 +13,7 @@ PARALLEL_UPDATES: int
13
13
  async def async_setup_entry(hass: HomeAssistant, entry: QbusConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
14
14
 
15
15
  class QbusSwitch(QbusEntity, SwitchEntity):
16
+ _attr_name: Incomplete
16
17
  _attr_device_class: Incomplete
17
18
  _attr_is_on: bool
18
19
  def __init__(self, mqtt_output: QbusMqttOutput) -> None: ...
@@ -1,22 +1,26 @@
1
1
  from .const import ATTR_APPLY_FILTER as ATTR_APPLY_FILTER, ATTR_KEEP_DAYS as ATTR_KEEP_DAYS, ATTR_REPACK as ATTR_REPACK, DOMAIN as DOMAIN
2
2
  from .core import Recorder as Recorder
3
+ from .statistics import statistics_during_period as statistics_during_period
3
4
  from .tasks import PurgeEntitiesTask as PurgeEntitiesTask, PurgeTask as PurgeTask
4
5
  from _typeshed import Incomplete
5
6
  from homeassistant.const import ATTR_ENTITY_ID as ATTR_ENTITY_ID
6
- from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
7
+ from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse, callback as callback
7
8
  from homeassistant.helpers.entityfilter import generate_filter as generate_filter
8
9
  from homeassistant.helpers.service import async_extract_entity_ids as async_extract_entity_ids, async_register_admin_service as async_register_admin_service
10
+ from homeassistant.util.json import JsonArrayType as JsonArrayType, JsonObjectType as JsonObjectType
9
11
 
10
12
  SERVICE_PURGE: str
11
13
  SERVICE_PURGE_ENTITIES: str
12
14
  SERVICE_ENABLE: str
13
15
  SERVICE_DISABLE: str
16
+ SERVICE_GET_STATISTICS: str
14
17
  SERVICE_PURGE_SCHEMA: Incomplete
15
18
  ATTR_DOMAINS: str
16
19
  ATTR_ENTITY_GLOBS: str
17
20
  SERVICE_PURGE_ENTITIES_SCHEMA: Incomplete
18
21
  SERVICE_ENABLE_SCHEMA: Incomplete
19
22
  SERVICE_DISABLE_SCHEMA: Incomplete
23
+ SERVICE_GET_STATISTICS_SCHEMA: Incomplete
20
24
 
21
25
  @callback
22
26
  def _async_register_purge_service(hass: HomeAssistant, instance: Recorder) -> None: ...
@@ -27,4 +31,6 @@ def _async_register_enable_service(hass: HomeAssistant, instance: Recorder) -> N
27
31
  @callback
28
32
  def _async_register_disable_service(hass: HomeAssistant, instance: Recorder) -> None: ...
29
33
  @callback
34
+ def _async_register_get_statistics_service(hass: HomeAssistant, instance: Recorder) -> None: ...
35
+ @callback
30
36
  def async_register_services(hass: HomeAssistant, instance: Recorder) -> None: ...
@@ -15,7 +15,7 @@ from homeassistant.helpers.singleton import singleton as singleton
15
15
  from homeassistant.helpers.typing import UNDEFINED as UNDEFINED, UndefinedType as UndefinedType
16
16
  from homeassistant.util.collection import chunked_or_all as chunked_or_all
17
17
  from homeassistant.util.enum import try_parse_enum as try_parse_enum
18
- from homeassistant.util.unit_conversion import AreaConverter as AreaConverter, BaseUnitConverter as BaseUnitConverter, BloodGlucoseConcentrationConverter as BloodGlucoseConcentrationConverter, ConductivityConverter as ConductivityConverter, DataRateConverter as DataRateConverter, DistanceConverter as DistanceConverter, DurationConverter as DurationConverter, ElectricCurrentConverter as ElectricCurrentConverter, ElectricPotentialConverter as ElectricPotentialConverter, EnergyConverter as EnergyConverter, EnergyDistanceConverter as EnergyDistanceConverter, InformationConverter as InformationConverter, MassConverter as MassConverter, PowerConverter as PowerConverter, PressureConverter as PressureConverter, SpeedConverter as SpeedConverter, TemperatureConverter as TemperatureConverter, UnitlessRatioConverter as UnitlessRatioConverter, VolumeConverter as VolumeConverter, VolumeFlowRateConverter as VolumeFlowRateConverter
18
+ from homeassistant.util.unit_conversion import AreaConverter as AreaConverter, BaseUnitConverter as BaseUnitConverter, BloodGlucoseConcentrationConverter as BloodGlucoseConcentrationConverter, ConductivityConverter as ConductivityConverter, DataRateConverter as DataRateConverter, DistanceConverter as DistanceConverter, DurationConverter as DurationConverter, ElectricCurrentConverter as ElectricCurrentConverter, ElectricPotentialConverter as ElectricPotentialConverter, EnergyConverter as EnergyConverter, EnergyDistanceConverter as EnergyDistanceConverter, InformationConverter as InformationConverter, MassConverter as MassConverter, MassVolumeConcentrationConverter as MassVolumeConcentrationConverter, PowerConverter as PowerConverter, PressureConverter as PressureConverter, ReactiveEnergyConverter as ReactiveEnergyConverter, SpeedConverter as SpeedConverter, TemperatureConverter as TemperatureConverter, UnitlessRatioConverter as UnitlessRatioConverter, VolumeConverter as VolumeConverter, VolumeFlowRateConverter as VolumeFlowRateConverter
19
19
  from sqlalchemy import Label as Label, Select as Select
20
20
  from sqlalchemy.engine.row import Row
21
21
  from sqlalchemy.orm.session import Session as Session