homeassistant-stubs 2024.11.2__py3-none-any.whl → 2024.12.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 (393) hide show
  1. homeassistant-stubs/__main__.pyi +1 -0
  2. homeassistant-stubs/auth/mfa_modules/totp.pyi +4 -4
  3. homeassistant-stubs/backup_restore.pyi +17 -0
  4. homeassistant-stubs/components/airnow/config_flow.pyi +3 -3
  5. homeassistant-stubs/components/alarm_control_panel/__init__.pyi +2 -2
  6. homeassistant-stubs/components/amberelectric/config_flow.pyi +1 -1
  7. homeassistant-stubs/components/amberelectric/coordinator.pyi +7 -7
  8. homeassistant-stubs/components/amberelectric/sensor.pyi +3 -4
  9. homeassistant-stubs/components/analytics_insights/config_flow.pyi +3 -3
  10. homeassistant-stubs/components/androidtv/config_flow.pyi +2 -2
  11. homeassistant-stubs/components/androidtv_remote/config_flow.pyi +2 -2
  12. homeassistant-stubs/components/apsystems/coordinator.pyi +1 -1
  13. homeassistant-stubs/components/assist_pipeline/audio_enhancer.pyi +2 -3
  14. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +4 -2
  15. homeassistant-stubs/components/assist_pipeline/vad.pyi +7 -4
  16. homeassistant-stubs/components/axis/config_flow.pyi +2 -2
  17. homeassistant-stubs/components/backup/http.pyi +7 -3
  18. homeassistant-stubs/components/backup/manager.pyi +8 -0
  19. homeassistant-stubs/components/backup/websocket.pyi +1 -0
  20. homeassistant-stubs/components/bang_olufsen/const.pyi +1 -6
  21. homeassistant-stubs/components/bang_olufsen/diagnostics.pyi +6 -0
  22. homeassistant-stubs/components/bang_olufsen/media_player.pyi +11 -5
  23. homeassistant-stubs/components/bang_olufsen/websocket.pyi +2 -2
  24. homeassistant-stubs/components/bmw_connected_drive/config_flow.pyi +7 -3
  25. homeassistant-stubs/components/bmw_connected_drive/const.pyi +3 -0
  26. homeassistant-stubs/components/brother/sensor.pyi +0 -1
  27. homeassistant-stubs/components/cambridge_audio/__init__.pyi +1 -0
  28. homeassistant-stubs/components/cambridge_audio/config_flow.pyi +1 -0
  29. homeassistant-stubs/components/cambridge_audio/media_player.pyi +1 -0
  30. homeassistant-stubs/components/cambridge_audio/select.pyi +3 -1
  31. homeassistant-stubs/components/cambridge_audio/switch.pyi +3 -1
  32. homeassistant-stubs/components/camera/__init__.pyi +5 -3
  33. homeassistant-stubs/components/camera/webrtc.pyi +10 -6
  34. homeassistant-stubs/components/canary/config_flow.pyi +0 -2
  35. homeassistant-stubs/components/climate/__init__.pyi +10 -3
  36. homeassistant-stubs/components/climate/const.pyi +6 -0
  37. homeassistant-stubs/components/climate/reproduce_state.pyi +1 -1
  38. homeassistant-stubs/components/climate/significant_change.pyi +1 -1
  39. homeassistant-stubs/components/cloud/prefs.pyi +1 -1
  40. homeassistant-stubs/components/crownstone/config_flow.pyi +1 -2
  41. homeassistant-stubs/components/deconz/config_flow.pyi +1 -5
  42. homeassistant-stubs/components/demo/climate.pyi +8 -1
  43. homeassistant-stubs/components/demo/config_flow.pyi +0 -1
  44. homeassistant-stubs/components/discovergy/config_flow.pyi +2 -5
  45. homeassistant-stubs/components/dlna_dmr/config_flow.pyi +0 -2
  46. homeassistant-stubs/components/dnsip/config_flow.pyi +2 -2
  47. homeassistant-stubs/components/doorbird/config_flow.pyi +0 -2
  48. homeassistant-stubs/components/dsmr/config_flow.pyi +0 -2
  49. homeassistant-stubs/components/ecovacs/sensor.pyi +1 -1
  50. homeassistant-stubs/components/elevenlabs/config_flow.pyi +2 -2
  51. homeassistant-stubs/components/enphase_envoy/config_flow.pyi +2 -2
  52. homeassistant-stubs/components/eq3btsmart/__init__.pyi +7 -6
  53. homeassistant-stubs/components/eq3btsmart/binary_sensor.pyi +26 -0
  54. homeassistant-stubs/components/eq3btsmart/climate.pyi +4 -15
  55. homeassistant-stubs/components/eq3btsmart/const.pyi +14 -0
  56. homeassistant-stubs/components/eq3btsmart/entity.pyi +17 -3
  57. homeassistant-stubs/components/eq3btsmart/models.pyi +1 -3
  58. homeassistant-stubs/components/eq3btsmart/number.pyi +33 -0
  59. homeassistant-stubs/components/eq3btsmart/sensor.pyi +28 -0
  60. homeassistant-stubs/components/eq3btsmart/switch.pyi +30 -0
  61. homeassistant-stubs/components/esphome/assist_satellite.pyi +1 -0
  62. homeassistant-stubs/components/esphome/config_flow.pyi +0 -2
  63. homeassistant-stubs/components/esphome/entry_data.pyi +8 -1
  64. homeassistant-stubs/components/esphome/ffmpeg_proxy.pyi +1 -0
  65. homeassistant-stubs/components/esphome/media_player.pyi +2 -1
  66. homeassistant-stubs/components/esphome/select.pyi +18 -1
  67. homeassistant-stubs/components/fan/__init__.pyi +1 -1
  68. homeassistant-stubs/components/feedreader/config_flow.pyi +2 -2
  69. homeassistant-stubs/components/filesize/config_flow.pyi +2 -5
  70. homeassistant-stubs/components/fitbit/config_flow.pyi +0 -1
  71. homeassistant-stubs/components/fitbit/sensor.pyi +12 -15
  72. homeassistant-stubs/components/flux_led/config_flow.pyi +1 -3
  73. homeassistant-stubs/components/forecast_solar/config_flow.pyi +0 -2
  74. homeassistant-stubs/components/fritz/config_flow.pyi +4 -4
  75. homeassistant-stubs/components/fritzbox/config_flow.pyi +1 -1
  76. homeassistant-stubs/components/fritzbox_callmonitor/config_flow.pyi +0 -2
  77. homeassistant-stubs/components/fully_kiosk/__init__.pyi +3 -2
  78. homeassistant-stubs/components/fully_kiosk/binary_sensor.pyi +2 -3
  79. homeassistant-stubs/components/fully_kiosk/button.pyi +2 -3
  80. homeassistant-stubs/components/fully_kiosk/camera.pyi +2 -3
  81. homeassistant-stubs/components/fully_kiosk/diagnostics.pyi +2 -3
  82. homeassistant-stubs/components/fully_kiosk/image.pyi +2 -3
  83. homeassistant-stubs/components/fully_kiosk/media_player.pyi +3 -3
  84. homeassistant-stubs/components/fully_kiosk/notify.pyi +2 -3
  85. homeassistant-stubs/components/fully_kiosk/number.pyi +2 -3
  86. homeassistant-stubs/components/fully_kiosk/sensor.pyi +2 -3
  87. homeassistant-stubs/components/fully_kiosk/switch.pyi +2 -3
  88. homeassistant-stubs/components/fyta/__init__.pyi +1 -0
  89. homeassistant-stubs/components/glances/__init__.pyi +0 -2
  90. homeassistant-stubs/components/go2rtc/__init__.pyi +2 -2
  91. homeassistant-stubs/components/google/config_flow.pyi +0 -2
  92. homeassistant-stubs/components/google_assistant_sdk/config_flow.pyi +0 -2
  93. homeassistant-stubs/components/google_cloud/config_flow.pyi +2 -2
  94. homeassistant-stubs/components/google_cloud/helpers.pyi +1 -1
  95. homeassistant-stubs/components/here_travel_time/config_flow.pyi +1 -2
  96. homeassistant-stubs/components/history/__init__.pyi +1 -1
  97. homeassistant-stubs/components/history/helpers.pyi +1 -2
  98. homeassistant-stubs/components/history/websocket_api.pyi +1 -1
  99. homeassistant-stubs/components/history_stats/data.pyi +1 -0
  100. homeassistant-stubs/components/homeassistant_hardware/firmware_config_flow.pyi +4 -3
  101. homeassistant-stubs/components/homeassistant_hardware/silabs_multiprotocol_addon.pyi +0 -1
  102. homeassistant-stubs/components/homekit/config_flow.pyi +1 -2
  103. homeassistant-stubs/components/homewizard/button.pyi +2 -0
  104. homeassistant-stubs/components/homewizard/config_flow.pyi +5 -1
  105. homeassistant-stubs/components/homewizard/const.pyi +1 -1
  106. homeassistant-stubs/components/homewizard/coordinator.pyi +3 -3
  107. homeassistant-stubs/components/homewizard/number.pyi +2 -0
  108. homeassistant-stubs/components/homewizard/sensor.pyi +1 -1
  109. homeassistant-stubs/components/homewizard/switch.pyi +4 -2
  110. homeassistant-stubs/components/huawei_lte/config_flow.pyi +0 -2
  111. homeassistant-stubs/components/husqvarna_automower/api.pyi +6 -0
  112. homeassistant-stubs/components/husqvarna_automower/binary_sensor.pyi +7 -0
  113. homeassistant-stubs/components/husqvarna_automower/button.pyi +1 -0
  114. homeassistant-stubs/components/husqvarna_automower/config_flow.pyi +2 -1
  115. homeassistant-stubs/components/husqvarna_automower/lawn_mower.pyi +2 -1
  116. homeassistant-stubs/components/husqvarna_automower/number.pyi +1 -0
  117. homeassistant-stubs/components/husqvarna_automower/select.pyi +1 -0
  118. homeassistant-stubs/components/husqvarna_automower/switch.pyi +1 -0
  119. homeassistant-stubs/components/hydrawise/sensor.pyi +2 -9
  120. homeassistant-stubs/components/hyperion/config_flow.pyi +0 -2
  121. homeassistant-stubs/components/ibeacon/config_flow.pyi +0 -3
  122. homeassistant-stubs/components/imap/config_flow.pyi +3 -3
  123. homeassistant-stubs/components/imap/sensor.pyi +1 -1
  124. homeassistant-stubs/components/intent/timers.pyi +6 -0
  125. homeassistant-stubs/components/islamic_prayer_times/config_flow.pyi +0 -3
  126. homeassistant-stubs/components/isy994/config_flow.pyi +0 -2
  127. homeassistant-stubs/components/jellyfin/config_flow.pyi +3 -3
  128. homeassistant-stubs/components/jewish_calendar/__init__.pyi +6 -17
  129. homeassistant-stubs/components/jewish_calendar/binary_sensor.pyi +2 -4
  130. homeassistant-stubs/components/jewish_calendar/config_flow.pyi +3 -4
  131. homeassistant-stubs/components/jewish_calendar/entity.pyi +15 -4
  132. homeassistant-stubs/components/jewish_calendar/sensor.pyi +3 -5
  133. homeassistant-stubs/components/knx/__init__.pyi +1 -1
  134. homeassistant-stubs/components/knx/config_flow.pyi +0 -1
  135. homeassistant-stubs/components/knx/light.pyi +3 -3
  136. homeassistant-stubs/components/knx/telegrams.pyi +1 -0
  137. homeassistant-stubs/components/knx/websocket.pyi +1 -0
  138. homeassistant-stubs/components/kraken/config_flow.pyi +0 -3
  139. homeassistant-stubs/components/lamarzocco/__init__.pyi +1 -1
  140. homeassistant-stubs/components/lamarzocco/binary_sensor.pyi +1 -1
  141. homeassistant-stubs/components/lamarzocco/button.pyi +7 -3
  142. homeassistant-stubs/components/lamarzocco/calendar.pyi +1 -1
  143. homeassistant-stubs/components/lamarzocco/config_flow.pyi +10 -6
  144. homeassistant-stubs/components/lamarzocco/coordinator.pyi +3 -3
  145. homeassistant-stubs/components/lamarzocco/diagnostics.pyi +1 -1
  146. homeassistant-stubs/components/lamarzocco/entity.pyi +3 -2
  147. homeassistant-stubs/components/lamarzocco/number.pyi +5 -3
  148. homeassistant-stubs/components/lamarzocco/select.pyi +3 -2
  149. homeassistant-stubs/components/lamarzocco/sensor.pyi +1 -1
  150. homeassistant-stubs/components/lamarzocco/switch.pyi +4 -2
  151. homeassistant-stubs/components/lamarzocco/update.pyi +3 -1
  152. homeassistant-stubs/components/lcn/__init__.pyi +4 -4
  153. homeassistant-stubs/components/lcn/config_flow.pyi +0 -4
  154. homeassistant-stubs/components/lcn/helpers.pyi +2 -4
  155. homeassistant-stubs/components/lcn/schemas.pyi +2 -13
  156. homeassistant-stubs/components/lcn/services.pyi +2 -0
  157. homeassistant-stubs/components/lektrico/binary_sensor.pyi +27 -0
  158. homeassistant-stubs/components/linkplay/button.pyi +28 -0
  159. homeassistant-stubs/components/linkplay/diagnostics.pyi +5 -0
  160. homeassistant-stubs/components/linkplay/entity.pyi +16 -0
  161. homeassistant-stubs/components/linkplay/media_player.pyi +3 -8
  162. homeassistant-stubs/components/linkplay/utils.pyi +12 -0
  163. homeassistant-stubs/components/litejet/config_flow.pyi +0 -3
  164. homeassistant-stubs/components/matter/adapter.pyi +1 -0
  165. homeassistant-stubs/components/matter/const.pyi +1 -0
  166. homeassistant-stubs/components/matter/discovery.pyi +1 -0
  167. homeassistant-stubs/components/matter/entity.pyi +2 -1
  168. homeassistant-stubs/components/matter/models.pyi +4 -2
  169. homeassistant-stubs/components/media_extractor/__init__.pyi +1 -2
  170. homeassistant-stubs/components/media_extractor/config_flow.pyi +0 -1
  171. homeassistant-stubs/components/mikrotik/config_flow.pyi +0 -3
  172. homeassistant-stubs/components/mjpeg/config_flow.pyi +0 -3
  173. homeassistant-stubs/components/mold_indicator/sensor.pyi +3 -5
  174. homeassistant-stubs/components/monzo/coordinator.pyi +1 -1
  175. homeassistant-stubs/components/mopeka/config_flow.pyi +0 -2
  176. homeassistant-stubs/components/mqtt/__init__.pyi +1 -0
  177. homeassistant-stubs/components/mqtt/alarm_control_panel.pyi +1 -0
  178. homeassistant-stubs/components/mqtt/binary_sensor.pyi +1 -0
  179. homeassistant-stubs/components/mqtt/button.pyi +1 -0
  180. homeassistant-stubs/components/mqtt/camera.pyi +1 -0
  181. homeassistant-stubs/components/mqtt/climate.pyi +1 -0
  182. homeassistant-stubs/components/mqtt/config_flow.pyi +3 -4
  183. homeassistant-stubs/components/mqtt/cover.pyi +1 -0
  184. homeassistant-stubs/components/mqtt/device_tracker.pyi +1 -0
  185. homeassistant-stubs/components/mqtt/entity.pyi +1 -0
  186. homeassistant-stubs/components/mqtt/event.pyi +1 -0
  187. homeassistant-stubs/components/mqtt/fan.pyi +1 -0
  188. homeassistant-stubs/components/mqtt/humidifier.pyi +1 -0
  189. homeassistant-stubs/components/mqtt/image.pyi +1 -0
  190. homeassistant-stubs/components/mqtt/lawn_mower.pyi +1 -0
  191. homeassistant-stubs/components/mqtt/light/__init__.pyi +2 -0
  192. homeassistant-stubs/components/mqtt/lock.pyi +1 -0
  193. homeassistant-stubs/components/mqtt/notify.pyi +1 -0
  194. homeassistant-stubs/components/mqtt/number.pyi +1 -0
  195. homeassistant-stubs/components/mqtt/scene.pyi +1 -0
  196. homeassistant-stubs/components/mqtt/select.pyi +1 -0
  197. homeassistant-stubs/components/mqtt/sensor.pyi +1 -0
  198. homeassistant-stubs/components/mqtt/siren.pyi +1 -0
  199. homeassistant-stubs/components/mqtt/subscription.pyi +1 -1
  200. homeassistant-stubs/components/mqtt/switch.pyi +1 -0
  201. homeassistant-stubs/components/mqtt/text.pyi +1 -0
  202. homeassistant-stubs/components/mqtt/update.pyi +1 -0
  203. homeassistant-stubs/components/mqtt/vacuum.pyi +1 -0
  204. homeassistant-stubs/components/mqtt/valve.pyi +1 -0
  205. homeassistant-stubs/components/mqtt/water_heater.pyi +1 -0
  206. homeassistant-stubs/components/music_assistant/__init__.pyi +27 -0
  207. homeassistant-stubs/components/music_assistant/config_flow.pyi +24 -0
  208. homeassistant-stubs/components/music_assistant/const.pyi +12 -0
  209. homeassistant-stubs/components/music_assistant/entity.pyi +24 -0
  210. homeassistant-stubs/components/music_assistant/media_browser.pyi +33 -0
  211. homeassistant-stubs/components/music_assistant/media_player.pyi +96 -0
  212. homeassistant-stubs/components/nasweb/__init__.pyi +19 -0
  213. homeassistant-stubs/components/nasweb/config_flow.pyi +27 -0
  214. homeassistant-stubs/components/nasweb/const.pyi +5 -0
  215. homeassistant-stubs/components/nasweb/coordinator.pyi +42 -0
  216. homeassistant-stubs/components/nasweb/nasweb_data.pyi +20 -0
  217. homeassistant-stubs/components/nasweb/switch.pyi +35 -0
  218. homeassistant-stubs/components/nest/camera.pyi +3 -5
  219. homeassistant-stubs/components/netatmo/config_flow.pyi +0 -1
  220. homeassistant-stubs/components/nightscout/sensor.pyi +4 -3
  221. homeassistant-stubs/components/nordpool/__init__.pyi +9 -0
  222. homeassistant-stubs/components/nordpool/config_flow.pyi +19 -0
  223. homeassistant-stubs/components/nordpool/const.pyi +9 -0
  224. homeassistant-stubs/components/nordpool/coordinator.pyi +20 -0
  225. homeassistant-stubs/components/nordpool/diagnostics.pyi +5 -0
  226. homeassistant-stubs/components/nordpool/entity.pyi +14 -0
  227. homeassistant-stubs/components/nordpool/sensor.pyi +69 -0
  228. homeassistant-stubs/components/number/const.pyi +3 -1
  229. homeassistant-stubs/components/nut/__init__.pyi +4 -1
  230. homeassistant-stubs/components/nut/config_flow.pyi +0 -2
  231. homeassistant-stubs/components/nut/sensor.pyi +1 -1
  232. homeassistant-stubs/components/onewire/config_flow.pyi +4 -2
  233. homeassistant-stubs/components/onkyo/config_flow.pyi +3 -2
  234. homeassistant-stubs/components/openai_conversation/config_flow.pyi +0 -1
  235. homeassistant-stubs/components/opensky/config_flow.pyi +3 -3
  236. homeassistant-stubs/components/p1_monitor/__init__.pyi +3 -3
  237. homeassistant-stubs/components/p1_monitor/diagnostics.pyi +1 -2
  238. homeassistant-stubs/components/p1_monitor/sensor.pyi +1 -1
  239. homeassistant-stubs/components/ping/__init__.pyi +2 -6
  240. homeassistant-stubs/components/ping/config_flow.pyi +2 -2
  241. homeassistant-stubs/components/plugwise/climate.pyi +4 -2
  242. homeassistant-stubs/components/plugwise/entity.pyi +2 -2
  243. homeassistant-stubs/components/plugwise/number.pyi +2 -2
  244. homeassistant-stubs/components/plugwise/select.pyi +2 -1
  245. homeassistant-stubs/components/proximity/config_flow.pyi +0 -3
  246. homeassistant-stubs/components/pure_energie/__init__.pyi +4 -5
  247. homeassistant-stubs/components/pure_energie/diagnostics.pyi +2 -4
  248. homeassistant-stubs/components/pure_energie/sensor.pyi +3 -3
  249. homeassistant-stubs/components/purpleair/config_flow.pyi +1 -2
  250. homeassistant-stubs/components/rainmachine/config_flow.pyi +0 -3
  251. homeassistant-stubs/components/recollect_waste/config_flow.pyi +1 -3
  252. homeassistant-stubs/components/recorder/core.pyi +1 -0
  253. homeassistant-stubs/components/recorder/history/legacy.pyi +4 -4
  254. homeassistant-stubs/components/recorder/history/modern.pyi +2 -2
  255. homeassistant-stubs/components/recorder/pool.pyi +1 -1
  256. homeassistant-stubs/components/recorder/queries.pyi +1 -0
  257. homeassistant-stubs/components/recorder/statistics.pyi +1 -1
  258. homeassistant-stubs/components/recorder/table_managers/states.pyi +7 -0
  259. homeassistant-stubs/components/recorder/websocket_api.pyi +1 -1
  260. homeassistant-stubs/components/renault/config_flow.pyi +4 -5
  261. homeassistant-stubs/components/renault/services.pyi +1 -0
  262. homeassistant-stubs/components/reolink/__init__.pyi +28 -0
  263. homeassistant-stubs/components/reolink/binary_sensor.pyi +34 -0
  264. homeassistant-stubs/components/reolink/button.pyi +48 -0
  265. homeassistant-stubs/components/reolink/camera.pyi +28 -0
  266. homeassistant-stubs/components/reolink/config_flow.pyi +35 -0
  267. homeassistant-stubs/components/reolink/const.pyi +2 -0
  268. homeassistant-stubs/components/reolink/diagnostics.pyi +5 -0
  269. homeassistant-stubs/components/reolink/entity.pyi +69 -0
  270. homeassistant-stubs/components/reolink/exceptions.pyi +7 -0
  271. homeassistant-stubs/components/reolink/host.pyi +82 -0
  272. homeassistant-stubs/components/reolink/light.pyi +55 -0
  273. homeassistant-stubs/components/reolink/media_source.pyi +27 -0
  274. homeassistant-stubs/components/reolink/number.pyi +69 -0
  275. homeassistant-stubs/components/reolink/select.pyi +54 -0
  276. homeassistant-stubs/components/reolink/sensor.pyi +55 -0
  277. homeassistant-stubs/components/reolink/services.pyi +12 -0
  278. homeassistant-stubs/components/reolink/siren.pyi +26 -0
  279. homeassistant-stubs/components/reolink/switch.pyi +65 -0
  280. homeassistant-stubs/components/reolink/update.pyi +71 -0
  281. homeassistant-stubs/components/reolink/util.pyi +18 -0
  282. homeassistant-stubs/components/rfxtrx/config_flow.pyi +2 -3
  283. homeassistant-stubs/components/ring/__init__.pyi +0 -1
  284. homeassistant-stubs/components/ring/camera.pyi +22 -6
  285. homeassistant-stubs/components/rituals_perfume_genie/select.pyi +1 -1
  286. homeassistant-stubs/components/roborock/config_flow.pyi +5 -3
  287. homeassistant-stubs/components/roborock/sensor.pyi +1 -1
  288. homeassistant-stubs/components/roku/config_flow.pyi +3 -3
  289. homeassistant-stubs/components/romy/sensor.pyi +1 -1
  290. homeassistant-stubs/components/rtsp_to_webrtc/__init__.pyi +1 -0
  291. homeassistant-stubs/components/rtsp_to_webrtc/config_flow.pyi +0 -2
  292. homeassistant-stubs/components/sensor/const.pyi +4 -2
  293. homeassistant-stubs/components/sensor/device_condition.pyi +2 -0
  294. homeassistant-stubs/components/sensor/device_trigger.pyi +2 -0
  295. homeassistant-stubs/components/shelly/config_flow.pyi +0 -2
  296. homeassistant-stubs/components/shelly/update.pyi +4 -1
  297. homeassistant-stubs/components/simplisafe/config_flow.pyi +0 -2
  298. homeassistant-stubs/components/smlight/config_flow.pyi +1 -1
  299. homeassistant-stubs/components/solarlog/coordinator.pyi +1 -0
  300. homeassistant-stubs/components/sonarr/config_flow.pyi +0 -2
  301. homeassistant-stubs/components/speedtestdotnet/config_flow.pyi +1 -2
  302. homeassistant-stubs/components/spotify/browse_media.pyi +2 -2
  303. homeassistant-stubs/components/spotify/coordinator.pyi +2 -4
  304. homeassistant-stubs/components/sql/config_flow.pyi +2 -2
  305. homeassistant-stubs/components/statistics/sensor.pyi +2 -4
  306. homeassistant-stubs/components/stookwijzer/__init__.pyi +15 -0
  307. homeassistant-stubs/components/stookwijzer/config_flow.pyi +10 -0
  308. homeassistant-stubs/components/stookwijzer/const.pyi +5 -0
  309. homeassistant-stubs/components/stookwijzer/coordinator.pyi +15 -0
  310. homeassistant-stubs/components/stookwijzer/diagnostics.pyi +5 -0
  311. homeassistant-stubs/components/stookwijzer/sensor.pyi +31 -0
  312. homeassistant-stubs/components/stream/const.pyi +3 -2
  313. homeassistant-stubs/components/stream/core.pyi +2 -2
  314. homeassistant-stubs/components/stream/worker.pyi +15 -13
  315. homeassistant-stubs/components/suez_water/__init__.pyi +3 -3
  316. homeassistant-stubs/components/suez_water/config_flow.pyi +2 -1
  317. homeassistant-stubs/components/suez_water/const.pyi +3 -0
  318. homeassistant-stubs/components/suez_water/coordinator.pyi +35 -0
  319. homeassistant-stubs/components/suez_water/sensor.pyi +23 -17
  320. homeassistant-stubs/components/switchbot_cloud/sensor.pyi +3 -1
  321. homeassistant-stubs/components/switcher_kis/button.pyi +1 -1
  322. homeassistant-stubs/components/switcher_kis/cover.pyi +1 -1
  323. homeassistant-stubs/components/switcher_kis/light.pyi +1 -1
  324. homeassistant-stubs/components/switcher_kis/sensor.pyi +2 -0
  325. homeassistant-stubs/components/synology_dsm/config_flow.pyi +0 -2
  326. homeassistant-stubs/components/tedee/binary_sensor.pyi +1 -1
  327. homeassistant-stubs/components/tedee/coordinator.pyi +2 -2
  328. homeassistant-stubs/components/tedee/entity.pyi +1 -1
  329. homeassistant-stubs/components/tedee/lock.pyi +3 -1
  330. homeassistant-stubs/components/tedee/sensor.pyi +1 -1
  331. homeassistant-stubs/components/thethingsnetwork/__init__.pyi +1 -4
  332. homeassistant-stubs/components/threshold/binary_sensor.pyi +4 -0
  333. homeassistant-stubs/components/tibber/__init__.pyi +1 -2
  334. homeassistant-stubs/components/tibber/notify.pyi +1 -10
  335. homeassistant-stubs/components/tod/binary_sensor.pyi +3 -3
  336. homeassistant-stubs/components/tolo/config_flow.pyi +1 -1
  337. homeassistant-stubs/components/tplink/__init__.pyi +1 -1
  338. homeassistant-stubs/components/tplink/config_flow.pyi +6 -3
  339. homeassistant-stubs/components/tplink_omada/__init__.pyi +2 -2
  340. homeassistant-stubs/components/trafikverket_camera/config_flow.pyi +1 -1
  341. homeassistant-stubs/components/trafikverket_camera/coordinator.pyi +2 -3
  342. homeassistant-stubs/components/trafikverket_train/__init__.pyi +3 -0
  343. homeassistant-stubs/components/trafikverket_train/config_flow.pyi +4 -3
  344. homeassistant-stubs/components/trafikverket_train/util.pyi +1 -2
  345. homeassistant-stubs/components/transmission/config_flow.pyi +0 -2
  346. homeassistant-stubs/components/trend/binary_sensor.pyi +1 -0
  347. homeassistant-stubs/components/tts/__init__.pyi +3 -1
  348. homeassistant-stubs/components/unifi/config_flow.pyi +2 -3
  349. homeassistant-stubs/components/unifiprotect/__init__.pyi +1 -1
  350. homeassistant-stubs/components/unifiprotect/config_flow.pyi +0 -2
  351. homeassistant-stubs/components/unifiprotect/const.pyi +5 -0
  352. homeassistant-stubs/components/unifiprotect/event.pyi +17 -4
  353. homeassistant-stubs/components/unifiprotect/views.pyi +7 -1
  354. homeassistant-stubs/components/upcloud/config_flow.pyi +0 -2
  355. homeassistant-stubs/components/watttime/config_flow.pyi +1 -3
  356. homeassistant-stubs/components/webostv/config_flow.pyi +0 -2
  357. homeassistant-stubs/components/websocket_api/http.pyi +2 -1
  358. homeassistant-stubs/components/wemo/config_flow.pyi +0 -3
  359. homeassistant-stubs/components/wled/config_flow.pyi +2 -2
  360. homeassistant-stubs/components/workday/config_flow.pyi +2 -2
  361. homeassistant-stubs/components/yale_smart_alarm/config_flow.pyi +5 -3
  362. homeassistant-stubs/components/yalexs_ble/config_flow.pyi +0 -2
  363. homeassistant-stubs/components/youtube/config_flow.pyi +2 -2
  364. homeassistant-stubs/components/zeroconf/usage.pyi +1 -1
  365. homeassistant-stubs/components/zwave_js/__init__.pyi +1 -1
  366. homeassistant-stubs/components/zwave_js/api.pyi +9 -1
  367. homeassistant-stubs/components/zwave_js/config_flow.pyi +1 -2
  368. homeassistant-stubs/components/zwave_js/const.pyi +1 -0
  369. homeassistant-stubs/config_entries.pyi +15 -7
  370. homeassistant-stubs/const.pyi +26 -1
  371. homeassistant-stubs/core_config.pyi +1 -1
  372. homeassistant-stubs/data_entry_flow.pyi +3 -3
  373. homeassistant-stubs/helpers/device_registry.pyi +0 -1
  374. homeassistant-stubs/helpers/entity.pyi +1 -0
  375. homeassistant-stubs/helpers/entity_platform.pyi +1 -0
  376. homeassistant-stubs/helpers/frame.pyi +12 -3
  377. homeassistant-stubs/helpers/intent.pyi +1 -0
  378. homeassistant-stubs/helpers/llm.pyi +2 -3
  379. homeassistant-stubs/helpers/restore_state.pyi +0 -3
  380. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +5 -2
  381. homeassistant-stubs/helpers/trigger_template_entity.pyi +1 -1
  382. homeassistant-stubs/helpers/update_coordinator.pyi +3 -3
  383. homeassistant-stubs/loader.pyi +1 -0
  384. homeassistant-stubs/runner.pyi +0 -4
  385. homeassistant-stubs/util/json.pyi +3 -3
  386. homeassistant-stubs/util/unit_conversion.pyi +20 -1
  387. homeassistant-stubs/util/unit_system.pyi +7 -4
  388. homeassistant-stubs/util/yaml/loader.pyi +0 -19
  389. {homeassistant_stubs-2024.11.2.dist-info → homeassistant_stubs-2024.12.0.dist-info}/METADATA +2 -2
  390. {homeassistant_stubs-2024.11.2.dist-info → homeassistant_stubs-2024.12.0.dist-info}/RECORD +392 -337
  391. homeassistant-stubs/components/spotify/sensor.pyi +0 -31
  392. {homeassistant_stubs-2024.11.2.dist-info → homeassistant_stubs-2024.12.0.dist-info}/WHEEL +0 -0
  393. {homeassistant_stubs-2024.11.2.dist-info → homeassistant_stubs-2024.12.0.dist-info}/licenses/LICENSE +0 -0
