homeassistant-stubs 2024.4.3__py3-none-any.whl → 2024.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 (374) hide show
  1. homeassistant-stubs/auth/__init__.pyi +3 -1
  2. homeassistant-stubs/auth/jwt_wrapper.pyi +1 -1
  3. homeassistant-stubs/auth/permissions/__init__.pyi +1 -2
  4. homeassistant-stubs/auth/permissions/events.pyi +3 -2
  5. homeassistant-stubs/auth/session.pyi +46 -0
  6. homeassistant-stubs/backports/enum.pyi +6 -2
  7. homeassistant-stubs/backports/functools.pyi +5 -15
  8. homeassistant-stubs/block_async_io.pyi +8 -1
  9. homeassistant-stubs/bootstrap.pyi +7 -1
  10. homeassistant-stubs/components/accuweather/__init__.pyi +9 -13
  11. homeassistant-stubs/components/accuweather/config_flow.pyi +2 -10
  12. homeassistant-stubs/components/accuweather/const.pyi +2 -2
  13. homeassistant-stubs/components/accuweather/coordinator.pyi +27 -0
  14. homeassistant-stubs/components/accuweather/diagnostics.pyi +1 -1
  15. homeassistant-stubs/components/accuweather/sensor.pyi +29 -8
  16. homeassistant-stubs/components/accuweather/weather.pyi +9 -5
  17. homeassistant-stubs/components/adax/climate.pyi +3 -1
  18. homeassistant-stubs/components/adguard/__init__.pyi +9 -1
  19. homeassistant-stubs/components/adguard/const.pyi +0 -2
  20. homeassistant-stubs/components/adguard/entity.pyi +4 -3
  21. homeassistant-stubs/components/adguard/sensor.pyi +3 -3
  22. homeassistant-stubs/components/adguard/switch.pyi +3 -3
  23. homeassistant-stubs/components/airthings/sensor.pyi +2 -0
  24. homeassistant-stubs/components/airtouch5/config_flow.pyi +3 -3
  25. homeassistant-stubs/components/airzone_cloud/entity.pyi +7 -0
  26. homeassistant-stubs/components/airzone_cloud/select.pyi +38 -0
  27. homeassistant-stubs/components/airzone_cloud/water_heater.pyi +35 -0
  28. homeassistant-stubs/components/alert/__init__.pyi +2 -2
  29. homeassistant-stubs/components/alexa/config.pyi +2 -0
  30. homeassistant-stubs/components/alexa/entities.pyi +0 -2
  31. homeassistant-stubs/components/alexa/intent.pyi +2 -1
  32. homeassistant-stubs/components/alexa/resources.pyi +3 -3
  33. homeassistant-stubs/components/alexa/state_report.pyi +3 -4
  34. homeassistant-stubs/components/ambient_network/__init__.pyi +10 -0
  35. homeassistant-stubs/components/ambient_network/config_flow.pyi +22 -0
  36. homeassistant-stubs/components/ambient_network/const.pyi +12 -0
  37. homeassistant-stubs/components/ambient_network/coordinator.pyi +18 -0
  38. homeassistant-stubs/components/ambient_network/entity.pyi +20 -0
  39. homeassistant-stubs/components/ambient_network/helper.pyi +4 -0
  40. homeassistant-stubs/components/ambient_network/sensor.pyi +46 -0
  41. homeassistant-stubs/components/ambient_station/sensor.pyi +3 -1
  42. homeassistant-stubs/components/apache_kafka/__init__.pyi +1 -2
  43. homeassistant-stubs/components/apcupsd/binary_sensor.pyi +1 -0
  44. homeassistant-stubs/components/apcupsd/sensor.pyi +1 -0
  45. homeassistant-stubs/components/api/__init__.pyi +2 -2
  46. homeassistant-stubs/components/apple_tv/remote.pyi +1 -1
  47. homeassistant-stubs/components/arris_tg2492lg/device_tracker.pyi +5 -4
  48. homeassistant-stubs/components/aseko_pool_live/binary_sensor.pyi +0 -1
  49. homeassistant-stubs/components/assist_pipeline/__init__.pyi +2 -2
  50. homeassistant-stubs/components/assist_pipeline/const.pyi +1 -0
  51. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +5 -3
  52. homeassistant-stubs/components/auth/__init__.pyi +9 -2
  53. homeassistant-stubs/components/auth/login_flow.pyi +2 -2
  54. homeassistant-stubs/components/auth/mfa_setup_flow.pyi +1 -1
  55. homeassistant-stubs/components/automation/__init__.pyi +7 -9
  56. homeassistant-stubs/components/automation/logbook.pyi +3 -1
  57. homeassistant-stubs/components/axis/hub/event_source.pyi +23 -0
  58. homeassistant-stubs/components/axis/hub/hub.pyi +4 -9
  59. homeassistant-stubs/components/baf/fan.pyi +1 -0
  60. homeassistant-stubs/components/bayesian/binary_sensor.pyi +2 -2
  61. homeassistant-stubs/components/bluetooth/config_flow.pyi +6 -0
  62. homeassistant-stubs/components/bluetooth/diagnostics.pyi +1 -1
  63. homeassistant-stubs/components/bluetooth/util.pyi +2 -1
  64. homeassistant-stubs/components/bmw_connected_drive/binary_sensor.pyi +2 -1
  65. homeassistant-stubs/components/bmw_connected_drive/const.pyi +1 -0
  66. homeassistant-stubs/components/bmw_connected_drive/sensor.pyi +4 -3
  67. homeassistant-stubs/components/camera/__init__.pyi +2 -2
  68. homeassistant-stubs/components/cloud/__init__.pyi +9 -4
  69. homeassistant-stubs/components/cloud/alexa_config.pyi +2 -2
  70. homeassistant-stubs/components/cloud/const.pyi +2 -1
  71. homeassistant-stubs/components/cloud/google_config.pyi +3 -3
  72. homeassistant-stubs/components/cloud/http_api.pyi +2 -2
  73. homeassistant-stubs/components/cloud/prefs.pyi +5 -3
  74. homeassistant-stubs/components/cloud/stt.pyi +1 -0
  75. homeassistant-stubs/components/cloud/tts.pyi +1 -0
  76. homeassistant-stubs/components/cloud/util.pyi +7 -0
  77. homeassistant-stubs/components/command_line/binary_sensor.pyi +4 -4
  78. homeassistant-stubs/components/command_line/const.pyi +4 -1
  79. homeassistant-stubs/components/command_line/cover.pyi +3 -3
  80. homeassistant-stubs/components/command_line/sensor.pyi +4 -5
  81. homeassistant-stubs/components/command_line/switch.pyi +3 -3
  82. homeassistant-stubs/components/config/__init__.pyi +1 -1
  83. homeassistant-stubs/components/deconz/binary_sensor.pyi +0 -1
  84. homeassistant-stubs/components/demo/notify.pyi +12 -10
  85. homeassistant-stubs/components/demo/sensor.pyi +1 -1
  86. homeassistant-stubs/components/derivative/sensor.pyi +2 -2
  87. homeassistant-stubs/components/device_tracker/config_entry.pyi +1 -1
  88. homeassistant-stubs/components/device_tracker/legacy.pyi +2 -1
  89. homeassistant-stubs/components/dhcp/__init__.pyi +2 -2
  90. homeassistant-stubs/components/dlna_dms/dms.pyi +2 -1
  91. homeassistant-stubs/components/ecovacs/event.pyi +1 -0
  92. homeassistant-stubs/components/ecovacs/select.pyi +1 -1
  93. homeassistant-stubs/components/ecovacs/util.pyi +5 -1
  94. homeassistant-stubs/components/ecovacs/vacuum.pyi +1 -0
  95. homeassistant-stubs/components/emulated_hue/config.pyi +2 -2
  96. homeassistant-stubs/components/emulated_hue/hue_api.pyi +2 -2
  97. homeassistant-stubs/components/energenie_power_sockets/__init__.pyi +12 -0
  98. homeassistant-stubs/components/energenie_power_sockets/config_flow.pyi +6 -0
  99. homeassistant-stubs/components/energenie_power_sockets/const.pyi +5 -0
  100. homeassistant-stubs/components/energenie_power_sockets/switch.pyi +27 -0
  101. homeassistant-stubs/components/energy/data.pyi +1 -0
  102. homeassistant-stubs/components/energy/sensor.pyi +4 -4
  103. homeassistant-stubs/components/energy/websocket_api.pyi +1 -1
  104. homeassistant-stubs/components/enigma2/__init__.pyi +11 -0
  105. homeassistant-stubs/components/enigma2/config_flow.pyi +17 -0
  106. homeassistant-stubs/components/enigma2/const.pyi +1 -0
  107. homeassistant-stubs/components/enigma2/media_player.pyi +9 -6
  108. homeassistant-stubs/components/enphase_envoy/coordinator.pyi +1 -0
  109. homeassistant-stubs/components/eq3btsmart/__init__.pyi +18 -0
  110. homeassistant-stubs/components/eq3btsmart/climate.pyi +55 -0
  111. homeassistant-stubs/components/eq3btsmart/config_flow.pyi +17 -0
  112. homeassistant-stubs/components/eq3btsmart/const.pyi +38 -0
  113. homeassistant-stubs/components/eq3btsmart/entity.pyi +10 -0
  114. homeassistant-stubs/components/eq3btsmart/models.pyi +20 -0
  115. homeassistant-stubs/components/eq3btsmart/schemas.pyi +6 -0
  116. homeassistant-stubs/components/esphome/datetime.pyi +14 -0
  117. homeassistant-stubs/components/esphome/entry_data.pyi +4 -5
  118. homeassistant-stubs/components/esphome/event.pyi +16 -0
  119. homeassistant-stubs/components/esphome/manager.pyi +5 -4
  120. homeassistant-stubs/components/esphome/update.pyi +0 -1
  121. homeassistant-stubs/components/esphome/valve.pyi +30 -0
  122. homeassistant-stubs/components/esphome/voice_assistant.pyi +24 -8
  123. homeassistant-stubs/components/filter/sensor.pyi +2 -2
  124. homeassistant-stubs/components/fritz/__init__.pyi +2 -2
  125. homeassistant-stubs/components/fritz/button.pyi +16 -3
  126. homeassistant-stubs/components/fritz/common.pyi +6 -3
  127. homeassistant-stubs/components/fritz/config_flow.pyi +7 -2
  128. homeassistant-stubs/components/fritz/const.pyi +5 -1
  129. homeassistant-stubs/components/fritzbox/climate.pyi +1 -1
  130. homeassistant-stubs/components/fritzbox/config_flow.pyi +2 -0
  131. homeassistant-stubs/components/fritzbox/coordinator.pyi +4 -2
  132. homeassistant-stubs/components/generic_hygrostat/humidifier.pyi +4 -2
  133. homeassistant-stubs/components/generic_thermostat/climate.pyi +2 -2
  134. homeassistant-stubs/components/geo_location/trigger.pyi +2 -2
  135. homeassistant-stubs/components/glances/coordinator.pyi +1 -0
  136. homeassistant-stubs/components/glances/sensor.pyi +6 -5
  137. homeassistant-stubs/components/group/entity.pyi +6 -12
  138. homeassistant-stubs/components/group/event.pyi +2 -2
  139. homeassistant-stubs/components/group/media_player.pyi +2 -2
  140. homeassistant-stubs/components/group/notify.pyi +2 -1
  141. homeassistant-stubs/components/group/registry.pyi +6 -4
  142. homeassistant-stubs/components/history/websocket_api.pyi +6 -6
  143. homeassistant-stubs/components/history_stats/coordinator.pyi +2 -2
  144. homeassistant-stubs/components/history_stats/data.pyi +1 -2
  145. homeassistant-stubs/components/homeassistant/logbook.pyi +5 -3
  146. homeassistant-stubs/components/homeassistant/triggers/numeric_state.pyi +2 -2
  147. homeassistant-stubs/components/homeassistant/triggers/state.pyi +2 -2
  148. homeassistant-stubs/components/homeassistant/triggers/time.pyi +2 -2
  149. homeassistant-stubs/components/homeassistant_alerts/__init__.pyi +3 -1
  150. homeassistant-stubs/components/homeassistant_sky_connect/__init__.pyi +7 -9
  151. homeassistant-stubs/components/homeassistant_sky_connect/config_flow.pyi +61 -6
  152. homeassistant-stubs/components/homeassistant_sky_connect/const.pyi +8 -0
  153. homeassistant-stubs/components/homeassistant_sky_connect/util.pyi +23 -2
  154. homeassistant-stubs/components/homekit/accessories.pyi +2 -2
  155. homeassistant-stubs/components/homekit/type_cameras.pyi +3 -2
  156. homeassistant-stubs/components/homekit/type_covers.pyi +2 -2
  157. homeassistant-stubs/components/homekit/type_humidifiers.pyi +2 -2
  158. homeassistant-stubs/components/homekit/type_thermostats.pyi +2 -2
  159. homeassistant-stubs/components/homekit/util.pyi +3 -4
  160. homeassistant-stubs/components/homeworks/__init__.pyi +7 -2
  161. homeassistant-stubs/components/homeworks/button.pyi +1 -1
  162. homeassistant-stubs/components/http/__init__.pyi +9 -6
  163. homeassistant-stubs/components/http/auth.pyi +11 -3
  164. homeassistant-stubs/components/http/const.pyi +7 -0
  165. homeassistant-stubs/components/http/session.pyi +29 -0
  166. homeassistant-stubs/components/hydrawise/__init__.pyi +3 -6
  167. homeassistant-stubs/components/hydrawise/binary_sensor.pyi +1 -4
  168. homeassistant-stubs/components/hydrawise/config_flow.pyi +8 -9
  169. homeassistant-stubs/components/hydrawise/sensor.pyi +2 -4
  170. homeassistant-stubs/components/hydrawise/switch.pyi +2 -5
  171. homeassistant-stubs/components/image/__init__.pyi +2 -2
  172. homeassistant-stubs/components/imap/__init__.pyi +20 -4
  173. homeassistant-stubs/components/imap/config_flow.pyi +2 -1
  174. homeassistant-stubs/components/imap/const.pyi +5 -2
  175. homeassistant-stubs/components/imap/coordinator.pyi +5 -2
  176. homeassistant-stubs/components/integration/sensor.pyi +12 -13
  177. homeassistant-stubs/components/islamic_prayer_times/config_flow.pyi +1 -3
  178. homeassistant-stubs/components/islamic_prayer_times/coordinator.pyi +4 -4
  179. homeassistant-stubs/components/isy994/helpers.pyi +1 -1
  180. homeassistant-stubs/components/jvc_projector/select.pyi +30 -0
  181. homeassistant-stubs/components/knx/expose.pyi +2 -2
  182. homeassistant-stubs/components/knx/helpers/__init__.pyi +0 -0
  183. homeassistant-stubs/components/knx/notify.pyi +16 -3
  184. homeassistant-stubs/components/knx/repairs.pyi +7 -0
  185. homeassistant-stubs/components/local_todo/todo.pyi +1 -0
  186. homeassistant-stubs/components/logbook/__init__.pyi +1 -0
  187. homeassistant-stubs/components/logbook/helpers.pyi +5 -4
  188. homeassistant-stubs/components/logbook/models.pyi +4 -3
  189. homeassistant-stubs/components/logbook/processor.pyi +3 -2
  190. homeassistant-stubs/components/logger/helpers.pyi +4 -1
  191. homeassistant-stubs/components/matter/config_flow.pyi +4 -0
  192. homeassistant-stubs/components/matter/light.pyi +3 -0
  193. homeassistant-stubs/components/media_extractor/__init__.pyi +4 -4
  194. homeassistant-stubs/components/media_extractor/const.pyi +5 -0
  195. homeassistant-stubs/components/min_max/sensor.pyi +2 -2
  196. homeassistant-stubs/components/minecraft_server/sensor.pyi +2 -2
  197. homeassistant-stubs/components/modbus/__init__.pyi +2 -2
  198. homeassistant-stubs/components/modbus/base_platform.pyi +1 -1
  199. homeassistant-stubs/components/modbus/climate.pyi +9 -3
  200. homeassistant-stubs/components/modbus/const.pyi +7 -0
  201. homeassistant-stubs/components/modbus/modbus.pyi +1 -0
  202. homeassistant-stubs/components/modbus/validators.pyi +2 -1
  203. homeassistant-stubs/components/mqtt/__init__.pyi +1 -2
  204. homeassistant-stubs/components/mqtt/client.pyi +37 -12
  205. homeassistant-stubs/components/mqtt/config_flow.pyi +9 -1
  206. homeassistant-stubs/components/mqtt/mixins.pyi +7 -4
  207. homeassistant-stubs/components/mqtt/models.pyi +1 -1
  208. homeassistant-stubs/components/mqtt/notify.pyi +31 -0
  209. homeassistant-stubs/components/mysensors/gateway.pyi +1 -0
  210. homeassistant-stubs/components/netatmo/__init__.pyi +2 -0
  211. homeassistant-stubs/components/netatmo/binary_sensor.pyi +20 -0
  212. homeassistant-stubs/components/netatmo/camera.pyi +8 -11
  213. homeassistant-stubs/components/netatmo/climate.pyi +11 -19
  214. homeassistant-stubs/components/netatmo/cover.pyi +5 -7
  215. homeassistant-stubs/components/netatmo/entity.pyi +40 -10
  216. homeassistant-stubs/components/netatmo/fan.pyi +5 -8
  217. homeassistant-stubs/components/netatmo/light.pyi +11 -19
  218. homeassistant-stubs/components/netatmo/select.pyi +4 -7
  219. homeassistant-stubs/components/netatmo/sensor.pyi +36 -49
  220. homeassistant-stubs/components/netatmo/switch.pyi +5 -7
  221. homeassistant-stubs/components/nextdns/__init__.pyi +1 -38
  222. homeassistant-stubs/components/nextdns/binary_sensor.pyi +1 -1
  223. homeassistant-stubs/components/nextdns/button.pyi +1 -1
  224. homeassistant-stubs/components/nextdns/coordinator.pyi +42 -0
  225. homeassistant-stubs/components/nextdns/sensor.pyi +1 -1
  226. homeassistant-stubs/components/nextdns/switch.pyi +1 -1
  227. homeassistant-stubs/components/nfandroidtv/notify.pyi +2 -1
  228. homeassistant-stubs/components/notify/__init__.pyi +31 -2
  229. homeassistant-stubs/components/notify/const.pyi +2 -0
  230. homeassistant-stubs/components/number/const.pyi +1 -0
  231. homeassistant-stubs/components/number/significant_change.pyi +1 -1
  232. homeassistant-stubs/components/oncue/__init__.pyi +2 -1
  233. homeassistant-stubs/components/oncue/config_flow.pyi +7 -1
  234. homeassistant-stubs/components/onewire/model.pyi +1 -1
  235. homeassistant-stubs/components/onewire/onewirehub.pyi +2 -2
  236. homeassistant-stubs/components/open_meteo/weather.pyi +2 -1
  237. homeassistant-stubs/components/prometheus/__init__.pyi +1 -2
  238. homeassistant-stubs/components/proximity/__init__.pyi +1 -1
  239. homeassistant-stubs/components/proximity/coordinator.pyi +2 -2
  240. homeassistant-stubs/components/purpleair/config_flow.pyi +2 -2
  241. homeassistant-stubs/components/rabbitair/config_flow.pyi +4 -4
  242. homeassistant-stubs/components/recorder/__init__.pyi +1 -0
  243. homeassistant-stubs/components/recorder/auto_repairs/states/__init__.pyi +0 -0
  244. homeassistant-stubs/components/recorder/core.pyi +6 -5
  245. homeassistant-stubs/components/recorder/db_schema.pyi +3 -3
  246. homeassistant-stubs/components/recorder/history/__init__.pyi +5 -6
  247. homeassistant-stubs/components/recorder/history/legacy.pyi +7 -7
  248. homeassistant-stubs/components/recorder/history/modern.pyi +7 -7
  249. homeassistant-stubs/components/recorder/models/event.pyi +4 -1
  250. homeassistant-stubs/components/recorder/pool.pyi +1 -1
  251. homeassistant-stubs/components/recorder/services.pyi +1 -0
  252. homeassistant-stubs/components/recorder/statistics.pyi +4 -4
  253. homeassistant-stubs/components/recorder/table_managers/__init__.pyi +4 -3
  254. homeassistant-stubs/components/recorder/table_managers/event_types.pyi +5 -3
  255. homeassistant-stubs/components/recorder/table_managers/state_attributes.pyi +3 -3
  256. homeassistant-stubs/components/recorder/table_managers/states_meta.pyi +2 -2
  257. homeassistant-stubs/components/recorder/table_managers/statistics_meta.pyi +3 -3
  258. homeassistant-stubs/components/recorder/tasks.pyi +2 -1
  259. homeassistant-stubs/components/recorder/websocket_api.pyi +1 -1
  260. homeassistant-stubs/components/rest/__init__.pyi +2 -2
  261. homeassistant-stubs/components/rest/const.pyi +1 -0
  262. homeassistant-stubs/components/rest/data.pyi +1 -0
  263. homeassistant-stubs/components/rest/schema.pyi +1 -1
  264. homeassistant-stubs/components/rfxtrx/__init__.pyi +1 -1
  265. homeassistant-stubs/components/rfxtrx/config_flow.pyi +2 -2
  266. homeassistant-stubs/components/rfxtrx/event.pyi +1 -0
  267. homeassistant-stubs/components/ring/__init__.pyi +25 -0
  268. homeassistant-stubs/components/ring/binary_sensor.pyi +35 -0
  269. homeassistant-stubs/components/ring/button.pyi +20 -0
  270. homeassistant-stubs/components/ring/camera.pyi +43 -0
  271. homeassistant-stubs/components/ring/config_flow.pyi +26 -0
  272. homeassistant-stubs/components/ring/const.pyi +12 -0
  273. homeassistant-stubs/components/ring/coordinator.pyi +25 -0
  274. homeassistant-stubs/components/ring/diagnostics.pyi +11 -0
  275. homeassistant-stubs/components/ring/entity.pyi +33 -0
  276. homeassistant-stubs/components/ring/light.pyi +34 -0
  277. homeassistant-stubs/components/ring/sensor.pyi +39 -0
  278. homeassistant-stubs/components/ring/siren.pyi +23 -0
  279. homeassistant-stubs/components/ring/switch.pyi +31 -0
  280. homeassistant-stubs/components/romy/binary_sensor.pyi +19 -0
  281. homeassistant-stubs/components/romy/config_flow.pyi +7 -7
  282. homeassistant-stubs/components/romy/sensor.pyi +20 -0
  283. homeassistant-stubs/components/sensor/__init__.pyi +1 -1
  284. homeassistant-stubs/components/sensor/significant_change.pyi +1 -1
  285. homeassistant-stubs/components/shelly/__init__.pyi +2 -4
  286. homeassistant-stubs/components/shelly/coordinator.pyi +8 -7
  287. homeassistant-stubs/components/shelly/switch.pyi +1 -1
  288. homeassistant-stubs/components/shelly/utils.pyi +1 -0
  289. homeassistant-stubs/components/starlink/coordinator.pyi +1 -0
  290. homeassistant-stubs/components/statistics/sensor.pyi +2 -2
  291. homeassistant-stubs/components/switch/light.pyi +2 -2
  292. homeassistant-stubs/components/synology_dsm/__init__.pyi +2 -2
  293. homeassistant-stubs/components/synology_dsm/camera.pyi +3 -2
  294. homeassistant-stubs/components/synology_dsm/common.pyi +6 -2
  295. homeassistant-stubs/components/synology_dsm/coordinator.pyi +4 -4
  296. homeassistant-stubs/components/synology_dsm/diagnostics.pyi +0 -1
  297. homeassistant-stubs/components/system_log/__init__.pyi +3 -3
  298. homeassistant-stubs/components/threshold/binary_sensor.pyi +2 -2
  299. homeassistant-stubs/components/tibber/sensor.pyi +1 -0
  300. homeassistant-stubs/components/tplink/coordinator.pyi +2 -0
  301. homeassistant-stubs/components/tplink/entity.pyi +1 -0
  302. homeassistant-stubs/components/tplink/light.pyi +1 -1
  303. homeassistant-stubs/components/tplink/sensor.pyi +4 -3
  304. homeassistant-stubs/components/tplink_omada/switch.pyi +12 -14
  305. homeassistant-stubs/components/trend/binary_sensor.pyi +2 -2
  306. homeassistant-stubs/components/unifi/__init__.pyi +2 -0
  307. homeassistant-stubs/components/unifi/button.pyi +2 -1
  308. homeassistant-stubs/components/unifi/hub/entity_helper.pyi +44 -0
  309. homeassistant-stubs/components/unifi/hub/hub.pyi +8 -13
  310. homeassistant-stubs/components/unifi/sensor.pyi +2 -1
  311. homeassistant-stubs/components/velbus/cover.pyi +2 -0
  312. homeassistant-stubs/components/weather/significant_change.pyi +1 -1
  313. homeassistant-stubs/components/websocket_api/commands.pyi +2 -2
  314. homeassistant-stubs/components/websocket_api/messages.pyi +1 -2
  315. homeassistant-stubs/components/websocket_api/sensor.pyi +3 -7
  316. homeassistant-stubs/components/withings/__init__.pyi +2 -8
  317. homeassistant-stubs/components/withings/config_flow.pyi +1 -1
  318. homeassistant-stubs/components/withings/const.pyi +0 -2
  319. homeassistant-stubs/components/withings/coordinator.pyi +1 -0
  320. homeassistant-stubs/components/zone/__init__.pyi +8 -10
  321. homeassistant-stubs/components/zone/trigger.pyi +2 -2
  322. homeassistant-stubs/components/zwave_js/config_flow.pyi +1 -1
  323. homeassistant-stubs/config.pyi +1 -1
  324. homeassistant-stubs/config_entries.pyi +32 -29
  325. homeassistant-stubs/const.pyi +11 -6
  326. homeassistant-stubs/core.pyi +57 -24
  327. homeassistant-stubs/data_entry_flow.pyi +3 -3
  328. homeassistant-stubs/exceptions.pyi +4 -2
  329. homeassistant-stubs/helpers/aiohttp_client.pyi +1 -0
  330. homeassistant-stubs/helpers/area_registry.pyi +28 -6
  331. homeassistant-stubs/helpers/backports/__init__.pyi +0 -0
  332. homeassistant-stubs/helpers/backports/aiohttp_resolver.pyi +21 -0
  333. homeassistant-stubs/helpers/category_registry.pyi +16 -6
  334. homeassistant-stubs/helpers/data_entry_flow.pyi +1 -1
  335. homeassistant-stubs/helpers/deprecation.pyi +5 -0
  336. homeassistant-stubs/helpers/device_registry.pyi +25 -12
  337. homeassistant-stubs/helpers/dispatcher.pyi +1 -1
  338. homeassistant-stubs/helpers/entity.pyi +6 -3
  339. homeassistant-stubs/helpers/entity_registry.pyi +24 -16
  340. homeassistant-stubs/helpers/event.pyi +10 -17
  341. homeassistant-stubs/helpers/floor_registry.pyi +14 -3
  342. homeassistant-stubs/helpers/frame.pyi +2 -2
  343. homeassistant-stubs/helpers/httpx_client.pyi +1 -1
  344. homeassistant-stubs/helpers/icon.pyi +3 -2
  345. homeassistant-stubs/helpers/intent.pyi +1 -2
  346. homeassistant-stubs/helpers/label_registry.pyi +14 -3
  347. homeassistant-stubs/helpers/network.pyi +2 -2
  348. homeassistant-stubs/helpers/normalized_name_base_registry.pyi +4 -6
  349. homeassistant-stubs/helpers/registry.pyi +19 -4
  350. homeassistant-stubs/helpers/reload.pyi +1 -1
  351. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +2 -2
  352. homeassistant-stubs/helpers/script.pyi +2 -1
  353. homeassistant-stubs/helpers/service.pyi +4 -1
  354. homeassistant-stubs/helpers/significant_change.pyi +4 -4
  355. homeassistant-stubs/helpers/start.pyi +3 -1
  356. homeassistant-stubs/helpers/template.pyi +6 -3
  357. homeassistant-stubs/helpers/translation.pyi +5 -9
  358. homeassistant-stubs/helpers/typing.pyi +11 -7
  359. homeassistant-stubs/helpers/update_coordinator.pyi +2 -1
  360. homeassistant-stubs/requirements.pyi +2 -0
  361. homeassistant-stubs/setup.pyi +1 -0
  362. homeassistant-stubs/util/async_.pyi +1 -6
  363. homeassistant-stubs/util/dt.pyi +5 -4
  364. homeassistant-stubs/util/event_type.pyi +14 -0
  365. homeassistant-stubs/util/logging.pyi +3 -4
  366. homeassistant-stubs/util/loop.pyi +15 -0
  367. homeassistant-stubs/util/signal_type.pyi +1 -1
  368. homeassistant-stubs/util/timeout.pyi +6 -6
  369. homeassistant-stubs/util/yaml/loader.pyi +3 -4
  370. homeassistant-stubs/util/yaml/objects.pyi +12 -2
  371. {homeassistant_stubs-2024.4.3.dist-info → homeassistant_stubs-2024.5.0.dist-info}/METADATA +2 -2
  372. {homeassistant_stubs-2024.4.3.dist-info → homeassistant_stubs-2024.5.0.dist-info}/RECORD +374 -317
  373. {homeassistant_stubs-2024.4.3.dist-info → homeassistant_stubs-2024.5.0.dist-info}/LICENSE +0 -0
  374. {homeassistant_stubs-2024.4.3.dist-info → homeassistant_stubs-2024.5.0.dist-info}/WHEEL +0 -0
