homeassistant-stubs 2025.5.3__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 (419) 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/home_connect/application_credentials.pyi +1 -0
  168. homeassistant-stubs/components/home_connect/config_flow.pyi +2 -0
  169. homeassistant-stubs/components/home_connect/diagnostics.pyi +1 -2
  170. homeassistant-stubs/components/home_connect/entity.pyi +0 -1
  171. homeassistant-stubs/components/home_connect/light.pyi +2 -2
  172. homeassistant-stubs/components/home_connect/number.pyi +1 -0
  173. homeassistant-stubs/components/home_connect/sensor.pyi +4 -5
  174. homeassistant-stubs/components/home_connect/switch.pyi +1 -19
  175. homeassistant-stubs/components/homeassistant/__init__.pyi +5 -0
  176. homeassistant-stubs/components/homee/alarm_control_panel.pyi +39 -0
  177. homeassistant-stubs/components/homee/const.pyi +2 -0
  178. homeassistant-stubs/components/homee/event.pyi +19 -0
  179. homeassistant-stubs/components/homee/fan.pyi +38 -0
  180. homeassistant-stubs/components/homee/sensor.pyi +5 -1
  181. homeassistant-stubs/components/homekit/const.pyi +1 -0
  182. homeassistant-stubs/components/homekit/util.pyi +1 -1
  183. homeassistant-stubs/components/homeworks/__init__.pyi +5 -5
  184. homeassistant-stubs/components/homeworks/binary_sensor.pyi +2 -3
  185. homeassistant-stubs/components/homeworks/button.pyi +2 -3
  186. homeassistant-stubs/components/homeworks/light.pyi +2 -3
  187. homeassistant-stubs/components/http/decorators.pyi +1 -1
  188. homeassistant-stubs/components/huawei_lte/__init__.pyi +0 -1
  189. homeassistant-stubs/components/husqvarna_automower/binary_sensor.pyi +0 -7
  190. homeassistant-stubs/components/hydrawise/__init__.pyi +4 -5
  191. homeassistant-stubs/components/hydrawise/binary_sensor.pyi +3 -4
  192. homeassistant-stubs/components/hydrawise/coordinator.pyi +4 -3
  193. homeassistant-stubs/components/hydrawise/sensor.pyi +2 -4
  194. homeassistant-stubs/components/hydrawise/switch.pyi +3 -4
  195. homeassistant-stubs/components/hydrawise/valve.pyi +2 -4
  196. homeassistant-stubs/components/immich/__init__.pyi +10 -0
  197. homeassistant-stubs/components/immich/config_flow.pyi +27 -0
  198. homeassistant-stubs/components/immich/const.pyi +4 -0
  199. homeassistant-stubs/components/immich/coordinator.pyi +27 -0
  200. homeassistant-stubs/components/immich/diagnostics.pyi +10 -0
  201. homeassistant-stubs/components/immich/entity.pyi +10 -0
  202. homeassistant-stubs/components/immich/media_source.pyi +38 -0
  203. homeassistant-stubs/components/immich/sensor.pyi +28 -0
  204. homeassistant-stubs/components/integration/__init__.pyi +2 -1
  205. homeassistant-stubs/components/iqvia/__init__.pyi +4 -7
  206. homeassistant-stubs/components/iqvia/coordinator.pyi +16 -0
  207. homeassistant-stubs/components/iqvia/diagnostics.pyi +3 -4
  208. homeassistant-stubs/components/iqvia/entity.pyi +5 -6
  209. homeassistant-stubs/components/iqvia/sensor.pyi +3 -3
  210. homeassistant-stubs/components/isy994/__init__.pyi +6 -7
  211. homeassistant-stubs/components/isy994/binary_sensor.pyi +3 -4
  212. homeassistant-stubs/components/isy994/button.pyi +2 -3
  213. homeassistant-stubs/components/isy994/climate.pyi +3 -4
  214. homeassistant-stubs/components/isy994/config_flow.pyi +4 -3
  215. homeassistant-stubs/components/isy994/cover.pyi +3 -5
  216. homeassistant-stubs/components/isy994/fan.pyi +3 -5
  217. homeassistant-stubs/components/isy994/light.pyi +3 -4
  218. homeassistant-stubs/components/isy994/lock.pyi +2 -5
  219. homeassistant-stubs/components/isy994/models.pyi +2 -0
  220. homeassistant-stubs/components/isy994/number.pyi +3 -4
  221. homeassistant-stubs/components/isy994/select.pyi +3 -4
  222. homeassistant-stubs/components/isy994/sensor.pyi +3 -4
  223. homeassistant-stubs/components/isy994/services.pyi +1 -1
  224. homeassistant-stubs/components/isy994/switch.pyi +2 -4
  225. homeassistant-stubs/components/isy994/system_health.pyi +1 -3
  226. homeassistant-stubs/components/isy994/util.pyi +3 -2
  227. homeassistant-stubs/components/jellyfin/__init__.pyi +1 -1
  228. homeassistant-stubs/components/jellyfin/entity.pyi +2 -2
  229. homeassistant-stubs/components/jewish_calendar/binary_sensor.pyi +3 -2
  230. homeassistant-stubs/components/jewish_calendar/config_flow.pyi +3 -2
  231. homeassistant-stubs/components/jewish_calendar/const.pyi +1 -0
  232. homeassistant-stubs/components/jewish_calendar/diagnostics.pyi +11 -0
  233. homeassistant-stubs/components/jewish_calendar/entity.pyi +12 -5
  234. homeassistant-stubs/components/jewish_calendar/sensor.pyi +34 -15
  235. homeassistant-stubs/components/jewish_calendar/service.pyi +1 -0
  236. homeassistant-stubs/components/kaleidescape/entity.pyi +1 -0
  237. homeassistant-stubs/components/kaleidescape/media_player.pyi +1 -0
  238. homeassistant-stubs/components/kaleidescape/remote.pyi +1 -0
  239. homeassistant-stubs/components/kaleidescape/sensor.pyi +1 -0
  240. homeassistant-stubs/components/knocki/config_flow.pyi +2 -0
  241. homeassistant-stubs/components/knx/const.pyi +7 -0
  242. homeassistant-stubs/components/knx/cover.pyi +20 -9
  243. homeassistant-stubs/components/knx/schema.pyi +1 -6
  244. homeassistant-stubs/components/knx/storage/const.pyi +6 -0
  245. homeassistant-stubs/components/knx/storage/entity_store_schema.pyi +4 -3
  246. homeassistant-stubs/components/lcn/config_flow.pyi +0 -2
  247. homeassistant-stubs/components/lcn/const.pyi +3 -1
  248. homeassistant-stubs/components/lcn/cover.pyi +7 -2
  249. homeassistant-stubs/components/lcn/entity.pyi +1 -0
  250. homeassistant-stubs/components/lcn/helpers.pyi +0 -1
  251. homeassistant-stubs/components/lcn/schemas.pyi +1 -1
  252. homeassistant-stubs/components/lcn/services.pyi +2 -3
  253. homeassistant-stubs/components/litterrobot/entity.pyi +1 -1
  254. homeassistant-stubs/components/matter/select.pyi +2 -0
  255. homeassistant-stubs/components/matter/sensor.pyi +3 -1
  256. homeassistant-stubs/components/media_player/intent.pyi +11 -1
  257. homeassistant-stubs/components/metoffice/__init__.pyi +3 -5
  258. homeassistant-stubs/components/metoffice/config_flow.pyi +4 -2
  259. homeassistant-stubs/components/metoffice/const.pyi +7 -6
  260. homeassistant-stubs/components/metoffice/helpers.pyi +5 -6
  261. homeassistant-stubs/components/metoffice/sensor.pyi +15 -13
  262. homeassistant-stubs/components/metoffice/weather.pyi +23 -11
  263. homeassistant-stubs/components/miele/__init__.pyi +15 -0
  264. homeassistant-stubs/components/miele/api.pyi +9 -0
  265. homeassistant-stubs/components/miele/application_credentials.pyi +5 -0
  266. homeassistant-stubs/components/miele/binary_sensor.pyi +34 -0
  267. homeassistant-stubs/components/miele/button.pyi +32 -0
  268. homeassistant-stubs/components/miele/climate.pyi +55 -0
  269. homeassistant-stubs/components/miele/config_flow.pyi +17 -0
  270. homeassistant-stubs/components/miele/const.pyi +127 -0
  271. homeassistant-stubs/components/miele/coordinator.pyi +29 -0
  272. homeassistant-stubs/components/miele/diagnostics.pyi +13 -0
  273. homeassistant-stubs/components/miele/entity.pyi +24 -0
  274. homeassistant-stubs/components/miele/fan.pyi +39 -0
  275. homeassistant-stubs/components/miele/light.pyi +39 -0
  276. homeassistant-stubs/components/miele/sensor.pyi +72 -0
  277. homeassistant-stubs/components/miele/switch.pyi +52 -0
  278. homeassistant-stubs/components/miele/vacuum.pyi +84 -0
  279. homeassistant-stubs/components/minecraft_server/api.pyi +1 -1
  280. homeassistant-stubs/components/modbus/__init__.pyi +1 -1
  281. homeassistant-stubs/components/modbus/const.pyi +9 -0
  282. homeassistant-stubs/components/modbus/light.pyi +24 -1
  283. homeassistant-stubs/components/modbus/sensor.pyi +5 -3
  284. homeassistant-stubs/components/mqtt/binary_sensor.pyi +1 -2
  285. homeassistant-stubs/components/mqtt/button.pyi +1 -3
  286. homeassistant-stubs/components/mqtt/config_flow.pyi +26 -9
  287. homeassistant-stubs/components/mqtt/const.pyi +57 -0
  288. homeassistant-stubs/components/mqtt/cover.pyi +1 -25
  289. homeassistant-stubs/components/mqtt/fan.pyi +1 -31
  290. homeassistant-stubs/components/mqtt/sensor.pyi +1 -1
  291. homeassistant-stubs/components/mqtt/switch.pyi +1 -5
  292. homeassistant-stubs/components/music_assistant/media_player.pyi +6 -2
  293. homeassistant-stubs/components/number/const.pyi +3 -2
  294. homeassistant-stubs/components/nut/__init__.pyi +1 -1
  295. homeassistant-stubs/components/openai_conversation/conversation.pyi +2 -0
  296. homeassistant-stubs/components/openuv/binary_sensor.pyi +2 -1
  297. homeassistant-stubs/components/openuv/entity.pyi +1 -0
  298. homeassistant-stubs/components/pandora/__init__.pyi +1 -0
  299. homeassistant-stubs/components/pandora/media_player.pyi +14 -13
  300. homeassistant-stubs/components/paperless_ngx/__init__.pyi +13 -0
  301. homeassistant-stubs/components/paperless_ngx/config_flow.pyi +16 -0
  302. homeassistant-stubs/components/paperless_ngx/const.pyi +4 -0
  303. homeassistant-stubs/components/paperless_ngx/coordinator.pyi +39 -0
  304. homeassistant-stubs/components/{rtsp_to_webrtc → paperless_ngx}/diagnostics.pyi +2 -2
  305. homeassistant-stubs/components/paperless_ngx/entity.pyi +16 -0
  306. homeassistant-stubs/components/paperless_ngx/sensor.pyi +27 -0
  307. homeassistant-stubs/components/plugwise/coordinator.pyi +2 -2
  308. homeassistant-stubs/components/qbus/climate.pyi +1 -0
  309. homeassistant-stubs/components/qbus/entity.pyi +3 -3
  310. homeassistant-stubs/components/qbus/light.pyi +1 -0
  311. homeassistant-stubs/components/qbus/scene.pyi +21 -0
  312. homeassistant-stubs/components/qbus/switch.pyi +1 -0
  313. homeassistant-stubs/components/recorder/services.pyi +7 -1
  314. homeassistant-stubs/components/recorder/statistics.pyi +1 -1
  315. homeassistant-stubs/components/recorder/websocket_api.pyi +1 -1
  316. homeassistant-stubs/components/reolink/__init__.pyi +3 -1
  317. homeassistant-stubs/components/reolink/const.pyi +5 -0
  318. homeassistant-stubs/components/reolink/host.pyi +3 -3
  319. homeassistant-stubs/components/reolink/media_source.pyi +2 -1
  320. homeassistant-stubs/components/reolink/views.pyi +1 -0
  321. homeassistant-stubs/components/repairs/websocket_api.pyi +0 -1
  322. homeassistant-stubs/components/samsungtv/__init__.pyi +5 -5
  323. homeassistant-stubs/components/samsungtv/bridge.pyi +2 -1
  324. homeassistant-stubs/components/samsungtv/config_flow.pyi +4 -4
  325. homeassistant-stubs/components/samsungtv/entity.pyi +1 -1
  326. homeassistant-stubs/components/samsungtv/media_player.pyi +2 -1
  327. homeassistant-stubs/components/sensor/__init__.pyi +1 -0
  328. homeassistant-stubs/components/sensor/const.pyi +5 -2
  329. homeassistant-stubs/components/sensor/device_condition.pyi +1 -0
  330. homeassistant-stubs/components/sensor/device_trigger.pyi +1 -0
  331. homeassistant-stubs/components/shelly/__init__.pyi +1 -1
  332. homeassistant-stubs/components/shelly/binary_sensor.pyi +3 -2
  333. homeassistant-stubs/components/shelly/button.pyi +5 -4
  334. homeassistant-stubs/components/shelly/climate.pyi +5 -5
  335. homeassistant-stubs/components/shelly/const.pyi +2 -0
  336. homeassistant-stubs/components/shelly/cover.pyi +2 -0
  337. homeassistant-stubs/components/shelly/entity.pyi +4 -2
  338. homeassistant-stubs/components/shelly/event.pyi +4 -2
  339. homeassistant-stubs/components/shelly/light.pyi +2 -0
  340. homeassistant-stubs/components/shelly/number.pyi +3 -2
  341. homeassistant-stubs/components/shelly/select.pyi +2 -0
  342. homeassistant-stubs/components/shelly/sensor.pyi +9 -2
  343. homeassistant-stubs/components/shelly/switch.pyi +2 -2
  344. homeassistant-stubs/components/shelly/text.pyi +2 -0
  345. homeassistant-stubs/components/shelly/update.pyi +1 -0
  346. homeassistant-stubs/components/shelly/utils.pyi +14 -7
  347. homeassistant-stubs/components/shelly/valve.pyi +2 -0
  348. homeassistant-stubs/components/smlight/button.pyi +3 -2
  349. homeassistant-stubs/components/squeezebox/__init__.pyi +1 -1
  350. homeassistant-stubs/components/squeezebox/binary_sensor.pyi +1 -0
  351. homeassistant-stubs/components/squeezebox/browse_media.pyi +1 -1
  352. homeassistant-stubs/components/squeezebox/button.pyi +3 -0
  353. homeassistant-stubs/components/squeezebox/const.pyi +12 -2
  354. homeassistant-stubs/components/squeezebox/coordinator.pyi +7 -3
  355. homeassistant-stubs/components/squeezebox/media_player.pyi +3 -1
  356. homeassistant-stubs/components/squeezebox/sensor.pyi +1 -0
  357. homeassistant-stubs/components/squeezebox/switch.pyi +47 -0
  358. homeassistant-stubs/components/squeezebox/update.pyi +50 -0
  359. homeassistant-stubs/components/statistics/__init__.pyi +2 -1
  360. homeassistant-stubs/components/suez_water/coordinator.pyi +19 -4
  361. homeassistant-stubs/components/suez_water/sensor.pyi +2 -0
  362. homeassistant-stubs/components/sun/condition.pyi +13 -0
  363. homeassistant-stubs/components/switch_as_x/__init__.pyi +16 -3
  364. homeassistant-stubs/components/switchbot_cloud/__init__.pyi +15 -9
  365. homeassistant-stubs/components/switchbot_cloud/binary_sensor.pyi +29 -0
  366. homeassistant-stubs/components/switchbot_cloud/coordinator.pyi +6 -1
  367. homeassistant-stubs/components/threshold/__init__.pyi +2 -1
  368. homeassistant-stubs/components/tibber/coordinator.pyi +1 -0
  369. homeassistant-stubs/components/tibber/notify.pyi +2 -2
  370. homeassistant-stubs/components/tibber/sensor.pyi +1 -1
  371. homeassistant-stubs/components/trend/__init__.pyi +2 -1
  372. homeassistant-stubs/components/tts/__init__.pyi +4 -1
  373. homeassistant-stubs/components/tts/const.pyi +1 -0
  374. homeassistant-stubs/components/tts/entity.pyi +4 -0
  375. homeassistant-stubs/components/tts/legacy.pyi +3 -1
  376. homeassistant-stubs/components/tts/media_source.pyi +5 -2
  377. homeassistant-stubs/components/unifi/__init__.pyi +1 -1
  378. homeassistant-stubs/components/unifi/config_flow.pyi +2 -2
  379. homeassistant-stubs/components/unifi/device_tracker.pyi +1 -0
  380. homeassistant-stubs/components/unifi/services.pyi +1 -0
  381. homeassistant-stubs/components/uptimerobot/coordinator.pyi +0 -1
  382. homeassistant-stubs/components/uptimerobot/switch.pyi +2 -1
  383. homeassistant-stubs/components/wallbox/const.pyi +10 -0
  384. homeassistant-stubs/components/wallbox/coordinator.pyi +4 -1
  385. homeassistant-stubs/components/wallbox/select.pyi +29 -0
  386. homeassistant-stubs/components/wallbox/sensor.pyi +1 -1
  387. homeassistant-stubs/components/wemo/device_trigger.pyi +1 -1
  388. homeassistant-stubs/components/wemo/light.pyi +1 -0
  389. homeassistant-stubs/components/whois/const.pyi +1 -0
  390. homeassistant-stubs/components/whois/sensor.pyi +2 -1
  391. homeassistant-stubs/components/withings/application_credentials.pyi +2 -0
  392. homeassistant-stubs/components/youtube/sensor.pyi +1 -1
  393. homeassistant-stubs/components/zwave_js/__init__.pyi +1 -2
  394. homeassistant-stubs/components/zwave_js/config_flow.pyi +7 -7
  395. homeassistant-stubs/components/zwave_js/const.pyi +1 -2
  396. homeassistant-stubs/config_entries.pyi +0 -1
  397. homeassistant-stubs/const.pyi +5 -0
  398. homeassistant-stubs/core_config.pyi +0 -2
  399. homeassistant-stubs/helpers/condition.pyi +1 -6
  400. homeassistant-stubs/helpers/config_entry_oauth2_flow.pyi +10 -0
  401. homeassistant-stubs/helpers/config_validation.pyi +7 -2
  402. homeassistant-stubs/helpers/device.pyi +1 -1
  403. homeassistant-stubs/helpers/device_registry.pyi +4 -4
  404. homeassistant-stubs/helpers/entity_component.pyi +5 -2
  405. homeassistant-stubs/helpers/entity_platform.pyi +4 -1
  406. homeassistant-stubs/helpers/entity_registry.pyi +7 -6
  407. homeassistant-stubs/helpers/helper_integration.pyi +6 -0
  408. homeassistant-stubs/helpers/selector.pyi +55 -50
  409. homeassistant-stubs/helpers/service.pyi +3 -3
  410. homeassistant-stubs/helpers/template.pyi +4 -1
  411. homeassistant-stubs/util/aiohttp.pyi +5 -0
  412. homeassistant-stubs/util/unit_conversion.pyi +11 -1
  413. {homeassistant_stubs-2025.5.3.dist-info → homeassistant_stubs-2025.6.0.dist-info}/METADATA +2 -2
  414. {homeassistant_stubs-2025.5.3.dist-info → homeassistant_stubs-2025.6.0.dist-info}/RECORD +416 -357
  415. homeassistant-stubs/components/metoffice/data.pyi +0 -10
  416. homeassistant-stubs/components/rtsp_to_webrtc/__init__.pyi +0 -19
  417. homeassistant-stubs/components/rtsp_to_webrtc/config_flow.pyi +0 -24
  418. {homeassistant_stubs-2025.5.3.dist-info → homeassistant_stubs-2025.6.0.dist-info}/WHEEL +0 -0
  419. {homeassistant_stubs-2025.5.3.dist-info → homeassistant_stubs-2025.6.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,13 +1,12 @@
1
1
  from .const import CONF_SLEEP_PERIOD as CONF_SLEEP_PERIOD, DOMAIN as DOMAIN, LOGGER as LOGGER
2
2
  from .coordinator import ShellyBlockCoordinator as ShellyBlockCoordinator, ShellyConfigEntry as ShellyConfigEntry, ShellyRpcCoordinator as ShellyRpcCoordinator
3
- from .utils import async_remove_shelly_entity as async_remove_shelly_entity, get_block_entity_name as get_block_entity_name, get_rpc_entity_name as get_rpc_entity_name, get_rpc_key_instances as get_rpc_key_instances
3
+ from .utils import async_remove_shelly_entity as async_remove_shelly_entity, get_block_device_info as get_block_device_info, get_block_entity_name as get_block_entity_name, get_rpc_device_info as get_rpc_device_info, get_rpc_entity_name as get_rpc_entity_name, get_rpc_key_instances as get_rpc_key_instances
4
4
  from _typeshed import Incomplete
5
5
  from aioshelly.block_device import Block as Block
6
6
  from collections.abc import Awaitable, Callable as Callable, Coroutine, Mapping
7
7
  from dataclasses import dataclass
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant, State as State, callback as callback
9
9
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
10
- from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC, DeviceInfo as DeviceInfo
11
10
  from homeassistant.helpers.entity import Entity as Entity, EntityDescription as EntityDescription
12
11
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
13
12
  from homeassistant.helpers.entity_registry import RegistryEntry as RegistryEntry
@@ -60,6 +59,7 @@ class RestEntityDescription(EntityDescription):
60
59
  def rpc_call[_T: ShellyRpcEntity, **_P](func: Callable[Concatenate[_T, _P], Awaitable[None]]) -> Callable[Concatenate[_T, _P], Coroutine[Any, Any, None]]: ...
61
60
 
62
61
  class ShellyBlockEntity(CoordinatorEntity[ShellyBlockCoordinator]):
62
+ _attr_has_entity_name: bool
63
63
  block: Incomplete
64
64
  _attr_name: Incomplete
65
65
  _attr_device_info: Incomplete
@@ -71,6 +71,7 @@ class ShellyBlockEntity(CoordinatorEntity[ShellyBlockCoordinator]):
71
71
  async def set_state(self, **kwargs: Any) -> Any: ...
72
72
 
73
73
  class ShellyRpcEntity(CoordinatorEntity[ShellyRpcCoordinator]):
74
+ _attr_has_entity_name: bool
74
75
  key: Incomplete
75
76
  _attr_device_info: Incomplete
76
77
  _attr_unique_id: Incomplete
@@ -100,6 +101,7 @@ class ShellyBlockAttributeEntity(ShellyBlockEntity, Entity):
100
101
  def extra_state_attributes(self) -> dict[str, Any] | None: ...
101
102
 
102
103
  class ShellyRestAttributeEntity(CoordinatorEntity[ShellyBlockCoordinator]):
104
+ _attr_has_entity_name: bool
103
105
  entity_description: RestEntityDescription
104
106
  block_coordinator: Incomplete
105
107
  attribute: Incomplete
@@ -1,18 +1,19 @@
1
1
  from .const import BASIC_INPUTS_EVENTS_TYPES as BASIC_INPUTS_EVENTS_TYPES, RPC_INPUTS_EVENTS_TYPES as RPC_INPUTS_EVENTS_TYPES, SHIX3_1_INPUTS_EVENTS_TYPES as SHIX3_1_INPUTS_EVENTS_TYPES
2
2
  from .coordinator import ShellyBlockCoordinator as ShellyBlockCoordinator, ShellyConfigEntry as ShellyConfigEntry, ShellyRpcCoordinator as ShellyRpcCoordinator
3
3
  from .entity import ShellyBlockEntity as ShellyBlockEntity
4
- from .utils import async_remove_orphaned_entities as async_remove_orphaned_entities, async_remove_shelly_entity as async_remove_shelly_entity, get_device_entry_gen as get_device_entry_gen, get_rpc_entity_name as get_rpc_entity_name, get_rpc_key_instances as get_rpc_key_instances, is_block_momentary_input as is_block_momentary_input, is_rpc_momentary_input as is_rpc_momentary_input
4
+ from .utils import async_remove_orphaned_entities as async_remove_orphaned_entities, async_remove_shelly_entity as async_remove_shelly_entity, get_device_entry_gen as get_device_entry_gen, get_rpc_device_info as get_rpc_device_info, get_rpc_entity_name as get_rpc_entity_name, get_rpc_key_instances as get_rpc_key_instances, is_block_momentary_input as is_block_momentary_input, is_rpc_momentary_input as is_rpc_momentary_input
5
5
  from _typeshed import Incomplete
6
6
  from aioshelly.block_device import Block as Block
7
7
  from collections.abc import Callable as Callable
8
8
  from dataclasses import dataclass
9
9
  from homeassistant.components.event import EventDeviceClass as EventDeviceClass, EventEntity as EventEntity, EventEntityDescription as EventEntityDescription
10
10
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
11
- from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC, DeviceInfo as DeviceInfo
12
11
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
13
12
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
14
13
  from typing import Any, Final
15
14
 
15
+ PARALLEL_UPDATES: int
16
+
16
17
  @dataclass(frozen=True, kw_only=True)
17
18
  class ShellyBlockEventDescription(EventEntityDescription):
18
19
  removal_condition: Callable[[dict, Block], bool] | None = ...
@@ -38,6 +39,7 @@ class ShellyBlockEvent(ShellyBlockEntity, EventEntity):
38
39
  def _async_handle_event(self, event: dict[str, Any]) -> None: ...
39
40
 
40
41
  class ShellyRpcEvent(CoordinatorEntity[ShellyRpcCoordinator], EventEntity):
42
+ _attr_has_entity_name: bool
41
43
  entity_description: ShellyRpcEventDescription
42
44
  event_id: Incomplete
43
45
  _attr_device_info: Incomplete
@@ -9,6 +9,8 @@ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callb
9
9
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
10
10
  from typing import Any
11
11
 
12
+ PARALLEL_UPDATES: int
13
+
12
14
  async def async_setup_entry(hass: HomeAssistant, config_entry: ShellyConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
13
15
  @callback
14
16
  def async_setup_block_entry(hass: HomeAssistant, config_entry: ShellyConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
@@ -1,7 +1,7 @@
1
1
  from .const import CONF_SLEEP_PERIOD as CONF_SLEEP_PERIOD, DOMAIN as DOMAIN, LOGGER as LOGGER, VIRTUAL_NUMBER_MODE_MAP as VIRTUAL_NUMBER_MODE_MAP
2
2
  from .coordinator import ShellyBlockCoordinator as ShellyBlockCoordinator, ShellyConfigEntry as ShellyConfigEntry, ShellyRpcCoordinator as ShellyRpcCoordinator
3
3
  from .entity import BlockEntityDescription as BlockEntityDescription, RpcEntityDescription as RpcEntityDescription, ShellyRpcAttributeEntity as ShellyRpcAttributeEntity, ShellySleepingBlockAttributeEntity as ShellySleepingBlockAttributeEntity, async_setup_entry_attribute_entities as async_setup_entry_attribute_entities, async_setup_entry_rpc as async_setup_entry_rpc, rpc_call as rpc_call
4
- from .utils import async_remove_orphaned_entities as async_remove_orphaned_entities, get_device_entry_gen as get_device_entry_gen, get_virtual_component_ids as get_virtual_component_ids
4
+ from .utils import async_remove_orphaned_entities as async_remove_orphaned_entities, get_blu_trv_device_info as get_blu_trv_device_info, get_device_entry_gen as get_device_entry_gen, get_virtual_component_ids as get_virtual_component_ids
5
5
  from _typeshed import Incomplete
6
6
  from aioshelly.block_device import Block as Block
7
7
  from collections.abc import Callable as Callable
@@ -10,11 +10,12 @@ from homeassistant.components.number import NumberEntity as NumberEntity, Number
10
10
  from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfTemperature as UnitOfTemperature
11
11
  from homeassistant.core import HomeAssistant as HomeAssistant
12
12
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
13
- from homeassistant.helpers.device_registry import CONNECTION_BLUETOOTH as CONNECTION_BLUETOOTH, DeviceInfo as DeviceInfo
14
13
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
15
14
  from homeassistant.helpers.entity_registry import RegistryEntry as RegistryEntry
16
15
  from typing import Any, Final
17
16
 
17
+ PARALLEL_UPDATES: int
18
+
18
19
  @dataclass(frozen=True, kw_only=True)
19
20
  class BlockNumberDescription(BlockEntityDescription, NumberEntityDescription):
20
21
  rest_path: str = ...
@@ -8,6 +8,8 @@ from homeassistant.core import HomeAssistant as HomeAssistant
8
8
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
9
9
  from typing import Final
10
10
 
11
+ PARALLEL_UPDATES: int
12
+
11
13
  @dataclass(frozen=True, kw_only=True)
12
14
  class RpcSelectDescription(RpcEntityDescription, SelectEntityDescription): ...
13
15
 
@@ -1,7 +1,7 @@
1
1
  from .const import CONF_SLEEP_PERIOD as CONF_SLEEP_PERIOD, ROLE_TO_DEVICE_CLASS_MAP as ROLE_TO_DEVICE_CLASS_MAP
2
2
  from .coordinator import ShellyBlockCoordinator as ShellyBlockCoordinator, ShellyConfigEntry as ShellyConfigEntry, ShellyRpcCoordinator as ShellyRpcCoordinator
3
3
  from .entity import BlockEntityDescription as BlockEntityDescription, RestEntityDescription as RestEntityDescription, RpcEntityDescription as RpcEntityDescription, ShellyBlockAttributeEntity as ShellyBlockAttributeEntity, ShellyRestAttributeEntity as ShellyRestAttributeEntity, ShellyRpcAttributeEntity as ShellyRpcAttributeEntity, ShellySleepingBlockAttributeEntity as ShellySleepingBlockAttributeEntity, ShellySleepingRpcAttributeEntity as ShellySleepingRpcAttributeEntity, async_setup_entry_attribute_entities as async_setup_entry_attribute_entities, async_setup_entry_rest as async_setup_entry_rest, async_setup_entry_rpc as async_setup_entry_rpc
4
- from .utils import async_remove_orphaned_entities as async_remove_orphaned_entities, get_device_entry_gen as get_device_entry_gen, get_device_uptime as get_device_uptime, get_shelly_air_lamp_life as get_shelly_air_lamp_life, get_virtual_component_ids as get_virtual_component_ids, is_rpc_wifi_stations_disabled as is_rpc_wifi_stations_disabled
4
+ from .utils import async_remove_orphaned_entities as async_remove_orphaned_entities, get_blu_trv_device_info as get_blu_trv_device_info, get_device_entry_gen as get_device_entry_gen, get_device_uptime as get_device_uptime, get_rpc_device_info as get_rpc_device_info, get_shelly_air_lamp_life as get_shelly_air_lamp_life, get_virtual_component_ids as get_virtual_component_ids, is_rpc_wifi_stations_disabled as is_rpc_wifi_stations_disabled
5
5
  from _typeshed import Incomplete
6
6
  from aioshelly.block_device import Block as Block
7
7
  from collections.abc import Callable as Callable
@@ -9,18 +9,20 @@ from dataclasses import dataclass
9
9
  from homeassistant.components.sensor import RestoreSensor as RestoreSensor, SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorExtraStoredData as SensorExtraStoredData, SensorStateClass as SensorStateClass
10
10
  from homeassistant.const import CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, DEGREE as DEGREE, EntityCategory as EntityCategory, LIGHT_LUX as LIGHT_LUX, PERCENTAGE as PERCENTAGE, SIGNAL_STRENGTH_DECIBELS_MILLIWATT as SIGNAL_STRENGTH_DECIBELS_MILLIWATT, UnitOfApparentPower as UnitOfApparentPower, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfFrequency as UnitOfFrequency, UnitOfPower as UnitOfPower, UnitOfTemperature as UnitOfTemperature
11
11
  from homeassistant.core import HomeAssistant as HomeAssistant
12
- from homeassistant.helpers.device_registry import CONNECTION_BLUETOOTH as CONNECTION_BLUETOOTH, DeviceInfo as DeviceInfo
13
12
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
14
13
  from homeassistant.helpers.entity_registry import RegistryEntry as RegistryEntry
15
14
  from homeassistant.helpers.typing import StateType as StateType
16
15
  from typing import Final
17
16
 
17
+ PARALLEL_UPDATES: int
18
+
18
19
  @dataclass(frozen=True, kw_only=True)
19
20
  class BlockSensorDescription(BlockEntityDescription, SensorEntityDescription): ...
20
21
 
21
22
  @dataclass(frozen=True, kw_only=True)
22
23
  class RpcSensorDescription(RpcEntityDescription, SensorEntityDescription):
23
24
  device_class_fn: Callable[[dict], SensorDeviceClass | None] | None = ...
25
+ emeter_phase: str | None = ...
24
26
 
25
27
  @dataclass(frozen=True, kw_only=True)
26
28
  class RestSensorDescription(RestEntityDescription, SensorEntityDescription): ...
@@ -33,6 +35,11 @@ class RpcSensor(ShellyRpcAttributeEntity, SensorEntity):
33
35
  @property
34
36
  def native_value(self) -> StateType: ...
35
37
 
38
+ class RpcEmeterPhaseSensor(RpcSensor):
39
+ entity_description: RpcSensorDescription
40
+ _attr_device_info: Incomplete
41
+ def __init__(self, coordinator: ShellyRpcCoordinator, key: str, attribute: str, description: RpcSensorDescription) -> None: ...
42
+
36
43
  class RpcBluTrvSensor(RpcSensor):
37
44
  _attr_device_info: Incomplete
38
45
  def __init__(self, coordinator: ShellyRpcCoordinator, key: str, attribute: str, description: RpcSensorDescription) -> None: ...
@@ -13,6 +13,8 @@ from homeassistant.helpers.entity_registry import RegistryEntry as RegistryEntry
13
13
  from homeassistant.helpers.restore_state import RestoreEntity as RestoreEntity
14
14
  from typing import Any
15
15
 
16
+ PARALLEL_UPDATES: int
17
+
16
18
  @dataclass(frozen=True, kw_only=True)
17
19
  class BlockSwitchDescription(BlockEntityDescription, SwitchEntityDescription): ...
18
20
 
@@ -60,13 +62,11 @@ class BlockRelaySwitch(ShellyBlockAttributeEntity, SwitchEntity):
60
62
 
61
63
  class RpcSwitch(ShellyRpcAttributeEntity, SwitchEntity):
62
64
  entity_description: RpcSwitchDescription
63
- _attr_has_entity_name: bool
64
65
  @property
65
66
  def is_on(self) -> bool: ...
66
67
  async def async_turn_on(self, **kwargs: Any) -> None: ...
67
68
  async def async_turn_off(self, **kwargs: Any) -> None: ...
68
69
 
69
70
  class RpcRelaySwitch(RpcSwitch):
70
- _attr_has_entity_name: bool
71
71
  _attr_unique_id: str
72
72
  def __init__(self, coordinator: ShellyRpcCoordinator, key: str, attribute: str, description: RpcEntityDescription) -> None: ...
@@ -8,6 +8,8 @@ from homeassistant.core import HomeAssistant as HomeAssistant
8
8
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
9
9
  from typing import Final
10
10
 
11
+ PARALLEL_UPDATES: int
12
+
11
13
  @dataclass(frozen=True, kw_only=True)
12
14
  class RpcTextDescription(RpcEntityDescription, TextEntityDescription): ...
13
15
 
@@ -14,6 +14,7 @@ from homeassistant.helpers.restore_state import RestoreEntity as RestoreEntity
14
14
  from typing import Any, Final
15
15
 
16
16
  LOGGER: Incomplete
17
+ PARALLEL_UPDATES: int
17
18
 
18
19
  @dataclass(frozen=True, kw_only=True)
19
20
  class RpcUpdateDescription(RpcEntityDescription, UpdateEntityDescription):
@@ -1,4 +1,4 @@
1
- from .const import API_WS_URL as API_WS_URL, BASIC_INPUTS_EVENTS_TYPES as BASIC_INPUTS_EVENTS_TYPES, COMPONENT_ID_PATTERN as COMPONENT_ID_PATTERN, CONF_COAP_PORT as CONF_COAP_PORT, CONF_GEN as CONF_GEN, DEVICES_WITHOUT_FIRMWARE_CHANGELOG as DEVICES_WITHOUT_FIRMWARE_CHANGELOG, DOMAIN as DOMAIN, FIRMWARE_UNSUPPORTED_ISSUE_ID as FIRMWARE_UNSUPPORTED_ISSUE_ID, GEN1_RELEASE_URL as GEN1_RELEASE_URL, GEN2_BETA_RELEASE_URL as GEN2_BETA_RELEASE_URL, GEN2_RELEASE_URL as GEN2_RELEASE_URL, LOGGER as LOGGER, MAX_SCRIPT_SIZE as MAX_SCRIPT_SIZE, RPC_INPUTS_EVENTS_TYPES as RPC_INPUTS_EVENTS_TYPES, SHAIR_MAX_WORK_HOURS as SHAIR_MAX_WORK_HOURS, SHBTN_INPUTS_EVENTS_TYPES as SHBTN_INPUTS_EVENTS_TYPES, SHBTN_MODELS as SHBTN_MODELS, SHELLY_EMIT_EVENT_PATTERN as SHELLY_EMIT_EVENT_PATTERN, SHIX3_1_INPUTS_EVENTS_TYPES as SHIX3_1_INPUTS_EVENTS_TYPES, UPTIME_DEVIATION as UPTIME_DEVIATION, VIRTUAL_COMPONENTS_MAP as VIRTUAL_COMPONENTS_MAP
1
+ from .const import API_WS_URL as API_WS_URL, All_LIGHT_TYPES as All_LIGHT_TYPES, BASIC_INPUTS_EVENTS_TYPES as BASIC_INPUTS_EVENTS_TYPES, COMPONENT_ID_PATTERN as COMPONENT_ID_PATTERN, CONF_COAP_PORT as CONF_COAP_PORT, CONF_GEN as CONF_GEN, DEVICES_WITHOUT_FIRMWARE_CHANGELOG as DEVICES_WITHOUT_FIRMWARE_CHANGELOG, DOMAIN as DOMAIN, FIRMWARE_UNSUPPORTED_ISSUE_ID as FIRMWARE_UNSUPPORTED_ISSUE_ID, GEN1_RELEASE_URL as GEN1_RELEASE_URL, GEN2_BETA_RELEASE_URL as GEN2_BETA_RELEASE_URL, GEN2_RELEASE_URL as GEN2_RELEASE_URL, LOGGER as LOGGER, MAX_SCRIPT_SIZE as MAX_SCRIPT_SIZE, RPC_INPUTS_EVENTS_TYPES as RPC_INPUTS_EVENTS_TYPES, SHAIR_MAX_WORK_HOURS as SHAIR_MAX_WORK_HOURS, SHBTN_INPUTS_EVENTS_TYPES as SHBTN_INPUTS_EVENTS_TYPES, SHBTN_MODELS as SHBTN_MODELS, SHELLY_EMIT_EVENT_PATTERN as SHELLY_EMIT_EVENT_PATTERN, SHIX3_1_INPUTS_EVENTS_TYPES as SHIX3_1_INPUTS_EVENTS_TYPES, UPTIME_DEVIATION as UPTIME_DEVIATION, VIRTUAL_COMPONENTS as VIRTUAL_COMPONENTS, VIRTUAL_COMPONENTS_MAP as VIRTUAL_COMPONENTS_MAP
2
2
  from _typeshed import Incomplete
3
3
  from aiohttp.web import Request as Request, WebSocketResponse as WebSocketResponse
4
4
  from aioshelly.block_device import Block as Block, BlockDevice as BlockDevice, COAP
@@ -11,7 +11,7 @@ from homeassistant.config_entries import ConfigEntry as ConfigEntry
11
11
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_MODEL as CONF_MODEL, CONF_PORT as CONF_PORT, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP
12
12
  from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, callback as callback
13
13
  from homeassistant.helpers import singleton as singleton
14
- from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC
14
+ from homeassistant.helpers.device_registry import CONNECTION_BLUETOOTH as CONNECTION_BLUETOOTH, CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC, DeviceInfo as DeviceInfo
15
15
  from homeassistant.helpers.network import NoURLAvailableError as NoURLAvailableError, get_url as get_url
16
16
  from homeassistant.util.dt import utcnow as utcnow
17
17
  from typing import Any
@@ -19,8 +19,9 @@ from typing import Any
19
19
  @callback
20
20
  def async_remove_shelly_entity(hass: HomeAssistant, domain: str, unique_id: str) -> None: ...
21
21
  def get_number_of_channels(device: BlockDevice, block: Block) -> int: ...
22
- def get_block_entity_name(device: BlockDevice, block: Block | None, description: str | None = None) -> str: ...
23
- def get_block_channel_name(device: BlockDevice, block: Block | None) -> str: ...
22
+ def get_block_entity_name(device: BlockDevice, block: Block | None, description: str | None = None) -> str | None: ...
23
+ def get_block_channel_name(device: BlockDevice, block: Block | None) -> str | None: ...
24
+ def get_block_sub_device_name(device: BlockDevice, block: Block) -> str: ...
24
25
  def is_block_momentary_input(settings: dict[str, Any], block: Block, include_detached: bool = False) -> bool: ...
25
26
  def is_block_exclude_from_relay(settings: dict[str, Any], block: Block) -> bool: ...
26
27
  def get_device_uptime(uptime: float, last_uptime: datetime | None) -> datetime: ...
@@ -43,10 +44,11 @@ def get_info_auth(info: dict[str, Any]) -> bool: ...
43
44
  def get_info_gen(info: dict[str, Any]) -> int: ...
44
45
  def get_model_name(info: dict[str, Any]) -> str: ...
45
46
  def get_shelly_model_name(model: str, sleep_period: int, device: BlockDevice | RpcDevice) -> str | None: ...
46
- def get_rpc_channel_name(device: RpcDevice, key: str) -> str: ...
47
- def get_rpc_entity_name(device: RpcDevice, key: str, description: str | None = None) -> str: ...
47
+ def get_rpc_channel_name(device: RpcDevice, key: str) -> str | None: ...
48
+ def get_rpc_sub_device_name(device: RpcDevice, key: str, emeter_phase: str | None = None) -> str: ...
49
+ def get_rpc_entity_name(device: RpcDevice, key: str, description: str | None = None) -> str | None: ...
48
50
  def get_device_entry_gen(entry: ConfigEntry) -> int: ...
49
- def get_rpc_key_instances(keys_dict: dict[str, Any], key: str) -> list[str]: ...
51
+ def get_rpc_key_instances(keys_dict: dict[str, Any], key: str, all_lights: bool = False) -> list[str]: ...
50
52
  def get_rpc_key_ids(keys_dict: dict[str, Any], key: str) -> list[int]: ...
51
53
  def is_rpc_momentary_input(config: dict[str, Any], status: dict[str, Any], key: str) -> bool: ...
52
54
  def is_block_channel_type_light(settings: dict[str, Any], channel: int) -> bool: ...
@@ -75,3 +77,8 @@ async def get_rpc_script_event_types(device: RpcDevice, id: int) -> list[str]: .
75
77
  def is_rpc_exclude_from_relay(settings: dict[str, Any], status: dict[str, Any], channel: str) -> bool: ...
76
78
  def get_shelly_air_lamp_life(lamp_seconds: int) -> float: ...
77
79
  async def get_rpc_scripts_event_types(device: RpcDevice, ignore_scripts: list[str]) -> dict[int, list[str]]: ...
80
+ def get_rpc_device_info(device: RpcDevice, mac: str, key: str | None = None, emeter_phase: str | None = None) -> DeviceInfo: ...
81
+ def get_blu_trv_device_info(config: dict[str, Any], ble_addr: str, parent_mac: str) -> DeviceInfo: ...
82
+ def get_block_device_info(device: BlockDevice, mac: str, block: Block | None = None) -> DeviceInfo: ...
83
+ @callback
84
+ def remove_stale_blu_trv_devices(hass: HomeAssistant, rpc_device: RpcDevice, entry: ConfigEntry) -> None: ...
@@ -9,6 +9,8 @@ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callb
9
9
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
10
10
  from typing import Any
11
11
 
12
+ PARALLEL_UPDATES: int
13
+
12
14
  @dataclass(kw_only=True, frozen=True)
13
15
  class BlockValveDescription(BlockEntityDescription, ValveEntityDescription): ...
14
16
 
@@ -15,7 +15,7 @@ _LOGGER: Incomplete
15
15
 
16
16
  @dataclass(frozen=True, kw_only=True)
17
17
  class SmButtonDescription(ButtonEntityDescription):
18
- press_fn: Callable[[CmdWrapper], Awaitable[None]]
18
+ press_fn: Callable[[CmdWrapper, int], Awaitable[None]]
19
19
 
20
20
  BUTTONS: list[SmButtonDescription]
21
21
  ROUTER: Incomplete
@@ -26,6 +26,7 @@ class SmButton(SmEntity, ButtonEntity):
26
26
  coordinator: SmDataUpdateCoordinator
27
27
  entity_description: SmButtonDescription
28
28
  _attr_entity_category: Incomplete
29
+ idx: Incomplete
29
30
  _attr_unique_id: Incomplete
30
- def __init__(self, coordinator: SmDataUpdateCoordinator, description: SmButtonDescription) -> None: ...
31
+ def __init__(self, coordinator: SmDataUpdateCoordinator, description: SmButtonDescription, idx: int = 0) -> None: ...
31
32
  async def async_press(self) -> None: ...
@@ -5,7 +5,7 @@ from dataclasses import dataclass
5
5
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
6
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PASSWORD, CONF_PORT as CONF_PORT, CONF_USERNAME as CONF_USERNAME, Platform as Platform
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant
8
- from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
8
+ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryError as ConfigEntryError, ConfigEntryNotReady as ConfigEntryNotReady
9
9
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
10
10
  from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC, DeviceEntryType as DeviceEntryType, format_mac as format_mac
11
11
  from homeassistant.helpers.dispatcher import async_dispatcher_send as async_dispatcher_send
@@ -7,6 +7,7 @@ from homeassistant.const import EntityCategory as EntityCategory
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant
8
8
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
9
9
 
10
+ PARALLEL_UPDATES: int
10
11
  SENSORS: tuple[BinarySensorEntityDescription, ...]
11
12
  _LOGGER: Incomplete
12
13
 
@@ -1,4 +1,4 @@
1
- from .const import UNPLAYABLE_TYPES as UNPLAYABLE_TYPES
1
+ from .const import DOMAIN as DOMAIN, UNPLAYABLE_TYPES as UNPLAYABLE_TYPES
2
2
  from _typeshed import Incomplete
3
3
  from dataclasses import dataclass, field
4
4
  from homeassistant.components import media_source as media_source
@@ -11,6 +11,7 @@ from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_d
11
11
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
12
12
 
13
13
  _LOGGER: Incomplete
14
+ PARALLEL_UPDATES: int
14
15
  HARDWARE_MODELS_WITH_SCREEN: Incomplete
15
16
  HARDWARE_MODELS_WITH_TONE: Incomplete
16
17
 
@@ -28,4 +29,6 @@ class SqueezeboxButtonEntity(SqueezeboxEntity, ButtonEntity):
28
29
  entity_description: SqueezeboxButtonEntityDescription
29
30
  _attr_unique_id: Incomplete
30
31
  def __init__(self, coordinator: SqueezeBoxPlayerUpdateCoordinator, entity_description: SqueezeboxButtonEntityDescription) -> None: ...
32
+ @property
33
+ def available(self) -> bool: ...
31
34
  async def async_press(self) -> None: ...
@@ -13,8 +13,6 @@ SERVER_MODEL: str
13
13
  STATUS_API_TIMEOUT: int
14
14
  STATUS_SENSOR_LASTSCAN: str
15
15
  STATUS_SENSOR_NEEDSRESTART: str
16
- STATUS_SENSOR_NEWVERSION: str
17
- STATUS_SENSOR_NEWPLUGINS: str
18
16
  STATUS_SENSOR_RESCAN: str
19
17
  STATUS_SENSOR_INFO_TOTAL_ALBUMS: str
20
18
  STATUS_SENSOR_INFO_TOTAL_ARTISTS: str
@@ -27,6 +25,8 @@ STATUS_QUERY_LIBRARYNAME: str
27
25
  STATUS_QUERY_MAC: str
28
26
  STATUS_QUERY_UUID: str
29
27
  STATUS_QUERY_VERSION: str
28
+ STATUS_UPDATE_NEWVERSION: str
29
+ STATUS_UPDATE_NEWPLUGINS: str
30
30
  SQUEEZEBOX_SOURCE_STRINGS: Incomplete
31
31
  SIGNAL_PLAYER_DISCOVERED: str
32
32
  SIGNAL_PLAYER_REDISCOVERED: str
@@ -39,3 +39,13 @@ DEFAULT_VOLUME_STEP: int
39
39
  ATTR_ANNOUNCE_VOLUME: str
40
40
  ATTR_ANNOUNCE_TIMEOUT: str
41
41
  UNPLAYABLE_TYPES: Incomplete
42
+ ATTR_ALARM_ID: str
43
+ ATTR_DAYS_OF_WEEK: str
44
+ ATTR_ENABLED: str
45
+ ATTR_REPEAT: str
46
+ ATTR_SCHEDULED_TODAY: str
47
+ ATTR_TIME: str
48
+ ATTR_VOLUME: str
49
+ ATTR_URL: str
50
+ UPDATE_PLUGINS_RELEASE_SUMMARY: str
51
+ UPDATE_RELEASE_SUMMARY: str
@@ -1,11 +1,13 @@
1
1
  from . import SqueezeboxConfigEntry as SqueezeboxConfigEntry
2
- from .const import PLAYER_UPDATE_INTERVAL as PLAYER_UPDATE_INTERVAL, SENSOR_UPDATE_INTERVAL as SENSOR_UPDATE_INTERVAL, SIGNAL_PLAYER_REDISCOVERED as SIGNAL_PLAYER_REDISCOVERED, STATUS_API_TIMEOUT as STATUS_API_TIMEOUT, STATUS_SENSOR_LASTSCAN as STATUS_SENSOR_LASTSCAN, STATUS_SENSOR_NEEDSRESTART as STATUS_SENSOR_NEEDSRESTART, STATUS_SENSOR_RESCAN as STATUS_SENSOR_RESCAN
2
+ from .const import DOMAIN as DOMAIN, PLAYER_UPDATE_INTERVAL as PLAYER_UPDATE_INTERVAL, SENSOR_UPDATE_INTERVAL as SENSOR_UPDATE_INTERVAL, SIGNAL_PLAYER_REDISCOVERED as SIGNAL_PLAYER_REDISCOVERED, STATUS_API_TIMEOUT as STATUS_API_TIMEOUT
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Callable as Callable
5
5
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
6
+ from homeassistant.helpers.device_registry import format_mac as format_mac
6
7
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
7
8
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
8
9
  from pysqueezebox import Player as Player, Server as Server
10
+ from pysqueezebox.player import Alarm as Alarm
9
11
  from typing import Any
10
12
 
11
13
  _LOGGER: Incomplete
@@ -13,16 +15,18 @@ _LOGGER: Incomplete
13
15
  class LMSStatusDataUpdateCoordinator(DataUpdateCoordinator):
14
16
  config_entry: SqueezeboxConfigEntry
15
17
  lms: Incomplete
16
- newversion_regex: Incomplete
18
+ can_server_restart: bool
17
19
  def __init__(self, hass: HomeAssistant, config_entry: SqueezeboxConfigEntry, lms: Server) -> None: ...
20
+ async def _async_setup(self) -> None: ...
18
21
  async def _async_update_data(self) -> dict: ...
19
- def _prepare_status_data(self, data: dict) -> dict: ...
20
22
 
21
23
  class SqueezeBoxPlayerUpdateCoordinator(DataUpdateCoordinator[dict[str, Any]]):
22
24
  config_entry: SqueezeboxConfigEntry
23
25
  player: Incomplete
24
26
  available: bool
27
+ known_alarms: set[str]
25
28
  _remove_dispatcher: Callable | None
29
+ player_uuid: Incomplete
26
30
  server_uuid: Incomplete
27
31
  def __init__(self, hass: HomeAssistant, config_entry: SqueezeboxConfigEntry, player: Player, server_uuid: str) -> None: ...
28
32
  async def _async_update_data(self) -> dict[str, Any]: ...
@@ -7,7 +7,7 @@ from _typeshed import Incomplete
7
7
  from collections.abc import Callable as Callable
8
8
  from datetime import datetime
9
9
  from homeassistant.components import media_source as media_source
10
- from homeassistant.components.media_player import ATTR_MEDIA_ENQUEUE as ATTR_MEDIA_ENQUEUE, ATTR_MEDIA_EXTRA as ATTR_MEDIA_EXTRA, BrowseError as BrowseError, BrowseMedia as BrowseMedia, MediaPlayerEnqueue as MediaPlayerEnqueue, MediaPlayerEntity as MediaPlayerEntity, MediaPlayerEntityFeature as MediaPlayerEntityFeature, MediaPlayerState as MediaPlayerState, MediaType as MediaType, RepeatMode as RepeatMode, async_process_play_media_url as async_process_play_media_url
10
+ from homeassistant.components.media_player import ATTR_MEDIA_ENQUEUE as ATTR_MEDIA_ENQUEUE, ATTR_MEDIA_EXTRA as ATTR_MEDIA_EXTRA, BrowseError as BrowseError, BrowseMedia as BrowseMedia, MediaPlayerEnqueue as MediaPlayerEnqueue, MediaPlayerEntity as MediaPlayerEntity, MediaPlayerEntityFeature as MediaPlayerEntityFeature, MediaPlayerState as MediaPlayerState, MediaType as MediaType, RepeatMode as RepeatMode, SearchMedia as SearchMedia, SearchMediaQuery as SearchMediaQuery, async_process_play_media_url as async_process_play_media_url
11
11
  from homeassistant.config_entries import SOURCE_INTEGRATION_DISCOVERY as SOURCE_INTEGRATION_DISCOVERY
12
12
  from homeassistant.const import ATTR_COMMAND as ATTR_COMMAND, CONF_HOST as CONF_HOST, CONF_PORT as CONF_PORT, Platform as Platform
13
13
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
@@ -25,6 +25,7 @@ SERVICE_CALL_METHOD: str
25
25
  SERVICE_CALL_QUERY: str
26
26
  ATTR_QUERY_RESULT: str
27
27
  _LOGGER: Incomplete
28
+ PARALLEL_UPDATES: int
28
29
  ATTR_PARAMETERS: str
29
30
  ATTR_OTHER_PLAYER: str
30
31
  ATTR_TO_PROPERTY: Incomplete
@@ -103,6 +104,7 @@ class SqueezeBoxMediaPlayerEntity(SqueezeboxEntity, MediaPlayerEntity):
103
104
  async def async_media_seek(self, position: float) -> None: ...
104
105
  async def async_turn_on(self) -> None: ...
105
106
  async def async_play_media(self, media_type: MediaType | str, media_id: str, announce: bool | None = None, **kwargs: Any) -> None: ...
107
+ async def async_search_media(self, query: SearchMediaQuery) -> SearchMedia: ...
106
108
  async def async_set_repeat(self, repeat: RepeatMode) -> None: ...
107
109
  async def async_set_shuffle(self, shuffle: bool) -> None: ...
108
110
  async def async_clear_playlist(self) -> None: ...
@@ -8,6 +8,7 @@ from homeassistant.core import HomeAssistant as HomeAssistant
8
8
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
9
9
  from homeassistant.helpers.typing import StateType as StateType
10
10
 
11
+ PARALLEL_UPDATES: int
11
12
  SENSORS: tuple[SensorEntityDescription, ...]
12
13
  _LOGGER: Incomplete
13
14
 
@@ -0,0 +1,47 @@
1
+ from .const import ATTR_ALARM_ID as ATTR_ALARM_ID, DOMAIN as DOMAIN, SIGNAL_PLAYER_DISCOVERED as SIGNAL_PLAYER_DISCOVERED
2
+ from .coordinator import SqueezeBoxPlayerUpdateCoordinator as SqueezeBoxPlayerUpdateCoordinator
3
+ from .entity import SqueezeboxEntity as SqueezeboxEntity
4
+ from _typeshed import Incomplete
5
+ from homeassistant.components.switch import SwitchEntity as SwitchEntity
6
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
+ from homeassistant.const import EntityCategory as EntityCategory, Platform as Platform
8
+ from homeassistant.core import HomeAssistant as HomeAssistant
9
+ from homeassistant.helpers.device_registry import format_mac as format_mac
10
+ from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
11
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
12
+ from homeassistant.helpers.event import async_track_time_change as async_track_time_change
13
+ from pysqueezebox.player import Alarm as Alarm
14
+ from typing import Any
15
+
16
+ _LOGGER: Incomplete
17
+
18
+ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
19
+
20
+ class SqueezeBoxAlarmEntity(SqueezeboxEntity, SwitchEntity):
21
+ _attr_translation_key: str
22
+ _attr_entity_category: Incomplete
23
+ _alarm_id: Incomplete
24
+ _attr_translation_placeholders: Incomplete
25
+ _attr_unique_id: str
26
+ def __init__(self, coordinator: SqueezeBoxPlayerUpdateCoordinator, alarm_id: str) -> None: ...
27
+ async def async_added_to_hass(self) -> None: ...
28
+ @property
29
+ def alarm(self) -> Alarm: ...
30
+ @property
31
+ def available(self) -> bool: ...
32
+ @property
33
+ def extra_state_attributes(self) -> dict[str, Any]: ...
34
+ @property
35
+ def is_on(self) -> bool: ...
36
+ async def async_turn_off(self, **kwargs: Any) -> None: ...
37
+ async def async_turn_on(self, **kwargs: Any) -> None: ...
38
+
39
+ class SqueezeBoxAlarmsEnabledEntity(SqueezeboxEntity, SwitchEntity):
40
+ _attr_translation_key: str
41
+ _attr_entity_category: Incomplete
42
+ _attr_unique_id: str
43
+ def __init__(self, coordinator: SqueezeBoxPlayerUpdateCoordinator) -> None: ...
44
+ @property
45
+ def is_on(self) -> bool: ...
46
+ async def async_turn_off(self, **kwargs: Any) -> None: ...
47
+ async def async_turn_on(self, **kwargs: Any) -> None: ...
@@ -0,0 +1,50 @@
1
+ from . import SqueezeboxConfigEntry as SqueezeboxConfigEntry
2
+ from .const import DOMAIN as DOMAIN, SERVER_MODEL as SERVER_MODEL, STATUS_QUERY_VERSION as STATUS_QUERY_VERSION, STATUS_UPDATE_NEWPLUGINS as STATUS_UPDATE_NEWPLUGINS, STATUS_UPDATE_NEWVERSION as STATUS_UPDATE_NEWVERSION, UPDATE_PLUGINS_RELEASE_SUMMARY as UPDATE_PLUGINS_RELEASE_SUMMARY, UPDATE_RELEASE_SUMMARY as UPDATE_RELEASE_SUMMARY
3
+ from .entity import LMSStatusEntity as LMSStatusEntity
4
+ from _typeshed import Incomplete
5
+ from collections.abc import Callable as Callable
6
+ from datetime import datetime
7
+ from homeassistant.components.update import UpdateEntity as UpdateEntity, UpdateEntityDescription as UpdateEntityDescription, UpdateEntityFeature as UpdateEntityFeature
8
+ from homeassistant.core import HomeAssistant as HomeAssistant
9
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
10
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
11
+ from homeassistant.helpers.event import async_call_later as async_call_later
12
+ from typing import Any
13
+
14
+ newserver: Incomplete
15
+ newplugins: Incomplete
16
+ POLL_AFTER_INSTALL: int
17
+ PARALLEL_UPDATES: int
18
+ _LOGGER: Incomplete
19
+
20
+ async def async_setup_entry(hass: HomeAssistant, entry: SqueezeboxConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
21
+
22
+ class ServerStatusUpdate(LMSStatusEntity, UpdateEntity):
23
+ @property
24
+ def latest_version(self) -> str: ...
25
+
26
+ class ServerStatusUpdateLMS(ServerStatusUpdate):
27
+ title: str
28
+ @property
29
+ def installed_version(self) -> str: ...
30
+ @property
31
+ def release_url(self) -> str: ...
32
+ @property
33
+ def release_summary(self) -> None | str: ...
34
+
35
+ class ServerStatusUpdatePlugins(ServerStatusUpdate):
36
+ auto_update: bool
37
+ title: str
38
+ installed_version: str
39
+ restart_triggered: bool
40
+ _cancel_update: Callable | None
41
+ @property
42
+ def supported_features(self) -> UpdateEntityFeature: ...
43
+ @property
44
+ def release_summary(self) -> None | str: ...
45
+ @property
46
+ def release_url(self) -> str: ...
47
+ @property
48
+ def in_progress(self) -> bool: ...
49
+ async def async_install(self, version: str | None, backup: bool, **kwargs: Any) -> None: ...
50
+ async def _async_update_catchall(self, now: datetime | None = None) -> None: ...
@@ -2,7 +2,8 @@ from _typeshed import Incomplete
2
2
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
3
3
  from homeassistant.const import CONF_ENTITY_ID as CONF_ENTITY_ID, Platform as Platform
4
4
  from homeassistant.core import HomeAssistant as HomeAssistant
5
- from homeassistant.helpers.device import async_remove_stale_devices_links_keep_entity_device as async_remove_stale_devices_links_keep_entity_device
5
+ from homeassistant.helpers.device import async_entity_id_to_device_id as async_entity_id_to_device_id, async_remove_stale_devices_links_keep_entity_device as async_remove_stale_devices_links_keep_entity_device
6
+ from homeassistant.helpers.helper_integration import async_handle_source_entity_changes as async_handle_source_entity_changes
6
7
 
7
8
  DOMAIN: str
8
9
  PLATFORMS: Incomplete
@@ -1,11 +1,18 @@
1
1
  from .const import CONF_COUNTER_ID as CONF_COUNTER_ID, DATA_REFRESH_INTERVAL as DATA_REFRESH_INTERVAL, DOMAIN as DOMAIN
2
+ from _typeshed import Incomplete
2
3
  from dataclasses import dataclass
4
+ from datetime import date
5
+ from homeassistant.components.recorder import get_instance as get_instance
6
+ from homeassistant.components.recorder.models import StatisticData as StatisticData, StatisticMetaData as StatisticMetaData
7
+ from homeassistant.components.recorder.statistics import StatisticMeanType as StatisticMeanType, StatisticsRow as StatisticsRow, async_add_external_statistics as async_add_external_statistics, get_last_statistics as get_last_statistics
3
8
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
4
- from homeassistant.const import CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME
5
- from homeassistant.core import HomeAssistant as HomeAssistant, _LOGGER as _LOGGER
9
+ from homeassistant.const import CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME, CURRENCY_EURO as CURRENCY_EURO, UnitOfVolume as UnitOfVolume
10
+ from homeassistant.core import HomeAssistant as HomeAssistant
6
11
  from homeassistant.exceptions import ConfigEntryError as ConfigEntryError
7
12
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
8
- from pysuez import SuezClient
13
+ from pysuez import SuezClient, TelemetryMeasure as TelemetryMeasure
14
+
15
+ _LOGGER: Incomplete
9
16
 
10
17
  @dataclass
11
18
  class SuezWaterAggregatedAttributes:
@@ -20,12 +27,20 @@ class SuezWaterAggregatedAttributes:
20
27
  class SuezWaterData:
21
28
  aggregated_value: float
22
29
  aggregated_attr: SuezWaterAggregatedAttributes
23
- price: float
30
+ price: float | None
24
31
  type SuezWaterConfigEntry = ConfigEntry[SuezWaterCoordinator]
25
32
 
26
33
  class SuezWaterCoordinator(DataUpdateCoordinator[SuezWaterData]):
27
34
  _suez_client: SuezClient
28
35
  config_entry: SuezWaterConfigEntry
36
+ _counter_id: Incomplete
37
+ _cost_statistic_id: Incomplete
38
+ _water_statistic_id: Incomplete
29
39
  def __init__(self, hass: HomeAssistant, config_entry: SuezWaterConfigEntry) -> None: ...
30
40
  async def _async_setup(self) -> None: ...
31
41
  async def _async_update_data(self) -> SuezWaterData: ...
42
+ async def _update_statistics(self, current_price: float | None) -> None: ...
43
+ def _build_statistics(self, current_price: float | None, consumption_sum: float, cost_sum: float, last_stats: date | None, usage: list[TelemetryMeasure]) -> tuple[list[StatisticData], list[StatisticData]]: ...
44
+ def _persist_statistics(self, consumption_statistics: list[StatisticData], cost_statistics: list[StatisticData]) -> None: ...
45
+ def _get_statistics_metadata(self, id: str, name: str, unit: str) -> StatisticMetaData: ...
46
+ async def _get_last_stat(self, id: str) -> StatisticsRow | None: ...
@@ -29,6 +29,8 @@ class SuezWaterSensor(CoordinatorEntity[SuezWaterCoordinator], SensorEntity):
29
29
  _attr_device_info: Incomplete
30
30
  def __init__(self, coordinator: SuezWaterCoordinator, counter_id: int, entity_description: SuezWaterSensorEntityDescription) -> None: ...
31
31
  @property
32
+ def available(self) -> bool: ...
33
+ @property
32
34
  def native_value(self) -> float | str | None: ...
33
35
  @property
34
36
  def extra_state_attributes(self) -> dict[str, Any] | None: ...
@@ -0,0 +1,13 @@
1
+ from _typeshed import Incomplete
2
+ from datetime import timedelta
3
+ from homeassistant.const import CONF_CONDITION as CONF_CONDITION, SUN_EVENT_SUNRISE as SUN_EVENT_SUNRISE, SUN_EVENT_SUNSET as SUN_EVENT_SUNSET
4
+ from homeassistant.core import HomeAssistant as HomeAssistant
5
+ from homeassistant.helpers.condition import ConditionCheckerType as ConditionCheckerType, condition_trace_set_result as condition_trace_set_result, condition_trace_update_result as condition_trace_update_result, trace_condition_function as trace_condition_function
6
+ from homeassistant.helpers.sun import get_astral_event_date as get_astral_event_date
7
+ from homeassistant.helpers.typing import ConfigType as ConfigType, TemplateVarsType as TemplateVarsType
8
+
9
+ _CONDITION_SCHEMA: Incomplete
10
+
11
+ async def async_validate_condition_config(hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
12
+ def sun(hass: HomeAssistant, before: str | None = None, after: str | None = None, before_offset: timedelta | None = None, after_offset: timedelta | None = None) -> bool: ...
13
+ def async_condition_from_config(config: ConfigType) -> ConditionCheckerType: ...
@@ -1,4 +1,17 @@
1
- from .light import LightSwitch as LightSwitch
2
- from homeassistant.core import callback
1
+ from .const import CONF_INVERT as CONF_INVERT, CONF_TARGET_DOMAIN as CONF_TARGET_DOMAIN
2
+ from _typeshed import Incomplete
3
+ from homeassistant.components.homeassistant import exposed_entities as exposed_entities
4
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
+ from homeassistant.const import CONF_ENTITY_ID as CONF_ENTITY_ID
6
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
7
+ from homeassistant.helpers.helper_integration import async_handle_source_entity_changes as async_handle_source_entity_changes
3
8
 
4
- __all__ = ['LightSwitch']
9
+ _LOGGER: Incomplete
10
+
11
+ @callback
12
+ def async_add_to_device(hass: HomeAssistant, entry: ConfigEntry, entity_id: str) -> str | None: ...
13
+ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
14
+ async def async_migrate_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: ...
15
+ async def config_entry_update_listener(hass: HomeAssistant, entry: ConfigEntry) -> None: ...
16
+ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
17
+ async def async_remove_entry(hass: HomeAssistant, entry: ConfigEntry) -> None: ...