@@ -17,16 +17,17 @@ from homeassistant.config_entries import ConfigEntry as ConfigEntry
17
17
  from homeassistant.const import ATTR_ENTITY_ID as ATTR_ENTITY_ID, CONF_FILENAME as CONF_FILENAME, CONTENT_TYPE_MULTIPART as CONTENT_TYPE_MULTIPART, EVENT_HOMEASSISTANT_STARTED as EVENT_HOMEASSISTANT_STARTED, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP, SERVICE_TURN_OFF as SERVICE_TURN_OFF, SERVICE_TURN_ON as SERVICE_TURN_ON
18
18
  from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
19
19
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
20
- from homeassistant.helpers.deprecation import DeprecatedConstantEnum as DeprecatedConstantEnum, all_with_deprecated_constants as all_with_deprecated_constants, check_if_deprecated_constant as check_if_deprecated_constant, dir_with_deprecated_constants as dir_with_deprecated_constants
20
+ from homeassistant.helpers.deprecation import DeprecatedConstantEnum as DeprecatedConstantEnum, all_with_deprecated_constants as all_with_deprecated_constants, check_if_deprecated_constant as check_if_deprecated_constant, deprecated_function as deprecated_function, dir_with_deprecated_constants as dir_with_deprecated_constants
21
21
  from homeassistant.helpers.entity import Entity as Entity, EntityDescription as EntityDescription
