homeassistant-stubs 2024.4.4__py3-none-any.whl → 2024.5.0b0__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 (360) 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/airtouch5/config_flow.pyi +3 -3
  24. homeassistant-stubs/components/airzone_cloud/entity.pyi +7 -0
  25. homeassistant-stubs/components/airzone_cloud/select.pyi +38 -0
  26. homeassistant-stubs/components/airzone_cloud/water_heater.pyi +35 -0
  27. homeassistant-stubs/components/alert/__init__.pyi +2 -2
  28. homeassistant-stubs/components/alexa/config.pyi +2 -0
  29. homeassistant-stubs/components/alexa/entities.pyi +0 -2
  30. homeassistant-stubs/components/alexa/intent.pyi +2 -1
  31. homeassistant-stubs/components/alexa/resources.pyi +3 -3
  32. homeassistant-stubs/components/alexa/state_report.pyi +3 -4
  33. homeassistant-stubs/components/ambient_network/__init__.pyi +10 -0
  34. homeassistant-stubs/components/ambient_network/config_flow.pyi +22 -0
  35. homeassistant-stubs/components/ambient_network/const.pyi +12 -0
  36. homeassistant-stubs/components/ambient_network/coordinator.pyi +18 -0
  37. homeassistant-stubs/components/ambient_network/entity.pyi +20 -0
  38. homeassistant-stubs/components/ambient_network/helper.pyi +4 -0
  39. homeassistant-stubs/components/ambient_network/sensor.pyi +46 -0
  40. homeassistant-stubs/components/ambient_station/sensor.pyi +3 -1
  41. homeassistant-stubs/components/apache_kafka/__init__.pyi +1 -2
  42. homeassistant-stubs/components/apcupsd/binary_sensor.pyi +1 -0
  43. homeassistant-stubs/components/apcupsd/sensor.pyi +1 -0
  44. homeassistant-stubs/components/api/__init__.pyi +2 -2
  45. homeassistant-stubs/components/apple_tv/remote.pyi +1 -1
  46. homeassistant-stubs/components/arris_tg2492lg/device_tracker.pyi +5 -4
  47. homeassistant-stubs/components/assist_pipeline/__init__.pyi +2 -2
  48. homeassistant-stubs/components/assist_pipeline/const.pyi +1 -0
  49. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +5 -3
  50. homeassistant-stubs/components/auth/__init__.pyi +9 -2
  51. homeassistant-stubs/components/auth/login_flow.pyi +2 -2
  52. homeassistant-stubs/components/auth/mfa_setup_flow.pyi +1 -1
  53. homeassistant-stubs/components/automation/__init__.pyi +7 -9
  54. homeassistant-stubs/components/automation/logbook.pyi +3 -1
  55. homeassistant-stubs/components/axis/hub/event_source.pyi +23 -0
  56. homeassistant-stubs/components/axis/hub/hub.pyi +4 -9
  57. homeassistant-stubs/components/baf/fan.pyi +1 -0
  58. homeassistant-stubs/components/bayesian/binary_sensor.pyi +2 -2
  59. homeassistant-stubs/components/bluetooth/config_flow.pyi +6 -0
  60. homeassistant-stubs/components/bluetooth/diagnostics.pyi +1 -1
  61. homeassistant-stubs/components/bluetooth/util.pyi +2 -1
  62. homeassistant-stubs/components/bmw_connected_drive/binary_sensor.pyi +2 -1
  63. homeassistant-stubs/components/bmw_connected_drive/const.pyi +1 -0
  64. homeassistant-stubs/components/bmw_connected_drive/sensor.pyi +4 -3
  65. homeassistant-stubs/components/camera/__init__.pyi +2 -2
  66. homeassistant-stubs/components/cloud/__init__.pyi +9 -4
  67. homeassistant-stubs/components/cloud/alexa_config.pyi +2 -2
  68. homeassistant-stubs/components/cloud/const.pyi +2 -1
  69. homeassistant-stubs/components/cloud/google_config.pyi +3 -3
  70. homeassistant-stubs/components/cloud/http_api.pyi +2 -2
  71. homeassistant-stubs/components/cloud/prefs.pyi +5 -3
  72. homeassistant-stubs/components/cloud/stt.pyi +1 -0
  73. homeassistant-stubs/components/cloud/tts.pyi +1 -0
  74. homeassistant-stubs/components/cloud/util.pyi +7 -0
  75. homeassistant-stubs/components/command_line/binary_sensor.pyi +4 -4
  76. homeassistant-stubs/components/command_line/const.pyi +4 -1
  77. homeassistant-stubs/components/command_line/cover.pyi +3 -3
  78. homeassistant-stubs/components/command_line/sensor.pyi +4 -5
  79. homeassistant-stubs/components/command_line/switch.pyi +3 -3
  80. homeassistant-stubs/components/config/__init__.pyi +1 -1
  81. homeassistant-stubs/components/deconz/binary_sensor.pyi +0 -1
  82. homeassistant-stubs/components/demo/notify.pyi +12 -10
  83. homeassistant-stubs/components/demo/sensor.pyi +1 -1
  84. homeassistant-stubs/components/derivative/sensor.pyi +2 -2
  85. homeassistant-stubs/components/device_tracker/config_entry.pyi +1 -1
  86. homeassistant-stubs/components/device_tracker/legacy.pyi +2 -1
  87. homeassistant-stubs/components/dhcp/__init__.pyi +2 -2
  88. homeassistant-stubs/components/dlna_dms/dms.pyi +2 -1
  89. homeassistant-stubs/components/ecovacs/event.pyi +1 -0
  90. homeassistant-stubs/components/ecovacs/select.pyi +1 -1
  91. homeassistant-stubs/components/ecovacs/util.pyi +5 -1
  92. homeassistant-stubs/components/ecovacs/vacuum.pyi +1 -0
  93. homeassistant-stubs/components/emulated_hue/config.pyi +2 -2
  94. homeassistant-stubs/components/emulated_hue/hue_api.pyi +2 -2
  95. homeassistant-stubs/components/energenie_power_sockets/__init__.pyi +12 -0
  96. homeassistant-stubs/components/energenie_power_sockets/config_flow.pyi +6 -0
  97. homeassistant-stubs/components/energenie_power_sockets/const.pyi +5 -0
  98. homeassistant-stubs/components/energenie_power_sockets/switch.pyi +27 -0
  99. homeassistant-stubs/components/energy/data.pyi +1 -0
  100. homeassistant-stubs/components/energy/sensor.pyi +4 -4
  101. homeassistant-stubs/components/energy/websocket_api.pyi +1 -1
  102. homeassistant-stubs/components/enigma2/__init__.pyi +11 -0
  103. homeassistant-stubs/components/enigma2/config_flow.pyi +17 -0
  104. homeassistant-stubs/components/enigma2/const.pyi +1 -0
  105. homeassistant-stubs/components/enigma2/media_player.pyi +9 -6
  106. homeassistant-stubs/components/enphase_envoy/coordinator.pyi +1 -0
  107. homeassistant-stubs/components/eq3btsmart/__init__.pyi +18 -0
  108. homeassistant-stubs/components/eq3btsmart/climate.pyi +55 -0
  109. homeassistant-stubs/components/eq3btsmart/config_flow.pyi +17 -0
  110. homeassistant-stubs/components/eq3btsmart/const.pyi +38 -0
  111. homeassistant-stubs/components/eq3btsmart/entity.pyi +10 -0
  112. homeassistant-stubs/components/eq3btsmart/models.pyi +20 -0
  113. homeassistant-stubs/components/eq3btsmart/schemas.pyi +6 -0
  114. homeassistant-stubs/components/esphome/datetime.pyi +14 -0
  115. homeassistant-stubs/components/esphome/entry_data.pyi +4 -5
  116. homeassistant-stubs/components/esphome/event.pyi +16 -0
  117. homeassistant-stubs/components/esphome/manager.pyi +5 -4
  118. homeassistant-stubs/components/esphome/update.pyi +0 -1
  119. homeassistant-stubs/components/esphome/valve.pyi +30 -0
  120. homeassistant-stubs/components/esphome/voice_assistant.pyi +24 -8
  121. homeassistant-stubs/components/filter/sensor.pyi +2 -2
  122. homeassistant-stubs/components/fritz/__init__.pyi +2 -2
  123. homeassistant-stubs/components/fritz/button.pyi +16 -3
  124. homeassistant-stubs/components/fritz/common.pyi +6 -3
  125. homeassistant-stubs/components/fritz/config_flow.pyi +7 -2
  126. homeassistant-stubs/components/fritz/const.pyi +5 -1
  127. homeassistant-stubs/components/fritzbox/climate.pyi +1 -1
  128. homeassistant-stubs/components/fritzbox/config_flow.pyi +2 -0
  129. homeassistant-stubs/components/fritzbox/coordinator.pyi +4 -2
  130. homeassistant-stubs/components/generic_hygrostat/humidifier.pyi +4 -2
  131. homeassistant-stubs/components/generic_thermostat/climate.pyi +2 -2
  132. homeassistant-stubs/components/geo_location/trigger.pyi +2 -2
  133. homeassistant-stubs/components/glances/coordinator.pyi +1 -0
  134. homeassistant-stubs/components/glances/sensor.pyi +6 -5
  135. homeassistant-stubs/components/group/entity.pyi +9 -13
  136. homeassistant-stubs/components/group/event.pyi +2 -2
  137. homeassistant-stubs/components/group/media_player.pyi +2 -2
  138. homeassistant-stubs/components/group/notify.pyi +2 -1
  139. homeassistant-stubs/components/group/registry.pyi +7 -4
  140. homeassistant-stubs/components/history/websocket_api.pyi +6 -6
  141. homeassistant-stubs/components/history_stats/coordinator.pyi +2 -2
  142. homeassistant-stubs/components/history_stats/data.pyi +1 -2
  143. homeassistant-stubs/components/homeassistant/logbook.pyi +5 -3
  144. homeassistant-stubs/components/homeassistant/triggers/numeric_state.pyi +2 -2
  145. homeassistant-stubs/components/homeassistant/triggers/state.pyi +2 -2
  146. homeassistant-stubs/components/homeassistant/triggers/time.pyi +2 -2
  147. homeassistant-stubs/components/homeassistant_alerts/__init__.pyi +3 -1
  148. homeassistant-stubs/components/homeassistant_sky_connect/__init__.pyi +7 -9
  149. homeassistant-stubs/components/homeassistant_sky_connect/config_flow.pyi +60 -6
  150. homeassistant-stubs/components/homeassistant_sky_connect/const.pyi +8 -0
  151. homeassistant-stubs/components/homeassistant_sky_connect/util.pyi +23 -2
  152. homeassistant-stubs/components/homekit/accessories.pyi +2 -2
  153. homeassistant-stubs/components/homekit/type_cameras.pyi +3 -2
  154. homeassistant-stubs/components/homekit/type_covers.pyi +2 -2
  155. homeassistant-stubs/components/homekit/type_humidifiers.pyi +2 -2
  156. homeassistant-stubs/components/homekit/type_thermostats.pyi +2 -2
  157. homeassistant-stubs/components/homekit/util.pyi +3 -4
  158. homeassistant-stubs/components/homeworks/__init__.pyi +7 -2
  159. homeassistant-stubs/components/homeworks/button.pyi +1 -1
  160. homeassistant-stubs/components/http/__init__.pyi +11 -7
  161. homeassistant-stubs/components/http/auth.pyi +11 -3
  162. homeassistant-stubs/components/http/const.pyi +7 -0
  163. homeassistant-stubs/components/http/session.pyi +29 -0
  164. homeassistant-stubs/components/hydrawise/__init__.pyi +3 -6
  165. homeassistant-stubs/components/hydrawise/binary_sensor.pyi +1 -4
  166. homeassistant-stubs/components/hydrawise/config_flow.pyi +8 -9
  167. homeassistant-stubs/components/hydrawise/sensor.pyi +2 -4
  168. homeassistant-stubs/components/hydrawise/switch.pyi +2 -5
  169. homeassistant-stubs/components/image/__init__.pyi +2 -2
  170. homeassistant-stubs/components/imap/__init__.pyi +20 -4
  171. homeassistant-stubs/components/imap/config_flow.pyi +2 -1
  172. homeassistant-stubs/components/imap/const.pyi +5 -2
  173. homeassistant-stubs/components/imap/coordinator.pyi +5 -2
  174. homeassistant-stubs/components/integration/sensor.pyi +12 -13
  175. homeassistant-stubs/components/islamic_prayer_times/config_flow.pyi +1 -3
  176. homeassistant-stubs/components/islamic_prayer_times/coordinator.pyi +2 -2
  177. homeassistant-stubs/components/isy994/helpers.pyi +1 -1
  178. homeassistant-stubs/components/jvc_projector/select.pyi +30 -0
  179. homeassistant-stubs/components/knx/expose.pyi +2 -2
  180. homeassistant-stubs/components/knx/helpers/__init__.pyi +0 -0
  181. homeassistant-stubs/components/knx/notify.pyi +16 -3
  182. homeassistant-stubs/components/knx/repairs.pyi +7 -0
  183. homeassistant-stubs/components/logbook/__init__.pyi +1 -0
  184. homeassistant-stubs/components/logbook/helpers.pyi +5 -4
  185. homeassistant-stubs/components/logbook/models.pyi +4 -3
  186. homeassistant-stubs/components/logbook/processor.pyi +3 -2
  187. homeassistant-stubs/components/logger/helpers.pyi +4 -1
  188. homeassistant-stubs/components/media_extractor/__init__.pyi +4 -4
  189. homeassistant-stubs/components/media_extractor/const.pyi +5 -0
  190. homeassistant-stubs/components/min_max/sensor.pyi +2 -2
  191. homeassistant-stubs/components/minecraft_server/sensor.pyi +2 -2
  192. homeassistant-stubs/components/modbus/__init__.pyi +2 -2
  193. homeassistant-stubs/components/modbus/base_platform.pyi +1 -1
  194. homeassistant-stubs/components/modbus/climate.pyi +9 -3
  195. homeassistant-stubs/components/modbus/const.pyi +7 -0
  196. homeassistant-stubs/components/modbus/modbus.pyi +1 -0
  197. homeassistant-stubs/components/modbus/validators.pyi +2 -1
  198. homeassistant-stubs/components/mqtt/__init__.pyi +1 -2
  199. homeassistant-stubs/components/mqtt/client.pyi +30 -9
  200. homeassistant-stubs/components/mqtt/config_flow.pyi +9 -1
  201. homeassistant-stubs/components/mqtt/mixins.pyi +7 -4
  202. homeassistant-stubs/components/mqtt/models.pyi +1 -1
  203. homeassistant-stubs/components/mqtt/notify.pyi +31 -0
  204. homeassistant-stubs/components/netatmo/__init__.pyi +2 -0
  205. homeassistant-stubs/components/netatmo/binary_sensor.pyi +20 -0
  206. homeassistant-stubs/components/netatmo/camera.pyi +8 -11
  207. homeassistant-stubs/components/netatmo/climate.pyi +11 -19
  208. homeassistant-stubs/components/netatmo/cover.pyi +5 -7
  209. homeassistant-stubs/components/netatmo/entity.pyi +40 -10
  210. homeassistant-stubs/components/netatmo/fan.pyi +5 -8
  211. homeassistant-stubs/components/netatmo/light.pyi +11 -19
  212. homeassistant-stubs/components/netatmo/select.pyi +4 -7
  213. homeassistant-stubs/components/netatmo/sensor.pyi +36 -49
  214. homeassistant-stubs/components/netatmo/switch.pyi +5 -7
  215. homeassistant-stubs/components/nextdns/__init__.pyi +1 -38
  216. homeassistant-stubs/components/nextdns/binary_sensor.pyi +1 -1
  217. homeassistant-stubs/components/nextdns/button.pyi +1 -1
  218. homeassistant-stubs/components/nextdns/coordinator.pyi +42 -0
  219. homeassistant-stubs/components/nextdns/sensor.pyi +1 -1
  220. homeassistant-stubs/components/nextdns/switch.pyi +1 -1
  221. homeassistant-stubs/components/nfandroidtv/notify.pyi +2 -1
  222. homeassistant-stubs/components/notify/__init__.pyi +31 -2
  223. homeassistant-stubs/components/notify/const.pyi +2 -0
  224. homeassistant-stubs/components/number/const.pyi +1 -0
  225. homeassistant-stubs/components/number/significant_change.pyi +1 -1
  226. homeassistant-stubs/components/oncue/__init__.pyi +2 -1
  227. homeassistant-stubs/components/oncue/config_flow.pyi +7 -1
  228. homeassistant-stubs/components/open_meteo/weather.pyi +2 -1
  229. homeassistant-stubs/components/prometheus/__init__.pyi +1 -2
  230. homeassistant-stubs/components/proximity/__init__.pyi +1 -1
  231. homeassistant-stubs/components/proximity/coordinator.pyi +2 -2
  232. homeassistant-stubs/components/purpleair/config_flow.pyi +2 -2
  233. homeassistant-stubs/components/rabbitair/config_flow.pyi +4 -4
  234. homeassistant-stubs/components/recorder/__init__.pyi +1 -0
  235. homeassistant-stubs/components/recorder/auto_repairs/states/__init__.pyi +0 -0
  236. homeassistant-stubs/components/recorder/core.pyi +6 -5
  237. homeassistant-stubs/components/recorder/db_schema.pyi +3 -3
  238. homeassistant-stubs/components/recorder/history/__init__.pyi +5 -6
  239. homeassistant-stubs/components/recorder/history/legacy.pyi +7 -7
  240. homeassistant-stubs/components/recorder/history/modern.pyi +7 -7
  241. homeassistant-stubs/components/recorder/models/event.pyi +4 -1
  242. homeassistant-stubs/components/recorder/pool.pyi +1 -1
  243. homeassistant-stubs/components/recorder/services.pyi +1 -0
  244. homeassistant-stubs/components/recorder/statistics.pyi +4 -4
  245. homeassistant-stubs/components/recorder/table_managers/__init__.pyi +4 -3
  246. homeassistant-stubs/components/recorder/table_managers/event_types.pyi +5 -3
  247. homeassistant-stubs/components/recorder/table_managers/state_attributes.pyi +3 -3
  248. homeassistant-stubs/components/recorder/table_managers/states_meta.pyi +2 -2
  249. homeassistant-stubs/components/recorder/table_managers/statistics_meta.pyi +3 -3
  250. homeassistant-stubs/components/recorder/tasks.pyi +2 -1
  251. homeassistant-stubs/components/recorder/websocket_api.pyi +1 -1
  252. homeassistant-stubs/components/rest/__init__.pyi +2 -2
  253. homeassistant-stubs/components/rest/const.pyi +1 -0
  254. homeassistant-stubs/components/rest/data.pyi +1 -0
  255. homeassistant-stubs/components/rest/schema.pyi +1 -1
  256. homeassistant-stubs/components/rfxtrx/__init__.pyi +1 -1
  257. homeassistant-stubs/components/rfxtrx/config_flow.pyi +2 -2
  258. homeassistant-stubs/components/ring/__init__.pyi +25 -0
  259. homeassistant-stubs/components/ring/binary_sensor.pyi +35 -0
  260. homeassistant-stubs/components/ring/button.pyi +20 -0
  261. homeassistant-stubs/components/ring/camera.pyi +43 -0
  262. homeassistant-stubs/components/ring/config_flow.pyi +26 -0
  263. homeassistant-stubs/components/ring/const.pyi +12 -0
  264. homeassistant-stubs/components/ring/coordinator.pyi +25 -0
  265. homeassistant-stubs/components/ring/diagnostics.pyi +11 -0
  266. homeassistant-stubs/components/ring/entity.pyi +33 -0
  267. homeassistant-stubs/components/ring/light.pyi +34 -0
  268. homeassistant-stubs/components/ring/sensor.pyi +39 -0
  269. homeassistant-stubs/components/ring/siren.pyi +23 -0
  270. homeassistant-stubs/components/ring/switch.pyi +31 -0
  271. homeassistant-stubs/components/romy/binary_sensor.pyi +19 -0
  272. homeassistant-stubs/components/romy/config_flow.pyi +7 -7
  273. homeassistant-stubs/components/romy/sensor.pyi +20 -0
  274. homeassistant-stubs/components/sensor/__init__.pyi +1 -1
  275. homeassistant-stubs/components/sensor/significant_change.pyi +1 -1
  276. homeassistant-stubs/components/shelly/__init__.pyi +2 -4
  277. homeassistant-stubs/components/shelly/coordinator.pyi +8 -7
  278. homeassistant-stubs/components/starlink/coordinator.pyi +1 -0
  279. homeassistant-stubs/components/statistics/sensor.pyi +2 -2
  280. homeassistant-stubs/components/switch/light.pyi +2 -2
  281. homeassistant-stubs/components/synology_dsm/__init__.pyi +2 -2
  282. homeassistant-stubs/components/synology_dsm/camera.pyi +3 -2
  283. homeassistant-stubs/components/synology_dsm/common.pyi +6 -2
  284. homeassistant-stubs/components/synology_dsm/coordinator.pyi +4 -4
  285. homeassistant-stubs/components/synology_dsm/diagnostics.pyi +0 -1
  286. homeassistant-stubs/components/system_log/__init__.pyi +3 -3
  287. homeassistant-stubs/components/threshold/binary_sensor.pyi +2 -2
  288. homeassistant-stubs/components/tibber/sensor.pyi +1 -0
  289. homeassistant-stubs/components/tplink/coordinator.pyi +2 -0
  290. homeassistant-stubs/components/tplink/entity.pyi +1 -0
  291. homeassistant-stubs/components/tplink/light.pyi +1 -1
  292. homeassistant-stubs/components/tplink/sensor.pyi +4 -3
  293. homeassistant-stubs/components/tplink_omada/switch.pyi +12 -14
  294. homeassistant-stubs/components/trend/binary_sensor.pyi +2 -2
  295. homeassistant-stubs/components/unifi/__init__.pyi +2 -0
  296. homeassistant-stubs/components/unifi/button.pyi +2 -1
  297. homeassistant-stubs/components/unifi/hub/entity_helper.pyi +44 -0
  298. homeassistant-stubs/components/unifi/hub/hub.pyi +8 -13
  299. homeassistant-stubs/components/unifi/sensor.pyi +2 -1
  300. homeassistant-stubs/components/velbus/cover.pyi +2 -0
  301. homeassistant-stubs/components/weather/significant_change.pyi +1 -1
  302. homeassistant-stubs/components/websocket_api/commands.pyi +2 -2
  303. homeassistant-stubs/components/websocket_api/messages.pyi +1 -2
  304. homeassistant-stubs/components/websocket_api/sensor.pyi +3 -7
  305. homeassistant-stubs/components/withings/__init__.pyi +2 -8
  306. homeassistant-stubs/components/withings/config_flow.pyi +1 -1
  307. homeassistant-stubs/components/withings/const.pyi +0 -2
  308. homeassistant-stubs/components/zone/__init__.pyi +8 -10
  309. homeassistant-stubs/components/zone/trigger.pyi +2 -2
  310. homeassistant-stubs/components/zwave_js/config_flow.pyi +1 -1
  311. homeassistant-stubs/config.pyi +1 -1
  312. homeassistant-stubs/config_entries.pyi +32 -29
  313. homeassistant-stubs/const.pyi +11 -6
  314. homeassistant-stubs/core.pyi +56 -24
  315. homeassistant-stubs/data_entry_flow.pyi +3 -3
  316. homeassistant-stubs/exceptions.pyi +4 -2
  317. homeassistant-stubs/helpers/aiohttp_client.pyi +1 -0
  318. homeassistant-stubs/helpers/area_registry.pyi +28 -6
  319. homeassistant-stubs/helpers/backports/__init__.pyi +0 -0
  320. homeassistant-stubs/helpers/backports/aiohttp_resolver.pyi +21 -0
  321. homeassistant-stubs/helpers/category_registry.pyi +16 -6
  322. homeassistant-stubs/helpers/data_entry_flow.pyi +1 -1
  323. homeassistant-stubs/helpers/deprecation.pyi +5 -0
  324. homeassistant-stubs/helpers/device_registry.pyi +25 -12
  325. homeassistant-stubs/helpers/dispatcher.pyi +1 -1
  326. homeassistant-stubs/helpers/entity.pyi +6 -3
  327. homeassistant-stubs/helpers/entity_registry.pyi +24 -16
  328. homeassistant-stubs/helpers/event.pyi +10 -17
  329. homeassistant-stubs/helpers/floor_registry.pyi +14 -3
  330. homeassistant-stubs/helpers/frame.pyi +2 -2
  331. homeassistant-stubs/helpers/httpx_client.pyi +1 -1
  332. homeassistant-stubs/helpers/icon.pyi +3 -2
  333. homeassistant-stubs/helpers/intent.pyi +1 -2
  334. homeassistant-stubs/helpers/label_registry.pyi +14 -3
  335. homeassistant-stubs/helpers/network.pyi +2 -2
  336. homeassistant-stubs/helpers/normalized_name_base_registry.pyi +4 -6
  337. homeassistant-stubs/helpers/registry.pyi +19 -4
  338. homeassistant-stubs/helpers/reload.pyi +1 -1
  339. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +2 -2
  340. homeassistant-stubs/helpers/service.pyi +4 -1
  341. homeassistant-stubs/helpers/significant_change.pyi +4 -4
  342. homeassistant-stubs/helpers/start.pyi +3 -1
  343. homeassistant-stubs/helpers/template.pyi +6 -3
  344. homeassistant-stubs/helpers/translation.pyi +5 -9
  345. homeassistant-stubs/helpers/typing.pyi +11 -7
  346. homeassistant-stubs/requirements.pyi +2 -0
  347. homeassistant-stubs/setup.pyi +1 -0
  348. homeassistant-stubs/util/async_.pyi +1 -6
  349. homeassistant-stubs/util/dt.pyi +5 -4
  350. homeassistant-stubs/util/event_type.pyi +14 -0
  351. homeassistant-stubs/util/logging.pyi +3 -4
  352. homeassistant-stubs/util/loop.pyi +15 -0
  353. homeassistant-stubs/util/signal_type.pyi +1 -1
  354. homeassistant-stubs/util/timeout.pyi +6 -6
  355. homeassistant-stubs/util/yaml/loader.pyi +3 -4
  356. homeassistant-stubs/util/yaml/objects.pyi +12 -2
  357. {homeassistant_stubs-2024.4.4.dist-info → homeassistant_stubs-2024.5.0b0.dist-info}/METADATA +2 -2
  358. {homeassistant_stubs-2024.4.4.dist-info → homeassistant_stubs-2024.5.0b0.dist-info}/RECORD +360 -303
  359. {homeassistant_stubs-2024.4.4.dist-info → homeassistant_stubs-2024.5.0b0.dist-info}/LICENSE +0 -0
  360. {homeassistant_stubs-2024.4.4.dist-info → homeassistant_stubs-2024.5.0b0.dist-info}/WHEEL +0 -0