@@ -1,6 +1,27 @@
1
- from .const import HardwareVariant as HardwareVariant
1
+ from .const import HardwareVariant as HardwareVariant, OTBR_ADDON_MANAGER_DATA as OTBR_ADDON_MANAGER_DATA, OTBR_ADDON_NAME as OTBR_ADDON_NAME, OTBR_ADDON_SLUG as OTBR_ADDON_SLUG, ZHA_DOMAIN as ZHA_DOMAIN, ZIGBEE_FLASHER_ADDON_MANAGER_DATA as ZIGBEE_FLASHER_ADDON_MANAGER_DATA, ZIGBEE_FLASHER_ADDON_NAME as ZIGBEE_FLASHER_ADDON_NAME, ZIGBEE_FLASHER_ADDON_SLUG as ZIGBEE_FLASHER_ADDON_SLUG
2
+ from _typeshed import Incomplete
3
+ from dataclasses import dataclass
2
4
  from homeassistant.components import usb as usb
3
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
+ from homeassistant.components.hassio import AddonError as AddonError, AddonState as AddonState, is_hassio as is_hassio
6
+ from homeassistant.components.homeassistant_hardware.silabs_multiprotocol_addon import WaitingAddonManager as WaitingAddonManager, get_multiprotocol_addon_manager as get_multiprotocol_addon_manager
7
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigEntryState as ConfigEntryState
8
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
+ from homeassistant.helpers.singleton import singleton as singleton
10
+ from universal_silabs_flasher.const import ApplicationType
11
+
12
+ _LOGGER: Incomplete
4
13
 
