homeassistant-stubs 2025.9.4__py3-none-any.whl → 2025.10.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.

Potentially problematic release.


This version of homeassistant-stubs might be problematic. Click here for more details.

Files changed (323) hide show
  1. homeassistant-stubs/components/acaia/coordinator.pyi +1 -0
  2. homeassistant-stubs/components/accuweather/__init__.pyi +3 -3
  3. homeassistant-stubs/components/accuweather/config_flow.pyi +5 -0
  4. homeassistant-stubs/components/accuweather/const.pyi +1 -0
  5. homeassistant-stubs/components/accuweather/coordinator.pyi +17 -4
  6. homeassistant-stubs/components/accuweather/weather.pyi +5 -2
  7. homeassistant-stubs/components/airos/__init__.pyi +3 -1
  8. homeassistant-stubs/components/airos/binary_sensor.pyi +2 -2
  9. homeassistant-stubs/components/airos/config_flow.pyi +5 -3
  10. homeassistant-stubs/components/airos/const.pyi +3 -0
  11. homeassistant-stubs/components/airos/coordinator.pyi +4 -4
  12. homeassistant-stubs/components/airos/entity.pyi +2 -2
  13. homeassistant-stubs/components/airos/sensor.pyi +2 -2
  14. homeassistant-stubs/components/airzone/select.pyi +1 -0
  15. homeassistant-stubs/components/aladdin_connect/config_flow.pyi +1 -0
  16. homeassistant-stubs/components/alexa_devices/binary_sensor.pyi +4 -0
  17. homeassistant-stubs/components/alexa_devices/coordinator.pyi +2 -0
  18. homeassistant-stubs/components/alexa_devices/sensor.pyi +3 -0
  19. homeassistant-stubs/components/alexa_devices/switch.pyi +4 -2
  20. homeassistant-stubs/components/alexa_devices/utils.pyi +4 -1
  21. homeassistant-stubs/components/analytics/__init__.pyi +4 -21
  22. homeassistant-stubs/components/analytics/analytics.pyi +42 -5
  23. homeassistant-stubs/components/androidtv/__init__.pyi +5 -1
  24. homeassistant-stubs/components/androidtv/media_player.pyi +1 -10
  25. homeassistant-stubs/components/androidtv/services.pyi +16 -0
  26. homeassistant-stubs/components/androidtv_remote/entity.pyi +1 -3
  27. homeassistant-stubs/components/assist_pipeline/__init__.pyi +1 -1
  28. homeassistant-stubs/components/assist_pipeline/const.pyi +1 -0
  29. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +7 -4
  30. homeassistant-stubs/components/assist_pipeline/select.pyi +1 -1
  31. homeassistant-stubs/components/asuswrt/bridge.pyi +8 -0
  32. homeassistant-stubs/components/blue_current/__init__.pyi +11 -5
  33. homeassistant-stubs/components/blue_current/const.pyi +6 -0
  34. homeassistant-stubs/components/bluetooth/__init__.pyi +2 -2
  35. homeassistant-stubs/components/bluetooth/api.pyi +5 -2
  36. homeassistant-stubs/components/bluetooth/manager.pyi +7 -1
  37. homeassistant-stubs/components/bluetooth/websocket_api.pyi +6 -1
  38. homeassistant-stubs/components/brother/__init__.pyi +4 -2
  39. homeassistant-stubs/components/brother/config_flow.pyi +5 -2
  40. homeassistant-stubs/components/brother/const.pyi +4 -0
  41. homeassistant-stubs/components/bthome/sensor.pyi +1 -1
  42. homeassistant-stubs/components/camera/__init__.pyi +1 -1
  43. homeassistant-stubs/components/camera/prefs.pyi +3 -1
  44. homeassistant-stubs/components/cloud/http_api.pyi +2 -0
  45. homeassistant-stubs/components/comelit/config_flow.pyi +2 -1
  46. homeassistant-stubs/components/comelit/coordinator.pyi +2 -1
  47. homeassistant-stubs/components/comelit/sensor.pyi +1 -1
  48. homeassistant-stubs/components/compit/__init__.pyi +11 -0
  49. homeassistant-stubs/components/compit/climate.pyi +63 -0
  50. homeassistant-stubs/components/compit/config_flow.pyi +17 -0
  51. homeassistant-stubs/components/compit/const.pyi +2 -0
  52. homeassistant-stubs/components/compit/coordinator.pyi +16 -0
  53. homeassistant-stubs/components/derivative/diagnostics.pyi +5 -0
  54. homeassistant-stubs/components/dnsip/sensor.pyi +5 -1
  55. homeassistant-stubs/components/droplet/__init__.pyi +10 -0
  56. homeassistant-stubs/components/droplet/config_flow.pyi +13 -0
  57. homeassistant-stubs/components/droplet/const.pyi +7 -0
  58. homeassistant-stubs/components/droplet/coordinator.pyi +23 -0
  59. homeassistant-stubs/components/droplet/sensor.pyi +37 -0
  60. homeassistant-stubs/components/ecovacs/number.pyi +4 -1
  61. homeassistant-stubs/components/elkm1/config_flow.pyi +2 -0
  62. homeassistant-stubs/components/elkm1/sensor.pyi +8 -1
  63. homeassistant-stubs/components/energy/sensor.pyi +1 -1
  64. homeassistant-stubs/components/esphome/analytics.pyi +4 -0
  65. homeassistant-stubs/components/esphome/assist_satellite.pyi +5 -1
  66. homeassistant-stubs/components/esphome/climate.pyi +2 -0
  67. homeassistant-stubs/components/esphome/config_flow.pyi +3 -0
  68. homeassistant-stubs/components/esphome/const.pyi +1 -0
  69. homeassistant-stubs/components/esphome/entry_data.pyi +8 -4
  70. homeassistant-stubs/components/esphome/lock.pyi +1 -1
  71. homeassistant-stubs/components/esphome/manager.pyi +1 -0
  72. homeassistant-stubs/components/esphome/select.pyi +4 -3
  73. homeassistant-stubs/components/fritz/sensor.pyi +2 -1
  74. homeassistant-stubs/components/frontend/__init__.pyi +5 -2
  75. homeassistant-stubs/components/geocaching/entity.pyi +14 -0
  76. homeassistant-stubs/components/geocaching/sensor.pyi +25 -5
  77. homeassistant-stubs/components/go2rtc/__init__.pyi +3 -0
  78. homeassistant-stubs/components/google/__init__.pyi +0 -1
  79. homeassistant-stubs/components/google/config_flow.pyi +3 -3
  80. homeassistant-stubs/components/google_cloud/__init__.pyi +0 -1
  81. homeassistant-stubs/components/google_cloud/config_flow.pyi +2 -2
  82. homeassistant-stubs/components/google_photos/media_source.pyi +2 -2
  83. homeassistant-stubs/components/habitica/binary_sensor.pyi +1 -1
  84. homeassistant-stubs/components/habitica/const.pyi +1 -0
  85. homeassistant-stubs/components/habitica/sensor.pyi +3 -1
  86. homeassistant-stubs/components/habitica/services.pyi +2 -1
  87. homeassistant-stubs/components/habitica/util.pyi +1 -0
  88. homeassistant-stubs/components/here_travel_time/__init__.pyi +3 -1
  89. homeassistant-stubs/components/history_stats/config_flow.pyi +7 -2
  90. homeassistant-stubs/components/history_stats/diagnostics.pyi +5 -0
  91. homeassistant-stubs/components/home_connect/application_credentials.pyi +0 -1
  92. homeassistant-stubs/components/home_connect/coordinator.pyi +0 -1
  93. homeassistant-stubs/components/homeassistant_hardware/firmware_config_flow.pyi +44 -13
  94. homeassistant-stubs/components/homeassistant_hardware/update.pyi +2 -2
  95. homeassistant-stubs/components/homeassistant_hardware/util.pyi +10 -4
  96. homeassistant-stubs/components/homeassistant_sky_connect/update.pyi +1 -1
  97. homeassistant-stubs/components/homeassistant_yellow/config_flow.pyi +3 -1
  98. homeassistant-stubs/components/homeassistant_yellow/update.pyi +2 -2
  99. homeassistant-stubs/components/homee/alarm_control_panel.pyi +3 -2
  100. homeassistant-stubs/components/homee/binary_sensor.pyi +4 -2
  101. homeassistant-stubs/components/homee/button.pyi +3 -1
  102. homeassistant-stubs/components/homee/climate.pyi +3 -1
  103. homeassistant-stubs/components/homee/cover.pyi +3 -1
  104. homeassistant-stubs/components/homee/event.pyi +3 -1
  105. homeassistant-stubs/components/homee/fan.pyi +3 -1
  106. homeassistant-stubs/components/homee/helpers.pyi +6 -0
  107. homeassistant-stubs/components/homee/light.pyi +2 -0
  108. homeassistant-stubs/components/homee/lock.pyi +4 -2
  109. homeassistant-stubs/components/homee/number.pyi +3 -1
  110. homeassistant-stubs/components/homee/select.pyi +3 -1
  111. homeassistant-stubs/components/homee/sensor.pyi +2 -2
  112. homeassistant-stubs/components/homee/siren.pyi +4 -1
  113. homeassistant-stubs/components/homee/switch.pyi +4 -2
  114. homeassistant-stubs/components/homee/valve.pyi +3 -1
  115. homeassistant-stubs/components/homekit/type_switches.pyi +7 -1
  116. homeassistant-stubs/components/homewizard/sensor.pyi +3 -1
  117. homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +1 -1
  118. homeassistant-stubs/components/image/__init__.pyi +1 -0
  119. homeassistant-stubs/components/image_upload/__init__.pyi +1 -1
  120. homeassistant-stubs/components/image_upload/const.pyi +1 -0
  121. homeassistant-stubs/components/image_upload/media_source.pyi +5 -1
  122. homeassistant-stubs/components/immich/media_source.pyi +2 -2
  123. homeassistant-stubs/components/integration/__init__.pyi +0 -1
  124. homeassistant-stubs/components/integration/config_flow.pyi +1 -0
  125. homeassistant-stubs/components/lamarzocco/coordinator.pyi +4 -2
  126. homeassistant-stubs/components/lawn_mower/intent.pyi +8 -0
  127. homeassistant-stubs/components/letpot/number.pyi +34 -0
  128. homeassistant-stubs/components/libre_hardware_monitor/__init__.pyi +9 -0
  129. homeassistant-stubs/components/libre_hardware_monitor/config_flow.pyi +12 -0
  130. homeassistant-stubs/components/libre_hardware_monitor/const.pyi +4 -0
  131. homeassistant-stubs/components/libre_hardware_monitor/coordinator.pyi +21 -0
  132. homeassistant-stubs/components/libre_hardware_monitor/sensor.pyi +34 -0
  133. homeassistant-stubs/components/litterrobot/select.pyi +1 -1
  134. homeassistant-stubs/components/litterrobot/switch.pyi +5 -1
  135. homeassistant-stubs/components/logbook/helpers.pyi +4 -3
  136. homeassistant-stubs/components/mastodon/const.pyi +1 -0
  137. homeassistant-stubs/components/mastodon/services.pyi +1 -1
  138. homeassistant-stubs/components/matter/models.pyi +1 -0
  139. homeassistant-stubs/components/matter/sensor.pyi +1 -0
  140. homeassistant-stubs/components/mcp_server/session.pyi +2 -2
  141. homeassistant-stubs/components/media_source/__init__.pyi +2 -10
  142. homeassistant-stubs/components/media_source/helper.pyi +16 -0
  143. homeassistant-stubs/components/media_source/http.pyi +13 -0
  144. homeassistant-stubs/components/media_source/local_source.pyi +19 -11
  145. homeassistant-stubs/components/metoffice/sensor.pyi +1 -1
  146. homeassistant-stubs/components/miele/const.pyi +193 -17
  147. homeassistant-stubs/components/miele/sensor.pyi +12 -3
  148. homeassistant-stubs/components/miele/vacuum.pyi +1 -2
  149. homeassistant-stubs/components/min_max/sensor.pyi +1 -1
  150. homeassistant-stubs/components/modbus/__init__.pyi +1 -1
  151. homeassistant-stubs/components/modbus/binary_sensor.pyi +2 -2
  152. homeassistant-stubs/components/modbus/climate.pyi +2 -2
  153. homeassistant-stubs/components/modbus/const.pyi +1 -0
  154. homeassistant-stubs/components/modbus/cover.pyi +2 -2
  155. homeassistant-stubs/components/modbus/entity.pyi +4 -4
  156. homeassistant-stubs/components/modbus/fan.pyi +2 -2
  157. homeassistant-stubs/components/modbus/light.pyi +2 -2
  158. homeassistant-stubs/components/modbus/modbus.pyi +1 -2
  159. homeassistant-stubs/components/modbus/sensor.pyi +2 -2
  160. homeassistant-stubs/components/modbus/switch.pyi +2 -2
  161. homeassistant-stubs/components/modbus/validators.pyi +1 -1
  162. homeassistant-stubs/components/motionmount/select.pyi +1 -0
  163. homeassistant-stubs/components/mqtt/config_flow.pyi +61 -60
  164. homeassistant-stubs/components/mqtt/const.pyi +6 -0
  165. homeassistant-stubs/components/mqtt/device_automation.pyi +1 -1
  166. homeassistant-stubs/components/mqtt/entity.pyi +2 -2
  167. homeassistant-stubs/components/mqtt/image.pyi +1 -5
  168. homeassistant-stubs/components/mqtt/light/schema_json.pyi +0 -1
  169. homeassistant-stubs/components/mqtt/schemas.pyi +1 -1
  170. homeassistant-stubs/components/mqtt/tag.pyi +1 -1
  171. homeassistant-stubs/components/music_assistant/__init__.pyi +2 -1
  172. homeassistant-stubs/components/music_assistant/config_flow.pyi +1 -1
  173. homeassistant-stubs/components/music_assistant/const.pyi +1 -0
  174. homeassistant-stubs/components/nordpool/coordinator.pyi +4 -2
  175. homeassistant-stubs/components/ntfy/config_flow.pyi +4 -2
  176. homeassistant-stubs/components/ntfy/const.pyi +6 -0
  177. homeassistant-stubs/components/ntfy/entity.pyi +18 -0
  178. homeassistant-stubs/components/ntfy/event.pyi +29 -0
  179. homeassistant-stubs/components/ntfy/notify.pyi +19 -13
  180. homeassistant-stubs/components/{home_connect → ntfy}/repairs.pyi +7 -3
  181. homeassistant-stubs/components/number/const.pyi +1 -1
  182. homeassistant-stubs/components/openai_conversation/ai_task.pyi +5 -1
  183. homeassistant-stubs/components/openai_conversation/const.pyi +1 -0
  184. homeassistant-stubs/components/openai_conversation/entity.pyi +2 -2
  185. homeassistant-stubs/components/openuv/__init__.pyi +1 -1
  186. homeassistant-stubs/components/openuv/binary_sensor.pyi +2 -2
  187. homeassistant-stubs/components/openuv/coordinator.pyi +14 -1
  188. homeassistant-stubs/components/opnsense/__init__.pyi +11 -0
  189. homeassistant-stubs/components/opnsense/const.pyi +5 -0
  190. homeassistant-stubs/components/opnsense/device_tracker.pyi +23 -0
  191. homeassistant-stubs/components/portainer/__init__.pyi +12 -0
  192. homeassistant-stubs/components/portainer/binary_sensor.pyi +39 -0
  193. homeassistant-stubs/components/portainer/config_flow.pyi +21 -0
  194. homeassistant-stubs/components/portainer/const.pyi +2 -0
  195. homeassistant-stubs/components/portainer/coordinator.pyi +29 -0
  196. homeassistant-stubs/components/portainer/entity.pyi +22 -0
  197. homeassistant-stubs/components/prusalink/coordinator.pyi +2 -0
  198. homeassistant-stubs/components/radio_browser/media_source.pyi +3 -0
  199. homeassistant-stubs/components/recorder/models/statistics.pyi +1 -0
  200. homeassistant-stubs/components/recorder/util.pyi +1 -0
  201. homeassistant-stubs/components/reolink/entity.pyi +10 -0
  202. homeassistant-stubs/components/reolink/light.pyi +7 -1
  203. homeassistant-stubs/components/reolink/number.pyi +10 -1
  204. homeassistant-stubs/components/reolink/select.pyi +11 -3
  205. homeassistant-stubs/components/reolink/siren.pyi +11 -1
  206. homeassistant-stubs/components/reolink/switch.pyi +11 -1
  207. homeassistant-stubs/components/roborock/config_flow.pyi +1 -1
  208. homeassistant-stubs/components/roborock/const.pyi +1 -0
  209. homeassistant-stubs/components/roborock/coordinator.pyi +1 -1
  210. homeassistant-stubs/components/route_b_smart_meter/__init__.pyi +10 -0
  211. homeassistant-stubs/components/route_b_smart_meter/config_flow.pyi +22 -0
  212. homeassistant-stubs/components/route_b_smart_meter/const.pyi +9 -0
  213. homeassistant-stubs/components/route_b_smart_meter/coordinator.pyi +26 -0
  214. homeassistant-stubs/components/route_b_smart_meter/sensor.pyi +30 -0
  215. homeassistant-stubs/components/scrape/__init__.pyi +0 -1
  216. homeassistant-stubs/components/scrape/config_flow.pyi +1 -0
  217. homeassistant-stubs/components/scrape/coordinator.pyi +5 -1
  218. homeassistant-stubs/components/sensor/const.pyi +1 -0
  219. homeassistant-stubs/components/sensor/device_condition.pyi +1 -0
  220. homeassistant-stubs/components/sensor/device_trigger.pyi +1 -0
  221. homeassistant-stubs/components/sftp_storage/__init__.pyi +21 -0
  222. homeassistant-stubs/components/sftp_storage/backup.pyi +24 -0
  223. homeassistant-stubs/components/sftp_storage/client.pyi +48 -0
  224. homeassistant-stubs/components/sftp_storage/config_flow.pyi +25 -0
  225. homeassistant-stubs/components/sftp_storage/const.pyi +16 -0
  226. homeassistant-stubs/components/shelly/__init__.pyi +2 -2
  227. homeassistant-stubs/components/shelly/binary_sensor.pyi +5 -1
  228. homeassistant-stubs/components/shelly/button.pyi +10 -2
  229. homeassistant-stubs/components/shelly/const.pyi +5 -2
  230. homeassistant-stubs/components/shelly/cover.pyi +6 -0
  231. homeassistant-stubs/components/shelly/entity.pyi +1 -3
  232. homeassistant-stubs/components/shelly/light.pyi +18 -10
  233. homeassistant-stubs/components/shelly/number.pyi +1 -1
  234. homeassistant-stubs/components/shelly/repairs.pyi +4 -2
  235. homeassistant-stubs/components/shelly/select.pyi +1 -1
  236. homeassistant-stubs/components/shelly/sensor.pyi +16 -8
  237. homeassistant-stubs/components/shelly/switch.pyi +1 -1
  238. homeassistant-stubs/components/shelly/text.pyi +1 -1
  239. homeassistant-stubs/components/shelly/utils.pyi +7 -2
  240. homeassistant-stubs/components/sql/__init__.pyi +2 -2
  241. homeassistant-stubs/components/sql/config_flow.pyi +6 -2
  242. homeassistant-stubs/components/sql/const.pyi +1 -0
  243. homeassistant-stubs/components/sql/sensor.pyi +1 -1
  244. homeassistant-stubs/components/squeezebox/browse_media.pyi +1 -1
  245. homeassistant-stubs/components/ssdp/server.pyi +2 -3
  246. homeassistant-stubs/components/starlink/sensor.pyi +8 -1
  247. homeassistant-stubs/components/statistics/__init__.pyi +0 -1
  248. homeassistant-stubs/components/statistics/config_flow.pyi +1 -0
  249. homeassistant-stubs/components/switchbot_cloud/__init__.pyi +1 -0
  250. homeassistant-stubs/components/switchbot_cloud/binary_sensor.pyi +7 -0
  251. homeassistant-stubs/components/switchbot_cloud/climate.pyi +7 -3
  252. homeassistant-stubs/components/switchbot_cloud/const.pyi +13 -0
  253. homeassistant-stubs/components/switchbot_cloud/entity.pyi +1 -1
  254. homeassistant-stubs/components/switchbot_cloud/humidifier.pyi +48 -0
  255. homeassistant-stubs/components/switchbot_cloud/light.pyi +1 -0
  256. homeassistant-stubs/components/switchbot_cloud/sensor.pyi +13 -1
  257. homeassistant-stubs/components/synology_dsm/media_source.pyi +2 -2
  258. homeassistant-stubs/components/synology_dsm/sensor.pyi +3 -0
  259. homeassistant-stubs/components/systemmonitor/binary_sensor.pyi +1 -1
  260. homeassistant-stubs/components/systemmonitor/const.pyi +1 -0
  261. homeassistant-stubs/components/systemmonitor/coordinator.pyi +2 -0
  262. homeassistant-stubs/components/systemmonitor/sensor.pyi +2 -0
  263. homeassistant-stubs/components/telegram_bot/__init__.pyi +2 -1
  264. homeassistant-stubs/components/telegram_bot/bot.pyi +1 -0
  265. homeassistant-stubs/components/telegram_bot/const.pyi +13 -0
  266. homeassistant-stubs/components/threshold/__init__.pyi +0 -1
  267. homeassistant-stubs/components/threshold/config_flow.pyi +1 -0
  268. homeassistant-stubs/components/tolo/config_flow.pyi +5 -3
  269. homeassistant-stubs/components/tts/__init__.pyi +5 -0
  270. homeassistant-stubs/components/uptimerobot/config_flow.pyi +1 -0
  271. homeassistant-stubs/components/vacuum/intent.pyi +1 -1
  272. homeassistant-stubs/components/volvo/__init__.pyi +1 -1
  273. homeassistant-stubs/components/volvo/api.pyi +4 -0
  274. homeassistant-stubs/components/volvo/coordinator.pyi +28 -15
  275. homeassistant-stubs/components/wake_on_lan/__init__.pyi +0 -1
  276. homeassistant-stubs/components/wake_on_lan/config_flow.pyi +1 -0
  277. homeassistant-stubs/components/webhook/trigger.pyi +2 -1
  278. homeassistant-stubs/components/wled/analytics.pyi +4 -0
  279. homeassistant-stubs/components/workday/calendar.pyi +23 -0
  280. homeassistant-stubs/components/yalexs_ble/__init__.pyi +0 -1
  281. homeassistant-stubs/components/yalexs_ble/config_flow.pyi +2 -2
  282. homeassistant-stubs/components/zwave_js/__init__.pyi +1 -1
  283. homeassistant-stubs/components/zwave_js/config_flow.pyi +6 -3
  284. homeassistant-stubs/components/zwave_js/const.pyi +3 -0
  285. homeassistant-stubs/components/zwave_js/device_trigger.pyi +1 -1
  286. homeassistant-stubs/components/zwave_js/triggers/event.pyi +24 -9
  287. homeassistant-stubs/components/zwave_js/triggers/value_updated.pyi +11 -7
  288. homeassistant-stubs/config_entries.pyi +6 -1
  289. homeassistant-stubs/const.pyi +7 -46
  290. homeassistant-stubs/data_entry_flow.pyi +16 -3
  291. homeassistant-stubs/generated/entity_platforms.pyi +46 -0
  292. homeassistant-stubs/helpers/condition.pyi +3 -1
  293. homeassistant-stubs/helpers/config_validation.pyi +1 -1
  294. homeassistant-stubs/helpers/deprecation.pyi +1 -0
  295. homeassistant-stubs/helpers/device_registry.pyi +4 -3
  296. homeassistant-stubs/helpers/entity_component.pyi +1 -3
  297. homeassistant-stubs/helpers/event.pyi +2 -1
  298. homeassistant-stubs/helpers/intent.pyi +5 -8
  299. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +5 -1
  300. homeassistant-stubs/helpers/selector.pyi +16 -16
  301. homeassistant-stubs/helpers/service.pyi +12 -14
  302. homeassistant-stubs/helpers/service_info/esphome.pyi +12 -0
  303. homeassistant-stubs/helpers/{template.pyi → template/__init__.pyi} +14 -97
  304. homeassistant-stubs/helpers/template/context.pyi +16 -0
  305. homeassistant-stubs/helpers/template/extensions/__init__.pyi +8 -0
  306. homeassistant-stubs/helpers/template/extensions/base.pyi +21 -0
  307. homeassistant-stubs/helpers/template/extensions/base64.pyi +9 -0
  308. homeassistant-stubs/helpers/template/extensions/collection.pyi +18 -0
  309. homeassistant-stubs/helpers/template/extensions/crypto.pyi +13 -0
  310. homeassistant-stubs/helpers/template/extensions/math.pyi +43 -0
  311. homeassistant-stubs/helpers/template/extensions/regex.pyi +14 -0
  312. homeassistant-stubs/helpers/template/extensions/string.pyi +9 -0
  313. homeassistant-stubs/helpers/template/helpers.pyi +4 -0
  314. homeassistant-stubs/helpers/template/render_info.pyi +39 -0
  315. homeassistant-stubs/helpers/trigger.pyi +16 -5
  316. homeassistant-stubs/helpers/trigger_template_entity.pyi +2 -1
  317. homeassistant-stubs/runner.pyi +16 -0
  318. homeassistant-stubs/util/unit_conversion.pyi +1 -0
  319. {homeassistant_stubs-2025.9.4.dist-info → homeassistant_stubs-2025.10.0.dist-info}/METADATA +2 -2
  320. {homeassistant_stubs-2025.9.4.dist-info → homeassistant_stubs-2025.10.0.dist-info}/RECORD +322 -262
  321. homeassistant-stubs/components/home_connect/time.pyi +0 -29
  322. {homeassistant_stubs-2025.9.4.dist-info → homeassistant_stubs-2025.10.0.dist-info}/WHEEL +0 -0
  323. {homeassistant_stubs-2025.9.4.dist-info → homeassistant_stubs-2025.10.0.dist-info}/licenses/LICENSE +0 -0
