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,5 +1,5 @@
1
1
  import socket
2
- from .const import AUDIO_CODEC_COPY as AUDIO_CODEC_COPY, AUDIO_CODEC_OPUS as AUDIO_CODEC_OPUS, CONF_AUDIO_CODEC as CONF_AUDIO_CODEC, CONF_AUDIO_MAP as CONF_AUDIO_MAP, CONF_AUDIO_PACKET_SIZE as CONF_AUDIO_PACKET_SIZE, CONF_FEATURE as CONF_FEATURE, CONF_FEATURE_LIST as CONF_FEATURE_LIST, CONF_LINKED_BATTERY_CHARGING_SENSOR as CONF_LINKED_BATTERY_CHARGING_SENSOR, CONF_LINKED_BATTERY_SENSOR as CONF_LINKED_BATTERY_SENSOR, CONF_LINKED_DOORBELL_SENSOR as CONF_LINKED_DOORBELL_SENSOR, CONF_LINKED_HUMIDITY_SENSOR as CONF_LINKED_HUMIDITY_SENSOR, CONF_LINKED_MOTION_SENSOR as CONF_LINKED_MOTION_SENSOR, CONF_LINKED_OBSTRUCTION_SENSOR as CONF_LINKED_OBSTRUCTION_SENSOR, CONF_LOW_BATTERY_THRESHOLD as CONF_LOW_BATTERY_THRESHOLD, CONF_MAX_FPS as CONF_MAX_FPS, CONF_MAX_HEIGHT as CONF_MAX_HEIGHT, CONF_MAX_WIDTH as CONF_MAX_WIDTH, CONF_STREAM_ADDRESS as CONF_STREAM_ADDRESS, CONF_STREAM_COUNT as CONF_STREAM_COUNT, CONF_STREAM_SOURCE as CONF_STREAM_SOURCE, CONF_SUPPORT_AUDIO as CONF_SUPPORT_AUDIO, CONF_THRESHOLD_CO as CONF_THRESHOLD_CO, CONF_THRESHOLD_CO2 as CONF_THRESHOLD_CO2, CONF_VIDEO_CODEC as CONF_VIDEO_CODEC, CONF_VIDEO_MAP as CONF_VIDEO_MAP, CONF_VIDEO_PACKET_SIZE as CONF_VIDEO_PACKET_SIZE, CONF_VIDEO_PROFILE_NAMES as CONF_VIDEO_PROFILE_NAMES, DEFAULT_AUDIO_CODEC as DEFAULT_AUDIO_CODEC, DEFAULT_AUDIO_MAP as DEFAULT_AUDIO_MAP, DEFAULT_AUDIO_PACKET_SIZE as DEFAULT_AUDIO_PACKET_SIZE, DEFAULT_LOW_BATTERY_THRESHOLD as DEFAULT_LOW_BATTERY_THRESHOLD, DEFAULT_MAX_FPS as DEFAULT_MAX_FPS, DEFAULT_MAX_HEIGHT as DEFAULT_MAX_HEIGHT, DEFAULT_MAX_WIDTH as DEFAULT_MAX_WIDTH, DEFAULT_STREAM_COUNT as DEFAULT_STREAM_COUNT, DEFAULT_SUPPORT_AUDIO as DEFAULT_SUPPORT_AUDIO, DEFAULT_VIDEO_CODEC as DEFAULT_VIDEO_CODEC, DEFAULT_VIDEO_MAP as DEFAULT_VIDEO_MAP, DEFAULT_VIDEO_PACKET_SIZE as DEFAULT_VIDEO_PACKET_SIZE, DEFAULT_VIDEO_PROFILE_NAMES as DEFAULT_VIDEO_PROFILE_NAMES, DOMAIN as DOMAIN, FEATURE_ON_OFF as FEATURE_ON_OFF, FEATURE_PLAY_PAUSE as FEATURE_PLAY_PAUSE, FEATURE_PLAY_STOP as FEATURE_PLAY_STOP, FEATURE_TOGGLE_MUTE as FEATURE_TOGGLE_MUTE, MAX_NAME_LENGTH as MAX_NAME_LENGTH, TYPE_FAUCET as TYPE_FAUCET, TYPE_OUTLET as TYPE_OUTLET, TYPE_SHOWER as TYPE_SHOWER, TYPE_SPRINKLER as TYPE_SPRINKLER, TYPE_SWITCH as TYPE_SWITCH, TYPE_VALVE as TYPE_VALVE, VIDEO_CODEC_COPY as VIDEO_CODEC_COPY, VIDEO_CODEC_H264_OMX as VIDEO_CODEC_H264_OMX, VIDEO_CODEC_H264_V4L2M2M as VIDEO_CODEC_H264_V4L2M2M, VIDEO_CODEC_LIBX264 as VIDEO_CODEC_LIBX264
2
+ from .const import AUDIO_CODEC_COPY as AUDIO_CODEC_COPY, AUDIO_CODEC_OPUS as AUDIO_CODEC_OPUS, CONF_AUDIO_CODEC as CONF_AUDIO_CODEC, CONF_AUDIO_MAP as CONF_AUDIO_MAP, CONF_AUDIO_PACKET_SIZE as CONF_AUDIO_PACKET_SIZE, CONF_FEATURE as CONF_FEATURE, CONF_FEATURE_LIST as CONF_FEATURE_LIST, CONF_LINKED_BATTERY_CHARGING_SENSOR as CONF_LINKED_BATTERY_CHARGING_SENSOR, CONF_LINKED_BATTERY_SENSOR as CONF_LINKED_BATTERY_SENSOR, CONF_LINKED_DOORBELL_SENSOR as CONF_LINKED_DOORBELL_SENSOR, CONF_LINKED_FILTER_CHANGE_INDICATION as CONF_LINKED_FILTER_CHANGE_INDICATION, CONF_LINKED_FILTER_LIFE_LEVEL as CONF_LINKED_FILTER_LIFE_LEVEL, CONF_LINKED_HUMIDITY_SENSOR as CONF_LINKED_HUMIDITY_SENSOR, CONF_LINKED_MOTION_SENSOR as CONF_LINKED_MOTION_SENSOR, CONF_LINKED_OBSTRUCTION_SENSOR as CONF_LINKED_OBSTRUCTION_SENSOR, CONF_LINKED_PM25_SENSOR as CONF_LINKED_PM25_SENSOR, CONF_LINKED_TEMPERATURE_SENSOR as CONF_LINKED_TEMPERATURE_SENSOR, CONF_LOW_BATTERY_THRESHOLD as CONF_LOW_BATTERY_THRESHOLD, CONF_MAX_FPS as CONF_MAX_FPS, CONF_MAX_HEIGHT as CONF_MAX_HEIGHT, CONF_MAX_WIDTH as CONF_MAX_WIDTH, CONF_STREAM_ADDRESS as CONF_STREAM_ADDRESS, CONF_STREAM_COUNT as CONF_STREAM_COUNT, CONF_STREAM_SOURCE as CONF_STREAM_SOURCE, CONF_SUPPORT_AUDIO as CONF_SUPPORT_AUDIO, CONF_THRESHOLD_CO as CONF_THRESHOLD_CO, CONF_THRESHOLD_CO2 as CONF_THRESHOLD_CO2, CONF_VIDEO_CODEC as CONF_VIDEO_CODEC, CONF_VIDEO_MAP as CONF_VIDEO_MAP, CONF_VIDEO_PACKET_SIZE as CONF_VIDEO_PACKET_SIZE, CONF_VIDEO_PROFILE_NAMES as CONF_VIDEO_PROFILE_NAMES, DEFAULT_AUDIO_CODEC as DEFAULT_AUDIO_CODEC, DEFAULT_AUDIO_MAP as DEFAULT_AUDIO_MAP, DEFAULT_AUDIO_PACKET_SIZE as DEFAULT_AUDIO_PACKET_SIZE, DEFAULT_LOW_BATTERY_THRESHOLD as DEFAULT_LOW_BATTERY_THRESHOLD, DEFAULT_MAX_FPS as DEFAULT_MAX_FPS, DEFAULT_MAX_HEIGHT as DEFAULT_MAX_HEIGHT, DEFAULT_MAX_WIDTH as DEFAULT_MAX_WIDTH, DEFAULT_STREAM_COUNT as DEFAULT_STREAM_COUNT, DEFAULT_SUPPORT_AUDIO as DEFAULT_SUPPORT_AUDIO, DEFAULT_VIDEO_CODEC as DEFAULT_VIDEO_CODEC, DEFAULT_VIDEO_MAP as DEFAULT_VIDEO_MAP, DEFAULT_VIDEO_PACKET_SIZE as DEFAULT_VIDEO_PACKET_SIZE, DEFAULT_VIDEO_PROFILE_NAMES as DEFAULT_VIDEO_PROFILE_NAMES, DOMAIN as DOMAIN, FEATURE_ON_OFF as FEATURE_ON_OFF, FEATURE_PLAY_PAUSE as FEATURE_PLAY_PAUSE, FEATURE_PLAY_STOP as FEATURE_PLAY_STOP, FEATURE_TOGGLE_MUTE as FEATURE_TOGGLE_MUTE, MAX_NAME_LENGTH as MAX_NAME_LENGTH, TYPE_AIR_PURIFIER as TYPE_AIR_PURIFIER, TYPE_FAN as TYPE_FAN, TYPE_FAUCET as TYPE_FAUCET, TYPE_OUTLET as TYPE_OUTLET, TYPE_SHOWER as TYPE_SHOWER, TYPE_SPRINKLER as TYPE_SPRINKLER, TYPE_SWITCH as TYPE_SWITCH, TYPE_VALVE as TYPE_VALVE, VIDEO_CODEC_COPY as VIDEO_CODEC_COPY, VIDEO_CODEC_H264_OMX as VIDEO_CODEC_H264_OMX, VIDEO_CODEC_H264_V4L2M2M as VIDEO_CODEC_H264_V4L2M2M, VIDEO_CODEC_LIBX264 as VIDEO_CODEC_LIBX264
3
3
  from .models import HomeKitConfigEntry as HomeKitConfigEntry