22
22
  from homeassistant.helpers.entity_component import EntityComponent as EntityComponent
23
23
  from homeassistant.helpers.event import async_track_time_interval as async_track_time_interval
24
+ from homeassistant.helpers.frame import ReportBehavior as ReportBehavior, report_usage as report_usage
24
25
  from homeassistant.helpers.network import get_url as get_url
25
26
  from homeassistant.helpers.template import Template as Template
26
27
  from homeassistant.helpers.typing import ConfigType as ConfigType, VolDictType as VolDictType
27
28
  from homeassistant.loader import bind_hass as bind_hass
28
29
  from typing import Any, Final
29
- from webrtc_models import RTCIceCandidate as RTCIceCandidate
30
+ from webrtc_models import RTCIceCandidateInit as RTCIceCandidateInit
30
31
 
31
32
  _LOGGER: Incomplete
32
33
  ENTITY_ID_FORMAT: Final[Incomplete]
@@ -115,6 +116,7 @@ class Camera(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_):
115
116
  _legacy_webrtc_provider: Incomplete
116
117
  _supports_native_sync_webrtc: Incomplete
117
118
  _supports_native_async_webrtc: Incomplete
119
+ _deprecate_attr_frontend_stream_type_logged: bool
118
120
  def __init__(self) -> None: ...