@@ -4,7 +4,7 @@ from ..db_schema import StatesMeta as StatesMeta
4
4
  from ..queries import find_all_states_metadata_ids as find_all_states_metadata_ids, find_states_metadata_ids as find_states_metadata_ids
5
5
  from ..util import chunked as chunked, execute_stmt_lambda_element as execute_stmt_lambda_element
6
6
  from collections.abc import Iterable
7
- from homeassistant.core import Event as Event
7
+ from homeassistant.core import Event as Event, EventStateChangedData as EventStateChangedData
8
8
  from sqlalchemy.orm.session import Session as Session
9
9
 
10
10
  CACHE_SIZE: int
@@ -12,7 +12,7 @@ CACHE_SIZE: int
12
12
  class StatesMetaManager(BaseLRUTableManager[StatesMeta]):
13
13
  _did_first_load: bool
14
14
  def __init__(self, recorder: Recorder) -> None: ...
15
- def load(self, events: list[Event], session: Session) -> None: ...
15
+ def load(self, events: list[Event[EventStateChangedData]], session: Session) -> None: ...
16
16
  def get(self, entity_id: str, session: Session, from_recorder: bool) -> int | None: ...
17
17
  def get_metadata_id_to_entity_id(self, session: Session) -> dict[int, str]: ...
