homeassistant-stubs 2025.4.4__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 +6 -2
  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 +6 -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 -0
  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.4.dist-info → homeassistant_stubs-2025.5.0.dist-info}/METADATA +3 -3
  395. {homeassistant_stubs-2025.4.4.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.4.dist-info → homeassistant_stubs-2025.5.0.dist-info}/WHEEL +0 -0
  402. {homeassistant_stubs-2025.4.4.dist-info → homeassistant_stubs-2025.5.0.dist-info}/licenses/LICENSE +0 -0
@@ -7,11 +7,13 @@ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callb
7
7
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
8
8
  from homeassistant.helpers.typing import ConfigType as ConfigType, UNDEFINED as UNDEFINED, UndefinedType as UndefinedType
9
9
  from homeassistant.loader import bind_hass as bind_hass
10
+ from homeassistant.util import package as package
10
11
  from ipaddress import IPv4Address, IPv6Address
11
12
 
12
13
  _LOGGER: Incomplete
13
14
  CONFIG_SCHEMA: Incomplete
14
15
 
16
+ def _check_docker_without_host_networking() -> bool: ...
15
17
  @bind_hass
16
18
  async def async_get_adapters(hass: HomeAssistant) -> list[Adapter]: ...
17
19
  @callback
@@ -0,0 +1,16 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from _typeshed import Incomplete
3
+ from aiontfy import Ntfy
4
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
+ from homeassistant.const import CONF_TOKEN as CONF_TOKEN, CONF_URL as CONF_URL, CONF_VERIFY_SSL as CONF_VERIFY_SSL, Platform as Platform
6
+ from homeassistant.core import HomeAssistant as HomeAssistant
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
9
+
10
+ _LOGGER: Incomplete
11
+ PLATFORMS: list[Platform]
12
+ type NtfyConfigEntry = ConfigEntry[Ntfy]
13
+
14
+ async def async_setup_entry(hass: HomeAssistant, entry: NtfyConfigEntry) -> bool: ...
15
+ async def _async_update_listener(hass: HomeAssistant, entry: NtfyConfigEntry) -> None: ...
16
+ async def async_unload_entry(hass: HomeAssistant, entry: NtfyConfigEntry) -> bool: ...
@@ -0,0 +1,29 @@
1
+ from .const import CONF_TOPIC as CONF_TOPIC, DEFAULT_URL as DEFAULT_URL, DOMAIN as DOMAIN, SECTION_AUTH as SECTION_AUTH
2
+ from _typeshed import Incomplete
3
+ from collections.abc import Mapping
4
+ from homeassistant import data_entry_flow as data_entry_flow
5
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, ConfigSubentryFlow as ConfigSubentryFlow, SubentryFlowResult as SubentryFlowResult
6
+ from homeassistant.const import ATTR_CREDENTIALS as ATTR_CREDENTIALS, CONF_NAME as CONF_NAME, CONF_PASSWORD as CONF_PASSWORD, CONF_TOKEN as CONF_TOKEN, CONF_URL as CONF_URL, CONF_USERNAME as CONF_USERNAME, CONF_VERIFY_SSL as CONF_VERIFY_SSL
7
+ from homeassistant.core import callback as callback
8
+ from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
9
+ from homeassistant.helpers.selector import TextSelector as TextSelector, TextSelectorConfig as TextSelectorConfig, TextSelectorType as TextSelectorType
10
+ from typing import Any
11
+
12
+ _LOGGER: Incomplete
13
+ STEP_USER_DATA_SCHEMA: Incomplete
14
+ STEP_REAUTH_DATA_SCHEMA: Incomplete
15
+ STEP_USER_TOPIC_SCHEMA: Incomplete
16
+ RE_TOPIC: Incomplete
17
+
18
+ class NtfyConfigFlow(ConfigFlow, domain=DOMAIN):
19
+ @classmethod
20
+ @callback
21
+ def async_get_supported_subentry_types(cls, config_entry: ConfigEntry) -> dict[str, type[ConfigSubentryFlow]]: ...
22
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
23
+ async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
24
+ async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
25
+
26
+ class TopicSubentryFlowHandler(ConfigSubentryFlow):
27
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> SubentryFlowResult: ...
28
+ async def async_step_generate_topic(self, user_input: dict[str, Any] | None = None) -> SubentryFlowResult: ...
29
+ async def async_step_add_topic(self, user_input: dict[str, Any] | None = None) -> SubentryFlowResult: ...
@@ -0,0 +1,6 @@
1
+ from typing import Final
2
+
3
+ DOMAIN: str
4
+ DEFAULT_URL: Final[str]
5
+ CONF_TOPIC: str
6
+ SECTION_AUTH: str
@@ -0,0 +1,7 @@
1
+ from . import NtfyConfigEntry as NtfyConfigEntry
2
+ from homeassistant.components.diagnostics import REDACTED as REDACTED
3
+ from homeassistant.const import CONF_URL as CONF_URL
4
+ from homeassistant.core import HomeAssistant as HomeAssistant
5
+ from typing import Any
6
+
7
+ async def async_get_config_entry_diagnostics(hass: HomeAssistant, config_entry: NtfyConfigEntry) -> dict[str, Any]: ...
@@ -0,0 +1,25 @@
1
+ from . import NtfyConfigEntry as NtfyConfigEntry
2
+ from .const import CONF_TOPIC as CONF_TOPIC, DOMAIN as DOMAIN
3
+ from _typeshed import Incomplete
4
+ from homeassistant.components.notify import NotifyEntity as NotifyEntity, NotifyEntityDescription as NotifyEntityDescription, NotifyEntityFeature as NotifyEntityFeature
5
+ from homeassistant.config_entries import ConfigSubentry as ConfigSubentry
6
+ from homeassistant.const import CONF_NAME as CONF_NAME, CONF_URL as CONF_URL
7
+ from homeassistant.core import HomeAssistant as HomeAssistant
8
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
9
+ from homeassistant.helpers.device_registry import DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
10
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
11
+
12
+ PARALLEL_UPDATES: int
13
+
14
+ async def async_setup_entry(hass: HomeAssistant, config_entry: NtfyConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
15
+
16
+ class NtfyNotifyEntity(NotifyEntity):
17
+ entity_description: Incomplete
18
+ _attr_supported_features: Incomplete
19
+ _attr_unique_id: Incomplete
20
+ topic: Incomplete
21
+ _attr_device_info: Incomplete
22
+ config_entry: Incomplete
23
+ ntfy: Incomplete
24
+ def __init__(self, config_entry: NtfyConfigEntry, subentry: ConfigSubentry) -> None: ...
25
+ async def async_send_message(self, message: str, title: str | None = None) -> None: ...
@@ -1,10 +1,12 @@
1
- from .const import DEFAULT_SCAN_INTERVAL as DEFAULT_SCAN_INTERVAL, DOMAIN as DOMAIN, INTEGRATION_SUPPORTED_COMMANDS as INTEGRATION_SUPPORTED_COMMANDS, PLATFORMS as PLATFORMS
1
+ from .const import DOMAIN as DOMAIN, INTEGRATION_SUPPORTED_COMMANDS as INTEGRATION_SUPPORTED_COMMANDS, PLATFORMS as PLATFORMS
2
2
  from _typeshed import Incomplete
3
3
  from dataclasses import dataclass
4
4
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
5
  from homeassistant.const import CONF_ALIAS as CONF_ALIAS, CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PASSWORD, CONF_PORT as CONF_PORT, CONF_RESOURCES as CONF_RESOURCES, CONF_SCAN_INTERVAL as CONF_SCAN_INTERVAL, CONF_USERNAME as CONF_USERNAME, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP
6
6
  from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, callback as callback
7
7
  from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, HomeAssistantError as HomeAssistantError
8
+ from homeassistant.helpers import device_registry as dr
9
+ from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC, format_mac as format_mac
8
10
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
9
11
 
10
12
  NUT_FAKE_SERIAL: Incomplete
@@ -19,8 +21,9 @@ class NutRuntimeData:
19
21
  user_available_commands: set[str]
20
22
 
21
23
  async def async_setup_entry(hass: HomeAssistant, entry: NutConfigEntry) -> bool: ...
22
- async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
23
- async def _async_update_listener(hass: HomeAssistant, entry: ConfigEntry) -> None: ...
24
+ async def async_unload_entry(hass: HomeAssistant, entry: NutConfigEntry) -> bool: ...
25
+ async def async_remove_config_entry_device(hass: HomeAssistant, config_entry: ConfigEntry, device_entry: dr.DeviceEntry) -> bool: ...
26
+ async def _async_update_listener(hass: HomeAssistant, entry: NutConfigEntry) -> None: ...
24
27
  def _manufacturer_from_status(status: dict[str, str]) -> str | None: ...
25
28
  def _model_from_status(status: dict[str, str]) -> str | None: ...
26
29
  def _firmware_from_status(status: dict[str, str]) -> str | None: ...
@@ -34,6 +37,7 @@ class NUTDeviceInfo:
34
37
  model_id: str | None = ...
35
38
  firmware: str | None = ...
36
39
  serial: str | None = ...
40
+ mac_address: str | None = ...
37
41
  device_location: str | None = ...
38
42
 
39
43
  class PyNUTData:
@@ -1,21 +1,22 @@
1
1
  import voluptuous as vol
2
- from . import PyNUTData as PyNUTData
3
- from .const import DEFAULT_HOST as DEFAULT_HOST, DEFAULT_PORT as DEFAULT_PORT, DEFAULT_SCAN_INTERVAL as DEFAULT_SCAN_INTERVAL, DOMAIN as DOMAIN
2
+ from . import PyNUTData as PyNUTData, _unique_id_from_status as _unique_id_from_status
3
+ from .const import DEFAULT_HOST as DEFAULT_HOST, DEFAULT_PORT as DEFAULT_PORT, DOMAIN as DOMAIN
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Mapping
6
- from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
7
- from homeassistant.const import CONF_ALIAS as CONF_ALIAS, CONF_BASE as CONF_BASE, CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PASSWORD, CONF_PORT as CONF_PORT, CONF_SCAN_INTERVAL as CONF_SCAN_INTERVAL, CONF_USERNAME as CONF_USERNAME
8
- from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
6
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
7
+ from homeassistant.const import CONF_ALIAS as CONF_ALIAS, CONF_BASE as CONF_BASE, CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PASSWORD, CONF_PORT as CONF_PORT, CONF_USERNAME as CONF_USERNAME
9
8
  from homeassistant.data_entry_flow import AbortFlow as AbortFlow
10
9
  from homeassistant.helpers.service_info.zeroconf import ZeroconfServiceInfo as ZeroconfServiceInfo
11
10
  from typing import Any
12
11
 
13
12
  _LOGGER: Incomplete
14
- AUTH_SCHEMA: Incomplete
13
+ REAUTH_SCHEMA: Incomplete
14
+ PASSWORD_NOT_CHANGED: str
15
15
 
16
- def _base_schema(nut_config: dict[str, Any]) -> vol.Schema: ...
16
+ def _base_schema(nut_config: Mapping[str, Any], use_password_not_changed: bool = False) -> vol.Schema: ...
17
17
  def _ups_schema(ups_list: dict[str, str]) -> vol.Schema: ...
18
- async def validate_input(hass: HomeAssistant, data: dict[str, Any]) -> dict[str, Any]: ...
18
+ async def validate_input(data: dict[str, Any]) -> dict[str, Any]: ...
19
+ def _check_host_port_alias_match(first: Mapping[str, Any], second: Mapping[str, Any]) -> bool: ...
19
20
  def _format_host_port_alias(user_input: Mapping[str, Any]) -> str: ...
20
21
 
21
22
  class NutConfigFlow(ConfigFlow, domain=DOMAIN):
@@ -28,13 +29,9 @@ class NutConfigFlow(ConfigFlow, domain=DOMAIN):
28
29
  async def async_step_zeroconf(self, discovery_info: ZeroconfServiceInfo) -> ConfigFlowResult: ...
29
30
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
30
31
  async def async_step_ups(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
32
+ async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
33
+ async def async_step_reconfigure_ups(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
31
34
  def _host_port_alias_already_configured(self, user_input: dict[str, Any]) -> bool: ...
32
35
  async def _async_validate_or_error(self, config: dict[str, Any]) -> tuple[dict[str, Any], dict[str, str], dict[str, str]]: ...
33
36
  async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
34
37
  async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
35
- @staticmethod
36
- @callback
37
- def async_get_options_flow(config_entry: ConfigEntry) -> OptionsFlow: ...
38
-
39
- class OptionsFlowHandler(OptionsFlow):
40
- async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -8,7 +8,6 @@ DEFAULT_HOST: str
8
8
  DEFAULT_PORT: int
9
9
  KEY_STATUS: str
10
10
  KEY_STATUS_DISPLAY: str
11
- DEFAULT_SCAN_INTERVAL: int
12
11
  STATE_TYPES: Incomplete
13
12
  COMMAND_BEEPER_DISABLE: str
14
13
  COMMAND_BEEPER_ENABLE: str
@@ -1,9 +1,11 @@
1
- from . import NutRuntimeData as NutRuntimeData
1
+ from . import NutConfigEntry as NutConfigEntry, NutRuntimeData as NutRuntimeData
2
2
  from .const import DOMAIN as DOMAIN, INTEGRATION_SUPPORTED_COMMANDS as INTEGRATION_SUPPORTED_COMMANDS
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.components.device_automation import InvalidDeviceAutomationConfig as InvalidDeviceAutomationConfig
5
+ from homeassistant.config_entries import ConfigEntryState as ConfigEntryState
5
6
  from homeassistant.const import CONF_DEVICE_ID as CONF_DEVICE_ID, CONF_DOMAIN as CONF_DOMAIN, CONF_TYPE as CONF_TYPE
6
7
  from homeassistant.core import Context as Context, HomeAssistant as HomeAssistant
8
+ from homeassistant.helpers import device_registry as dr
7
9
  from homeassistant.helpers.typing import ConfigType as ConfigType, TemplateVarsType as TemplateVarsType
8
10
 
9
11
  ACTION_TYPES: Incomplete
@@ -14,3 +16,5 @@ async def async_call_action_from_config(hass: HomeAssistant, config: ConfigType,
14
16
  def _get_device_action_name(command_name: str) -> str: ...
15
17
  def _get_command_name(device_action_name: str) -> str: ...
16
18
  def _get_runtime_data_from_device_id(hass: HomeAssistant, device_id: str) -> NutRuntimeData | None: ...
19
+ def _get_runtime_data_for_device(hass: HomeAssistant, device: dr.DeviceEntry) -> NutRuntimeData | None: ...
20
+ def _get_runtime_data_from_device_id_exception_on_failure(hass: HomeAssistant, device_id: str) -> NutRuntimeData | None: ...
@@ -3,7 +3,7 @@ from .const import KEY_STATUS as KEY_STATUS, KEY_STATUS_DISPLAY as KEY_STATUS_DI
3
3
  from .entity import NUTBaseEntity as NUTBaseEntity
4
4
  from _typeshed import Incomplete
5
5
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
6
- from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, STATE_UNKNOWN as STATE_UNKNOWN, UnitOfApparentPower as UnitOfApparentPower, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfFrequency as UnitOfFrequency, UnitOfPower as UnitOfPower, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime
6
+ from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfApparentPower as UnitOfApparentPower, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfFrequency as UnitOfFrequency, UnitOfPower as UnitOfPower, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant
8
8
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
9
9
  from typing import Final
@@ -11,7 +11,10 @@ from typing import Final
11
11
  PARALLEL_UPDATES: int
12
12
  AMBIENT_PRESENT: str
13
13
  AMBIENT_SENSORS: Incomplete
14
- AMBIENT_THRESHOLD_STATUS_OPTIONS: Incomplete
14
+ BATTERY_CHARGER_STATUS_OPTIONS: Incomplete
15
+ FREQUENCY_STATUS_OPTIONS: Incomplete
16
+ THRESHOLD_STATUS_OPTIONS: Incomplete
17
+ UPS_BEEPER_STATUS_OPTIONS: Incomplete
15
18
  _LOGGER: Incomplete
16
19
  SENSOR_TYPES: Final[dict[str, SensorEntityDescription]]
17
20
 
@@ -21,4 +24,4 @@ class NUTSensor(NUTBaseEntity, SensorEntity):
21
24
  @property
22
25
  def native_value(self) -> str | None: ...
23
26
 
24
- def _format_display_state(status: dict[str, str]) -> str: ...
27
+ def _format_display_state(status: dict[str, str]) -> str | None: ...
@@ -0,0 +1,15 @@
1
+ from .const import DOMAIN as DOMAIN, PLATFORMS as PLATFORMS
2
+ from .coordinator import OhmeAdvancedSettingsCoordinator as OhmeAdvancedSettingsCoordinator, OhmeChargeSessionCoordinator as OhmeChargeSessionCoordinator, OhmeConfigEntry as OhmeConfigEntry, OhmeDeviceInfoCoordinator as OhmeDeviceInfoCoordinator, OhmeRuntimeData as OhmeRuntimeData
3
+ from .services import async_setup_services as async_setup_services
4
+ from _typeshed import Incomplete
5
+ from homeassistant.const import CONF_EMAIL as CONF_EMAIL, CONF_PASSWORD as CONF_PASSWORD
6
+ from homeassistant.core import HomeAssistant as HomeAssistant
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
9
+ from homeassistant.helpers.typing import ConfigType as ConfigType
10
+
11
+ CONFIG_SCHEMA: Incomplete
12
+
13
+ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
14
+ async def async_setup_entry(hass: HomeAssistant, entry: OhmeConfigEntry) -> bool: ...
15
+ async def async_unload_entry(hass: HomeAssistant, entry: OhmeConfigEntry) -> bool: ...
@@ -0,0 +1,26 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .coordinator import OhmeConfigEntry as OhmeConfigEntry
3
+ from .entity import OhmeEntity as OhmeEntity, OhmeEntityDescription as OhmeEntityDescription
4
+ from _typeshed import Incomplete
5
+ from collections.abc import Callable as Callable, Coroutine
6
+ from dataclasses import dataclass
7
+ from homeassistant.components.button import ButtonEntity as ButtonEntity, ButtonEntityDescription as ButtonEntityDescription
8
+ from homeassistant.core import HomeAssistant as HomeAssistant
9
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
10
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
11
+ from ohme import OhmeApiClient as OhmeApiClient
12
+ from typing import Any
13
+
14
+ PARALLEL_UPDATES: int
15
+
16
+ @dataclass(frozen=True, kw_only=True)
17
+ class OhmeButtonDescription(OhmeEntityDescription, ButtonEntityDescription):
18
+ press_fn: Callable[[OhmeApiClient], Coroutine[Any, Any, bool]]
19
+
20
+ BUTTON_DESCRIPTIONS: Incomplete
21
+
22
+ async def async_setup_entry(hass: HomeAssistant, config_entry: OhmeConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
23
+
24
+ class OhmeButton(OhmeEntity, ButtonEntity):
25
+ entity_description: OhmeButtonDescription
26
+ async def async_press(self) -> None: ...
@@ -0,0 +1,17 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from _typeshed import Incomplete
3
+ from collections.abc import Mapping
4
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
5
+ from homeassistant.const import CONF_EMAIL as CONF_EMAIL, CONF_PASSWORD as CONF_PASSWORD
6
+ from homeassistant.helpers.selector import TextSelector as TextSelector, TextSelectorConfig as TextSelectorConfig, TextSelectorType as TextSelectorType
7
+ from typing import Any
8
+
9
+ USER_SCHEMA: Incomplete
10
+ REAUTH_SCHEMA: Incomplete
11
+
12
+ class OhmeConfigFlow(ConfigFlow, domain=DOMAIN):
13
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
14
+ async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
15
+ async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
16
+ async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
17
+ async def _validate_account(self, email: str, password: str) -> dict[str, str]: ...
@@ -0,0 +1,5 @@
1
+ from _typeshed import Incomplete
2
+ from homeassistant.const import Platform as Platform
3
+
4
+ DOMAIN: str
5
+ PLATFORMS: Incomplete
@@ -0,0 +1,44 @@
1
+ import abc
2
+ from .const import DOMAIN as DOMAIN
3
+ from _typeshed import Incomplete
4
+ from abc import abstractmethod
5
+ from dataclasses import dataclass
6
+ from datetime import timedelta
7
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
+ from homeassistant.core import HomeAssistant as HomeAssistant
9
+ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
10
+ from ohme import OhmeApiClient as OhmeApiClient
11
+
12
+ _LOGGER: Incomplete
13
+
14
+ @dataclass()
15
+ class OhmeRuntimeData:
16
+ charge_session_coordinator: OhmeChargeSessionCoordinator
17
+ advanced_settings_coordinator: OhmeAdvancedSettingsCoordinator
18
+ device_info_coordinator: OhmeDeviceInfoCoordinator
19
+ type OhmeConfigEntry = ConfigEntry[OhmeRuntimeData]
20
+
21
+ class OhmeBaseCoordinator(DataUpdateCoordinator[None], metaclass=abc.ABCMeta):
22
+ config_entry: OhmeConfigEntry
23
+ client: OhmeApiClient
24
+ _default_update_interval: timedelta | None
25
+ coordinator_name: str
26
+ name: Incomplete
27
+ def __init__(self, hass: HomeAssistant, config_entry: OhmeConfigEntry, client: OhmeApiClient) -> None: ...
28
+ async def _async_update_data(self) -> None: ...
29
+ @abstractmethod
30
+ async def _internal_update_data(self) -> None: ...
31
+
32
+ class OhmeChargeSessionCoordinator(OhmeBaseCoordinator):
33
+ coordinator_name: str
34
+ _default_update_interval: Incomplete
35
+ async def _internal_update_data(self) -> None: ...
36
+
37
+ class OhmeAdvancedSettingsCoordinator(OhmeBaseCoordinator):
38
+ coordinator_name: str
39
+ async def _internal_update_data(self) -> None: ...
40
+
41
+ class OhmeDeviceInfoCoordinator(OhmeBaseCoordinator):
42
+ coordinator_name: str
43
+ _default_update_interval: Incomplete
44
+ async def _internal_update_data(self) -> None: ...
@@ -0,0 +1,5 @@
1
+ from .coordinator import OhmeConfigEntry as OhmeConfigEntry
2
+ from homeassistant.core import HomeAssistant as HomeAssistant
3
+ from typing import Any
4
+
5
+ async def async_get_config_entry_diagnostics(hass: HomeAssistant, config_entry: OhmeConfigEntry) -> dict[str, Any]: ...
@@ -0,0 +1,23 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .coordinator import OhmeBaseCoordinator as OhmeBaseCoordinator
3
+ from _typeshed import Incomplete
4
+ from collections.abc import Callable as Callable
5
+ from dataclasses import dataclass
6
+ from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
7
+ from homeassistant.helpers.entity import EntityDescription as EntityDescription
8
+ from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
9
+ from ohme import OhmeApiClient as OhmeApiClient
10
+
11
+ @dataclass(frozen=True)
12
+ class OhmeEntityDescription(EntityDescription):
13
+ is_supported_fn: Callable[[OhmeApiClient], bool] = ...
14
+ available_fn: Callable[[OhmeApiClient], bool] = ...
15
+
16
+ class OhmeEntity(CoordinatorEntity[OhmeBaseCoordinator]):
17
+ _attr_has_entity_name: bool
18
+ entity_description: OhmeEntityDescription
19
+ _attr_unique_id: Incomplete
20
+ _attr_device_info: Incomplete
21
+ def __init__(self, coordinator: OhmeBaseCoordinator, entity_description: OhmeEntityDescription) -> None: ...
22
+ @property
23
+ def available(self) -> bool: ...
@@ -0,0 +1,30 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .coordinator import OhmeConfigEntry as OhmeConfigEntry
3
+ from .entity import OhmeEntity as OhmeEntity, OhmeEntityDescription as OhmeEntityDescription
4
+ from _typeshed import Incomplete
5
+ from collections.abc import Callable as Callable, Coroutine
6
+ from dataclasses import dataclass
7
+ from homeassistant.components.number import NumberEntity as NumberEntity, NumberEntityDescription as NumberEntityDescription
8
+ from homeassistant.const import PERCENTAGE as PERCENTAGE, UnitOfTime as UnitOfTime
9
+ from homeassistant.core import HomeAssistant as HomeAssistant
10
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
11
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
12
+ from ohme import OhmeApiClient as OhmeApiClient
13
+ from typing import Any
14
+
15
+ PARALLEL_UPDATES: int
16
+
17
+ @dataclass(frozen=True, kw_only=True)
18
+ class OhmeNumberDescription(OhmeEntityDescription, NumberEntityDescription):
19
+ set_fn: Callable[[OhmeApiClient, float], Coroutine[Any, Any, bool]]
20
+ value_fn: Callable[[OhmeApiClient], float]
21
+
22
+ NUMBER_DESCRIPTION: Incomplete
23
+
24
+ async def async_setup_entry(hass: HomeAssistant, config_entry: OhmeConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
25
+
26
+ class OhmeNumber(OhmeEntity, NumberEntity):
27
+ entity_description: OhmeNumberDescription
28
+ @property
29
+ def native_value(self) -> float: ...
30
+ async def async_set_native_value(self, value: float) -> None: ...
@@ -0,0 +1,33 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .coordinator import OhmeConfigEntry as OhmeConfigEntry
3
+ from .entity import OhmeEntity as OhmeEntity, OhmeEntityDescription as OhmeEntityDescription
4
+ from collections.abc import Callable as Callable, Coroutine
5
+ from dataclasses import dataclass
6
+ from homeassistant.components.select import SelectEntity as SelectEntity, SelectEntityDescription as SelectEntityDescription
7
+ from homeassistant.core import HomeAssistant as HomeAssistant
8
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
9
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
10
+ from ohme import OhmeApiClient as OhmeApiClient
11
+ from typing import Any, Final
12
+
13
+ PARALLEL_UPDATES: int
14
+
15
+ @dataclass(frozen=True, kw_only=True)
16
+ class OhmeSelectDescription(OhmeEntityDescription, SelectEntityDescription):
17
+ select_fn: Callable[[OhmeApiClient, Any], Coroutine[Any, Any, bool | None]]
18
+ options: list[str] | None = ...
19
+ options_fn: Callable[[OhmeApiClient], list[str]] | None = ...
20
+ current_option_fn: Callable[[OhmeApiClient], str | None]
21
+
22
+ MODE_SELECT_DESCRIPTION: Final[OhmeSelectDescription]
23
+ VEHICLE_SELECT_DESCRIPTION: Final[OhmeSelectDescription]
24
+
25
+ async def async_setup_entry(hass: HomeAssistant, config_entry: OhmeConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
26
+
27
+ class OhmeSelect(OhmeEntity, SelectEntity):
28
+ entity_description: OhmeSelectDescription
29
+ async def async_select_option(self, option: str) -> None: ...
30
+ @property
31
+ def options(self) -> list[str]: ...
32
+ @property
33
+ def current_option(self) -> str | None: ...
@@ -0,0 +1,26 @@
1
+ from .coordinator import OhmeConfigEntry as OhmeConfigEntry
2
+ from .entity import OhmeEntity as OhmeEntity, OhmeEntityDescription as OhmeEntityDescription
3
+ from _typeshed import Incomplete
4
+ from collections.abc import Callable as Callable
5
+ from dataclasses import dataclass
6
+ from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
7
+ from homeassistant.const import PERCENTAGE as PERCENTAGE, STATE_UNKNOWN as STATE_UNKNOWN, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfPower as UnitOfPower
8
+ from homeassistant.core import HomeAssistant as HomeAssistant
9
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
10
+ from ohme import OhmeApiClient as OhmeApiClient
11
+
12
+ PARALLEL_UPDATES: int
13
+
14
+ @dataclass(frozen=True, kw_only=True)
15
+ class OhmeSensorDescription(OhmeEntityDescription, SensorEntityDescription):
16
+ value_fn: Callable[[OhmeApiClient], str | int | float | None]
17
+
18
+ SENSOR_CHARGE_SESSION: Incomplete
19
+ SENSOR_ADVANCED_SETTINGS: Incomplete
20
+
21
+ async def async_setup_entry(hass: HomeAssistant, config_entry: OhmeConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
22
+
23
+ class OhmeSensor(OhmeEntity, SensorEntity):
24
+ entity_description: OhmeSensorDescription
25
+ @property
26
+ def native_value(self) -> str | int | float | None: ...
@@ -0,0 +1,19 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .coordinator import OhmeConfigEntry as OhmeConfigEntry
3
+ from _typeshed import Incomplete
4
+ from homeassistant.config_entries import ConfigEntryState as ConfigEntryState
5
+ from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse
6
+ from homeassistant.exceptions import ServiceValidationError as ServiceValidationError
7
+ from homeassistant.helpers import selector as selector
8
+ from ohme import OhmeApiClient as OhmeApiClient
9
+ from typing import Final
10
+
11
+ ATTR_CONFIG_ENTRY: Final[str]
12
+ ATTR_PRICE_CAP: Final[str]
13
+ SERVICE_LIST_CHARGE_SLOTS: str
14
+ SERVICE_LIST_CHARGE_SLOTS_SCHEMA: Final[Incomplete]
15
+ SERVICE_SET_PRICE_CAP: str
16
+ SERVICE_SET_PRICE_CAP_SCHEMA: Final[Incomplete]
17
+
18
+ def __get_client(call: ServiceCall) -> OhmeApiClient: ...
19
+ def async_setup_services(hass: HomeAssistant) -> None: ...
@@ -0,0 +1,45 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .coordinator import OhmeConfigEntry as OhmeConfigEntry
3
+ from .entity import OhmeEntity as OhmeEntity, OhmeEntityDescription as OhmeEntityDescription
4
+ from _typeshed import Incomplete
5
+ from collections.abc import Awaitable, Callable as Callable
6
+ from dataclasses import dataclass
7
+ from homeassistant.components.switch import SwitchEntity as SwitchEntity, SwitchEntityDescription as SwitchEntityDescription
8
+ from homeassistant.const import EntityCategory as EntityCategory
9
+ from homeassistant.core import HomeAssistant as HomeAssistant
10
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
11
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
12
+ from ohme import OhmeApiClient as OhmeApiClient
13
+ from typing import Any
14
+
15
+ PARALLEL_UPDATES: int
16
+
17
+ @dataclass(frozen=True, kw_only=True)
18
+ class OhmeConfigSwitchDescription(OhmeEntityDescription, SwitchEntityDescription):
19
+ configuration_key: str
20
+
21
+ @dataclass(frozen=True, kw_only=True)
22
+ class OhmeSwitchDescription(OhmeEntityDescription, SwitchEntityDescription):
23
+ is_on_fn: Callable[[OhmeApiClient], bool]
24
+ off_fn: Callable[[OhmeApiClient], Awaitable]
25
+ on_fn: Callable[[OhmeApiClient], Awaitable]
26
+
27
+ SWITCH_CONFIG: Incomplete
28
+ SWITCH_DESCRIPTION: Incomplete
29
+
30
+ async def async_setup_entry(hass: HomeAssistant, config_entry: OhmeConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
31
+
32
+ class OhmeSwitch(OhmeEntity, SwitchEntity):
33
+ entity_description: OhmeSwitchDescription
34
+ @property
35
+ def is_on(self) -> bool: ...
36
+ async def async_turn_off(self, **kwargs: Any) -> None: ...
37
+ async def async_turn_on(self, **kwargs: Any) -> None: ...
38
+
39
+ class OhmeConfigSwitch(OhmeEntity, SwitchEntity):
40
+ entity_description: OhmeConfigSwitchDescription
41
+ @property
42
+ def is_on(self) -> bool: ...
43
+ async def async_turn_on(self, **kwargs: Any) -> None: ...
44
+ async def async_turn_off(self, **kwargs: Any) -> None: ...
45
+ async def _toggle(self, on: bool) -> None: ...
@@ -0,0 +1,30 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .coordinator import OhmeConfigEntry as OhmeConfigEntry
3
+ from .entity import OhmeEntity as OhmeEntity, OhmeEntityDescription as OhmeEntityDescription
4
+ from _typeshed import Incomplete
5
+ from collections.abc import Callable as Callable, Coroutine
6
+ from dataclasses import dataclass
7
+ from datetime import time
8
+ from homeassistant.components.time import TimeEntity as TimeEntity, TimeEntityDescription as TimeEntityDescription
9
+ from homeassistant.core import HomeAssistant as HomeAssistant
10
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
11
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
12
+ from ohme import OhmeApiClient as OhmeApiClient
13
+ from typing import Any
14
+
15
+ PARALLEL_UPDATES: int
16
+
17
+ @dataclass(frozen=True, kw_only=True)
18
+ class OhmeTimeDescription(OhmeEntityDescription, TimeEntityDescription):
19
+ set_fn: Callable[[OhmeApiClient, time], Coroutine[Any, Any, bool]]
20
+ value_fn: Callable[[OhmeApiClient], time]
21
+
22
+ TIME_DESCRIPTION: Incomplete
23
+
24
+ async def async_setup_entry(hass: HomeAssistant, config_entry: OhmeConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
25
+
26
+ class OhmeTime(OhmeEntity, TimeEntity):
27
+ entity_description: OhmeTimeDescription
28
+ @property
29
+ def native_value(self) -> time: ...
30
+ async def async_set_value(self, value: time) -> None: ...
@@ -1,5 +1,6 @@
1
1
  from . import views as views
2
2
  from .const import DOMAIN as DOMAIN, STEPS as STEPS, STEP_ANALYTICS as STEP_ANALYTICS, STEP_CORE_CONFIG as STEP_CORE_CONFIG, STEP_INTEGRATION as STEP_INTEGRATION, STEP_USER as STEP_USER
3
+ from .views import BaseOnboardingView as BaseOnboardingView, NoAuthBaseOnboardingView as NoAuthBaseOnboardingView
3
4
  from _typeshed import Incomplete
4
5
  from collections.abc import Callable as Callable
5
6
  from dataclasses import dataclass