119
121
  def entity_picture(self) -> str: ...
120
122
  def use_stream_for_stills(self) -> bool: ...
@@ -158,7 +160,7 @@ class Camera(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_):
158
160
  async def _async_get_supported_webrtc_provider[_T](self, fn: Callable[[HomeAssistant, Camera], Coroutine[None, None, _T | None]]) -> _T | None: ...
159
161
  def _async_get_webrtc_client_configuration(self) -> WebRTCClientConfiguration: ...
160
162
  def async_get_webrtc_client_configuration(self) -> WebRTCClientConfiguration: ...
161
- async def async_on_webrtc_candidate(self, session_id: str, candidate: RTCIceCandidate) -> None: ...
163
+ async def async_on_webrtc_candidate(self, session_id: str, candidate: RTCIceCandidateInit) -> None: ...
162
164
  def close_webrtc_session(self, session_id: str) -> None: ...
163
165
  def _invalidate_camera_capabilities_cache(self) -> None: ...
164
166
  def camera_capabilities(self) -> CameraCapabilities: ...
@@ -9,10 +9,11 @@ from dataclasses import dataclass
9
9
  from homeassistant.components import websocket_api as websocket_api
10
10
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
11
11
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
12
+ from homeassistant.helpers.deprecation import deprecated_function as deprecated_function
12
13
  from homeassistant.util.hass_dict import HassKey as HassKey
13
14
  from homeassistant.util.ulid import ulid as ulid
14
15
  from typing import Any, Protocol
15
- from webrtc_models import RTCConfiguration, RTCIceCandidate, RTCIceServer as RTCIceServer
16
+ from webrtc_models import RTCConfiguration, RTCIceCandidate as RTCIceCandidate, RTCIceCandidateInit, RTCIceServer as RTCIceServer
16
17
 
17
18
  _LOGGER: Incomplete
18
19
  DATA_WEBRTC_PROVIDERS: HassKey[set[CameraWebRTCProvider]]
@@ -38,7 +39,7 @@ class WebRTCAnswer(WebRTCMessage):
38
39
 
39
40
  @dataclass(frozen=True)
40
41
  class WebRTCCandidate(WebRTCMessage):
41
- candidate: RTCIceCandidate
42
+ candidate: RTCIceCandidate | RTCIceCandidateInit
42
43
  def as_dict(self) -> dict[str, Any]: ...
43
44
  def __init__(self, candidate) -> None: ...
44
45
 
@@ -66,7 +67,7 @@ class CameraWebRTCProvider(ABC, metaclass=abc.ABCMeta):
66
67
  @abstractmethod
67
68
  async def async_handle_async_webrtc_offer(self, camera: Camera, offer_sdp: str, session_id: str, send_message: WebRTCSendMessage) -> None: ...
68
69
  @abstractmethod
69
- async def async_on_webrtc_candidate(self, session_id: str, candidate: RTCIceCandidate) -> None: ...
70
+ async def async_on_webrtc_candidate(self, session_id: str, candidate: RTCIceCandidateInit) -> None: ...
70
71
  def async_close_session(self, session_id: str) -> None: ...
71
72
 
72
73
  class CameraWebRTCLegacyProvider(Protocol):
@@ -75,9 +76,12 @@ class CameraWebRTCLegacyProvider(Protocol):
75
76
 
76
77
  def async_register_webrtc_provider(hass: HomeAssistant, provider: CameraWebRTCProvider) -> Callable[[], None]: ...
77
78
  async def _async_refresh_providers(hass: HomeAssistant) -> None: ...
78
- async def ws_webrtc_offer(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
79
- async def ws_get_client_config(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
80
- async def ws_candidate(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
79
+ type WsCommandWithCamera = Callable[[websocket_api.ActiveConnection, dict[str, Any], Camera], Awaitable[None]]
80
+ def require_webrtc_support(error_code: str) -> Callable[[WsCommandWithCamera], websocket_api.AsyncWebSocketCommandHandler]: ...
81
+ async def ws_webrtc_offer(connection: websocket_api.ActiveConnection, msg: dict[str, Any], camera: Camera) -> None: ...
82
+ async def ws_get_client_config(connection: websocket_api.ActiveConnection, msg: dict[str, Any], camera: Camera) -> None: ...
83
+ def _parse_webrtc_candidate_init(value: Any) -> RTCIceCandidateInit: ...
84
+ async def ws_candidate(connection: websocket_api.ActiveConnection, msg: dict[str, Any], camera: Camera) -> None: ...
81
85
  def async_register_ws(hass: HomeAssistant) -> None: ...
82
86
  async def async_get_supported_provider(hass: HomeAssistant, camera: Camera) -> CameraWebRTCProvider | None: ...
83
87
  async def async_get_supported_legacy_provider(hass: HomeAssistant, camera: Camera) -> CameraWebRTCLegacyProvider | None: ...
@@ -17,6 +17,4 @@ class CanaryConfigFlow(ConfigFlow, domain=DOMAIN):
17
17
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
18
18
 
19
19
  class CanaryOptionsFlowHandler(OptionsFlow):
20
- config_entry: Incomplete
21
- def __init__(self, config_entry: ConfigEntry) -> None: ...
22
20
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -1,5 +1,5 @@
1
1
  import asyncio
2
- from .const import ATTR_AUX_HEAT as ATTR_AUX_HEAT, ATTR_CURRENT_HUMIDITY as ATTR_CURRENT_HUMIDITY, ATTR_CURRENT_TEMPERATURE as ATTR_CURRENT_TEMPERATURE, ATTR_FAN_MODE as ATTR_FAN_MODE, ATTR_FAN_MODES as ATTR_FAN_MODES, ATTR_HUMIDITY as ATTR_HUMIDITY, ATTR_HVAC_ACTION as ATTR_HVAC_ACTION, ATTR_HVAC_MODE as ATTR_HVAC_MODE, ATTR_HVAC_MODES as ATTR_HVAC_MODES, ATTR_MAX_HUMIDITY as ATTR_MAX_HUMIDITY, ATTR_MAX_TEMP as ATTR_MAX_TEMP, ATTR_MIN_HUMIDITY as ATTR_MIN_HUMIDITY, ATTR_MIN_TEMP as ATTR_MIN_TEMP, ATTR_PRESET_MODE as ATTR_PRESET_MODE, ATTR_PRESET_MODES as ATTR_PRESET_MODES, ATTR_SWING_MODE as ATTR_SWING_MODE, ATTR_SWING_MODES as ATTR_SWING_MODES, ATTR_TARGET_TEMP_HIGH as ATTR_TARGET_TEMP_HIGH, ATTR_TARGET_TEMP_LOW as ATTR_TARGET_TEMP_LOW, ATTR_TARGET_TEMP_STEP as ATTR_TARGET_TEMP_STEP, ClimateEntityFeature as ClimateEntityFeature, DOMAIN as DOMAIN, FAN_AUTO as FAN_AUTO, FAN_DIFFUSE as FAN_DIFFUSE, FAN_FOCUS as FAN_FOCUS, FAN_HIGH as FAN_HIGH, FAN_LOW as FAN_LOW, FAN_MEDIUM as FAN_MEDIUM, FAN_MIDDLE as FAN_MIDDLE, FAN_OFF as FAN_OFF, FAN_ON as FAN_ON, FAN_TOP as FAN_TOP, HVACAction as HVACAction, HVACMode as HVACMode, HVAC_MODES as HVAC_MODES, INTENT_GET_TEMPERATURE as INTENT_GET_TEMPERATURE, PRESET_ACTIVITY as PRESET_ACTIVITY, PRESET_AWAY as PRESET_AWAY, PRESET_BOOST as PRESET_BOOST, PRESET_COMFORT as PRESET_COMFORT, PRESET_ECO as PRESET_ECO, PRESET_HOME as PRESET_HOME, PRESET_NONE as PRESET_NONE, PRESET_SLEEP as PRESET_SLEEP, SERVICE_SET_AUX_HEAT as SERVICE_SET_AUX_HEAT, SERVICE_SET_FAN_MODE as SERVICE_SET_FAN_MODE, SERVICE_SET_HUMIDITY as SERVICE_SET_HUMIDITY, SERVICE_SET_HVAC_MODE as SERVICE_SET_HVAC_MODE, SERVICE_SET_PRESET_MODE as SERVICE_SET_PRESET_MODE, SERVICE_SET_SWING_MODE as SERVICE_SET_SWING_MODE, SERVICE_SET_TEMPERATURE as SERVICE_SET_TEMPERATURE, SWING_BOTH as SWING_BOTH, SWING_HORIZONTAL as SWING_HORIZONTAL, SWING_OFF as SWING_OFF, SWING_ON as SWING_ON, SWING_VERTICAL as SWING_VERTICAL, _DEPRECATED_HVAC_MODE_AUTO as _DEPRECATED_HVAC_MODE_AUTO, _DEPRECATED_HVAC_MODE_COOL as _DEPRECATED_HVAC_MODE_COOL, _DEPRECATED_HVAC_MODE_DRY as _DEPRECATED_HVAC_MODE_DRY, _DEPRECATED_HVAC_MODE_FAN_ONLY as _DEPRECATED_HVAC_MODE_FAN_ONLY, _DEPRECATED_HVAC_MODE_HEAT as _DEPRECATED_HVAC_MODE_HEAT, _DEPRECATED_HVAC_MODE_HEAT_COOL as _DEPRECATED_HVAC_MODE_HEAT_COOL, _DEPRECATED_HVAC_MODE_OFF as _DEPRECATED_HVAC_MODE_OFF, _DEPRECATED_SUPPORT_AUX_HEAT as _DEPRECATED_SUPPORT_AUX_HEAT, _DEPRECATED_SUPPORT_FAN_MODE as _DEPRECATED_SUPPORT_FAN_MODE, _DEPRECATED_SUPPORT_PRESET_MODE as _DEPRECATED_SUPPORT_PRESET_MODE, _DEPRECATED_SUPPORT_SWING_MODE as _DEPRECATED_SUPPORT_SWING_MODE, _DEPRECATED_SUPPORT_TARGET_HUMIDITY as _DEPRECATED_SUPPORT_TARGET_HUMIDITY, _DEPRECATED_SUPPORT_TARGET_TEMPERATURE as _DEPRECATED_SUPPORT_TARGET_TEMPERATURE, _DEPRECATED_SUPPORT_TARGET_TEMPERATURE_RANGE as _DEPRECATED_SUPPORT_TARGET_TEMPERATURE_RANGE
2
+ from .const import ATTR_AUX_HEAT as ATTR_AUX_HEAT, ATTR_CURRENT_HUMIDITY as ATTR_CURRENT_HUMIDITY, ATTR_CURRENT_TEMPERATURE as ATTR_CURRENT_TEMPERATURE, ATTR_FAN_MODE as ATTR_FAN_MODE, ATTR_FAN_MODES as ATTR_FAN_MODES, ATTR_HUMIDITY as ATTR_HUMIDITY, ATTR_HVAC_ACTION as ATTR_HVAC_ACTION, ATTR_HVAC_MODE as ATTR_HVAC_MODE, ATTR_HVAC_MODES as ATTR_HVAC_MODES, ATTR_MAX_HUMIDITY as ATTR_MAX_HUMIDITY, ATTR_MAX_TEMP as ATTR_MAX_TEMP, ATTR_MIN_HUMIDITY as ATTR_MIN_HUMIDITY, ATTR_MIN_TEMP as ATTR_MIN_TEMP, ATTR_PRESET_MODE as ATTR_PRESET_MODE, ATTR_PRESET_MODES as ATTR_PRESET_MODES, ATTR_SWING_HORIZONTAL_MODE as ATTR_SWING_HORIZONTAL_MODE, ATTR_SWING_HORIZONTAL_MODES as ATTR_SWING_HORIZONTAL_MODES, ATTR_SWING_MODE as ATTR_SWING_MODE, ATTR_SWING_MODES as ATTR_SWING_MODES, ATTR_TARGET_TEMP_HIGH as ATTR_TARGET_TEMP_HIGH, ATTR_TARGET_TEMP_LOW as ATTR_TARGET_TEMP_LOW, ATTR_TARGET_TEMP_STEP as ATTR_TARGET_TEMP_STEP, ClimateEntityFeature as ClimateEntityFeature, DOMAIN as DOMAIN, FAN_AUTO as FAN_AUTO, FAN_DIFFUSE as FAN_DIFFUSE, FAN_FOCUS as FAN_FOCUS, FAN_HIGH as FAN_HIGH, FAN_LOW as FAN_LOW, FAN_MEDIUM as FAN_MEDIUM, FAN_MIDDLE as FAN_MIDDLE, FAN_OFF as FAN_OFF, FAN_ON as FAN_ON, FAN_TOP as FAN_TOP, HVACAction as HVACAction, HVACMode as HVACMode, HVAC_MODES as HVAC_MODES, INTENT_GET_TEMPERATURE as INTENT_GET_TEMPERATURE, PRESET_ACTIVITY as PRESET_ACTIVITY, PRESET_AWAY as PRESET_AWAY, PRESET_BOOST as PRESET_BOOST, PRESET_COMFORT as PRESET_COMFORT, PRESET_ECO as PRESET_ECO, PRESET_HOME as PRESET_HOME, PRESET_NONE as PRESET_NONE, PRESET_SLEEP as PRESET_SLEEP, SERVICE_SET_AUX_HEAT as SERVICE_SET_AUX_HEAT, SERVICE_SET_FAN_MODE as SERVICE_SET_FAN_MODE, SERVICE_SET_HUMIDITY as SERVICE_SET_HUMIDITY, SERVICE_SET_HVAC_MODE as SERVICE_SET_HVAC_MODE, SERVICE_SET_PRESET_MODE as SERVICE_SET_PRESET_MODE, SERVICE_SET_SWING_HORIZONTAL_MODE as SERVICE_SET_SWING_HORIZONTAL_MODE, SERVICE_SET_SWING_MODE as SERVICE_SET_SWING_MODE, SERVICE_SET_TEMPERATURE as SERVICE_SET_TEMPERATURE, SWING_BOTH as SWING_BOTH, SWING_HORIZONTAL as SWING_HORIZONTAL, SWING_OFF as SWING_OFF, SWING_ON as SWING_ON, SWING_VERTICAL as SWING_VERTICAL, _DEPRECATED_HVAC_MODE_AUTO as _DEPRECATED_HVAC_MODE_AUTO, _DEPRECATED_HVAC_MODE_COOL as _DEPRECATED_HVAC_MODE_COOL, _DEPRECATED_HVAC_MODE_DRY as _DEPRECATED_HVAC_MODE_DRY, _DEPRECATED_HVAC_MODE_FAN_ONLY as _DEPRECATED_HVAC_MODE_FAN_ONLY, _DEPRECATED_HVAC_MODE_HEAT as _DEPRECATED_HVAC_MODE_HEAT, _DEPRECATED_HVAC_MODE_HEAT_COOL as _DEPRECATED_HVAC_MODE_HEAT_COOL, _DEPRECATED_HVAC_MODE_OFF as _DEPRECATED_HVAC_MODE_OFF, _DEPRECATED_SUPPORT_AUX_HEAT as _DEPRECATED_SUPPORT_AUX_HEAT, _DEPRECATED_SUPPORT_FAN_MODE as _DEPRECATED_SUPPORT_FAN_MODE, _DEPRECATED_SUPPORT_PRESET_MODE as _DEPRECATED_SUPPORT_PRESET_MODE, _DEPRECATED_SUPPORT_SWING_MODE as _DEPRECATED_SUPPORT_SWING_MODE, _DEPRECATED_SUPPORT_TARGET_HUMIDITY as _DEPRECATED_SUPPORT_TARGET_HUMIDITY, _DEPRECATED_SUPPORT_TARGET_TEMPERATURE as _DEPRECATED_SUPPORT_TARGET_TEMPERATURE, _DEPRECATED_SUPPORT_TARGET_TEMPERATURE_RANGE as _DEPRECATED_SUPPORT_TARGET_TEMPERATURE_RANGE
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
5
  from homeassistant.const import ATTR_TEMPERATURE as ATTR_TEMPERATURE, PRECISION_TENTHS as PRECISION_TENTHS, PRECISION_WHOLE as PRECISION_WHOLE, SERVICE_TOGGLE as SERVICE_TOGGLE, SERVICE_TURN_OFF as SERVICE_TURN_OFF, SERVICE_TURN_ON as SERVICE_TURN_ON, STATE_OFF as STATE_OFF, STATE_ON as STATE_ON, UnitOfTemperature as UnitOfTemperature
@@ -60,6 +60,8 @@ class ClimateEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_):
60
60
  _attr_supported_features: ClimateEntityFeature
61
61
  _attr_swing_mode: str | None
62
62
  _attr_swing_modes: list[str] | None
63
+ _attr_swing_horizontal_mode: str | None
64
+ _attr_swing_horizontal_modes: list[str] | None
63
65
  _attr_target_humidity: float | None
64
66
  _attr_target_temperature_high: float | None
65
67
  _attr_target_temperature_low: float | None
@@ -69,7 +71,7 @@ class ClimateEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_):
69
71
  __climate_reported_legacy_aux: bool
70
72
  __mod_supported_features: ClimateEntityFeature
71
73
  _enable_turn_on_off_backwards_compatibility: bool
72
- def __getattribute__(self, __name: str) -> Any: ...
74
+ def __getattribute__(self, name: str) -> Any: ...
73
75
  def add_to_platform_start(self, hass: HomeAssistant, platform: EntityPlatform, parallel_updates: asyncio.Semaphore | None) -> None: ...
74
76
  def _report_legacy_aux(self) -> None: ...
75
77
  @property
@@ -98,7 +100,9 @@ class ClimateEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_):
98
100
  def fan_modes(self) -> list[str] | None: ...