5
14
  def get_usb_service_info(config_entry: ConfigEntry) -> usb.UsbServiceInfo: ...
6
15
  def get_hardware_variant(config_entry: ConfigEntry) -> HardwareVariant: ...
16
+ def get_zha_device_path(config_entry: ConfigEntry) -> str: ...
17
+ def get_otbr_addon_manager(hass: HomeAssistant) -> WaitingAddonManager: ...
18
+ def get_zigbee_flasher_addon_manager(hass: HomeAssistant) -> WaitingAddonManager: ...
19
+
20
+ @dataclass(slots=True, kw_only=True)
21
+ class FirmwareGuess:
22
+ is_running: bool
23
+ firmware_type: ApplicationType
24
+ source: str
25
+ def __init__(self, *, is_running, firmware_type, source) -> None: ...
26
+
27
+ async def guess_firmware_type(hass: HomeAssistant, device_path: str) -> FirmwareGuess: ...
@@ -8,9 +8,9 @@ from homeassistant.components.remote import RemoteEntityFeature as RemoteEntityF
8
8
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass
9
9
  from homeassistant.components.switch import SwitchDeviceClass as SwitchDeviceClass
10
10
  from homeassistant.const import ATTR_BATTERY_CHARGING as ATTR_BATTERY_CHARGING, ATTR_BATTERY_LEVEL as ATTR_BATTERY_LEVEL, ATTR_DEVICE_CLASS as ATTR_DEVICE_CLASS, ATTR_ENTITY_ID as ATTR_ENTITY_ID, ATTR_HW_VERSION as ATTR_HW_VERSION, ATTR_MANUFACTURER as ATTR_MANUFACTURER, ATTR_MODEL as ATTR_MODEL, ATTR_SERVICE as ATTR_SERVICE, ATTR_SUPPORTED_FEATURES as ATTR_SUPPORTED_FEATURES, ATTR_SW_VERSION as ATTR_SW_VERSION, ATTR_UNIT_OF_MEASUREMENT as ATTR_UNIT_OF_MEASUREMENT, CONF_NAME as CONF_NAME, CONF_TYPE as CONF_TYPE, LIGHT_LUX as LIGHT_LUX, PERCENTAGE as PERCENTAGE, STATE_ON as STATE_ON, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN, UnitOfTemperature as UnitOfTemperature, __version__ as __version__