18
18
  def get_many(self, entity_ids: Iterable[str], session: Session, from_recorder: bool) -> dict[str, int | None]: ...
@@ -11,7 +11,7 @@ CACHE_SIZE: int
11
11
  _LOGGER: Incomplete
12
12
  QUERY_STATISTIC_META: Incomplete
13
13
 
14
- def _generate_get_metadata_stmt(statistic_ids: set[str] | None = None, statistic_type: Literal['mean'] | Literal['sum'] | None = None, statistic_source: str | None = None) -> StatementLambdaElement: ...
14
+ def _generate_get_metadata_stmt(statistic_ids: set[str] | None = None, statistic_type: Literal['mean', 'sum'] | None = None, statistic_source: str | None = None) -> StatementLambdaElement: ...
15
15
  def _statistics_meta_to_id_statistics_metadata(meta: StatisticsMeta) -> tuple[int, StatisticMetaData]: ...
16
16
 
17
17
  class StatisticsMetaManager:
@@ -19,13 +19,13 @@ class StatisticsMetaManager:
19
19
  _stat_id_to_id_meta: Incomplete
20
20
  def __init__(self, recorder: Recorder) -> None: ...
21
21
  def _clear_cache(self, statistic_ids: list[str]) -> None: ...
22
- def _get_from_database(self, session: Session, statistic_ids: set[str] | None = None, statistic_type: Literal['mean'] | Literal['sum'] | None = None, statistic_source: str | None = None) -> dict[str, tuple[int, StatisticMetaData]]: ...
22
+ def _get_from_database(self, session: Session, statistic_ids: set[str] | None = None, statistic_type: Literal['mean', 'sum'] | None = None, statistic_source: str | None = None) -> dict[str, tuple[int, StatisticMetaData]]: ...
23
23
  def _assert_in_recorder_thread(self) -> None: ...
