homeassistant-stubs 2024.7.3__py3-none-any.whl → 2024.8.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 (946) hide show
  1. homeassistant-stubs/auth/__init__.pyi +1 -1
  2. homeassistant-stubs/auth/permissions/events.pyi +3 -0
  3. homeassistant-stubs/auth/permissions/types.pyi +3 -4
  4. homeassistant-stubs/auth/permissions/util.pyi +1 -2
  5. homeassistant-stubs/auth/providers/trusted_networks.pyi +3 -2
  6. homeassistant-stubs/bootstrap.pyi +2 -2
  7. homeassistant-stubs/components/abode/__init__.pyi +1 -1
  8. homeassistant-stubs/components/abode/sensor.pyi +1 -1
  9. homeassistant-stubs/components/accuweather/sensor.pyi +1 -1
  10. homeassistant-stubs/components/adguard/sensor.pyi +1 -1
  11. homeassistant-stubs/components/adguard/switch.pyi +1 -1
  12. homeassistant-stubs/components/airgradient/__init__.pyi +2 -2
  13. homeassistant-stubs/components/airgradient/button.pyi +1 -1
  14. homeassistant-stubs/components/airgradient/coordinator.pyi +0 -4
  15. homeassistant-stubs/components/airgradient/number.pyi +1 -1
  16. homeassistant-stubs/components/airgradient/select.pyi +1 -1
  17. homeassistant-stubs/components/airgradient/sensor.pyi +2 -2
  18. homeassistant-stubs/components/airgradient/switch.pyi +1 -1
  19. homeassistant-stubs/components/airly/sensor.pyi +1 -1
  20. homeassistant-stubs/components/airnow/sensor.pyi +1 -1
  21. homeassistant-stubs/components/airq/sensor.pyi +1 -1
  22. homeassistant-stubs/components/airtouch5/climate.pyi +1 -0
  23. homeassistant-stubs/components/airtouch5/cover.pyi +34 -0
  24. homeassistant-stubs/components/airtouch5/entity.pyi +0 -2
  25. homeassistant-stubs/components/airvisual_pro/config_flow.pyi +1 -1
  26. homeassistant-stubs/components/airvisual_pro/sensor.pyi +1 -1
  27. homeassistant-stubs/components/airzone/binary_sensor.pyi +1 -1
  28. homeassistant-stubs/components/airzone/select.pyi +1 -1
  29. homeassistant-stubs/components/airzone_cloud/binary_sensor.pyi +1 -1
  30. homeassistant-stubs/components/airzone_cloud/select.pyi +1 -1
  31. homeassistant-stubs/components/airzone_cloud/sensor.pyi +1 -1
  32. homeassistant-stubs/components/alarm_control_panel/__init__.pyi +1 -1
  33. homeassistant-stubs/components/alarm_control_panel/const.pyi +8 -8
  34. homeassistant-stubs/components/alexa/capabilities.pyi +2 -2
  35. homeassistant-stubs/components/alexa/entities.pyi +7 -3
  36. homeassistant-stubs/components/alexa/handlers.pyi +1 -1
  37. homeassistant-stubs/components/alexa/intent.pyi +4 -4
  38. homeassistant-stubs/components/amberelectric/binary_sensor.pyi +4 -0
  39. homeassistant-stubs/components/ambient_station/binary_sensor.pyi +1 -1
  40. homeassistant-stubs/components/amcrest/__init__.pyi +1 -1
  41. homeassistant-stubs/components/amcrest/binary_sensor.pyi +1 -1
  42. homeassistant-stubs/components/analytics_insights/sensor.pyi +1 -1
  43. homeassistant-stubs/components/android_ip_webcam/sensor.pyi +1 -1
  44. homeassistant-stubs/components/android_ip_webcam/switch.pyi +1 -1
  45. homeassistant-stubs/components/anova/sensor.pyi +1 -1
  46. homeassistant-stubs/components/apache_kafka/__init__.pyi +1 -1
  47. homeassistant-stubs/components/apcupsd/const.pyi +1 -0
  48. homeassistant-stubs/components/apcupsd/sensor.pyi +3 -2
  49. homeassistant-stubs/components/api/__init__.pyi +1 -1
  50. homeassistant-stubs/components/apsystems/__init__.pyi +2 -1
  51. homeassistant-stubs/components/apsystems/config_flow.pyi +2 -2
  52. homeassistant-stubs/components/apsystems/const.pyi +1 -0
  53. homeassistant-stubs/components/apsystems/sensor.pyi +1 -1
  54. homeassistant-stubs/components/apsystems/switch.pyi +21 -0
  55. homeassistant-stubs/components/aqualogic/sensor.pyi +1 -1
  56. homeassistant-stubs/components/aranet/sensor.pyi +1 -1
  57. homeassistant-stubs/components/arcam_fmj/__init__.pyi +3 -4
  58. homeassistant-stubs/components/arcam_fmj/config_flow.pyi +2 -6
  59. homeassistant-stubs/components/arcam_fmj/const.pyi +0 -3
  60. homeassistant-stubs/components/arcam_fmj/media_player.pyi +2 -3
  61. homeassistant-stubs/components/aseko_pool_live/binary_sensor.pyi +1 -1
  62. homeassistant-stubs/components/aseko_pool_live/entity.pyi +1 -1
  63. homeassistant-stubs/components/assist_pipeline/__init__.pyi +2 -2
  64. homeassistant-stubs/components/assist_pipeline/audio_enhancer.pyi +28 -0
  65. homeassistant-stubs/components/assist_pipeline/const.pyi +6 -0
  66. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +41 -50
  67. homeassistant-stubs/components/assist_pipeline/vad.pyi +8 -23
  68. homeassistant-stubs/components/assist_pipeline/websocket_api.pyi +2 -2
  69. homeassistant-stubs/components/asuswrt/bridge.pyi +2 -2
  70. homeassistant-stubs/components/asuswrt/sensor.pyi +1 -1
  71. homeassistant-stubs/components/autarco/__init__.pyi +11 -0
  72. homeassistant-stubs/components/autarco/config_flow.pyi +11 -0
  73. homeassistant-stubs/components/autarco/const.pyi +6 -0
  74. homeassistant-stubs/components/autarco/coordinator.pyi +18 -0
  75. homeassistant-stubs/components/autarco/diagnostics.pyi +5 -0
  76. homeassistant-stubs/components/autarco/sensor.pyi +49 -0
  77. homeassistant-stubs/components/auth/__init__.pyi +1 -1
  78. homeassistant-stubs/components/automation/config.pyi +6 -6
  79. homeassistant-stubs/components/automation/trace.pyi +1 -1
  80. homeassistant-stubs/components/awair/sensor.pyi +1 -1
  81. homeassistant-stubs/components/axis/binary_sensor.pyi +1 -1
  82. homeassistant-stubs/components/axis/entity.pyi +1 -1
  83. homeassistant-stubs/components/axis/light.pyi +1 -1
  84. homeassistant-stubs/components/axis/switch.pyi +1 -1
  85. homeassistant-stubs/components/baf/binary_sensor.pyi +1 -1
  86. homeassistant-stubs/components/baf/fan.pyi +1 -0
  87. homeassistant-stubs/components/baf/number.pyi +1 -1
  88. homeassistant-stubs/components/baf/sensor.pyi +1 -1
  89. homeassistant-stubs/components/baf/switch.pyi +1 -1
  90. homeassistant-stubs/components/bang_olufsen/const.pyi +26 -35
  91. homeassistant-stubs/components/bayesian/helpers.pyi +1 -1
  92. homeassistant-stubs/components/binary_sensor/__init__.pyi +29 -29
  93. homeassistant-stubs/components/blueprint/importer.pyi +4 -0
  94. homeassistant-stubs/components/bluetooth/passive_update_coordinator.pyi +2 -2
  95. homeassistant-stubs/components/bluetooth/passive_update_processor.pyi +1 -1
  96. homeassistant-stubs/components/bmw_connected_drive/__init__.pyi +9 -17
  97. homeassistant-stubs/components/bmw_connected_drive/binary_sensor.pyi +5 -5
  98. homeassistant-stubs/components/bmw_connected_drive/button.pyi +4 -5
  99. homeassistant-stubs/components/bmw_connected_drive/config_flow.pyi +1 -0
  100. homeassistant-stubs/components/bmw_connected_drive/const.pyi +0 -1
  101. homeassistant-stubs/components/bmw_connected_drive/device_tracker.pyi +4 -4
  102. homeassistant-stubs/components/bmw_connected_drive/diagnostics.pyi +4 -5
  103. homeassistant-stubs/components/bmw_connected_drive/entity.pyi +13 -0
  104. homeassistant-stubs/components/bmw_connected_drive/lock.pyi +3 -4
  105. homeassistant-stubs/components/bmw_connected_drive/notify.pyi +4 -8
  106. homeassistant-stubs/components/bmw_connected_drive/number.pyi +4 -5
  107. homeassistant-stubs/components/bmw_connected_drive/select.pyi +4 -5
  108. homeassistant-stubs/components/bmw_connected_drive/sensor.pyi +6 -6
  109. homeassistant-stubs/components/bmw_connected_drive/switch.pyi +4 -5
  110. homeassistant-stubs/components/bond/button.pyi +5 -4
  111. homeassistant-stubs/components/bond/cover.pyi +3 -3
  112. homeassistant-stubs/components/bond/entity.pyi +4 -3
  113. homeassistant-stubs/components/bond/fan.pyi +3 -3
  114. homeassistant-stubs/components/bond/light.pyi +3 -3
  115. homeassistant-stubs/components/braviatv/button.pyi +1 -1
  116. homeassistant-stubs/components/braviatv/const.pyi +3 -3
  117. homeassistant-stubs/components/brother/sensor.pyi +1 -1
  118. homeassistant-stubs/components/bryant_evolution/__init__.pyi +17 -0
  119. homeassistant-stubs/components/bryant_evolution/climate.pyi +43 -0
  120. homeassistant-stubs/components/bryant_evolution/config_flow.pyi +15 -0
  121. homeassistant-stubs/components/bryant_evolution/const.pyi +2 -0
  122. homeassistant-stubs/components/bryant_evolution/names.pyi +5 -0
  123. homeassistant-stubs/components/bthome/__init__.pyi +5 -5
  124. homeassistant-stubs/components/bthome/binary_sensor.pyi +3 -4
  125. homeassistant-stubs/components/bthome/coordinator.pyi +2 -2
  126. homeassistant-stubs/components/bthome/event.pyi +2 -3
  127. homeassistant-stubs/components/bthome/sensor.pyi +3 -4
  128. homeassistant-stubs/components/bthome/types.pyi +4 -0
  129. homeassistant-stubs/components/button/__init__.pyi +4 -4
  130. homeassistant-stubs/components/calendar/__init__.pyi +1 -1
  131. homeassistant-stubs/components/calendar/const.pyi +3 -3
  132. homeassistant-stubs/components/camera/__init__.pyi +4 -5
  133. homeassistant-stubs/components/camera/const.pyi +2 -2
  134. homeassistant-stubs/components/camera/prefs.pyi +1 -1
  135. homeassistant-stubs/components/canary/sensor.pyi +1 -1
  136. homeassistant-stubs/components/climate/__init__.pyi +2 -1
  137. homeassistant-stubs/components/climate/const.pyi +24 -23
  138. homeassistant-stubs/components/climate/reproduce_state.pyi +1 -1
  139. homeassistant-stubs/components/cloud/__init__.pyi +2 -2
  140. homeassistant-stubs/components/co2signal/sensor.pyi +1 -1
  141. homeassistant-stubs/components/command_line/__init__.pyi +1 -2
  142. homeassistant-stubs/components/command_line/const.pyi +2 -0
  143. homeassistant-stubs/components/command_line/sensor.pyi +3 -3
  144. homeassistant-stubs/components/config/config_entries.pyi +2 -2
  145. homeassistant-stubs/components/cover/__init__.pyi +19 -19
  146. homeassistant-stubs/components/cover/intent.pyi +1 -1
  147. homeassistant-stubs/components/date/__init__.pyi +1 -1
  148. homeassistant-stubs/components/datetime/__init__.pyi +1 -1
  149. homeassistant-stubs/components/deconz/binary_sensor.pyi +1 -1
  150. homeassistant-stubs/components/deconz/button.pyi +1 -1
  151. homeassistant-stubs/components/deconz/deconz_device.pyi +4 -1
  152. homeassistant-stubs/components/deconz/fan.pyi +1 -0
  153. homeassistant-stubs/components/deconz/number.pyi +1 -1
  154. homeassistant-stubs/components/deconz/sensor.pyi +1 -1
  155. homeassistant-stubs/components/demo/fan.pyi +1 -0
  156. homeassistant-stubs/components/demo/mailbox.pyi +1 -0
  157. homeassistant-stubs/components/device_automation/__init__.pyi +5 -4
  158. homeassistant-stubs/components/device_tracker/config_entry.pyi +10 -9
  159. homeassistant-stubs/components/device_tracker/const.pyi +4 -4
  160. homeassistant-stubs/components/devolo_home_network/binary_sensor.pyi +3 -1
  161. homeassistant-stubs/components/devolo_home_network/button.pyi +3 -1
  162. homeassistant-stubs/components/devolo_home_network/device_tracker.pyi +2 -0
  163. homeassistant-stubs/components/devolo_home_network/entity.pyi +3 -1
  164. homeassistant-stubs/components/devolo_home_network/image.pyi +3 -1
  165. homeassistant-stubs/components/devolo_home_network/sensor.pyi +4 -3
  166. homeassistant-stubs/components/devolo_home_network/switch.pyi +2 -1
  167. homeassistant-stubs/components/devolo_home_network/update.pyi +3 -1
  168. homeassistant-stubs/components/diagnostics/__init__.pyi +1 -1
  169. homeassistant-stubs/components/diagnostics/const.pyi +2 -2
  170. homeassistant-stubs/components/discovergy/sensor.pyi +1 -1
  171. homeassistant-stubs/components/dlna_dmr/config_flow.pyi +1 -1
  172. homeassistant-stubs/components/doorbird/__init__.pyi +9 -14
  173. homeassistant-stubs/components/doorbird/button.pyi +11 -12
  174. homeassistant-stubs/components/doorbird/camera.pyi +3 -6
  175. homeassistant-stubs/components/doorbird/config_flow.pyi +10 -3
  176. homeassistant-stubs/components/doorbird/const.pyi +6 -3
  177. homeassistant-stubs/components/doorbird/device.pyi +33 -14
  178. homeassistant-stubs/components/doorbird/event.pyi +23 -0
  179. homeassistant-stubs/components/doorbird/logbook.pyi +1 -1
  180. homeassistant-stubs/components/doorbird/models.pyi +3 -0
  181. homeassistant-stubs/components/doorbird/repairs.pyi +12 -0
  182. homeassistant-stubs/components/doorbird/util.pyi +3 -2
  183. homeassistant-stubs/components/doorbird/view.pyi +1 -1
  184. homeassistant-stubs/components/dormakaba_dkey/binary_sensor.pyi +1 -1
  185. homeassistant-stubs/components/dsmr/__init__.pyi +14 -4
  186. homeassistant-stubs/components/dsmr/const.pyi +0 -1
  187. homeassistant-stubs/components/dsmr/diagnostics.pyi +6 -0
  188. homeassistant-stubs/components/dsmr/sensor.pyi +19 -10
  189. homeassistant-stubs/components/easyenergy/sensor.pyi +1 -1
  190. homeassistant-stubs/components/easyenergy/services.pyi +3 -3
  191. homeassistant-stubs/components/ecovacs/__init__.pyi +1 -0
  192. homeassistant-stubs/components/ecovacs/binary_sensor.pyi +1 -1
  193. homeassistant-stubs/components/ecovacs/button.pyi +2 -2
  194. homeassistant-stubs/components/ecovacs/const.pyi +3 -2
  195. homeassistant-stubs/components/ecovacs/controller.pyi +3 -0
  196. homeassistant-stubs/components/ecovacs/entity.pyi +15 -1
  197. homeassistant-stubs/components/ecovacs/number.pyi +3 -3
  198. homeassistant-stubs/components/ecovacs/select.pyi +1 -1
  199. homeassistant-stubs/components/ecovacs/sensor.pyi +19 -4
  200. homeassistant-stubs/components/ecovacs/switch.pyi +1 -1
  201. homeassistant-stubs/components/ecovacs/vacuum.pyi +3 -9
  202. homeassistant-stubs/components/ecowitt/__init__.pyi +4 -2
  203. homeassistant-stubs/components/ecowitt/binary_sensor.pyi +3 -4
  204. homeassistant-stubs/components/ecowitt/diagnostics.pyi +2 -3
  205. homeassistant-stubs/components/ecowitt/sensor.pyi +3 -4
  206. homeassistant-stubs/components/electric_kiwi/sensor.pyi +2 -2
  207. homeassistant-stubs/components/elevenlabs/__init__.pyi +23 -0
  208. homeassistant-stubs/components/elevenlabs/config_flow.pyi +26 -0
  209. homeassistant-stubs/components/elevenlabs/const.pyi +4 -0
  210. homeassistant-stubs/components/elevenlabs/tts.pyi +30 -0
  211. homeassistant-stubs/components/elgato/button.pyi +1 -1
  212. homeassistant-stubs/components/elgato/sensor.pyi +1 -1
  213. homeassistant-stubs/components/elgato/switch.pyi +1 -1
  214. homeassistant-stubs/components/elkm1/config_flow.pyi +2 -2
  215. homeassistant-stubs/components/energy/data.pyi +1 -2
  216. homeassistant-stubs/components/energy/types.pyi +2 -3
  217. homeassistant-stubs/components/energy/validate.pyi +2 -2
  218. homeassistant-stubs/components/energyzero/sensor.pyi +1 -1
  219. homeassistant-stubs/components/energyzero/services.pyi +2 -2
  220. homeassistant-stubs/components/enigma2/__init__.pyi +3 -5
  221. homeassistant-stubs/components/enigma2/coordinator.pyi +19 -0
  222. homeassistant-stubs/components/enigma2/media_player.pyi +6 -8
  223. homeassistant-stubs/components/enphase_envoy/__init__.pyi +4 -5
  224. homeassistant-stubs/components/enphase_envoy/binary_sensor.pyi +4 -5
  225. homeassistant-stubs/components/enphase_envoy/coordinator.pyi +2 -1
  226. homeassistant-stubs/components/enphase_envoy/diagnostics.pyi +3 -4
  227. homeassistant-stubs/components/enphase_envoy/number.pyi +4 -5
  228. homeassistant-stubs/components/enphase_envoy/select.pyi +4 -5
  229. homeassistant-stubs/components/enphase_envoy/sensor.pyi +10 -11
  230. homeassistant-stubs/components/enphase_envoy/switch.pyi +5 -8
  231. homeassistant-stubs/components/eq3btsmart/const.pyi +10 -10
  232. homeassistant-stubs/components/eq3btsmart/models.pyi +1 -1
  233. homeassistant-stubs/components/esphome/domain_data.pyi +1 -1
  234. homeassistant-stubs/components/esphome/entity.pyi +2 -3
  235. homeassistant-stubs/components/esphome/entry_data.pyi +1 -1
  236. homeassistant-stubs/components/esphome/fan.pyi +1 -0
  237. homeassistant-stubs/components/esphome/update.pyi +1 -0
  238. homeassistant-stubs/components/esphome/voice_assistant.pyi +1 -0
  239. homeassistant-stubs/components/event/__init__.pyi +4 -4
  240. homeassistant-stubs/components/evohome/__init__.pyi +18 -34
  241. homeassistant-stubs/components/evohome/climate.pyi +3 -2
  242. homeassistant-stubs/components/evohome/coordinator.pyi +11 -16
  243. homeassistant-stubs/components/evohome/entity.pyi +37 -0
  244. homeassistant-stubs/components/evohome/water_heater.pyi +2 -1
  245. homeassistant-stubs/components/faa_delays/binary_sensor.pyi +1 -1
  246. homeassistant-stubs/components/fan/__init__.pyi +13 -7
  247. homeassistant-stubs/components/feedreader/__init__.pyi +1 -1
  248. homeassistant-stubs/components/feedreader/const.pyi +7 -5
  249. homeassistant-stubs/components/feedreader/coordinator.pyi +11 -7
  250. homeassistant-stubs/components/feedreader/event.pyi +30 -0
  251. homeassistant-stubs/components/fitbit/const.pyi +11 -11
  252. homeassistant-stubs/components/fitbit/sensor.pyi +1 -1
  253. homeassistant-stubs/components/flexit_bacnet/binary_sensor.pyi +1 -1
  254. homeassistant-stubs/components/flexit_bacnet/number.pyi +1 -1
  255. homeassistant-stubs/components/flexit_bacnet/sensor.pyi +1 -1
  256. homeassistant-stubs/components/flexit_bacnet/switch.pyi +1 -1
  257. homeassistant-stubs/components/forecast_solar/sensor.pyi +1 -1
  258. homeassistant-stubs/components/fritz/binary_sensor.pyi +1 -1
  259. homeassistant-stubs/components/fritz/button.pyi +1 -1
  260. homeassistant-stubs/components/fritz/config_flow.pyi +1 -0
  261. homeassistant-stubs/components/fritz/const.pyi +3 -3
  262. homeassistant-stubs/components/fritz/coordinator.pyi +3 -3
  263. homeassistant-stubs/components/fritz/entity.pyi +1 -1
  264. homeassistant-stubs/components/fritz/sensor.pyi +1 -1
  265. homeassistant-stubs/components/fritz/update.pyi +1 -1
  266. homeassistant-stubs/components/fritzbox/binary_sensor.pyi +1 -1
  267. homeassistant-stubs/components/fritzbox/sensor.pyi +1 -1
  268. homeassistant-stubs/components/fritzbox_callmonitor/config_flow.pyi +5 -5
  269. homeassistant-stubs/components/fritzbox_callmonitor/const.pyi +4 -4
  270. homeassistant-stubs/components/fritzbox_callmonitor/sensor.pyi +4 -4
  271. homeassistant-stubs/components/fronius/const.pyi +21 -21
  272. homeassistant-stubs/components/fronius/sensor.pyi +1 -1
  273. homeassistant-stubs/components/frontend/__init__.pyi +3 -2
  274. homeassistant-stubs/components/fully_kiosk/button.pyi +1 -1
  275. homeassistant-stubs/components/fully_kiosk/image.pyi +1 -1
  276. homeassistant-stubs/components/fully_kiosk/notify.pyi +1 -1
  277. homeassistant-stubs/components/fully_kiosk/sensor.pyi +1 -1
  278. homeassistant-stubs/components/fully_kiosk/switch.pyi +1 -1
  279. homeassistant-stubs/components/generic_hygrostat/__init__.pyi +1 -0
  280. homeassistant-stubs/components/generic_hygrostat/config_flow.pyi +1 -0
  281. homeassistant-stubs/components/generic_hygrostat/humidifier.pyi +3 -1
  282. homeassistant-stubs/components/generic_thermostat/__init__.pyi +2 -5
  283. homeassistant-stubs/components/generic_thermostat/climate.pyi +10 -15
  284. homeassistant-stubs/components/generic_thermostat/config_flow.pyi +2 -1
  285. homeassistant-stubs/components/generic_thermostat/const.pyi +14 -0
  286. homeassistant-stubs/components/geocaching/sensor.pyi +1 -1
  287. homeassistant-stubs/components/gios/sensor.pyi +1 -1
  288. homeassistant-stubs/components/glances/sensor.pyi +1 -1
  289. homeassistant-stubs/components/google/const.pyi +5 -5
  290. homeassistant-stubs/components/gpsd/__init__.pyi +5 -3
  291. homeassistant-stubs/components/gpsd/config_flow.pyi +2 -0
  292. homeassistant-stubs/components/gpsd/sensor.pyi +6 -5
  293. homeassistant-stubs/components/group/button.pyi +28 -0
  294. homeassistant-stubs/components/group/config_flow.pyi +2 -0
  295. homeassistant-stubs/components/group/fan.pyi +1 -0
  296. homeassistant-stubs/components/group/notify.pyi +19 -3
  297. homeassistant-stubs/components/guardian/__init__.pyi +1 -1
  298. homeassistant-stubs/components/guardian/binary_sensor.pyi +2 -2
  299. homeassistant-stubs/components/guardian/button.pyi +1 -1
  300. homeassistant-stubs/components/guardian/sensor.pyi +2 -2
  301. homeassistant-stubs/components/guardian/switch.pyi +1 -1
  302. homeassistant-stubs/components/guardian/valve.pyi +9 -9
  303. homeassistant-stubs/components/here_travel_time/config_flow.pyi +4 -1
  304. homeassistant-stubs/components/history/websocket_api.pyi +1 -1
  305. homeassistant-stubs/components/history_stats/__init__.pyi +13 -4
  306. homeassistant-stubs/components/history_stats/config_flow.pyi +19 -0
  307. homeassistant-stubs/components/history_stats/const.pyi +14 -0
  308. homeassistant-stubs/components/history_stats/sensor.pyi +6 -11
  309. homeassistant-stubs/components/homeassistant/__init__.pyi +4 -4
  310. homeassistant-stubs/components/homeassistant/logbook.pyi +1 -1
  311. homeassistant-stubs/components/homeassistant/repairs.pyi +15 -0
  312. homeassistant-stubs/components/homeassistant/scene.pyi +1 -0
  313. homeassistant-stubs/components/homeassistant_hardware/const.pyi +7 -0
  314. homeassistant-stubs/components/homeassistant_hardware/firmware_config_flow.pyi +59 -0
  315. homeassistant-stubs/components/homeassistant_hardware/util.pyi +24 -0
  316. homeassistant-stubs/components/homeassistant_sky_connect/__init__.pyi +1 -1
  317. homeassistant-stubs/components/homeassistant_sky_connect/config_flow.pyi +19 -49
  318. homeassistant-stubs/components/homeassistant_sky_connect/const.pyi +2 -10
  319. homeassistant-stubs/components/homeassistant_sky_connect/util.pyi +2 -20
  320. homeassistant-stubs/components/homekit/__init__.pyi +17 -8
  321. homeassistant-stubs/components/homekit/accessories.pyi +1 -1
  322. homeassistant-stubs/components/homekit/aidmanager.pyi +1 -1
  323. homeassistant-stubs/components/homekit/diagnostics.pyi +2 -4
  324. homeassistant-stubs/components/homekit/models.pyi +4 -1
  325. homeassistant-stubs/components/homekit/type_cameras.pyi +5 -3
  326. homeassistant-stubs/components/homekit/type_switches.pyi +17 -6
  327. homeassistant-stubs/components/homekit/util.pyi +1 -1
  328. homeassistant-stubs/components/homekit_controller/button.pyi +1 -1
  329. homeassistant-stubs/components/homekit_controller/select.pyi +1 -1
  330. homeassistant-stubs/components/homekit_controller/utils.pyi +1 -2
  331. homeassistant-stubs/components/homewizard/__init__.pyi +7 -5
  332. homeassistant-stubs/components/homewizard/button.pyi +2 -3
  333. homeassistant-stubs/components/homewizard/const.pyi +1 -1
  334. homeassistant-stubs/components/homewizard/diagnostics.pyi +2 -4
  335. homeassistant-stubs/components/homewizard/number.pyi +2 -3
  336. homeassistant-stubs/components/homewizard/sensor.pyi +4 -4
  337. homeassistant-stubs/components/homewizard/switch.pyi +4 -4
  338. homeassistant-stubs/components/homeworks/__init__.pyi +1 -1
  339. homeassistant-stubs/components/homeworks/config_flow.pyi +5 -3
  340. homeassistant-stubs/components/http/__init__.pyi +1 -1
  341. homeassistant-stubs/components/http/decorators.pyi +2 -1
  342. homeassistant-stubs/components/http/static.pyi +1 -4
  343. homeassistant-stubs/components/huawei_lte/select.pyi +1 -1
  344. homeassistant-stubs/components/huawei_lte/sensor.pyi +2 -2
  345. homeassistant-stubs/components/humidifier/__init__.pyi +3 -3
  346. homeassistant-stubs/components/humidifier/const.pyi +5 -5
  347. homeassistant-stubs/components/husqvarna_automower/binary_sensor.pyi +1 -1
  348. homeassistant-stubs/components/husqvarna_automower/entity.pyi +6 -1
  349. homeassistant-stubs/components/husqvarna_automower/lawn_mower.pyi +6 -5
  350. homeassistant-stubs/components/husqvarna_automower/number.pyi +3 -5
  351. homeassistant-stubs/components/husqvarna_automower/select.pyi +1 -2
  352. homeassistant-stubs/components/husqvarna_automower/sensor.pyi +9 -2
  353. homeassistant-stubs/components/husqvarna_automower/switch.pyi +1 -3
  354. homeassistant-stubs/components/hydrawise/binary_sensor.pyi +14 -2
  355. homeassistant-stubs/components/hydrawise/const.pyi +5 -2
  356. homeassistant-stubs/components/hydrawise/sensor.pyi +1 -1
  357. homeassistant-stubs/components/hydrawise/switch.pyi +1 -1
  358. homeassistant-stubs/components/hydrawise/valve.pyi +24 -0
  359. homeassistant-stubs/components/ibeacon/sensor.pyi +1 -1
  360. homeassistant-stubs/components/idasen_desk/button.pyi +1 -1
  361. homeassistant-stubs/components/idasen_desk/sensor.pyi +1 -1
  362. homeassistant-stubs/components/image/__init__.pyi +1 -1
  363. homeassistant-stubs/components/image_processing/__init__.pyi +4 -4
  364. homeassistant-stubs/components/image_upload/__init__.pyi +1 -1
  365. homeassistant-stubs/components/imgw_pib/binary_sensor.pyi +1 -1
  366. homeassistant-stubs/components/imgw_pib/sensor.pyi +1 -1
  367. homeassistant-stubs/components/integration/sensor.pyi +2 -2
  368. homeassistant-stubs/components/intent/__init__.pyi +10 -0
  369. homeassistant-stubs/components/intent/timers.pyi +7 -7
  370. homeassistant-stubs/components/ios/__init__.pyi +1 -1
  371. homeassistant-stubs/components/ios/const.pyi +1 -0
  372. homeassistant-stubs/components/iotty/__init__.pyi +21 -0
  373. homeassistant-stubs/components/iotty/api.pyi +15 -0
  374. homeassistant-stubs/components/iotty/application_credentials.pyi +7 -0
  375. homeassistant-stubs/components/iotty/config_flow.pyi +8 -0
  376. homeassistant-stubs/components/iotty/const.pyi +1 -0
  377. homeassistant-stubs/components/iotty/coordinator.pyi +29 -0
  378. homeassistant-stubs/components/iotty/switch.pyi +34 -0
  379. homeassistant-stubs/components/ipp/sensor.pyi +1 -1
  380. homeassistant-stubs/components/isy994/fan.pyi +1 -0
  381. homeassistant-stubs/components/isy994/switch.pyi +1 -1
  382. homeassistant-stubs/components/jellyfin/__init__.pyi +5 -3
  383. homeassistant-stubs/components/jellyfin/config_flow.pyi +4 -5
  384. homeassistant-stubs/components/jellyfin/coordinator.pyi +0 -2
  385. homeassistant-stubs/components/jellyfin/diagnostics.pyi +2 -4
  386. homeassistant-stubs/components/jellyfin/media_player.pyi +2 -3
  387. homeassistant-stubs/components/jellyfin/media_source.pyi +2 -3
  388. homeassistant-stubs/components/jellyfin/sensor.pyi +3 -5
  389. homeassistant-stubs/components/jewish_calendar/binary_sensor.pyi +2 -2
  390. homeassistant-stubs/components/jvc_projector/select.pyi +1 -1
  391. homeassistant-stubs/components/kaleidescape/sensor.pyi +1 -1
  392. homeassistant-stubs/components/knocki/coordinator.pyi +2 -2
  393. homeassistant-stubs/components/knx/__init__.pyi +7 -3
  394. homeassistant-stubs/components/knx/binary_sensor.pyi +4 -4
  395. homeassistant-stubs/components/knx/button.pyi +4 -4
  396. homeassistant-stubs/components/knx/climate.pyi +5 -3
  397. homeassistant-stubs/components/knx/config_flow.pyi +1 -1
  398. homeassistant-stubs/components/knx/const.pyi +5 -4
  399. homeassistant-stubs/components/knx/cover.pyi +4 -4
  400. homeassistant-stubs/components/knx/date.pyi +7 -9
  401. homeassistant-stubs/components/knx/datetime.pyi +7 -6
  402. homeassistant-stubs/components/knx/device.pyi +2 -1
  403. homeassistant-stubs/components/knx/expose.pyi +4 -5
  404. homeassistant-stubs/components/knx/fan.pyi +5 -4
  405. homeassistant-stubs/components/knx/knx_entity.pyi +29 -5
  406. homeassistant-stubs/components/knx/light.pyi +32 -11
  407. homeassistant-stubs/components/knx/notify.pyi +4 -3
  408. homeassistant-stubs/components/knx/number.pyi +4 -3
  409. homeassistant-stubs/components/knx/project.pyi +5 -3
  410. homeassistant-stubs/components/knx/scene.pyi +4 -4
  411. homeassistant-stubs/components/knx/schema.pyi +5 -2
  412. homeassistant-stubs/components/knx/select.pyi +5 -4
  413. homeassistant-stubs/components/knx/sensor.pyi +5 -5
  414. homeassistant-stubs/components/knx/services.pyi +1 -1
  415. homeassistant-stubs/components/knx/storage/config_store.pyi +44 -0
  416. homeassistant-stubs/components/knx/storage/const.pyi +25 -0
  417. homeassistant-stubs/components/knx/storage/entity_store_schema.pyi +36 -0
  418. homeassistant-stubs/components/knx/storage/entity_store_validation.pyi +25 -0
  419. homeassistant-stubs/components/knx/storage/knx_selector.pyi +21 -0
  420. homeassistant-stubs/components/knx/switch.pyi +23 -9
  421. homeassistant-stubs/components/knx/telegrams.pyi +5 -6
  422. homeassistant-stubs/components/knx/text.pyi +4 -3
  423. homeassistant-stubs/components/knx/time.pyi +7 -9
  424. homeassistant-stubs/components/knx/trigger.pyi +1 -1
  425. homeassistant-stubs/components/knx/validation.pyi +8 -1
  426. homeassistant-stubs/components/knx/weather.pyi +4 -3
  427. homeassistant-stubs/components/knx/websocket.pyi +17 -1
  428. homeassistant-stubs/components/kraken/sensor.pyi +1 -1
  429. homeassistant-stubs/components/lacrosse_view/sensor.pyi +1 -1
  430. homeassistant-stubs/components/lamarzocco/binary_sensor.pyi +1 -1
  431. homeassistant-stubs/components/lamarzocco/button.pyi +1 -1
  432. homeassistant-stubs/components/lamarzocco/entity.pyi +1 -1
  433. homeassistant-stubs/components/lamarzocco/number.pyi +2 -2
  434. homeassistant-stubs/components/lamarzocco/select.pyi +1 -1
  435. homeassistant-stubs/components/lamarzocco/sensor.pyi +1 -1
  436. homeassistant-stubs/components/lamarzocco/switch.pyi +1 -1
  437. homeassistant-stubs/components/lamarzocco/update.pyi +3 -1
  438. homeassistant-stubs/components/lametric/button.pyi +1 -1
  439. homeassistant-stubs/components/lametric/number.pyi +1 -1
  440. homeassistant-stubs/components/lametric/select.pyi +1 -1
  441. homeassistant-stubs/components/lametric/sensor.pyi +1 -1
  442. homeassistant-stubs/components/lametric/switch.pyi +1 -1
  443. homeassistant-stubs/components/laundrify/binary_sensor.pyi +2 -2
  444. homeassistant-stubs/components/laundrify/const.pyi +3 -1
  445. homeassistant-stubs/components/laundrify/coordinator.pyi +1 -2
  446. homeassistant-stubs/components/lawn_mower/__init__.pyi +1 -1
  447. homeassistant-stubs/components/lawn_mower/const.pyi +7 -7
  448. homeassistant-stubs/components/lcn/schemas.pyi +9 -8
  449. homeassistant-stubs/components/lidarr/sensor.pyi +1 -1
  450. homeassistant-stubs/components/lifx/const.pyi +1 -0
  451. homeassistant-stubs/components/lifx/coordinator.pyi +20 -7
  452. homeassistant-stubs/components/lifx/light.pyi +5 -2
  453. homeassistant-stubs/components/lifx/manager.pyi +12 -1
  454. homeassistant-stubs/components/light/__init__.pyi +16 -17
  455. homeassistant-stubs/components/linkplay/__init__.pyi +14 -0
  456. homeassistant-stubs/components/linkplay/config_flow.pyi +14 -0
  457. homeassistant-stubs/components/linkplay/const.pyi +5 -0
  458. homeassistant-stubs/components/linkplay/media_player.pyi +66 -0
  459. homeassistant-stubs/components/linkplay/utils.pyi +19 -0
  460. homeassistant-stubs/components/litterrobot/binary_sensor.pyi +1 -1
  461. homeassistant-stubs/components/litterrobot/button.pyi +1 -1
  462. homeassistant-stubs/components/litterrobot/hub.pyi +2 -2
  463. homeassistant-stubs/components/litterrobot/select.pyi +1 -1
  464. homeassistant-stubs/components/litterrobot/sensor.pyi +1 -1
  465. homeassistant-stubs/components/litterrobot/switch.pyi +1 -1
  466. homeassistant-stubs/components/litterrobot/time.pyi +1 -1
  467. homeassistant-stubs/components/lock/__init__.pyi +2 -2
  468. homeassistant-stubs/components/logbook/models.pyi +2 -2
  469. homeassistant-stubs/components/logbook/processor.pyi +2 -3
  470. homeassistant-stubs/components/logbook/websocket_api.pyi +1 -1
  471. homeassistant-stubs/components/logger/helpers.pyi +5 -5
  472. homeassistant-stubs/components/madvr/__init__.pyi +13 -0
  473. homeassistant-stubs/components/madvr/binary_sensor.pyi +30 -0
  474. homeassistant-stubs/components/madvr/config_flow.pyi +17 -0
  475. homeassistant-stubs/components/madvr/const.pyi +29 -0
  476. homeassistant-stubs/components/madvr/coordinator.pyi +18 -0
  477. homeassistant-stubs/components/madvr/entity.pyi +10 -0
  478. homeassistant-stubs/components/madvr/errors.pyi +1 -0
  479. homeassistant-stubs/components/madvr/remote.pyi +24 -0
  480. homeassistant-stubs/components/madvr/sensor.pyi +31 -0
  481. homeassistant-stubs/components/mastodon/__init__.pyi +11 -0
  482. homeassistant-stubs/components/mastodon/config_flow.pyi +18 -0
  483. homeassistant-stubs/components/mastodon/const.pyi +7 -0
  484. homeassistant-stubs/components/mastodon/notify.pyi +8 -5
  485. homeassistant-stubs/components/mastodon/utils.pyi +5 -0
  486. homeassistant-stubs/components/matrix/__init__.pyi +1 -1
  487. homeassistant-stubs/components/matter/__init__.pyi +1 -0
  488. homeassistant-stubs/components/matter/binary_sensor.pyi +1 -1
  489. homeassistant-stubs/components/matter/climate.pyi +11 -13
  490. homeassistant-stubs/components/matter/cover.pyi +4 -4
  491. homeassistant-stubs/components/matter/discovery.pyi +1 -1
  492. homeassistant-stubs/components/matter/entity.pyi +2 -1
  493. homeassistant-stubs/components/matter/fan.pyi +4 -0
  494. homeassistant-stubs/components/matter/light.pyi +2 -0
  495. homeassistant-stubs/components/matter/lock.pyi +3 -6
  496. homeassistant-stubs/components/matter/models.pyi +1 -1
  497. homeassistant-stubs/components/matter/number.pyi +1 -1
  498. homeassistant-stubs/components/matter/select.pyi +34 -0
  499. homeassistant-stubs/components/matter/sensor.pyi +1 -1
  500. homeassistant-stubs/components/matter/update.pyi +53 -0
  501. homeassistant-stubs/components/media_player/__init__.pyi +8 -8
  502. homeassistant-stubs/components/media_player/const.pyi +72 -72
  503. homeassistant-stubs/components/media_player/intent.pyi +2 -4
  504. homeassistant-stubs/components/minecraft_server/api.pyi +3 -3
  505. homeassistant-stubs/components/minecraft_server/sensor.pyi +1 -1
  506. homeassistant-stubs/components/modbus/__init__.pyi +1 -1
  507. homeassistant-stubs/components/modbus/const.pyi +11 -11
  508. homeassistant-stubs/components/modbus/fan.pyi +3 -1
  509. homeassistant-stubs/components/modbus/validators.pyi +2 -3
  510. homeassistant-stubs/components/monzo/sensor.pyi +1 -1
  511. homeassistant-stubs/components/mopeka/__init__.pyi +5 -3
  512. homeassistant-stubs/components/mopeka/config_flow.pyi +18 -1
  513. homeassistant-stubs/components/mopeka/const.pyi +5 -0
  514. homeassistant-stubs/components/mopeka/sensor.pyi +3 -4
  515. homeassistant-stubs/components/mqtt/client.pyi +5 -6
  516. homeassistant-stubs/components/mqtt/device_trigger.pyi +2 -2
  517. homeassistant-stubs/components/mqtt/fan.pyi +1 -0
  518. homeassistant-stubs/components/mqtt/models.pyi +5 -5
  519. homeassistant-stubs/components/mqtt/subscription.pyi +1 -1
  520. homeassistant-stubs/components/mqtt/switch.pyi +3 -2
  521. homeassistant-stubs/components/mqtt/vacuum.pyi +2 -7
  522. homeassistant-stubs/components/mysensors/binary_sensor.pyi +1 -1
  523. homeassistant-stubs/components/mysensors/cover.pyi +4 -4
  524. homeassistant-stubs/components/myuplink/select.pyi +23 -0
  525. homeassistant-stubs/components/nam/sensor.pyi +1 -1
  526. homeassistant-stubs/components/nest/media_source.pyi +1 -1
  527. homeassistant-stubs/components/netatmo/fan.pyi +1 -0
  528. homeassistant-stubs/components/netatmo/helper.pyi +1 -1
  529. homeassistant-stubs/components/netatmo/sensor.pyi +2 -2
  530. homeassistant-stubs/components/nextdns/binary_sensor.pyi +1 -1
  531. homeassistant-stubs/components/nextdns/sensor.pyi +1 -1
  532. homeassistant-stubs/components/nextdns/switch.pyi +1 -1
  533. homeassistant-stubs/components/notify/__init__.pyi +2 -2
  534. homeassistant-stubs/components/notion/binary_sensor.pyi +1 -1
  535. homeassistant-stubs/components/notion/config_flow.pyi +1 -1
  536. homeassistant-stubs/components/notion/coordinator.pyi +1 -1
  537. homeassistant-stubs/components/notion/sensor.pyi +1 -1
  538. homeassistant-stubs/components/number/__init__.pyi +1 -1
  539. homeassistant-stubs/components/number/const.pyi +52 -52
  540. homeassistant-stubs/components/nut/__init__.pyi +1 -1
  541. homeassistant-stubs/components/oncue/__init__.pyi +3 -4
  542. homeassistant-stubs/components/oncue/binary_sensor.pyi +2 -5
  543. homeassistant-stubs/components/oncue/sensor.pyi +2 -3
  544. homeassistant-stubs/components/oncue/types.pyi +5 -0
  545. homeassistant-stubs/components/onewire/binary_sensor.pyi +1 -1
  546. homeassistant-stubs/components/onewire/onewire_entities.pyi +1 -1
  547. homeassistant-stubs/components/onewire/sensor.pyi +1 -1
  548. homeassistant-stubs/components/onewire/switch.pyi +1 -1
  549. homeassistant-stubs/components/openuv/sensor.pyi +1 -1
  550. homeassistant-stubs/components/oralb/__init__.pyi +3 -3
  551. homeassistant-stubs/components/oralb/sensor.pyi +3 -4
  552. homeassistant-stubs/components/otbr/websocket_api.pyi +6 -3
  553. homeassistant-stubs/components/overkiz/alarm_control_panel.pyi +1 -1
  554. homeassistant-stubs/components/overkiz/binary_sensor.pyi +1 -1
  555. homeassistant-stubs/components/overkiz/button.pyi +1 -1
  556. homeassistant-stubs/components/overkiz/climate.pyi +1 -1
  557. homeassistant-stubs/components/overkiz/climate_entities/__init__.pyi +3 -2
  558. homeassistant-stubs/components/overkiz/climate_entities/atlantic_pass_apc_heat_pump_main_component.pyi +18 -0
  559. homeassistant-stubs/components/overkiz/number.pyi +1 -1
  560. homeassistant-stubs/components/overkiz/select.pyi +1 -1
  561. homeassistant-stubs/components/overkiz/sensor.pyi +1 -1
  562. homeassistant-stubs/components/overkiz/switch.pyi +1 -1
  563. homeassistant-stubs/components/p1_monitor/coordinator.pyi +1 -1
  564. homeassistant-stubs/components/peco/sensor.pyi +1 -1
  565. homeassistant-stubs/components/persistent_notification/__init__.pyi +4 -4
  566. homeassistant-stubs/components/pi_hole/binary_sensor.pyi +1 -1
  567. homeassistant-stubs/components/pi_hole/update.pyi +1 -1
  568. homeassistant-stubs/components/ping/entity.pyi +0 -1
  569. homeassistant-stubs/components/ping/sensor.pyi +1 -1
  570. homeassistant-stubs/components/plugwise/binary_sensor.pyi +1 -1
  571. homeassistant-stubs/components/plugwise/number.pyi +1 -1
  572. homeassistant-stubs/components/plugwise/select.pyi +1 -1
  573. homeassistant-stubs/components/plugwise/sensor.pyi +1 -1
  574. homeassistant-stubs/components/plugwise/switch.pyi +1 -1
  575. homeassistant-stubs/components/powerwall/__init__.pyi +4 -4
  576. homeassistant-stubs/components/powerwall/binary_sensor.pyi +2 -4
  577. homeassistant-stubs/components/powerwall/models.pyi +4 -1
  578. homeassistant-stubs/components/powerwall/sensor.pyi +4 -6
  579. homeassistant-stubs/components/powerwall/switch.pyi +2 -4
  580. homeassistant-stubs/components/private_ble_device/sensor.pyi +1 -1
  581. homeassistant-stubs/components/prometheus/__init__.pyi +3 -1
  582. homeassistant-stubs/components/prusalink/__init__.pyi +1 -1
  583. homeassistant-stubs/components/prusalink/binary_sensor.pyi +36 -0
  584. homeassistant-stubs/components/prusalink/button.pyi +1 -1
  585. homeassistant-stubs/components/prusalink/coordinator.pyi +4 -1
  586. homeassistant-stubs/components/prusalink/sensor.pyi +3 -3
  587. homeassistant-stubs/components/pure_energie/sensor.pyi +1 -1
  588. homeassistant-stubs/components/purpleair/config_flow.pyi +1 -1
  589. homeassistant-stubs/components/purpleair/sensor.pyi +1 -1
  590. homeassistant-stubs/components/pvoutput/sensor.pyi +1 -1
  591. homeassistant-stubs/components/qnap_qsw/binary_sensor.pyi +1 -1
  592. homeassistant-stubs/components/qnap_qsw/button.pyi +1 -1
  593. homeassistant-stubs/components/qnap_qsw/entity.pyi +1 -1
  594. homeassistant-stubs/components/qnap_qsw/sensor.pyi +1 -1
  595. homeassistant-stubs/components/rabbitair/fan.pyi +1 -0
  596. homeassistant-stubs/components/radarr/coordinator.pyi +1 -1
  597. homeassistant-stubs/components/radarr/sensor.pyi +1 -1
  598. homeassistant-stubs/components/rainforest_raven/sensor.pyi +1 -1
  599. homeassistant-stubs/components/rainmachine/__init__.pyi +8 -7
  600. homeassistant-stubs/components/rainmachine/binary_sensor.pyi +4 -5
  601. homeassistant-stubs/components/rainmachine/button.pyi +4 -5
  602. homeassistant-stubs/components/rainmachine/coordinator.pyi +3 -3
  603. homeassistant-stubs/components/rainmachine/diagnostics.pyi +3 -4
  604. homeassistant-stubs/components/rainmachine/model.pyi +1 -1
  605. homeassistant-stubs/components/rainmachine/select.pyi +5 -5
  606. homeassistant-stubs/components/rainmachine/sensor.pyi +5 -5
  607. homeassistant-stubs/components/rainmachine/switch.pyi +6 -6
  608. homeassistant-stubs/components/rainmachine/update.pyi +9 -10
  609. homeassistant-stubs/components/rainmachine/util.pyi +4 -4
  610. homeassistant-stubs/components/rdw/binary_sensor.pyi +1 -1
  611. homeassistant-stubs/components/rdw/sensor.pyi +1 -1
  612. homeassistant-stubs/components/recorder/__init__.pyi +2 -1
  613. homeassistant-stubs/components/recorder/basic_websocket_api.pyi +7 -0
  614. homeassistant-stubs/components/recorder/const.pyi +5 -8
  615. homeassistant-stubs/components/recorder/core.pyi +16 -16
  616. homeassistant-stubs/components/recorder/db_schema.pyi +19 -6
  617. homeassistant-stubs/components/recorder/migration.pyi +221 -24
  618. homeassistant-stubs/components/recorder/models/context.pyi +1 -3
  619. homeassistant-stubs/components/recorder/statistics.pyi +2 -2
  620. homeassistant-stubs/components/recorder/table_managers/__init__.pyi +0 -1
  621. homeassistant-stubs/components/recorder/table_managers/event_data.pyi +0 -1
  622. homeassistant-stubs/components/recorder/table_managers/event_types.pyi +1 -0
  623. homeassistant-stubs/components/recorder/table_managers/state_attributes.pyi +0 -1
  624. homeassistant-stubs/components/recorder/table_managers/states_meta.pyi +1 -0
  625. homeassistant-stubs/components/recorder/tasks.pyi +0 -24
  626. homeassistant-stubs/components/recorder/util.pyi +8 -6
  627. homeassistant-stubs/components/recorder/websocket_api.pyi +0 -1
  628. homeassistant-stubs/components/remote/__init__.pyi +4 -4
  629. homeassistant-stubs/components/renault/binary_sensor.pyi +1 -1
  630. homeassistant-stubs/components/renault/button.pyi +1 -1
  631. homeassistant-stubs/components/renault/entity.pyi +1 -1
  632. homeassistant-stubs/components/renault/renault_vehicle.pyi +1 -1
  633. homeassistant-stubs/components/renault/select.pyi +1 -1
  634. homeassistant-stubs/components/renault/sensor.pyi +1 -1
  635. homeassistant-stubs/components/repairs/websocket_api.pyi +1 -1
  636. homeassistant-stubs/components/rfxtrx/sensor.pyi +1 -1
  637. homeassistant-stubs/components/ring/binary_sensor.pyi +1 -1
  638. homeassistant-stubs/components/ring/light.pyi +2 -2
  639. homeassistant-stubs/components/ring/sensor.pyi +1 -1
  640. homeassistant-stubs/components/rituals_perfume_genie/binary_sensor.pyi +1 -1
  641. homeassistant-stubs/components/rituals_perfume_genie/number.pyi +1 -1
  642. homeassistant-stubs/components/rituals_perfume_genie/select.pyi +1 -1
  643. homeassistant-stubs/components/rituals_perfume_genie/sensor.pyi +1 -1
  644. homeassistant-stubs/components/rituals_perfume_genie/switch.pyi +1 -1
  645. homeassistant-stubs/components/roborock/__init__.pyi +4 -3
  646. homeassistant-stubs/components/roborock/binary_sensor.pyi +3 -6
  647. homeassistant-stubs/components/roborock/button.pyi +3 -6
  648. homeassistant-stubs/components/roborock/coordinator.pyi +8 -2
  649. homeassistant-stubs/components/roborock/diagnostics.pyi +2 -4
  650. homeassistant-stubs/components/roborock/image.pyi +2 -3
  651. homeassistant-stubs/components/roborock/number.pyi +3 -6
  652. homeassistant-stubs/components/roborock/select.pyi +12 -6
  653. homeassistant-stubs/components/roborock/sensor.pyi +6 -9
  654. homeassistant-stubs/components/roborock/switch.pyi +3 -6
  655. homeassistant-stubs/components/roborock/time.pyi +3 -6
  656. homeassistant-stubs/components/roborock/vacuum.pyi +2 -4
  657. homeassistant-stubs/components/roku/binary_sensor.pyi +1 -1
  658. homeassistant-stubs/components/roku/browse_media.pyi +2 -1
  659. homeassistant-stubs/components/roku/select.pyi +1 -1
  660. homeassistant-stubs/components/roku/sensor.pyi +1 -1
  661. homeassistant-stubs/components/samsungtv/bridge.pyi +1 -1
  662. homeassistant-stubs/components/script/__init__.pyi +148 -0
  663. homeassistant-stubs/components/script/config.pyi +39 -0
  664. homeassistant-stubs/components/script/const.pyi +14 -0
  665. homeassistant-stubs/components/script/helpers.pyi +11 -0
  666. homeassistant-stubs/components/script/logbook.pyi +8 -0
  667. homeassistant-stubs/components/script/trace.pyi +10 -0
  668. homeassistant-stubs/components/search/__init__.pyi +14 -13
  669. homeassistant-stubs/components/select/__init__.pyi +1 -1
  670. homeassistant-stubs/components/sensibo/binary_sensor.pyi +2 -2
  671. homeassistant-stubs/components/sensibo/button.pyi +1 -1
  672. homeassistant-stubs/components/sensibo/number.pyi +1 -1
  673. homeassistant-stubs/components/sensibo/select.pyi +1 -1
  674. homeassistant-stubs/components/sensibo/sensor.pyi +2 -2
  675. homeassistant-stubs/components/sensibo/switch.pyi +1 -1
  676. homeassistant-stubs/components/sensibo/update.pyi +1 -1
  677. homeassistant-stubs/components/sensor/__init__.pyi +1 -1
  678. homeassistant-stubs/components/sensor/const.pyi +55 -55
  679. homeassistant-stubs/components/sfr_box/binary_sensor.pyi +1 -1
  680. homeassistant-stubs/components/sfr_box/button.pyi +1 -1
  681. homeassistant-stubs/components/sfr_box/sensor.pyi +1 -1
  682. homeassistant-stubs/components/shelly/binary_sensor.pyi +4 -4
  683. homeassistant-stubs/components/shelly/button.pyi +1 -1
  684. homeassistant-stubs/components/shelly/climate.pyi +1 -1
  685. homeassistant-stubs/components/shelly/const.pyi +6 -3
  686. homeassistant-stubs/components/shelly/coordinator.pyi +1 -1
  687. homeassistant-stubs/components/shelly/entity.pyi +9 -3
  688. homeassistant-stubs/components/shelly/event.pyi +2 -2
  689. homeassistant-stubs/components/shelly/number.pyi +28 -6
  690. homeassistant-stubs/components/shelly/select.pyi +25 -0
  691. homeassistant-stubs/components/shelly/sensor.pyi +6 -4
  692. homeassistant-stubs/components/shelly/switch.pyi +17 -3
  693. homeassistant-stubs/components/shelly/text.pyi +23 -0
  694. homeassistant-stubs/components/shelly/update.pyi +2 -2
  695. homeassistant-stubs/components/shelly/utils.pyi +3 -1
  696. homeassistant-stubs/components/shelly/valve.pyi +1 -1
  697. homeassistant-stubs/components/simplisafe/button.pyi +1 -1
  698. homeassistant-stubs/components/simplisafe/typing.pyi +3 -2
  699. homeassistant-stubs/components/siren/__init__.pyi +1 -1
  700. homeassistant-stubs/components/siren/const.pyi +5 -5
  701. homeassistant-stubs/components/skybell/sensor.pyi +1 -1
  702. homeassistant-stubs/components/sleepiq/button.pyi +1 -1
  703. homeassistant-stubs/components/sleepiq/entity.pyi +1 -1
  704. homeassistant-stubs/components/sleepiq/number.pyi +1 -1
  705. homeassistant-stubs/components/snooz/fan.pyi +1 -0
  706. homeassistant-stubs/components/sonarr/sensor.pyi +1 -1
  707. homeassistant-stubs/components/speedtestdotnet/sensor.pyi +1 -1
  708. homeassistant-stubs/components/ssdp/__init__.pyi +1 -1
  709. homeassistant-stubs/components/starlink/binary_sensor.pyi +1 -1
  710. homeassistant-stubs/components/starlink/button.pyi +1 -1
  711. homeassistant-stubs/components/starlink/device_tracker.pyi +1 -1
  712. homeassistant-stubs/components/starlink/sensor.pyi +1 -1
  713. homeassistant-stubs/components/starlink/switch.pyi +1 -1
  714. homeassistant-stubs/components/starlink/time.pyi +1 -1
  715. homeassistant-stubs/components/steamist/sensor.pyi +1 -1
  716. homeassistant-stubs/components/stream/core.pyi +9 -9
  717. homeassistant-stubs/components/stream/fmp4utils.pyi +1 -1
  718. homeassistant-stubs/components/stream/worker.pyi +1 -2
  719. homeassistant-stubs/components/streamlabswater/entity.pyi +0 -1
  720. homeassistant-stubs/components/streamlabswater/sensor.pyi +1 -1
  721. homeassistant-stubs/components/stt/const.pyi +21 -21
  722. homeassistant-stubs/components/sun/sensor.pyi +1 -1
  723. homeassistant-stubs/components/switch/__init__.pyi +3 -3
  724. homeassistant-stubs/components/switchbot_cloud/__init__.pyi +1 -1
  725. homeassistant-stubs/components/switchbot_cloud/coordinator.pyi +2 -1
  726. homeassistant-stubs/components/switcher_kis/button.pyi +1 -1
  727. homeassistant-stubs/components/synology_dsm/binary_sensor.pyi +1 -1
  728. homeassistant-stubs/components/synology_dsm/button.pyi +1 -1
  729. homeassistant-stubs/components/synology_dsm/camera.pyi +1 -1
  730. homeassistant-stubs/components/synology_dsm/entity.pyi +1 -1
  731. homeassistant-stubs/components/synology_dsm/sensor.pyi +1 -1
  732. homeassistant-stubs/components/synology_dsm/switch.pyi +1 -1
  733. homeassistant-stubs/components/synology_dsm/update.pyi +1 -1
  734. homeassistant-stubs/components/system_health/__init__.pyi +1 -1
  735. homeassistant-stubs/components/system_log/__init__.pyi +1 -1
  736. homeassistant-stubs/components/systemmonitor/binary_sensor.pyi +1 -1
  737. homeassistant-stubs/components/systemmonitor/sensor.pyi +1 -1
  738. homeassistant-stubs/components/tag/__init__.pyi +0 -1
  739. homeassistant-stubs/components/tailscale/binary_sensor.pyi +1 -1
  740. homeassistant-stubs/components/tailscale/sensor.pyi +1 -1
  741. homeassistant-stubs/components/tailwind/binary_sensor.pyi +1 -1
  742. homeassistant-stubs/components/tailwind/button.pyi +1 -1
  743. homeassistant-stubs/components/tailwind/number.pyi +1 -1
  744. homeassistant-stubs/components/tami4/button.pyi +1 -1
  745. homeassistant-stubs/components/tautulli/sensor.pyi +2 -2
  746. homeassistant-stubs/components/technove/__init__.pyi +2 -2
  747. homeassistant-stubs/components/technove/binary_sensor.pyi +3 -4
  748. homeassistant-stubs/components/technove/coordinator.pyi +2 -3
  749. homeassistant-stubs/components/technove/diagnostics.pyi +9 -0
  750. homeassistant-stubs/components/technove/number.pyi +37 -0
  751. homeassistant-stubs/components/technove/sensor.pyi +3 -4
  752. homeassistant-stubs/components/technove/switch.pyi +3 -4
  753. homeassistant-stubs/components/tedee/binary_sensor.pyi +1 -1
  754. homeassistant-stubs/components/tedee/config_flow.pyi +3 -0
  755. homeassistant-stubs/components/tedee/lock.pyi +1 -1
  756. homeassistant-stubs/components/tedee/sensor.pyi +1 -1
  757. homeassistant-stubs/components/text/__init__.pyi +3 -3
  758. homeassistant-stubs/components/time/__init__.pyi +1 -1
  759. homeassistant-stubs/components/todo/__init__.pyi +2 -2
  760. homeassistant-stubs/components/todo/const.pyi +19 -9
  761. homeassistant-stubs/components/tolo/const.pyi +4 -5
  762. homeassistant-stubs/components/tolo/fan.pyi +3 -1
  763. homeassistant-stubs/components/tolo/number.pyi +1 -1
  764. homeassistant-stubs/components/tolo/select.pyi +1 -1
  765. homeassistant-stubs/components/tolo/sensor.pyi +1 -1
  766. homeassistant-stubs/components/tolo/switch.pyi +1 -1
  767. homeassistant-stubs/components/tplink/binary_sensor.pyi +1 -1
  768. homeassistant-stubs/components/tplink/button.pyi +1 -1
  769. homeassistant-stubs/components/tplink/entity.pyi +1 -1
  770. homeassistant-stubs/components/tplink/fan.pyi +1 -0
  771. homeassistant-stubs/components/tplink/number.pyi +1 -1
  772. homeassistant-stubs/components/tplink/select.pyi +1 -1
  773. homeassistant-stubs/components/tplink/sensor.pyi +1 -1
  774. homeassistant-stubs/components/tplink/switch.pyi +1 -1
  775. homeassistant-stubs/components/tplink_omada/binary_sensor.pyi +1 -1
  776. homeassistant-stubs/components/tplink_omada/switch.pyi +4 -4
  777. homeassistant-stubs/components/tractive/sensor.pyi +1 -1
  778. homeassistant-stubs/components/tractive/switch.pyi +1 -1
  779. homeassistant-stubs/components/tradfri/fan.pyi +1 -0
  780. homeassistant-stubs/components/tradfri/sensor.pyi +1 -1
  781. homeassistant-stubs/components/trafikverket_camera/binary_sensor.pyi +1 -1
  782. homeassistant-stubs/components/trafikverket_camera/config_flow.pyi +3 -3
  783. homeassistant-stubs/components/trafikverket_camera/coordinator.pyi +2 -2
  784. homeassistant-stubs/components/trafikverket_camera/sensor.pyi +1 -1
  785. homeassistant-stubs/components/trafikverket_ferry/coordinator.pyi +1 -1
  786. homeassistant-stubs/components/trafikverket_ferry/sensor.pyi +1 -1
  787. homeassistant-stubs/components/trafikverket_train/coordinator.pyi +3 -3
  788. homeassistant-stubs/components/trafikverket_train/sensor.pyi +1 -1
  789. homeassistant-stubs/components/trafikverket_weatherstation/coordinator.pyi +3 -3
  790. homeassistant-stubs/components/trafikverket_weatherstation/sensor.pyi +3 -3
  791. homeassistant-stubs/components/transmission/sensor.pyi +1 -1
  792. homeassistant-stubs/components/transmission/switch.pyi +1 -1
  793. homeassistant-stubs/components/tts/__init__.pyi +10 -9
  794. homeassistant-stubs/components/tts/const.pyi +1 -3
  795. homeassistant-stubs/components/twentemilieu/sensor.pyi +1 -1
  796. homeassistant-stubs/components/unifi/button.pyi +1 -1
  797. homeassistant-stubs/components/unifi/device_tracker.pyi +6 -5
  798. homeassistant-stubs/components/unifi/entity.pyi +3 -2
  799. homeassistant-stubs/components/unifi/hub/entity_loader.pyi +9 -0
  800. homeassistant-stubs/components/unifi/image.pyi +1 -1
  801. homeassistant-stubs/components/unifi/sensor.pyi +9 -3
  802. homeassistant-stubs/components/unifi/switch.pyi +3 -2
  803. homeassistant-stubs/components/unifi/update.pyi +1 -1
  804. homeassistant-stubs/components/unifiprotect/binary_sensor.pyi +10 -14
  805. homeassistant-stubs/components/unifiprotect/button.pyi +7 -6
  806. homeassistant-stubs/components/unifiprotect/camera.pyi +4 -4
  807. homeassistant-stubs/components/unifiprotect/data.pyi +2 -3
  808. homeassistant-stubs/components/unifiprotect/entity.pyi +14 -10
  809. homeassistant-stubs/components/unifiprotect/event.pyi +25 -0
  810. homeassistant-stubs/components/unifiprotect/light.pyi +3 -3
  811. homeassistant-stubs/components/unifiprotect/lock.pyi +3 -3
  812. homeassistant-stubs/components/unifiprotect/media_player.pyi +3 -3
  813. homeassistant-stubs/components/unifiprotect/media_source.pyi +10 -10
  814. homeassistant-stubs/components/unifiprotect/models.pyi +6 -6
  815. homeassistant-stubs/components/unifiprotect/number.pyi +4 -4
  816. homeassistant-stubs/components/unifiprotect/select.pyi +4 -4
  817. homeassistant-stubs/components/unifiprotect/sensor.pyi +6 -6
  818. homeassistant-stubs/components/unifiprotect/switch.pyi +12 -12
  819. homeassistant-stubs/components/unifiprotect/text.pyi +4 -4
  820. homeassistant-stubs/components/unifiprotect/utils.pyi +1 -2
  821. homeassistant-stubs/components/upcloud/__init__.pyi +1 -1
  822. homeassistant-stubs/components/update/__init__.pyi +2 -2
  823. homeassistant-stubs/components/update/const.pyi +5 -5
  824. homeassistant-stubs/components/vacuum/__init__.pyi +15 -15
  825. homeassistant-stubs/components/vallox/binary_sensor.pyi +1 -1
  826. homeassistant-stubs/components/vallox/fan.pyi +1 -0
  827. homeassistant-stubs/components/vallox/number.pyi +1 -1
  828. homeassistant-stubs/components/vallox/sensor.pyi +1 -1
  829. homeassistant-stubs/components/vallox/switch.pyi +1 -1
  830. homeassistant-stubs/components/valve/__init__.pyi +7 -7
  831. homeassistant-stubs/components/wake_on_lan/__init__.pyi +5 -1
  832. homeassistant-stubs/components/wake_on_lan/button.pyi +21 -0
  833. homeassistant-stubs/components/wake_on_lan/config_flow.pyi +20 -0
  834. homeassistant-stubs/components/wake_on_lan/const.pyi +7 -0
  835. homeassistant-stubs/components/wake_on_lan/switch.pyi +2 -5
  836. homeassistant-stubs/components/wake_word/models.pyi +2 -2
  837. homeassistant-stubs/components/wallbox/const.pyi +18 -18
  838. homeassistant-stubs/components/wallbox/number.pyi +1 -1
  839. homeassistant-stubs/components/wallbox/sensor.pyi +1 -1
  840. homeassistant-stubs/components/waqi/sensor.pyi +1 -1
  841. homeassistant-stubs/components/water_heater/__init__.pyi +5 -5
  842. homeassistant-stubs/components/weather/__init__.pyi +1 -1
  843. homeassistant-stubs/components/weather/const.pyi +3 -3
  844. homeassistant-stubs/components/wemo/__init__.pyi +1 -1
  845. homeassistant-stubs/components/wemo/coordinator.pyi +1 -1
  846. homeassistant-stubs/components/wemo/entity.pyi +1 -1
  847. homeassistant-stubs/components/wemo/fan.pyi +1 -0
  848. homeassistant-stubs/components/wemo/models.pyi +1 -1
  849. homeassistant-stubs/components/wemo/sensor.pyi +1 -1
  850. homeassistant-stubs/components/whois/sensor.pyi +1 -1
  851. homeassistant-stubs/components/withings/__init__.pyi +1 -1
  852. homeassistant-stubs/components/withings/sensor.pyi +5 -5
  853. homeassistant-stubs/components/wiz/__init__.pyi +1 -0
  854. homeassistant-stubs/components/wiz/binary_sensor.pyi +2 -2
  855. homeassistant-stubs/components/wiz/diagnostics.pyi +2 -4
  856. homeassistant-stubs/components/wiz/light.pyi +2 -3
  857. homeassistant-stubs/components/wiz/number.pyi +3 -4
  858. homeassistant-stubs/components/wiz/sensor.pyi +2 -3
  859. homeassistant-stubs/components/wiz/switch.pyi +2 -3
  860. homeassistant-stubs/components/wled/__init__.pyi +7 -2
  861. homeassistant-stubs/components/wled/const.pyi +7 -0
  862. homeassistant-stubs/components/wled/coordinator.pyi +7 -2
  863. homeassistant-stubs/components/wled/helpers.pyi +2 -0
  864. homeassistant-stubs/components/wled/light.pyi +7 -5
  865. homeassistant-stubs/components/wled/number.pyi +2 -2
  866. homeassistant-stubs/components/wled/sensor.pyi +1 -1
  867. homeassistant-stubs/components/wled/switch.pyi +1 -1
  868. homeassistant-stubs/components/wled/update.pyi +7 -3
  869. homeassistant-stubs/components/worldclock/__init__.pyi +7 -0
  870. homeassistant-stubs/components/worldclock/config_flow.pyi +22 -0
  871. homeassistant-stubs/components/worldclock/const.pyi +8 -0
  872. homeassistant-stubs/components/worldclock/sensor.pyi +9 -4
  873. homeassistant-stubs/components/xiaomi_ble/__init__.pyi +4 -4
  874. homeassistant-stubs/components/xiaomi_ble/binary_sensor.pyi +3 -4
  875. homeassistant-stubs/components/xiaomi_ble/coordinator.pyi +2 -2
  876. homeassistant-stubs/components/xiaomi_ble/event.pyi +2 -3
  877. homeassistant-stubs/components/xiaomi_ble/sensor.pyi +3 -4
  878. homeassistant-stubs/components/xiaomi_ble/types.pyi +4 -0
  879. homeassistant-stubs/components/yalexs_ble/sensor.pyi +1 -1
  880. homeassistant-stubs/components/youtube/sensor.pyi +1 -1
  881. homeassistant-stubs/components/zwave_js/binary_sensor.pyi +2 -2
  882. homeassistant-stubs/components/zwave_js/discovery.pyi +9 -9
  883. homeassistant-stubs/components/zwave_js/discovery_data_template.pyi +7 -7
  884. homeassistant-stubs/components/zwave_js/fan.pyi +1 -0
  885. homeassistant-stubs/components/zwave_js/helpers.pyi +2 -2
  886. homeassistant-stubs/components/zwave_js/humidifier.pyi +1 -1
  887. homeassistant-stubs/components/zwave_js/migrate.pyi +1 -1
  888. homeassistant-stubs/components/zwave_js/sensor.pyi +1 -1
  889. homeassistant-stubs/components/zwave_js/services.pyi +4 -3
  890. homeassistant-stubs/config.pyi +10 -10
  891. homeassistant-stubs/config_entries.pyi +18 -14
  892. homeassistant-stubs/const.pyi +161 -160
  893. homeassistant-stubs/core.pyi +29 -26
  894. homeassistant-stubs/data_entry_flow.pyi +8 -8
  895. homeassistant-stubs/exceptions.pyi +1 -2
  896. homeassistant-stubs/helpers/aiohttp_client.pyi +6 -6
  897. homeassistant-stubs/helpers/area_registry.pyi +4 -1
  898. homeassistant-stubs/helpers/category_registry.pyi +12 -2
  899. homeassistant-stubs/helpers/condition.pyi +2 -4
  900. homeassistant-stubs/helpers/config_validation.pyi +9 -6
  901. homeassistant-stubs/helpers/data_entry_flow.pyi +1 -1
  902. homeassistant-stubs/helpers/device_registry.pyi +19 -10
  903. homeassistant-stubs/helpers/entity.pyi +7 -8
  904. homeassistant-stubs/helpers/entity_platform.pyi +1 -1
  905. homeassistant-stubs/helpers/entity_registry.pyi +16 -11
  906. homeassistant-stubs/helpers/event.pyi +7 -7
  907. homeassistant-stubs/helpers/floor_registry.pyi +9 -2
  908. homeassistant-stubs/helpers/http.pyi +2 -1
  909. homeassistant-stubs/helpers/intent.pyi +41 -38
  910. homeassistant-stubs/helpers/issue_registry.pyi +3 -3
  911. homeassistant-stubs/helpers/json.pyi +8 -2
  912. homeassistant-stubs/helpers/label_registry.pyi +9 -2
  913. homeassistant-stubs/helpers/llm.pyi +2 -1
  914. homeassistant-stubs/helpers/normalized_name_base_registry.pyi +4 -1
  915. homeassistant-stubs/helpers/recorder.pyi +10 -1
  916. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +1 -1
  917. homeassistant-stubs/helpers/script.pyi +18 -16
  918. homeassistant-stubs/helpers/selector.pyi +24 -23
  919. homeassistant-stubs/helpers/service.pyi +2 -2
  920. homeassistant-stubs/helpers/service_info/mqtt.pyi +1 -2
  921. homeassistant-stubs/helpers/significant_change.pyi +3 -2
  922. homeassistant-stubs/helpers/template.pyi +3 -3
  923. homeassistant-stubs/helpers/trace.pyi +2 -3
  924. homeassistant-stubs/helpers/trigger.pyi +1 -1
  925. homeassistant-stubs/helpers/typing.pyi +3 -3
  926. homeassistant-stubs/helpers/update_coordinator.pyi +8 -4
  927. homeassistant-stubs/runner.pyi +1 -1
  928. homeassistant-stubs/setup.pyi +8 -9
  929. homeassistant-stubs/util/event_type.pyi +1 -1
  930. homeassistant-stubs/util/hass_dict.pyi +19 -19
  931. homeassistant-stubs/util/json.pyi +4 -9
  932. homeassistant-stubs/util/language.pyi +1 -1
  933. homeassistant-stubs/util/signal_type.pyi +1 -1
  934. homeassistant-stubs/util/ssl.pyi +3 -3
  935. homeassistant-stubs/util/timeout.pyi +4 -4
  936. homeassistant-stubs/util/ulid.pyi +2 -2
  937. homeassistant-stubs/util/yaml/loader.pyi +2 -3
  938. {homeassistant_stubs-2024.7.3.dist-info → homeassistant_stubs-2024.8.0.dist-info}/METADATA +2 -2
  939. {homeassistant_stubs-2024.7.3.dist-info → homeassistant_stubs-2024.8.0.dist-info}/RECORD +943 -861
  940. homeassistant-stubs/components/laundrify/model.pyi +0 -7
  941. homeassistant-stubs/helpers/backports/__init__.pyi +0 -0
  942. homeassistant-stubs/helpers/backports/aiohttp_resolver.pyi +0 -21
  943. /homeassistant-stubs/components/knx/{helpers → storage}/__init__.pyi +0 -0
  944. /homeassistant-stubs/components/knx/{helpers → storage}/keyring.pyi +0 -0
  945. {homeassistant_stubs-2024.7.3.dist-info → homeassistant_stubs-2024.8.0.dist-info}/LICENSE +0 -0
  946. {homeassistant_stubs-2024.7.3.dist-info → homeassistant_stubs-2024.8.0.dist-info}/WHEEL +0 -0