11
- from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Context as Context, Event as Event, HomeAssistant as HomeAssistant, State as State, split_entity_id as split_entity_id
11
+ from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Context as Context, Event as Event, EventStateChangedData as EventStateChangedData, HassJobType as HassJobType, HomeAssistant as HomeAssistant, State as State, split_entity_id as split_entity_id
12
12
  from homeassistant.helpers.dispatcher import async_dispatcher_send as async_dispatcher_send
13
- from homeassistant.helpers.event import EventStateChangedData as EventStateChangedData, async_track_state_change_event as async_track_state_change_event
13
+ from homeassistant.helpers.event import async_track_state_change_event as async_track_state_change_event
14
14
  from homeassistant.util.decorator import Registry as Registry
15
15
  from pyhap.accessory import Accessory, Bridge
16
16
  from pyhap.accessory_driver import AccessoryDriver
@@ -6,8 +6,9 @@ from _typeshed import Incomplete
6
6
  from homeassistant.components import camera as camera
7
7
  from homeassistant.components.ffmpeg import get_ffmpeg_manager as get_ffmpeg_manager
8
8
  from homeassistant.const import STATE_ON as STATE_ON
9
- from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, State as State, callback as callback
10
- from homeassistant.helpers.event import EventStateChangedData as EventStateChangedData, async_track_state_change_event as async_track_state_change_event, async_track_time_interval as async_track_time_interval
9
+ from homeassistant.core import Event as Event, EventStateChangedData as EventStateChangedData, HassJobType as HassJobType, HomeAssistant as HomeAssistant, State as State, callback as callback
10
+ from homeassistant.helpers.event import async_track_state_change_event as async_track_state_change_event, async_track_time_interval as async_track_time_interval
11
+ from homeassistant.util.async_ import create_eager_task as create_eager_task
11
12
  from pyhap.camera import Camera as PyhapCamera
12
13
  from typing import Any
13
14
 
@@ -3,8 +3,8 @@ from .const import ATTR_OBSTRUCTION_DETECTED as ATTR_OBSTRUCTION_DETECTED, CHAR_
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.components.cover import ATTR_CURRENT_POSITION as ATTR_CURRENT_POSITION, ATTR_CURRENT_TILT_POSITION as ATTR_CURRENT_TILT_POSITION, ATTR_POSITION as ATTR_POSITION, ATTR_TILT_POSITION as ATTR_TILT_POSITION, CoverEntityFeature as CoverEntityFeature, DOMAIN as DOMAIN
5
5
  from homeassistant.const import ATTR_ENTITY_ID as ATTR_ENTITY_ID, ATTR_SUPPORTED_FEATURES as ATTR_SUPPORTED_FEATURES, SERVICE_CLOSE_COVER as SERVICE_CLOSE_COVER, SERVICE_OPEN_COVER as SERVICE_OPEN_COVER, SERVICE_SET_COVER_POSITION as SERVICE_SET_COVER_POSITION, SERVICE_SET_COVER_TILT_POSITION as SERVICE_SET_COVER_TILT_POSITION, SERVICE_STOP_COVER as SERVICE_STOP_COVER, STATE_CLOSED as STATE_CLOSED, STATE_CLOSING as STATE_CLOSING, STATE_ON as STATE_ON, STATE_OPEN as STATE_OPEN, STATE_OPENING as STATE_OPENING
6
- from homeassistant.core import Event as Event, State as State, callback as callback
7
- from homeassistant.helpers.event import EventStateChangedData as EventStateChangedData, async_track_state_change_event as async_track_state_change_event
6
+ from homeassistant.core import Event as Event, EventStateChangedData as EventStateChangedData, HassJobType as HassJobType, State as State, callback as callback
7
+ from homeassistant.helpers.event import async_track_state_change_event as async_track_state_change_event
8
8
  from pyhap.service import Service as Service
9
9
  from typing import Any
10
10
 
@@ -3,8 +3,8 @@ from .const import CHAR_ACTIVE as CHAR_ACTIVE, CHAR_CURRENT_HUMIDIFIER_DEHUMIDIF
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.components.humidifier import ATTR_CURRENT_HUMIDITY as ATTR_CURRENT_HUMIDITY, ATTR_HUMIDITY as ATTR_HUMIDITY, ATTR_MAX_HUMIDITY as ATTR_MAX_HUMIDITY, ATTR_MIN_HUMIDITY as ATTR_MIN_HUMIDITY, DEFAULT_MAX_HUMIDITY as DEFAULT_MAX_HUMIDITY, DEFAULT_MIN_HUMIDITY as DEFAULT_MIN_HUMIDITY, DOMAIN as DOMAIN, HumidifierDeviceClass as HumidifierDeviceClass, SERVICE_SET_HUMIDITY as SERVICE_SET_HUMIDITY
5
5
  from homeassistant.const import ATTR_DEVICE_CLASS as ATTR_DEVICE_CLASS, ATTR_ENTITY_ID as ATTR_ENTITY_ID, PERCENTAGE as PERCENTAGE, SERVICE_TURN_OFF as SERVICE_TURN_OFF, SERVICE_TURN_ON as SERVICE_TURN_ON, STATE_ON as STATE_ON
6
- from homeassistant.core import Event as Event, State as State, callback as callback
7
- from homeassistant.helpers.event import EventStateChangedData as EventStateChangedData, async_track_state_change_event as async_track_state_change_event
6
+ from homeassistant.core import Event as Event, EventStateChangedData as EventStateChangedData, HassJobType as HassJobType, State as State, callback as callback
7
+ from homeassistant.helpers.event import async_track_state_change_event as async_track_state_change_event
8
8
  from typing import Any
9
9
 
10
10
  _LOGGER: Incomplete
@@ -64,8 +64,8 @@ class Thermostat(HomeAccessory):
64
64
  def _get_on_mode(self) -> str: ...
65
65
  def _set_fan_active(self, active: int) -> None: ...
66
66
  def _set_fan_auto(self, auto: int) -> None: ...