@@ -45,6 +45,8 @@ class AsusWrtBridge(ABC, metaclass=abc.ABCMeta):
45
45
  _firmware: str | None
46
46
  _label_mac: str | None
47
47
  _model: str | None
48
+ _model_id: str | None
49
+ _serial_number: str | None
48
50
  def __init__(self, host: str) -> None: ...
49
51
  @property
50
52
  def configuration_url(self) -> str: ...
@@ -57,6 +59,10 @@ class AsusWrtBridge(ABC, metaclass=abc.ABCMeta):
57
59
  @property
58
60
  def model(self) -> str | None: ...
59
61
  @property
62
+ def model_id(self) -> str | None: ...
63
+ @property
64
+ def serial_number(self) -> str | None: ...
65
+ @property
60
66
  @abstractmethod
61
67
  def is_connected(self) -> bool: ...
62
68
  @abstractmethod
@@ -105,6 +111,8 @@ class AsusWrtHttpBridge(AsusWrtBridge):
105
111
  _configuration_url: Incomplete
106
112
  _firmware: Incomplete
107
113
  _model: Incomplete
114
+ _model_id: Incomplete
115
+ _serial_number: Incomplete
108
116
  async def async_connect(self) -> None: ...
109
117
  async def async_disconnect(self) -> None: ...