@@ -9,6 +9,7 @@ from aiounifi.models.event import Event, EventKey
9
9
  from collections.abc import Callable as Callable, Mapping
10
10
  from dataclasses import dataclass
11
11
  from datetime import timedelta
12
+ from functools import cached_property as cached_property
12
13
  from homeassistant.components.device_tracker import DOMAIN as DOMAIN, ScannerEntity as ScannerEntity, SourceType as SourceType
13
14
  from homeassistant.core import Event as core_Event, HomeAssistant as HomeAssistant, callback as callback
14
15
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
@@ -36,7 +37,7 @@ class UnifiTrackerEntityDescription(UnifiEntityDescription[HandlerT, ApiItemT]):
36
37
  ip_address_fn: Callable[[aiounifi.Controller, str], str | None]
37
38
  is_connected_fn: Callable[[UnifiHub, str], bool]
38
39
  hostname_fn: Callable[[aiounifi.Controller, str], str | None]
39
- 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, api_handler_fn, device_info_fn, object_fn, unique_id_fn, allowed_fn, available_fn, name_fn, supported_fn, event_is_on, event_to_subscribe, should_poll, heartbeat_timedelta_fn, ip_address_fn, is_connected_fn, hostname_fn) -> None: ...
40
+ 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=..., api_handler_fn, device_info_fn, object_fn, unique_id_fn, allowed_fn=..., available_fn=..., name_fn=..., supported_fn=..., event_is_on=..., event_to_subscribe=..., should_poll=..., heartbeat_timedelta_fn, ip_address_fn, is_connected_fn, hostname_fn) -> None: ...
40
41
 