67
- def _temperature_to_homekit(self, temp: float | int) -> float: ...
68
- def _temperature_to_states(self, temp: float | int) -> float: ...
67
+ def _temperature_to_homekit(self, temp: float) -> float: ...
68
+ def _temperature_to_states(self, temp: float) -> float: ...
69
69
  def _set_chars(self, char_values: dict[str, Any]) -> None: ...
70
70
  hc_homekit_to_hass: Incomplete
71
71
  hc_hass_to_homekit: Incomplete
@@ -6,8 +6,7 @@ from homeassistant.components import binary_sensor as binary_sensor, media_playe
6
6
  from homeassistant.components.media_player import MediaPlayerDeviceClass as MediaPlayerDeviceClass, MediaPlayerEntityFeature as MediaPlayerEntityFeature
7
7
  from homeassistant.components.remote import RemoteEntityFeature as RemoteEntityFeature
8
8
  from homeassistant.const import ATTR_CODE as ATTR_CODE, ATTR_DEVICE_CLASS as ATTR_DEVICE_CLASS, ATTR_SUPPORTED_FEATURES as ATTR_SUPPORTED_FEATURES, CONF_NAME as CONF_NAME, CONF_PORT as CONF_PORT, CONF_TYPE as CONF_TYPE, UnitOfTemperature as UnitOfTemperature
9
- from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, State as State, callback as callback, split_entity_id as split_entity_id
10
- from homeassistant.helpers.event import EventStateChangedData as EventStateChangedData
9
+ from homeassistant.core import Event as Event, EventStateChangedData as EventStateChangedData, HomeAssistant as HomeAssistant, State as State, callback as callback, split_entity_id as split_entity_id
11
10
  from homeassistant.helpers.storage import STORAGE_DIR as STORAGE_DIR
12
11
  from homeassistant.util.unit_conversion import TemperatureConverter as TemperatureConverter
13
12
  from pyhap.accessory import Accessory as Accessory
@@ -38,8 +37,8 @@ def async_dismiss_setup_message(hass: HomeAssistant, entry_id: str) -> None: ...
38
37
  def convert_to_float(state: Any) -> float | None: ...
39
38
  def coerce_int(state: str) -> int: ...
40
39
  def cleanup_name_for_homekit(name: str | None) -> str: ...
41
- def temperature_to_homekit(temperature: float | int, unit: str) -> float: ...
42
- def temperature_to_states(temperature: float | int, unit: str) -> float: ...
40
+ def temperature_to_homekit(temperature: float, unit: str) -> float: ...
41
+ def temperature_to_states(temperature: float, unit: str) -> float: ...
43
42
  def density_to_air_quality(density: float) -> int: ...
44
43
  def density_to_air_quality_pm10(density: float) -> int: ...
45
44
  def density_to_air_quality_nitrogen_dioxide(density: float) -> int: ...
@@ -1,10 +1,11 @@
1
1
  from .const import CONF_ADDR as CONF_ADDR, CONF_CONTROLLER_ID as CONF_CONTROLLER_ID, CONF_DIMMERS as CONF_DIMMERS, CONF_KEYPADS as CONF_KEYPADS, CONF_RATE as CONF_RATE, DOMAIN as DOMAIN
2
2
  from _typeshed import Incomplete
3
+ from collections.abc import Mapping
3
4
  from dataclasses import dataclass
4
5
  from homeassistant.config_entries import ConfigEntry as ConfigEntry, SOURCE_IMPORT as SOURCE_IMPORT
5
6
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_ID as CONF_ID, CONF_NAME as CONF_NAME, CONF_PORT as CONF_PORT, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP, Platform as Platform
6
- from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, callback as callback
7
- from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
7
+ from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
8
+ from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady, ServiceValidationError as ServiceValidationError
8
9
  from homeassistant.helpers.debounce import Debouncer as Debouncer
9
10
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect, dispatcher_send as dispatcher_send
10
11
  from homeassistant.helpers.entity import Entity as Entity
@@ -15,6 +16,7 @@ from typing import Any
15
16
 
16
17
  _LOGGER: Incomplete
17
18
  PLATFORMS: list[Platform]
19
+ CONF_COMMAND: str
18
20
  EVENT_BUTTON_PRESS: str
19
21
  EVENT_BUTTON_RELEASE: str
20
22
  DEFAULT_FADE_RATE: float
@@ -23,6 +25,7 @@ CV_FADE_RATE: Incomplete
23
25
  DIMMER_SCHEMA: Incomplete
24
26
  KEYPAD_SCHEMA: Incomplete
25
27
  CONFIG_SCHEMA: Incomplete
28
+ SERVICE_SEND_COMMAND_SCHEMA: Incomplete
26
29
 
27
30
  @dataclass
28
31
  class HomeworksData:
@@ -31,6 +34,8 @@ class HomeworksData:
31
34
  keypads: dict[str, HomeworksKeypad]
32
35
  def __init__(self, controller, controller_id, keypads) -> None: ...
33
36
 
37
+ def async_setup_services(hass: HomeAssistant) -> None: ...
38
+ async def async_send_command(hass: HomeAssistant, data: Mapping[str, Any]) -> None: ...
34
39
  async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
35
40
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
36
41
  async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
@@ -15,4 +15,4 @@ class HomeworksButton(HomeworksEntity, ButtonEntity):
15
15
  _attr_device_info: Incomplete
16
16
  _release_delay: Incomplete
17
17
  def __init__(self, controller: Homeworks, controller_id: str, addr: str, keypad_name: str, button_name: str, button_number: int, release_delay: float) -> None: ...
18
- def press(self) -> None: ...
18
+ async def async_press(self) -> None: ...
@@ -1,8 +1,8 @@
1
1
  import asyncio
2
2
  import ssl
3
- from .auth import async_setup_auth as async_setup_auth
3
+ from .auth import async_setup_auth as async_setup_auth, async_sign_path as async_sign_path
4
4
  from .ban import setup_bans as setup_bans
5
- from .const import KEY_HASS_REFRESH_TOKEN_ID as KEY_HASS_REFRESH_TOKEN_ID, KEY_HASS_USER as KEY_HASS_USER
5
+ from .const import DOMAIN as DOMAIN, KEY_HASS_REFRESH_TOKEN_ID as KEY_HASS_REFRESH_TOKEN_ID, KEY_HASS_USER as KEY_HASS_USER, StrictConnectionMode as StrictConnectionMode
6
6
  from .cors import setup_cors as setup_cors
7
7
  from .decorators import require_admin as require_admin
8
8
  from .forwarded import async_setup_forwarded as async_setup_forwarded
@@ -21,8 +21,8 @@ from aiohttp.web_exceptions import HTTPRedirection as HTTPRedirection
21
21
  from aiohttp.web_protocol import RequestHandler as RequestHandler
22
22
  from homeassistant.components.network import async_get_source_ip as async_get_source_ip
23
23
  from homeassistant.const import EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP, SERVER_PORT as SERVER_PORT
24
- from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant
25
- from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
24
+ from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, ServiceResponse as ServiceResponse, callback as callback
25
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError, Unauthorized as Unauthorized, UnknownUser as UnknownUser
26
26
  from homeassistant.helpers import storage as storage
27
27
  from homeassistant.helpers.http import HomeAssistantView as HomeAssistantView, KEY_ALLOW_CONFIGRED_CORS as KEY_ALLOW_CONFIGRED_CORS, KEY_AUTHENTICATED as KEY_AUTHENTICATED, KEY_HASS as KEY_HASS, current_request as current_request
28
28
  from homeassistant.helpers.network import NoURLAvailableError as NoURLAvailableError, get_url as get_url
@@ -34,7 +34,6 @@ from homeassistant.util.json import json_loads as json_loads
34
34
  from ipaddress import IPv4Network, IPv6Network
35
35
  from typing import Any, Final, TypedDict
36
36
 
37
- DOMAIN: Final[str]
38
37
  CONF_SERVER_HOST: Final[str]
39
38
  CONF_SERVER_PORT: Final[str]
40
39
  CONF_BASE_URL: Final[str]
@@ -48,6 +47,7 @@ CONF_TRUSTED_PROXIES: Final[str]
48
47
  CONF_LOGIN_ATTEMPTS_THRESHOLD: Final[str]
49
48
  CONF_IP_BAN_ENABLED: Final[str]
50
49
  CONF_SSL_PROFILE: Final[str]
50
+ CONF_STRICT_CONNECTION: Final[str]
51
51
  SSL_MODERN: Final[str]
52
52
  SSL_INTERMEDIATE: Final[str]
53
53
  _LOGGER: Final[Incomplete]
@@ -59,6 +59,8 @@ MAX_LINE_SIZE: Final[int]
59
59
  STORAGE_KEY: Final[Incomplete]
60
60
  STORAGE_VERSION: Final[int]
61
61
  SAVE_DELAY: Final[int]
62
+ _HAS_IPV6: Incomplete
63
+ _DEFAULT_BIND: Incomplete
62
64
  HTTP_SCHEMA: Final[Incomplete]
63
65
  CONFIG_SCHEMA: Final[Incomplete]
64
66
 
@@ -108,7 +110,7 @@ class HomeAssistantHTTP:
108
110
  site: Incomplete
109
111
  context: Incomplete
110
112
  def __init__(self, hass: HomeAssistant, ssl_certificate: str | None, ssl_peer_certificate: str | None, ssl_key: str | None, server_host: list[str] | None, server_port: int, trusted_proxies: list[IPv4Network | IPv6Network], ssl_profile: str) -> None: ...
111
- async def async_initialize(self, *, cors_origins: list[str], use_x_forwarded_for: bool, login_threshold: int, is_ban_enabled: bool, use_x_frame_options: bool) -> None: ...
113
+ async def async_initialize(self, *, cors_origins: list[str], use_x_forwarded_for: bool, login_threshold: int, is_ban_enabled: bool, use_x_frame_options: bool, strict_connection_non_cloud: StrictConnectionMode) -> None: ...
112
114
  def register_view(self, view: HomeAssistantView | type[HomeAssistantView]) -> None: ...
113
115
  def register_redirect(self, url: str, redirect_to: StrOrURL, *, redirect_exc: type[HTTPRedirection] = ...) -> None: ...