4
4
  from _typeshed import Incomplete
5
5
  from homeassistant.components import binary_sensor as binary_sensor, media_player as media_player, persistent_notification as persistent_notification, sensor as sensor
@@ -24,6 +24,7 @@ BASIC_INFO_SCHEMA: Incomplete
24
24
  FEATURE_SCHEMA: Incomplete
25
25
  CAMERA_SCHEMA: Incomplete
26
26
  HUMIDIFIER_SCHEMA: Incomplete
27
+ FAN_SCHEMA: Incomplete
27
28
  COVER_SCHEMA: Incomplete
28
29
  CODE_SCHEMA: Incomplete
29
30
  LOCK_SCHEMA: Incomplete
@@ -1,6 +1,12 @@
1
1
  from aiohttp.web import Application as Application, Request as Request, StreamResponse as StreamResponse
2
2
  from collections.abc import Callable as Callable
3
3
  from homeassistant.core import callback as callback
4
+ from multidict import istr
5
+ from typing import Final
6
+
7
+ REFERRER_POLICY: Final[istr]
8
+ X_CONTENT_TYPE_OPTIONS: Final[istr]
9
+ X_FRAME_OPTIONS: Final[istr]
4
10
 
5
11
  @callback
6
12
  def setup_headers(app: Application, use_x_frame_options: bool) -> None: ...
@@ -1,7 +1,7 @@
1
1
  from .const import DOMAIN as DOMAIN, KEY_MONITORING_CHECK_NOTIFICATIONS as KEY_MONITORING_CHECK_NOTIFICATIONS, KEY_MONITORING_STATUS as KEY_MONITORING_STATUS, KEY_WLAN_WIFI_FEATURE_SWITCH as KEY_WLAN_WIFI_FEATURE_SWITCH
2
2
  from .entity import HuaweiLteBaseEntityWithDevice as HuaweiLteBaseEntityWithDevice
3
3
  from _typeshed import Incomplete
4
- from homeassistant.components.binary_sensor import BinarySensorEntity as BinarySensorEntity
4
+ from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity
5
5
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant
7
7
  from homeassistant.helpers.entity import Entity as Entity
@@ -29,6 +29,7 @@ CONNECTION_STATE_ATTRIBUTES: Incomplete
29
29
  class HuaweiLteMobileConnectionBinarySensor(HuaweiLteBaseBinarySensor):
30
30
  _attr_translation_key: str
31
31
  _attr_entity_registry_enabled_default: bool
32
+ _attr_device_class: Incomplete
32
33
  key = KEY_MONITORING_STATUS
33
34
  item: str
34
35
  @property
@@ -39,6 +40,7 @@ class HuaweiLteMobileConnectionBinarySensor(HuaweiLteBaseBinarySensor):
39
40
  def extra_state_attributes(self) -> dict[str, Any] | None: ...
40
41
 
41
42
  class HuaweiLteBaseWifiStatusBinarySensor(HuaweiLteBaseBinarySensor):
43
+ _attr_device_class: Incomplete
42
44
  @property
43
45
  def is_on(self) -> bool: ...
44
46
  @property
@@ -5,7 +5,7 @@ from collections.abc import Mapping
5
5
  from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
6
6
  from homeassistant.const import CONF_MAC as CONF_MAC, CONF_NAME as CONF_NAME, CONF_PASSWORD as CONF_PASSWORD, CONF_RECIPIENT as CONF_RECIPIENT, CONF_URL as CONF_URL, CONF_USERNAME as CONF_USERNAME, CONF_VERIFY_SSL as CONF_VERIFY_SSL
7
7
  from homeassistant.core import callback as callback