41
42
  ENTITY_DESCRIPTIONS: tuple[UnifiTrackerEntityDescription, ...]
42
43
 
@@ -45,7 +46,7 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: UnifiConfigEntry,
45
46
 
46
47
  class UnifiScannerEntity(UnifiEntity[HandlerT, ApiItemT], ScannerEntity):
47
48
  entity_description: UnifiTrackerEntityDescription
48
- _event_is_on: tuple[EventKey, ...]
49
+ _event_is_on: set[EventKey]
49
50
  _ignore_events: bool
50
51
  _is_connected: bool
51
52
  def async_initiate_state(self) -> None: ...
@@ -55,11 +56,11 @@ class UnifiScannerEntity(UnifiEntity[HandlerT, ApiItemT], ScannerEntity):
55
56
  def hostname(self) -> str | None: ...
56
57
  @property
57
58
  def ip_address(self) -> str | None: ...
58
- @property
59
+ @cached_property
59
60
  def mac_address(self) -> str: ...
60
- @property
61
+ @cached_property
61
62
  def source_type(self) -> SourceType: ...
62
- @property
63
+ @cached_property
63
64
  def unique_id(self) -> str: ...
64
65
  def _make_disconnected(self, *_: core_Event) -> None: ...
65
66
  def async_update_state(self, event: ItemEvent, obj_id: str) -> None: ...