114
116
  def register_static_path(self, url_path: str, path: str, cache_headers: bool = True) -> None: ...
@@ -118,3 +120,4 @@ class HomeAssistantHTTP:
118
120
  async def stop(self) -> None: ...
119
121
 
120
122
  async def start_http_server_and_save_config(hass: HomeAssistant, conf: dict, server: HomeAssistantHTTP) -> None: ...
123
+ def _setup_services(hass: HomeAssistant, conf: ConfData) -> None: ...
@@ -1,4 +1,5 @@
1
- from .const import KEY_AUTHENTICATED as KEY_AUTHENTICATED, KEY_HASS_REFRESH_TOKEN_ID as KEY_HASS_REFRESH_TOKEN_ID, KEY_HASS_USER as KEY_HASS_USER
1
+ from .const import DOMAIN as DOMAIN, KEY_AUTHENTICATED as KEY_AUTHENTICATED, KEY_HASS_REFRESH_TOKEN_ID as KEY_HASS_REFRESH_TOKEN_ID, KEY_HASS_USER as KEY_HASS_USER, StrictConnectionMode as StrictConnectionMode
2
+ from .session import HomeAssistantCookieStorage as HomeAssistantCookieStorage
2
3
  from _typeshed import Incomplete
3
4
  from aiohttp.web import Application as Application, Request as Request, StreamResponse as StreamResponse
4
5
  from collections.abc import Callable as Callable
@@ -8,6 +9,7 @@ from homeassistant.auth.const import GROUP_ID_READ_ONLY as GROUP_ID_READ_ONLY
8
9
  from homeassistant.auth.models import User as User
9
10
  from homeassistant.components import websocket_api as websocket_api
10
11
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
12
+ from homeassistant.helpers import singleton as singleton
11
13
  from homeassistant.helpers.http import current_request as current_request
12
14
  from homeassistant.helpers.json import json_bytes as json_bytes
13
15
  from homeassistant.helpers.network import is_cloud_connection as is_cloud_connection
@@ -23,7 +25,13 @@ SAFE_QUERY_PARAMS: Final[Incomplete]
23
25
  STORAGE_VERSION: int
24
26
  STORAGE_KEY: str
25
27
  CONTENT_USER_NAME: str
28
+ STRICT_CONNECTION_EXCLUDED_PATH: str
29
+ STRICT_CONNECTION_GUARD_PAGE_NAME: str
30
+ STRICT_CONNECTION_GUARD_PAGE: Incomplete
26
31
 
27
- def async_sign_path(hass: HomeAssistant, path: str, expiration: timedelta, *, refresh_token_id: str | None = None) -> str: ...
32
+ def async_sign_path(hass: HomeAssistant, path: str, expiration: timedelta, *, refresh_token_id: str | None = None, use_content_user: bool = False) -> str: ...
28
33
  def async_user_not_allowed_do_auth(hass: HomeAssistant, user: User, request: Request | None = None) -> str | None: ...
29
- async def async_setup_auth(hass: HomeAssistant, app: Application) -> None: ...
34
+ async def async_setup_auth(hass: HomeAssistant, app: Application, strict_connection_mode_non_cloud: StrictConnectionMode) -> None: ...
35
+ async def _async_perform_strict_connection_action_on_non_local(hass: HomeAssistant, request: Request, guard_page: bool) -> StreamResponse | None: ...
36
+ async def _async_perform_strict_connection_action(hass: HomeAssistant, request: Request, guard_page: bool) -> StreamResponse | None: ...
37
+ async def _read_strict_connection_guard_page(hass: HomeAssistant) -> str: ...
@@ -1,5 +1,12 @@
1
+ from enum import StrEnum
1
2
  from homeassistant.helpers.http import KEY_AUTHENTICATED as KEY_AUTHENTICATED, KEY_HASS as KEY_HASS
2
3
  from typing import Final
3
4
 
5
+ DOMAIN: Final[str]
4
6
  KEY_HASS_USER: Final[str]
5
7
  KEY_HASS_REFRESH_TOKEN_ID: Final[str]
8
+
9
+ class StrictConnectionMode(StrEnum):
10
+ DISABLED: str
11
+ GUARD_PAGE: str
12
+ DROP_CONNECTION: str
@@ -0,0 +1,29 @@
1
+ from .ban import process_wrong_login as process_wrong_login
2
+ from _typeshed import Incomplete
3
+ from aiohttp.web import Request as Request, StreamResponse as StreamResponse
4
+ from aiohttp_session import Session
5
+ from aiohttp_session.cookie_storage import EncryptedCookieStorage
6
+ from homeassistant.auth.const import REFRESH_TOKEN_EXPIRATION as REFRESH_TOKEN_EXPIRATION
7
+ from homeassistant.core import HomeAssistant as HomeAssistant
8
+ from homeassistant.helpers.json import json_dumps as json_dumps
9
+ from homeassistant.helpers.network import is_cloud_connection as is_cloud_connection
10
+ from homeassistant.util.json import JSON_DECODE_EXCEPTIONS as JSON_DECODE_EXCEPTIONS, json_loads as json_loads
11
+
12
+ _LOGGER: Incomplete
13
+ COOKIE_NAME: str
14
+ PREFIXED_COOKIE_NAME: Incomplete
15
+ SESSION_CACHE_SIZE: int
16
+
17
+ def _get_cookie_name(is_secure: bool) -> str: ...
18
+
19
+ class HomeAssistantCookieStorage(EncryptedCookieStorage):
20
+ _hass: Incomplete
21
+ def __init__(self, hass: HomeAssistant) -> None: ...
22
+ def _secure_connection(self, request: Request) -> bool: ...
23
+ def load_cookie(self, request: Request) -> str | None: ...
24
+ def _decrypt_cookie(self, cookie: str) -> Session | None: ...
25
+ async def new_session(self) -> Session: ...
26
+ async def load_session(self, request: Request) -> Session: ...
27
+ async def save_session(self, request: Request, response: StreamResponse, session: Session) -> None: ...
28
+ @staticmethod
29
+ def _add_cache_control_header(response: StreamResponse) -> None: ...
@@ -1,14 +1,11 @@
1
1
  from .const import DOMAIN as DOMAIN, SCAN_INTERVAL as SCAN_INTERVAL
2
2
  from .coordinator import HydrawiseDataUpdateCoordinator as HydrawiseDataUpdateCoordinator
3
- from _typeshed import Incomplete
4
- from homeassistant.config_entries import ConfigEntry as ConfigEntry, SOURCE_IMPORT as SOURCE_IMPORT
5
- from homeassistant.const import CONF_ACCESS_TOKEN as CONF_ACCESS_TOKEN, CONF_API_KEY as CONF_API_KEY, CONF_SCAN_INTERVAL as CONF_SCAN_INTERVAL, Platform as Platform
3
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
4
+ from homeassistant.const import CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME, Platform as Platform
6
5
  from homeassistant.core import HomeAssistant as HomeAssistant
7
- from homeassistant.helpers.typing import ConfigType as ConfigType
6
+ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed
8
7
 
9
- CONFIG_SCHEMA: Incomplete
10
8
  PLATFORMS: list[Platform]
11
9
 
12
- async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
13
10
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: ...
14
11
  async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
@@ -2,19 +2,16 @@ from .const import DOMAIN as DOMAIN
2
2
  from .coordinator import HydrawiseDataUpdateCoordinator as HydrawiseDataUpdateCoordinator
3
3
  from .entity import HydrawiseEntity as HydrawiseEntity
4
4
  from _typeshed import Incomplete
5
- from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription, PLATFORM_SCHEMA as PLATFORM_SCHEMA
5
+ from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription
6
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
- from homeassistant.const import CONF_MONITORED_CONDITIONS as CONF_MONITORED_CONDITIONS
8
7
  from homeassistant.core import HomeAssistant as HomeAssistant
9
8
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
- from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
11
9
  from pydrawise.schema import Zone as Zone
12
10
 
13
11
  BINARY_SENSOR_STATUS: Incomplete
14
12
  BINARY_SENSOR_TYPES: tuple[BinarySensorEntityDescription, ...]
15
13
  BINARY_SENSOR_KEYS: list[str]
16
14
 
17
- def setup_platform(hass: HomeAssistant, config: ConfigType, add_entities: AddEntitiesCallback, discovery_info: DiscoveryInfoType | None = None) -> None: ...
18
15
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
19
16
 
20
17
  class HydrawiseBinarySensor(HydrawiseEntity, BinarySensorEntity):
@@ -1,16 +1,15 @@
1
1
  from .const import DOMAIN as DOMAIN, LOGGER as LOGGER
2
- from collections.abc import Callable as Callable
3
- from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
4
- from homeassistant.const import CONF_API_KEY as CONF_API_KEY
5
- from homeassistant.data_entry_flow import AbortFlow as AbortFlow, FlowResultType as FlowResultType
6
- from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity, async_create_issue as async_create_issue
2
+ from _typeshed import Incomplete
3
+ from collections.abc import Callable as Callable, Mapping
4
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
5
+ from homeassistant.const import CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME
7
6
  from typing import Any
8
7
 
9
8
  class HydrawiseConfigFlow(ConfigFlow, domain=DOMAIN):
10
9
  VERSION: int
11
- async def _create_entry(self, api_key: str, *, on_failure: Callable[[str], ConfigFlowResult]) -> ConfigFlowResult: ...
12
- def _import_issue(self, error_type: str) -> ConfigFlowResult: ...
13
- def _deprecated_yaml_issue(self) -> None: ...
10
+ reauth_entry: Incomplete
11
+ def __init__(self) -> None: ...
12
+ async def _create_or_update_entry(self, username: str, password: str, *, on_failure: Callable[[str], ConfigFlowResult]) -> ConfigFlowResult: ...
14
13
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
15
14
  def _show_form(self, error_type: str | None = None) -> ConfigFlowResult: ...