110
118
  async def _get_data(self, datatype: AsusData, force: bool = False) -> dict[str, Any]: ...
@@ -1,23 +1,28 @@
1
- from .const import CHARGEPOINT_SETTINGS as CHARGEPOINT_SETTINGS, CHARGEPOINT_STATUS as CHARGEPOINT_STATUS, DOMAIN as DOMAIN, EVSE_ID as EVSE_ID, LOGGER as LOGGER, PLUG_AND_CHARGE as PLUG_AND_CHARGE, VALUE as VALUE
1
+ from .const import BCU_APP as BCU_APP, CHARGEPOINT_SETTINGS as CHARGEPOINT_SETTINGS, CHARGEPOINT_STATUS as CHARGEPOINT_STATUS, CHARGING_CARD_ID as CHARGING_CARD_ID, DOMAIN as DOMAIN, EVSE_ID as EVSE_ID, LOGGER as LOGGER, PLUG_AND_CHARGE as PLUG_AND_CHARGE, SERVICE_START_CHARGE_SESSION as SERVICE_START_CHARGE_SESSION, VALUE as VALUE
2
2
  from _typeshed import Incomplete
3
3
  from bluecurrent_api import Client
4
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
- from homeassistant.const import CONF_API_TOKEN as CONF_API_TOKEN, Platform as Platform
6
- from homeassistant.core import HomeAssistant as HomeAssistant
7
- from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
4
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigEntryState as ConfigEntryState
5
+ from homeassistant.const import CONF_API_TOKEN as CONF_API_TOKEN, CONF_DEVICE_ID as CONF_DEVICE_ID, Platform as Platform
6
+ from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall
7
+ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady, ServiceValidationError as ServiceValidationError
8
8
  from homeassistant.helpers.dispatcher import async_dispatcher_send as async_dispatcher_send