@@ -35,16 +35,17 @@ class UnifiEntityDescription(EntityDescription, Generic[HandlerT, ApiItemT]):
35
35
  name_fn: Callable[[ApiItemT], str | None] = ...
36
36
  supported_fn: Callable[[UnifiHub, str], bool] = ...
37
37
  has_entity_name = ...
38
- event_is_on: tuple[EventKey, ...] | None = ...
38
+ event_is_on: set[EventKey] | None = ...
39
39
  event_to_subscribe: tuple[EventKey, ...] | None = ...
40
40
  should_poll: bool = ...
41
- 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, api_handler_fn, device_info_fn, object_fn, unique_id_fn, allowed_fn, available_fn, name_fn, supported_fn, event_is_on, event_to_subscribe, should_poll) -> None: ...
41
+ 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=..., api_handler_fn, device_info_fn, object_fn, unique_id_fn, allowed_fn=..., available_fn=..., name_fn=..., supported_fn=..., event_is_on=..., event_to_subscribe=..., should_poll=...) -> None: ...
42
42
 
43
43
  class UnifiEntity(Entity, Generic[HandlerT, ApiItemT], metaclass=abc.ABCMeta):
44
44
  entity_description: UnifiEntityDescription[HandlerT, ApiItemT]
45
45
  _attr_unique_id: str