16
- async def async_step_import(self, import_data: dict[str, Any]) -> ConfigFlowResult: ...
15
+ async def async_step_reauth(self, user_input: Mapping[str, Any]) -> ConfigFlowResult: ...
@@ -2,12 +2,11 @@ from .const import DOMAIN as DOMAIN
2
2
  from .coordinator import HydrawiseDataUpdateCoordinator as HydrawiseDataUpdateCoordinator
3
3
  from .entity import HydrawiseEntity as HydrawiseEntity
4
4
  from _typeshed import Incomplete
5
- from homeassistant.components.sensor import PLATFORM_SCHEMA as PLATFORM_SCHEMA, SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription
5
+ from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription
6
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
- from homeassistant.const import CONF_MONITORED_CONDITIONS as CONF_MONITORED_CONDITIONS, UnitOfTime as UnitOfTime
7
+ from homeassistant.const import UnitOfTime as UnitOfTime
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant
9
9
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
- from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
11
10
  from pydrawise.schema import Zone as Zone
12
11
 
13
12
  SENSOR_TYPES: tuple[SensorEntityDescription, ...]
@@ -15,7 +14,6 @@ SENSOR_KEYS: list[str]
15
14
  TWO_YEAR_SECONDS: Incomplete
16
15
  WATERING_TIME_ICON: str
17
16
 
18
- def setup_platform(hass: HomeAssistant, config: ConfigType, add_entities: AddEntitiesCallback, discovery_info: DiscoveryInfoType | None = None) -> None: ...
19
17
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
20
18
 
21
19
  class HydrawiseSensor(HydrawiseEntity, SensorEntity):
@@ -1,19 +1,16 @@
1
- from .const import ALLOWED_WATERING_TIME as ALLOWED_WATERING_TIME, CONF_WATERING_TIME as CONF_WATERING_TIME, DEFAULT_WATERING_TIME as DEFAULT_WATERING_TIME, DOMAIN as DOMAIN
1
+ from .const import DEFAULT_WATERING_TIME as DEFAULT_WATERING_TIME, DOMAIN as DOMAIN
2
2
  from .coordinator import HydrawiseDataUpdateCoordinator as HydrawiseDataUpdateCoordinator
3
3
  from .entity import HydrawiseEntity as HydrawiseEntity
4
- from homeassistant.components.switch import PLATFORM_SCHEMA as PLATFORM_SCHEMA, SwitchDeviceClass as SwitchDeviceClass, SwitchEntity as SwitchEntity, SwitchEntityDescription as SwitchEntityDescription
4
+ from homeassistant.components.switch import SwitchDeviceClass as SwitchDeviceClass, SwitchEntity as SwitchEntity, SwitchEntityDescription as SwitchEntityDescription
5
5
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
- from homeassistant.const import CONF_MONITORED_CONDITIONS as CONF_MONITORED_CONDITIONS
7
6
  from homeassistant.core import HomeAssistant as HomeAssistant
8
7
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
9
- from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
10
8
  from pydrawise.schema import Zone as Zone
11
9
  from typing import Any
12
10
 
13
11
  SWITCH_TYPES: tuple[SwitchEntityDescription, ...]
14
12
  SWITCH_KEYS: list[str]
15
13
 
16
- def setup_platform(hass: HomeAssistant, config: ConfigType, add_entities: AddEntitiesCallback, discovery_info: DiscoveryInfoType | None = None) -> None: ...
17
14
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
18
15
 
19
16
  class HydrawiseSwitch(HydrawiseEntity, SwitchEntity):
@@ -8,12 +8,12 @@ from functools import cached_property as cached_property
8
8
  from homeassistant.components.http import HomeAssistantView as HomeAssistantView, KEY_AUTHENTICATED as KEY_AUTHENTICATED, KEY_HASS as KEY_HASS
9
9
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
10
10
  from homeassistant.const import CONTENT_TYPE_MULTIPART as CONTENT_TYPE_MULTIPART, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP
11
- from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, callback as callback
11
+ from homeassistant.core import Event as Event, EventStateChangedData as EventStateChangedData, HomeAssistant as HomeAssistant, callback as callback
12
12
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
13
13
  from homeassistant.helpers.config_validation import PLATFORM_SCHEMA as PLATFORM_SCHEMA, PLATFORM_SCHEMA_BASE as PLATFORM_SCHEMA_BASE
14
14
  from homeassistant.helpers.entity import Entity as Entity, EntityDescription as EntityDescription
15
15
  from homeassistant.helpers.entity_component import EntityComponent as EntityComponent
16
- from homeassistant.helpers.event import EventStateChangedData as EventStateChangedData, async_track_state_change_event as async_track_state_change_event, async_track_time_interval as async_track_time_interval
16
+ from homeassistant.helpers.event import async_track_state_change_event as async_track_state_change_event, async_track_time_interval as async_track_time_interval
17
17
  from homeassistant.helpers.httpx_client import get_async_client as get_async_client
18
18
  from homeassistant.helpers.typing import ConfigType as ConfigType, UNDEFINED as UNDEFINED, UndefinedType as UndefinedType
19
19
  from typing import Final
@@ -1,13 +1,29 @@
1
1
  from .const import CONF_ENABLE_PUSH as CONF_ENABLE_PUSH, DOMAIN as DOMAIN
2
- from .coordinator import ImapPollingDataUpdateCoordinator as ImapPollingDataUpdateCoordinator, ImapPushDataUpdateCoordinator as ImapPushDataUpdateCoordinator, connect_to_server as connect_to_server
2
+ from .coordinator import ImapMessage as ImapMessage, ImapPollingDataUpdateCoordinator as ImapPollingDataUpdateCoordinator, ImapPushDataUpdateCoordinator as ImapPushDataUpdateCoordinator, connect_to_server as connect_to_server
3
3
  from .errors import InvalidAuth as InvalidAuth, InvalidFolder as InvalidFolder
4
- from aioimaplib import IMAP4_SSL as IMAP4_SSL
4
+ from _typeshed import Incomplete
5
+ from aioimaplib import IMAP4_SSL as IMAP4_SSL, Response as Response
5
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
7
  from homeassistant.const import EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP, Platform as Platform
7
- from homeassistant.core import HomeAssistant as HomeAssistant
8
- from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryError as ConfigEntryError, ConfigEntryNotReady as ConfigEntryNotReady
8
+ from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse, callback as callback
9
+ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryError as ConfigEntryError, ConfigEntryNotReady as ConfigEntryNotReady, ServiceValidationError as ServiceValidationError
10
+ from homeassistant.helpers.typing import ConfigType as ConfigType
9
11
 
10
12
  PLATFORMS: list[Platform]
13
+ CONF_ENTRY: str
14
+ CONF_SEEN: str
15
+ CONF_UID: str
16
+ CONF_TARGET_FOLDER: str
17
+ _LOGGER: Incomplete
18
+ CONFIG_SCHEMA: Incomplete
19
+ _SERVICE_UID_SCHEMA: Incomplete
20
+ SERVICE_SEEN_SCHEMA = _SERVICE_UID_SCHEMA
21
+ SERVICE_MOVE_SCHEMA: Incomplete
22
+ SERVICE_DELETE_SCHEMA = _SERVICE_UID_SCHEMA
23
+ SERVICE_FETCH_TEXT_SCHEMA = _SERVICE_UID_SCHEMA
11
24
 
25
+ async def async_get_imap_client(hass: HomeAssistant, entry_id: str) -> IMAP4_SSL: ...
26
+ def raise_on_error(response: Response, translation_key: str) -> None: ...
27
+ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
12
28
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
13
29
  async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
@@ -1,4 +1,4 @@
1
- from .const import CONF_CHARSET as CONF_CHARSET, CONF_CUSTOM_EVENT_DATA_TEMPLATE as CONF_CUSTOM_EVENT_DATA_TEMPLATE, CONF_ENABLE_PUSH as CONF_ENABLE_PUSH, CONF_FOLDER as CONF_FOLDER, CONF_MAX_MESSAGE_SIZE as CONF_MAX_MESSAGE_SIZE, CONF_SEARCH as CONF_SEARCH, CONF_SERVER as CONF_SERVER, CONF_SSL_CIPHER_LIST as CONF_SSL_CIPHER_LIST, DEFAULT_MAX_MESSAGE_SIZE as DEFAULT_MAX_MESSAGE_SIZE, DEFAULT_PORT as DEFAULT_PORT, DOMAIN as DOMAIN, MAX_MESSAGE_SIZE_LIMIT as MAX_MESSAGE_SIZE_LIMIT
1
+ from .const import CONF_CHARSET as CONF_CHARSET, CONF_CUSTOM_EVENT_DATA_TEMPLATE as CONF_CUSTOM_EVENT_DATA_TEMPLATE, CONF_ENABLE_PUSH as CONF_ENABLE_PUSH, CONF_EVENT_MESSAGE_DATA as CONF_EVENT_MESSAGE_DATA, CONF_FOLDER as CONF_FOLDER, CONF_MAX_MESSAGE_SIZE as CONF_MAX_MESSAGE_SIZE, CONF_SEARCH as CONF_SEARCH, CONF_SERVER as CONF_SERVER, CONF_SSL_CIPHER_LIST as CONF_SSL_CIPHER_LIST, DEFAULT_MAX_MESSAGE_SIZE as DEFAULT_MAX_MESSAGE_SIZE, DEFAULT_PORT as DEFAULT_PORT, DOMAIN as DOMAIN, MAX_MESSAGE_SIZE_LIMIT as MAX_MESSAGE_SIZE_LIMIT, MESSAGE_DATA_OPTIONS as MESSAGE_DATA_OPTIONS
2
2
  from .coordinator import connect_to_server as connect_to_server
3
3
  from .errors import InvalidAuth as InvalidAuth, InvalidFolder as InvalidFolder
4
4
  from _typeshed import Incomplete
@@ -14,6 +14,7 @@ from typing import Any
14
14
  BOOLEAN_SELECTOR: Incomplete
15
15
  CIPHER_SELECTOR: Incomplete
16
16
  TEMPLATE_SELECTOR: Incomplete