24
24
  def _add_metadata(self, session: Session, statistic_id: str, new_metadata: StatisticMetaData) -> int: ...
25
25
  def _update_metadata(self, session: Session, statistic_id: str, new_metadata: StatisticMetaData, old_metadata_dict: dict[str, tuple[int, StatisticMetaData]]) -> tuple[str | None, int]: ...
26
26
  def load(self, session: Session) -> None: ...
27
27
  def get(self, session: Session, statistic_id: str) -> tuple[int, StatisticMetaData] | None: ...
28
- def get_many(self, session: Session, statistic_ids: set[str] | None = None, statistic_type: Literal['mean'] | Literal['sum'] | None = None, statistic_source: str | None = None) -> dict[str, tuple[int, StatisticMetaData]]: ...
28
+ def get_many(self, session: Session, statistic_ids: set[str] | None = None, statistic_type: Literal['mean', 'sum'] | None = None, statistic_source: str | None = None) -> dict[str, tuple[int, StatisticMetaData]]: ...
29
29
  def get_from_cache_threadsafe(self, statistic_ids: set[str]) -> dict[str, tuple[int, StatisticMetaData]]: ...
30
30
  def update_or_add(self, session: Session, new_metadata: StatisticMetaData, old_metadata_dict: dict[str, tuple[int, StatisticMetaData]]) -> tuple[str | None, int]: ...
31
31
  def update_unit_of_measurement(self, session: Session, statistic_id: str, new_unit: str | None) -> None: ...
@@ -12,6 +12,7 @@ from collections.abc import Callable as Callable, Iterable
12
12
  from dataclasses import dataclass
13
13
  from datetime import datetime
14
14
  from homeassistant.helpers.typing import UndefinedType as UndefinedType
15
+ from homeassistant.util.event_type import EventType as EventType
15
16
  from typing import Any
16
17
 
17
18
  _LOGGER: Incomplete
@@ -186,6 +187,6 @@ class EventIdMigrationTask(RecorderTask):
186
187
 
187
188
  @dataclass(slots=True)
188
189
  class RefreshEventTypesTask(RecorderTask):
189
- event_types: list[str]
190
+ event_types: list[EventType[Any] | str]
190
191
  def run(self, instance: Recorder) -> None: ...
191
192
  def __init__(self, event_types) -> None: ...