46
46
  _obj_id: Incomplete
47
47
  hub: Incomplete
48
+ api: Incomplete
48
49
  _removed: bool
49
50
  _attr_available: Incomplete
50
51
  _attr_device_info: Incomplete
@@ -2,21 +2,30 @@ from ..const import LOGGER as LOGGER, UNIFI_WIRELESS_CLIENTS as UNIFI_WIRELESS_C
2
2
  from ..entity import UnifiEntity as UnifiEntity, UnifiEntityDescription as UnifiEntityDescription
3
3
  from .hub import UnifiHub as UnifiHub
4
4
  from _typeshed import Incomplete
5
+ from collections.abc import Callable as Callable, Coroutine, Sequence
5
6
  from homeassistant.const import Platform as Platform
6
7
  from homeassistant.core import callback as callback
7
8
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
8
9
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
+ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator
11
+ from typing import Any
9
12
 
10
13
  CHECK_HEARTBEAT_INTERVAL: Incomplete
14
+ POLL_INTERVAL: Incomplete
11
15
 
12
16
  class UnifiEntityLoader:
13
17
  hub: Incomplete
14
18
  api_updaters: Incomplete
19
+ polling_api_updaters: Incomplete
15
20
  wireless_clients: Incomplete
21
+ _dataUpdateCoordinator: Incomplete
22
+ _update_listener: Incomplete
16
23
  platforms: Incomplete