9
+ from homeassistant.helpers.typing import ConfigType as ConfigType
9
10
  from typing import Any
10
11
 
11
12
  type BlueCurrentConfigEntry = ConfigEntry[Connector]
12
13
  PLATFORMS: Incomplete
13
14
  CHARGE_POINTS: str
15
+ CHARGE_CARDS: str
14
16
  DATA: str
15
17
  DELAY: int
16
18
  GRID: str
17
19
  OBJECT: str
18
20
  VALUE_TYPES: Incomplete
21
+ CONFIG_SCHEMA: Incomplete
22
+ SERVICE_START_CHARGE_SESSION_SCHEMA: Incomplete
19
23
 
20
24
  async def async_setup_entry(hass: HomeAssistant, config_entry: BlueCurrentConfigEntry) -> bool: ...
25
+ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
21
26
  async def async_unload_entry(hass: HomeAssistant, config_entry: BlueCurrentConfigEntry) -> bool: ...
22
27
 
23
28
  class Connector:
@@ -26,6 +31,7 @@ class Connector:
26
31
  client: Incomplete
27
32
  charge_points: dict[str, dict]
28
33
  grid: dict[str, Any]
34
+ charge_cards: dict[str, dict[str, Any]]
29
35
  def __init__(self, hass: HomeAssistant, config: BlueCurrentConfigEntry, client: Client) -> None: ...
30
36
  async def on_data(self, message: dict) -> None: ...
31
37
  async def handle_charge_point_data(self, charge_points_data: list) -> None: ...
@@ -4,6 +4,12 @@ DOMAIN: str
4
4
  LOGGER: Incomplete
5
5
  EVSE_ID: str
6
6
  MODEL_TYPE: str
7
+ CARD: str
8
+ UID: str
9
+ BCU_APP: str
10
+ WITHOUT_CHARGING_CARD: str
11
+ CHARGING_CARD_ID: str
12
+ SERVICE_START_CHARGE_SESSION: str
7
13
  PLUG_AND_CHARGE: str
8
14
  VALUE: str
9
15
  PERMISSION: str
@@ -1,4 +1,4 @@
1
- from .api import async_address_present as async_address_present, async_ble_device_from_address as async_ble_device_from_address, async_discovered_service_info as async_discovered_service_info, async_get_advertisement_callback as async_get_advertisement_callback, async_get_fallback_availability_interval as async_get_fallback_availability_interval, async_get_learned_advertising_interval as async_get_learned_advertising_interval, async_get_scanner as async_get_scanner, async_last_service_info as async_last_service_info, async_process_advertisements as async_process_advertisements, async_rediscover_address as async_rediscover_address, async_register_callback as async_register_callback, async_register_scanner as async_register_scanner, async_remove_scanner as async_remove_scanner, async_scanner_by_source as async_scanner_by_source, async_scanner_count as async_scanner_count, async_scanner_devices_by_address as async_scanner_devices_by_address, async_set_fallback_availability_interval as async_set_fallback_availability_interval, async_track_unavailable as async_track_unavailable
1
+ from .api import async_address_present as async_address_present, async_ble_device_from_address as async_ble_device_from_address, async_current_scanners as async_current_scanners, async_discovered_service_info as async_discovered_service_info, async_get_advertisement_callback as async_get_advertisement_callback, async_get_fallback_availability_interval as async_get_fallback_availability_interval, async_get_learned_advertising_interval as async_get_learned_advertising_interval, async_get_scanner as async_get_scanner, async_last_service_info as async_last_service_info, async_process_advertisements as async_process_advertisements, async_rediscover_address as async_rediscover_address, async_register_callback as async_register_callback, async_register_scanner as async_register_scanner, async_remove_scanner as async_remove_scanner, async_scanner_by_source as async_scanner_by_source, async_scanner_count as async_scanner_count, async_scanner_devices_by_address as async_scanner_devices_by_address, async_set_fallback_availability_interval as async_set_fallback_availability_interval, async_track_unavailable as async_track_unavailable
2
2
  from .const import FALLBACK_MAXIMUM_STALE_ADVERTISEMENT_SECONDS as FALLBACK_MAXIMUM_STALE_ADVERTISEMENT_SECONDS, SOURCE_LOCAL as SOURCE_LOCAL
3
3
  from .match import BluetoothCallbackMatcher as BluetoothCallbackMatcher
4
4
  from .models import BluetoothCallback as BluetoothCallback, BluetoothChange as BluetoothChange
@@ -7,7 +7,7 @@ from habluetooth import BaseHaRemoteScanner as BaseHaRemoteScanner, BaseHaScanne
7
7
  from home_assistant_bluetooth import BluetoothServiceInfo as BluetoothServiceInfo, BluetoothServiceInfoBleak as BluetoothServiceInfoBleak
8
8
  from homeassistant.core import callback as hass_callback
9
9
 
10
- __all__ = ['FALLBACK_MAXIMUM_STALE_ADVERTISEMENT_SECONDS', 'MONOTONIC_TIME', 'SOURCE_LOCAL', 'BaseHaRemoteScanner', 'BaseHaScanner', 'BluetoothCallback', 'BluetoothCallbackMatcher', 'BluetoothChange', 'BluetoothScannerDevice', 'BluetoothScanningMode', 'BluetoothServiceInfo', 'BluetoothServiceInfoBleak', 'HaBluetoothConnector', 'HomeAssistantRemoteScanner', 'async_address_present', 'async_ble_device_from_address', 'async_discovered_service_info', 'async_get_advertisement_callback', 'async_get_fallback_availability_interval', 'async_get_learned_advertising_interval', 'async_get_scanner', 'async_last_service_info', 'async_process_advertisements', 'async_rediscover_address', 'async_register_callback', 'async_register_scanner', 'async_remove_scanner', 'async_scanner_by_source', 'async_scanner_count', 'async_scanner_devices_by_address', 'async_set_fallback_availability_interval', 'async_track_unavailable']
10
+ __all__ = ['FALLBACK_MAXIMUM_STALE_ADVERTISEMENT_SECONDS', 'MONOTONIC_TIME', 'SOURCE_LOCAL', 'BaseHaRemoteScanner', 'BaseHaScanner', 'BluetoothCallback', 'BluetoothCallbackMatcher', 'BluetoothChange', 'BluetoothScannerDevice', 'BluetoothScanningMode', 'BluetoothServiceInfo', 'BluetoothServiceInfoBleak', 'HaBluetoothConnector', 'HomeAssistantRemoteScanner', 'async_address_present', 'async_ble_device_from_address', 'async_current_scanners', 'async_discovered_service_info', 'async_get_advertisement_callback', 'async_get_fallback_availability_interval', 'async_get_learned_advertising_interval', 'async_get_scanner', 'async_last_service_info', 'async_process_advertisements', 'async_rediscover_address', 'async_register_callback', 'async_register_scanner', 'async_remove_scanner', 'async_scanner_by_source', 'async_scanner_count', 'async_scanner_devices_by_address', 'async_set_fallback_availability_interval', 'async_track_unavailable']
11
11
 