8
- from homeassistant.helpers.service_info.ssdp import ATTR_UPNP_FRIENDLY_NAME as ATTR_UPNP_FRIENDLY_NAME, ATTR_UPNP_MANUFACTURER as ATTR_UPNP_MANUFACTURER, ATTR_UPNP_PRESENTATION_URL as ATTR_UPNP_PRESENTATION_URL, ATTR_UPNP_SERIAL as ATTR_UPNP_SERIAL, ATTR_UPNP_UDN as ATTR_UPNP_UDN, SsdpServiceInfo as SsdpServiceInfo
8
+ from homeassistant.helpers.service_info.ssdp import ATTR_UPNP_FRIENDLY_NAME as ATTR_UPNP_FRIENDLY_NAME, ATTR_UPNP_MANUFACTURER as ATTR_UPNP_MANUFACTURER, ATTR_UPNP_MODEL_NAME as ATTR_UPNP_MODEL_NAME, ATTR_UPNP_PRESENTATION_URL as ATTR_UPNP_PRESENTATION_URL, ATTR_UPNP_SERIAL as ATTR_UPNP_SERIAL, ATTR_UPNP_UDN as ATTR_UPNP_UDN, SsdpServiceInfo as SsdpServiceInfo
9
9
  from huawei_lte_api.Connection import Connection
10
10
  from huawei_lte_api.Session import GetResponseType as GetResponseType
11
11
  from typing import Any
@@ -1,7 +1,6 @@
1
1
  from . import Router as Router
2
2
  from .const import UPDATE_SIGNAL as UPDATE_SIGNAL
3
3
  from _typeshed import Incomplete
4
- from collections.abc import Callable as Callable
5
4
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
6
5
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
7
6
  from homeassistant.helpers.entity import Entity as Entity
@@ -13,7 +12,6 @@ class HuaweiLteBaseEntity(Entity):
13
12
  _attr_has_entity_name: bool
14
13
  _attr_should_poll: bool
15
14
  router: Incomplete
16
- _unsub_handlers: list[Callable]
17
15
  def __init__(self, router: Router) -> None: ...
18
16
  @property
19
17
  def _device_unique_id(self) -> str: ...
@@ -24,7 +22,6 @@ class HuaweiLteBaseEntity(Entity):
24
22
  async def async_update(self) -> None: ...
25
23
  async def async_added_to_hass(self) -> None: ...
26
24
  async def _async_maybe_update(self, config_entry_unique_id: str) -> None: ...
27
- async def async_will_remove_from_hass(self) -> None: ...
28
25
 
29
26
  class HuaweiLteBaseEntityWithDevice(HuaweiLteBaseEntity):
30
27
  @property
@@ -26,6 +26,7 @@ class AutomowerDataUpdateCoordinator(DataUpdateCoordinator[MowerDictionary]):
26
26
  _zones_last_update: dict[str, set[str]]
27
27
  _areas_last_update: dict[str, set[int]]
28
28
  def __init__(self, hass: HomeAssistant, config_entry: AutomowerConfigEntry, api: AutomowerSession) -> None: ...
29
+ def _async_add_remove_devices_and_entities(self, data: MowerDictionary) -> None: ...
29
30
  async def _async_update_data(self) -> MowerDictionary: ...
30
31
  @callback
31
32
  def callback(self, ws_data: MowerDictionary) -> None: ...
@@ -16,8 +16,9 @@ from typing import Any
16
16
  _LOGGER: Incomplete
17
17
  PARALLEL_UPDATES: int
18
18
  ATTR_WORK_AREA_ID_ASSIGNMENT: str
19
- ERROR_KEY_LIST: Incomplete
19
+ ERROR_KEYS: Incomplete
20
20
  ERROR_STATES: Incomplete
21
+ ERROR_KEY_LIST: Incomplete
21
22
  RESTRICTED_REASONS: list
22
23
  STATE_NO_WORK_AREA_ACTIVE: str
23
24
 
@@ -1,6 +1,7 @@
1
- from .const import CONF_INSTANCE_CLIENTS as CONF_INSTANCE_CLIENTS, CONF_ON_UNLOAD as CONF_ON_UNLOAD, CONF_ROOT_CLIENT as CONF_ROOT_CLIENT, DEFAULT_NAME as DEFAULT_NAME, DOMAIN as DOMAIN, HYPERION_RELEASES_URL as HYPERION_RELEASES_URL, HYPERION_VERSION_WARN_CUTOFF as HYPERION_VERSION_WARN_CUTOFF, SIGNAL_INSTANCE_ADD as SIGNAL_INSTANCE_ADD, SIGNAL_INSTANCE_REMOVE as SIGNAL_INSTANCE_REMOVE
1
+ from .const import DEFAULT_NAME as DEFAULT_NAME, DOMAIN as DOMAIN, HYPERION_RELEASES_URL as HYPERION_RELEASES_URL, HYPERION_VERSION_WARN_CUTOFF as HYPERION_VERSION_WARN_CUTOFF, SIGNAL_INSTANCE_ADD as SIGNAL_INSTANCE_ADD, SIGNAL_INSTANCE_REMOVE as SIGNAL_INSTANCE_REMOVE
2
2
  from _typeshed import Incomplete
3
3
  from collections.abc import Callable as Callable
4
+ from dataclasses import dataclass
4
5
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
6
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PORT as CONF_PORT, CONF_TOKEN as CONF_TOKEN, Platform as Platform
6
7
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
@@ -11,6 +12,12 @@ from typing import Any
11
12
 
12
13
  PLATFORMS: Incomplete
13
14
  _LOGGER: Incomplete
15
+ type HyperionConfigEntry = ConfigEntry[HyperionData]
16
+
17
+ @dataclass
18
+ class HyperionData:
19
+ root_client: client.HyperionClient
20
+ instance_clients: dict[int, client.HyperionClient]
14
21
 
15
22
  def get_hyperion_unique_id(server_id: str, instance: int, name: str) -> str: ...
16
23
  def get_hyperion_device_id(server_id: str, instance: int) -> str: ...
@@ -18,7 +25,7 @@ def split_hyperion_unique_id(unique_id: str) -> tuple[str, int, str] | None: ...
18
25
  def create_hyperion_client(*args: Any, **kwargs: Any) -> client.HyperionClient: ...
19
26
  async def async_create_connect_hyperion_client(*args: Any, **kwargs: Any) -> client.HyperionClient | None: ...
20
27
  @callback