17
24
  known_objects: Incomplete
18
25
  def __init__(self, hub: UnifiHub) -> None: ...
19
26
  async def initialize(self) -> None: ...
27
+ async def _refresh_data(self, updaters: Sequence[Callable[[], Coroutine[Any, Any, None]]]) -> None: ...
28
+ async def _update_pollable_api_data(self) -> None: ...
20
29
  async def _refresh_api_data(self) -> None: ...
21
30
  def _restore_inactive_clients(self) -> None: ...
22
31
  def register_platform(self, async_add_entities: AddEntitiesCallback, entity_class: type[UnifiEntity], descriptions: tuple[UnifiEntityDescription, ...], requires_admin: bool = False) -> None: ...
@@ -18,7 +18,7 @@ def async_wlan_qr_code_image_fn(hub: UnifiHub, wlan: Wlan) -> bytes: ...
18
18
  class UnifiImageEntityDescription(ImageEntityDescription, UnifiEntityDescription[HandlerT, ApiItemT]):
19
19
  image_fn: Callable[[UnifiHub, ApiItemT], bytes]
20
20
  value_fn: Callable[[ApiItemT], str | None]
21
- 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, api_handler_fn, device_info_fn, object_fn, unique_id_fn, allowed_fn, available_fn, name_fn, supported_fn, event_is_on, event_to_subscribe, should_poll, image_fn, value_fn) -> None: ...
21
+ 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=..., api_handler_fn, device_info_fn, object_fn, unique_id_fn, allowed_fn=..., available_fn=..., name_fn=..., supported_fn=..., event_is_on=..., event_to_subscribe=..., should_poll=..., image_fn, value_fn) -> None: ...
22
22
 
23
23
  ENTITY_DESCRIPTIONS: tuple[UnifiImageEntityDescription, ...]
24
24
 
@@ -6,18 +6,20 @@ from _typeshed import Incomplete
6
6
  from aiounifi.interfaces.api_handlers import ItemEvent as ItemEvent
7
7
  from aiounifi.models.api import ApiItemT
8
8
  from aiounifi.models.client import Client
9
- from aiounifi.models.device import Device
9
+ from aiounifi.models.device import Device, TypedDeviceUptimeStatsWanMonitor as TypedDeviceUptimeStatsWanMonitor
10
10
  from aiounifi.models.wlan import Wlan
11
11
  from collections.abc import Callable as Callable
12
12
  from dataclasses import dataclass
13
13
  from datetime import date, datetime
14
14
  from decimal import Decimal
15
15
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass, UnitOfTemperature as UnitOfTemperature
16
- from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfDataRate as UnitOfDataRate, UnitOfPower as UnitOfPower
16
+ from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfDataRate as UnitOfDataRate, UnitOfPower as UnitOfPower, UnitOfTime as UnitOfTime
17
17
  from homeassistant.core import Event as core_Event, HomeAssistant as HomeAssistant, callback as callback
18
18
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
19
19
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
20
20
  from homeassistant.helpers.typing import StateType as StateType
21
+ from homeassistant.util import slugify as slugify
22
+ from typing import Literal
21
23
 
22
24
  def async_bandwidth_sensor_allowed_fn(hub: UnifiHub, obj_id: str) -> bool: ...
23
25
  def async_uptime_sensor_allowed_fn(hub: UnifiHub, obj_id: str) -> bool: ...
@@ -33,13 +35,17 @@ def async_device_outlet_supported_fn(hub: UnifiHub, obj_id: str) -> bool: ...
33
35
  def device_system_stats_supported_fn(stat_index: int, hub: UnifiHub, obj_id: str) -> bool: ...
34
36
  def async_client_is_connected_fn(hub: UnifiHub, obj_id: str) -> bool: ...
35
37
  def async_device_state_value_fn(hub: UnifiHub, device: Device) -> str: ...
38
+ def async_device_wan_latency_supported_fn(wan: Literal['WAN', 'WAN2'], monitor_target: str, hub: UnifiHub, obj_id: str) -> bool: ...
39
+ def async_device_wan_latency_value_fn(wan: Literal['WAN', 'WAN2'], monitor_target: str, hub: UnifiHub, device: Device) -> int | None: ...
40
+ def _device_wan_latency_monitor(wan: Literal['WAN', 'WAN2'], monitor_target: str, device: Device) -> TypedDeviceUptimeStatsWanMonitor | None: ...
41
+ def make_wan_latency_sensors() -> tuple[UnifiSensorEntityDescription, ...]: ...
36
42
 
37
43
  @dataclass(frozen=True, kw_only=True)
38
44
  class UnifiSensorEntityDescription(SensorEntityDescription, UnifiEntityDescription[HandlerT, ApiItemT]):
39
45
  value_fn: Callable[[UnifiHub, ApiItemT], datetime | float | str | None]
40
46
  is_connected_fn: Callable[[UnifiHub, str], bool] | None = ...
41
47
  value_changed_fn: Callable[[StateType | date | datetime | Decimal, datetime | float | str | None], bool] = ...
42
- 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, api_handler_fn, device_info_fn, object_fn, unique_id_fn, allowed_fn, available_fn, name_fn, supported_fn, event_is_on, event_to_subscribe, should_poll, last_reset, native_unit_of_measurement, options, state_class, suggested_display_precision, suggested_unit_of_measurement, value_fn, is_connected_fn, value_changed_fn) -> None: ...
48
+ 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=..., api_handler_fn, device_info_fn, object_fn, unique_id_fn, allowed_fn=..., available_fn=..., name_fn=..., supported_fn=..., event_is_on=..., event_to_subscribe=..., should_poll=..., last_reset=..., native_unit_of_measurement=..., options=..., state_class=..., suggested_display_precision=..., suggested_unit_of_measurement=..., value_fn, is_connected_fn=..., value_changed_fn=...) -> None: ...
43
49
 
44
50
  ENTITY_DESCRIPTIONS: tuple[UnifiSensorEntityDescription, ...]
45
51
 
@@ -23,13 +23,14 @@ CLIENT_UNBLOCKED: Incomplete
23
23
  def async_block_client_allowed_fn(hub: UnifiHub, obj_id: str) -> bool: ...
24
24
  def async_dpi_group_is_on_fn(hub: UnifiHub, dpi_group: DPIRestrictionGroup) -> bool: ...
25
25
  def async_dpi_group_device_info_fn(hub: UnifiHub, obj_id: str) -> DeviceInfo: ...
26
- def async_port_forward_device_info_fn(hub: UnifiHub, obj_id: str) -> DeviceInfo: ...
26
+ def async_unifi_network_device_info_fn(hub: UnifiHub, obj_id: str) -> DeviceInfo: ...
27
27
  async def async_block_client_control_fn(hub: UnifiHub, obj_id: str, target: bool) -> None: ...
28
28
  async def async_dpi_group_control_fn(hub: UnifiHub, obj_id: str, target: bool) -> None: ...
29
29
  def async_outlet_switching_supported_fn(hub: UnifiHub, obj_id: str) -> bool: ...
30
30
  async def async_outlet_control_fn(hub: UnifiHub, obj_id: str, target: bool) -> None: ...
31
31
  async def async_poe_port_control_fn(hub: UnifiHub, obj_id: str, target: bool) -> None: ...
32
32
  async def async_port_forward_control_fn(hub: UnifiHub, obj_id: str, target: bool) -> None: ...
33
+ async def async_traffic_rule_control_fn(hub: UnifiHub, obj_id: str, target: bool) -> None: ...
33
34
  async def async_wlan_control_fn(hub: UnifiHub, obj_id: str, target: bool) -> None: ...
34
35
 
35
36
  @dataclass(frozen=True, kw_only=True)