12
12
  # Names in __all__ with no definition:
13
13
  # HomeAssistantRemoteScanner
@@ -2,21 +2,24 @@ from .const import DATA_MANAGER as DATA_MANAGER
2
2
  from .manager import HomeAssistantBluetoothManager as HomeAssistantBluetoothManager
3
3
  from .match import BluetoothCallbackMatcher as BluetoothCallbackMatcher
4
4
  from .models import BluetoothCallback as BluetoothCallback, BluetoothChange as BluetoothChange, ProcessAdvertisementCallback as ProcessAdvertisementCallback
5
+ from bleak import BleakScanner
5
6
  from bleak.backends.device import BLEDevice as BLEDevice
6
7
  from collections.abc import Callable as Callable, Iterable
7
- from habluetooth import BaseHaScanner as BaseHaScanner, BluetoothScannerDevice as BluetoothScannerDevice, BluetoothScanningMode as BluetoothScanningMode, HaBleakScannerWrapper
8
+ from habluetooth import BaseHaScanner as BaseHaScanner, BluetoothScannerDevice as BluetoothScannerDevice, BluetoothScanningMode as BluetoothScanningMode
8
9
  from home_assistant_bluetooth import BluetoothServiceInfoBleak as BluetoothServiceInfoBleak
9
10
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HomeAssistant as HomeAssistant, callback as hass_callback
10
11
  from homeassistant.helpers.singleton import singleton as singleton
11
12
 
12
13
  def _get_manager(hass: HomeAssistant) -> HomeAssistantBluetoothManager: ...
13
14
  @hass_callback
14
- def async_get_scanner(hass: HomeAssistant) -> HaBleakScannerWrapper: ...
15
+ def async_get_scanner(hass: HomeAssistant) -> BleakScanner: ...
15
16
  @hass_callback
16
17
  def async_scanner_by_source(hass: HomeAssistant, source: str) -> BaseHaScanner | None: ...
17
18
  @hass_callback
18
19
  def async_scanner_count(hass: HomeAssistant, connectable: bool = True) -> int: ...
19
20
  @hass_callback
21
+ def async_current_scanners(hass: HomeAssistant) -> list[BaseHaScanner]: ...
22
+ @hass_callback
20
23
  def async_discovered_service_info(hass: HomeAssistant, connectable: bool = True) -> Iterable[BluetoothServiceInfoBleak]: ...
21
24
  @hass_callback
22
25
  def async_last_service_info(hass: HomeAssistant, address: str, connectable: bool = True) -> BluetoothServiceInfoBleak | None: ...
@@ -7,12 +7,13 @@ from _typeshed import Incomplete
7
7
  from bleak_retry_connector import BleakSlotManager as BleakSlotManager
8
8
  from bluetooth_adapters import BluetoothAdapters as BluetoothAdapters
9
9
  from collections.abc import Callable as Callable
10
- from habluetooth import BaseHaScanner as BaseHaScanner, BluetoothManager
10
+ from habluetooth import BaseHaScanner as BaseHaScanner, BluetoothManager, HaScanner
11
11
  from homeassistant import config_entries as config_entries
12
12
  from homeassistant.const import EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP, EVENT_LOGGING_CHANGED as EVENT_LOGGING_CHANGED
13
13
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Event as Event, HomeAssistant as HomeAssistant, callback as hass_callback
14
14
  from homeassistant.helpers import discovery_flow as discovery_flow
15
15
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
16
+ from homeassistant.util.package import is_docker_env as is_docker_env
16
17
 
17
18
  _LOGGER: Incomplete
18
19
 
@@ -46,3 +47,8 @@ class HomeAssistantBluetoothManager(BluetoothManager):
46
47
  def async_remove_scanner(self, source: str) -> None: ...
47
48
  @hass_callback
48
49
  def _handle_config_entry_removed(self, entry: config_entries.ConfigEntry) -> None: ...
50
+ def on_scanner_start(self, scanner: BaseHaScanner) -> None: ...
51
+ @hass_callback
52
+ def async_check_scanning_mode(self, scanner: HaScanner) -> None: ...
53
+ @hass_callback
54
+ def async_check_degraded_mode(self, scanner: HaScanner) -> None: ...
@@ -5,13 +5,15 @@ from .models import BluetoothChange as BluetoothChange
5
5
  from .util import InvalidConfigEntryID as InvalidConfigEntryID, InvalidSource as InvalidSource, config_entry_id_to_source as config_entry_id_to_source
6
6
  from _typeshed import Incomplete
7
7
  from collections.abc import Callable as Callable, Iterable
8
- from habluetooth import HaBluetoothSlotAllocations as HaBluetoothSlotAllocations, HaScannerRegistration as HaScannerRegistration
8
+ from habluetooth import BaseHaScanner as BaseHaScanner, HaBluetoothSlotAllocations as HaBluetoothSlotAllocations, HaScannerModeChange as HaScannerModeChange, HaScannerRegistration as HaScannerRegistration
9
9
  from home_assistant_bluetooth import BluetoothServiceInfoBleak as BluetoothServiceInfoBleak
10
10
  from homeassistant.components import websocket_api as websocket_api
11
11
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
12
12
  from homeassistant.helpers.json import json_bytes as json_bytes
13
13
  from typing import Any
14
14
 
15
+ @callback
16
+ def _async_get_source_from_config_entry(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg_id: int, config_entry_id: str | None, validate_source: bool = True) -> str | None: ...
15
17
  @callback
16
18
  def async_setup(hass: HomeAssistant) -> None: ...
17
19
  def serialize_service_info(service_info: BluetoothServiceInfoBleak, time_diff: float) -> dict[str, Any]: ...