21
- def listen_for_instance_updates(hass: HomeAssistant, config_entry: ConfigEntry, add_func: Callable, remove_func: Callable) -> None: ...
22
- async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
23
- async def _async_entry_updated(hass: HomeAssistant, config_entry: ConfigEntry) -> None: ...
24
- async def async_unload_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: ...
28
+ def listen_for_instance_updates(hass: HomeAssistant, entry: HyperionConfigEntry, add_func: Callable[[int, str], None], remove_func: Callable[[int], None]) -> None: ...
29
+ async def async_setup_entry(hass: HomeAssistant, entry: HyperionConfigEntry) -> bool: ...
30
+ async def _async_entry_updated(hass: HomeAssistant, entry: HyperionConfigEntry) -> None: ...
31
+ async def async_unload_entry(hass: HomeAssistant, entry: HyperionConfigEntry) -> bool: ...
@@ -1,11 +1,10 @@
1
- from . import get_hyperion_device_id as get_hyperion_device_id, get_hyperion_unique_id as get_hyperion_unique_id, listen_for_instance_updates as listen_for_instance_updates
2
- from .const import CONF_INSTANCE_CLIENTS as CONF_INSTANCE_CLIENTS, DOMAIN as DOMAIN, HYPERION_MANUFACTURER_NAME as HYPERION_MANUFACTURER_NAME, HYPERION_MODEL_NAME as HYPERION_MODEL_NAME, SIGNAL_ENTITY_REMOVE as SIGNAL_ENTITY_REMOVE, TYPE_HYPERION_CAMERA as TYPE_HYPERION_CAMERA
1
+ from . import HyperionConfigEntry as HyperionConfigEntry, get_hyperion_device_id as get_hyperion_device_id, get_hyperion_unique_id as get_hyperion_unique_id, listen_for_instance_updates as listen_for_instance_updates
2
+ from .const import DOMAIN as DOMAIN, HYPERION_MANUFACTURER_NAME as HYPERION_MANUFACTURER_NAME, HYPERION_MODEL_NAME as HYPERION_MODEL_NAME, SIGNAL_ENTITY_REMOVE as SIGNAL_ENTITY_REMOVE, TYPE_HYPERION_CAMERA as TYPE_HYPERION_CAMERA
3
3
  from _typeshed import Incomplete
4
4
  from aiohttp import web as web
5
5
  from collections.abc import AsyncGenerator
6
6
  from contextlib import asynccontextmanager
7
7
  from homeassistant.components.camera import Camera as Camera, DEFAULT_CONTENT_TYPE as DEFAULT_CONTENT_TYPE, async_get_still_stream as async_get_still_stream
8
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
9
8
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
10
9
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
11
10
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect, async_dispatcher_send as async_dispatcher_send
@@ -15,7 +14,7 @@ from typing import Any
15
14
 
16
15
  IMAGE_STREAM_JPG_SENTINEL: str
17
16
 