@@ -38,7 +39,7 @@ class UnifiSwitchEntityDescription(SwitchEntityDescription, UnifiEntityDescripti
38
39
  is_on_fn: Callable[[UnifiHub, ApiItemT], bool]
39
40
  custom_subscribe: Callable[[aiounifi.Controller], SubscriptionT] | None = ...
40
41
  only_event_for_state_change: bool = ...
41
- 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, api_handler_fn, device_info_fn, object_fn, unique_id_fn, allowed_fn, available_fn, name_fn, supported_fn, event_is_on, event_to_subscribe, should_poll, control_fn, is_on_fn, custom_subscribe, only_event_for_state_change) -> None: ...
42
+ 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=..., api_handler_fn, device_info_fn, object_fn, unique_id_fn, allowed_fn=..., available_fn=..., name_fn=..., supported_fn=..., event_is_on=..., event_to_subscribe=..., should_poll=..., control_fn, is_on_fn, custom_subscribe=..., only_event_for_state_change=...) -> None: ...
42
43
 
43
44
  ENTITY_DESCRIPTIONS: tuple[UnifiSwitchEntityDescription, ...]
44
45
 
@@ -22,7 +22,7 @@ async def async_device_control_fn(api: aiounifi.Controller, obj_id: str) -> None
22
22
  class UnifiUpdateEntityDescription(UpdateEntityDescription, UnifiEntityDescription[_HandlerT, _DataT]):
23
23
  control_fn: Callable[[aiounifi.Controller, str], Coroutine[Any, Any, None]]
24
24
  state_fn: Callable[[aiounifi.Controller, _DataT], bool]
25
- 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, api_handler_fn, device_info_fn, object_fn, unique_id_fn, allowed_fn, available_fn, name_fn, supported_fn, event_is_on, event_to_subscribe, should_poll, control_fn, state_fn) -> None: ...
25
+ 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=..., api_handler_fn, device_info_fn, object_fn, unique_id_fn, allowed_fn=..., available_fn=..., name_fn=..., supported_fn=..., event_is_on=..., event_to_subscribe=..., should_poll=..., control_fn, state_fn) -> None: ...
26
26
 
27
27
  ENTITY_DESCRIPTIONS: tuple[UnifiUpdateEntityDescription, ...]
28
28
 
@@ -1,6 +1,6 @@
1
1
  import dataclasses
2
- from .data import ProtectData as ProtectData, UFPConfigEntry as UFPConfigEntry
3
- from .entity import BaseProtectEntity as BaseProtectEntity, EventEntityMixin as EventEntityMixin, ProtectDeviceEntity as ProtectDeviceEntity, ProtectNVREntity as ProtectNVREntity, async_all_device_entities as async_all_device_entities
2
+ from .data import ProtectData as ProtectData, ProtectDeviceType as ProtectDeviceType, UFPConfigEntry as UFPConfigEntry
3
+ from .entity import BaseProtectEntity as BaseProtectEntity, EventEntityMixin as EventEntityMixin, ProtectDeviceEntity as ProtectDeviceEntity, ProtectIsOnEntity as ProtectIsOnEntity, ProtectNVREntity as ProtectNVREntity, async_all_device_entities as async_all_device_entities
4
4
  from .models import PermRequired as PermRequired, ProtectEntityDescription as ProtectEntityDescription, ProtectEventMixin as ProtectEventMixin
5
5
  from _typeshed import Incomplete
6
6
  from collections.abc import Sequence
@@ -8,18 +8,18 @@ from homeassistant.components.binary_sensor import BinarySensorDeviceClass as Bi
8
8
  from homeassistant.const import EntityCategory as EntityCategory
9
9
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
10
10
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
- from uiprotect.data import Camera, Light as Light, ModelType, NVR as NVR, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId, Sensor as Sensor
11
+ from uiprotect.data import ModelType, NVR as NVR, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, Sensor as Sensor
12
12
  from uiprotect.data.nvr import UOSDisk as UOSDisk
13
13
 
14
14
  _KEY_DOOR: str
15
15
 
16
16
  @dataclasses.dataclass(frozen=True, kw_only=True)
17
17
  class ProtectBinaryEntityDescription(ProtectEntityDescription, BinarySensorEntityDescription):
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, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm, has_required, get_ufp_enabled) -> None: ...
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=..., ufp_required_field=..., ufp_value=..., ufp_value_fn=..., ufp_enabled=..., ufp_perm=..., has_required=..., get_ufp_enabled=...) -> None: ...
19
19
 
20
20
  @dataclasses.dataclass(frozen=True, kw_only=True)
21
21
  class ProtectBinaryEventEntityDescription(ProtectEventMixin, BinarySensorEntityDescription):
22
- 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, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm, has_required, get_ufp_enabled, ufp_event_obj, ufp_obj_type) -> None: ...
22
+ 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=..., ufp_required_field=..., ufp_value=..., ufp_value_fn=..., ufp_enabled=..., ufp_perm=..., has_required=..., get_ufp_enabled=..., ufp_event_obj=..., ufp_obj_type=...) -> None: ...
23
23
 
24
24
  MOUNT_DEVICE_CLASS_MAP: Incomplete
25
25
  CAMERA_SENSORS: tuple[ProtectBinaryEntityDescription, ...]
@@ -33,18 +33,14 @@ DISK_SENSORS: tuple[ProtectBinaryEntityDescription, ...]
33
33
  _MODEL_DESCRIPTIONS: dict[ModelType, Sequence[ProtectEntityDescription]]
34
34
  _MOUNTABLE_MODEL_DESCRIPTIONS: dict[ModelType, Sequence[ProtectEntityDescription]]
35
35
 
36
- class ProtectDeviceBinarySensor(ProtectDeviceEntity, BinarySensorEntity):
37
- device: Camera | Light | Sensor
36
+ class ProtectDeviceBinarySensor(ProtectIsOnEntity, ProtectDeviceEntity, BinarySensorEntity):
38
37
  entity_description: ProtectBinaryEntityDescription
39
- _state_attrs: tuple[str, ...]
40
- _attr_is_on: Incomplete
41
- def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
42
38
 
43
39
  class MountableProtectDeviceBinarySensor(ProtectDeviceBinarySensor):
44
40
  device: Sensor
45
- _state_attrs: tuple[str, ...]
41
+ _state_attrs: Incomplete
46
42
  _attr_device_class: Incomplete
47
- def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
43
+ def _async_update_device_from_protect(self, device: ProtectDeviceType) -> None: ...
48
44
 
49
45
  class ProtectDiskBinarySensor(ProtectNVREntity, BinarySensorEntity):
50
46
  _disk: UOSDisk
@@ -53,7 +49,7 @@ class ProtectDiskBinarySensor(ProtectNVREntity, BinarySensorEntity):
53
49
  def __init__(self, data: ProtectData, device: NVR, description: ProtectBinaryEntityDescription, disk: UOSDisk) -> None: ...
54
50
  _attr_available: bool
55
51
  _attr_is_on: Incomplete
56
- def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
52
+ def _async_update_device_from_protect(self, device: ProtectDeviceType) -> None: ...
57
53
 
58
54
  class ProtectEventBinarySensor(EventEntityMixin, BinarySensorEntity):
59
55
  entity_description: ProtectBinaryEventEntityDescription
@@ -63,7 +59,7 @@ class ProtectEventBinarySensor(EventEntityMixin, BinarySensorEntity):
63
59
  def _set_event_done(self) -> None: ...
64
60
  _event: Incomplete
65
61
  _event_end: Incomplete
66
- def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
62
+ def _async_update_device_from_protect(self, device: ProtectDeviceType) -> None: ...
67
63
 
68
64
  MODEL_DESCRIPTIONS_WITH_CLASS: Incomplete
69
65
 
@@ -1,5 +1,5 @@
1
1
  from .const import DEVICES_THAT_ADOPT as DEVICES_THAT_ADOPT, DOMAIN as DOMAIN
2
- from .data import UFPConfigEntry as UFPConfigEntry
2
+ from .data import ProtectDeviceType as ProtectDeviceType, UFPConfigEntry as UFPConfigEntry
3
3
  from .entity import ProtectDeviceEntity as ProtectDeviceEntity, async_all_device_entities as async_all_device_entities
4
4
  from .models import PermRequired as PermRequired, ProtectEntityDescription as ProtectEntityDescription, ProtectSetableKeysMixin as ProtectSetableKeysMixin, T as T
5
5
  from _typeshed import Incomplete
@@ -11,17 +11,16 @@ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callb
11
11
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
12
12
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
13
13
  from typing import Final
14
- from uiprotect.data import ModelType, ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId
14
+ from uiprotect.data import ModelType, ProtectAdoptableDeviceModel
15
15
 
16
16
  _LOGGER: Incomplete
17
17
 
18
18
  @dataclass(frozen=True, kw_only=True)
19
19
  class ProtectButtonEntityDescription(ProtectSetableKeysMixin[T], ButtonEntityDescription):
20
20
  ufp_press: str | None = ...
21
- 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, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm, has_required, get_ufp_enabled, ufp_set_method, ufp_set_method_fn, ufp_press) -> None: ...
21
+ 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=..., ufp_required_field=..., ufp_value=..., ufp_value_fn=..., ufp_enabled=..., ufp_perm=..., has_required=..., get_ufp_enabled=..., ufp_set_method=..., ufp_set_method_fn=..., ufp_press=...) -> None: ...
22
22
 
23
23
  DEVICE_CLASS_CHIME_BUTTON: Final[str]
24
- KEY_ADOPT: str
25
24
  ALL_DEVICE_BUTTONS: tuple[ProtectButtonEntityDescription, ...]
26
25
  ADOPT_BUTTON: Incomplete
27
26
  SENSOR_BUTTONS: tuple[ProtectButtonEntityDescription, ...]