@@ -44,3 +46,6 @@ async def ws_subscribe_connection_allocations(hass: HomeAssistant, connection: w
44
46
  @websocket_api.require_admin
45
47
  @websocket_api.async_response
46
48
  async def ws_subscribe_scanner_details(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
49
+ @websocket_api.require_admin
50
+ @websocket_api.async_response
51
+ async def ws_subscribe_scanner_state(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
@@ -1,12 +1,14 @@
1
- from .const import DOMAIN as DOMAIN
1
+ from .const import CONF_COMMUNITY as CONF_COMMUNITY, DEFAULT_COMMUNITY as DEFAULT_COMMUNITY, DEFAULT_PORT as DEFAULT_PORT, DOMAIN as DOMAIN, SECTION_ADVANCED_SETTINGS as SECTION_ADVANCED_SETTINGS
2
2
  from .coordinator import BrotherConfigEntry as BrotherConfigEntry, BrotherDataUpdateCoordinator as BrotherDataUpdateCoordinator
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.components.snmp import async_get_snmp_engine as async_get_snmp_engine
5
- from homeassistant.const import CONF_HOST as CONF_HOST, CONF_TYPE as CONF_TYPE, Platform as Platform
5
+ from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PORT as CONF_PORT, CONF_TYPE as CONF_TYPE, Platform as Platform
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant
7
7
  from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
8
8
 
9
+ _LOGGER: Incomplete
9
10
  PLATFORMS: Incomplete
10
11
 
11
12
  async def async_setup_entry(hass: HomeAssistant, entry: BrotherConfigEntry) -> bool: ...
12
13
  async def async_unload_entry(hass: HomeAssistant, entry: BrotherConfigEntry) -> bool: ...
14
+ async def async_migrate_entry(hass: HomeAssistant, entry: BrotherConfigEntry) -> bool: ...
@@ -1,22 +1,25 @@
1
- from .const import DOMAIN as DOMAIN, PRINTER_TYPES as PRINTER_TYPES
1
+ from .const import CONF_COMMUNITY as CONF_COMMUNITY, DEFAULT_COMMUNITY as DEFAULT_COMMUNITY, DEFAULT_PORT as DEFAULT_PORT, DOMAIN as DOMAIN, PRINTER_TYPES as PRINTER_TYPES, SECTION_ADVANCED_SETTINGS as SECTION_ADVANCED_SETTINGS
2
2
  from _typeshed import Incomplete
3
3
  from brother import Brother
4
4
  from homeassistant.components.snmp import async_get_snmp_engine as async_get_snmp_engine
5
5
  from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
6
- from homeassistant.const import CONF_HOST as CONF_HOST, CONF_TYPE as CONF_TYPE
6
+ from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PORT as CONF_PORT, CONF_TYPE as CONF_TYPE
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant
8
+ from homeassistant.data_entry_flow import section as section
8
9
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
9
10
  from homeassistant.helpers.service_info.zeroconf import ZeroconfServiceInfo as ZeroconfServiceInfo
10
11
  from homeassistant.util.network import is_host_valid as is_host_valid
11
12
  from typing import Any
12
13
 
13
14
  DATA_SCHEMA: Incomplete
15
+ ZEROCONF_SCHEMA: Incomplete
14
16
  RECONFIGURE_SCHEMA: Incomplete
15
17
 
16
18
  async def validate_input(hass: HomeAssistant, user_input: dict[str, Any], expected_mac: str | None = None) -> tuple[str, str]: ...
17
19
 
18
20
  class BrotherConfigFlow(ConfigFlow, domain=DOMAIN):
19
21
  VERSION: int
22
+ MINOR_VERSION: int
20
23
  brother: Brother
21
24
  host: str | None
22
25
  def __init__(self) -> None: ...
@@ -4,3 +4,7 @@ from typing import Final
4
4
  DOMAIN: Final[str]
5
5
  PRINTER_TYPES: Final[Incomplete]
6
6
  UPDATE_INTERVAL: Incomplete
7
+ SECTION_ADVANCED_SETTINGS: str
8
+ CONF_COMMUNITY: str
9
+ DEFAULT_COMMUNITY: str
10
+ DEFAULT_PORT: int
@@ -5,7 +5,7 @@ from _typeshed import Incomplete
5
5
  from bthome_ble import SensorUpdate as SensorUpdate
6
6
  from homeassistant.components.bluetooth.passive_update_processor import PassiveBluetoothDataUpdate as PassiveBluetoothDataUpdate, PassiveBluetoothProcessorEntity as PassiveBluetoothProcessorEntity
7
7
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
8
- from homeassistant.const import CONCENTRATION_MICROGRAMS_PER_CUBIC_METER as CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, DEGREE as DEGREE, EntityCategory as EntityCategory, LIGHT_LUX as LIGHT_LUX, PERCENTAGE as PERCENTAGE, SIGNAL_STRENGTH_DECIBELS_MILLIWATT as SIGNAL_STRENGTH_DECIBELS_MILLIWATT, UnitOfConductivity as UnitOfConductivity, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfLength as UnitOfLength, UnitOfMass as UnitOfMass, UnitOfPower as UnitOfPower, UnitOfPressure as UnitOfPressure, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime, UnitOfVolume as UnitOfVolume, UnitOfVolumeFlowRate as UnitOfVolumeFlowRate
8
+ from homeassistant.const import CONCENTRATION_MICROGRAMS_PER_CUBIC_METER as CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, DEGREE as DEGREE, EntityCategory as EntityCategory, LIGHT_LUX as LIGHT_LUX, PERCENTAGE as PERCENTAGE, REVOLUTIONS_PER_MINUTE as REVOLUTIONS_PER_MINUTE, SIGNAL_STRENGTH_DECIBELS_MILLIWATT as SIGNAL_STRENGTH_DECIBELS_MILLIWATT, UnitOfConductivity as UnitOfConductivity, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfLength as UnitOfLength, UnitOfMass as UnitOfMass, UnitOfPower as UnitOfPower, UnitOfPressure as UnitOfPressure, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime, UnitOfVolume as UnitOfVolume, UnitOfVolumeFlowRate as UnitOfVolumeFlowRate
9
9
  from homeassistant.core import HomeAssistant as HomeAssistant
10
10
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
11
11
  from homeassistant.helpers.sensor import sensor_device_info_to_hass_device_info as sensor_device_info_to_hass_device_info
@@ -3,7 +3,7 @@ import collections
3
3
  from .const import CAMERA_IMAGE_TIMEOUT as CAMERA_IMAGE_TIMEOUT, CAMERA_STREAM_SOURCE_TIMEOUT as CAMERA_STREAM_SOURCE_TIMEOUT, CONF_DURATION as CONF_DURATION, CONF_LOOKBACK as CONF_LOOKBACK, CameraState as CameraState, DATA_CAMERA_PREFS as DATA_CAMERA_PREFS, DATA_COMPONENT as DATA_COMPONENT, DOMAIN as DOMAIN, PREF_ORIENTATION as PREF_ORIENTATION, PREF_PRELOAD_STREAM as PREF_PRELOAD_STREAM, SERVICE_RECORD as SERVICE_RECORD, StreamType as StreamType
4
4
  from .helper import get_camera_from_entity_id as get_camera_from_entity_id
5
5
  from .img_util import scale_jpeg_camera_image as scale_jpeg_camera_image
6
- from .prefs import CameraPreferences as CameraPreferences, DynamicStreamSettings as DynamicStreamSettings
6
+ from .prefs import CameraPreferences as CameraPreferences, DynamicStreamSettings as DynamicStreamSettings, get_dynamic_camera_stream_settings as get_dynamic_camera_stream_settings
7
7
  from .webrtc import CameraWebRTCProvider as CameraWebRTCProvider, DATA_ICE_SERVERS as DATA_ICE_SERVERS, WebRTCAnswer as WebRTCAnswer, WebRTCCandidate as WebRTCCandidate, WebRTCClientConfiguration as WebRTCClientConfiguration, WebRTCError as WebRTCError, WebRTCMessage as WebRTCMessage, WebRTCSendMessage as WebRTCSendMessage, async_get_supported_provider as async_get_supported_provider, async_register_ice_servers as async_register_ice_servers, async_register_webrtc_provider as async_register_webrtc_provider, async_register_ws as async_register_ws
8
8
  from _typeshed import Incomplete
9
9
  from aiohttp import web
@@ -1,4 +1,4 @@
1
- from .const import DOMAIN as DOMAIN, PREF_ORIENTATION as PREF_ORIENTATION, PREF_PRELOAD_STREAM as PREF_PRELOAD_STREAM
1
+ from .const import DATA_CAMERA_PREFS as DATA_CAMERA_PREFS, DOMAIN as DOMAIN, PREF_ORIENTATION as PREF_ORIENTATION, PREF_PRELOAD_STREAM as PREF_PRELOAD_STREAM
2
2
  from _typeshed import Incomplete
3
3
  from dataclasses import dataclass
4
4
  from homeassistant.components.stream import Orientation as Orientation
@@ -25,3 +25,5 @@ class CameraPreferences:
25
25
  async def async_load(self) -> None: ...
26
26
  async def async_update(self, entity_id: str, *, preload_stream: bool | UndefinedType = ..., orientation: Orientation | UndefinedType = ...) -> dict[str, bool | Orientation]: ...
27
27
  async def get_dynamic_stream_settings(self, entity_id: str) -> DynamicStreamSettings: ...
28
+
29
+ async def get_dynamic_camera_stream_settings(hass: HomeAssistant, entity_id: str) -> DynamicStreamSettings: ...
@@ -17,6 +17,7 @@ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callb
17
17
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
18
18
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
19
19
  from homeassistant.helpers.dispatcher import async_dispatcher_send as async_dispatcher_send
20
+ from homeassistant.loader import async_get_custom_components as async_get_custom_components, async_get_loaded_integration as async_get_loaded_integration
20
21
  from homeassistant.util.location import async_detect_location_info as async_detect_location_info
21
22
  from http import HTTPStatus
22
23
  from typing import Any, Concatenate
@@ -82,6 +83,7 @@ class CloudForgotPasswordView(HomeAssistantView):
82
83
  class DownloadSupportPackageView(HomeAssistantView):
83
84
  url: str
84
85
  name: str
86
+ async def _get_integration_info(self, hass: HomeAssistant) -> dict[str, Any]: ...
85
87
  async def _generate_markdown(self, hass: HomeAssistant, hass_info: dict[str, Any], domains_info: dict[str, dict[str, str]]) -> str: ...
86
88
  async def get(self, request: web.Request) -> web.Response: ...
87
89
 
@@ -10,7 +10,8 @@ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
10
10
  from typing import Any
11
11
 
12
12
  DEFAULT_HOST: str
13
- DEFAULT_PIN: int
13
+ DEFAULT_PIN: str
14
+ pin_regex: str
14
15
  USER_SCHEMA: Incomplete
15
16
  STEP_REAUTH_DATA_SCHEMA: Incomplete
16
17
  STEP_RECONFIGURE: Incomplete
@@ -9,7 +9,7 @@ from homeassistant.core import HomeAssistant as HomeAssistant
9
9
  from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed
10
10
  from homeassistant.helpers import device_registry as dr
11
11
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
12
- from typing import TypeVar
12
+ from typing import Any, TypeVar
13
13
 
14
14
  type ComelitConfigEntry = ConfigEntry[ComelitBaseCoordinator]
15
15
  T = TypeVar('T', bound=dict[str, dict[int, ComelitSerialBridgeObject]] | AlarmDataObject)
@@ -25,6 +25,7 @@ class ComelitBaseCoordinator(DataUpdateCoordinator[T], metaclass=abc.ABCMeta):
25
25
  async def _async_update_data(self) -> T: ...
26
26
  @abstractmethod
27
27
  async def _async_update_system_data(self) -> T: ...
28
+ async def _async_remove_stale_devices(self, previous_list: dict[int, Any], current_list: dict[int, Any], dev_type: str) -> None: ...
28
29
 
29
30
  class ComelitSerialBridge(ComelitBaseCoordinator[dict[str, dict[int, ComelitSerialBridgeObject]]]):
30
31
  _hw_version: str
@@ -1,7 +1,7 @@
1
1
  from .coordinator import ComelitConfigEntry as ComelitConfigEntry, ComelitSerialBridge as ComelitSerialBridge, ComelitVedoSystem as ComelitVedoSystem
2
2
  from .entity import ComelitBridgeBaseEntity as ComelitBridgeBaseEntity
3
3
  from _typeshed import Incomplete
4
- from aiocomelit import ComelitSerialBridgeObject as ComelitSerialBridgeObject, ComelitVedoZoneObject as ComelitVedoZoneObject
4
+ from aiocomelit.api import ComelitSerialBridgeObject as ComelitSerialBridgeObject, ComelitVedoZoneObject as ComelitVedoZoneObject
5
5
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription
6
6
  from homeassistant.const import CONF_TYPE as CONF_TYPE, UnitOfPower as UnitOfPower
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant
@@ -0,0 +1,11 @@
1
+ from .coordinator import CompitConfigEntry as CompitConfigEntry, CompitDataUpdateCoordinator as CompitDataUpdateCoordinator
2
+ from _typeshed import Incomplete
3
+ from homeassistant.const import CONF_EMAIL as CONF_EMAIL, CONF_PASSWORD as CONF_PASSWORD, Platform as Platform
4
+ from homeassistant.core import HomeAssistant as HomeAssistant
5
+ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
6
+ from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
7
+
8
+ PLATFORMS: Incomplete
9
+
10
+ async def async_setup_entry(hass: HomeAssistant, entry: CompitConfigEntry) -> bool: ...
11
+ async def async_unload_entry(hass: HomeAssistant, entry: CompitConfigEntry) -> bool: ...
@@ -0,0 +1,63 @@
1
+ import logging
2
+ from .const import DOMAIN as DOMAIN, MANUFACTURER_NAME as MANUFACTURER_NAME
3
+ from .coordinator import CompitConfigEntry as CompitConfigEntry, CompitDataUpdateCoordinator as CompitDataUpdateCoordinator
4
+ from _typeshed import Incomplete
5
+ from compit_inext_api import Param as Param, Parameter as Parameter
6
+ from compit_inext_api.consts import CompitParameter
7
+ from homeassistant.components.climate import ClimateEntity as ClimateEntity, ClimateEntityFeature as ClimateEntityFeature, FAN_AUTO as FAN_AUTO, FAN_HIGH as FAN_HIGH, FAN_LOW as FAN_LOW, FAN_MEDIUM as FAN_MEDIUM, FAN_OFF as FAN_OFF, HVACMode as HVACMode, PRESET_AWAY as PRESET_AWAY, PRESET_ECO as PRESET_ECO, PRESET_HOME as PRESET_HOME, PRESET_NONE as PRESET_NONE
8
+ from homeassistant.const import ATTR_TEMPERATURE as ATTR_TEMPERATURE, UnitOfTemperature as UnitOfTemperature
9
+ from homeassistant.core import HomeAssistant as HomeAssistant
10
+ from homeassistant.exceptions import ServiceValidationError as ServiceValidationError
11
+ from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
12
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
13
+ from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
14
+ from propcache.api import cached_property
15
+ from typing import Any
16
+
17
+ _LOGGER: logging.Logger
18
+ CLIMATE_DEVICE_CLASS: int
19
+ PARALLEL_UPDATES: int
20
+ COMPIT_MODE_MAP: Incomplete
21
+ COMPIT_FANSPEED_MAP: Incomplete
22
+ COMPIT_PRESET_MAP: Incomplete
23
+ HVAC_MODE_TO_COMPIT_MODE: Incomplete
24
+ FAN_MODE_TO_COMPIT_FAN_MODE: Incomplete
25
+ PRESET_MODE_TO_COMPIT_PRESET_MODE: Incomplete
26
+
27
+ async def async_setup_entry(hass: HomeAssistant, entry: CompitConfigEntry, async_add_devices: AddConfigEntryEntitiesCallback) -> None: ...
28
+
29
+ class CompitClimate(CoordinatorEntity[CompitDataUpdateCoordinator], ClimateEntity):
30
+ _attr_temperature_unit: Incomplete
31
+ _attr_hvac_modes: Incomplete
32
+ _attr_name: Incomplete
33
+ _attr_has_entity_name: bool
34
+ _attr_supported_features: Incomplete
35
+ _attr_unique_id: Incomplete
36
+ _attr_device_info: Incomplete
37
+ parameters: Incomplete
38
+ device_id: Incomplete
39
+ available_presets: Parameter | None
40
+ available_fan_modes: Parameter | None
41
+ def __init__(self, coordinator: CompitDataUpdateCoordinator, device_id: int, parameters: dict[str, Parameter], device_name: str) -> None: ...
42
+ @property
43
+ def available(self) -> bool: ...
44
+ @property
45
+ def current_temperature(self) -> float | None: ...
46
+ @property
47
+ def target_temperature(self) -> float | None: ...
48
+ @cached_property
49
+ def preset_modes(self) -> list[str] | None: ...
50
+ @cached_property
51
+ def fan_modes(self) -> list[str] | None: ...
52
+ @property
53
+ def preset_mode(self) -> str | None: ...
54
+ @property
55
+ def fan_mode(self) -> str | None: ...
56
+ @property
57
+ def hvac_mode(self) -> HVACMode | None: ...
58
+ async def async_set_temperature(self, **kwargs: Any) -> None: ...
59
+ async def async_set_hvac_mode(self, hvac_mode: HVACMode) -> None: ...
60
+ async def async_set_preset_mode(self, preset_mode: str) -> None: ...
61
+ async def async_set_fan_mode(self, fan_mode: str) -> None: ...
62
+ async def set_parameter_value(self, parameter: CompitParameter, value: int) -> None: ...
63
+ def get_parameter_value(self, parameter: CompitParameter) -> Param | 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, SOURCE_REAUTH as SOURCE_REAUTH
5
+ from homeassistant.const import CONF_EMAIL as CONF_EMAIL, CONF_PASSWORD as CONF_PASSWORD
6
+ from homeassistant.helpers.aiohttp_client import async_create_clientsession as async_create_clientsession
7
+ from typing import Any
8
+
9
+ _LOGGER: Incomplete
10
+ STEP_USER_DATA_SCHEMA: Incomplete
11
+ STEP_REAUTH_SCHEMA: Incomplete
12
+
13
+ class CompitConfigFlow(ConfigFlow, domain=DOMAIN):
14
+ VERSION: int
15
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
16
+ async def async_step_reauth(self, data: Mapping[str, Any]) -> ConfigFlowResult: ...
17
+ async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -0,0 +1,2 @@
1
+ DOMAIN: str
2
+ MANUFACTURER_NAME: str
@@ -0,0 +1,16 @@
1
+ import logging
2
+ from .const import DOMAIN as DOMAIN
3
+ from _typeshed import Incomplete
4
+ from compit_inext_api import CompitApiConnector as CompitApiConnector, DeviceInstance
5
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
+ from homeassistant.core import HomeAssistant as HomeAssistant
7
+ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator
8
+
9
+ SCAN_INTERVAL: Incomplete
10
+ _LOGGER: logging.Logger
11
+ type CompitConfigEntry = ConfigEntry[CompitDataUpdateCoordinator]
12
+
13
+ class CompitDataUpdateCoordinator(DataUpdateCoordinator[dict[int, DeviceInstance]]):
14
+ connector: Incomplete
15
+ def __init__(self, hass: HomeAssistant, config_entry: ConfigEntry, connector: CompitApiConnector) -> None: ...
16
+ async def _async_update_data(self) -> dict[int, DeviceInstance]: ...
@@ -0,0 +1,5 @@
1
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
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: ConfigEntry) -> dict[str, Any]: ...
@@ -1,3 +1,4 @@
1
+ import aiodns
1
2
  from .const import CONF_HOSTNAME as CONF_HOSTNAME, CONF_IPV4 as CONF_IPV4, CONF_IPV6 as CONF_IPV6, CONF_PORT_IPV6 as CONF_PORT_IPV6, CONF_RESOLVER as CONF_RESOLVER, CONF_RESOLVER_IPV6 as CONF_RESOLVER_IPV6, DOMAIN as DOMAIN
2
3
  from _typeshed import Incomplete
3
4
  from homeassistant.components.sensor import SensorEntity as SensorEntity
@@ -23,12 +24,15 @@ class WanIpSensor(SensorEntity):
23
24
  _attr_name: Incomplete
24
25
  _attr_unique_id: Incomplete
25
26
  hostname: Incomplete
26
- resolver: Incomplete
27
+ port: Incomplete
28
+ _resolver: Incomplete
27
29
  querytype: Literal['A', 'AAAA']
28
30
  _retries: Incomplete
29
31
  _attr_extra_state_attributes: Incomplete
30
32
  _attr_device_info: Incomplete
33
+ resolver: aiodns.DNSResolver
31
34
  def __init__(self, name: str, hostname: str, resolver: str, ipv6: bool, port: int) -> None: ...
35
+ def create_dns_resolver(self) -> None: ...
32
36
  _attr_native_value: Incomplete
33
37
  _attr_available: bool
34
38
  async def async_update(self) -> None: ...
@@ -0,0 +1,10 @@
1
+ from .coordinator import DropletConfigEntry as DropletConfigEntry, DropletDataCoordinator as DropletDataCoordinator
2
+ from _typeshed import Incomplete
3
+ from homeassistant.const import Platform as Platform
4
+ from homeassistant.core import HomeAssistant as HomeAssistant
5
+
6
+ PLATFORMS: list[Platform]
7
+ logger: Incomplete
8
+
9
+ async def async_setup_entry(hass: HomeAssistant, config_entry: DropletConfigEntry) -> bool: ...
10
+ async def async_unload_entry(hass: HomeAssistant, config_entry: DropletConfigEntry) -> bool: ...
@@ -0,0 +1,13 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
3
+ from homeassistant.const import CONF_CODE as CONF_CODE, CONF_DEVICE_ID as CONF_DEVICE_ID, CONF_IP_ADDRESS as CONF_IP_ADDRESS, CONF_PORT as CONF_PORT
4
+ from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
5
+ from homeassistant.helpers.service_info.zeroconf import ZeroconfServiceInfo as ZeroconfServiceInfo
6
+ from pydroplet.droplet import DropletDiscovery
7
+ from typing import Any
8
+
9
+ class DropletConfigFlow(ConfigFlow, domain=DOMAIN):
10
+ _droplet_discovery: DropletDiscovery
11
+ async def async_step_zeroconf(self, discovery_info: ZeroconfServiceInfo) -> ConfigFlowResult: ...
12
+ async def async_step_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
13
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -0,0 +1,7 @@
1
+ CONNECT_DELAY: int
2
+ DOMAIN: str
3
+ DEVICE_NAME: str
4
+ KEY_CURRENT_FLOW_RATE: str
5
+ KEY_VOLUME: str
6
+ KEY_SIGNAL_QUALITY: str
7
+ KEY_SERVER_CONNECTIVITY: str
@@ -0,0 +1,23 @@
1
+ from .const import CONNECT_DELAY as CONNECT_DELAY, DOMAIN as DOMAIN
2
+ from _typeshed import Incomplete
3
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
4
+ from homeassistant.const import CONF_CODE as CONF_CODE, CONF_IP_ADDRESS as CONF_IP_ADDRESS, CONF_PORT as CONF_PORT
5
+ from homeassistant.core import HomeAssistant as HomeAssistant
6
+ from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
7
+ from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
8
+ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
9
+
10
+ VERSION_TIMEOUT: int
11
+ _LOGGER: Incomplete
12
+ TIMEOUT: int
13
+ type DropletConfigEntry = ConfigEntry[DropletDataCoordinator]
14
+
15
+ class DropletDataCoordinator(DataUpdateCoordinator[None]):
16
+ config_entry: DropletConfigEntry
17
+ droplet: Incomplete
18
+ unique_id: Incomplete
19
+ def __init__(self, hass: HomeAssistant, entry: DropletConfigEntry) -> None: ...
20
+ async def _async_setup(self) -> None: ...
21
+ async def _async_update_data(self) -> None: ...
22
+ async def setup(self) -> bool: ...
23
+ def get_availability(self) -> bool: ...
@@ -0,0 +1,37 @@
1
+ from .const import DOMAIN as DOMAIN, KEY_CURRENT_FLOW_RATE as KEY_CURRENT_FLOW_RATE, KEY_SERVER_CONNECTIVITY as KEY_SERVER_CONNECTIVITY, KEY_SIGNAL_QUALITY as KEY_SIGNAL_QUALITY, KEY_VOLUME as KEY_VOLUME
2
+ from .coordinator import DropletConfigEntry as DropletConfigEntry, DropletDataCoordinator as DropletDataCoordinator
3
+ from _typeshed import Incomplete
4
+ from collections.abc import Callable as Callable
5
+ from dataclasses import dataclass
6
+ from datetime import datetime
7
+ from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
8
+ from homeassistant.const import EntityCategory as EntityCategory, UnitOfVolume as UnitOfVolume, UnitOfVolumeFlowRate as UnitOfVolumeFlowRate
9
+ from homeassistant.core import HomeAssistant as HomeAssistant
10
+ from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
11
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
12
+ from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
13
+ from pydroplet.droplet import Droplet as Droplet
14
+
15
+ ML_L_CONVERSION: int
16
+
17
+ @dataclass(kw_only=True, frozen=True)
18
+ class DropletSensorEntityDescription(SensorEntityDescription):
19
+ value_fn: Callable[[Droplet], float | str | None]
20
+ last_reset_fn: Callable[[Droplet], datetime | None] = ...
21
+
22
+ SENSORS: list[DropletSensorEntityDescription]
23
+
24
+ async def async_setup_entry(hass: HomeAssistant, config_entry: DropletConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
25
+
26
+ class DropletSensor(CoordinatorEntity[DropletDataCoordinator], SensorEntity):
27
+ entity_description: DropletSensorEntityDescription
28
+ _attr_has_entity_name: bool
29
+ _attr_unique_id: Incomplete
30
+ _attr_device_info: Incomplete
31
+ def __init__(self, coordinator: DropletDataCoordinator, entity_description: DropletSensorEntityDescription) -> None: ...
32
+ @property
33
+ def available(self) -> bool: ...
34
+ @property
35
+ def native_value(self) -> float | str | None: ...
36
+ @property
37
+ def last_reset(self) -> datetime | None: ...
@@ -5,6 +5,7 @@ from _typeshed import Incomplete
5
5
  from collections.abc import Callable as Callable
6
6
  from dataclasses import dataclass
7
7
  from deebot_client.capabilities import CapabilitySet
8
+ from deebot_client.device import Device as Device
8
9
  from deebot_client.events.base import Event as Event
9
10
  from homeassistant.components.number import NumberEntity as NumberEntity, NumberEntityDescription as NumberEntityDescription, NumberMode as NumberMode
10
11
  from homeassistant.const import DEGREE as DEGREE, EntityCategory as EntityCategory
@@ -22,7 +23,9 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: EcovacsConfigEntr
22
23
 
23
24
  class EcovacsNumberEntity[EventT: Event](EcovacsDescriptionEntity[CapabilitySet[EventT, [int]]], NumberEntity):
24
25
  entity_description: EcovacsNumberEntityDescription
25
- _attr_native_value: Incomplete
26
+ _attr_native_min_value: Incomplete
26
27
  _attr_native_max_value: Incomplete
28
+ def __init__(self, device: Device, capability: CapabilitySet[EventT, [int]], entity_description: EcovacsNumberEntityDescription) -> None: ...
29
+ _attr_native_value: Incomplete
27
30
  async def async_added_to_hass(self) -> None: ...
28
31
  async def async_set_native_value(self, value: float) -> None: ...
@@ -29,6 +29,7 @@ PORT_PROTOCOL_MAP: Incomplete
29
29
  async def validate_input(data: dict[str, str], mac: str | None) -> dict[str, str]: ...
30
30
  def _address_from_discovery(device: ElkSystem) -> str: ...
31
31
  def _make_url_from_data(data: dict[str, str]) -> str: ...
32
+ def _get_protocol_from_url(url: str) -> str: ...
32
33
  def _placeholders_from_device(device: ElkSystem) -> dict[str, str]: ...
33
34
 
34
35
  class Elkm1ConfigFlow(ConfigFlow, domain=DOMAIN):
@@ -42,6 +43,7 @@ class Elkm1ConfigFlow(ConfigFlow, domain=DOMAIN):
42
43
  async def _async_handle_discovery(self) -> ConfigFlowResult: ...
43
44
  def is_matching(self, other_flow: Self) -> bool: ...
44
45
  async def async_step_discovery_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
46
+ async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
45
47
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
46
48
  async def _async_create_or_error(self, user_input: dict[str, Any], importing: bool) -> tuple[dict[str, str] | None, ConfigFlowResult | None]: ...
47
49
  async def async_step_discovered_connection(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...