99
101
  def swing_mode(self) -> str | None: ...
100
102
  def swing_modes(self) -> list[str] | None: ...
101
- def _valid_mode_or_raise(self, mode_type: Literal['preset', 'swing', 'fan', 'hvac'], mode: str | HVACMode, modes: list[str] | list[HVACMode] | None) -> None: ...
103
+ def swing_horizontal_mode(self) -> str | None: ...
104
+ def swing_horizontal_modes(self) -> list[str] | None: ...
105
+ def _valid_mode_or_raise(self, mode_type: Literal['preset', 'horizontal_swing', 'swing', 'fan', 'hvac'], mode: str | HVACMode, modes: list[str] | list[HVACMode] | None) -> None: ...
102
106
  def set_temperature(self, **kwargs: Any) -> None: ...
103
107
  async def async_set_temperature(self, **kwargs: Any) -> None: ...
104
108
  def set_humidity(self, humidity: int) -> None: ...
@@ -112,6 +116,9 @@ class ClimateEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_):
112
116
  async def async_handle_set_swing_mode_service(self, swing_mode: str) -> None: ...
113
117
  def set_swing_mode(self, swing_mode: str) -> None: ...
114
118
  async def async_set_swing_mode(self, swing_mode: str) -> None: ...
119
+ async def async_handle_set_swing_horizontal_mode_service(self, swing_horizontal_mode: str) -> None: ...
120
+ def set_swing_horizontal_mode(self, swing_horizontal_mode: str) -> None: ...
121
+ async def async_set_swing_horizontal_mode(self, swing_horizontal_mode: str) -> None: ...
115
122
  async def async_handle_set_preset_mode_service(self, preset_mode: str) -> None: ...
116
123
  def set_preset_mode(self, preset_mode: str) -> None: ...
117
124
  async def async_set_preset_mode(self, preset_mode: str) -> None: ...
@@ -42,6 +42,8 @@ SWING_OFF: str
42
42
  SWING_BOTH: str
43
43
  SWING_VERTICAL: str
44
44
  SWING_HORIZONTAL: str
45
+ SWING_HORIZONTAL_ON: str
46
+ SWING_HORIZONTAL_OFF: str
45
47
 
46
48
  class HVACAction(StrEnum):
47
49
  COOLING = 'cooling'
@@ -77,6 +79,8 @@ ATTR_HVAC_MODES: str
77
79
  ATTR_HVAC_MODE: str
78
80
  ATTR_SWING_MODES: str
79
81
  ATTR_SWING_MODE: str
82
+ ATTR_SWING_HORIZONTAL_MODE: str
83
+ ATTR_SWING_HORIZONTAL_MODES: str
80
84
  ATTR_TARGET_TEMP_HIGH: str
81
85
  ATTR_TARGET_TEMP_LOW: str
82
86
  ATTR_TARGET_TEMP_STEP: str
@@ -92,6 +96,7 @@ SERVICE_SET_PRESET_MODE: str
92
96
  SERVICE_SET_HUMIDITY: str
93
97
  SERVICE_SET_HVAC_MODE: str
94
98
  SERVICE_SET_SWING_MODE: str
99
+ SERVICE_SET_SWING_HORIZONTAL_MODE: str
95
100
  SERVICE_SET_TEMPERATURE: str
96
101
 
97
102
  class ClimateEntityFeature(IntFlag):
@@ -104,6 +109,7 @@ class ClimateEntityFeature(IntFlag):
104
109
  AUX_HEAT = 64
105
110
  TURN_OFF = 128
106
111
  TURN_ON = 256
112
+ SWING_HORIZONTAL_MODE = 512
107
113
 
108
114
  _DEPRECATED_SUPPORT_TARGET_TEMPERATURE: Incomplete
109
115
  _DEPRECATED_SUPPORT_TARGET_TEMPERATURE_RANGE: Incomplete