@@ -33,6 +32,8 @@ async def async_setup_entry(hass: HomeAssistant, entry: UFPConfigEntry, async_ad
33
32
 
34
33
  class ProtectButton(ProtectDeviceEntity, ButtonEntity):
35
34
  entity_description: ProtectButtonEntityDescription
36
- _attr_available: Incomplete
37
- def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
38
35
  async def async_press(self) -> None: ...
36
+
37
+ class ProtectAdoptButton(ProtectButton):
38
+ _attr_available: Incomplete
39
+ def _async_update_device_from_protect(self, device: ProtectDeviceType) -> None: ...
@@ -1,15 +1,15 @@
1
1
  from .const import ATTR_BITRATE as ATTR_BITRATE, ATTR_CHANNEL_ID as ATTR_CHANNEL_ID, ATTR_FPS as ATTR_FPS, ATTR_HEIGHT as ATTR_HEIGHT, ATTR_WIDTH as ATTR_WIDTH, DOMAIN as DOMAIN
2
- from .data import ProtectData as ProtectData, UFPConfigEntry as UFPConfigEntry
2
+ from .data import ProtectData as ProtectData, ProtectDeviceType as ProtectDeviceType, UFPConfigEntry as UFPConfigEntry
3
3
  from .entity import ProtectDeviceEntity as ProtectDeviceEntity
4
4
  from .utils import get_camera_base_name as get_camera_base_name
5
5
  from _typeshed import Incomplete
6
+ from collections.abc import Generator
6
7
  from homeassistant.components.camera import Camera as Camera, CameraEntityFeature as CameraEntityFeature
7
8
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
8
9
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
9
10
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
11
  from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity
11
- from typing_extensions import Generator
12
- from uiprotect.data import Camera as UFPCamera, CameraChannel as CameraChannel, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId
12
+ from uiprotect.data import Camera as UFPCamera, CameraChannel as CameraChannel, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel
13
13
 
14
14
  _LOGGER: Incomplete
15
15
 
@@ -38,7 +38,7 @@ class ProtectCamera(ProtectDeviceEntity, Camera):
38
38
  _attr_is_recording: Incomplete
39
39
  _attr_available: Incomplete
40
40
  _attr_extra_state_attributes: Incomplete
41
- def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
41
+ def _async_update_device_from_protect(self, device: ProtectDeviceType) -> None: ...
42
42
  async def async_camera_image(self, width: int | None = None, height: int | None = None) -> bytes | None: ...
43
43
  async def stream_source(self) -> str | None: ...
44
44
  async def async_enable_motion_detection(self) -> None: ...
@@ -1,20 +1,19 @@
1
1
  from .const import AUTH_RETRIES as AUTH_RETRIES, CONF_DISABLE_RTSP as CONF_DISABLE_RTSP, CONF_MAX_MEDIA as CONF_MAX_MEDIA, DEFAULT_MAX_MEDIA as DEFAULT_MAX_MEDIA, DEVICES_THAT_ADOPT as DEVICES_THAT_ADOPT, DISPATCH_ADD as DISPATCH_ADD, DISPATCH_ADOPT as DISPATCH_ADOPT, DISPATCH_CHANNELS as DISPATCH_CHANNELS, DOMAIN as DOMAIN
2
2
  from .utils import async_get_devices_by_type as async_get_devices_by_type
3
3
  from _typeshed import Incomplete
4
- from collections.abc import Callable as Callable, Iterable
4
+ from collections.abc import Callable as Callable, Generator, Iterable
5
5
  from datetime import datetime, timedelta
6
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
7
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HomeAssistant as HomeAssistant, callback as callback
8
8
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect, async_dispatcher_send as async_dispatcher_send
9
9
  from homeassistant.helpers.event import async_track_time_interval as async_track_time_interval
10
10
  from typing import Any
11
- from typing_extensions import Generator
12
11
  from uiprotect import ProtectApiClient as ProtectApiClient
13
12
  from uiprotect.data import Camera, ModelType, NVR, ProtectAdoptableDeviceModel, WSSubscriptionMessage as WSSubscriptionMessage
14
13
  from uiprotect.websocket import WebsocketState
15
14
 
16
15
  _LOGGER: Incomplete
17
- ProtectDeviceType: Incomplete
16
+ ProtectDeviceType = ProtectAdoptableDeviceModel | NVR
18
17
  UFPConfigEntry = ConfigEntry[ProtectData]
19
18
 
20
19
  def async_last_update_was_successful(hass: HomeAssistant, entry: UFPConfigEntry) -> bool: ...
@@ -1,5 +1,5 @@
1
1
  from .const import ATTR_EVENT_ID as ATTR_EVENT_ID, ATTR_EVENT_SCORE as ATTR_EVENT_SCORE, DEFAULT_ATTRIBUTION as DEFAULT_ATTRIBUTION, DEFAULT_BRAND as DEFAULT_BRAND, DOMAIN as DOMAIN
2
- from .data import ProtectData as ProtectData
2
+ from .data import ProtectData as ProtectData, ProtectDeviceType as ProtectDeviceType
3
3
  from .models import PermRequired as PermRequired, ProtectEntityDescription as ProtectEntityDescription, ProtectEventMixin as ProtectEventMixin
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Callable as Callable, Sequence
@@ -7,7 +7,7 @@ from datetime import datetime
7
7
  from homeassistant.core import callback as callback
8
8
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
9
9
  from homeassistant.helpers.entity import Entity as Entity, EntityDescription as EntityDescription
10
- from uiprotect.data import Event as Event, ModelType, NVR as NVR, ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId
10
+ from uiprotect.data import Event as Event, ModelType, NVR as NVR, ProtectAdoptableDeviceModel
11
11
 
12
12
  _LOGGER: Incomplete
13
13
 
@@ -19,7 +19,7 @@ def _combine_model_descs(model_type: ModelType, model_descriptions: dict[ModelTy
19
19
  def async_all_device_entities(data: ProtectData, klass: type[BaseProtectEntity], model_descriptions: dict[ModelType, Sequence[ProtectEntityDescription]] | None = None, all_descs: Sequence[ProtectEntityDescription] | None = None, unadopted_descs: list[ProtectEntityDescription] | None = None, ufp_device: ProtectAdoptableDeviceModel | None = None) -> list[BaseProtectEntity]: ...
20
20
 
21
21
  class BaseProtectEntity(Entity):
22
- device: ProtectAdoptableDeviceModel | NVR
22
+ device: ProtectDeviceType
23
23
  _attr_should_poll: bool
24
24
  _attr_attribution = DEFAULT_ATTRIBUTION
25
25
  _state_attrs: tuple[str, ...]
@@ -30,24 +30,28 @@ class BaseProtectEntity(Entity):
30
30
  _attr_name: Incomplete
31
31
  entity_description: Incomplete
32
32
  _state_getters: Incomplete
33
- def __init__(self, data: ProtectData, device: ProtectAdoptableDeviceModel | NVR, description: EntityDescription | None = None) -> None: ...
33
+ def __init__(self, data: ProtectData, device: ProtectDeviceType, description: EntityDescription | None = None) -> None: ...
34
34
  async def async_update(self) -> None: ...
35
- _attr_device_info: Incomplete
36
35
  def _async_set_device_info(self) -> None: ...
37
36
  _attr_available: Incomplete
38
- def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
39
- def _async_updated_event(self, device: ProtectAdoptableDeviceModel | NVR) -> None: ...
37
+ def _async_update_device_from_protect(self, device: ProtectDeviceType) -> None: ...
38
+ def _async_updated_event(self, device: ProtectDeviceType) -> None: ...
40
39
  async def async_added_to_hass(self) -> None: ...
41
40
 
41
+ class ProtectIsOnEntity(BaseProtectEntity):
42
+ _state_attrs: tuple[str, ...]
43
+ _attr_is_on: bool | None
44
+ entity_description: ProtectEntityDescription
45
+ def _async_update_device_from_protect(self, device: ProtectAdoptableDeviceModel | NVR) -> None: ...
46
+
42
47
  class ProtectDeviceEntity(BaseProtectEntity):
43
- device: ProtectAdoptableDeviceModel
48
+ _attr_device_info: Incomplete
49
+ def _async_set_device_info(self) -> None: ...
44
50
 
45
51
  class ProtectNVREntity(BaseProtectEntity):
46
52
  device: NVR
47
53
  _attr_device_info: Incomplete
48
54
  def _async_set_device_info(self) -> None: ...
49
- _attr_available: Incomplete
50
- def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
51
55
 
52
56
  class EventEntityMixin(ProtectDeviceEntity):
53
57
  entity_description: ProtectEventMixin
@@ -0,0 +1,25 @@
1
+ import dataclasses
2
+ from .const import ATTR_EVENT_ID as ATTR_EVENT_ID
3
+ from .data import ProtectData as ProtectData, ProtectDeviceType as ProtectDeviceType, UFPConfigEntry as UFPConfigEntry
4
+ from .entity import EventEntityMixin as EventEntityMixin, ProtectDeviceEntity as ProtectDeviceEntity
5
+ from .models import ProtectEventMixin as ProtectEventMixin
6
+ from _typeshed import Incomplete
7
+ from homeassistant.components.event import EventDeviceClass as EventDeviceClass, EventEntity as EventEntity, EventEntityDescription as EventEntityDescription
8
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
+ from uiprotect.data import ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel
11
+
12
+ @dataclasses.dataclass(frozen=True, kw_only=True)
13
+ class ProtectEventEntityDescription(ProtectEventMixin, EventEntityDescription):
14
+ 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=..., event_types=..., ufp_required_field=..., ufp_value=..., ufp_value_fn=..., ufp_enabled=..., ufp_perm=..., has_required=..., get_ufp_enabled=..., ufp_event_obj=..., ufp_obj_type=...) -> None: ...
15
+
16
+ EVENT_DESCRIPTIONS: tuple[ProtectEventEntityDescription, ...]
17
+
18
+ class ProtectDeviceEventEntity(EventEntityMixin, ProtectDeviceEntity, EventEntity):
19
+ entity_description: ProtectEventEntityDescription
20
+ _event: Incomplete
21
+ _event_end: Incomplete
22
+ def _async_update_device_from_protect(self, device: ProtectDeviceType) -> None: ...
23
+
24
+ def _async_event_entities(data: ProtectData, ufp_device: ProtectAdoptableDeviceModel | None = None) -> list[ProtectDeviceEntity]: ...
25
+ async def async_setup_entry(hass: HomeAssistant, entry: UFPConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
@@ -1,11 +1,11 @@
1
- from .data import UFPConfigEntry as UFPConfigEntry
1
+ from .data import ProtectDeviceType as ProtectDeviceType, UFPConfigEntry as UFPConfigEntry
2
2
  from .entity import ProtectDeviceEntity as ProtectDeviceEntity
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.components.light import ATTR_BRIGHTNESS as ATTR_BRIGHTNESS, ColorMode as ColorMode, LightEntity as LightEntity
5
5
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
6
6
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
7
7
  from typing import Any
8
- from uiprotect.data import Light as Light, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId
8
+ from uiprotect.data import Light as Light, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel
9
9
 
10
10
  _LOGGER: Incomplete
11
11
 
@@ -21,6 +21,6 @@ class ProtectLight(ProtectDeviceEntity, LightEntity):
21
21
  _state_attrs: Incomplete
22
22
  _attr_is_on: Incomplete
23
23
  _attr_brightness: Incomplete
24
- def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
24
+ def _async_update_device_from_protect(self, device: ProtectDeviceType) -> None: ...
25
25
  async def async_turn_on(self, **kwargs: Any) -> None: ...
26
26
  async def async_turn_off(self, **kwargs: Any) -> None: ...
@@ -1,11 +1,11 @@
1
- from .data import UFPConfigEntry as UFPConfigEntry
1
+ from .data import ProtectDeviceType as ProtectDeviceType, UFPConfigEntry as UFPConfigEntry
2
2
  from .entity import ProtectDeviceEntity as ProtectDeviceEntity
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.components.lock import LockEntity as LockEntity, LockEntityDescription as LockEntityDescription
5
5
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
6
6
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
7
7
  from typing import Any
8
- from uiprotect.data import Doorlock, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId
8
+ from uiprotect.data import Doorlock, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel
9
9
 
10
10
  _LOGGER: Incomplete
11
11
 
@@ -20,6 +20,6 @@ class ProtectLock(ProtectDeviceEntity, LockEntity):
20
20
  _attr_is_unlocking: bool
21
21
  _attr_is_jammed: bool
22
22
  _attr_available: bool
23
- def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
23
+ def _async_update_device_from_protect(self, device: ProtectDeviceType) -> None: ...
24
24
  async def async_unlock(self, **kwargs: Any) -> None: ...
25
25
  async def async_lock(self, **kwargs: Any) -> None: ...
@@ -1,4 +1,4 @@
1
- from .data import UFPConfigEntry as UFPConfigEntry
1
+ from .data import ProtectDeviceType as ProtectDeviceType, UFPConfigEntry as UFPConfigEntry
2
2
  from .entity import ProtectDeviceEntity as ProtectDeviceEntity
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.components import media_source as media_source
@@ -7,7 +7,7 @@ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callb
7
7
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
8
8
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
9
9
  from typing import Any
10
- from uiprotect.data import Camera, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId
10
+ from uiprotect.data import Camera, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel
11
11
 
12
12
  _LOGGER: Incomplete
13
13
  _SPEAKER_DESCRIPTION: Incomplete
@@ -23,7 +23,7 @@ class ProtectMediaPlayer(ProtectDeviceEntity, MediaPlayerEntity):
23
23
  _attr_volume_level: Incomplete
24
24
  _attr_state: Incomplete
25
25
  _attr_available: Incomplete
26
- def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
26
+ def _async_update_device_from_protect(self, device: ProtectDeviceType) -> None: ...
27
27
  async def async_set_volume_level(self, volume: float) -> None: ...
28
28
  async def async_media_stop(self) -> None: ...
29
29
  async def async_play_media(self, media_type: MediaType | str, media_id: str, **kwargs: Any) -> None: ...
@@ -18,20 +18,20 @@ THUMBNAIL_WIDTH: int
18
18
  THUMBNAIL_HEIGHT: int
19
19
 
20
20
  class SimpleEventType(str, Enum):
21
- ALL: str
22
- RING: str
23
- MOTION: str
24
- SMART: str
25
- AUDIO: str
21
+ ALL = 'all'
22
+ RING = 'ring'
23
+ MOTION = 'motion'
24
+ SMART = 'smart'
25
+ AUDIO = 'audio'
26
26
 
27
27
  class IdentifierType(str, Enum):
28
- EVENT: str
29
- EVENT_THUMB: str
30
- BROWSE: str
28
+ EVENT = 'event'
29
+ EVENT_THUMB = 'eventthumb'
30
+ BROWSE = 'browse'
31
31
 
32
32
  class IdentifierTimeType(str, Enum):
33
- RECENT: str
34
- RANGE: str
33
+ RECENT = 'recent'
34
+ RANGE = 'range'
35
35
 
36
36
  EVENT_MAP: dict[SimpleEventType, set[EventType]]
37
37
  EVENT_NAME_MAP: Incomplete
@@ -10,9 +10,9 @@ _LOGGER: Incomplete
10
10
  T = TypeVar('T', bound=ProtectAdoptableDeviceModel | NVR)
11
11
 
12
12
  class PermRequired(int, Enum):
13
- NO_WRITE: int
14
- WRITE: int
15
- DELETE: int
13
+ NO_WRITE = 1
14
+ WRITE = 2
15
+ DELETE = 3
16
16
 
17
17
  @dataclass(frozen=True, kw_only=True)
18
18
  class ProtectEntityDescription(EntityDescription, Generic[T]):
@@ -25,7 +25,7 @@ class ProtectEntityDescription(EntityDescription, Generic[T]):
25
25
  get_ufp_enabled: Callable[[T], bool] | None = ...
26
26
  def get_ufp_value(self, obj: T) -> Any: ...
27
27
  def __post_init__(self) -> None: ...
28
- 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, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm, has_required, get_ufp_enabled) -> None: ...
28
+ 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=..., ufp_required_field=..., ufp_value=..., ufp_value_fn=..., ufp_enabled=..., ufp_perm=..., has_required=..., get_ufp_enabled=...) -> None: ...
29
29
 
30
30
  @dataclass(frozen=True, kw_only=True)
31
31
  class ProtectEventMixin(ProtectEntityDescription[T]):
@@ -34,11 +34,11 @@ class ProtectEventMixin(ProtectEntityDescription[T]):
34
34
  def get_event_obj(self, obj: T) -> Event | None: ...
35
35
  def has_matching_smart(self, event: Event) -> bool: ...
36
36
  def __post_init__(self) -> 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, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm, has_required, get_ufp_enabled, ufp_event_obj, ufp_obj_type) -> 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=..., ufp_required_field=..., ufp_value=..., ufp_value_fn=..., ufp_enabled=..., ufp_perm=..., has_required=..., get_ufp_enabled=..., ufp_event_obj=..., ufp_obj_type=...) -> None: ...
38
38
 
39
39
  @dataclass(frozen=True, kw_only=True)
40
40
  class ProtectSetableKeysMixin(ProtectEntityDescription[T]):
41
41
  ufp_set_method: str | None = ...
42
42
  ufp_set_method_fn: Callable[[T, Any], Coroutine[Any, Any, None]] | None = ...
43
43
  async def ufp_set(self, obj: T, value: Any) -> None: ...
44
- 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, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm, has_required, get_ufp_enabled, ufp_set_method, ufp_set_method_fn) -> None: ...
44
+ 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=..., ufp_required_field=..., ufp_value=..., ufp_value_fn=..., ufp_enabled=..., ufp_perm=..., has_required=..., get_ufp_enabled=..., ufp_set_method=..., ufp_set_method_fn=...) -> None: ...
@@ -1,4 +1,4 @@
1
- from .data import ProtectData as ProtectData, UFPConfigEntry as UFPConfigEntry
1
+ from .data import ProtectData as ProtectData, ProtectDeviceType as ProtectDeviceType, UFPConfigEntry as UFPConfigEntry
2
2
  from .entity import ProtectDeviceEntity as ProtectDeviceEntity, async_all_device_entities as async_all_device_entities
3
3
  from .models import PermRequired as PermRequired, ProtectEntityDescription as ProtectEntityDescription, ProtectSetableKeysMixin as ProtectSetableKeysMixin, T as T
4
4
  from _typeshed import Incomplete
@@ -8,14 +8,14 @@ from homeassistant.components.number import NumberEntity as NumberEntity, Number
8
8
  from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfTime as UnitOfTime
9
9
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
10
10
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
- from uiprotect.data import Camera as Camera, Doorlock, Light, ModelType, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId
11
+ from uiprotect.data import Camera as Camera, Doorlock, Light, ModelType, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel
12
12
 
13
13
  @dataclass(frozen=True, kw_only=True)
14
14
  class ProtectNumberEntityDescription(ProtectSetableKeysMixin[T], NumberEntityDescription):
15
15
  ufp_max: int | float
16
16
  ufp_min: int | float
17
17
  ufp_step: int | float
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, max_value, min_value, mode, native_max_value, native_min_value, native_step, native_unit_of_measurement, step, ufp_required_field, ufp_value, ufp_value_fn, ufp_enabled, ufp_perm, has_required, get_ufp_enabled, ufp_set_method, ufp_set_method_fn, ufp_max, ufp_min, ufp_step) -> None: ...
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=..., max_value=..., min_value=..., mode=..., native_max_value=..., native_min_value=..., native_step=..., native_unit_of_measurement=..., step=..., ufp_required_field=..., ufp_value=..., ufp_value_fn=..., ufp_enabled=..., ufp_perm=..., has_required=..., get_ufp_enabled=..., ufp_set_method=..., ufp_set_method_fn=..., ufp_max, ufp_min, ufp_step) -> None: ...
19
19
 
20
20
  def _get_pir_duration(obj: Light) -> int: ...
21
21
  async def _set_pir_duration(obj: Light, value: float) -> None: ...
@@ -41,5 +41,5 @@ class ProtectNumbers(ProtectDeviceEntity, NumberEntity):
41
41
  _attr_native_step: Incomplete
42
42
  def __init__(self, data: ProtectData, device: Camera | Light, description: ProtectNumberEntityDescription) -> None: ...
43
43
  _attr_native_value: Incomplete
44
- def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
44
+ def _async_update_device_from_protect(self, device: ProtectDeviceType) -> None: ...
45
45
  async def async_set_native_value(self, value: float) -> None: ...