homeassistant-stubs 2025.4.3__py3-none-any.whl → 2025.5.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 (402) hide show
  1. homeassistant-stubs/components/adax/__init__.pyi +5 -4
  2. homeassistant-stubs/components/adax/climate.pyi +25 -17
  3. homeassistant-stubs/components/adax/const.pyi +2 -0
  4. homeassistant-stubs/components/adax/coordinator.pyi +21 -0
  5. homeassistant-stubs/components/androidtv_remote/media_player.pyi +1 -1
  6. homeassistant-stubs/components/apcupsd/binary_sensor.pyi +1 -1
  7. homeassistant-stubs/components/apcupsd/coordinator.pyi +2 -0
  8. homeassistant-stubs/components/apcupsd/sensor.pyi +1 -1
  9. homeassistant-stubs/components/apsystems/coordinator.pyi +1 -0
  10. homeassistant-stubs/components/apsystems/switch.pyi +1 -1
  11. homeassistant-stubs/components/asuswrt/router.pyi +2 -3
  12. homeassistant-stubs/components/automation/__init__.pyi +2 -2
  13. homeassistant-stubs/components/automation/config.pyi +2 -2
  14. homeassistant-stubs/components/automation/const.pyi +0 -4
  15. homeassistant-stubs/components/axis/hub/api.pyi +2 -2
  16. homeassistant-stubs/components/backup/config.pyi +10 -2
  17. homeassistant-stubs/components/backup/onboarding.pyi +30 -0
  18. homeassistant-stubs/components/bluetooth/passive_update_processor.pyi +3 -0
  19. homeassistant-stubs/components/bluetooth/storage.pyi +1 -1
  20. homeassistant-stubs/components/bond/config_flow.pyi +3 -0
  21. homeassistant-stubs/components/bosch_alarm/__init__.pyi +1 -1
  22. homeassistant-stubs/components/bosch_alarm/alarm_control_panel.pyi +2 -11
  23. homeassistant-stubs/components/bosch_alarm/config_flow.pyi +5 -1
  24. homeassistant-stubs/components/bosch_alarm/diagnostics.pyi +11 -0
  25. homeassistant-stubs/components/bosch_alarm/entity.pyi +29 -0
  26. homeassistant-stubs/components/bosch_alarm/sensor.pyi +30 -0
  27. homeassistant-stubs/components/cambridge_audio/media_player.pyi +2 -0
  28. homeassistant-stubs/components/canary/__init__.pyi +1 -5
  29. homeassistant-stubs/components/canary/config_flow.pyi +0 -1
  30. homeassistant-stubs/components/cloud/const.pyi +1 -0
  31. homeassistant-stubs/components/cloud/http_api.pyi +1 -1
  32. homeassistant-stubs/components/cloud/onboarding.pyi +35 -0
  33. homeassistant-stubs/components/cloud/tts.pyi +4 -1
  34. homeassistant-stubs/components/comelit/__init__.pyi +1 -0
  35. homeassistant-stubs/components/comelit/alarm_control_panel.pyi +0 -1
  36. homeassistant-stubs/components/comelit/binary_sensor.pyi +0 -1
  37. homeassistant-stubs/components/comelit/climate.pyi +2 -7
  38. homeassistant-stubs/components/comelit/config_flow.pyi +1 -0
  39. homeassistant-stubs/components/comelit/coordinator.pyi +3 -2
  40. homeassistant-stubs/components/comelit/cover.pyi +2 -7
  41. homeassistant-stubs/components/comelit/entity.pyi +11 -0
  42. homeassistant-stubs/components/comelit/humidifier.pyi +2 -6
  43. homeassistant-stubs/components/comelit/light.pyi +2 -9
  44. homeassistant-stubs/components/comelit/sensor.pyi +2 -7
  45. homeassistant-stubs/components/comelit/switch.pyi +2 -6
  46. homeassistant-stubs/components/comelit/utils.pyi +5 -0
  47. homeassistant-stubs/components/command_line/__init__.pyi +1 -1
  48. homeassistant-stubs/components/command_line/binary_sensor.pyi +2 -2
  49. homeassistant-stubs/components/command_line/cover.pyi +2 -2
  50. homeassistant-stubs/components/command_line/sensor.pyi +2 -2
  51. homeassistant-stubs/components/command_line/switch.pyi +2 -2
  52. homeassistant-stubs/components/config/config_entries.pyi +3 -1
  53. homeassistant-stubs/components/demo/light.pyi +3 -2
  54. homeassistant-stubs/components/demo/media_player.pyi +4 -0
  55. homeassistant-stubs/components/device_tracker/config_entry.pyi +2 -2
  56. homeassistant-stubs/components/devolo_home_control/__init__.pyi +2 -2
  57. homeassistant-stubs/components/devolo_home_network/device_tracker.pyi +1 -2
  58. homeassistant-stubs/components/dhcp/__init__.pyi +6 -13
  59. homeassistant-stubs/components/dhcp/const.pyi +5 -0
  60. homeassistant-stubs/components/dhcp/helpers.pyi +8 -0
  61. homeassistant-stubs/components/dhcp/models.pyi +25 -0
  62. homeassistant-stubs/components/dhcp/websocket_api.pyi +13 -0
  63. homeassistant-stubs/components/ecovacs/image.pyi +1 -0
  64. homeassistant-stubs/components/eheimdigital/number.pyi +38 -0
  65. homeassistant-stubs/components/eheimdigital/sensor.pyi +32 -0
  66. homeassistant-stubs/components/eheimdigital/switch.pyi +26 -0
  67. homeassistant-stubs/components/eheimdigital/time.pyi +37 -0
  68. homeassistant-stubs/components/elevenlabs/tts.pyi +2 -2
  69. homeassistant-stubs/components/energy/sensor.pyi +5 -0
  70. homeassistant-stubs/components/enphase_envoy/config_flow.pyi +3 -1
  71. homeassistant-stubs/components/enphase_envoy/coordinator.pyi +12 -1
  72. homeassistant-stubs/components/esphome/__init__.pyi +5 -4
  73. homeassistant-stubs/components/esphome/alarm_control_panel.pyi +1 -0
  74. homeassistant-stubs/components/esphome/assist_satellite.pyi +7 -6
  75. homeassistant-stubs/components/esphome/binary_sensor.pyi +5 -13
  76. homeassistant-stubs/components/esphome/button.pyi +2 -0
  77. homeassistant-stubs/components/esphome/camera.pyi +2 -0
  78. homeassistant-stubs/components/esphome/climate.pyi +1 -0
  79. homeassistant-stubs/components/esphome/config_flow.pyi +26 -5
  80. homeassistant-stubs/components/esphome/const.pyi +2 -1
  81. homeassistant-stubs/components/esphome/coordinator.pyi +4 -3
  82. homeassistant-stubs/components/esphome/cover.pyi +2 -0
  83. homeassistant-stubs/components/esphome/dashboard.pyi +1 -1
  84. homeassistant-stubs/components/esphome/date.pyi +2 -0
  85. homeassistant-stubs/components/esphome/datetime.pyi +2 -0
  86. homeassistant-stubs/components/esphome/diagnostics.pyi +2 -0
  87. homeassistant-stubs/components/esphome/entity.pyi +12 -9
  88. homeassistant-stubs/components/esphome/event.pyi +2 -0
  89. homeassistant-stubs/components/esphome/fan.pyi +4 -3
  90. homeassistant-stubs/components/esphome/ffmpeg_proxy.pyi +10 -2
  91. homeassistant-stubs/components/esphome/light.pyi +8 -7
  92. homeassistant-stubs/components/esphome/lock.pyi +6 -4
  93. homeassistant-stubs/components/esphome/manager.pyi +7 -3
  94. homeassistant-stubs/components/esphome/media_player.pyi +2 -1
  95. homeassistant-stubs/components/esphome/number.pyi +1 -0
  96. homeassistant-stubs/components/esphome/repairs.pyi +21 -2
  97. homeassistant-stubs/components/esphome/select.pyi +3 -2
  98. homeassistant-stubs/components/esphome/sensor.pyi +4 -2
  99. homeassistant-stubs/components/esphome/switch.pyi +3 -1
  100. homeassistant-stubs/components/esphome/text.pyi +1 -0
  101. homeassistant-stubs/components/esphome/time.pyi +2 -0
  102. homeassistant-stubs/components/esphome/update.pyi +8 -9
  103. homeassistant-stubs/components/esphome/valve.pyi +3 -1
  104. homeassistant-stubs/components/fritz/binary_sensor.pyi +1 -0
  105. homeassistant-stubs/components/fritz/button.pyi +1 -0
  106. homeassistant-stubs/components/fritz/coordinator.pyi +3 -4
  107. homeassistant-stubs/components/fritz/device_tracker.pyi +1 -0
  108. homeassistant-stubs/components/fritz/image.pyi +1 -0
  109. homeassistant-stubs/components/fritz/sensor.pyi +1 -0
  110. homeassistant-stubs/components/fritz/switch.pyi +1 -0
  111. homeassistant-stubs/components/fritz/update.pyi +1 -0
  112. homeassistant-stubs/components/fritzbox/binary_sensor.pyi +2 -5
  113. homeassistant-stubs/components/fritzbox/climate.pyi +4 -3
  114. homeassistant-stubs/components/fritzbox/coordinator.pyi +1 -1
  115. homeassistant-stubs/components/fritzbox/sensor.pyi +3 -6
  116. homeassistant-stubs/components/heos/const.pyi +4 -0
  117. homeassistant-stubs/components/heos/media_player.pyi +5 -4
  118. homeassistant-stubs/components/heos/services.pyi +22 -2
  119. homeassistant-stubs/components/history/websocket_api.pyi +1 -1
  120. homeassistant-stubs/components/history_stats/data.pyi +2 -1
  121. homeassistant-stubs/components/home_connect/__init__.pyi +0 -1
  122. homeassistant-stubs/components/home_connect/binary_sensor.pyi +2 -13
  123. homeassistant-stubs/components/home_connect/coordinator.pyi +5 -0
  124. homeassistant-stubs/components/home_connect/repairs.pyi +10 -0
  125. homeassistant-stubs/components/home_connect/select.pyi +7 -3
  126. homeassistant-stubs/components/home_connect/sensor.pyi +5 -3
  127. homeassistant-stubs/components/homee/climate.pyi +47 -0
  128. homeassistant-stubs/components/homee/const.pyi +1 -0
  129. homeassistant-stubs/components/homee/number.pyi +12 -4
  130. homeassistant-stubs/components/homekit/__init__.pyi +5 -3
  131. homeassistant-stubs/components/homekit/accessories.pyi +2 -1
  132. homeassistant-stubs/components/homekit/const.pyi +13 -0
  133. homeassistant-stubs/components/homekit/type_air_purifiers.pyi +69 -0
  134. homeassistant-stubs/components/homekit/type_fans.pyi +7 -4
  135. homeassistant-stubs/components/homekit/type_media_players.pyi +2 -1
  136. homeassistant-stubs/components/homekit/type_switches.pyi +1 -1
  137. homeassistant-stubs/components/homekit/type_triggers.pyi +1 -1
  138. homeassistant-stubs/components/homekit/util.pyi +2 -1
  139. homeassistant-stubs/components/http/headers.pyi +6 -0
  140. homeassistant-stubs/components/huawei_lte/binary_sensor.pyi +3 -1
  141. homeassistant-stubs/components/huawei_lte/config_flow.pyi +1 -1
  142. homeassistant-stubs/components/huawei_lte/entity.pyi +0 -3
  143. homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +1 -0
  144. homeassistant-stubs/components/husqvarna_automower/sensor.pyi +2 -1
  145. homeassistant-stubs/components/hyperion/__init__.pyi +12 -5
  146. homeassistant-stubs/components/hyperion/camera.pyi +3 -4
  147. homeassistant-stubs/components/hyperion/const.pyi +0 -3
  148. homeassistant-stubs/components/hyperion/light.pyi +4 -6
  149. homeassistant-stubs/components/hyperion/sensor.pyi +3 -4
  150. homeassistant-stubs/components/hyperion/switch.pyi +3 -4
  151. homeassistant-stubs/components/incomfort/climate.pyi +1 -2
  152. homeassistant-stubs/components/iron_os/__init__.pyi +1 -3
  153. homeassistant-stubs/components/iron_os/config_flow.pyi +3 -0
  154. homeassistant-stubs/components/iron_os/coordinator.pyi +4 -2
  155. homeassistant-stubs/components/iron_os/entity.pyi +2 -0
  156. homeassistant-stubs/components/iron_os/update.pyi +4 -2
  157. homeassistant-stubs/components/isy994/entity.pyi +1 -0
  158. homeassistant-stubs/components/isy994/services.pyi +1 -0
  159. homeassistant-stubs/components/isy994/switch.pyi +1 -1
  160. homeassistant-stubs/components/jewish_calendar/config_flow.pyi +1 -2
  161. homeassistant-stubs/components/jewish_calendar/const.pyi +1 -0
  162. homeassistant-stubs/components/jewish_calendar/entity.pyi +0 -1
  163. homeassistant-stubs/components/jewish_calendar/sensor.pyi +1 -0
  164. homeassistant-stubs/components/jewish_calendar/service.pyi +4 -3
  165. homeassistant-stubs/components/kulersky/__init__.pyi +14 -0
  166. homeassistant-stubs/components/kulersky/config_flow.pyi +17 -0
  167. homeassistant-stubs/components/kulersky/const.pyi +4 -0
  168. homeassistant-stubs/components/kulersky/light.pyi +34 -0
  169. homeassistant-stubs/components/lamarzocco/__init__.pyi +5 -3
  170. homeassistant-stubs/components/lamarzocco/binary_sensor.pyi +3 -7
  171. homeassistant-stubs/components/lamarzocco/calendar.pyi +3 -4
  172. homeassistant-stubs/components/lamarzocco/config_flow.pyi +5 -4
  173. homeassistant-stubs/components/lamarzocco/coordinator.pyi +16 -16
  174. homeassistant-stubs/components/lamarzocco/diagnostics.pyi +3 -8
  175. homeassistant-stubs/components/lamarzocco/entity.pyi +1 -6
  176. homeassistant-stubs/components/lamarzocco/number.pyi +4 -29
  177. homeassistant-stubs/components/lamarzocco/select.pyi +3 -8
  178. homeassistant-stubs/components/lamarzocco/sensor.pyi +11 -24
  179. homeassistant-stubs/components/lamarzocco/switch.pyi +6 -5
  180. homeassistant-stubs/components/lamarzocco/update.pyi +4 -1
  181. homeassistant-stubs/components/lcn/__init__.pyi +4 -3
  182. homeassistant-stubs/components/lcn/entity.pyi +3 -3
  183. homeassistant-stubs/components/lcn/helpers.pyi +2 -2
  184. homeassistant-stubs/components/lcn/websocket.pyi +1 -1
  185. homeassistant-stubs/components/linkplay/__init__.pyi +1 -1
  186. homeassistant-stubs/components/linkplay/const.pyi +8 -2
  187. homeassistant-stubs/components/linkplay/media_player.pyi +8 -4
  188. homeassistant-stubs/components/logbook/websocket_api.pyi +1 -1
  189. homeassistant-stubs/components/logger/__init__.pyi +1 -1
  190. homeassistant-stubs/components/logger/helpers.pyi +4 -2
  191. homeassistant-stubs/components/logger/websocket_api.pyi +1 -1
  192. homeassistant-stubs/components/matter/entity.pyi +1 -0
  193. homeassistant-stubs/components/matter/select.pyi +1 -1
  194. homeassistant-stubs/components/matter/sensor.pyi +3 -1
  195. homeassistant-stubs/components/matter/switch.pyi +20 -0
  196. homeassistant-stubs/components/matter/water_heater.pyi +39 -0
  197. homeassistant-stubs/components/mcp/application_credentials.pyi +12 -0
  198. homeassistant-stubs/components/mcp/config_flow.pyi +27 -6
  199. homeassistant-stubs/components/mcp/const.pyi +3 -0
  200. homeassistant-stubs/components/mcp/coordinator.pyi +8 -5
  201. homeassistant-stubs/components/media_player/__init__.pyi +7 -3
  202. homeassistant-stubs/components/media_player/browse_media.pyi +16 -1
  203. homeassistant-stubs/components/media_player/const.pyi +4 -0
  204. homeassistant-stubs/components/media_player/errors.pyi +1 -0
  205. homeassistant-stubs/components/media_source/error.pyi +1 -0
  206. homeassistant-stubs/components/met_eireann/__init__.pyi +2 -2
  207. homeassistant-stubs/components/met_eireann/weather.pyi +3 -3
  208. homeassistant-stubs/components/mjpeg/config_flow.pyi +2 -2
  209. homeassistant-stubs/components/motionmount/select.pyi +1 -1
  210. homeassistant-stubs/components/mqtt/config_flow.pyi +18 -4
  211. homeassistant-stubs/components/mqtt/const.pyi +3 -0
  212. homeassistant-stubs/components/mqtt/device_tracker.pyi +11 -14
  213. homeassistant-stubs/components/mqtt/entity.pyi +3 -0
  214. homeassistant-stubs/components/mqtt/light/schema_basic.pyi +1 -2
  215. homeassistant-stubs/components/mqtt/light/schema_json.pyi +3 -2
  216. homeassistant-stubs/components/music_assistant/media_browser.pyi +17 -2
  217. homeassistant-stubs/components/music_assistant/media_player.pyi +3 -2
  218. homeassistant-stubs/components/network/__init__.pyi +2 -0
  219. homeassistant-stubs/components/ntfy/__init__.pyi +16 -0
  220. homeassistant-stubs/components/ntfy/config_flow.pyi +29 -0
  221. homeassistant-stubs/components/ntfy/const.pyi +6 -0
  222. homeassistant-stubs/components/ntfy/diagnostics.pyi +7 -0
  223. homeassistant-stubs/components/ntfy/notify.pyi +25 -0
  224. homeassistant-stubs/components/nut/__init__.pyi +7 -3
  225. homeassistant-stubs/components/nut/config_flow.pyi +11 -14
  226. homeassistant-stubs/components/nut/const.pyi +0 -1
  227. homeassistant-stubs/components/nut/device_action.pyi +5 -1
  228. homeassistant-stubs/components/nut/sensor.pyi +6 -3
  229. homeassistant-stubs/components/ohme/__init__.pyi +15 -0
  230. homeassistant-stubs/components/ohme/button.pyi +26 -0
  231. homeassistant-stubs/components/ohme/config_flow.pyi +17 -0
  232. homeassistant-stubs/components/ohme/const.pyi +5 -0
  233. homeassistant-stubs/components/ohme/coordinator.pyi +44 -0
  234. homeassistant-stubs/components/ohme/diagnostics.pyi +5 -0
  235. homeassistant-stubs/components/ohme/entity.pyi +23 -0
  236. homeassistant-stubs/components/ohme/number.pyi +30 -0
  237. homeassistant-stubs/components/ohme/select.pyi +33 -0
  238. homeassistant-stubs/components/ohme/sensor.pyi +26 -0
  239. homeassistant-stubs/components/ohme/services.pyi +19 -0
  240. homeassistant-stubs/components/ohme/switch.pyi +45 -0
  241. homeassistant-stubs/components/ohme/time.pyi +30 -0
  242. homeassistant-stubs/components/onboarding/__init__.pyi +1 -0
  243. homeassistant-stubs/components/onboarding/views.pyi +29 -43
  244. homeassistant-stubs/components/oncue/__init__.pyi +5 -11
  245. homeassistant-stubs/components/oncue/config_flow.pyi +2 -13
  246. homeassistant-stubs/components/onewire/sensor.pyi +1 -2
  247. homeassistant-stubs/components/onkyo/config_flow.pyi +2 -3
  248. homeassistant-stubs/components/onkyo/const.pyi +0 -2
  249. homeassistant-stubs/components/onkyo/media_player.pyi +3 -14
  250. homeassistant-stubs/components/openai_conversation/config_flow.pyi +3 -3
  251. homeassistant-stubs/components/openai_conversation/const.pyi +1 -0
  252. homeassistant-stubs/components/openai_conversation/conversation.pyi +1 -1
  253. homeassistant-stubs/components/overkiz/climate/atlantic_electrical_heater_with_adjustable_temperature_setpoint.pyi +4 -1
  254. homeassistant-stubs/components/overkiz/climate/atlantic_electrical_towel_dryer.pyi +2 -1
  255. homeassistant-stubs/components/overkiz/config_flow.pyi +1 -7
  256. homeassistant-stubs/components/overkiz/entity.pyi +2 -1
  257. homeassistant-stubs/components/overkiz/number.pyi +1 -1
  258. homeassistant-stubs/components/overkiz/sensor.pyi +1 -1
  259. homeassistant-stubs/components/pegel_online/__init__.pyi +13 -0
  260. homeassistant-stubs/components/pegel_online/config_flow.pyi +15 -0
  261. homeassistant-stubs/components/pegel_online/const.pyi +6 -0
  262. homeassistant-stubs/components/pegel_online/coordinator.pyi +16 -0
  263. homeassistant-stubs/components/pegel_online/diagnostics.pyi +5 -0
  264. homeassistant-stubs/components/pegel_online/entity.pyi +12 -0
  265. homeassistant-stubs/components/pegel_online/sensor.pyi +28 -0
  266. homeassistant-stubs/components/powerwall/sensor.pyi +0 -1
  267. homeassistant-stubs/components/recorder/core.pyi +2 -0
  268. homeassistant-stubs/components/recorder/entity_registry.pyi +2 -1
  269. homeassistant-stubs/components/recorder/tasks.pyi +2 -1
  270. homeassistant-stubs/components/remote_calendar/calendar.pyi +2 -0
  271. homeassistant-stubs/components/remote_calendar/config_flow.pyi +1 -0
  272. homeassistant-stubs/components/remote_calendar/coordinator.pyi +1 -0
  273. homeassistant-stubs/components/remote_calendar/ics.pyi +10 -0
  274. homeassistant-stubs/components/renault/binary_sensor.pyi +8 -2
  275. homeassistant-stubs/components/renault/config_flow.pyi +2 -1
  276. homeassistant-stubs/components/renault/const.pyi +2 -1
  277. homeassistant-stubs/components/renault/coordinator.pyi +4 -1
  278. homeassistant-stubs/components/renault/entity.pyi +2 -0
  279. homeassistant-stubs/components/renault/renault_hub.pyi +5 -2
  280. homeassistant-stubs/components/renault/renault_vehicle.pyi +5 -2
  281. homeassistant-stubs/components/renault/services.pyi +5 -0
  282. homeassistant-stubs/components/rest/binary_sensor.pyi +2 -2
  283. homeassistant-stubs/components/rest/schema.pyi +1 -1
  284. homeassistant-stubs/components/rest/sensor.pyi +2 -2
  285. homeassistant-stubs/components/rest/switch.pyi +4 -3
  286. homeassistant-stubs/components/roborock/__init__.pyi +1 -0
  287. homeassistant-stubs/components/roborock/config_flow.pyi +1 -0
  288. homeassistant-stubs/components/samsungtv/__init__.pyi +6 -7
  289. homeassistant-stubs/components/samsungtv/config_flow.pyi +1 -1
  290. homeassistant-stubs/components/samsungtv/entity.pyi +3 -2
  291. homeassistant-stubs/components/samsungtv/media_player.pyi +1 -2
  292. homeassistant-stubs/components/samsungtv/remote.pyi +2 -2
  293. homeassistant-stubs/components/scrape/__init__.pyi +1 -1
  294. homeassistant-stubs/components/scrape/sensor.pyi +4 -5
  295. homeassistant-stubs/components/shelly/__init__.pyi +1 -0
  296. homeassistant-stubs/components/shelly/climate.pyi +2 -1
  297. homeassistant-stubs/components/shelly/const.pyi +2 -0
  298. homeassistant-stubs/components/shelly/coordinator.pyi +1 -0
  299. homeassistant-stubs/components/shelly/entity.pyi +5 -2
  300. homeassistant-stubs/components/shelly/number.pyi +4 -3
  301. homeassistant-stubs/components/shelly/repairs.pyi +19 -0
  302. homeassistant-stubs/components/shelly/select.pyi +3 -1
  303. homeassistant-stubs/components/shelly/text.pyi +4 -1
  304. homeassistant-stubs/components/shelly/utils.pyi +2 -3
  305. homeassistant-stubs/components/smlight/binary_sensor.pyi +1 -0
  306. homeassistant-stubs/components/smlight/button.pyi +1 -0
  307. homeassistant-stubs/components/smlight/sensor.pyi +2 -0
  308. homeassistant-stubs/components/smlight/switch.pyi +1 -0
  309. homeassistant-stubs/components/smlight/update.pyi +3 -1
  310. homeassistant-stubs/components/smtp/__init__.pyi +0 -0
  311. homeassistant-stubs/components/smtp/const.pyi +17 -0
  312. homeassistant-stubs/components/smtp/notify.pyi +47 -0
  313. homeassistant-stubs/components/sql/__init__.pyi +1 -1
  314. homeassistant-stubs/components/sql/sensor.pyi +4 -4
  315. homeassistant-stubs/components/ssdp/__init__.pyi +6 -96
  316. homeassistant-stubs/components/ssdp/common.pyi +5 -0
  317. homeassistant-stubs/components/ssdp/const.pyi +3 -0
  318. homeassistant-stubs/components/ssdp/scanner.pyi +75 -0
  319. homeassistant-stubs/components/ssdp/server.pyi +30 -0
  320. homeassistant-stubs/components/ssdp/websocket_api.pyi +16 -0
  321. homeassistant-stubs/components/switcher_kis/button.pyi +2 -1
  322. homeassistant-stubs/components/switcher_kis/climate.pyi +2 -4
  323. homeassistant-stubs/components/switcher_kis/config_flow.pyi +3 -2
  324. homeassistant-stubs/components/switcher_kis/cover.pyi +0 -2
  325. homeassistant-stubs/components/switcher_kis/entity.pyi +4 -0
  326. homeassistant-stubs/components/switcher_kis/light.pyi +3 -8
  327. homeassistant-stubs/components/switcher_kis/sensor.pyi +13 -6
  328. homeassistant-stubs/components/switcher_kis/switch.pyi +9 -15
  329. homeassistant-stubs/components/switcher_kis/utils.pyi +1 -1
  330. homeassistant-stubs/components/synology_dsm/common.pyi +3 -0
  331. homeassistant-stubs/components/synology_dsm/sensor.pyi +9 -1
  332. homeassistant-stubs/components/todo/__init__.pyi +1 -0
  333. homeassistant-stubs/components/tplink_omada/config_flow.pyi +1 -2
  334. homeassistant-stubs/components/tractive/__init__.pyi +1 -1
  335. homeassistant-stubs/components/tractive/binary_sensor.pyi +9 -3
  336. homeassistant-stubs/components/tractive/const.pyi +1 -0
  337. homeassistant-stubs/components/tractive/device_tracker.pyi +1 -1
  338. homeassistant-stubs/components/tts/__init__.pyi +22 -13
  339. homeassistant-stubs/components/tts/legacy.pyi +1 -0
  340. homeassistant-stubs/components/tts/media_source.pyi +5 -2
  341. homeassistant-stubs/components/unifi/hub/api.pyi +2 -2
  342. homeassistant-stubs/components/uptimerobot/__init__.pyi +4 -5
  343. homeassistant-stubs/components/uptimerobot/binary_sensor.pyi +4 -4
  344. homeassistant-stubs/components/uptimerobot/coordinator.pyi +3 -2
  345. homeassistant-stubs/components/uptimerobot/diagnostics.pyi +2 -4
  346. homeassistant-stubs/components/uptimerobot/entity.pyi +0 -2
  347. homeassistant-stubs/components/uptimerobot/sensor.pyi +3 -4
  348. homeassistant-stubs/components/uptimerobot/switch.pyi +5 -4
  349. homeassistant-stubs/components/vodafone_station/__init__.pyi +1 -1
  350. homeassistant-stubs/components/vodafone_station/config_flow.pyi +1 -0
  351. homeassistant-stubs/components/vodafone_station/coordinator.pyi +2 -1
  352. homeassistant-stubs/components/vodafone_station/utils.pyi +5 -0
  353. homeassistant-stubs/components/websocket_api/commands.pyi +3 -1
  354. homeassistant-stubs/components/websocket_api/http.pyi +4 -1
  355. homeassistant-stubs/components/wemo/__init__.pyi +1 -1
  356. homeassistant-stubs/components/wemo/coordinator.pyi +1 -1
  357. homeassistant-stubs/components/wemo/models.pyi +3 -4
  358. homeassistant-stubs/components/workday/config_flow.pyi +1 -1
  359. homeassistant-stubs/components/xiaomi_ble/const.pyi +2 -0
  360. homeassistant-stubs/components/xiaomi_ble/device_trigger.pyi +1 -1
  361. homeassistant-stubs/components/xiaomi_ble/sensor.pyi +2 -2
  362. homeassistant-stubs/components/zeroconf/__init__.pyi +6 -49
  363. homeassistant-stubs/components/zeroconf/const.pyi +3 -0
  364. homeassistant-stubs/components/zeroconf/discovery.pyi +63 -0
  365. homeassistant-stubs/components/zeroconf/websocket_api.pyi +40 -0
  366. homeassistant-stubs/components/zone/__init__.pyi +4 -1
  367. homeassistant-stubs/components/zwave_js/__init__.pyi +2 -2
  368. homeassistant-stubs/components/zwave_js/api.pyi +9 -3
  369. homeassistant-stubs/components/zwave_js/config_flow.pyi +42 -59
  370. homeassistant-stubs/components/zwave_js/helpers.pyi +2 -1
  371. homeassistant-stubs/config_entries.pyi +13 -9
  372. homeassistant-stubs/const.pyi +5 -0
  373. homeassistant-stubs/core.pyi +1 -3
  374. homeassistant-stubs/core_config.pyi +1 -1
  375. homeassistant-stubs/data_entry_flow.pyi +5 -1
  376. homeassistant-stubs/helpers/aiohttp_client.pyi +9 -1
  377. homeassistant-stubs/helpers/area_registry.pyi +5 -1
  378. homeassistant-stubs/helpers/config_entry_oauth2_flow.pyi +1 -1
  379. homeassistant-stubs/helpers/config_validation.pyi +1 -0
  380. homeassistant-stubs/helpers/device_registry.pyi +1 -3
  381. homeassistant-stubs/helpers/entity.pyi +1 -1
  382. homeassistant-stubs/helpers/entity_platform.pyi +3 -3
  383. homeassistant-stubs/helpers/entity_registry.pyi +6 -6
  384. homeassistant-stubs/helpers/event.pyi +2 -0
  385. homeassistant-stubs/helpers/floor_registry.pyi +12 -3
  386. homeassistant-stubs/helpers/llm.pyi +24 -1
  387. homeassistant-stubs/helpers/network.pyi +1 -1
  388. homeassistant-stubs/helpers/script.pyi +2 -1
  389. homeassistant-stubs/helpers/template.pyi +1 -0
  390. homeassistant-stubs/helpers/trigger_template_entity.pyi +17 -2
  391. homeassistant-stubs/loader.pyi +2 -11
  392. homeassistant-stubs/setup.pyi +7 -6
  393. homeassistant-stubs/util/ssl.pyi +2 -0
  394. {homeassistant_stubs-2025.4.3.dist-info → homeassistant_stubs-2025.5.0.dist-info}/METADATA +3 -3
  395. {homeassistant_stubs-2025.4.3.dist-info → homeassistant_stubs-2025.5.0.dist-info}/RECORD +397 -339
  396. homeassistant-stubs/components/oncue/binary_sensor.pyi +0 -16
  397. homeassistant-stubs/components/oncue/const.pyi +0 -6
  398. homeassistant-stubs/components/oncue/entity.pyi +0 -20
  399. homeassistant-stubs/components/oncue/sensor.pyi +0 -21
  400. homeassistant-stubs/components/oncue/types.pyi +0 -5
  401. {homeassistant_stubs-2025.4.3.dist-info → homeassistant_stubs-2025.5.0.dist-info}/WHEEL +0 -0
  402. {homeassistant_stubs-2025.4.3.dist-info → homeassistant_stubs-2025.5.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,4 +1,5 @@
1
1
  from .const import DOMAIN as DOMAIN
2
+ from .ics import InvalidIcsException as InvalidIcsException, parse_calendar as parse_calendar
2
3
  from _typeshed import Incomplete
3
4
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
4
5
  from homeassistant.const import CONF_URL as CONF_URL
@@ -0,0 +1,10 @@
1
+ from _typeshed import Incomplete
2
+ from homeassistant.core import HomeAssistant as HomeAssistant
3
+ from ical.calendar import Calendar as Calendar
4
+
5
+ _LOGGER: Incomplete
6
+
7
+ class InvalidIcsException(Exception): ...
8
+
9
+ def _compat_calendar_from_ics(ics: str) -> Calendar: ...
10
+ async def parse_calendar(hass: HomeAssistant, ics: str) -> Calendar: ...
@@ -1,18 +1,22 @@
1
1
  from . import RenaultConfigEntry as RenaultConfigEntry
2
2
  from .entity import RenaultDataEntity as RenaultDataEntity, RenaultDataEntityDescription as RenaultDataEntityDescription
3
+ from collections.abc import Callable as Callable
3
4
  from dataclasses import dataclass
4
5
  from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription
5
6
  from homeassistant.core import HomeAssistant as HomeAssistant
6
7
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
7
8
  from homeassistant.helpers.typing import StateType as StateType
9
+ from renault_api.kamereon.enums import ChargeState
8
10
  from renault_api.kamereon.models import KamereonVehicleBatteryStatusData
9
11
 
10
12
  PARALLEL_UPDATES: int
13
+ _PLUG_FROM_CHARGE_STATUS: set[ChargeState]
11
14
 
12
15
  @dataclass(frozen=True, kw_only=True)
13
16
  class RenaultBinarySensorEntityDescription(BinarySensorEntityDescription, RenaultDataEntityDescription):
14
- on_key: str
15
- on_value: StateType | list[StateType]
17
+ on_key: str | None = ...
18
+ on_value: StateType | None = ...
19
+ value_lambda: Callable[[RenaultBinarySensor], bool | None] | None = ...
16
20
 
17
21
  async def async_setup_entry(hass: HomeAssistant, config_entry: RenaultConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
18
22
 
@@ -21,4 +25,6 @@ class RenaultBinarySensor(RenaultDataEntity[KamereonVehicleBatteryStatusData], B
21
25
  @property
22
26
  def is_on(self) -> bool | None: ...
23
27
 
28
+ def _plugged_in_value_lambda(self) -> bool | None: ...
29
+
24
30
  BINARY_SENSOR_TYPES: tuple[RenaultBinarySensorEntityDescription, ...]
@@ -2,7 +2,7 @@ from .const import CONF_KAMEREON_ACCOUNT_ID as CONF_KAMEREON_ACCOUNT_ID, CONF_LO
2
2
  from .renault_hub import RenaultHub as RenaultHub
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Mapping
5
- from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
5
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, SOURCE_RECONFIGURE as SOURCE_RECONFIGURE
6
6
  from homeassistant.const import CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME
7
7
  from typing import Any
8
8
 
@@ -18,3 +18,4 @@ class RenaultFlowHandler(ConfigFlow, domain=DOMAIN):
18
18
  async def async_step_kamereon(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
19
19
  async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
20
20
  async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
21
+ async def async_step_reconfigure(self, user_input: Mapping[str, Any]) -> ConfigFlowResult: ...
@@ -4,5 +4,6 @@ from homeassistant.const import Platform as Platform
4
4
  DOMAIN: str
5
5
  CONF_LOCALE: str
6
6
  CONF_KAMEREON_ACCOUNT_ID: str
7
- DEFAULT_SCAN_INTERVAL: int
7
+ MAX_CALLS_PER_HOURS: int
8
+ COOLING_UPDATES_SECONDS: Incomplete
8
9
  PLATFORMS: Incomplete
@@ -1,5 +1,6 @@
1
1
  import logging
2
2
  from . import RenaultConfigEntry as RenaultConfigEntry
3
+ from .renault_hub import RenaultHub as RenaultHub
3
4
  from _typeshed import Incomplete
4
5
  from collections.abc import Awaitable, Callable as Callable
5
6
  from datetime import timedelta
@@ -16,8 +17,10 @@ class RenaultDataUpdateCoordinator(DataUpdateCoordinator[T]):
16
17
  update_method: Callable[[], Awaitable[T]]
17
18
  access_denied: bool
18
19
  not_supported: bool
20
+ assumed_state: bool
19
21
  _has_already_worked: bool
20
- def __init__(self, hass: HomeAssistant, config_entry: RenaultConfigEntry, logger: logging.Logger, *, name: str, update_interval: timedelta, update_method: Callable[[], Awaitable[T]]) -> None: ...
22
+ _hub: Incomplete
23
+ def __init__(self, hass: HomeAssistant, config_entry: RenaultConfigEntry, hub: RenaultHub, logger: logging.Logger, *, name: str, update_interval: timedelta, update_method: Callable[[], Awaitable[T]]) -> None: ...
21
24
  update_interval: Incomplete
22
25
  async def _async_update_data(self) -> T: ...
23
26
  async def async_config_entry_first_refresh(self) -> None: ...
@@ -24,3 +24,5 @@ class RenaultEntity(Entity):
24
24
  class RenaultDataEntity(CoordinatorEntity[RenaultDataUpdateCoordinator[T]], RenaultEntity):
25
25
  def __init__(self, vehicle: RenaultVehicleProxy, description: RenaultDataEntityDescription) -> None: ...
26
26
  def _get_data_attr(self, key: str) -> StateType: ...
27
+ @property
28
+ def assumed_state(self) -> bool: ...
@@ -1,6 +1,6 @@
1
1
  from . import RenaultConfigEntry as RenaultConfigEntry
2
- from .const import CONF_KAMEREON_ACCOUNT_ID as CONF_KAMEREON_ACCOUNT_ID, DEFAULT_SCAN_INTERVAL as DEFAULT_SCAN_INTERVAL
3
- from .renault_vehicle import RenaultVehicleProxy as RenaultVehicleProxy
2
+ from .const import CONF_KAMEREON_ACCOUNT_ID as CONF_KAMEREON_ACCOUNT_ID, COOLING_UPDATES_SECONDS as COOLING_UPDATES_SECONDS, MAX_CALLS_PER_HOURS as MAX_CALLS_PER_HOURS
3
+ from .renault_vehicle import COORDINATORS as COORDINATORS, RenaultVehicleProxy as RenaultVehicleProxy
4
4
  from _typeshed import Incomplete
5
5
  from datetime import timedelta
6
6
  from homeassistant.const import ATTR_IDENTIFIERS as ATTR_IDENTIFIERS, ATTR_MANUFACTURER as ATTR_MANUFACTURER, ATTR_MODEL as ATTR_MODEL, ATTR_MODEL_ID as ATTR_MODEL_ID, ATTR_NAME as ATTR_NAME
@@ -18,7 +18,10 @@ class RenaultHub:
18
18
  _client: Incomplete
19
19
  _account: RenaultAccount | None
20
20
  _vehicles: dict[str, RenaultVehicleProxy]
21
+ _got_throttled_at_time: float | None
21
22
  def __init__(self, hass: HomeAssistant, locale: str) -> None: ...
23
+ def set_throttled(self) -> None: ...
24
+ def is_throttled(self) -> bool: ...
22
25
  async def attempt_login(self, username: str, password: str) -> bool: ...
23
26
  async def async_initialise(self, config_entry: RenaultConfigEntry) -> None: ...
24
27
  async def async_initialise_vehicle(self, vehicle_link: KamereonVehiclesLink, renault_account: RenaultAccount, scan_interval: timedelta, config_entry: RenaultConfigEntry, device_registry: dr.DeviceRegistry) -> None: ...
@@ -1,6 +1,7 @@
1
1
  from . import RenaultConfigEntry as RenaultConfigEntry
2
2
  from .const import DOMAIN as DOMAIN
3
3
  from .coordinator import RenaultDataUpdateCoordinator as RenaultDataUpdateCoordinator
4
+ from .renault_hub import RenaultHub as RenaultHub
4
5
  from _typeshed import Incomplete
5
6
  from collections.abc import Awaitable, Callable as Callable, Coroutine
6
7
  from dataclasses import dataclass
@@ -8,7 +9,7 @@ from datetime import datetime, timedelta
8
9
  from homeassistant.core import HomeAssistant as HomeAssistant
9
10
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
10
11
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
11
- from renault_api.kamereon import models as models
12
+ from renault_api.kamereon import models
12
13
  from renault_api.renault_vehicle import RenaultVehicle as RenaultVehicle
13
14
  from typing import Any, Concatenate
14
15
 
@@ -32,7 +33,9 @@ class RenaultVehicleProxy:
32
33
  coordinators: dict[str, RenaultDataUpdateCoordinator]
33
34
  hvac_target_temperature: int
34
35
  _scan_interval: Incomplete
35
- def __init__(self, hass: HomeAssistant, config_entry: RenaultConfigEntry, vehicle: RenaultVehicle, details: models.KamereonVehicleDetails, scan_interval: timedelta) -> None: ...
36
+ _hub: Incomplete
37
+ def __init__(self, hass: HomeAssistant, config_entry: RenaultConfigEntry, hub: RenaultHub, vehicle: RenaultVehicle, details: models.KamereonVehicleDetails, scan_interval: timedelta) -> None: ...
38
+ def update_scan_interval(self, scan_interval: timedelta) -> None: ...
36
39
  @property
37
40
  def details(self) -> models.KamereonVehicleDetails: ...
38
41
  @property
@@ -24,4 +24,9 @@ SERVICE_CHARGE_SET_SCHEDULES: str
24
24
  SERVICE_AC_SET_SCHEDULES: str
25
25
  SERVICES: Incomplete
26
26
 
27
+ async def ac_cancel(service_call: ServiceCall) -> None: ...
28
+ async def ac_start(service_call: ServiceCall) -> None: ...
29
+ async def charge_set_schedules(service_call: ServiceCall) -> None: ...
30
+ async def ac_set_schedules(service_call: ServiceCall) -> None: ...
31
+ def get_vehicle_proxy(service_call: ServiceCall) -> RenaultVehicleProxy: ...
27
32
  def setup_services(hass: HomeAssistant) -> None: ...
@@ -10,7 +10,7 @@ from homeassistant.core import HomeAssistant as HomeAssistant
10
10
  from homeassistant.exceptions import PlatformNotReady as PlatformNotReady
11
11
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
12
12
  from homeassistant.helpers.template import Template as Template
13
- from homeassistant.helpers.trigger_template_entity import CONF_AVAILABILITY as CONF_AVAILABILITY, CONF_PICTURE as CONF_PICTURE, ManualTriggerEntity as ManualTriggerEntity
13
+ from homeassistant.helpers.trigger_template_entity import CONF_AVAILABILITY as CONF_AVAILABILITY, CONF_PICTURE as CONF_PICTURE, ManualTriggerEntity as ManualTriggerEntity, ValueTemplate as ValueTemplate
14
14
  from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
15
15
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator
16
16
 
@@ -22,7 +22,7 @@ async def async_setup_platform(hass: HomeAssistant, config: ConfigType, async_ad
22
22
 
23
23
  class RestBinarySensor(ManualTriggerEntity, RestEntity, BinarySensorEntity):
24
24
  _previous_data: Incomplete
25
- _value_template: Template | None
25
+ _value_template: ValueTemplate | None
26
26
  def __init__(self, hass: HomeAssistant, coordinator: DataUpdateCoordinator[None] | None, rest: RestData, config: ConfigType, trigger_entity_config: ConfigType) -> None: ...
27
27
  @property
28
28
  def available(self) -> bool: ...
@@ -2,7 +2,7 @@ from .const import CONF_ENCODING as CONF_ENCODING, CONF_JSON_ATTRS as CONF_JSON_
2
2
  from .data import DEFAULT_TIMEOUT as DEFAULT_TIMEOUT
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.const import CONF_AUTHENTICATION as CONF_AUTHENTICATION, CONF_DEVICE_CLASS as CONF_DEVICE_CLASS, CONF_FORCE_UPDATE as CONF_FORCE_UPDATE, CONF_HEADERS as CONF_HEADERS, CONF_METHOD as CONF_METHOD, CONF_PARAMS as CONF_PARAMS, CONF_PASSWORD as CONF_PASSWORD, CONF_PAYLOAD as CONF_PAYLOAD, CONF_RESOURCE as CONF_RESOURCE, CONF_RESOURCE_TEMPLATE as CONF_RESOURCE_TEMPLATE, CONF_SCAN_INTERVAL as CONF_SCAN_INTERVAL, CONF_TIMEOUT as CONF_TIMEOUT, CONF_USERNAME as CONF_USERNAME, CONF_VALUE_TEMPLATE as CONF_VALUE_TEMPLATE, CONF_VERIFY_SSL as CONF_VERIFY_SSL, HTTP_BASIC_AUTHENTICATION as HTTP_BASIC_AUTHENTICATION, HTTP_DIGEST_AUTHENTICATION as HTTP_DIGEST_AUTHENTICATION
5
- from homeassistant.helpers.trigger_template_entity import CONF_AVAILABILITY as CONF_AVAILABILITY, TEMPLATE_ENTITY_BASE_SCHEMA as TEMPLATE_ENTITY_BASE_SCHEMA, TEMPLATE_SENSOR_BASE_SCHEMA as TEMPLATE_SENSOR_BASE_SCHEMA
5
+ from homeassistant.helpers.trigger_template_entity import CONF_AVAILABILITY as CONF_AVAILABILITY, TEMPLATE_ENTITY_BASE_SCHEMA as TEMPLATE_ENTITY_BASE_SCHEMA, TEMPLATE_SENSOR_BASE_SCHEMA as TEMPLATE_SENSOR_BASE_SCHEMA, ValueTemplate as ValueTemplate
6
6
  from homeassistant.util.ssl import SSLCipherList as SSLCipherList
7
7
 
8
8
  RESOURCE_SCHEMA: Incomplete
@@ -12,7 +12,7 @@ from homeassistant.core import HomeAssistant as HomeAssistant
12
12
  from homeassistant.exceptions import PlatformNotReady as PlatformNotReady
13
13
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
14
14
  from homeassistant.helpers.template import Template as Template
15
- from homeassistant.helpers.trigger_template_entity import CONF_AVAILABILITY as CONF_AVAILABILITY, CONF_PICTURE as CONF_PICTURE, ManualTriggerSensorEntity as ManualTriggerSensorEntity
15
+ from homeassistant.helpers.trigger_template_entity import CONF_AVAILABILITY as CONF_AVAILABILITY, CONF_PICTURE as CONF_PICTURE, ManualTriggerSensorEntity as ManualTriggerSensorEntity, ValueTemplate as ValueTemplate
16
16
  from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
17
17
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator
18
18
  from typing import Any
@@ -24,7 +24,7 @@ TRIGGER_ENTITY_OPTIONS: Incomplete
24
24
  async def async_setup_platform(hass: HomeAssistant, config: ConfigType, async_add_entities: AddEntitiesCallback, discovery_info: DiscoveryInfoType | None = None) -> None: ...
25
25
 
26
26
  class RestSensor(ManualTriggerSensorEntity, RestEntity):
27
- _value_template: Incomplete
27
+ _value_template: ValueTemplate | None
28
28
  _json_attrs: Incomplete
29
29
  _json_attrs_path: Incomplete
30
30
  _attr_extra_state_attributes: Incomplete
@@ -7,7 +7,7 @@ from homeassistant.exceptions import PlatformNotReady as PlatformNotReady
7
7
  from homeassistant.helpers import template as template
8
8
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
9
9
  from homeassistant.helpers.httpx_client import get_async_client as get_async_client
10
- from homeassistant.helpers.trigger_template_entity import CONF_AVAILABILITY as CONF_AVAILABILITY, CONF_PICTURE as CONF_PICTURE, ManualTriggerEntity as ManualTriggerEntity, TEMPLATE_ENTITY_BASE_SCHEMA as TEMPLATE_ENTITY_BASE_SCHEMA
10
+ from homeassistant.helpers.trigger_template_entity import CONF_AVAILABILITY as CONF_AVAILABILITY, CONF_PICTURE as CONF_PICTURE, ManualTriggerEntity as ManualTriggerEntity, TEMPLATE_ENTITY_BASE_SCHEMA as TEMPLATE_ENTITY_BASE_SCHEMA, ValueTemplate as ValueTemplate
11
11
  from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
12
12
  from typing import Any
13
13
 
@@ -37,7 +37,7 @@ class RestSwitch(ManualTriggerEntity, SwitchEntity):
37
37
  _auth: Incomplete
38
38
  _body_on: template.Template
39
39
  _body_off: template.Template
40
- _is_on_template: template.Template | None
40
+ _is_on_template: ValueTemplate | None
41
41
  _timeout: int
42
42
  _verify_ssl: bool
43
43
  def __init__(self, hass: HomeAssistant, config: ConfigType, trigger_entity_config: ConfigType) -> None: ...
@@ -47,4 +47,5 @@ class RestSwitch(ManualTriggerEntity, SwitchEntity):
47
47
  async def async_turn_off(self, **kwargs: Any) -> None: ...
48
48
  async def set_device_state(self, body: Any) -> httpx.Response: ...
49
49
  async def async_update(self) -> None: ...
50
- async def get_device_state(self, hass: HomeAssistant) -> httpx.Response: ...
50
+ async def get_response(self, hass: HomeAssistant) -> httpx.Response: ...
51
+ def _async_update(self, text: str) -> None: ...
@@ -16,6 +16,7 @@ SCAN_INTERVAL: Incomplete
16
16
  _LOGGER: Incomplete
17
17
 
18
18
  async def async_setup_entry(hass: HomeAssistant, entry: RoborockConfigEntry) -> bool: ...
19
+ async def async_migrate_entry(hass: HomeAssistant, entry: RoborockConfigEntry) -> bool: ...
19
20
  def build_setup_functions(hass: HomeAssistant, entry: RoborockConfigEntry, device_map: dict[str, HomeDataDevice], user_data: UserData, product_info: dict[str, HomeDataProduct], home_data_rooms: list[HomeDataRoom], api_client: RoborockApiClient) -> list[Coroutine[Any, Any, RoborockDataUpdateCoordinator | RoborockDataUpdateCoordinatorA01 | None]]: ...
20
21
  async def setup_device(hass: HomeAssistant, entry: RoborockConfigEntry, user_data: UserData, device: HomeDataDevice, product_info: HomeDataProduct, home_data_rooms: list[HomeDataRoom], api_client: RoborockApiClient) -> RoborockDataUpdateCoordinator | RoborockDataUpdateCoordinatorA01 | None: ...
21
22
  async def setup_device_v1(hass: HomeAssistant, entry: RoborockConfigEntry, user_data: UserData, device: HomeDataDevice, product_info: HomeDataProduct, home_data_rooms: list[HomeDataRoom], api_client: RoborockApiClient) -> RoborockDataUpdateCoordinator | None: ...
@@ -15,6 +15,7 @@ _LOGGER: Incomplete
15
15
 
16
16
  class RoborockFlowHandler(ConfigFlow, domain=DOMAIN):
17
17
  VERSION: int
18
+ MINOR_VERSION: int
18
19
  _username: str | None
19
20
  _client: RoborockApiClient | None
20
21
  def __init__(self) -> None: ...
@@ -1,10 +1,9 @@
1
1
  from .bridge import SamsungTVBridge as SamsungTVBridge, async_get_device_info as async_get_device_info, mac_from_device_info as mac_from_device_info, model_requires_encryption as model_requires_encryption
2
- from .const import CONF_SESSION_ID as CONF_SESSION_ID, CONF_SSDP_MAIN_TV_AGENT_LOCATION as CONF_SSDP_MAIN_TV_AGENT_LOCATION, CONF_SSDP_RENDERING_CONTROL_LOCATION as CONF_SSDP_RENDERING_CONTROL_LOCATION, ENTRY_RELOAD_COOLDOWN as ENTRY_RELOAD_COOLDOWN, LEGACY_PORT as LEGACY_PORT, LOGGER as LOGGER, METHOD_ENCRYPTED_WEBSOCKET as METHOD_ENCRYPTED_WEBSOCKET, METHOD_LEGACY as METHOD_LEGACY, UPNP_SVC_MAIN_TV_AGENT as UPNP_SVC_MAIN_TV_AGENT, UPNP_SVC_RENDERING_CONTROL as UPNP_SVC_RENDERING_CONTROL
2
+ from .const import CONF_SESSION_ID as CONF_SESSION_ID, CONF_SSDP_MAIN_TV_AGENT_LOCATION as CONF_SSDP_MAIN_TV_AGENT_LOCATION, CONF_SSDP_RENDERING_CONTROL_LOCATION as CONF_SSDP_RENDERING_CONTROL_LOCATION, DOMAIN as DOMAIN, ENTRY_RELOAD_COOLDOWN as ENTRY_RELOAD_COOLDOWN, LEGACY_PORT as LEGACY_PORT, LOGGER as LOGGER, METHOD_ENCRYPTED_WEBSOCKET as METHOD_ENCRYPTED_WEBSOCKET, METHOD_LEGACY as METHOD_LEGACY, UPNP_SVC_MAIN_TV_AGENT as UPNP_SVC_MAIN_TV_AGENT, UPNP_SVC_RENDERING_CONTROL as UPNP_SVC_RENDERING_CONTROL
3
3
  from .coordinator import SamsungTVConfigEntry as SamsungTVConfigEntry, SamsungTVDataUpdateCoordinator as SamsungTVDataUpdateCoordinator
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Coroutine
6
6
  from homeassistant.components import ssdp as ssdp
7
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
7
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_MAC as CONF_MAC, CONF_METHOD as CONF_METHOD, CONF_MODEL as CONF_MODEL, CONF_PORT as CONF_PORT, CONF_TOKEN as CONF_TOKEN, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP, Platform as Platform
9
8
  from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, callback as callback
10
9
  from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
@@ -21,14 +20,14 @@ class DebouncedEntryReloader:
21
20
  entry: Incomplete
22
21
  token: Incomplete
23
22
  _debounced_reload: Debouncer[Coroutine[Any, Any, None]]
24
- def __init__(self, hass: HomeAssistant, entry: ConfigEntry) -> None: ...
25
- async def async_call(self, hass: HomeAssistant, entry: ConfigEntry) -> None: ...
23
+ def __init__(self, hass: HomeAssistant, entry: SamsungTVConfigEntry) -> None: ...
24
+ async def async_call(self, hass: HomeAssistant, entry: SamsungTVConfigEntry) -> None: ...
26
25
  @callback
27
26
  def async_shutdown(self) -> None: ...
28
27
  async def _async_reload_entry(self) -> None: ...
29
28
 
30
- async def _async_update_ssdp_locations(hass: HomeAssistant, entry: ConfigEntry) -> None: ...
29
+ async def _async_update_ssdp_locations(hass: HomeAssistant, entry: SamsungTVConfigEntry) -> None: ...
31
30
  async def async_setup_entry(hass: HomeAssistant, entry: SamsungTVConfigEntry) -> bool: ...
32
- async def _async_create_bridge_with_updated_data(hass: HomeAssistant, entry: ConfigEntry) -> SamsungTVBridge: ...
31
+ async def _async_create_bridge_with_updated_data(hass: HomeAssistant, entry: SamsungTVConfigEntry) -> SamsungTVBridge: ...
33
32
  async def async_unload_entry(hass: HomeAssistant, entry: SamsungTVConfigEntry) -> bool: ...
34
- async def async_migrate_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: ...
33
+ async def async_migrate_entry(hass: HomeAssistant, config_entry: SamsungTVConfigEntry) -> bool: ...
@@ -3,7 +3,7 @@ from .const import CONF_MANUFACTURER as CONF_MANUFACTURER, CONF_SESSION_ID as CO
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Mapping
5
5
  from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigEntryState as ConfigEntryState, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
6
- from homeassistant.const import CONF_HOST as CONF_HOST, CONF_MAC as CONF_MAC, CONF_METHOD as CONF_METHOD, CONF_MODEL as CONF_MODEL, CONF_NAME as CONF_NAME, CONF_PORT as CONF_PORT, CONF_TOKEN as CONF_TOKEN
6
+ from homeassistant.const import CONF_HOST as CONF_HOST, CONF_MAC as CONF_MAC, CONF_METHOD as CONF_METHOD, CONF_MODEL as CONF_MODEL, CONF_NAME as CONF_NAME, CONF_PIN as CONF_PIN, CONF_PORT as CONF_PORT, CONF_TOKEN as CONF_TOKEN
7
7
  from homeassistant.core import callback as callback
8
8
  from homeassistant.data_entry_flow import AbortFlow as AbortFlow
9
9
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
@@ -8,6 +8,7 @@ from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
8
8
  from homeassistant.helpers.entity import Entity as Entity
9
9
  from homeassistant.helpers.trigger import PluggableAction as PluggableAction
10
10
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
11
+ from typing import Any
11
12
 
12
13
  class SamsungTVEntity(CoordinatorEntity[SamsungTVDataUpdateCoordinator], Entity):
13
14
  _attr_has_entity_name: bool
@@ -22,5 +23,5 @@ class SamsungTVEntity(CoordinatorEntity[SamsungTVDataUpdateCoordinator], Entity)
22
23
  def available(self) -> bool: ...
23
24
  async def async_added_to_hass(self) -> None: ...
24
25
  def _wake_on_lan(self) -> None: ...
25
- async def _async_turn_off(self) -> None: ...
26
- async def _async_turn_on(self) -> None: ...
26
+ async def async_turn_off(self, **kwargs: Any) -> None: ...
27
+ async def async_turn_on(self, **kwargs: Any) -> None: ...
@@ -18,6 +18,7 @@ from typing import Any
18
18
  SOURCES: Incomplete
19
19
  SUPPORT_SAMSUNGTV: Incomplete
20
20
  APP_LIST_DELAY: int
21
+ PARALLEL_UPDATES: int
21
22
 
22
23
  async def async_setup_entry(hass: HomeAssistant, entry: SamsungTVConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
23
24
 
@@ -54,7 +55,6 @@ class SamsungTVDevice(SamsungTVEntity, MediaPlayerEntity):
54
55
  def _on_upnp_event(self, service: UpnpService, state_variables: Sequence[UpnpStateVariable]) -> None: ...
55
56
  async def _async_launch_app(self, app_id: str) -> None: ...
56
57
  async def _async_send_keys(self, keys: list[str]) -> None: ...
57
- async def async_turn_off(self) -> None: ...
58
58
  async def async_set_volume_level(self, volume: float) -> None: ...
59
59
  async def async_volume_up(self) -> None: ...
60
60
  async def async_volume_down(self) -> None: ...
@@ -65,5 +65,4 @@ class SamsungTVDevice(SamsungTVEntity, MediaPlayerEntity):
65
65
  async def async_media_next_track(self) -> None: ...
66
66
  async def async_media_previous_track(self) -> None: ...
67
67
  async def async_play_media(self, media_type: MediaType | str, media_id: str, **kwargs: Any) -> None: ...
68
- async def async_turn_on(self) -> None: ...
69
68
  async def async_select_source(self, source: str) -> None: ...
@@ -8,6 +8,8 @@ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callb
8
8
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
9
9
  from typing import Any
10
10
 
11
+ PARALLEL_UPDATES: int
12
+
11
13
  async def async_setup_entry(hass: HomeAssistant, entry: SamsungTVConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
12
14
 
13
15
  class SamsungTVRemote(SamsungTVEntity, RemoteEntity):
@@ -15,6 +17,4 @@ class SamsungTVRemote(SamsungTVEntity, RemoteEntity):
15
17
  _attr_is_on: Incomplete
16
18
  @callback
17
19
  def _handle_coordinator_update(self) -> None: ...
18
- async def async_turn_off(self, **kwargs: Any) -> None: ...
19
20
  async def async_send_command(self, command: Iterable[str], **kwargs: Any) -> None: ...
20
- async def async_turn_on(self, **kwargs: Any) -> None: ...
@@ -7,7 +7,7 @@ from homeassistant.const import CONF_ATTRIBUTE as CONF_ATTRIBUTE, CONF_SCAN_INTE
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant
8
8
  from homeassistant.helpers import discovery as discovery
9
9
  from homeassistant.helpers.device_registry import DeviceEntry as DeviceEntry
10
- from homeassistant.helpers.trigger_template_entity import CONF_AVAILABILITY as CONF_AVAILABILITY, TEMPLATE_SENSOR_BASE_SCHEMA as TEMPLATE_SENSOR_BASE_SCHEMA
10
+ from homeassistant.helpers.trigger_template_entity import CONF_AVAILABILITY as CONF_AVAILABILITY, TEMPLATE_SENSOR_BASE_SCHEMA as TEMPLATE_SENSOR_BASE_SCHEMA, ValueTemplate as ValueTemplate
11
11
  from homeassistant.helpers.typing import ConfigType as ConfigType
12
12
 
13
13
  type ScrapeConfigEntry = ConfigEntry[ScrapeCoordinator]
@@ -9,8 +9,8 @@ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callb
9
9
  from homeassistant.exceptions import PlatformNotReady as PlatformNotReady
10
10
  from homeassistant.helpers.device_registry import DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
11
11
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback, AddEntitiesCallback as AddEntitiesCallback
12
- from homeassistant.helpers.template import Template as Template
13
- from homeassistant.helpers.trigger_template_entity import CONF_AVAILABILITY as CONF_AVAILABILITY, CONF_PICTURE as CONF_PICTURE, ManualTriggerEntity as ManualTriggerEntity, ManualTriggerSensorEntity as ManualTriggerSensorEntity, TEMPLATE_SENSOR_BASE_SCHEMA as TEMPLATE_SENSOR_BASE_SCHEMA
12
+ from homeassistant.helpers.template import Template as Template, _SENTINEL as _SENTINEL
13
+ from homeassistant.helpers.trigger_template_entity import CONF_AVAILABILITY as CONF_AVAILABILITY, CONF_PICTURE as CONF_PICTURE, ManualTriggerEntity as ManualTriggerEntity, ManualTriggerSensorEntity as ManualTriggerSensorEntity, TEMPLATE_SENSOR_BASE_SCHEMA as TEMPLATE_SENSOR_BASE_SCHEMA, ValueTemplate as ValueTemplate
14
14
  from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
15
15
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
16
16
  from typing import Any
@@ -27,14 +27,13 @@ class ScrapeSensor(CoordinatorEntity[ScrapeCoordinator], ManualTriggerSensorEnti
27
27
  _index: Incomplete
28
28
  _value_template: Incomplete
29
29
  _attr_native_value: Incomplete
30
- _available: bool
31
30
  _attr_name: Incomplete
32
31
  _attr_has_entity_name: bool
33
32
  _attr_device_info: Incomplete
34
- def __init__(self, hass: HomeAssistant, coordinator: ScrapeCoordinator, trigger_entity_config: ConfigType, select: str, attr: str | None, index: int, value_template: Template | None, yaml: bool) -> None: ...
33
+ def __init__(self, hass: HomeAssistant, coordinator: ScrapeCoordinator, trigger_entity_config: ConfigType, select: str, attr: str | None, index: int, value_template: ValueTemplate | None, yaml: bool) -> None: ...
35
34
  def _extract_value(self) -> Any: ...
36
35
  async def async_added_to_hass(self) -> None: ...
37
- _attr_available: Incomplete
36
+ _attr_available: bool
38
37
  def _async_update_from_rest_data(self) -> None: ...
39
38
  @property
40
39
  def available(self) -> bool: ...
@@ -1,5 +1,6 @@
1
1
  from .const import BLOCK_EXPECTED_SLEEP_PERIOD as BLOCK_EXPECTED_SLEEP_PERIOD, BLOCK_WRONG_SLEEP_PERIOD as BLOCK_WRONG_SLEEP_PERIOD, CONF_COAP_PORT as CONF_COAP_PORT, CONF_SLEEP_PERIOD as CONF_SLEEP_PERIOD, DOMAIN as DOMAIN, FIRMWARE_UNSUPPORTED_ISSUE_ID as FIRMWARE_UNSUPPORTED_ISSUE_ID, LOGGER as LOGGER, MODELS_WITH_WRONG_SLEEP_PERIOD as MODELS_WITH_WRONG_SLEEP_PERIOD, PUSH_UPDATE_ISSUE_ID as PUSH_UPDATE_ISSUE_ID
2
2
  from .coordinator import ShellyBlockCoordinator as ShellyBlockCoordinator, ShellyConfigEntry as ShellyConfigEntry, ShellyEntryData as ShellyEntryData, ShellyRestCoordinator as ShellyRestCoordinator, ShellyRpcCoordinator as ShellyRpcCoordinator, ShellyRpcPollingCoordinator as ShellyRpcPollingCoordinator
3
+ from .repairs import async_manage_ble_scanner_firmware_unsupported_issue as async_manage_ble_scanner_firmware_unsupported_issue
3
4
  from .utils import async_create_issue_unsupported_firmware as async_create_issue_unsupported_firmware, get_coap_context as get_coap_context, get_device_entry_gen as get_device_entry_gen, get_http_port as get_http_port, get_rpc_scripts_event_types as get_rpc_scripts_event_types, get_ws_context as get_ws_context
4
5
  from _typeshed import Incomplete
5
6
  from homeassistant.components.bluetooth import async_remove_scanner as async_remove_scanner
@@ -1,6 +1,6 @@
1
1
  from .const import BLU_TRV_TEMPERATURE_SETTINGS as BLU_TRV_TEMPERATURE_SETTINGS, DOMAIN as DOMAIN, LOGGER as LOGGER, NOT_CALIBRATED_ISSUE_ID as NOT_CALIBRATED_ISSUE_ID, RPC_THERMOSTAT_SETTINGS as RPC_THERMOSTAT_SETTINGS, SHTRV_01_TEMPERATURE_SETTINGS as SHTRV_01_TEMPERATURE_SETTINGS
2
2
  from .coordinator import ShellyBlockCoordinator as ShellyBlockCoordinator, ShellyConfigEntry as ShellyConfigEntry, ShellyRpcCoordinator as ShellyRpcCoordinator
3
- from .entity import ShellyRpcEntity as ShellyRpcEntity
3
+ from .entity import ShellyRpcEntity as ShellyRpcEntity, rpc_call as rpc_call
4
4
  from .utils import async_remove_shelly_entity as async_remove_shelly_entity, get_device_entry_gen as get_device_entry_gen, get_rpc_key_ids as get_rpc_key_ids, is_rpc_thermostat_internal_actuator as is_rpc_thermostat_internal_actuator
5
5
  from _typeshed import Incomplete
6
6
  from aioshelly.block_device import Block as Block
@@ -123,4 +123,5 @@ class RpcBluTrvClimate(ShellyRpcEntity, ClimateEntity):
123
123
  def current_temperature(self) -> float | None: ...
124
124
  @property
125
125
  def hvac_action(self) -> HVACAction: ...
126
+ @rpc_call
126
127
  async def async_set_temperature(self, **kwargs: Any) -> None: ...
@@ -61,10 +61,12 @@ class BLEScannerMode(StrEnum):
61
61
  ACTIVE = 'active'
62
62
  PASSIVE = 'passive'
63
63
 
64
+ BLE_SCANNER_MIN_FIRMWARE: str
64
65
  MAX_PUSH_UPDATE_FAILURES: int
65
66
  PUSH_UPDATE_ISSUE_ID: str
66
67
  NOT_CALIBRATED_ISSUE_ID: str
67
68
  FIRMWARE_UNSUPPORTED_ISSUE_ID: str
69
+ BLE_SCANNER_FIRMWARE_UNSUPPORTED_ISSUE_ID: str
68
70
  GAS_VALVE_OPEN_STATES: Incomplete
69
71
  OTA_BEGIN: str
70
72
  OTA_ERROR: str
@@ -26,6 +26,7 @@ class ShellyEntryData:
26
26
  rpc_poll: ShellyRpcPollingCoordinator | None = ...
27
27
  rpc_script_events: dict[int, list[str]] | None = ...
28
28
  rpc_supports_scripts: bool | None = ...
29
+ rpc_zigbee_enabled: bool | None = ...
29
30
  type ShellyConfigEntry = ConfigEntry[ShellyEntryData]
30
31
 
31
32
  class ShellyCoordinatorBase[_DeviceT: BlockDevice | RpcDevice](DataUpdateCoordinator[None]):
@@ -3,7 +3,7 @@ from .coordinator import ShellyBlockCoordinator as ShellyBlockCoordinator, Shell
3
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
4
4
  from _typeshed import Incomplete
5
5
  from aioshelly.block_device import Block as Block
6
- from collections.abc import Callable as Callable, Mapping
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
@@ -13,7 +13,7 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEnti
13
13
  from homeassistant.helpers.entity_registry import RegistryEntry as RegistryEntry
14
14
  from homeassistant.helpers.typing import StateType as StateType
15
15
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
16
- from typing import Any
16
+ from typing import Any, Concatenate
17
17
 
18
18
  @callback
19
19
  def async_setup_entry_attribute_entities(hass: HomeAssistant, config_entry: ShellyConfigEntry, async_add_entities: AddEntitiesCallback, sensors: Mapping[tuple[str, str], BlockEntityDescription], sensor_class: Callable) -> None: ...
@@ -57,6 +57,8 @@ class RestEntityDescription(EntityDescription):
57
57
  name: str = ...
58
58
  value: Callable[[dict, Any], Any] | None = ...
59
59
 
60
+ def rpc_call[_T: ShellyRpcEntity, **_P](func: Callable[Concatenate[_T, _P], Awaitable[None]]) -> Callable[Concatenate[_T, _P], Coroutine[Any, Any, None]]: ...
61
+
60
62
  class ShellyBlockEntity(CoordinatorEntity[ShellyBlockCoordinator]):
61
63
  block: Incomplete
62
64
  _attr_name: Incomplete
@@ -81,6 +83,7 @@ class ShellyRpcEntity(CoordinatorEntity[ShellyRpcCoordinator]):
81
83
  async def async_added_to_hass(self) -> None: ...
82
84
  @callback
83
85
  def _update_callback(self) -> None: ...
86
+ @rpc_call
84
87
  async def call_rpc(self, method: str, params: Any, timeout: float | None = None) -> Any: ...
85
88
 
86
89
  class ShellyBlockAttributeEntity(ShellyBlockEntity, Entity):
@@ -1,6 +1,6 @@
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
- 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
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
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
5
5
  from _typeshed import Incomplete
6
6
  from aioshelly.block_device import Block as Block
@@ -27,10 +27,11 @@ class RpcNumberDescription(RpcEntityDescription, NumberEntityDescription):
27
27
  step_fn: Callable[[dict], float] | None = ...
28
28
  mode_fn: Callable[[dict], NumberMode] | None = ...
29
29
  method: str
30
- method_params_fn: Callable[[int, float], dict]
31
30
 
32
31
  class RpcNumber(ShellyRpcAttributeEntity, NumberEntity):
33
32
  entity_description: RpcNumberDescription
33
+ attribute_value: float | None
34
+ _id: int | None
34
35
  _attr_native_max_value: Incomplete
35
36
  _attr_native_min_value: Incomplete
36
37
  _attr_native_step: Incomplete
@@ -38,12 +39,12 @@ class RpcNumber(ShellyRpcAttributeEntity, NumberEntity):
38
39
  def __init__(self, coordinator: ShellyRpcCoordinator, key: str, attribute: str, description: RpcNumberDescription) -> None: ...
39
40
  @property
40
41
  def native_value(self) -> float | None: ...
42
+ @rpc_call
41
43
  async def async_set_native_value(self, value: float) -> None: ...
42
44
 
43
45
  class RpcBluTrvNumber(RpcNumber):
44
46
  _attr_device_info: Incomplete
45
47
  def __init__(self, coordinator: ShellyRpcCoordinator, key: str, attribute: str, description: RpcNumberDescription) -> None: ...
46
- async def async_set_native_value(self, value: float) -> None: ...
47
48
 
48
49
  class RpcBluTrvExtTempNumber(RpcBluTrvNumber):
49
50
  _reported_value: float | None
@@ -0,0 +1,19 @@
1
+ from .const import BLEScannerMode as BLEScannerMode, BLE_SCANNER_FIRMWARE_UNSUPPORTED_ISSUE_ID as BLE_SCANNER_FIRMWARE_UNSUPPORTED_ISSUE_ID, BLE_SCANNER_MIN_FIRMWARE as BLE_SCANNER_MIN_FIRMWARE, CONF_BLE_SCANNER_MODE as CONF_BLE_SCANNER_MODE, DOMAIN as DOMAIN
2
+ from .coordinator import ShellyConfigEntry as ShellyConfigEntry
3
+ from _typeshed import Incomplete
4
+ from aioshelly.rpc_device import RpcDevice as RpcDevice
5
+ from homeassistant import data_entry_flow as data_entry_flow
6
+ from homeassistant.components.repairs import RepairsFlow as RepairsFlow
7
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
8
+
9
+ @callback
10
+ def async_manage_ble_scanner_firmware_unsupported_issue(hass: HomeAssistant, entry: ShellyConfigEntry) -> None: ...
11
+
12
+ class BleScannerFirmwareUpdateFlow(RepairsFlow):
13
+ _device: Incomplete
14
+ def __init__(self, device: RpcDevice) -> None: ...
15
+ async def async_step_init(self, user_input: dict[str, str] | None = None) -> data_entry_flow.FlowResult: ...
16
+ async def async_step_confirm(self, user_input: dict[str, str] | None = None) -> data_entry_flow.FlowResult: ...
17
+ async def async_step_update_firmware(self, user_input: dict[str, str] | None = None) -> data_entry_flow.FlowResult: ...
18
+
19
+ async def async_create_fix_flow(hass: HomeAssistant, issue_id: str, data: dict[str, str] | None) -> RepairsFlow: ...
@@ -1,5 +1,5 @@
1
1
  from .coordinator import ShellyConfigEntry as ShellyConfigEntry, ShellyRpcCoordinator as ShellyRpcCoordinator
2
- from .entity import RpcEntityDescription as RpcEntityDescription, ShellyRpcAttributeEntity as ShellyRpcAttributeEntity, async_setup_entry_rpc as async_setup_entry_rpc
2
+ from .entity import RpcEntityDescription as RpcEntityDescription, ShellyRpcAttributeEntity as ShellyRpcAttributeEntity, async_setup_entry_rpc as async_setup_entry_rpc, rpc_call as rpc_call
3
3
  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
4
  from _typeshed import Incomplete
5
5
  from dataclasses import dataclass
@@ -17,8 +17,10 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: ShellyConfigEntry
17
17
 
18
18
  class RpcSelect(ShellyRpcAttributeEntity, SelectEntity):
19
19
  entity_description: RpcSelectDescription
20
+ _id: int
20
21
  _attr_options: Incomplete
21
22
  def __init__(self, coordinator: ShellyRpcCoordinator, key: str, attribute: str, description: RpcSelectDescription) -> None: ...
22
23
  @property
23
24
  def current_option(self) -> str | None: ...
25
+ @rpc_call
24
26
  async def async_select_option(self, option: str) -> None: ...
@@ -1,5 +1,5 @@
1
1
  from .coordinator import ShellyConfigEntry as ShellyConfigEntry
2
- from .entity import RpcEntityDescription as RpcEntityDescription, ShellyRpcAttributeEntity as ShellyRpcAttributeEntity, async_setup_entry_rpc as async_setup_entry_rpc
2
+ from .entity import RpcEntityDescription as RpcEntityDescription, ShellyRpcAttributeEntity as ShellyRpcAttributeEntity, async_setup_entry_rpc as async_setup_entry_rpc, rpc_call as rpc_call
3
3
  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
4
  from _typeshed import Incomplete
5
5
  from dataclasses import dataclass
@@ -17,6 +17,9 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: ShellyConfigEntry
17
17
 
18
18
  class RpcText(ShellyRpcAttributeEntity, TextEntity):
19
19
  entity_description: RpcTextDescription
20
+ attribute_value: str | None
21
+ _id: int
20
22
  @property
21
23
  def native_value(self) -> str | None: ...
24
+ @rpc_call
22
25
  async def async_set_value(self, value: str) -> None: ...
@@ -3,7 +3,7 @@ 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
5
5
  from aioshelly.rpc_device import RpcDevice, WsServer
6
- from collections.abc import Iterable
6
+ from collections.abc import Iterable, Mapping
7
7
  from datetime import datetime
8
8
  from homeassistant.components import network as network
9
9
  from homeassistant.components.http import HomeAssistantView as HomeAssistantView
@@ -14,7 +14,6 @@ from homeassistant.helpers import singleton as singleton
14
14
  from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC
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
- from types import MappingProxyType
18
17
  from typing import Any
19
18
 
20
19
  @callback
@@ -63,7 +62,7 @@ def get_release_url(gen: int, model: str, beta: bool) -> str | None: ...
63
62
  @callback
64
63
  def async_create_issue_unsupported_firmware(hass: HomeAssistant, entry: ConfigEntry) -> None: ...
65
64
  def is_rpc_wifi_stations_disabled(config: dict[str, Any], _status: dict[str, Any], key: str) -> bool: ...
66
- def get_http_port(data: MappingProxyType[str, Any]) -> int: ...
65
+ def get_http_port(data: Mapping[str, Any]) -> int: ...
67
66
  def get_host(host: str) -> str: ...
68
67
  @callback
69
68
  def async_remove_shelly_rpc_entities(hass: HomeAssistant, domain: str, mac: str, keys: list[str]) -> None: ...
@@ -11,6 +11,7 @@ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
11
11
  from pysmlight import Sensors as Sensors
12
12
  from pysmlight.sse import MessageEvent as MessageEvent
13
13
 
14
+ PARALLEL_UPDATES: int
14
15
  SCAN_INTERVAL = SCAN_INTERNET_INTERVAL
15
16
 
16
17
  @dataclass(frozen=True, kw_only=True)
@@ -10,6 +10,7 @@ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callb
10
10
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
11
11
  from pysmlight.web import CmdWrapper as CmdWrapper
12
12
 
13
+ PARALLEL_UPDATES: int
13
14
  _LOGGER: Incomplete
14
15
 
15
16
  @dataclass(frozen=True, kw_only=True)