18
- async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
17
+ async def async_setup_entry(hass: HomeAssistant, entry: HyperionConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
19
18
 
20
19
  class HyperionCamera(Camera):
21
20
  _attr_has_entity_name: bool
@@ -3,10 +3,7 @@ from _typeshed import Incomplete
3
3
  CONF_AUTH_ID: str
4
4
  CONF_CREATE_TOKEN: str
5
5
  CONF_INSTANCE: str
6
- CONF_INSTANCE_CLIENTS: str
7
- CONF_ON_UNLOAD: str
8
6
  CONF_PRIORITY: str
9
- CONF_ROOT_CLIENT: str
10
7
  CONF_EFFECT_HIDE_LIST: str
11
8
  CONF_EFFECT_SHOW_LIST: str
12
9
  DEFAULT_NAME: str
@@ -1,15 +1,13 @@
1
- from . import get_hyperion_device_id as get_hyperion_device_id, get_hyperion_unique_id as get_hyperion_unique_id, listen_for_instance_updates as listen_for_instance_updates
2
- from .const import CONF_EFFECT_HIDE_LIST as CONF_EFFECT_HIDE_LIST, CONF_INSTANCE_CLIENTS as CONF_INSTANCE_CLIENTS, CONF_PRIORITY as CONF_PRIORITY, DEFAULT_ORIGIN as DEFAULT_ORIGIN, DEFAULT_PRIORITY as DEFAULT_PRIORITY, DOMAIN as DOMAIN, HYPERION_MANUFACTURER_NAME as HYPERION_MANUFACTURER_NAME, HYPERION_MODEL_NAME as HYPERION_MODEL_NAME, SIGNAL_ENTITY_REMOVE as SIGNAL_ENTITY_REMOVE, TYPE_HYPERION_LIGHT as TYPE_HYPERION_LIGHT
1
+ from . import HyperionConfigEntry as HyperionConfigEntry, get_hyperion_device_id as get_hyperion_device_id, get_hyperion_unique_id as get_hyperion_unique_id, listen_for_instance_updates as listen_for_instance_updates
2
+ from .const import CONF_EFFECT_HIDE_LIST as CONF_EFFECT_HIDE_LIST, CONF_PRIORITY as CONF_PRIORITY, DEFAULT_ORIGIN as DEFAULT_ORIGIN, DEFAULT_PRIORITY as DEFAULT_PRIORITY, DOMAIN as DOMAIN, HYPERION_MANUFACTURER_NAME as HYPERION_MANUFACTURER_NAME, HYPERION_MODEL_NAME as HYPERION_MODEL_NAME, SIGNAL_ENTITY_REMOVE as SIGNAL_ENTITY_REMOVE, TYPE_HYPERION_LIGHT as TYPE_HYPERION_LIGHT
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Callable as Callable, Mapping, Sequence
5
5
  from homeassistant.components.light import ATTR_BRIGHTNESS as ATTR_BRIGHTNESS, ATTR_EFFECT as ATTR_EFFECT, ATTR_HS_COLOR as ATTR_HS_COLOR, ColorMode as ColorMode, LightEntity as LightEntity, LightEntityFeature as LightEntityFeature
6
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
6
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
8
7
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
9
8
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect, async_dispatcher_send as async_dispatcher_send
10
9
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
11
10
  from hyperion import client as client
12
- from types import MappingProxyType
13
11
  from typing import Any
14
12
 
15
13
  _LOGGER: Incomplete
@@ -27,7 +25,7 @@ DEFAULT_EFFECT_LIST: list[str]
27
25
  ICON_LIGHTBULB: str
28
26
  ICON_EFFECT: str
29
27
 
30
- async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
28
+ async def async_setup_entry(hass: HomeAssistant, entry: HyperionConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
31
29
 
32
30
  class HyperionLight(LightEntity):
33
31
  _attr_has_entity_name: bool
@@ -48,7 +46,7 @@ class HyperionLight(LightEntity):
48
46
  _effect_list: list[str]
49
47
  _client_callbacks: Mapping[str, Callable[[dict[str, Any]], None]]
50
48
  _attr_device_info: Incomplete
51
- def __init__(self, server_id: str, instance_num: int, instance_name: str, options: MappingProxyType[str, Any], hyperion_client: client.HyperionClient) -> None: ...
49
+ def __init__(self, server_id: str, instance_num: int, instance_name: str, options: Mapping[str, Any], hyperion_client: client.HyperionClient) -> None: ...
52
50
  def _compute_unique_id(self, server_id: str, instance_num: int) -> str: ...
53
51
  @property
54
52
  def brightness(self) -> int: ...
@@ -1,8 +1,7 @@
1
- from . import get_hyperion_device_id as get_hyperion_device_id, get_hyperion_unique_id as get_hyperion_unique_id, listen_for_instance_updates as listen_for_instance_updates
2
- from .const import CONF_INSTANCE_CLIENTS as CONF_INSTANCE_CLIENTS, DOMAIN as DOMAIN, HYPERION_MANUFACTURER_NAME as HYPERION_MANUFACTURER_NAME, HYPERION_MODEL_NAME as HYPERION_MODEL_NAME, SIGNAL_ENTITY_REMOVE as SIGNAL_ENTITY_REMOVE, TYPE_HYPERION_SENSOR_BASE as TYPE_HYPERION_SENSOR_BASE, TYPE_HYPERION_SENSOR_VISIBLE_PRIORITY as TYPE_HYPERION_SENSOR_VISIBLE_PRIORITY
1
+ from . import HyperionConfigEntry as HyperionConfigEntry, get_hyperion_device_id as get_hyperion_device_id, get_hyperion_unique_id as get_hyperion_unique_id, listen_for_instance_updates as listen_for_instance_updates
2
+ from .const import DOMAIN as DOMAIN, HYPERION_MANUFACTURER_NAME as HYPERION_MANUFACTURER_NAME, HYPERION_MODEL_NAME as HYPERION_MODEL_NAME, SIGNAL_ENTITY_REMOVE as SIGNAL_ENTITY_REMOVE, TYPE_HYPERION_SENSOR_BASE as TYPE_HYPERION_SENSOR_BASE, TYPE_HYPERION_SENSOR_VISIBLE_PRIORITY as TYPE_HYPERION_SENSOR_VISIBLE_PRIORITY
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.components.sensor import SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription
5
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
5
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
7
6
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
8
7
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect, async_dispatcher_send as async_dispatcher_send
@@ -14,7 +13,7 @@ SENSORS: Incomplete
14
13
  PRIORITY_SENSOR_DESCRIPTION: Incomplete
15
14
 
16
15
  def _sensor_unique_id(server_id: str, instance_num: int, suffix: str) -> str: ...
17
- async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
16
+ async def async_setup_entry(hass: HomeAssistant, entry: HyperionConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
18
17
 
19
18
  class HyperionSensor(SensorEntity):
20
19
  _attr_has_entity_name: bool
@@ -1,8 +1,7 @@
1
- from . import get_hyperion_device_id as get_hyperion_device_id, get_hyperion_unique_id as get_hyperion_unique_id, listen_for_instance_updates as listen_for_instance_updates
2
- from .const import CONF_INSTANCE_CLIENTS as CONF_INSTANCE_CLIENTS, DOMAIN as DOMAIN, HYPERION_MANUFACTURER_NAME as HYPERION_MANUFACTURER_NAME, HYPERION_MODEL_NAME as HYPERION_MODEL_NAME, SIGNAL_ENTITY_REMOVE as SIGNAL_ENTITY_REMOVE, TYPE_HYPERION_COMPONENT_SWITCH_BASE as TYPE_HYPERION_COMPONENT_SWITCH_BASE
1
+ from . import HyperionConfigEntry as HyperionConfigEntry, get_hyperion_device_id as get_hyperion_device_id, get_hyperion_unique_id as get_hyperion_unique_id, listen_for_instance_updates as listen_for_instance_updates
2
+ from .const import DOMAIN as DOMAIN, HYPERION_MANUFACTURER_NAME as HYPERION_MANUFACTURER_NAME, HYPERION_MODEL_NAME as HYPERION_MODEL_NAME, SIGNAL_ENTITY_REMOVE as SIGNAL_ENTITY_REMOVE, TYPE_HYPERION_COMPONENT_SWITCH_BASE as TYPE_HYPERION_COMPONENT_SWITCH_BASE
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.components.switch import SwitchEntity as SwitchEntity
5
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
5
  from homeassistant.const import EntityCategory as EntityCategory
7
6
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
8
7
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
@@ -16,7 +15,7 @@ COMPONENT_SWITCHES: Incomplete
16
15
 
17
16
  def _component_to_unique_id(server_id: str, component: str, instance_num: int) -> str: ...
18
17
  def _component_to_translation_key(component: str) -> str: ...
19
- async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
18
+ async def async_setup_entry(hass: HomeAssistant, entry: HyperionConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
20
19
 
21
20
  class HyperionComponentSwitch(SwitchEntity):
22
21
  _attr_entity_category: Incomplete
@@ -3,7 +3,7 @@ from .coordinator import InComfortConfigEntry as InComfortConfigEntry, InComfort
3
3
  from .entity import IncomfortEntity as IncomfortEntity
4
4
  from _typeshed import Incomplete
5
5
  from homeassistant.components.climate import ClimateEntity as ClimateEntity, ClimateEntityFeature as ClimateEntityFeature, HVACAction as HVACAction, HVACMode as HVACMode
6
- from homeassistant.const import ATTR_TEMPERATURE as ATTR_TEMPERATURE, EntityCategory as EntityCategory, UnitOfTemperature as UnitOfTemperature
6
+ from homeassistant.const import ATTR_TEMPERATURE as ATTR_TEMPERATURE, UnitOfTemperature as UnitOfTemperature
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant
8
8
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
9
9
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
@@ -15,7 +15,6 @@ PARALLEL_UPDATES: int
15
15
  async def async_setup_entry(hass: HomeAssistant, entry: InComfortConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
16
16
 
17
17
  class InComfortClimate(IncomfortEntity, ClimateEntity):
18
- _attr_entity_category: Incomplete
19
18
  _attr_min_temp: float
20
19
  _attr_max_temp: float
21
20
  _attr_name: Incomplete
@@ -1,10 +1,8 @@
1
1
  from .const import DOMAIN as DOMAIN
2
2
  from .coordinator import IronOSConfigEntry as IronOSConfigEntry, IronOSCoordinators as IronOSCoordinators, IronOSFirmwareUpdateCoordinator as IronOSFirmwareUpdateCoordinator, IronOSLiveDataCoordinator as IronOSLiveDataCoordinator, IronOSSettingsCoordinator as IronOSSettingsCoordinator
3
3
  from _typeshed import Incomplete
4
- from homeassistant.components import bluetooth as bluetooth
5
- from homeassistant.const import CONF_NAME as CONF_NAME, Platform as Platform
4
+ from homeassistant.const import Platform as Platform
6
5
  from homeassistant.core import HomeAssistant as HomeAssistant
7
- from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
8
6
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
9
7
  from homeassistant.helpers.typing import ConfigType as ConfigType
10
8
  from homeassistant.util.hass_dict import HassKey as HassKey
@@ -1,10 +1,13 @@
1
1
  from .const import DISCOVERY_SVC_UUID as DISCOVERY_SVC_UUID, DOMAIN as DOMAIN
2
+ from _typeshed import Incomplete
2
3
  from habluetooth import BluetoothServiceInfoBleak as BluetoothServiceInfoBleak
3
4
  from homeassistant.components.bluetooth.api import async_discovered_service_info as async_discovered_service_info
4
5
  from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
5
6
  from homeassistant.const import CONF_ADDRESS as CONF_ADDRESS
6
7
  from typing import Any
7
8
 
9
+ _LOGGER: Incomplete
10
+
8
11
  class IronOSConfigFlow(ConfigFlow, domain=DOMAIN):
9
12
  _discovery_info: BluetoothServiceInfoBleak | None
10
13
  _discovered_devices: dict[str, str]
@@ -7,8 +7,9 @@ from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant
8
8
  from homeassistant.exceptions import ServiceValidationError as ServiceValidationError
9
9
  from homeassistant.helpers.debounce import Debouncer as Debouncer
10
+ from homeassistant.helpers.device_registry import CONNECTION_BLUETOOTH as CONNECTION_BLUETOOTH
10
11
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
11
- from pynecil import CharSetting as CharSetting, DeviceInfoResponse as DeviceInfoResponse, IronOSUpdate as IronOSUpdate, LatestRelease, LiveDataResponse, Pynecil as Pynecil, SettingsDataResponse
12
+ from pynecil import CharSetting as CharSetting, DeviceInfoResponse, IronOSUpdate as IronOSUpdate, LatestRelease, LiveDataResponse, Pynecil as Pynecil, SettingsDataResponse
12
13
 
13
14
  _LOGGER: Incomplete
14
15
  SCAN_INTERVAL: Incomplete
@@ -31,11 +32,12 @@ class IronOSBaseCoordinator[_DataT](DataUpdateCoordinator[_DataT]):
31
32
  async def _async_setup(self) -> None: ...
32
33
 
33
34
  class IronOSLiveDataCoordinator(IronOSBaseCoordinator[LiveDataResponse]):
34
- def __init__(self, hass: HomeAssistant, config_entry: IronOSConfigEntry, device: Pynecil) -> None: ...
35
35
  device_info: Incomplete
36
+ def __init__(self, hass: HomeAssistant, config_entry: IronOSConfigEntry, device: Pynecil) -> None: ...
36
37
  async def _async_update_data(self) -> LiveDataResponse: ...
37
38
  @property
38
39
  def has_tip(self) -> bool: ...
40
+ async def _update_device_info(self) -> None: ...
39
41
 
40
42
  class IronOSSettingsCoordinator(IronOSBaseCoordinator[SettingsDataResponse]):
41
43
  def __init__(self, hass: HomeAssistant, config_entry: IronOSConfigEntry, device: Pynecil) -> None: ...
@@ -11,3 +11,5 @@ class IronOSBaseEntity(CoordinatorEntity[IronOSLiveDataCoordinator]):
11
11
  _attr_unique_id: Incomplete
12
12
  _attr_device_info: Incomplete
13
13
  def __init__(self, coordinator: IronOSLiveDataCoordinator, entity_description: EntityDescription) -> None: ...
14
+ @property
15
+ def available(self) -> bool: ...
@@ -2,16 +2,17 @@ from . import IRON_OS_KEY as IRON_OS_KEY, IronOSConfigEntry as IronOSConfigEntry
2
2
  from .coordinator import IronOSFirmwareUpdateCoordinator as IronOSFirmwareUpdateCoordinator
3
3
  from .entity import IronOSBaseEntity as IronOSBaseEntity
4
4
  from _typeshed import Incomplete
5
- from homeassistant.components.update import UpdateDeviceClass as UpdateDeviceClass, UpdateEntity as UpdateEntity, UpdateEntityDescription as UpdateEntityDescription, UpdateEntityFeature as UpdateEntityFeature
5
+ from homeassistant.components.update import ATTR_INSTALLED_VERSION as ATTR_INSTALLED_VERSION, UpdateDeviceClass as UpdateDeviceClass, UpdateEntity as UpdateEntity, UpdateEntityDescription as UpdateEntityDescription, UpdateEntityFeature as UpdateEntityFeature
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant
7
7
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
8
+ from homeassistant.helpers.restore_state import RestoreEntity as RestoreEntity
8
9
 
9
10
  PARALLEL_UPDATES: int
10
11
  UPDATE_DESCRIPTION: Incomplete
11
12
 
12
13
  async def async_setup_entry(hass: HomeAssistant, entry: IronOSConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
13
14
 
14
- class IronOSUpdate(IronOSBaseEntity, UpdateEntity):
15
+ class IronOSUpdate(IronOSBaseEntity, UpdateEntity, RestoreEntity):
15
16
  _attr_supported_features: Incomplete
16
17
  firmware_update: Incomplete
17
18
  def __init__(self, coordinator: IronOSLiveDataCoordinator, firmware_update: IronOSFirmwareUpdateCoordinator, entity_description: UpdateEntityDescription) -> None: ...
@@ -24,6 +25,7 @@ class IronOSUpdate(IronOSBaseEntity, UpdateEntity):
24
25
  @property
25
26
  def latest_version(self) -> str | None: ...
26
27
  async def async_release_notes(self) -> str | None: ...
28
+ _attr_installed_version: Incomplete
27
29
  async def async_added_to_hass(self) -> None: ...
28
30
  @property
29
31
  def available(self) -> bool: ...
@@ -45,6 +45,7 @@ class ISYNodeEntity(ISYEntity):
45
45
  class ISYProgramEntity(ISYEntity):
46
46
  _actions: Program
47
47
  _status: Program
48
+ _node: Program
48
49
  _attr_name: Incomplete
49
50
  def __init__(self, name: str, status: Program, actions: Program = None) -> None: ...
50
51
  @property
@@ -1,4 +1,5 @@
1
1
  from .const import DOMAIN as DOMAIN, _LOGGER as _LOGGER
2
+ from .models import IsyData as IsyData
2
3
  from _typeshed import Incomplete
3
4
  from homeassistant.const import CONF_ADDRESS as CONF_ADDRESS, CONF_COMMAND as CONF_COMMAND, CONF_NAME as CONF_NAME, CONF_UNIT_OF_MEASUREMENT as CONF_UNIT_OF_MEASUREMENT
4
5
  from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
@@ -37,7 +37,7 @@ class ISYSwitchProgramEntity(ISYProgramEntity, SwitchEntity):
37
37
 
38
38
  class ISYEnableSwitchEntity(ISYAuxControlEntity, SwitchEntity):
39
39
  _attr_name: Incomplete
40
- _change_handler: EventListener
40
+ _change_handler: EventListener | None
41
41
  def __init__(self, node: Node, control: str, unique_id: str, description: ISYSwitchEntityDescription, device_info: DeviceInfo | None) -> None: ...
42
42
  async def async_added_to_hass(self) -> None: ...
43
43
  @callback
@@ -4,10 +4,9 @@ from _typeshed import Incomplete
4
4
  from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
5
5
  from homeassistant.const import CONF_ELEVATION as CONF_ELEVATION, CONF_LANGUAGE as CONF_LANGUAGE, CONF_LATITUDE as CONF_LATITUDE, CONF_LOCATION as CONF_LOCATION, CONF_LONGITUDE as CONF_LONGITUDE, CONF_TIME_ZONE as CONF_TIME_ZONE
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
7
- from homeassistant.helpers.selector import BooleanSelector as BooleanSelector, LocationSelector as LocationSelector, SelectOptionDict as SelectOptionDict, SelectSelector as SelectSelector, SelectSelectorConfig as SelectSelectorConfig
7
+ from homeassistant.helpers.selector import BooleanSelector as BooleanSelector, LanguageSelector as LanguageSelector, LanguageSelectorConfig as LanguageSelectorConfig, LocationSelector as LocationSelector, SelectSelector as SelectSelector, SelectSelectorConfig as SelectSelectorConfig
8
8
  from typing import Any
9
9
 
10
- LANGUAGE: Incomplete
11
10
  OPTIONS_SCHEMA: Incomplete
12
11
  _LOGGER: Incomplete
13
12
 
@@ -1,4 +1,5 @@
1
1
  DOMAIN: str
2
+ ATTR_AFTER_SUNSET: str
2
3
  ATTR_DATE: str
3
4
  ATTR_NUSACH: str
4
5
  CONF_DIASPORA: str
@@ -22,7 +22,6 @@ class JewishCalendarEntity(Entity):
22
22
  _attr_unique_id: Incomplete
23
23
  _attr_device_info: Incomplete
24
24
  _location: Incomplete
25
- _language: Incomplete
26
25
  _candle_lighting_offset: Incomplete
27
26
  _havdalah_offset: Incomplete
28
27
  _diaspora: Incomplete
@@ -19,6 +19,7 @@ class JewishCalendarSensor(JewishCalendarEntity, SensorEntity):
19
19
  _attr_entity_category: Incomplete
20
20
  _attrs: dict[str, str]
21
21
  def __init__(self, config_entry: JewishCalendarConfigEntry, description: SensorEntityDescription) -> None: ...
22
+ async def async_added_to_hass(self) -> None: ...
22
23
  _attr_native_value: Incomplete
23
24
  async def async_update(self) -> None: ...
24
25
  def make_zmanim(self, date: dt.date) -> Zmanim: ...
@@ -1,10 +1,11 @@
1
- from .const import ATTR_DATE as ATTR_DATE, ATTR_NUSACH as ATTR_NUSACH, DOMAIN as DOMAIN, SERVICE_COUNT_OMER as SERVICE_COUNT_OMER
1
+ from .const import ATTR_AFTER_SUNSET as ATTR_AFTER_SUNSET, ATTR_DATE as ATTR_DATE, ATTR_NUSACH as ATTR_NUSACH, DOMAIN as DOMAIN, SERVICE_COUNT_OMER as SERVICE_COUNT_OMER
2
2
  from _typeshed import Incomplete
3
- from homeassistant.const import CONF_LANGUAGE as CONF_LANGUAGE
3
+ from homeassistant.const import CONF_LANGUAGE as CONF_LANGUAGE, SUN_EVENT_SUNSET as SUN_EVENT_SUNSET
4
4
  from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse
5
5
  from homeassistant.helpers.selector import LanguageSelector as LanguageSelector, LanguageSelectorConfig as LanguageSelectorConfig
6
+ from homeassistant.helpers.sun import get_astral_event_date as get_astral_event_date
6
7
 
7
- SUPPORTED_LANGUAGES: Incomplete
8
+ _LOGGER: Incomplete
8
9
  OMER_SCHEMA: Incomplete
9
10
 
10
11
  def async_setup_services(hass: HomeAssistant) -> None: ...
@@ -0,0 +1,14 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from _typeshed import Incomplete
3
+ from homeassistant.components.bluetooth import async_ble_device_from_address as async_ble_device_from_address
4
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, SOURCE_INTEGRATION_DISCOVERY as SOURCE_INTEGRATION_DISCOVERY
5
+ from homeassistant.const import CONF_ADDRESS as CONF_ADDRESS, Platform as Platform
6
+ from homeassistant.core import HomeAssistant as HomeAssistant
7
+ from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
8
+
9
+ PLATFORMS: Incomplete
10
+ _LOGGER: Incomplete
11
+
12
+ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
13
+ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
14
+ async def async_migrate_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: ...
@@ -0,0 +1,17 @@
1
+ from .const import DOMAIN as DOMAIN, EXPECTED_SERVICE_UUID as EXPECTED_SERVICE_UUID
2
+ from _typeshed import Incomplete
3
+ from homeassistant.components.bluetooth import BluetoothServiceInfoBleak as BluetoothServiceInfoBleak, async_discovered_service_info as async_discovered_service_info, async_last_service_info as async_last_service_info
4
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
5
+ from homeassistant.const import CONF_ADDRESS as CONF_ADDRESS
6
+ from typing import Any
7
+
8
+ _LOGGER: Incomplete
9
+
10
+ class KulerskyConfigFlow(ConfigFlow, domain=DOMAIN):
11
+ VERSION: int
12
+ _discovery_info: BluetoothServiceInfoBleak | None
13
+ _discovered_devices: dict[str, BluetoothServiceInfoBleak]
14
+ def __init__(self) -> None: ...
15
+ async def async_step_integration_discovery(self, discovery_info: dict[str, str]) -> ConfigFlowResult: ...
16
+ async def async_step_bluetooth(self, discovery_info: BluetoothServiceInfoBleak) -> ConfigFlowResult: ...
17
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -0,0 +1,4 @@
1
+ DOMAIN: str
2
+ DATA_ADDRESSES: str
3
+ DATA_DISCOVERY_SUBSCRIPTION: str
4
+ EXPECTED_SERVICE_UUID: str
@@ -0,0 +1,34 @@
1
+ import pykulersky
2
+ from .const import DOMAIN as DOMAIN
3
+ from _typeshed import Incomplete
4
+ from homeassistant.components import bluetooth as bluetooth
5
+ from homeassistant.components.light import ATTR_BRIGHTNESS as ATTR_BRIGHTNESS, ATTR_RGBW_COLOR as ATTR_RGBW_COLOR, ColorMode as ColorMode, LightEntity as LightEntity
6
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
+ from homeassistant.const import CONF_ADDRESS as CONF_ADDRESS
8
+ from homeassistant.core import HomeAssistant as HomeAssistant
9
+ from homeassistant.helpers.device_registry import CONNECTION_BLUETOOTH as CONNECTION_BLUETOOTH, DeviceInfo as DeviceInfo
10
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
11
+ from typing import Any
12
+
13
+ _LOGGER: Incomplete
14
+
15
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
16
+
17
+ class KulerskyLight(LightEntity):
18
+ _attr_has_entity_name: bool
19
+ _attr_name: Incomplete
20
+ _attr_available: bool
21
+ _attr_supported_color_modes: Incomplete
22
+ _attr_color_mode: Incomplete
23
+ _light: Incomplete
24
+ _attr_unique_id: Incomplete
25
+ _attr_device_info: Incomplete
26
+ def __init__(self, name: str, address: str, light: pykulersky.Light) -> None: ...
27
+ async def async_will_remove_from_hass(self) -> None: ...
28
+ @property
29
+ def is_on(self) -> bool | None: ...
30
+ async def async_turn_on(self, **kwargs: Any) -> None: ...
31
+ async def async_turn_off(self, **kwargs: Any) -> None: ...
32
+ _attr_rgbw_color: Incomplete
33
+ _attr_brightness: Incomplete
34
+ async def async_update(self) -> None: ...
@@ -1,12 +1,14 @@
1
1
  from .const import CONF_USE_BLUETOOTH as CONF_USE_BLUETOOTH, DOMAIN as DOMAIN
2
- from .coordinator import LaMarzoccoConfigEntry as LaMarzoccoConfigEntry, LaMarzoccoConfigUpdateCoordinator as LaMarzoccoConfigUpdateCoordinator, LaMarzoccoFirmwareUpdateCoordinator as LaMarzoccoFirmwareUpdateCoordinator, LaMarzoccoRuntimeData as LaMarzoccoRuntimeData, LaMarzoccoStatisticsUpdateCoordinator as LaMarzoccoStatisticsUpdateCoordinator
2
+ from .coordinator import LaMarzoccoConfigEntry as LaMarzoccoConfigEntry, LaMarzoccoConfigUpdateCoordinator as LaMarzoccoConfigUpdateCoordinator, LaMarzoccoRuntimeData as LaMarzoccoRuntimeData, LaMarzoccoScheduleUpdateCoordinator as LaMarzoccoScheduleUpdateCoordinator, LaMarzoccoSettingsUpdateCoordinator as LaMarzoccoSettingsUpdateCoordinator, LaMarzoccoStatisticsUpdateCoordinator as LaMarzoccoStatisticsUpdateCoordinator
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.components.bluetooth import async_discovered_service_info as async_discovered_service_info
5
- from homeassistant.const import CONF_HOST as CONF_HOST, CONF_MAC as CONF_MAC, CONF_MODEL as CONF_MODEL, CONF_NAME as CONF_NAME, CONF_PASSWORD as CONF_PASSWORD, CONF_TOKEN as CONF_TOKEN, CONF_USERNAME as CONF_USERNAME, Platform as Platform
5
+ from homeassistant.const import CONF_MAC as CONF_MAC, CONF_PASSWORD as CONF_PASSWORD, CONF_TOKEN as CONF_TOKEN, CONF_USERNAME as CONF_USERNAME, Platform as Platform
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant
7
- from homeassistant.helpers.aiohttp_client import async_create_clientsession as async_create_clientsession
7
+ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
8
+ from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
8
9
 
9
10
  PLATFORMS: Incomplete
11
+ BT_MODEL_PREFIXES: Incomplete
10
12
  _LOGGER: Incomplete
11
13
 
12
14
  async def async_setup_entry(hass: HomeAssistant, entry: LaMarzoccoConfigEntry) -> bool: ...
@@ -1,21 +1,20 @@
1
1
  from .coordinator import LaMarzoccoConfigEntry as LaMarzoccoConfigEntry
2
- from .entity import LaMarzoccScaleEntity as LaMarzoccScaleEntity, LaMarzoccoEntity as LaMarzoccoEntity, LaMarzoccoEntityDescription as LaMarzoccoEntityDescription
2
+ from .entity import LaMarzoccoEntity as LaMarzoccoEntity, LaMarzoccoEntityDescription as LaMarzoccoEntityDescription
3
3
  from collections.abc import Callable as Callable
4
4
  from dataclasses import dataclass
5
5
  from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription
6
6
  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
- from pylamarzocco.models import LaMarzoccoMachineConfig as LaMarzoccoMachineConfig
9
+ from pylamarzocco import LaMarzoccoMachine as LaMarzoccoMachine
10
10
 
11
11
  PARALLEL_UPDATES: int
12
12
 
13
13
  @dataclass(frozen=True, kw_only=True)
14
14
  class LaMarzoccoBinarySensorEntityDescription(LaMarzoccoEntityDescription, BinarySensorEntityDescription):
15
- is_on_fn: Callable[[LaMarzoccoMachineConfig], bool | None]
15
+ is_on_fn: Callable[[LaMarzoccoMachine], bool | None]
16
16
 
17
17
  ENTITIES: tuple[LaMarzoccoBinarySensorEntityDescription, ...]
18
- SCALE_ENTITIES: tuple[LaMarzoccoBinarySensorEntityDescription, ...]
19
18
 
20
19
  async def async_setup_entry(hass: HomeAssistant, entry: LaMarzoccoConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
21
20
 
@@ -23,6 +22,3 @@ class LaMarzoccoBinarySensorEntity(LaMarzoccoEntity, BinarySensorEntity):
23
22
  entity_description: LaMarzoccoBinarySensorEntityDescription
24
23
  @property
25
24
  def is_on(self) -> bool | None: ...
26
-
27
- class LaMarzoccoScaleBinarySensorEntity(LaMarzoccoBinarySensorEntity, LaMarzoccScaleEntity):
28
- entity_description: LaMarzoccoBinarySensorEntityDescription
@@ -6,19 +6,18 @@ from datetime import datetime
6
6
  from homeassistant.components.calendar import CalendarEntity as CalendarEntity, CalendarEvent as CalendarEvent
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant
8
8
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
9
- from pylamarzocco.models import LaMarzoccoWakeUpSleepEntry as LaMarzoccoWakeUpSleepEntry
10
9
 
11
10
  PARALLEL_UPDATES: int
12
11
  CALENDAR_KEY: str
13
- DAY_OF_WEEK: Incomplete
12
+ WEEKDAY_TO_ENUM: Incomplete
14
13
 
15
14
  async def async_setup_entry(hass: HomeAssistant, entry: LaMarzoccoConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
16
15
 
17
16
  class LaMarzoccoCalendarEntity(LaMarzoccoBaseEntity, CalendarEntity):
18
17
  _attr_translation_key = CALENDAR_KEY
19
- wake_up_sleep_entry: Incomplete
18
+ _identifier: Incomplete
20
19
  _attr_translation_placeholders: Incomplete
21
- def __init__(self, coordinator: LaMarzoccoUpdateCoordinator, key: str, wake_up_sleep_entry: LaMarzoccoWakeUpSleepEntry) -> None: ...
20
+ def __init__(self, coordinator: LaMarzoccoUpdateCoordinator, key: str, identifier: str) -> None: ...
22
21
  @property
23
22
  def event(self) -> CalendarEvent | None: ...
24
23
  async def async_get_events(self, hass: HomeAssistant, start_date: datetime, end_date: datetime) -> list[CalendarEvent]: ...