@@ -19,7 +19,7 @@ async def ws_get_statistic_during_period(hass: HomeAssistant, connection: websoc
19
19
  def _ws_get_statistics_during_period(hass: HomeAssistant, msg_id: int, start_time: dt, end_time: dt | None, statistic_ids: set[str] | None, period: Literal['5minute', 'day', 'hour', 'week', 'month'], units: dict[str, str], types: set[Literal['change', 'last_reset', 'max', 'mean', 'min', 'state', 'sum']]) -> bytes: ...
20
20
  async def ws_handle_get_statistics_during_period(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict) -> None: ...
21
21
  async def ws_get_statistics_during_period(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
22
- def _ws_get_list_statistic_ids(hass: HomeAssistant, msg_id: int, statistic_type: Literal['mean'] | Literal['sum'] | None = None) -> bytes: ...
22
+ def _ws_get_list_statistic_ids(hass: HomeAssistant, msg_id: int, statistic_type: Literal['mean', 'sum'] | None = None) -> bytes: ...
23
23
  async def ws_handle_list_statistic_ids(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict) -> None: ...
24
24
  async def ws_list_statistic_ids(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
25
25
  async def ws_validate_statistics(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
@@ -1,4 +1,4 @@
1
- from .const import CONF_ENCODING as CONF_ENCODING, CONF_SSL_CIPHER_LIST as CONF_SSL_CIPHER_LIST, COORDINATOR as COORDINATOR, DEFAULT_SSL_CIPHER_LIST as DEFAULT_SSL_CIPHER_LIST, DOMAIN as DOMAIN, PLATFORM_IDX as PLATFORM_IDX, REST as REST, REST_DATA as REST_DATA, REST_IDX as REST_IDX
1
+ from .const import CONF_ENCODING as CONF_ENCODING, CONF_PAYLOAD_TEMPLATE as CONF_PAYLOAD_TEMPLATE, CONF_SSL_CIPHER_LIST as CONF_SSL_CIPHER_LIST, COORDINATOR as COORDINATOR, DEFAULT_SSL_CIPHER_LIST as DEFAULT_SSL_CIPHER_LIST, DOMAIN as DOMAIN, PLATFORM_IDX as PLATFORM_IDX, REST as REST, REST_DATA as REST_DATA, REST_IDX as REST_IDX
2
2
  from .data import RestData as RestData
3
3
  from .schema import CONFIG_SCHEMA as CONFIG_SCHEMA, RESOURCE_SCHEMA as RESOURCE_SCHEMA
4
4
  from _typeshed import Incomplete
@@ -21,5 +21,5 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
21
21
  def _async_setup_shared_data(hass: HomeAssistant) -> None: ...
22
22
  async def _async_process_config(hass: HomeAssistant, config: ConfigType) -> bool: ...
23
23
  async def async_get_config_and_coordinator(hass: HomeAssistant, platform_domain: str, discovery_info: DiscoveryInfoType) -> tuple[ConfigType, DataUpdateCoordinator[None], RestData]: ...
24
- def _rest_coordinator(hass: HomeAssistant, rest: RestData, resource_template: template.Template | None, update_interval: timedelta) -> DataUpdateCoordinator[None]: ...
24
+ def _rest_coordinator(hass: HomeAssistant, rest: RestData, resource_template: template.Template | None, payload_template: template.Template | None, update_interval: timedelta) -> DataUpdateCoordinator[None]: ...
25
25
  def create_rest_data_from_config(hass: HomeAssistant, config: ConfigType) -> RestData: ...
@@ -20,3 +20,4 @@ REST: str
20
20
  REST_DATA: str
21
21
  METHODS: Incomplete
22
22
  XML_MIME_TYPES: Incomplete
23
+ CONF_PAYLOAD_TEMPLATE: str
@@ -27,6 +27,7 @@ class RestData:
27
27
  last_exception: Incomplete
28
28
  headers: Incomplete
29
29
  def __init__(self, hass: HomeAssistant, method: str, resource: str, encoding: str, auth: httpx.DigestAuth | tuple[str, str] | None, headers: dict[str, str] | None, params: dict[str, str] | None, data: str | None, verify_ssl: bool, ssl_cipher_list: str, timeout: int = ...) -> None: ...
30
+ def set_payload(self, payload: str) -> None: ...
30
31
  @property
31
32
  def url(self) -> str: ...
32
33
  def set_url(self, url: str) -> None: ...
@@ -1,4 +1,4 @@
1
- from .const import CONF_ENCODING as CONF_ENCODING, CONF_JSON_ATTRS as CONF_JSON_ATTRS, CONF_JSON_ATTRS_PATH as CONF_JSON_ATTRS_PATH, CONF_SSL_CIPHER_LIST as CONF_SSL_CIPHER_LIST, DEFAULT_ENCODING as DEFAULT_ENCODING, DEFAULT_FORCE_UPDATE as DEFAULT_FORCE_UPDATE, DEFAULT_METHOD as DEFAULT_METHOD, DEFAULT_SSL_CIPHER_LIST as DEFAULT_SSL_CIPHER_LIST, DEFAULT_VERIFY_SSL as DEFAULT_VERIFY_SSL, DOMAIN as DOMAIN, METHODS as METHODS
1
+ from .const import CONF_ENCODING as CONF_ENCODING, CONF_JSON_ATTRS as CONF_JSON_ATTRS, CONF_JSON_ATTRS_PATH as CONF_JSON_ATTRS_PATH, CONF_PAYLOAD_TEMPLATE as CONF_PAYLOAD_TEMPLATE, CONF_SSL_CIPHER_LIST as CONF_SSL_CIPHER_LIST, DEFAULT_ENCODING as DEFAULT_ENCODING, DEFAULT_FORCE_UPDATE as DEFAULT_FORCE_UPDATE, DEFAULT_METHOD as DEFAULT_METHOD, DEFAULT_SSL_CIPHER_LIST as DEFAULT_SSL_CIPHER_LIST, DEFAULT_VERIFY_SSL as DEFAULT_VERIFY_SSL, DOMAIN as DOMAIN, METHODS as METHODS
2
2
  from .data import DEFAULT_TIMEOUT as DEFAULT_TIMEOUT
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.const import CONF_AUTHENTICATION as CONF_AUTHENTICATION, CONF_DEVICE_CLASS as CONF_DEVICE_CLASS, CONF_FORCE_UPDATE as CONF_FORCE_UPDATE, CONF_HEADERS as CONF_HEADERS, CONF_METHOD as CONF_METHOD, CONF_PARAMS as CONF_PARAMS, CONF_PASSWORD as CONF_PASSWORD, CONF_PAYLOAD as CONF_PAYLOAD, CONF_RESOURCE as CONF_RESOURCE, CONF_RESOURCE_TEMPLATE as CONF_RESOURCE_TEMPLATE, CONF_SCAN_INTERVAL as CONF_SCAN_INTERVAL, CONF_TIMEOUT as CONF_TIMEOUT, CONF_USERNAME as CONF_USERNAME, CONF_VALUE_TEMPLATE as CONF_VALUE_TEMPLATE, CONF_VERIFY_SSL as CONF_VERIFY_SSL, HTTP_BASIC_AUTHENTICATION as HTTP_BASIC_AUTHENTICATION, HTTP_DIGEST_AUTHENTICATION as HTTP_DIGEST_AUTHENTICATION
@@ -7,7 +7,7 @@ from homeassistant.const import ATTR_DEVICE_ID as ATTR_DEVICE_ID, CONF_DEVICE as
7
7
  from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
8
8
  from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
9
9
  from homeassistant.helpers import device_registry as dr
10
- from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
10
+ from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo, EventDeviceRegistryUpdatedData as EventDeviceRegistryUpdatedData
11
11
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect, async_dispatcher_send as async_dispatcher_send
12
12
  from homeassistant.helpers.entity import Entity as Entity
13
13
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
@@ -4,10 +4,10 @@ from .const import CONF_AUTOMATIC_ADD as CONF_AUTOMATIC_ADD, CONF_DATA_BITS as C
4
4
  from _typeshed import Incomplete
5
5
  from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
6
6
  from homeassistant.const import CONF_COMMAND_OFF as CONF_COMMAND_OFF, CONF_COMMAND_ON as CONF_COMMAND_ON, CONF_DEVICE as CONF_DEVICE, CONF_DEVICES as CONF_DEVICES, CONF_DEVICE_ID as CONF_DEVICE_ID, CONF_HOST as CONF_HOST, CONF_PORT as CONF_PORT, CONF_TYPE as CONF_TYPE
7
- from homeassistant.core import State as State, callback as callback
7
+ from homeassistant.core import Event as Event, EventStateChangedData as EventStateChangedData, callback as callback
8
8
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
9
9
  from homeassistant.helpers import device_registry as dr
10
- from homeassistant.helpers.event import async_track_state_change as async_track_state_change
10
+ from homeassistant.helpers.event import async_track_state_change_event as async_track_state_change_event
11
11
  from typing import Any, TypedDict
12
12
 
13
13
  CONF_EVENT_CODE: str
@@ -0,0 +1,25 @@
1
+ from .const import DOMAIN as DOMAIN, PLATFORMS as PLATFORMS
2
+ from .coordinator import RingDataCoordinator as RingDataCoordinator, RingNotificationsCoordinator as RingNotificationsCoordinator
3
+ from _typeshed import Incomplete
4
+ from dataclasses import dataclass
5
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
+ from homeassistant.const import APPLICATION_NAME as APPLICATION_NAME, CONF_TOKEN as CONF_TOKEN, __version__ as __version__
7
+ from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
8
+ from homeassistant.helpers import device_registry as dr
9
+ from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity, async_create_issue as async_create_issue
10
+ from ring_doorbell import Ring, RingDevices as RingDevices
11
+
12
+ _LOGGER: Incomplete
13
+
14
+ @dataclass
15
+ class RingData:
16
+ api: Ring
17
+ devices: RingDevices
18
+ devices_coordinator: RingDataCoordinator
19
+ notifications_coordinator: RingNotificationsCoordinator
20
+ def __init__(self, api, devices, devices_coordinator, notifications_coordinator) -> None: ...
21
+
22
+ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
23
+ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
24
+ async def async_remove_config_entry_device(hass: HomeAssistant, config_entry: ConfigEntry, device_entry: dr.DeviceEntry) -> bool: ...
25
+ async def _migrate_old_unique_ids(hass: HomeAssistant, entry_id: str) -> None: ...
@@ -0,0 +1,35 @@
1
+ from . import RingData as RingData
2
+ from .const import DOMAIN as DOMAIN
3
+ from .coordinator import RingNotificationsCoordinator as RingNotificationsCoordinator
4
+ from .entity import RingBaseEntity as RingBaseEntity
5
+ from _typeshed import Incomplete
6
+ from collections.abc import Callable as Callable, Mapping
7
+ from dataclasses import dataclass
8
+ from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription
9
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
10
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
11
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
12
+ from ring_doorbell import Ring as Ring, RingEvent as RingEvent, RingGeneric as RingGeneric
13
+ from typing import Any
14
+
15
+ @dataclass(frozen=True, kw_only=True)
16
+ class RingBinarySensorEntityDescription(BinarySensorEntityDescription):
17
+ exists_fn: Callable[[RingGeneric], bool]
18
+ def __init__(self, *, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, translation_placeholders, unit_of_measurement, exists_fn) -> None: ...
19
+
20
+ BINARY_SENSOR_TYPES: tuple[RingBinarySensorEntityDescription, ...]
21
+
22
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
23
+
24
+ class RingBinarySensor(RingBaseEntity[RingNotificationsCoordinator], BinarySensorEntity):
25
+ _active_alert: RingEvent | None
26
+ entity_description: RingBinarySensorEntityDescription
27
+ _ring: Incomplete
28
+ _attr_unique_id: Incomplete
29
+ def __init__(self, ring: Ring, device: RingGeneric, coordinator: RingNotificationsCoordinator, description: RingBinarySensorEntityDescription) -> None: ...
30
+ def _handle_coordinator_update(self, _: Any = None) -> None: ...
31
+ def _update_alert(self) -> None: ...
32
+ @property
33
+ def is_on(self) -> bool: ...
34
+ @property
35
+ def extra_state_attributes(self) -> Mapping[str, Any] | None: ...
@@ -0,0 +1,20 @@
1
+ from . import RingData as RingData
2
+ from .const import DOMAIN as DOMAIN
3
+ from .coordinator import RingDataCoordinator as RingDataCoordinator
4
+ from .entity import RingEntity as RingEntity, exception_wrap as exception_wrap
5
+ from _typeshed import Incomplete
6
+ from homeassistant.components.button import ButtonEntity as ButtonEntity, ButtonEntityDescription as ButtonEntityDescription
7
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
+ from homeassistant.core import HomeAssistant as HomeAssistant
9
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
+ from ring_doorbell import RingOther
11
+
12
+ BUTTON_DESCRIPTION: Incomplete
13
+
14
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
15
+
16
+ class RingDoorButton(RingEntity[RingOther], ButtonEntity):
17
+ entity_description: Incomplete
18
+ _attr_unique_id: Incomplete
19
+ def __init__(self, device: RingOther, coordinator: RingDataCoordinator, description: ButtonEntityDescription) -> None: ...
20
+ def press(self) -> None: ...
@@ -0,0 +1,43 @@
1
+ from . import RingData as RingData
2
+ from .const import DOMAIN as DOMAIN
3
+ from .coordinator import RingDataCoordinator as RingDataCoordinator
4
+ from .entity import RingEntity as RingEntity, exception_wrap as exception_wrap
5
+ from _typeshed import Incomplete
6
+ from aiohttp import web as web
7
+ from homeassistant.components import ffmpeg as ffmpeg
8
+ from homeassistant.components.camera import Camera as Camera
9
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
10
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
11
+ from homeassistant.helpers.aiohttp_client import async_aiohttp_proxy_stream as async_aiohttp_proxy_stream
12
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
13
+ from ring_doorbell import RingDoorBell
14
+ from typing import Any
15
+
16
+ FORCE_REFRESH_INTERVAL: Incomplete
17
+ MOTION_DETECTION_CAPABILITY: str
18
+ _LOGGER: Incomplete
19
+
20
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
21
+
22
+ class RingCam(RingEntity[RingDoorBell], Camera):
23
+ _attr_name: Incomplete
24
+ _ffmpeg_manager: Incomplete
25
+ _last_event: Incomplete
26
+ _last_video_id: Incomplete
27
+ _video_url: Incomplete
28
+ _image: Incomplete
29
+ _expires_at: Incomplete
30
+ _attr_unique_id: Incomplete
31
+ _attr_motion_detection_enabled: Incomplete
32
+ def __init__(self, device: RingDoorBell, coordinator: RingDataCoordinator, ffmpeg_manager: ffmpeg.FFmpegManager) -> None: ...
33
+ _device: Incomplete
34
+ def _handle_coordinator_update(self) -> None: ...
35
+ @property
36
+ def extra_state_attributes(self) -> dict[str, Any]: ...
37
+ async def async_camera_image(self, width: int | None = None, height: int | None = None) -> bytes | None: ...
38
+ async def handle_async_mjpeg_stream(self, request: web.Request) -> web.StreamResponse | None: ...
39
+ async def async_update(self) -> None: ...
40
+ def _get_video(self) -> str | None: ...
41
+ def _set_motion_detection_enabled(self, new_state: bool) -> None: ...
42
+ def enable_motion_detection(self) -> None: ...
43
+ def disable_motion_detection(self) -> None: ...
@@ -0,0 +1,26 @@
1
+ from .const import CONF_2FA as CONF_2FA, DOMAIN as DOMAIN
2
+ from _typeshed import Incomplete
3
+ from collections.abc import Mapping
4
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
5
+ from homeassistant.const import APPLICATION_NAME as APPLICATION_NAME, CONF_PASSWORD as CONF_PASSWORD, CONF_TOKEN as CONF_TOKEN, CONF_USERNAME as CONF_USERNAME
6
+ from homeassistant.core import HomeAssistant as HomeAssistant
7
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
8
+ from typing import Any
9
+
10
+ _LOGGER: Incomplete
11
+ STEP_USER_DATA_SCHEMA: Incomplete
12
+ STEP_REAUTH_DATA_SCHEMA: Incomplete
13
+
14
+ async def validate_input(hass: HomeAssistant, data: dict[str, str]) -> dict[str, Any]: ...
15
+
16
+ class RingConfigFlow(ConfigFlow, domain=DOMAIN):
17
+ VERSION: int
18
+ user_pass: dict[str, Any]
19
+ reauth_entry: ConfigEntry | None
20
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
21
+ async def async_step_2fa(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
22
+ async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
23
+ async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
24
+
25
+ class Require2FA(HomeAssistantError): ...
26
+ class InvalidAuth(HomeAssistantError): ...
@@ -0,0 +1,12 @@
1
+ from _typeshed import Incomplete
2
+ from homeassistant.const import Platform as Platform
3
+
4
+ ATTRIBUTION: str
5
+ NOTIFICATION_ID: str
6
+ NOTIFICATION_TITLE: str
7
+ DOMAIN: str
8
+ DEFAULT_ENTITY_NAMESPACE: str
9
+ PLATFORMS: Incomplete
10
+ SCAN_INTERVAL: Incomplete
11
+ NOTIFICATIONS_SCAN_INTERVAL: Incomplete
12
+ CONF_2FA: str
@@ -0,0 +1,25 @@
1
+ from .const import NOTIFICATIONS_SCAN_INTERVAL as NOTIFICATIONS_SCAN_INTERVAL, SCAN_INTERVAL as SCAN_INTERVAL
2
+ from _typeshed import Incomplete
3
+ from collections.abc import Callable as Callable
4
+ from homeassistant.core import HomeAssistant as HomeAssistant
5
+ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed
6
+ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
7
+ from ring_doorbell import Ring as Ring, RingDevices
8
+ from typing import TypeVar, TypeVarTuple
9
+
10
+ _LOGGER: Incomplete
11
+ _R = TypeVar('_R')
12
+ _Ts = TypeVarTuple('_Ts')
13
+
14
+ async def _call_api(hass: HomeAssistant, target: Callable[[Unpack[_Ts]], _R], *args: Unpack[_Ts], msg_suffix: str = '') -> _R: ...
15
+
16
+ class RingDataCoordinator(DataUpdateCoordinator[RingDevices]):
17
+ ring_api: Incomplete
18
+ first_call: bool
19
+ def __init__(self, hass: HomeAssistant, ring_api: Ring) -> None: ...
20
+ async def _async_update_data(self) -> RingDevices: ...
21
+
22
+ class RingNotificationsCoordinator(DataUpdateCoordinator[None]):
23
+ ring_api: Incomplete
24
+ def __init__(self, hass: HomeAssistant, ring_api: Ring) -> None: ...
25
+ async def _async_update_data(self) -> None: ...
@@ -0,0 +1,11 @@
1
+ from . import RingData as RingData
2
+ from .const import DOMAIN as DOMAIN
3
+ from _typeshed import Incomplete
4
+ from homeassistant.components.diagnostics import async_redact_data as async_redact_data
5
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
+ from homeassistant.core import HomeAssistant as HomeAssistant
7
+ from typing import Any
8
+
9
+ TO_REDACT: Incomplete
10
+
11
+ async def async_get_config_entry_diagnostics(hass: HomeAssistant, entry: ConfigEntry) -> dict[str, Any]: ...
@@ -0,0 +1,33 @@
1
+ from .const import ATTRIBUTION as ATTRIBUTION, DOMAIN as DOMAIN
2
+ from .coordinator import RingDataCoordinator as RingDataCoordinator, RingNotificationsCoordinator as RingNotificationsCoordinator
3
+ from _typeshed import Incomplete
4
+ from collections.abc import Callable as Callable
5
+ from homeassistant.core import callback as callback
6
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
7
+ from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
8
+ from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
9
+ from ring_doorbell import RingDevices as RingDevices, RingGeneric
10
+ from typing import Concatenate, Generic, ParamSpec
11
+ from typing_extensions import TypeVar
12
+
13
+ RingDeviceT = TypeVar('RingDeviceT', bound=RingGeneric, default=RingGeneric)
14
+ _RingCoordinatorT = TypeVar('_RingCoordinatorT', bound=RingDataCoordinator | RingNotificationsCoordinator)
15
+ _RingBaseEntityT = TypeVar('_RingBaseEntityT', bound='RingBaseEntity[Any, Any]')
16
+ _R = TypeVar('_R')
17
+ _P = ParamSpec('_P')
18
+
19
+ def exception_wrap(func: Callable[Concatenate[_RingBaseEntityT, _P], _R]) -> Callable[Concatenate[_RingBaseEntityT, _P], _R]: ...
20
+
21
+ class RingBaseEntity(CoordinatorEntity[_RingCoordinatorT], Generic[_RingCoordinatorT, RingDeviceT]):
22
+ _attr_attribution = ATTRIBUTION
23
+ _attr_should_poll: bool
24
+ _attr_has_entity_name: bool
25
+ _device: Incomplete
26
+ _attr_extra_state_attributes: Incomplete
27
+ _attr_device_info: Incomplete
28
+ def __init__(self, device: RingDeviceT, coordinator: _RingCoordinatorT) -> None: ...
29
+
30
+ class RingEntity(RingBaseEntity[RingDataCoordinator, RingDeviceT]):
31
+ def _get_coordinator_data(self) -> RingDevices: ...
32
+ _device: Incomplete
33
+ def _handle_coordinator_update(self) -> None: ...
@@ -0,0 +1,34 @@
1
+ from . import RingData as RingData
2
+ from .const import DOMAIN as DOMAIN
3
+ from .coordinator import RingDataCoordinator as RingDataCoordinator
4
+ from .entity import RingEntity as RingEntity, exception_wrap as exception_wrap
5
+ from _typeshed import Incomplete
6
+ from enum import StrEnum
7
+ from homeassistant.components.light import ColorMode as ColorMode, LightEntity as LightEntity
8
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
9
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
10
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
+ from ring_doorbell import RingStickUpCam
12
+ from typing import Any
13
+
14
+ _LOGGER: Incomplete
15
+ SKIP_UPDATES_DELAY: Incomplete
16
+
17
+ class OnOffState(StrEnum):
18
+ ON: Incomplete
19
+ OFF: Incomplete
20
+
21
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
22
+
23
+ class RingLight(RingEntity[RingStickUpCam], LightEntity):
24
+ _attr_color_mode: Incomplete
25
+ _attr_supported_color_modes: Incomplete
26
+ _attr_translation_key: str
27
+ _attr_unique_id: Incomplete
28
+ _attr_is_on: Incomplete
29
+ _no_updates_until: Incomplete
30
+ def __init__(self, device: RingStickUpCam, coordinator: RingDataCoordinator) -> None: ...
31
+ def _handle_coordinator_update(self) -> None: ...
32
+ def _set_light(self, new_state: OnOffState) -> None: ...
33
+ def turn_on(self, **kwargs: Any) -> None: ...
34
+ def turn_off(self, **kwargs: Any) -> None: ...
@@ -0,0 +1,39 @@
1
+ from . import RingData as RingData
2
+ from .const import DOMAIN as DOMAIN
3
+ from .coordinator import RingDataCoordinator as RingDataCoordinator
4
+ from .entity import RingDeviceT as RingDeviceT, RingEntity as RingEntity
5
+ from _typeshed import Incomplete
6
+ from collections.abc import Callable as Callable
7
+ from dataclasses import dataclass
8
+ from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
9
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
10
+ from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, SIGNAL_STRENGTH_DECIBELS_MILLIWATT as SIGNAL_STRENGTH_DECIBELS_MILLIWATT
11
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
12
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
13
+ from homeassistant.helpers.typing import StateType as StateType
14
+ from ring_doorbell import RingEventKind, RingGeneric
15
+ from typing import Any, Generic
16
+
17
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
18
+
19
+ class RingSensor(RingEntity[RingDeviceT], SensorEntity):
20
+ entity_description: RingSensorEntityDescription[RingDeviceT]
21
+ _attr_unique_id: Incomplete
22
+ _attr_entity_registry_enabled_default: Incomplete
23
+ _attr_native_value: Incomplete
24
+ def __init__(self, device: RingDeviceT, coordinator: RingDataCoordinator, description: RingSensorEntityDescription[RingDeviceT]) -> None: ...
25
+ _device: Incomplete
26
+ _attr_extra_state_attributes: Incomplete
27
+ def _handle_coordinator_update(self) -> None: ...
28
+
29
+ def _get_last_event(history_data: list[dict[str, Any]], kind: RingEventKind | None) -> dict[str, Any] | None: ...
30
+ def _get_last_event_attrs(history_data: list[dict[str, Any]], kind: RingEventKind | None) -> dict[str, Any] | None: ...
31
+
32
+ @dataclass(frozen=True, kw_only=True)
33
+ class RingSensorEntityDescription(SensorEntityDescription, Generic[RingDeviceT]):
34
+ value_fn: Callable[[RingDeviceT], StateType] = ...
35
+ exists_fn: Callable[[RingGeneric], bool] = ...
36
+ extra_state_attributes_fn: Callable[[RingDeviceT], dict[str, Any] | None] = ...
37
+ def __init__(self, *, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, translation_placeholders, unit_of_measurement, last_reset, native_unit_of_measurement, options, state_class, suggested_display_precision, suggested_unit_of_measurement, value_fn, exists_fn, extra_state_attributes_fn) -> None: ...
38
+
39
+ SENSOR_TYPES: tuple[RingSensorEntityDescription[Any], ...]
@@ -0,0 +1,23 @@
1
+ from . import RingData as RingData
2
+ from .const import DOMAIN as DOMAIN
3
+ from .coordinator import RingDataCoordinator as RingDataCoordinator
4
+ from .entity import RingEntity as RingEntity, exception_wrap as exception_wrap
5
+ from _typeshed import Incomplete
6
+ from homeassistant.components.siren import ATTR_TONE as ATTR_TONE, SirenEntity as SirenEntity, SirenEntityFeature as SirenEntityFeature
7
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
+ from homeassistant.core import HomeAssistant as HomeAssistant
9
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
+ from ring_doorbell import RingChime
11
+ from typing import Any
12
+
13
+ _LOGGER: Incomplete
14
+
15
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
16
+
17
+ class RingChimeSiren(RingEntity[RingChime], SirenEntity):
18
+ _attr_available_tones: Incomplete
19
+ _attr_supported_features: Incomplete
20
+ _attr_translation_key: str
21
+ _attr_unique_id: Incomplete
22
+ def __init__(self, device: RingChime, coordinator: RingDataCoordinator) -> None: ...
23
+ def turn_on(self, **kwargs: Any) -> None: ...
@@ -0,0 +1,31 @@
1
+ from . import RingData as RingData
2
+ from .const import DOMAIN as DOMAIN
3
+ from .coordinator import RingDataCoordinator as RingDataCoordinator
4
+ from .entity import RingEntity as RingEntity, exception_wrap as exception_wrap
5
+ from _typeshed import Incomplete
6
+ from homeassistant.components.switch import SwitchEntity as SwitchEntity
7
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
+ from ring_doorbell import RingStickUpCam
11
+ from typing import Any
12
+
13
+ _LOGGER: Incomplete
14
+ SKIP_UPDATES_DELAY: Incomplete
15
+
16
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
17
+
18
+ class BaseRingSwitch(RingEntity[RingStickUpCam], SwitchEntity):
19
+ _device_type: Incomplete
20
+ _attr_unique_id: Incomplete
21
+ def __init__(self, device: RingStickUpCam, coordinator: RingDataCoordinator, device_type: str) -> None: ...
22
+
23
+ class SirenSwitch(BaseRingSwitch):
24
+ _attr_translation_key: str
25
+ _no_updates_until: Incomplete
26
+ _attr_is_on: Incomplete
27
+ def __init__(self, device: RingStickUpCam, coordinator: RingDataCoordinator) -> None: ...
28
+ def _handle_coordinator_update(self) -> None: ...
29
+ def _set_switch(self, new_state: int) -> None: ...
30
+ def turn_on(self, **kwargs: Any) -> None: ...
31
+ def turn_off(self, **kwargs: Any) -> None: ...
@@ -0,0 +1,19 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .coordinator import RomyVacuumCoordinator as RomyVacuumCoordinator
3
+ from .entity import RomyEntity as RomyEntity
4
+ from _typeshed import Incomplete
5
+ from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription
6
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
+ from homeassistant.core import HomeAssistant as HomeAssistant
8
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
9
+
10
+ BINARY_SENSORS: list[BinarySensorEntityDescription]
11
+
12
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
13
+
14
+ class RomyBinarySensor(RomyEntity, BinarySensorEntity):
15
+ entity_description: BinarySensorEntityDescription
16
+ _attr_unique_id: Incomplete
17
+ def __init__(self, coordinator: RomyVacuumCoordinator, entity_description: BinarySensorEntityDescription) -> None: ...
18
+ @property
19
+ def is_on(self) -> bool: ...
@@ -1,16 +1,16 @@
1
1
  from .const import DOMAIN as DOMAIN, LOGGER as LOGGER
2
- from homeassistant import config_entries as config_entries
3
2
  from homeassistant.components import zeroconf as zeroconf
3
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
4
4
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PASSWORD
5
5
 
6
- class RomyConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
6
+ class RomyConfigFlow(ConfigFlow, domain=DOMAIN):
7
7
  VERSION: int
8
8
  host: str
9
9
  password: str
10
10
  robot_name_given_by_user: str
11
11
  def __init__(self) -> None: ...
12
- async def async_step_user(self, user_input: dict[str, str] | None = None) -> config_entries.ConfigFlowResult: ...
13
- async def async_step_password(self, user_input: dict[str, str] | None = None) -> config_entries.ConfigFlowResult: ...
14
- async def async_step_zeroconf(self, discovery_info: zeroconf.ZeroconfServiceInfo) -> config_entries.ConfigFlowResult: ...
15
- async def async_step_zeroconf_confirm(self, user_input: dict[str, str] | None = None) -> config_entries.ConfigFlowResult: ...
16
- async def _async_step_finish_config(self) -> config_entries.ConfigFlowResult: ...
12
+ async def async_step_user(self, user_input: dict[str, str] | None = None) -> ConfigFlowResult: ...
13
+ async def async_step_password(self, user_input: dict[str, str] | None = None) -> ConfigFlowResult: ...
14
+ async def async_step_zeroconf(self, discovery_info: zeroconf.ZeroconfServiceInfo) -> ConfigFlowResult: ...
15
+ async def async_step_zeroconf_confirm(self, user_input: dict[str, str] | None = None) -> ConfigFlowResult: ...
16
+ async def _async_step_finish_config(self) -> ConfigFlowResult: ...
@@ -0,0 +1,20 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .coordinator import RomyVacuumCoordinator as RomyVacuumCoordinator
3
+ from .entity import RomyEntity as RomyEntity
4
+ from _typeshed import Incomplete
5
+ from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
6
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
+ from homeassistant.const import AREA_SQUARE_METERS as AREA_SQUARE_METERS, EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, SIGNAL_STRENGTH_DECIBELS_MILLIWATT as SIGNAL_STRENGTH_DECIBELS_MILLIWATT, UnitOfLength as UnitOfLength, UnitOfTime as UnitOfTime
8
+ from homeassistant.core import HomeAssistant as HomeAssistant
9
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
+
11
+ SENSORS: list[SensorEntityDescription]
12
+
13
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
14
+
15
+ class RomySensor(RomyEntity, SensorEntity):
16
+ entity_description: SensorEntityDescription
17
+ _attr_unique_id: Incomplete
18
+ def __init__(self, coordinator: RomyVacuumCoordinator, entity_description: SensorEntityDescription) -> None: ...
19
+ @property
20
+ def native_value(self) -> int: ...
@@ -80,7 +80,7 @@ class SensorEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_):
80
80
  def unit_of_measurement(self) -> str | None: ...
81
81
  @property
82
82
  def state(self) -> Any: ...
83
- def _suggested_precision_or_none(self) -> int | None: ...
83
+ def _display_precision_or_none(self) -> int | None: ...
84
84
  def _update_suggested_precision(self) -> None: ...
85
85
  def _custom_unit_or_undef(self, primary_key: str, secondary_key: str) -> str | None | UndefinedType: ...
86
86
  def async_registry_entry_updated(self) -> None: ...
@@ -4,5 +4,5 @@ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callb
4
4
  from homeassistant.helpers.significant_change import check_absolute_change as check_absolute_change, check_percentage_change as check_percentage_change, check_valid_float as check_valid_float
5
5
  from typing import Any
6
6
 
7
- def _absolute_and_relative_change(old_state: int | float | None, new_state: int | float | None, absolute_change: int | float, percentage_change: int | float) -> bool: ...
7
+ def _absolute_and_relative_change(old_state: float | None, new_state: float | None, absolute_change: float, percentage_change: float) -> bool: ...
8
8
  def async_check_significant_change(hass: HomeAssistant, old_state: str, old_attrs: dict, new_state: str, new_attrs: dict, **kwargs: Any) -> bool | None: ...
@@ -1,12 +1,10 @@
1
1
  from .const import BLOCK_EXPECTED_SLEEP_PERIOD as BLOCK_EXPECTED_SLEEP_PERIOD, BLOCK_WRONG_SLEEP_PERIOD as BLOCK_WRONG_SLEEP_PERIOD, CONF_COAP_PORT as CONF_COAP_PORT, CONF_SLEEP_PERIOD as CONF_SLEEP_PERIOD, DATA_CONFIG_ENTRY as DATA_CONFIG_ENTRY, DOMAIN as DOMAIN, FIRMWARE_UNSUPPORTED_ISSUE_ID as FIRMWARE_UNSUPPORTED_ISSUE_ID, LOGGER as LOGGER, MODELS_WITH_WRONG_SLEEP_PERIOD as MODELS_WITH_WRONG_SLEEP_PERIOD, PUSH_UPDATE_ISSUE_ID as PUSH_UPDATE_ISSUE_ID
2
2
  from .coordinator import ShellyBlockCoordinator as ShellyBlockCoordinator, ShellyEntryData as ShellyEntryData, ShellyRestCoordinator as ShellyRestCoordinator, ShellyRpcCoordinator as ShellyRpcCoordinator, ShellyRpcPollingCoordinator as ShellyRpcPollingCoordinator, get_entry_data as get_entry_data
3
- from .utils import async_create_issue_unsupported_firmware as async_create_issue_unsupported_firmware, async_shutdown_device as async_shutdown_device, get_block_device_sleep_period as get_block_device_sleep_period, get_coap_context as get_coap_context, get_device_entry_gen as get_device_entry_gen, get_http_port as get_http_port, get_rpc_device_wakeup_period as get_rpc_device_wakeup_period, get_ws_context as get_ws_context
3
+ from .utils import async_create_issue_unsupported_firmware as async_create_issue_unsupported_firmware, get_coap_context as get_coap_context, get_device_entry_gen as get_device_entry_gen, get_http_port as get_http_port, get_ws_context as get_ws_context
4
4
  from _typeshed import Incomplete
5
- from aioshelly.block_device import BlockUpdateType as BlockUpdateType
6
- from aioshelly.rpc_device import RpcUpdateType as RpcUpdateType
7
5
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
6
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME, Platform as Platform
9
- from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
7
+ from homeassistant.core import HomeAssistant as HomeAssistant
10
8
  from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
11
9
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
12
10
  from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC, format_mac as format_mac