@@ -1,4 +1,4 @@
1
- from .const import ATTR_FAN_MODE as ATTR_FAN_MODE, ATTR_HUMIDITY as ATTR_HUMIDITY, ATTR_HVAC_MODE as ATTR_HVAC_MODE, ATTR_PRESET_MODE as ATTR_PRESET_MODE, ATTR_SWING_MODE as ATTR_SWING_MODE, ATTR_TARGET_TEMP_HIGH as ATTR_TARGET_TEMP_HIGH, ATTR_TARGET_TEMP_LOW as ATTR_TARGET_TEMP_LOW, DOMAIN as DOMAIN, HVAC_MODES as HVAC_MODES, SERVICE_SET_FAN_MODE as SERVICE_SET_FAN_MODE, SERVICE_SET_HUMIDITY as SERVICE_SET_HUMIDITY, SERVICE_SET_HVAC_MODE as SERVICE_SET_HVAC_MODE, SERVICE_SET_PRESET_MODE as SERVICE_SET_PRESET_MODE, SERVICE_SET_SWING_MODE as SERVICE_SET_SWING_MODE, SERVICE_SET_TEMPERATURE as SERVICE_SET_TEMPERATURE
1
+ from .const import ATTR_FAN_MODE as ATTR_FAN_MODE, ATTR_HUMIDITY as ATTR_HUMIDITY, ATTR_HVAC_MODE as ATTR_HVAC_MODE, ATTR_PRESET_MODE as ATTR_PRESET_MODE, ATTR_SWING_HORIZONTAL_MODE as ATTR_SWING_HORIZONTAL_MODE, ATTR_SWING_MODE as ATTR_SWING_MODE, ATTR_TARGET_TEMP_HIGH as ATTR_TARGET_TEMP_HIGH, ATTR_TARGET_TEMP_LOW as ATTR_TARGET_TEMP_LOW, DOMAIN as DOMAIN, HVAC_MODES as HVAC_MODES, SERVICE_SET_FAN_MODE as SERVICE_SET_FAN_MODE, SERVICE_SET_HUMIDITY as SERVICE_SET_HUMIDITY, SERVICE_SET_HVAC_MODE as SERVICE_SET_HVAC_MODE, SERVICE_SET_PRESET_MODE as SERVICE_SET_PRESET_MODE, SERVICE_SET_SWING_HORIZONTAL_MODE as SERVICE_SET_SWING_HORIZONTAL_MODE, SERVICE_SET_SWING_MODE as SERVICE_SET_SWING_MODE, SERVICE_SET_TEMPERATURE as SERVICE_SET_TEMPERATURE
2
2
  from collections.abc import Iterable
3
3
  from homeassistant.const import ATTR_TEMPERATURE as ATTR_TEMPERATURE
4
4
  from homeassistant.core import Context as Context, HomeAssistant as HomeAssistant, State as State
@@ -1,4 +1,4 @@
1
- from . import ATTR_AUX_HEAT as ATTR_AUX_HEAT, ATTR_CURRENT_HUMIDITY as ATTR_CURRENT_HUMIDITY, ATTR_CURRENT_TEMPERATURE as ATTR_CURRENT_TEMPERATURE, ATTR_FAN_MODE as ATTR_FAN_MODE, ATTR_HUMIDITY as ATTR_HUMIDITY, ATTR_HVAC_ACTION as ATTR_HVAC_ACTION, ATTR_PRESET_MODE as ATTR_PRESET_MODE, ATTR_SWING_MODE as ATTR_SWING_MODE, ATTR_TARGET_TEMP_HIGH as ATTR_TARGET_TEMP_HIGH, ATTR_TARGET_TEMP_LOW as ATTR_TARGET_TEMP_LOW, ATTR_TEMPERATURE as ATTR_TEMPERATURE
1
+ from . import ATTR_AUX_HEAT as ATTR_AUX_HEAT, ATTR_CURRENT_HUMIDITY as ATTR_CURRENT_HUMIDITY, ATTR_CURRENT_TEMPERATURE as ATTR_CURRENT_TEMPERATURE, ATTR_FAN_MODE as ATTR_FAN_MODE, ATTR_HUMIDITY as ATTR_HUMIDITY, ATTR_HVAC_ACTION as ATTR_HVAC_ACTION, ATTR_PRESET_MODE as ATTR_PRESET_MODE, ATTR_SWING_HORIZONTAL_MODE as ATTR_SWING_HORIZONTAL_MODE, ATTR_SWING_MODE as ATTR_SWING_MODE, ATTR_TARGET_TEMP_HIGH as ATTR_TARGET_TEMP_HIGH, ATTR_TARGET_TEMP_LOW as ATTR_TARGET_TEMP_LOW, ATTR_TEMPERATURE as ATTR_TEMPERATURE
2
2
  from homeassistant.const import UnitOfTemperature as UnitOfTemperature
3
3
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
4
4
  from homeassistant.helpers.significant_change import check_absolute_change as check_absolute_change, check_valid_float as check_valid_float
@@ -28,7 +28,7 @@ class CloudPreferences:
28
28
  def __init__(self, hass: HomeAssistant) -> None: ...
29
29
  async def async_initialize(self) -> None: ...
30
30
  def async_listen_updates(self, listener: Callable[[CloudPreferences], Coroutine[Any, Any, None]]) -> Callable[[], None]: ...
31
- async def async_update(self, *, google_enabled: bool | UndefinedType = ..., alexa_enabled: bool | UndefinedType = ..., remote_enabled: bool | UndefinedType = ..., google_secure_devices_pin: str | None | UndefinedType = ..., cloudhooks: dict[str, dict[str, str | bool]] | UndefinedType = ..., cloud_user: str | UndefinedType = ..., alexa_report_state: bool | UndefinedType = ..., google_report_state: bool | UndefinedType = ..., tts_default_voice: tuple[str, str] | UndefinedType = ..., remote_domain: str | None | UndefinedType = ..., alexa_settings_version: int | UndefinedType = ..., google_settings_version: int | UndefinedType = ..., google_connected: bool | UndefinedType = ..., remote_allow_remote_enable: bool | UndefinedType = ..., cloud_ice_servers_enabled: bool | UndefinedType = ...) -> None: ...
31
+ async def async_update(self, *, alexa_enabled: bool | UndefinedType = ..., alexa_report_state: bool | UndefinedType = ..., alexa_settings_version: int | UndefinedType = ..., cloud_ice_servers_enabled: bool | UndefinedType = ..., cloud_user: str | UndefinedType = ..., cloudhooks: dict[str, dict[str, str | bool]] | UndefinedType = ..., google_connected: bool | UndefinedType = ..., google_enabled: bool | UndefinedType = ..., google_report_state: bool | UndefinedType = ..., google_secure_devices_pin: str | None | UndefinedType = ..., google_settings_version: int | UndefinedType = ..., remote_allow_remote_enable: bool | UndefinedType = ..., remote_domain: str | None | UndefinedType = ..., remote_enabled: bool | UndefinedType = ..., tts_default_voice: tuple[str, str] | UndefinedType = ...) -> None: ...
32
32
  async def async_set_username(self, username: str | None) -> bool: ...
33
33
  async def async_erase_config(self) -> None: ...
34
34
  def as_dict(self) -> dict[str, Any]: ...