17
+ EVENT_MESSAGE_DATA_SELECTOR: Incomplete
17
18
  CONFIG_SCHEMA: Incomplete
18
19
  CONFIG_SCHEMA_ADVANCED: Incomplete
19
20
  OPTIONS_SCHEMA: Incomplete
@@ -1,3 +1,4 @@
1
+ from _typeshed import Incomplete
1
2
  from typing import Final
2
3
 
3
4
  DOMAIN: Final[str]
@@ -5,10 +6,12 @@ CONF_SERVER: Final[str]
5
6
  CONF_FOLDER: Final[str]
6
7
  CONF_SEARCH: Final[str]
7
8
  CONF_CHARSET: Final[str]
8
- CONF_MAX_MESSAGE_SIZE: str
9
+ CONF_EVENT_MESSAGE_DATA: Final[str]
10
+ CONF_MAX_MESSAGE_SIZE: Final[str]
9
11
  CONF_CUSTOM_EVENT_DATA_TEMPLATE: Final[str]
10
12
  CONF_SSL_CIPHER_LIST: Final[str]
11
13
  CONF_ENABLE_PUSH: Final[str]
12
14
  DEFAULT_PORT: Final[int]
13
15
  DEFAULT_MAX_MESSAGE_SIZE: int
14
- MAX_MESSAGE_SIZE_LIMIT: int
16
+ MESSAGE_DATA_OPTIONS: Final[Incomplete]
17
+ MAX_MESSAGE_SIZE_LIMIT: Final[int]
@@ -1,4 +1,4 @@
1
- from .const import CONF_CHARSET as CONF_CHARSET, CONF_CUSTOM_EVENT_DATA_TEMPLATE as CONF_CUSTOM_EVENT_DATA_TEMPLATE, CONF_FOLDER as CONF_FOLDER, CONF_MAX_MESSAGE_SIZE as CONF_MAX_MESSAGE_SIZE, CONF_SEARCH as CONF_SEARCH, CONF_SERVER as CONF_SERVER, CONF_SSL_CIPHER_LIST as CONF_SSL_CIPHER_LIST, DEFAULT_MAX_MESSAGE_SIZE as DEFAULT_MAX_MESSAGE_SIZE, DOMAIN as DOMAIN
1
+ from .const import CONF_CHARSET as CONF_CHARSET, CONF_CUSTOM_EVENT_DATA_TEMPLATE as CONF_CUSTOM_EVENT_DATA_TEMPLATE, CONF_EVENT_MESSAGE_DATA as CONF_EVENT_MESSAGE_DATA, CONF_FOLDER as CONF_FOLDER, CONF_MAX_MESSAGE_SIZE as CONF_MAX_MESSAGE_SIZE, CONF_SEARCH as CONF_SEARCH, CONF_SERVER as CONF_SERVER, CONF_SSL_CIPHER_LIST as CONF_SSL_CIPHER_LIST, DEFAULT_MAX_MESSAGE_SIZE as DEFAULT_MAX_MESSAGE_SIZE, DOMAIN as DOMAIN, MESSAGE_DATA_OPTIONS as MESSAGE_DATA_OPTIONS
2
2
  from .errors import InvalidAuth as InvalidAuth, InvalidFolder as InvalidFolder
3
3
  from _typeshed import Incomplete
4
4
  from aioimaplib import IMAP4_SSL
@@ -30,7 +30,7 @@ class ImapMessage:
30
30
  @staticmethod
31
31
  def _decode_payload(part: Message) -> str: ...
32
32
  @property
33
- def headers(self) -> dict[str, tuple[str]]: ...
33
+ def headers(self) -> dict[str, tuple[str, ...]]: ...
34
34
  @property
35
35
  def message_id(self) -> str | None: ...
36
36
  @property
@@ -50,6 +50,8 @@ class ImapDataUpdateCoordinator(DataUpdateCoordinator[int | None]):
50
50
  _last_message_uid: Incomplete
51
51
  _last_message_id: Incomplete
52
52
  _diagnostics_data: Incomplete
53
+ _event_data_keys: Incomplete
54
+ _max_event_size: Incomplete
53
55
  def __init__(self, hass: HomeAssistant, imap_client: IMAP4_SSL, entry: ConfigEntry, update_interval: timedelta | None) -> None: ...
54
56
  async def async_start(self) -> None: ...
55
57
  async def _async_reconnect_if_needed(self) -> None: ...
@@ -68,6 +70,7 @@ class ImapPollingDataUpdateCoordinator(ImapDataUpdateCoordinator):
68
70
 
69
71
  class ImapPushDataUpdateCoordinator(ImapDataUpdateCoordinator):
70
72
  _push_wait_task: Incomplete
73
+ number_of_messages: Incomplete
71
74
  def __init__(self, hass: HomeAssistant, imap_client: IMAP4_SSL, entry: ConfigEntry) -> None: ...
72
75
  async def _async_update_data(self) -> int | None: ...
73
76
  async def async_start(self) -> None: ...
@@ -7,11 +7,10 @@ from decimal import Decimal
7
7
  from homeassistant.components.sensor import PLATFORM_SCHEMA as PLATFORM_SCHEMA, RestoreSensor as RestoreSensor, SensorDeviceClass as SensorDeviceClass, SensorExtraStoredData as SensorExtraStoredData, SensorStateClass as SensorStateClass
8
8
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
9
9
  from homeassistant.const import ATTR_DEVICE_CLASS as ATTR_DEVICE_CLASS, ATTR_UNIT_OF_MEASUREMENT as ATTR_UNIT_OF_MEASUREMENT, CONF_METHOD as CONF_METHOD, CONF_NAME as CONF_NAME, CONF_UNIQUE_ID as CONF_UNIQUE_ID, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN, UnitOfTime as UnitOfTime
10
- from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, State as State, callback as callback
11
- from homeassistant.helpers import condition as condition
10
+ from homeassistant.core import Event as Event, EventStateChangedData as EventStateChangedData, HomeAssistant as HomeAssistant, State as State, callback as callback
12
11
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
13
12
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
14
- from homeassistant.helpers.event import EventStateChangedData as EventStateChangedData, async_track_state_change_event as async_track_state_change_event
13
+ from homeassistant.helpers.event import async_track_state_change_event as async_track_state_change_event
15
14
  from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
16
15
  from typing import Any, Final, Self
17
16
 
@@ -25,24 +24,24 @@ class _IntegrationMethod(ABC, metaclass=abc.ABCMeta):
25
24
  @staticmethod
26
25
  def from_name(method_name: str) -> _IntegrationMethod: ...
27
26
  @abstractmethod
28
- def validate_states(self, left: State, right: State) -> bool: ...
27
+ def validate_states(self, left: State, right: State) -> tuple[Decimal, Decimal] | None: ...
29
28
  @abstractmethod
30
- def calculate_area_with_two_states(self, elapsed_time: float, left: State, right: State) -> Decimal: ...
31
- def calculate_area_with_one_state(self, elapsed_time: float, constant_state: State) -> Decimal: ...
29
+ def calculate_area_with_two_states(self, elapsed_time: Decimal, left: Decimal, right: Decimal) -> Decimal: ...
30
+ def calculate_area_with_one_state(self, elapsed_time: Decimal, constant_state: Decimal) -> Decimal: ...
32
31
 
33
32
  class _Trapezoidal(_IntegrationMethod):
34
- def calculate_area_with_two_states(self, elapsed_time: float, left: State, right: State) -> Decimal: ...
35
- def validate_states(self, left: State, right: State) -> bool: ...
33
+ def calculate_area_with_two_states(self, elapsed_time: Decimal, left: Decimal, right: Decimal) -> Decimal: ...
34
+ def validate_states(self, left: State, right: State) -> tuple[Decimal, Decimal] | None: ...
36
35
 
37
36
  class _Left(_IntegrationMethod):
38
- def calculate_area_with_two_states(self, elapsed_time: float, left: State, right: State) -> Decimal: ...
39
- def validate_states(self, left: State, right: State) -> bool: ...
37
+ def calculate_area_with_two_states(self, elapsed_time: Decimal, left: Decimal, right: Decimal) -> Decimal: ...
38
+ def validate_states(self, left: State, right: State) -> tuple[Decimal, Decimal] | None: ...
40
39
 
41
40
  class _Right(_IntegrationMethod):
42
- def calculate_area_with_two_states(self, elapsed_time: float, left: State, right: State) -> Decimal: ...
43
- def validate_states(self, left: State, right: State) -> bool: ...
41
+ def calculate_area_with_two_states(self, elapsed_time: Decimal, left: Decimal, right: Decimal) -> Decimal: ...
42
+ def validate_states(self, left: State, right: State) -> tuple[Decimal, Decimal] | None: ...
44
43
 
45
- def _is_numeric_state(state: State) -> bool: ...
44
+ def _decimal_state(state: str) -> Decimal | None: ...
46
45
 
47
46
  _NAME_TO_INTEGRATION_METHOD: dict[str, type[_IntegrationMethod]]
48
47
 
@@ -2,12 +2,10 @@ from .const import CALC_METHODS as CALC_METHODS, CONF_CALC_METHOD as CONF_CALC_M
2
2
  from _typeshed import Incomplete
3
3
  from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
4
4
  from homeassistant.const import CONF_LATITUDE as CONF_LATITUDE, CONF_LOCATION as CONF_LOCATION, CONF_LONGITUDE as CONF_LONGITUDE, CONF_NAME as CONF_NAME
5
- from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
5
+ from homeassistant.core import callback as callback
6
6
  from homeassistant.helpers.selector import LocationSelector as LocationSelector, SelectSelector as SelectSelector, SelectSelectorConfig as SelectSelectorConfig, SelectSelectorMode as SelectSelectorMode, TextSelector as TextSelector
7
7
  from typing import Any
8
8
 
9
- async def async_validate_location(hass: HomeAssistant, lat: float, lon: float) -> dict[str, str]: ...
10
-
11
9
  class IslamicPrayerFlowHandler(ConfigFlow, domain=DOMAIN):
12
10
  VERSION: int
13
11
  MINOR_VERSION: int