@@ -36,8 +36,7 @@ class CrownstoneConfigFlowHandler(BaseCrownstoneFlowHandler, ConfigFlow, domain=
36
36
  def async_create_new_entry(self) -> ConfigFlowResult: ...
37
37
 
38
38
  class CrownstoneOptionsFlowHandler(BaseCrownstoneFlowHandler, OptionsFlow):
39
- entry: Incomplete
40
- updated_options: Incomplete
39
+ options: Incomplete
41
40
  def __init__(self, config_entry: ConfigEntry) -> None: ...
42
41
  cloud: Incomplete
43
42
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -1,6 +1,5 @@
1
1
  from .const import CONF_ALLOW_CLIP_SENSOR as CONF_ALLOW_CLIP_SENSOR, CONF_ALLOW_DECONZ_GROUPS as CONF_ALLOW_DECONZ_GROUPS, CONF_ALLOW_NEW_DEVICES as CONF_ALLOW_NEW_DEVICES, DEFAULT_ALLOW_CLIP_SENSOR as DEFAULT_ALLOW_CLIP_SENSOR, DEFAULT_ALLOW_DECONZ_GROUPS as DEFAULT_ALLOW_DECONZ_GROUPS, DEFAULT_ALLOW_NEW_DEVICES as DEFAULT_ALLOW_NEW_DEVICES, DEFAULT_PORT as DEFAULT_PORT, DOMAIN as DOMAIN, HASSIO_CONFIGURATION_URL as HASSIO_CONFIGURATION_URL, LOGGER as LOGGER
2
2
  from .hub import DeconzHub as DeconzHub
3
- from _typeshed import Incomplete
4
3
  from collections.abc import Mapping
5
4
  from homeassistant.components import ssdp as ssdp
6
5
  from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow, SOURCE_HASSIO as SOURCE_HASSIO
@@ -25,7 +24,7 @@ class DeconzFlowHandler(ConfigFlow, domain=DOMAIN):
25
24
  port: int
26
25
  api_key: str
27
26
  @staticmethod
28
- def async_get_options_flow(config_entry: ConfigEntry) -> OptionsFlow: ...
27
+ def async_get_options_flow(config_entry: ConfigEntry) -> DeconzOptionsFlowHandler: ...
29
28
  bridge_id: str
30
29
  def __init__(self) -> None: ...
31
30
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -39,8 +38,5 @@ class DeconzFlowHandler(ConfigFlow, domain=DOMAIN):
39
38
 
40
39
  class DeconzOptionsFlowHandler(OptionsFlow):
41
40
  gateway: DeconzHub
42
- config_entry: Incomplete
43
- options: Incomplete
44
- def __init__(self, config_entry: ConfigEntry) -> None: ...
45
41
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
46
42
  async def async_step_deconz_devices(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -31,13 +31,15 @@ class DemoClimate(ClimateEntity):
31
31
  _hvac_action: Incomplete
32
32
  _hvac_mode: Incomplete
33
33
  _current_swing_mode: Incomplete
34
+ _current_swing_horizontal_mode: Incomplete
34
35
  _fan_modes: Incomplete
35
36
  _hvac_modes: Incomplete
36
37
  _swing_modes: Incomplete
38
+ _swing_horizontal_modes: Incomplete
37
39
  _target_temperature_high: Incomplete
38
40
  _target_temperature_low: Incomplete
39
41
  _attr_device_info: Incomplete
40
- def __init__(self, unique_id: str, device_name: str, target_temperature: float | None, unit_of_measurement: str, preset: str | None, current_temperature: float, fan_mode: str | None, target_humidity: float | None, current_humidity: float | None, swing_mode: str | None, hvac_mode: HVACMode, hvac_action: HVACAction | None, target_temp_high: float | None, target_temp_low: float | None, hvac_modes: list[HVACMode], preset_modes: list[str] | None = None) -> None: ...
42
+ def __init__(self, unique_id: str, device_name: str, target_temperature: float | None, unit_of_measurement: str, preset: str | None, current_temperature: float, fan_mode: str | None, target_humidity: float | None, current_humidity: float | None, swing_mode: str | None, swing_horizontal_mode: str | None, hvac_mode: HVACMode, hvac_action: HVACAction | None, target_temp_high: float | None, target_temp_low: float | None, hvac_modes: list[HVACMode], preset_modes: list[str] | None = None) -> None: ...
41
43
  @property
42
44
  def unique_id(self) -> str: ...
43
45
  @property
@@ -72,9 +74,14 @@ class DemoClimate(ClimateEntity):
72
74
  def swing_mode(self) -> str | None: ...
73
75
  @property
74
76
  def swing_modes(self) -> list[str]: ...
77
+ @property
78
+ def swing_horizontal_mode(self) -> str | None: ...
79
+ @property
80
+ def swing_horizontal_modes(self) -> list[str]: ...
75
81
  async def async_set_temperature(self, **kwargs: Any) -> None: ...
76
82
  async def async_set_humidity(self, humidity: int) -> None: ...
77
83
  async def async_set_swing_mode(self, swing_mode: str) -> None: ...
84
+ async def async_set_swing_horizontal_mode(self, swing_horizontal_mode: str) -> None: ...
78
85
  async def async_set_fan_mode(self, fan_mode: str) -> None: ...
79
86
  async def async_set_hvac_mode(self, hvac_mode: HVACMode) -> None: ...
80
87
  async def async_set_preset_mode(self, preset_mode: str) -> None: ...
@@ -17,7 +17,6 @@ class DemoConfigFlow(ConfigFlow, domain=DOMAIN):
17
17
  async def async_step_import(self, import_data: dict[str, Any]) -> ConfigFlowResult: ...
18
18
 
19
19
  class OptionsFlowHandler(OptionsFlow):
20
- config_entry: Incomplete
21
20
  options: Incomplete
22
21
  def __init__(self, config_entry: ConfigEntry) -> None: ...
23
22
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -1,7 +1,7 @@
1
1
  from .const import DOMAIN as DOMAIN
2
2
  from _typeshed import Incomplete
3
3
  from collections.abc import Mapping
4
- from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, SOURCE_REAUTH as SOURCE_REAUTH
4
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, SOURCE_REAUTH as SOURCE_REAUTH
5
5
  from homeassistant.const import CONF_EMAIL as CONF_EMAIL, CONF_PASSWORD as CONF_PASSWORD
6
6
  from homeassistant.helpers.httpx_client import get_async_client as get_async_client
7
7
  from homeassistant.helpers.selector import TextSelector as TextSelector, TextSelectorConfig as TextSelectorConfig, TextSelectorType as TextSelectorType
@@ -12,8 +12,5 @@ CONFIG_SCHEMA: Incomplete
12
12
 
13
13
  class DiscovergyConfigFlow(ConfigFlow, domain=DOMAIN):
14
14
  VERSION: int
15
- _existing_entry: ConfigEntry
16
- async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
17
15
  async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
18
- async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
19
- async def _validate_and_save(self, user_input: Mapping[str, Any] | None = None, step_id: str = 'user') -> ConfigFlowResult: ...
16
+ async def async_step_user(self, user_input: Mapping[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -38,8 +38,6 @@ class DlnaDmrFlowHandler(ConfigFlow, domain=DOMAIN):
38
38
  async def _async_get_discoveries(self) -> list[ssdp.SsdpServiceInfo]: ...
39
39
 
40
40
  class DlnaDmrOptionsFlowHandler(OptionsFlow):
41
- config_entry: Incomplete
42
- def __init__(self, config_entry: ConfigEntry) -> None: ...
43
41
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
44
42
 
45
43
  def _is_ignored_device(discovery_info: ssdp.SsdpServiceInfo) -> bool: ...
@@ -1,6 +1,6 @@
1
1
  from .const import CONF_HOSTNAME as CONF_HOSTNAME, CONF_IPV4 as CONF_IPV4, CONF_IPV6 as CONF_IPV6, CONF_IPV6_V4 as CONF_IPV6_V4, CONF_PORT_IPV6 as CONF_PORT_IPV6, CONF_RESOLVER as CONF_RESOLVER, CONF_RESOLVER_IPV6 as CONF_RESOLVER_IPV6, DEFAULT_HOSTNAME as DEFAULT_HOSTNAME, DEFAULT_NAME as DEFAULT_NAME, DEFAULT_PORT as DEFAULT_PORT, DEFAULT_RESOLVER as DEFAULT_RESOLVER, DEFAULT_RESOLVER_IPV6 as DEFAULT_RESOLVER_IPV6, DOMAIN as DOMAIN
2
2
  from _typeshed import Incomplete
3
- from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlowWithConfigEntry as OptionsFlowWithConfigEntry
3
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
4
4
  from homeassistant.const import CONF_NAME as CONF_NAME, CONF_PORT as CONF_PORT
5
5
  from homeassistant.core import callback as callback
6
6
  from typing import Any
@@ -17,5 +17,5 @@ class DnsIPConfigFlow(ConfigFlow, domain=DOMAIN):
17
17
  def async_get_options_flow(config_entry: ConfigEntry) -> DnsIPOptionsFlowHandler: ...
18
18
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
19
19
 
20
- class DnsIPOptionsFlowHandler(OptionsFlowWithConfigEntry):
20
+ class DnsIPOptionsFlowHandler(OptionsFlow):
21
21
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -35,8 +35,6 @@ class DoorBirdConfigFlow(ConfigFlow, domain=DOMAIN):
35
35
  def async_get_options_flow(config_entry: ConfigEntry) -> OptionsFlowHandler: ...
36
36
 
37
37
  class OptionsFlowHandler(OptionsFlow):
38
- config_entry: Incomplete
39
- def __init__(self, config_entry: ConfigEntry) -> None: ...
40
38
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
41
39
 
42
40
  class CannotConnect(HomeAssistantError): ...
@@ -35,8 +35,6 @@ class DSMRFlowHandler(ConfigFlow, domain=DOMAIN):
35
35
  async def async_validate_dsmr(self, input_data: dict[str, Any], errors: dict[str, str]) -> dict[str, Any]: ...
36
36
 
37
37
  class DSMROptionFlowHandler(OptionsFlow):
38
- entry: Incomplete
39
- def __init__(self, entry: ConfigEntry) -> None: ...
40
38
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
41
39
 
42
40
  def get_serial_by_id(dev_path: str) -> str: ...
@@ -8,7 +8,7 @@ from dataclasses import dataclass
8
8
  from deebot_client.capabilities import CapabilityEvent, CapabilityLifeSpan
9
9
  from deebot_client.events import ErrorEvent, Event as Event, LifeSpan as LifeSpan, LifeSpanEvent as LifeSpanEvent
10
10
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
11
- from homeassistant.const import AREA_SQUARE_METERS as AREA_SQUARE_METERS, ATTR_BATTERY_LEVEL as ATTR_BATTERY_LEVEL, CONF_DESCRIPTION as CONF_DESCRIPTION, EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfTime as UnitOfTime
11
+ from homeassistant.const import ATTR_BATTERY_LEVEL as ATTR_BATTERY_LEVEL, CONF_DESCRIPTION as CONF_DESCRIPTION, EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfArea as UnitOfArea, UnitOfTime as UnitOfTime
12
12
  from homeassistant.core import HomeAssistant as HomeAssistant
13
13
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
14
14
  from homeassistant.helpers.typing import StateType as StateType
@@ -1,7 +1,7 @@
1
1
  import voluptuous as vol
2
2
  from .const import CONF_CONFIGURE_VOICE as CONF_CONFIGURE_VOICE, CONF_MODEL as CONF_MODEL, CONF_OPTIMIZE_LATENCY as CONF_OPTIMIZE_LATENCY, CONF_SIMILARITY as CONF_SIMILARITY, CONF_STABILITY as CONF_STABILITY, CONF_STYLE as CONF_STYLE, CONF_USE_SPEAKER_BOOST as CONF_USE_SPEAKER_BOOST, CONF_VOICE as CONF_VOICE, DEFAULT_MODEL as DEFAULT_MODEL, DEFAULT_OPTIMIZE_LATENCY as DEFAULT_OPTIMIZE_LATENCY, DEFAULT_SIMILARITY as DEFAULT_SIMILARITY, DEFAULT_STABILITY as DEFAULT_STABILITY, DEFAULT_STYLE as DEFAULT_STYLE, DEFAULT_USE_SPEAKER_BOOST as DEFAULT_USE_SPEAKER_BOOST, DOMAIN as DOMAIN
3
3
  from _typeshed import Incomplete
4
- from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow, OptionsFlowWithConfigEntry as OptionsFlowWithConfigEntry
4
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
5
5
  from homeassistant.const import CONF_API_KEY as CONF_API_KEY
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant
7
7
  from homeassistant.helpers.httpx_client import get_async_client as get_async_client
@@ -19,7 +19,7 @@ class ElevenLabsConfigFlow(ConfigFlow, domain=DOMAIN):
19
19
  @staticmethod
20
20
  def async_get_options_flow(config_entry: ConfigEntry) -> OptionsFlow: ...
21
21
 
22
- class ElevenLabsOptionsFlow(OptionsFlowWithConfigEntry):
22
+ class ElevenLabsOptionsFlow(OptionsFlow):
23
23
  api_key: Incomplete
24
24
  voices: Incomplete
25
25
  models: Incomplete
@@ -3,7 +3,7 @@ from .const import DOMAIN as DOMAIN, INVALID_AUTH_ERRORS as INVALID_AUTH_ERRORS,
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Mapping
5
5
  from homeassistant.components import zeroconf as zeroconf
6
- from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlowWithConfigEntry as OptionsFlowWithConfigEntry, SOURCE_REAUTH as SOURCE_REAUTH
6
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow, SOURCE_REAUTH as SOURCE_REAUTH
7
7
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_NAME as CONF_NAME, CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
9
  from homeassistant.helpers.httpx_client import get_async_client as get_async_client
@@ -35,5 +35,5 @@ class EnphaseConfigFlow(ConfigFlow, domain=DOMAIN):
35
35
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
36
36
  async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
37
37
 
38
- class EnvoyOptionsFlowHandler(OptionsFlowWithConfigEntry):
38
+ class EnvoyOptionsFlowHandler(OptionsFlow):
39
39
  async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -1,4 +1,4 @@
1
- from .const import DOMAIN as DOMAIN, SIGNAL_THERMOSTAT_CONNECTED as SIGNAL_THERMOSTAT_CONNECTED, SIGNAL_THERMOSTAT_DISCONNECTED as SIGNAL_THERMOSTAT_DISCONNECTED
1
+ from .const import SIGNAL_THERMOSTAT_CONNECTED as SIGNAL_THERMOSTAT_CONNECTED, SIGNAL_THERMOSTAT_DISCONNECTED as SIGNAL_THERMOSTAT_DISCONNECTED
2
2
  from .models import Eq3Config as Eq3Config, Eq3ConfigEntryData as Eq3ConfigEntryData
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.components import bluetooth as bluetooth
@@ -10,9 +10,10 @@ from homeassistant.helpers.dispatcher import async_dispatcher_send as async_disp
10
10
 
11
11
  PLATFORMS: Incomplete
12
12
  _LOGGER: Incomplete
13
+ type Eq3ConfigEntry = ConfigEntry[Eq3ConfigEntryData]
13
14
 
14
- async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
15
- async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
16
- async def update_listener(hass: HomeAssistant, entry: ConfigEntry) -> None: ...
17
- async def _async_run_thermostat(hass: HomeAssistant, entry: ConfigEntry) -> None: ...
18
- async def _async_reconnect_thermostat(hass: HomeAssistant, entry: ConfigEntry) -> None: ...
15
+ async def async_setup_entry(hass: HomeAssistant, entry: Eq3ConfigEntry) -> bool: ...
16
+ async def async_unload_entry(hass: HomeAssistant, entry: Eq3ConfigEntry) -> bool: ...
17
+ async def update_listener(hass: HomeAssistant, entry: Eq3ConfigEntry) -> None: ...
18
+ async def _async_run_thermostat(hass: HomeAssistant, entry: Eq3ConfigEntry) -> None: ...
19
+ async def _async_reconnect_thermostat(hass: HomeAssistant, entry: Eq3ConfigEntry) -> None: ...
@@ -0,0 +1,26 @@
1
+ from . import Eq3ConfigEntry as Eq3ConfigEntry
2
+ from .const import ENTITY_KEY_BATTERY as ENTITY_KEY_BATTERY, ENTITY_KEY_DST as ENTITY_KEY_DST, ENTITY_KEY_WINDOW as ENTITY_KEY_WINDOW
3
+ from .entity import Eq3Entity as Eq3Entity
4
+ from _typeshed import Incomplete
5
+ from collections.abc import Callable as Callable
6
+ from dataclasses import dataclass
7
+ from eq3btsmart.models import Status as Status
8
+ from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription
9
+ from homeassistant.const import EntityCategory as EntityCategory
10
+ from homeassistant.core import HomeAssistant as HomeAssistant
11
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
12
+
13
+ @dataclass(frozen=True, kw_only=True)
14
+ class Eq3BinarySensorEntityDescription(BinarySensorEntityDescription):
15
+ value_func: Callable[[Status], bool]
16
+ 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=..., value_func) -> None: ...
17
+
18
+ BINARY_SENSOR_ENTITY_DESCRIPTIONS: Incomplete
19
+
20
+ async def async_setup_entry(hass: HomeAssistant, entry: Eq3ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
21
+
22
+ class Eq3BinarySensorEntity(Eq3Entity, BinarySensorEntity):
23
+ entity_description: Eq3BinarySensorEntityDescription
24
+ def __init__(self, entry: Eq3ConfigEntry, entity_description: Eq3BinarySensorEntityDescription) -> None: ...
25
+ @property
26
+ def is_on(self) -> bool: ...
@@ -1,23 +1,19 @@
1
- from .const import CurrentTemperatureSelector as CurrentTemperatureSelector, DEVICE_MODEL as DEVICE_MODEL, DOMAIN as DOMAIN, EQ_TO_HA_HVAC as EQ_TO_HA_HVAC, HA_TO_EQ_HVAC as HA_TO_EQ_HVAC, MANUFACTURER as MANUFACTURER, Preset as Preset, SIGNAL_THERMOSTAT_CONNECTED as SIGNAL_THERMOSTAT_CONNECTED, SIGNAL_THERMOSTAT_DISCONNECTED as SIGNAL_THERMOSTAT_DISCONNECTED, TargetTemperatureSelector as TargetTemperatureSelector
1
+ from . import Eq3ConfigEntry as Eq3ConfigEntry
2
+ from .const import CurrentTemperatureSelector as CurrentTemperatureSelector, EQ_TO_HA_HVAC as EQ_TO_HA_HVAC, HA_TO_EQ_HVAC as HA_TO_EQ_HVAC, Preset as Preset, TargetTemperatureSelector as TargetTemperatureSelector
2
3
  from .entity import Eq3Entity as Eq3Entity
3
- from .models import Eq3Config as Eq3Config, Eq3ConfigEntryData as Eq3ConfigEntryData
4
4
  from _typeshed import Incomplete
5
- from eq3btsmart import Thermostat as Thermostat
6
5
  from eq3btsmart.const import EQ3BT_MAX_TEMP, EQ3BT_OFF_TEMP
7
6
  from homeassistant.components.climate import ATTR_HVAC_MODE as ATTR_HVAC_MODE, ClimateEntity as ClimateEntity, ClimateEntityFeature as ClimateEntityFeature, HVACAction as HVACAction, HVACMode as HVACMode, PRESET_NONE as PRESET_NONE
8
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
9
7
  from homeassistant.const import ATTR_TEMPERATURE as ATTR_TEMPERATURE, PRECISION_HALVES as PRECISION_HALVES, UnitOfTemperature as UnitOfTemperature
10
8
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
11
9
  from homeassistant.exceptions import ServiceValidationError as ServiceValidationError
12
- from homeassistant.helpers.device_registry import CONNECTION_BLUETOOTH as CONNECTION_BLUETOOTH, DeviceInfo as DeviceInfo
13
- from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
10
+ from homeassistant.helpers.device_registry import CONNECTION_BLUETOOTH as CONNECTION_BLUETOOTH
14
11
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
15
- from homeassistant.util import slugify as slugify
16
12
  from typing import Any
17
13
 
18
14
  _LOGGER: Incomplete
19
15
 
20
- async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
16
+ async def async_setup_entry(hass: HomeAssistant, entry: Eq3ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
21
17
 
22
18
  class Eq3Climate(Eq3Entity, ClimateEntity):
23
19
  _attr_name: Incomplete
@@ -34,13 +30,6 @@ class Eq3Climate(Eq3Entity, ClimateEntity):
34
30
  _attr_hvac_action: HVACAction | None
35
31
  _attr_preset_mode: str | None
36
32
  _target_temperature: float | None
37
- _attr_unique_id: Incomplete
38
- _attr_device_info: Incomplete
39
- def __init__(self, eq3_config: Eq3Config, thermostat: Thermostat) -> None: ...
40
- async def async_added_to_hass(self) -> None: ...
41
- async def async_will_remove_from_hass(self) -> None: ...
42
- def _async_on_disconnected(self) -> None: ...
43
- def _async_on_connected(self) -> None: ...
44
33
  def _async_on_updated(self) -> None: ...
45
34
  _attr_current_temperature: Incomplete
46
35
  _attr_target_temperature: Incomplete
@@ -6,6 +6,19 @@ from homeassistant.components.climate import HVACMode as HVACMode, PRESET_AWAY a
6
6
  DOMAIN: str
7
7
  MANUFACTURER: str
8
8
  DEVICE_MODEL: str
9
+ ENTITY_KEY_DST: str
10
+ ENTITY_KEY_BATTERY: str
11
+ ENTITY_KEY_WINDOW: str
12
+ ENTITY_KEY_LOCK: str
13
+ ENTITY_KEY_BOOST: str
14
+ ENTITY_KEY_AWAY: str
15
+ ENTITY_KEY_COMFORT: str
16
+ ENTITY_KEY_ECO: str
17
+ ENTITY_KEY_OFFSET: str
18
+ ENTITY_KEY_WINDOW_OPEN_TEMPERATURE: str
19
+ ENTITY_KEY_WINDOW_OPEN_TIMEOUT: str
20
+ ENTITY_KEY_VALVE: str
21
+ ENTITY_KEY_AWAY_UNTIL: str
9
22
  GET_DEVICE_TIMEOUT: int
10
23
  EQ_TO_HA_HVAC: dict[OperationMode, HVACMode]
11
24
  HA_TO_EQ_HVAC: Incomplete
@@ -36,3 +49,4 @@ DEFAULT_TARGET_TEMP_SELECTOR: Incomplete
36
49
  DEFAULT_SCAN_INTERVAL: int
37
50
  SIGNAL_THERMOSTAT_DISCONNECTED: Incomplete
38
51
  SIGNAL_THERMOSTAT_CONNECTED: Incomplete
52
+ EQ3BT_STEP: float
@@ -1,10 +1,24 @@
1
- from .models import Eq3Config as Eq3Config
1
+ from . import Eq3ConfigEntry as Eq3ConfigEntry
2
+ from .const import DEVICE_MODEL as DEVICE_MODEL, MANUFACTURER as MANUFACTURER, SIGNAL_THERMOSTAT_CONNECTED as SIGNAL_THERMOSTAT_CONNECTED, SIGNAL_THERMOSTAT_DISCONNECTED as SIGNAL_THERMOSTAT_DISCONNECTED
2
3
  from _typeshed import Incomplete
3
- from eq3btsmart.thermostat import Thermostat as Thermostat
4
+ from homeassistant.core import callback as callback
5
+ from homeassistant.helpers.device_registry import CONNECTION_BLUETOOTH as CONNECTION_BLUETOOTH, DeviceInfo as DeviceInfo, format_mac as format_mac
6
+ from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
4
7
  from homeassistant.helpers.entity import Entity as Entity
8
+ from homeassistant.util import slugify as slugify
5
9
 
6
10
  class Eq3Entity(Entity):
7
11
  _attr_has_entity_name: bool
8
12
  _eq3_config: Incomplete
9
13
  _thermostat: Incomplete
10
- def __init__(self, eq3_config: Eq3Config, thermostat: Thermostat) -> None: ...
14
+ _attr_device_info: Incomplete
15
+ _attr_unique_id: Incomplete
16
+ def __init__(self, entry: Eq3ConfigEntry, unique_id_key: str | None = None) -> None: ...
17
+ async def async_added_to_hass(self) -> None: ...
18
+ async def async_will_remove_from_hass(self) -> None: ...
19
+ def _async_on_updated(self) -> None: ...
20
+ _attr_available: bool
21
+ def _async_on_disconnected(self) -> None: ...
22
+ def _async_on_connected(self) -> None: ...
23
+ @property
24
+ def available(self) -> bool: ...
@@ -9,9 +9,7 @@ class Eq3Config:
9
9
  target_temp_selector: TargetTemperatureSelector = ...
10
10
  external_temp_sensor: str = ...
11
11
  scan_interval: int = ...
12
- default_away_hours: float = ...
13
- default_away_temperature: float = ...
14
- def __init__(self, mac_address, current_temp_selector=..., target_temp_selector=..., external_temp_sensor=..., scan_interval=..., default_away_hours=..., default_away_temperature=...) -> None: ...
12
+ def __init__(self, mac_address, current_temp_selector=..., target_temp_selector=..., external_temp_sensor=..., scan_interval=...) -> None: ...
15
13
 
16
14
  @dataclass(slots=True)
17
15
  class Eq3ConfigEntryData:
@@ -0,0 +1,33 @@
1
+ from . import Eq3ConfigEntry as Eq3ConfigEntry
2
+ from .const import ENTITY_KEY_COMFORT as ENTITY_KEY_COMFORT, ENTITY_KEY_ECO as ENTITY_KEY_ECO, ENTITY_KEY_OFFSET as ENTITY_KEY_OFFSET, ENTITY_KEY_WINDOW_OPEN_TEMPERATURE as ENTITY_KEY_WINDOW_OPEN_TEMPERATURE, ENTITY_KEY_WINDOW_OPEN_TIMEOUT as ENTITY_KEY_WINDOW_OPEN_TIMEOUT, EQ3BT_STEP as EQ3BT_STEP
3
+ from .entity import Eq3Entity as Eq3Entity
4
+ from _typeshed import Incomplete
5
+ from collections.abc import Awaitable, Callable as Callable
6
+ from dataclasses import dataclass
7
+ from eq3btsmart import Thermostat as Thermostat
8
+ from eq3btsmart.models import Presets as Presets
9
+ from homeassistant.components.number import NumberDeviceClass as NumberDeviceClass, NumberEntity as NumberEntity, NumberEntityDescription as NumberEntityDescription, NumberMode as NumberMode
10
+ from homeassistant.const import EntityCategory as EntityCategory, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime
11
+ from homeassistant.core import HomeAssistant as HomeAssistant
12
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
13
+
14
+ @dataclass(frozen=True, kw_only=True)
15
+ class Eq3NumberEntityDescription(NumberEntityDescription):
16
+ value_func: Callable[[Presets], float]
17
+ value_set_func: Callable[[Thermostat], Callable[[float], Awaitable[None]]]
18
+ mode: NumberMode = ...
19
+ entity_category: EntityCategory | None = ...
20
+ 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=..., value_func, value_set_func) -> None: ...
21
+
22
+ NUMBER_ENTITY_DESCRIPTIONS: Incomplete
23
+
24
+ async def async_setup_entry(hass: HomeAssistant, entry: Eq3ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
25
+
26
+ class Eq3NumberEntity(Eq3Entity, NumberEntity):
27
+ entity_description: Eq3NumberEntityDescription
28
+ def __init__(self, entry: Eq3ConfigEntry, entity_description: Eq3NumberEntityDescription) -> None: ...
29
+ @property
30
+ def native_value(self) -> float: ...
31
+ async def async_set_native_value(self, value: float) -> None: ...
32
+ @property
33
+ def available(self) -> bool: ...