homeassistant-stubs 2025.4.4__py3-none-any.whl → 2025.5.0b1__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 (397) hide show
  1. homeassistant-stubs/components/adax/__init__.pyi +5 -4
  2. homeassistant-stubs/components/adax/climate.pyi +25 -17
  3. homeassistant-stubs/components/adax/const.pyi +2 -0
  4. homeassistant-stubs/components/adax/coordinator.pyi +21 -0
  5. homeassistant-stubs/components/androidtv_remote/media_player.pyi +1 -1
  6. homeassistant-stubs/components/apcupsd/binary_sensor.pyi +1 -1
  7. homeassistant-stubs/components/apcupsd/coordinator.pyi +2 -0
  8. homeassistant-stubs/components/apcupsd/sensor.pyi +1 -1
  9. homeassistant-stubs/components/apsystems/coordinator.pyi +1 -0
  10. homeassistant-stubs/components/apsystems/switch.pyi +1 -1
  11. homeassistant-stubs/components/asuswrt/router.pyi +2 -3
  12. homeassistant-stubs/components/automation/__init__.pyi +2 -2
  13. homeassistant-stubs/components/automation/config.pyi +2 -2
  14. homeassistant-stubs/components/automation/const.pyi +0 -4
  15. homeassistant-stubs/components/axis/hub/api.pyi +2 -2
  16. homeassistant-stubs/components/backup/config.pyi +10 -2
  17. homeassistant-stubs/components/backup/onboarding.pyi +30 -0
  18. homeassistant-stubs/components/bluetooth/passive_update_processor.pyi +3 -0
  19. homeassistant-stubs/components/bluetooth/storage.pyi +1 -1
  20. homeassistant-stubs/components/bond/config_flow.pyi +3 -0
  21. homeassistant-stubs/components/bosch_alarm/__init__.pyi +1 -1
  22. homeassistant-stubs/components/bosch_alarm/alarm_control_panel.pyi +2 -11
  23. homeassistant-stubs/components/bosch_alarm/config_flow.pyi +5 -1
  24. homeassistant-stubs/components/bosch_alarm/diagnostics.pyi +11 -0
  25. homeassistant-stubs/components/bosch_alarm/entity.pyi +29 -0
  26. homeassistant-stubs/components/bosch_alarm/sensor.pyi +30 -0
  27. homeassistant-stubs/components/cambridge_audio/media_player.pyi +2 -0
  28. homeassistant-stubs/components/canary/__init__.pyi +1 -5
  29. homeassistant-stubs/components/canary/config_flow.pyi +0 -1
  30. homeassistant-stubs/components/cloud/const.pyi +1 -0
  31. homeassistant-stubs/components/cloud/http_api.pyi +1 -1
  32. homeassistant-stubs/components/cloud/onboarding.pyi +35 -0
  33. homeassistant-stubs/components/cloud/tts.pyi +4 -1
  34. homeassistant-stubs/components/comelit/__init__.pyi +1 -0
  35. homeassistant-stubs/components/comelit/alarm_control_panel.pyi +0 -1
  36. homeassistant-stubs/components/comelit/binary_sensor.pyi +0 -1
  37. homeassistant-stubs/components/comelit/climate.pyi +2 -7
  38. homeassistant-stubs/components/comelit/config_flow.pyi +1 -0
  39. homeassistant-stubs/components/comelit/coordinator.pyi +3 -2
  40. homeassistant-stubs/components/comelit/cover.pyi +2 -7
  41. homeassistant-stubs/components/comelit/entity.pyi +11 -0
  42. homeassistant-stubs/components/comelit/humidifier.pyi +2 -6
  43. homeassistant-stubs/components/comelit/light.pyi +2 -9
  44. homeassistant-stubs/components/comelit/sensor.pyi +2 -7
  45. homeassistant-stubs/components/comelit/switch.pyi +2 -6
  46. homeassistant-stubs/components/comelit/utils.pyi +5 -0
  47. homeassistant-stubs/components/command_line/__init__.pyi +1 -1
  48. homeassistant-stubs/components/command_line/binary_sensor.pyi +2 -2
  49. homeassistant-stubs/components/command_line/cover.pyi +2 -2
  50. homeassistant-stubs/components/command_line/sensor.pyi +2 -2
  51. homeassistant-stubs/components/command_line/switch.pyi +2 -2
  52. homeassistant-stubs/components/config/config_entries.pyi +3 -1
  53. homeassistant-stubs/components/demo/light.pyi +3 -2
  54. homeassistant-stubs/components/demo/media_player.pyi +4 -0
  55. homeassistant-stubs/components/device_tracker/config_entry.pyi +2 -2
  56. homeassistant-stubs/components/devolo_home_control/__init__.pyi +2 -2
  57. homeassistant-stubs/components/devolo_home_network/device_tracker.pyi +1 -2
  58. homeassistant-stubs/components/dhcp/__init__.pyi +6 -13
  59. homeassistant-stubs/components/dhcp/const.pyi +5 -0
  60. homeassistant-stubs/components/dhcp/helpers.pyi +8 -0
  61. homeassistant-stubs/components/dhcp/models.pyi +25 -0
  62. homeassistant-stubs/components/dhcp/websocket_api.pyi +13 -0
  63. homeassistant-stubs/components/ecovacs/image.pyi +1 -0
  64. homeassistant-stubs/components/eheimdigital/number.pyi +38 -0
  65. homeassistant-stubs/components/eheimdigital/sensor.pyi +32 -0
  66. homeassistant-stubs/components/eheimdigital/switch.pyi +26 -0
  67. homeassistant-stubs/components/eheimdigital/time.pyi +37 -0
  68. homeassistant-stubs/components/elevenlabs/tts.pyi +2 -2
  69. homeassistant-stubs/components/energy/sensor.pyi +5 -0
  70. homeassistant-stubs/components/enphase_envoy/config_flow.pyi +3 -1
  71. homeassistant-stubs/components/enphase_envoy/coordinator.pyi +12 -1
  72. homeassistant-stubs/components/esphome/__init__.pyi +5 -4
  73. homeassistant-stubs/components/esphome/alarm_control_panel.pyi +1 -0
  74. homeassistant-stubs/components/esphome/assist_satellite.pyi +7 -6
  75. homeassistant-stubs/components/esphome/binary_sensor.pyi +5 -13
  76. homeassistant-stubs/components/esphome/button.pyi +2 -0
  77. homeassistant-stubs/components/esphome/camera.pyi +2 -0
  78. homeassistant-stubs/components/esphome/climate.pyi +1 -0
  79. homeassistant-stubs/components/esphome/config_flow.pyi +26 -5
  80. homeassistant-stubs/components/esphome/const.pyi +2 -1
  81. homeassistant-stubs/components/esphome/coordinator.pyi +4 -3
  82. homeassistant-stubs/components/esphome/cover.pyi +2 -0
  83. homeassistant-stubs/components/esphome/dashboard.pyi +1 -1
  84. homeassistant-stubs/components/esphome/date.pyi +2 -0
  85. homeassistant-stubs/components/esphome/datetime.pyi +2 -0
  86. homeassistant-stubs/components/esphome/diagnostics.pyi +2 -0
  87. homeassistant-stubs/components/esphome/entity.pyi +12 -9
  88. homeassistant-stubs/components/esphome/event.pyi +2 -0
  89. homeassistant-stubs/components/esphome/fan.pyi +4 -3
  90. homeassistant-stubs/components/esphome/ffmpeg_proxy.pyi +10 -2
  91. homeassistant-stubs/components/esphome/light.pyi +8 -7
  92. homeassistant-stubs/components/esphome/lock.pyi +6 -4
  93. homeassistant-stubs/components/esphome/manager.pyi +7 -3
  94. homeassistant-stubs/components/esphome/media_player.pyi +2 -1
  95. homeassistant-stubs/components/esphome/number.pyi +1 -0
  96. homeassistant-stubs/components/esphome/repairs.pyi +21 -2
  97. homeassistant-stubs/components/esphome/select.pyi +3 -2
  98. homeassistant-stubs/components/esphome/sensor.pyi +4 -2
  99. homeassistant-stubs/components/esphome/switch.pyi +3 -1
  100. homeassistant-stubs/components/esphome/text.pyi +1 -0
  101. homeassistant-stubs/components/esphome/time.pyi +2 -0
  102. homeassistant-stubs/components/esphome/update.pyi +8 -9
  103. homeassistant-stubs/components/esphome/valve.pyi +3 -1
  104. homeassistant-stubs/components/fritz/binary_sensor.pyi +1 -0
  105. homeassistant-stubs/components/fritz/button.pyi +1 -0
  106. homeassistant-stubs/components/fritz/coordinator.pyi +3 -4
  107. homeassistant-stubs/components/fritz/device_tracker.pyi +1 -0
  108. homeassistant-stubs/components/fritz/image.pyi +1 -0
  109. homeassistant-stubs/components/fritz/sensor.pyi +1 -0
  110. homeassistant-stubs/components/fritz/switch.pyi +1 -0
  111. homeassistant-stubs/components/fritz/update.pyi +1 -0
  112. homeassistant-stubs/components/fritzbox/binary_sensor.pyi +2 -5
  113. homeassistant-stubs/components/fritzbox/climate.pyi +3 -3
  114. homeassistant-stubs/components/fritzbox/coordinator.pyi +1 -1
  115. homeassistant-stubs/components/fritzbox/sensor.pyi +3 -6
  116. homeassistant-stubs/components/heos/const.pyi +4 -0
  117. homeassistant-stubs/components/heos/media_player.pyi +5 -4
  118. homeassistant-stubs/components/heos/services.pyi +22 -2
  119. homeassistant-stubs/components/history/websocket_api.pyi +1 -1
  120. homeassistant-stubs/components/history_stats/data.pyi +2 -1
  121. homeassistant-stubs/components/home_connect/__init__.pyi +0 -1
  122. homeassistant-stubs/components/home_connect/binary_sensor.pyi +2 -13
  123. homeassistant-stubs/components/home_connect/coordinator.pyi +5 -0
  124. homeassistant-stubs/components/home_connect/repairs.pyi +10 -0
  125. homeassistant-stubs/components/home_connect/select.pyi +6 -2
  126. homeassistant-stubs/components/home_connect/sensor.pyi +5 -3
  127. homeassistant-stubs/components/homee/climate.pyi +47 -0
  128. homeassistant-stubs/components/homee/const.pyi +1 -0
  129. homeassistant-stubs/components/homee/number.pyi +12 -4
  130. homeassistant-stubs/components/homekit/__init__.pyi +5 -3
  131. homeassistant-stubs/components/homekit/accessories.pyi +2 -1
  132. homeassistant-stubs/components/homekit/const.pyi +13 -0
  133. homeassistant-stubs/components/homekit/type_air_purifiers.pyi +69 -0
  134. homeassistant-stubs/components/homekit/type_fans.pyi +7 -4
  135. homeassistant-stubs/components/homekit/type_media_players.pyi +2 -1
  136. homeassistant-stubs/components/homekit/type_switches.pyi +1 -1
  137. homeassistant-stubs/components/homekit/type_triggers.pyi +1 -1
  138. homeassistant-stubs/components/homekit/util.pyi +2 -1
  139. homeassistant-stubs/components/http/headers.pyi +6 -0
  140. homeassistant-stubs/components/huawei_lte/binary_sensor.pyi +3 -1
  141. homeassistant-stubs/components/huawei_lte/config_flow.pyi +1 -1
  142. homeassistant-stubs/components/huawei_lte/entity.pyi +0 -3
  143. homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +1 -0
  144. homeassistant-stubs/components/husqvarna_automower/sensor.pyi +2 -1
  145. homeassistant-stubs/components/hyperion/__init__.pyi +12 -5
  146. homeassistant-stubs/components/hyperion/camera.pyi +3 -4
  147. homeassistant-stubs/components/hyperion/const.pyi +0 -3
  148. homeassistant-stubs/components/hyperion/light.pyi +4 -6
  149. homeassistant-stubs/components/hyperion/sensor.pyi +3 -4
  150. homeassistant-stubs/components/hyperion/switch.pyi +3 -4
  151. homeassistant-stubs/components/incomfort/climate.pyi +1 -2
  152. homeassistant-stubs/components/iron_os/__init__.pyi +1 -3
  153. homeassistant-stubs/components/iron_os/config_flow.pyi +3 -0
  154. homeassistant-stubs/components/iron_os/coordinator.pyi +4 -2
  155. homeassistant-stubs/components/iron_os/entity.pyi +2 -0
  156. homeassistant-stubs/components/iron_os/update.pyi +4 -2
  157. homeassistant-stubs/components/isy994/entity.pyi +1 -0
  158. homeassistant-stubs/components/isy994/services.pyi +1 -0
  159. homeassistant-stubs/components/isy994/switch.pyi +1 -1
  160. homeassistant-stubs/components/jewish_calendar/config_flow.pyi +1 -2
  161. homeassistant-stubs/components/jewish_calendar/const.pyi +1 -0
  162. homeassistant-stubs/components/jewish_calendar/entity.pyi +0 -1
  163. homeassistant-stubs/components/jewish_calendar/sensor.pyi +1 -0
  164. homeassistant-stubs/components/jewish_calendar/service.pyi +4 -3
  165. homeassistant-stubs/components/kulersky/__init__.pyi +14 -0
  166. homeassistant-stubs/components/kulersky/config_flow.pyi +17 -0
  167. homeassistant-stubs/components/kulersky/const.pyi +4 -0
  168. homeassistant-stubs/components/kulersky/light.pyi +34 -0
  169. homeassistant-stubs/components/lamarzocco/__init__.pyi +4 -2
  170. homeassistant-stubs/components/lamarzocco/binary_sensor.pyi +3 -7
  171. homeassistant-stubs/components/lamarzocco/calendar.pyi +3 -4
  172. homeassistant-stubs/components/lamarzocco/config_flow.pyi +4 -3
  173. homeassistant-stubs/components/lamarzocco/coordinator.pyi +13 -16
  174. homeassistant-stubs/components/lamarzocco/diagnostics.pyi +3 -8
  175. homeassistant-stubs/components/lamarzocco/entity.pyi +1 -5
  176. homeassistant-stubs/components/lamarzocco/number.pyi +4 -29
  177. homeassistant-stubs/components/lamarzocco/select.pyi +3 -8
  178. homeassistant-stubs/components/lamarzocco/sensor.pyi +11 -24
  179. homeassistant-stubs/components/lamarzocco/switch.pyi +6 -5
  180. homeassistant-stubs/components/lamarzocco/update.pyi +4 -1
  181. homeassistant-stubs/components/lcn/__init__.pyi +4 -3
  182. homeassistant-stubs/components/lcn/entity.pyi +3 -3
  183. homeassistant-stubs/components/lcn/helpers.pyi +2 -2
  184. homeassistant-stubs/components/lcn/websocket.pyi +1 -1
  185. homeassistant-stubs/components/linkplay/__init__.pyi +1 -1
  186. homeassistant-stubs/components/linkplay/const.pyi +8 -2
  187. homeassistant-stubs/components/linkplay/media_player.pyi +6 -4
  188. homeassistant-stubs/components/logbook/websocket_api.pyi +1 -1
  189. homeassistant-stubs/components/logger/__init__.pyi +1 -1
  190. homeassistant-stubs/components/logger/helpers.pyi +4 -2
  191. homeassistant-stubs/components/logger/websocket_api.pyi +1 -1
  192. homeassistant-stubs/components/matter/entity.pyi +1 -0
  193. homeassistant-stubs/components/matter/select.pyi +1 -1
  194. homeassistant-stubs/components/matter/sensor.pyi +3 -1
  195. homeassistant-stubs/components/matter/switch.pyi +20 -0
  196. homeassistant-stubs/components/matter/water_heater.pyi +39 -0
  197. homeassistant-stubs/components/mcp/application_credentials.pyi +12 -0
  198. homeassistant-stubs/components/mcp/config_flow.pyi +27 -6
  199. homeassistant-stubs/components/mcp/const.pyi +3 -0
  200. homeassistant-stubs/components/mcp/coordinator.pyi +8 -5
  201. homeassistant-stubs/components/media_player/__init__.pyi +7 -3
  202. homeassistant-stubs/components/media_player/browse_media.pyi +16 -1
  203. homeassistant-stubs/components/media_player/const.pyi +4 -0
  204. homeassistant-stubs/components/media_player/errors.pyi +1 -0
  205. homeassistant-stubs/components/media_source/error.pyi +1 -0
  206. homeassistant-stubs/components/met_eireann/__init__.pyi +2 -2
  207. homeassistant-stubs/components/met_eireann/weather.pyi +3 -3
  208. homeassistant-stubs/components/mjpeg/config_flow.pyi +2 -2
  209. homeassistant-stubs/components/motionmount/select.pyi +1 -1
  210. homeassistant-stubs/components/mqtt/config_flow.pyi +18 -4
  211. homeassistant-stubs/components/mqtt/const.pyi +3 -0
  212. homeassistant-stubs/components/mqtt/device_tracker.pyi +11 -14
  213. homeassistant-stubs/components/mqtt/entity.pyi +3 -0
  214. homeassistant-stubs/components/mqtt/light/schema_basic.pyi +1 -2
  215. homeassistant-stubs/components/mqtt/light/schema_json.pyi +3 -2
  216. homeassistant-stubs/components/music_assistant/media_browser.pyi +17 -2
  217. homeassistant-stubs/components/music_assistant/media_player.pyi +3 -2
  218. homeassistant-stubs/components/network/__init__.pyi +2 -0
  219. homeassistant-stubs/components/ntfy/__init__.pyi +16 -0
  220. homeassistant-stubs/components/ntfy/config_flow.pyi +29 -0
  221. homeassistant-stubs/components/ntfy/const.pyi +6 -0
  222. homeassistant-stubs/components/ntfy/diagnostics.pyi +7 -0
  223. homeassistant-stubs/components/ntfy/notify.pyi +25 -0
  224. homeassistant-stubs/components/nut/__init__.pyi +7 -3
  225. homeassistant-stubs/components/nut/config_flow.pyi +11 -14
  226. homeassistant-stubs/components/nut/const.pyi +0 -1
  227. homeassistant-stubs/components/nut/device_action.pyi +5 -1
  228. homeassistant-stubs/components/nut/sensor.pyi +6 -3
  229. homeassistant-stubs/components/ohme/__init__.pyi +15 -0
  230. homeassistant-stubs/components/ohme/button.pyi +26 -0
  231. homeassistant-stubs/components/ohme/config_flow.pyi +17 -0
  232. homeassistant-stubs/components/ohme/const.pyi +5 -0
  233. homeassistant-stubs/components/ohme/coordinator.pyi +44 -0
  234. homeassistant-stubs/components/ohme/diagnostics.pyi +5 -0
  235. homeassistant-stubs/components/ohme/entity.pyi +23 -0
  236. homeassistant-stubs/components/ohme/number.pyi +30 -0
  237. homeassistant-stubs/components/ohme/select.pyi +33 -0
  238. homeassistant-stubs/components/ohme/sensor.pyi +26 -0
  239. homeassistant-stubs/components/ohme/services.pyi +19 -0
  240. homeassistant-stubs/components/ohme/switch.pyi +45 -0
  241. homeassistant-stubs/components/ohme/time.pyi +30 -0
  242. homeassistant-stubs/components/onboarding/__init__.pyi +1 -0
  243. homeassistant-stubs/components/onboarding/views.pyi +29 -43
  244. homeassistant-stubs/components/oncue/__init__.pyi +5 -11
  245. homeassistant-stubs/components/oncue/config_flow.pyi +2 -13
  246. homeassistant-stubs/components/onewire/sensor.pyi +1 -2
  247. homeassistant-stubs/components/onkyo/config_flow.pyi +2 -3
  248. homeassistant-stubs/components/onkyo/const.pyi +0 -2
  249. homeassistant-stubs/components/onkyo/media_player.pyi +3 -14
  250. homeassistant-stubs/components/openai_conversation/config_flow.pyi +3 -3
  251. homeassistant-stubs/components/openai_conversation/const.pyi +1 -0
  252. homeassistant-stubs/components/openai_conversation/conversation.pyi +1 -1
  253. homeassistant-stubs/components/overkiz/climate/atlantic_electrical_heater_with_adjustable_temperature_setpoint.pyi +4 -1
  254. homeassistant-stubs/components/overkiz/climate/atlantic_electrical_towel_dryer.pyi +2 -1
  255. homeassistant-stubs/components/overkiz/config_flow.pyi +1 -7
  256. homeassistant-stubs/components/overkiz/entity.pyi +2 -1
  257. homeassistant-stubs/components/overkiz/number.pyi +1 -1
  258. homeassistant-stubs/components/overkiz/sensor.pyi +1 -1
  259. homeassistant-stubs/components/pegel_online/__init__.pyi +13 -0
  260. homeassistant-stubs/components/pegel_online/config_flow.pyi +15 -0
  261. homeassistant-stubs/components/pegel_online/const.pyi +6 -0
  262. homeassistant-stubs/components/pegel_online/coordinator.pyi +16 -0
  263. homeassistant-stubs/components/pegel_online/diagnostics.pyi +5 -0
  264. homeassistant-stubs/components/pegel_online/entity.pyi +12 -0
  265. homeassistant-stubs/components/pegel_online/sensor.pyi +28 -0
  266. homeassistant-stubs/components/powerwall/sensor.pyi +0 -1
  267. homeassistant-stubs/components/recorder/core.pyi +2 -0
  268. homeassistant-stubs/components/recorder/entity_registry.pyi +2 -1
  269. homeassistant-stubs/components/recorder/tasks.pyi +2 -1
  270. homeassistant-stubs/components/renault/binary_sensor.pyi +8 -2
  271. homeassistant-stubs/components/renault/config_flow.pyi +2 -1
  272. homeassistant-stubs/components/renault/const.pyi +2 -1
  273. homeassistant-stubs/components/renault/coordinator.pyi +4 -1
  274. homeassistant-stubs/components/renault/entity.pyi +2 -0
  275. homeassistant-stubs/components/renault/renault_hub.pyi +5 -2
  276. homeassistant-stubs/components/renault/renault_vehicle.pyi +5 -2
  277. homeassistant-stubs/components/renault/services.pyi +5 -0
  278. homeassistant-stubs/components/rest/binary_sensor.pyi +2 -2
  279. homeassistant-stubs/components/rest/schema.pyi +1 -1
  280. homeassistant-stubs/components/rest/sensor.pyi +2 -2
  281. homeassistant-stubs/components/rest/switch.pyi +4 -3
  282. homeassistant-stubs/components/roborock/__init__.pyi +1 -0
  283. homeassistant-stubs/components/roborock/config_flow.pyi +1 -0
  284. homeassistant-stubs/components/samsungtv/__init__.pyi +6 -7
  285. homeassistant-stubs/components/samsungtv/config_flow.pyi +1 -1
  286. homeassistant-stubs/components/samsungtv/entity.pyi +3 -2
  287. homeassistant-stubs/components/samsungtv/media_player.pyi +1 -2
  288. homeassistant-stubs/components/samsungtv/remote.pyi +2 -2
  289. homeassistant-stubs/components/scrape/__init__.pyi +1 -1
  290. homeassistant-stubs/components/scrape/sensor.pyi +4 -5
  291. homeassistant-stubs/components/shelly/__init__.pyi +1 -0
  292. homeassistant-stubs/components/shelly/climate.pyi +2 -1
  293. homeassistant-stubs/components/shelly/const.pyi +2 -0
  294. homeassistant-stubs/components/shelly/coordinator.pyi +1 -0
  295. homeassistant-stubs/components/shelly/entity.pyi +5 -2
  296. homeassistant-stubs/components/shelly/number.pyi +4 -3
  297. homeassistant-stubs/components/shelly/repairs.pyi +19 -0
  298. homeassistant-stubs/components/shelly/select.pyi +3 -1
  299. homeassistant-stubs/components/shelly/text.pyi +4 -1
  300. homeassistant-stubs/components/shelly/utils.pyi +2 -3
  301. homeassistant-stubs/components/smlight/binary_sensor.pyi +1 -0
  302. homeassistant-stubs/components/smlight/button.pyi +1 -0
  303. homeassistant-stubs/components/smlight/sensor.pyi +2 -0
  304. homeassistant-stubs/components/smlight/switch.pyi +1 -0
  305. homeassistant-stubs/components/smlight/update.pyi +3 -1
  306. homeassistant-stubs/components/smtp/__init__.pyi +0 -0
  307. homeassistant-stubs/components/smtp/const.pyi +17 -0
  308. homeassistant-stubs/components/smtp/notify.pyi +47 -0
  309. homeassistant-stubs/components/sql/__init__.pyi +1 -1
  310. homeassistant-stubs/components/sql/sensor.pyi +4 -4
  311. homeassistant-stubs/components/ssdp/__init__.pyi +6 -96
  312. homeassistant-stubs/components/ssdp/common.pyi +5 -0
  313. homeassistant-stubs/components/ssdp/const.pyi +3 -0
  314. homeassistant-stubs/components/ssdp/scanner.pyi +75 -0
  315. homeassistant-stubs/components/ssdp/server.pyi +30 -0
  316. homeassistant-stubs/components/ssdp/websocket_api.pyi +16 -0
  317. homeassistant-stubs/components/switcher_kis/button.pyi +2 -1
  318. homeassistant-stubs/components/switcher_kis/climate.pyi +2 -4
  319. homeassistant-stubs/components/switcher_kis/config_flow.pyi +3 -2
  320. homeassistant-stubs/components/switcher_kis/cover.pyi +0 -2
  321. homeassistant-stubs/components/switcher_kis/entity.pyi +4 -0
  322. homeassistant-stubs/components/switcher_kis/light.pyi +3 -8
  323. homeassistant-stubs/components/switcher_kis/sensor.pyi +13 -6
  324. homeassistant-stubs/components/switcher_kis/switch.pyi +9 -15
  325. homeassistant-stubs/components/switcher_kis/utils.pyi +1 -1
  326. homeassistant-stubs/components/synology_dsm/common.pyi +3 -0
  327. homeassistant-stubs/components/synology_dsm/sensor.pyi +9 -1
  328. homeassistant-stubs/components/todo/__init__.pyi +1 -0
  329. homeassistant-stubs/components/tplink_omada/config_flow.pyi +1 -2
  330. homeassistant-stubs/components/tractive/__init__.pyi +1 -1
  331. homeassistant-stubs/components/tractive/binary_sensor.pyi +9 -3
  332. homeassistant-stubs/components/tractive/const.pyi +1 -0
  333. homeassistant-stubs/components/tractive/device_tracker.pyi +1 -1
  334. homeassistant-stubs/components/tts/__init__.pyi +22 -13
  335. homeassistant-stubs/components/tts/legacy.pyi +1 -0
  336. homeassistant-stubs/components/tts/media_source.pyi +5 -2
  337. homeassistant-stubs/components/unifi/hub/api.pyi +2 -2
  338. homeassistant-stubs/components/uptimerobot/__init__.pyi +4 -5
  339. homeassistant-stubs/components/uptimerobot/binary_sensor.pyi +4 -4
  340. homeassistant-stubs/components/uptimerobot/coordinator.pyi +3 -2
  341. homeassistant-stubs/components/uptimerobot/diagnostics.pyi +2 -4
  342. homeassistant-stubs/components/uptimerobot/entity.pyi +0 -2
  343. homeassistant-stubs/components/uptimerobot/sensor.pyi +3 -4
  344. homeassistant-stubs/components/uptimerobot/switch.pyi +5 -4
  345. homeassistant-stubs/components/vodafone_station/__init__.pyi +1 -0
  346. homeassistant-stubs/components/vodafone_station/config_flow.pyi +1 -0
  347. homeassistant-stubs/components/vodafone_station/coordinator.pyi +2 -1
  348. homeassistant-stubs/components/vodafone_station/utils.pyi +5 -0
  349. homeassistant-stubs/components/websocket_api/commands.pyi +3 -1
  350. homeassistant-stubs/components/websocket_api/http.pyi +4 -1
  351. homeassistant-stubs/components/wemo/__init__.pyi +1 -1
  352. homeassistant-stubs/components/wemo/coordinator.pyi +1 -1
  353. homeassistant-stubs/components/wemo/models.pyi +3 -4
  354. homeassistant-stubs/components/workday/config_flow.pyi +1 -1
  355. homeassistant-stubs/components/xiaomi_ble/const.pyi +2 -0
  356. homeassistant-stubs/components/xiaomi_ble/device_trigger.pyi +1 -1
  357. homeassistant-stubs/components/xiaomi_ble/sensor.pyi +2 -2
  358. homeassistant-stubs/components/zeroconf/__init__.pyi +6 -49
  359. homeassistant-stubs/components/zeroconf/const.pyi +3 -0
  360. homeassistant-stubs/components/zeroconf/discovery.pyi +63 -0
  361. homeassistant-stubs/components/zeroconf/websocket_api.pyi +40 -0
  362. homeassistant-stubs/components/zone/__init__.pyi +4 -1
  363. homeassistant-stubs/components/zwave_js/__init__.pyi +2 -2
  364. homeassistant-stubs/components/zwave_js/api.pyi +8 -3
  365. homeassistant-stubs/components/zwave_js/config_flow.pyi +41 -59
  366. homeassistant-stubs/components/zwave_js/helpers.pyi +2 -1
  367. homeassistant-stubs/config_entries.pyi +13 -9
  368. homeassistant-stubs/const.pyi +5 -0
  369. homeassistant-stubs/core.pyi +1 -3
  370. homeassistant-stubs/core_config.pyi +1 -1
  371. homeassistant-stubs/data_entry_flow.pyi +5 -1
  372. homeassistant-stubs/helpers/area_registry.pyi +5 -1
  373. homeassistant-stubs/helpers/config_entry_oauth2_flow.pyi +1 -1
  374. homeassistant-stubs/helpers/config_validation.pyi +1 -0
  375. homeassistant-stubs/helpers/device_registry.pyi +1 -3
  376. homeassistant-stubs/helpers/entity.pyi +1 -1
  377. homeassistant-stubs/helpers/entity_platform.pyi +3 -3
  378. homeassistant-stubs/helpers/entity_registry.pyi +6 -6
  379. homeassistant-stubs/helpers/event.pyi +2 -0
  380. homeassistant-stubs/helpers/floor_registry.pyi +12 -3
  381. homeassistant-stubs/helpers/llm.pyi +24 -1
  382. homeassistant-stubs/helpers/network.pyi +1 -1
  383. homeassistant-stubs/helpers/script.pyi +2 -1
  384. homeassistant-stubs/helpers/template.pyi +1 -0
  385. homeassistant-stubs/helpers/trigger_template_entity.pyi +17 -2
  386. homeassistant-stubs/loader.pyi +2 -11
  387. homeassistant-stubs/setup.pyi +7 -6
  388. homeassistant-stubs/util/ssl.pyi +2 -0
  389. {homeassistant_stubs-2025.4.4.dist-info → homeassistant_stubs-2025.5.0b1.dist-info}/METADATA +3 -3
  390. {homeassistant_stubs-2025.4.4.dist-info → homeassistant_stubs-2025.5.0b1.dist-info}/RECORD +392 -335
  391. homeassistant-stubs/components/oncue/binary_sensor.pyi +0 -16
  392. homeassistant-stubs/components/oncue/const.pyi +0 -6
  393. homeassistant-stubs/components/oncue/entity.pyi +0 -20
  394. homeassistant-stubs/components/oncue/sensor.pyi +0 -21
  395. homeassistant-stubs/components/oncue/types.pyi +0 -5
  396. {homeassistant_stubs-2025.4.4.dist-info → homeassistant_stubs-2025.5.0b1.dist-info}/WHEEL +0 -0
  397. {homeassistant_stubs-2025.4.4.dist-info → homeassistant_stubs-2025.5.0b1.dist-info}/licenses/LICENSE +0 -0
@@ -1,15 +1,14 @@
1
- from .const import SERVICE_GET_QUEUE as SERVICE_GET_QUEUE, SERVICE_GROUP_VOLUME_DOWN as SERVICE_GROUP_VOLUME_DOWN, SERVICE_GROUP_VOLUME_SET as SERVICE_GROUP_VOLUME_SET, SERVICE_GROUP_VOLUME_UP as SERVICE_GROUP_VOLUME_UP
1
+ from . import services as services
2
2
  from .coordinator import HeosConfigEntry as HeosConfigEntry, HeosCoordinator as HeosCoordinator
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Awaitable, Callable, Coroutine
5
5
  from datetime import datetime
6
6
  from homeassistant.components import media_source as media_source
7
- from homeassistant.components.media_player import ATTR_MEDIA_ENQUEUE as ATTR_MEDIA_ENQUEUE, ATTR_MEDIA_VOLUME_LEVEL as ATTR_MEDIA_VOLUME_LEVEL, BrowseError as BrowseError, BrowseMedia as BrowseMedia, MediaClass as MediaClass, MediaPlayerEnqueue as MediaPlayerEnqueue, MediaPlayerEntity as MediaPlayerEntity, MediaPlayerEntityFeature as MediaPlayerEntityFeature, MediaPlayerState as MediaPlayerState, MediaType as MediaType, RepeatMode as RepeatMode, async_process_play_media_url as async_process_play_media_url
7
+ from homeassistant.components.media_player import ATTR_MEDIA_ENQUEUE as ATTR_MEDIA_ENQUEUE, BrowseError as BrowseError, BrowseMedia as BrowseMedia, MediaClass as MediaClass, MediaPlayerEnqueue as MediaPlayerEnqueue, MediaPlayerEntity as MediaPlayerEntity, MediaPlayerEntityFeature as MediaPlayerEntityFeature, MediaPlayerState as MediaPlayerState, MediaType as MediaType, RepeatMode as RepeatMode, async_process_play_media_url as async_process_play_media_url
8
8
  from homeassistant.components.media_source import BrowseMediaSource as BrowseMediaSource
9
9
  from homeassistant.const import Platform as Platform
10
- from homeassistant.core import HomeAssistant as HomeAssistant, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse, callback as callback
10
+ from homeassistant.core import HomeAssistant as HomeAssistant, ServiceResponse as ServiceResponse, callback as callback
11
11
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
12
- from homeassistant.helpers import entity_platform as entity_platform
13
12
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
14
13
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
15
14
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
@@ -74,6 +73,8 @@ class HeosMediaPlayer(CoordinatorEntity[HeosCoordinator], MediaPlayerEntity):
74
73
  async def async_group_volume_up(self) -> None: ...
75
74
  async def async_join_players(self, group_members: list[str]) -> None: ...
76
75
  async def async_unjoin_player(self) -> None: ...
76
+ async def async_remove_from_queue(self, queue_ids: list[int]) -> None: ...
77
+ async def async_move_queue_item(self, queue_ids: list[int], destination_position: int) -> None: ...
77
78
  @property
78
79
  def available(self) -> bool: ...
79
80
  @property
@@ -1,16 +1,36 @@
1
- from .const import ATTR_PASSWORD as ATTR_PASSWORD, ATTR_USERNAME as ATTR_USERNAME, DOMAIN as DOMAIN, SERVICE_SIGN_IN as SERVICE_SIGN_IN, SERVICE_SIGN_OUT as SERVICE_SIGN_OUT
1
+ from .const import ATTR_DESTINATION_POSITION as ATTR_DESTINATION_POSITION, ATTR_PASSWORD as ATTR_PASSWORD, ATTR_QUEUE_IDS as ATTR_QUEUE_IDS, ATTR_USERNAME as ATTR_USERNAME, DOMAIN as DOMAIN, SERVICE_GET_QUEUE as SERVICE_GET_QUEUE, SERVICE_GROUP_VOLUME_DOWN as SERVICE_GROUP_VOLUME_DOWN, SERVICE_GROUP_VOLUME_SET as SERVICE_GROUP_VOLUME_SET, SERVICE_GROUP_VOLUME_UP as SERVICE_GROUP_VOLUME_UP, SERVICE_MOVE_QUEUE_ITEM as SERVICE_MOVE_QUEUE_ITEM, SERVICE_REMOVE_FROM_QUEUE as SERVICE_REMOVE_FROM_QUEUE, SERVICE_SIGN_IN as SERVICE_SIGN_IN, SERVICE_SIGN_OUT as SERVICE_SIGN_OUT
2
2
  from .coordinator import HeosConfigEntry as HeosConfigEntry
3
3
  from _typeshed import Incomplete
4
+ from dataclasses import dataclass
5
+ from homeassistant.components.media_player import ATTR_MEDIA_VOLUME_LEVEL as ATTR_MEDIA_VOLUME_LEVEL
4
6
  from homeassistant.config_entries import ConfigEntryState as ConfigEntryState
5
- from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall
7
+ from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, SupportsResponse as SupportsResponse
6
8
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
9
+ from homeassistant.helpers import entity_platform as entity_platform
10
+ from homeassistant.helpers.typing import VolDictType as VolDictType, VolSchemaType as VolSchemaType
7
11
  from pyheos import Heos as Heos
12
+ from typing import Final
8
13
 
9
14
  _LOGGER: Incomplete
10
15
  HEOS_SIGN_IN_SCHEMA: Incomplete
11
16
  HEOS_SIGN_OUT_SCHEMA: Incomplete
12
17
 
13
18
  def register(hass: HomeAssistant) -> None: ...
19
+
20
+ @dataclass(frozen=True)
21
+ class EntityServiceDescription:
22
+ name: str
23
+ method_name: str
24
+ schema: VolDictType | VolSchemaType | None = ...
25
+ supports_response: SupportsResponse = ...
26
+ def async_register(self, platform: entity_platform.EntityPlatform) -> None: ...
27
+
28
+ REMOVE_FROM_QUEUE_SCHEMA: Final[VolDictType]
29
+ GROUP_VOLUME_SET_SCHEMA: Final[VolDictType]
30
+ MOVE_QEUEUE_ITEM_SCHEMA: Final[VolDictType]
31
+ MEDIA_PLAYER_ENTITY_SERVICES: Final[Incomplete]
32
+
33
+ def register_media_player_services() -> None: ...
14
34
  def _get_controller(hass: HomeAssistant) -> Heos: ...
15
35
  async def _sign_in_handler(service: ServiceCall) -> None: ...
16
36
  async def _sign_out_handler(service: ServiceCall) -> None: ...
@@ -23,7 +23,7 @@ class HistoryLiveStream:
23
23
  subscriptions: list[CALLBACK_TYPE]
24
24
  end_time_unsub: CALLBACK_TYPE | None = ...
25
25
  task: asyncio.Task | None = ...
26
- wait_sync_task: asyncio.Task | None = ...
26
+ wait_sync_future: asyncio.Future[None] | None = ...
27
27
 
28
28
  @callback
29
29
  def async_setup(hass: HomeAssistant) -> None: ...
@@ -26,7 +26,7 @@ class HistoryStats:
26
26
  _period: Incomplete
27
27
  _state: HistoryStatsState
28
28
  _history_current_period: list[HistoryState]
29
- _previous_run_before_start: bool
29
+ _has_recorder_data: bool
30
30
  _entity_states: Incomplete
31
31
  _duration: Incomplete
32
32
  _start: Incomplete
@@ -36,3 +36,4 @@ class HistoryStats:
36
36
  async def _async_history_from_db(self, current_period_start_timestamp: float, current_period_end_timestamp: float) -> None: ...
37
37
  def _state_changes_during_period(self, start_ts: float, end_ts: float) -> list[State]: ...
38
38
  def _async_compute_seconds_and_changes(self, now_timestamp: float, start_timestamp: float, end_timestamp: float) -> tuple[float, int]: ...
39
+ def _prune_history_cache(self, start_timestamp: float) -> None: ...
@@ -8,7 +8,6 @@ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callb
8
8
  from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
9
9
  from homeassistant.helpers import config_entry_oauth2_flow as config_entry_oauth2_flow
10
10
  from homeassistant.helpers.entity_registry import RegistryEntry as RegistryEntry, async_migrate_entries as async_migrate_entries
11
- from homeassistant.helpers.issue_registry import async_delete_issue as async_delete_issue
12
11
  from homeassistant.helpers.typing import ConfigType as ConfigType
13
12
 
14
13
  _LOGGER: Incomplete
@@ -1,16 +1,13 @@
1
1
  from .common import setup_home_connect_entry as setup_home_connect_entry
2
- from .const import BSH_DOOR_STATE_CLOSED as BSH_DOOR_STATE_CLOSED, BSH_DOOR_STATE_LOCKED as BSH_DOOR_STATE_LOCKED, BSH_DOOR_STATE_OPEN as BSH_DOOR_STATE_OPEN, DOMAIN as DOMAIN, REFRIGERATION_STATUS_DOOR_CLOSED as REFRIGERATION_STATUS_DOOR_CLOSED, REFRIGERATION_STATUS_DOOR_OPEN as REFRIGERATION_STATUS_DOOR_OPEN
3
- from .coordinator import HomeConnectApplianceData as HomeConnectApplianceData, HomeConnectConfigEntry as HomeConnectConfigEntry, HomeConnectCoordinator as HomeConnectCoordinator
2
+ from .const import REFRIGERATION_STATUS_DOOR_CLOSED as REFRIGERATION_STATUS_DOOR_CLOSED, REFRIGERATION_STATUS_DOOR_OPEN as REFRIGERATION_STATUS_DOOR_OPEN
3
+ from .coordinator import HomeConnectApplianceData as HomeConnectApplianceData, HomeConnectConfigEntry as HomeConnectConfigEntry
4
4
  from .entity import HomeConnectEntity as HomeConnectEntity
5
5
  from _typeshed import Incomplete
6
6
  from dataclasses import dataclass
7
- from homeassistant.components.automation import automations_with_entity as automations_with_entity
8
7
  from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription
9
- from homeassistant.components.script import scripts_with_entity as scripts_with_entity
10
8
  from homeassistant.const import EntityCategory as EntityCategory
11
9
  from homeassistant.core import HomeAssistant as HomeAssistant
12
10
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
13
- from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity, async_create_issue as async_create_issue, async_delete_issue as async_delete_issue
14
11
 
15
12
  PARALLEL_UPDATES: int
16
13
  REFRIGERATION_DOOR_BOOLEAN_MAP: Incomplete
@@ -36,11 +33,3 @@ class HomeConnectConnectivityBinarySensor(HomeConnectEntity, BinarySensorEntity)
36
33
  def update_native_value(self) -> None: ...
37
34
  @property
38
35
  def available(self) -> bool: ...
39
-
40
- class HomeConnectDoorBinarySensor(HomeConnectBinarySensor):
41
- _attr_has_entity_name: bool
42
- _attr_unique_id: Incomplete
43
- _attr_name: Incomplete
44
- def __init__(self, coordinator: HomeConnectCoordinator, appliance: HomeConnectApplianceData) -> None: ...
45
- async def async_added_to_hass(self) -> None: ...
46
- async def async_will_remove_from_hass(self) -> None: ...
@@ -14,6 +14,8 @@ from propcache.api import cached_property
14
14
  from typing import Any
15
15
 
16
16
  _LOGGER: Incomplete
17
+ MAX_EXECUTIONS_TIME_WINDOW: Incomplete
18
+ MAX_EXECUTIONS: int
17
19
  type HomeConnectConfigEntry = ConfigEntry[HomeConnectCoordinator]
18
20
 
19
21
  @dataclass(frozen=True, kw_only=True)
@@ -35,6 +37,7 @@ class HomeConnectCoordinator(DataUpdateCoordinator[dict[str, HomeConnectApplianc
35
37
  _special_listeners: dict[CALLBACK_TYPE, tuple[CALLBACK_TYPE, tuple[EventKey, ...]]]
36
38
  device_registry: Incomplete
37
39
  data: Incomplete
40
+ _execution_tracker: dict[str, list[float]]
38
41
  def __init__(self, hass: HomeAssistant, config_entry: HomeConnectConfigEntry, client: HomeConnectClient) -> None: ...
39
42
  @cached_property
40
43
  def context_listeners(self) -> dict[tuple[str, EventKey], list[CALLBACK_TYPE]]: ...
@@ -55,3 +58,5 @@ class HomeConnectCoordinator(DataUpdateCoordinator[dict[str, HomeConnectApplianc
55
58
  async def _get_appliance_data(self, appliance: HomeAppliance, appliance_data_to_update: HomeConnectApplianceData | None = None) -> HomeConnectApplianceData: ...
56
59
  async def get_options_definitions(self, ha_id: str, program_key: ProgramKey) -> dict[OptionKey, ProgramDefinitionOption]: ...
57
60
  async def update_options(self, ha_id: str, event_key: EventKey, program_key: ProgramKey) -> None: ...
61
+ def refreshed_too_often_recently(self, appliance_ha_id: str) -> bool: ...
62
+ async def reset_execution_tracker(self, appliance_ha_id: str) -> None: ...
@@ -0,0 +1,10 @@
1
+ from .coordinator import HomeConnectConfigEntry as HomeConnectConfigEntry
2
+ from homeassistant import data_entry_flow as data_entry_flow
3
+ from homeassistant.components.repairs import ConfirmRepairFlow as ConfirmRepairFlow, RepairsFlow as RepairsFlow
4
+ from homeassistant.core import HomeAssistant as HomeAssistant
5
+
6
+ class EnableApplianceUpdatesFlow(RepairsFlow):
7
+ async def async_step_init(self, user_input: dict[str, str] | None = None) -> data_entry_flow.FlowResult: ...
8
+ async def async_step_confirm(self, user_input: dict[str, str] | None = None) -> data_entry_flow.FlowResult: ...
9
+
10
+ async def async_create_fix_flow(hass: HomeAssistant, issue_id: str, data: dict[str, str | int | float | None] | None) -> RepairsFlow: ...
@@ -10,7 +10,7 @@ from aiohomeconnect.model.program import Execution
10
10
  from collections.abc import Callable as Callable, Coroutine
11
11
  from dataclasses import dataclass
12
12
  from homeassistant.components.select import SelectEntity as SelectEntity, SelectEntityDescription as SelectEntityDescription
13
- from homeassistant.core import HomeAssistant as HomeAssistant
13
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
14
14
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
15
15
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
16
16
  from typing import Any
@@ -41,8 +41,12 @@ async def async_setup_entry(hass: HomeAssistant, entry: HomeConnectConfigEntry,
41
41
 
42
42
  class HomeConnectProgramSelectEntity(HomeConnectEntity, SelectEntity):
43
43
  entity_description: HomeConnectProgramSelectEntityDescription
44
- _attr_options: Incomplete
45
44
  def __init__(self, coordinator: HomeConnectCoordinator, appliance: HomeConnectApplianceData, desc: HomeConnectProgramSelectEntityDescription) -> None: ...
45
+ _attr_options: Incomplete
46
+ def set_options(self) -> None: ...
47
+ @callback
48
+ def refresh_options(self) -> None: ...
49
+ async def async_added_to_hass(self) -> None: ...
46
50
  _attr_current_option: Incomplete
47
51
  def update_native_value(self) -> None: ...
48
52
  async def async_select_option(self, option: str) -> None: ...
@@ -3,10 +3,11 @@ from .const import APPLIANCES_WITH_PROGRAMS as APPLIANCES_WITH_PROGRAMS, BSH_OPE
3
3
  from .coordinator import HomeConnectApplianceData as HomeConnectApplianceData, HomeConnectConfigEntry as HomeConnectConfigEntry
4
4
  from .entity import HomeConnectEntity as HomeConnectEntity, constraint_fetcher as constraint_fetcher
5
5
  from _typeshed import Incomplete
6
+ from collections.abc import Callable as Callable
6
7
  from dataclasses import dataclass
7
8
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
8
9
  from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfVolume as UnitOfVolume
9
- from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
10
+ from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HomeAssistant as HomeAssistant, callback as callback
10
11
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
11
12
  from homeassistant.util import slugify as slugify
12
13
 
@@ -16,7 +17,6 @@ EVENT_OPTIONS: Incomplete
16
17
 
17
18
  @dataclass(frozen=True, kw_only=True)
18
19
  class HomeConnectSensorEntityDescription(SensorEntityDescription):
19
- default_value: str | None = ...
20
20
  appliance_types: tuple[str, ...] | None = ...
21
21
  fetch_unit: bool = ...
22
22
 
@@ -25,6 +25,9 @@ SENSORS: Incomplete
25
25
  EVENT_SENSORS: Incomplete
26
26
 
27
27
  def _get_entities_for_appliance(entry: HomeConnectConfigEntry, appliance: HomeConnectApplianceData) -> list[HomeConnectEntity]: ...
28
+ def _add_event_sensor_entity(entry: HomeConnectConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback, appliance: HomeConnectApplianceData, description: HomeConnectSensorEntityDescription, remove_event_sensor_listener_list: list[Callable[[], None]]) -> None: ...
29
+ def _add_event_sensor_listeners(entry: HomeConnectConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback, remove_event_sensor_listener_dict: dict[str, list[CALLBACK_TYPE]]) -> None: ...
30
+ def _remove_event_sensor_listeners_on_depaired(entry: HomeConnectConfigEntry, remove_event_sensor_listener_dict: dict[str, list[CALLBACK_TYPE]]) -> None: ...
28
31
  async def async_setup_entry(hass: HomeAssistant, entry: HomeConnectConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
29
32
 
30
33
  class HomeConnectSensor(HomeConnectEntity, SensorEntity):
@@ -48,5 +51,4 @@ class HomeConnectProgramSensor(HomeConnectSensor):
48
51
  def update_native_value(self) -> None: ...
49
52
 
50
53
  class HomeConnectEventSensor(HomeConnectSensor):
51
- _attr_native_value: Incomplete
52
54
  def update_native_value(self) -> None: ...
@@ -0,0 +1,47 @@
1
+ from . import HomeeConfigEntry as HomeeConfigEntry
2
+ from .const import CLIMATE_PROFILES as CLIMATE_PROFILES, DOMAIN as DOMAIN, HOMEE_UNIT_TO_HA_UNIT as HOMEE_UNIT_TO_HA_UNIT, PRESET_MANUAL as PRESET_MANUAL
3
+ from .entity import HomeeNodeEntity as HomeeNodeEntity
4
+ from _typeshed import Incomplete
5
+ from homeassistant.components.climate import ATTR_TEMPERATURE as ATTR_TEMPERATURE, ClimateEntity as ClimateEntity, ClimateEntityFeature as ClimateEntityFeature, HVACAction as HVACAction, HVACMode as HVACMode, PRESET_BOOST as PRESET_BOOST, PRESET_ECO as PRESET_ECO, PRESET_NONE as PRESET_NONE
6
+ from homeassistant.core import HomeAssistant as HomeAssistant
7
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
8
+ from pyHomee.model import HomeeNode as HomeeNode
9
+ from typing import Any
10
+
11
+ PARALLEL_UPDATES: int
12
+ ROOM_THERMOSTATS: Incomplete
13
+
14
+ async def async_setup_entry(hass: HomeAssistant, config_entry: HomeeConfigEntry, async_add_devices: AddConfigEntryEntitiesCallback) -> None: ...
15
+
16
+ class HomeeClimate(HomeeNodeEntity, ClimateEntity):
17
+ _attr_name: Incomplete
18
+ _attr_translation_key = DOMAIN
19
+ _target_temp: Incomplete
20
+ _attr_temperature_unit: Incomplete
21
+ _attr_target_temperature_step: Incomplete
22
+ _attr_unique_id: Incomplete
23
+ _heating_mode: Incomplete
24
+ _temperature: Incomplete
25
+ _valve_position: Incomplete
26
+ def __init__(self, node: HomeeNode, entry: HomeeConfigEntry) -> None: ...
27
+ @property
28
+ def hvac_mode(self) -> HVACMode: ...
29
+ @property
30
+ def hvac_action(self) -> HVACAction: ...
31
+ @property
32
+ def preset_mode(self) -> str: ...
33
+ @property
34
+ def current_temperature(self) -> float | None: ...
35
+ @property
36
+ def target_temperature(self) -> float: ...
37
+ @property
38
+ def min_temp(self) -> float: ...
39
+ @property
40
+ def max_temp(self) -> float: ...
41
+ async def async_set_hvac_mode(self, hvac_mode: HVACMode) -> None: ...
42
+ async def async_set_preset_mode(self, preset_mode: str) -> None: ...
43
+ async def async_set_temperature(self, **kwargs: Any) -> None: ...
44
+ async def async_turn_on(self) -> None: ...
45
+ async def async_turn_off(self) -> None: ...
46
+
47
+ def get_climate_features(node: HomeeNode) -> tuple[ClimateEntityFeature, list[HVACMode], list[str] | None]: ...
@@ -9,3 +9,4 @@ WINDOW_MAP: Incomplete
9
9
  WINDOW_MAP_REVERSED: Incomplete
10
10
  CLIMATE_PROFILES: Incomplete
11
11
  LIGHT_PROFILES: Incomplete
12
+ PRESET_MANUAL: str
@@ -2,27 +2,35 @@ from . import HomeeConfigEntry as HomeeConfigEntry
2
2
  from .const import HOMEE_UNIT_TO_HA_UNIT as HOMEE_UNIT_TO_HA_UNIT
3
3
  from .entity import HomeeEntity as HomeeEntity
4
4
  from _typeshed import Incomplete
5
+ from collections.abc import Callable as Callable
6
+ from dataclasses import dataclass
5
7
  from homeassistant.components.number import NumberDeviceClass as NumberDeviceClass, NumberEntity as NumberEntity, NumberEntityDescription as NumberEntityDescription
6
- from homeassistant.const import EntityCategory as EntityCategory
8
+ from homeassistant.const import EntityCategory as EntityCategory, UnitOfSpeed as UnitOfSpeed
7
9
  from homeassistant.core import HomeAssistant as HomeAssistant
8
10
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
9
11
  from pyHomee.model import HomeeAttribute as HomeeAttribute
10
12
 
11
13
  PARALLEL_UPDATES: int
14
+
15
+ @dataclass(frozen=True, kw_only=True)
16
+ class HomeeNumberEntityDescription(NumberEntityDescription):
17
+ native_value_fn: Callable[[float], float] = ...
18
+ set_native_value_fn: Callable[[float], float] = ...
19
+
12
20
  NUMBER_DESCRIPTIONS: Incomplete
13
21
 
14
22
  async def async_setup_entry(hass: HomeAssistant, config_entry: HomeeConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
15
23
 
16
24
  class HomeeNumber(HomeeEntity, NumberEntity):
17
- entity_description: Incomplete
25
+ entity_description: HomeeNumberEntityDescription
18
26
  _attr_translation_key: Incomplete
19
27
  _attr_native_unit_of_measurement: Incomplete
20
28
  _attr_native_min_value: Incomplete
21
29
  _attr_native_max_value: Incomplete
22
30
  _attr_native_step: Incomplete
23
- def __init__(self, attribute: HomeeAttribute, entry: HomeeConfigEntry, description: NumberEntityDescription) -> None: ...
31
+ def __init__(self, attribute: HomeeAttribute, entry: HomeeConfigEntry, description: HomeeNumberEntityDescription) -> None: ...
24
32
  @property
25
33
  def available(self) -> bool: ...
26
34
  @property
27
- def native_value(self) -> int: ...
35
+ def native_value(self) -> float | None: ...
28
36
  async def async_set_native_value(self, value: float) -> None: ...
@@ -1,7 +1,7 @@
1
- from . import type_cameras as type_cameras, type_covers as type_covers, type_fans as type_fans, type_humidifiers as type_humidifiers, type_lights as type_lights, type_locks as type_locks, type_media_players as type_media_players, type_remotes as type_remotes, type_security_systems as type_security_systems, type_sensors as type_sensors, type_switches as type_switches, type_thermostats as type_thermostats
1
+ from . import type_air_purifiers as type_air_purifiers, type_cameras as type_cameras, type_covers as type_covers, type_fans as type_fans, type_humidifiers as type_humidifiers, type_lights as type_lights, type_locks as type_locks, type_media_players as type_media_players, type_remotes as type_remotes, type_security_systems as type_security_systems, type_sensors as type_sensors, type_switches as type_switches, type_thermostats as type_thermostats
2
2
  from .accessories import HomeAccessory as HomeAccessory, HomeBridge as HomeBridge, HomeDriver as HomeDriver, get_accessory as get_accessory
3
3
  from .aidmanager import AccessoryAidStorage as AccessoryAidStorage
4
- from .const import ATTR_INTEGRATION as ATTR_INTEGRATION, BRIDGE_NAME as BRIDGE_NAME, BRIDGE_SERIAL_NUMBER as BRIDGE_SERIAL_NUMBER, CONFIG_OPTIONS as CONFIG_OPTIONS, CONF_ADVERTISE_IP as CONF_ADVERTISE_IP, CONF_ENTITY_CONFIG as CONF_ENTITY_CONFIG, CONF_ENTRY_INDEX as CONF_ENTRY_INDEX, CONF_EXCLUDE_ACCESSORY_MODE as CONF_EXCLUDE_ACCESSORY_MODE, CONF_FILTER as CONF_FILTER, CONF_HOMEKIT_MODE as CONF_HOMEKIT_MODE, CONF_LINKED_BATTERY_CHARGING_SENSOR as CONF_LINKED_BATTERY_CHARGING_SENSOR, CONF_LINKED_BATTERY_SENSOR as CONF_LINKED_BATTERY_SENSOR, CONF_LINKED_DOORBELL_SENSOR as CONF_LINKED_DOORBELL_SENSOR, CONF_LINKED_HUMIDITY_SENSOR as CONF_LINKED_HUMIDITY_SENSOR, CONF_LINKED_MOTION_SENSOR as CONF_LINKED_MOTION_SENSOR, DEFAULT_EXCLUDE_ACCESSORY_MODE as DEFAULT_EXCLUDE_ACCESSORY_MODE, DEFAULT_HOMEKIT_MODE as DEFAULT_HOMEKIT_MODE, DEFAULT_PORT as DEFAULT_PORT, DOMAIN as DOMAIN, HOMEKIT_MODES as HOMEKIT_MODES, HOMEKIT_MODE_ACCESSORY as HOMEKIT_MODE_ACCESSORY, MANUFACTURER as MANUFACTURER, PERSIST_LOCK_DATA as PERSIST_LOCK_DATA, SERVICE_HOMEKIT_RESET_ACCESSORY as SERVICE_HOMEKIT_RESET_ACCESSORY, SERVICE_HOMEKIT_UNPAIR as SERVICE_HOMEKIT_UNPAIR, SHUTDOWN_TIMEOUT as SHUTDOWN_TIMEOUT, SIGNAL_RELOAD_ENTITIES as SIGNAL_RELOAD_ENTITIES
4
+ from .const import ATTR_INTEGRATION as ATTR_INTEGRATION, BRIDGE_NAME as BRIDGE_NAME, BRIDGE_SERIAL_NUMBER as BRIDGE_SERIAL_NUMBER, CONFIG_OPTIONS as CONFIG_OPTIONS, CONF_ADVERTISE_IP as CONF_ADVERTISE_IP, CONF_ENTITY_CONFIG as CONF_ENTITY_CONFIG, CONF_ENTRY_INDEX as CONF_ENTRY_INDEX, CONF_EXCLUDE_ACCESSORY_MODE as CONF_EXCLUDE_ACCESSORY_MODE, CONF_FILTER as CONF_FILTER, CONF_HOMEKIT_MODE as CONF_HOMEKIT_MODE, CONF_LINKED_BATTERY_CHARGING_SENSOR as CONF_LINKED_BATTERY_CHARGING_SENSOR, CONF_LINKED_BATTERY_SENSOR as CONF_LINKED_BATTERY_SENSOR, CONF_LINKED_DOORBELL_SENSOR as CONF_LINKED_DOORBELL_SENSOR, CONF_LINKED_HUMIDITY_SENSOR as CONF_LINKED_HUMIDITY_SENSOR, CONF_LINKED_MOTION_SENSOR as CONF_LINKED_MOTION_SENSOR, CONF_LINKED_PM25_SENSOR as CONF_LINKED_PM25_SENSOR, CONF_LINKED_TEMPERATURE_SENSOR as CONF_LINKED_TEMPERATURE_SENSOR, DEFAULT_EXCLUDE_ACCESSORY_MODE as DEFAULT_EXCLUDE_ACCESSORY_MODE, DEFAULT_HOMEKIT_MODE as DEFAULT_HOMEKIT_MODE, DEFAULT_PORT as DEFAULT_PORT, DOMAIN as DOMAIN, HOMEKIT_MODES as HOMEKIT_MODES, HOMEKIT_MODE_ACCESSORY as HOMEKIT_MODE_ACCESSORY, MANUFACTURER as MANUFACTURER, PERSIST_LOCK_DATA as PERSIST_LOCK_DATA, SERVICE_HOMEKIT_RESET_ACCESSORY as SERVICE_HOMEKIT_RESET_ACCESSORY, SERVICE_HOMEKIT_UNPAIR as SERVICE_HOMEKIT_UNPAIR, SHUTDOWN_TIMEOUT as SHUTDOWN_TIMEOUT, SIGNAL_RELOAD_ENTITIES as SIGNAL_RELOAD_ENTITIES, TYPE_AIR_PURIFIER as TYPE_AIR_PURIFIER
5
5
  from .iidmanager import AccessoryIIDStorage as AccessoryIIDStorage
6
6
  from .models import HomeKitConfigEntry as HomeKitConfigEntry, HomeKitEntryData as HomeKitEntryData
7
7
  from .type_triggers import DeviceTriggerAccessory as DeviceTriggerAccessory
@@ -17,7 +17,7 @@ from homeassistant.components.event import EventDeviceClass as EventDeviceClass
17
17
  from homeassistant.components.http import HomeAssistantView as HomeAssistantView, KEY_HASS as KEY_HASS
18
18
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass
19
19
  from homeassistant.config_entries import ConfigEntry as ConfigEntry, SOURCE_IMPORT as SOURCE_IMPORT
20
- from homeassistant.const import ATTR_BATTERY_CHARGING as ATTR_BATTERY_CHARGING, ATTR_BATTERY_LEVEL as ATTR_BATTERY_LEVEL, ATTR_DEVICE_ID as ATTR_DEVICE_ID, ATTR_ENTITY_ID as ATTR_ENTITY_ID, ATTR_HW_VERSION as ATTR_HW_VERSION, ATTR_MANUFACTURER as ATTR_MANUFACTURER, ATTR_MODEL as ATTR_MODEL, ATTR_SW_VERSION as ATTR_SW_VERSION, CONF_DEVICES as CONF_DEVICES, CONF_IP_ADDRESS as CONF_IP_ADDRESS, CONF_NAME as CONF_NAME, CONF_PORT as CONF_PORT, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP, SERVICE_RELOAD as SERVICE_RELOAD
20
+ from homeassistant.const import ATTR_BATTERY_CHARGING as ATTR_BATTERY_CHARGING, ATTR_BATTERY_LEVEL as ATTR_BATTERY_LEVEL, ATTR_DEVICE_ID as ATTR_DEVICE_ID, ATTR_ENTITY_ID as ATTR_ENTITY_ID, ATTR_HW_VERSION as ATTR_HW_VERSION, ATTR_MANUFACTURER as ATTR_MANUFACTURER, ATTR_MODEL as ATTR_MODEL, ATTR_SW_VERSION as ATTR_SW_VERSION, CONF_DEVICES as CONF_DEVICES, CONF_IP_ADDRESS as CONF_IP_ADDRESS, CONF_NAME as CONF_NAME, CONF_PORT as CONF_PORT, CONF_TYPE as CONF_TYPE, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP, SERVICE_RELOAD as SERVICE_RELOAD
21
21
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, State as State, callback as callback
22
22
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, Unauthorized as Unauthorized
23
23
  from homeassistant.helpers import device_registry as dr, entity_registry as er, instance_id as instance_id
@@ -50,6 +50,8 @@ MOTION_EVENT_SENSOR: Incomplete
50
50
  MOTION_SENSOR: Incomplete
51
51
  DOORBELL_EVENT_SENSOR: Incomplete
52
52
  HUMIDITY_SENSOR: Incomplete
53
+ TEMPERATURE_SENSOR: Incomplete
54
+ PM25_SENSOR: Incomplete
53
55
 
54
56
  def _has_all_unique_names_and_ports(bridges: list[dict[str, Any]]) -> list[dict[str, Any]]: ...
55
57
 
@@ -1,4 +1,4 @@
1
- from .const import ATTR_DISPLAY_NAME as ATTR_DISPLAY_NAME, ATTR_INTEGRATION as ATTR_INTEGRATION, ATTR_VALUE as ATTR_VALUE, BRIDGE_MODEL as BRIDGE_MODEL, BRIDGE_SERIAL_NUMBER as BRIDGE_SERIAL_NUMBER, CHAR_BATTERY_LEVEL as CHAR_BATTERY_LEVEL, CHAR_CHARGING_STATE as CHAR_CHARGING_STATE, CHAR_HARDWARE_REVISION as CHAR_HARDWARE_REVISION, CHAR_STATUS_LOW_BATTERY as CHAR_STATUS_LOW_BATTERY, CONF_FEATURE_LIST as CONF_FEATURE_LIST, CONF_LINKED_BATTERY_CHARGING_SENSOR as CONF_LINKED_BATTERY_CHARGING_SENSOR, CONF_LINKED_BATTERY_SENSOR as CONF_LINKED_BATTERY_SENSOR, CONF_LOW_BATTERY_THRESHOLD as CONF_LOW_BATTERY_THRESHOLD, DEFAULT_LOW_BATTERY_THRESHOLD as DEFAULT_LOW_BATTERY_THRESHOLD, EMPTY_MAC as EMPTY_MAC, EVENT_HOMEKIT_CHANGED as EVENT_HOMEKIT_CHANGED, HK_CHARGING as HK_CHARGING, HK_NOT_CHARGABLE as HK_NOT_CHARGABLE, HK_NOT_CHARGING as HK_NOT_CHARGING, MANUFACTURER as MANUFACTURER, MAX_MANUFACTURER_LENGTH as MAX_MANUFACTURER_LENGTH, MAX_MODEL_LENGTH as MAX_MODEL_LENGTH, MAX_SERIAL_LENGTH as MAX_SERIAL_LENGTH, MAX_VERSION_LENGTH as MAX_VERSION_LENGTH, SERV_ACCESSORY_INFO as SERV_ACCESSORY_INFO, SERV_BATTERY_SERVICE as SERV_BATTERY_SERVICE, SIGNAL_RELOAD_ENTITIES as SIGNAL_RELOAD_ENTITIES, TYPE_FAUCET as TYPE_FAUCET, TYPE_OUTLET as TYPE_OUTLET, TYPE_SHOWER as TYPE_SHOWER, TYPE_SPRINKLER as TYPE_SPRINKLER, TYPE_SWITCH as TYPE_SWITCH, TYPE_VALVE as TYPE_VALVE
1
+ from .const import ATTR_DISPLAY_NAME as ATTR_DISPLAY_NAME, ATTR_INTEGRATION as ATTR_INTEGRATION, ATTR_VALUE as ATTR_VALUE, BRIDGE_MODEL as BRIDGE_MODEL, BRIDGE_SERIAL_NUMBER as BRIDGE_SERIAL_NUMBER, CHAR_BATTERY_LEVEL as CHAR_BATTERY_LEVEL, CHAR_CHARGING_STATE as CHAR_CHARGING_STATE, CHAR_HARDWARE_REVISION as CHAR_HARDWARE_REVISION, CHAR_STATUS_LOW_BATTERY as CHAR_STATUS_LOW_BATTERY, CONF_FEATURE_LIST as CONF_FEATURE_LIST, CONF_LINKED_BATTERY_CHARGING_SENSOR as CONF_LINKED_BATTERY_CHARGING_SENSOR, CONF_LINKED_BATTERY_SENSOR as CONF_LINKED_BATTERY_SENSOR, CONF_LOW_BATTERY_THRESHOLD as CONF_LOW_BATTERY_THRESHOLD, DEFAULT_LOW_BATTERY_THRESHOLD as DEFAULT_LOW_BATTERY_THRESHOLD, EMPTY_MAC as EMPTY_MAC, EVENT_HOMEKIT_CHANGED as EVENT_HOMEKIT_CHANGED, HK_CHARGING as HK_CHARGING, HK_NOT_CHARGABLE as HK_NOT_CHARGABLE, HK_NOT_CHARGING as HK_NOT_CHARGING, MANUFACTURER as MANUFACTURER, MAX_MANUFACTURER_LENGTH as MAX_MANUFACTURER_LENGTH, MAX_MODEL_LENGTH as MAX_MODEL_LENGTH, MAX_SERIAL_LENGTH as MAX_SERIAL_LENGTH, MAX_VERSION_LENGTH as MAX_VERSION_LENGTH, SERV_ACCESSORY_INFO as SERV_ACCESSORY_INFO, SERV_BATTERY_SERVICE as SERV_BATTERY_SERVICE, SIGNAL_RELOAD_ENTITIES as SIGNAL_RELOAD_ENTITIES, TYPE_AIR_PURIFIER as TYPE_AIR_PURIFIER, TYPE_FAN as TYPE_FAN, TYPE_FAUCET as TYPE_FAUCET, TYPE_OUTLET as TYPE_OUTLET, TYPE_SHOWER as TYPE_SHOWER, TYPE_SPRINKLER as TYPE_SPRINKLER, TYPE_SWITCH as TYPE_SWITCH, TYPE_VALVE as TYPE_VALVE
2
2
  from .iidmanager import AccessoryIIDStorage as AccessoryIIDStorage
3
3
  from .util import accessory_friendly_name as accessory_friendly_name, async_dismiss_setup_message as async_dismiss_setup_message, async_show_setup_message as async_show_setup_message, cleanup_name_for_homekit as cleanup_name_for_homekit, convert_to_float as convert_to_float, format_version as format_version, validate_media_player_features as validate_media_player_features
4
4
  from _typeshed import Incomplete
@@ -24,6 +24,7 @@ from uuid import UUID
24
24
 
25
25
  _LOGGER: Incomplete
26
26
  SWITCH_TYPES: Incomplete
27
+ FAN_TYPES: Incomplete
27
28
  TYPES: Registry[str, type[HomeAccessory]]
28
29
  RELOAD_ON_CHANGE_ATTRS: Incomplete
29
30
 
@@ -36,9 +36,13 @@ CONF_EXCLUDE_ACCESSORY_MODE: str
36
36
  CONF_LINKED_BATTERY_SENSOR: str
37
37
  CONF_LINKED_BATTERY_CHARGING_SENSOR: str
38
38
  CONF_LINKED_DOORBELL_SENSOR: str
39
+ CONF_LINKED_FILTER_CHANGE_INDICATION: str
40
+ CONF_LINKED_FILTER_LIFE_LEVEL: str
39
41
  CONF_LINKED_MOTION_SENSOR: str
40
42
  CONF_LINKED_HUMIDITY_SENSOR: str
41
43
  CONF_LINKED_OBSTRUCTION_SENSOR: str
44
+ CONF_LINKED_PM25_SENSOR: str
45
+ CONF_LINKED_TEMPERATURE_SENSOR: str
42
46
  CONF_LOW_BATTERY_THRESHOLD: str
43
47
  CONF_MAX_FPS: str
44
48
  CONF_MAX_HEIGHT: str
@@ -93,8 +97,11 @@ TYPE_SHOWER: str
93
97
  TYPE_SPRINKLER: str
94
98
  TYPE_SWITCH: str
95
99
  TYPE_VALVE: str
100
+ TYPE_FAN: str
101
+ TYPE_AIR_PURIFIER: str
96
102
  CATEGORY_RECEIVER: int
97
103
  SERV_ACCESSORY_INFO: str
104
+ SERV_AIR_PURIFIER: str
98
105
  SERV_AIR_QUALITY_SENSOR: str
99
106
  SERV_BATTERY_SERVICE: str
100
107
  SERV_CAMERA_RTP_STREAM_MANAGEMENT: str
@@ -104,6 +111,7 @@ SERV_CONTACT_SENSOR: str
104
111
  SERV_DOOR: str
105
112
  SERV_DOORBELL: str
106
113
  SERV_FANV2: str
114
+ SERV_FILTER_MAINTENANCE: str
107
115
  SERV_GARAGE_DOOR_OPENER: str
108
116
  SERV_HUMIDIFIER_DEHUMIDIFIER: str
109
117
  SERV_HUMIDITY_SENSOR: str
@@ -148,6 +156,7 @@ CHAR_CONFIGURED_NAME: str
148
156
  CHAR_CONTACT_SENSOR_STATE: str
149
157
  CHAR_COOLING_THRESHOLD_TEMPERATURE: str
150
158
  CHAR_CURRENT_AMBIENT_LIGHT_LEVEL: str
159
+ CHAR_CURRENT_AIR_PURIFIER_STATE: str
151
160
  CHAR_CURRENT_DOOR_STATE: str
152
161
  CHAR_CURRENT_FAN_STATE: str
153
162
  CHAR_CURRENT_HEATING_COOLING: str
@@ -159,6 +168,8 @@ CHAR_CURRENT_TEMPERATURE: str
159
168
  CHAR_CURRENT_TILT_ANGLE: str
160
169
  CHAR_CURRENT_VISIBILITY_STATE: str
161
170
  CHAR_DEHUMIDIFIER_THRESHOLD_HUMIDITY: str
171
+ CHAR_FILTER_CHANGE_INDICATION: str
172
+ CHAR_FILTER_LIFE_LEVEL: str
162
173
  CHAR_FIRMWARE_REVISION: str
163
174
  CHAR_HARDWARE_REVISION: str
164
175
  CHAR_HEATING_THRESHOLD_TEMPERATURE: str
@@ -196,6 +207,7 @@ CHAR_SMOKE_DETECTED: str
196
207
  CHAR_STATUS_LOW_BATTERY: str
197
208
  CHAR_STREAMING_STRATUS: str
198
209
  CHAR_SWING_MODE: str
210
+ CHAR_TARGET_AIR_PURIFIER_STATE: str
199
211
  CHAR_TARGET_DOOR_STATE: str
200
212
  CHAR_TARGET_HEATING_COOLING: str
201
213
  CHAR_TARGET_POSITION: str
@@ -219,6 +231,7 @@ PROP_CELSIUS: Incomplete
219
231
  PROP_VALID_VALUES: str
220
232
  THRESHOLD_CO: int
221
233
  THRESHOLD_CO2: int
234
+ THRESHOLD_FILTER_CHANGE_NEEDED: int
222
235
  DEFAULT_MIN_TEMP_WATER_HEATER: int
223
236
  DEFAULT_MAX_TEMP_WATER_HEATER: int
224
237
  KEY_ARROW_DOWN: str
@@ -0,0 +1,69 @@
1
+ from .accessories import TYPES as TYPES
2
+ from .const import CHAR_ACTIVE as CHAR_ACTIVE, CHAR_AIR_QUALITY as CHAR_AIR_QUALITY, CHAR_CURRENT_AIR_PURIFIER_STATE as CHAR_CURRENT_AIR_PURIFIER_STATE, CHAR_CURRENT_HUMIDITY as CHAR_CURRENT_HUMIDITY, CHAR_CURRENT_TEMPERATURE as CHAR_CURRENT_TEMPERATURE, CHAR_FILTER_CHANGE_INDICATION as CHAR_FILTER_CHANGE_INDICATION, CHAR_FILTER_LIFE_LEVEL as CHAR_FILTER_LIFE_LEVEL, CHAR_NAME as CHAR_NAME, CHAR_PM25_DENSITY as CHAR_PM25_DENSITY, CHAR_TARGET_AIR_PURIFIER_STATE as CHAR_TARGET_AIR_PURIFIER_STATE, CONF_LINKED_FILTER_CHANGE_INDICATION as CONF_LINKED_FILTER_CHANGE_INDICATION, CONF_LINKED_FILTER_LIFE_LEVEL as CONF_LINKED_FILTER_LIFE_LEVEL, CONF_LINKED_HUMIDITY_SENSOR as CONF_LINKED_HUMIDITY_SENSOR, CONF_LINKED_PM25_SENSOR as CONF_LINKED_PM25_SENSOR, CONF_LINKED_TEMPERATURE_SENSOR as CONF_LINKED_TEMPERATURE_SENSOR, SERV_AIR_PURIFIER as SERV_AIR_PURIFIER, SERV_AIR_QUALITY_SENSOR as SERV_AIR_QUALITY_SENSOR, SERV_FILTER_MAINTENANCE as SERV_FILTER_MAINTENANCE, SERV_HUMIDITY_SENSOR as SERV_HUMIDITY_SENSOR, SERV_TEMPERATURE_SENSOR as SERV_TEMPERATURE_SENSOR, THRESHOLD_FILTER_CHANGE_NEEDED as THRESHOLD_FILTER_CHANGE_NEEDED
3
+ from .type_fans import ATTR_PRESET_MODE as ATTR_PRESET_MODE, CHAR_ROTATION_SPEED as CHAR_ROTATION_SPEED, Fan as Fan
4
+ from .util import cleanup_name_for_homekit as cleanup_name_for_homekit, convert_to_float as convert_to_float, density_to_air_quality as density_to_air_quality
5
+ from _typeshed import Incomplete
6
+ from homeassistant.const import STATE_ON as STATE_ON, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN
7
+ from homeassistant.core import Event as Event, EventStateChangedData as EventStateChangedData, HassJobType as HassJobType, State as State, callback as callback
8
+ from homeassistant.helpers.event import async_track_state_change_event as async_track_state_change_event
9
+ from pyhap.characteristic import Characteristic as Characteristic
10
+ from pyhap.service import Service as Service
11
+ from pyhap.util import callback as pyhap_callback
12
+ from typing import Any
13
+
14
+ _LOGGER: Incomplete
15
+ CURRENT_STATE_INACTIVE: int
16
+ CURRENT_STATE_IDLE: int
17
+ CURRENT_STATE_PURIFYING_AIR: int
18
+ TARGET_STATE_MANUAL: int
19
+ TARGET_STATE_AUTO: int
20
+ FILTER_CHANGE_FILTER: int
21
+ FILTER_OK: int
22
+ IGNORED_STATES: Incomplete
23
+
24
+ class AirPurifier(Fan):
25
+ auto_preset: str | None
26
+ def __init__(self, *args: Any) -> None: ...
27
+ char_active: Characteristic
28
+ preset_mode_chars: dict[str, Characteristic]
29
+ char_current_humidity: Characteristic | None
30
+ char_pm25_density: Characteristic | None
31
+ char_current_temperature: Characteristic | None
32
+ char_filter_change_indication: Characteristic | None
33
+ char_filter_life_level: Characteristic | None
34
+ char_target_air_purifier_state: Characteristic
35
+ char_current_air_purifier_state: Characteristic
36
+ linked_humidity_sensor: Incomplete
37
+ linked_pm25_sensor: Incomplete
38
+ char_air_quality: Incomplete
39
+ linked_temperature_sensor: Incomplete
40
+ linked_filter_change_indicator_binary_sensor: Incomplete
41
+ linked_filter_life_level_sensor: Incomplete
42
+ def create_services(self) -> Service: ...
43
+ def should_add_preset_mode_switch(self, preset_mode: str) -> bool: ...
44
+ @callback
45
+ @pyhap_callback
46
+ def run(self) -> None: ...
47
+ @callback
48
+ def _async_update_current_humidity_event(self, event: Event[EventStateChangedData]) -> None: ...
49
+ @callback
50
+ def _async_update_current_humidity(self, new_state: State | None) -> None: ...
51
+ @callback
52
+ def _async_update_current_pm25_event(self, event: Event[EventStateChangedData]) -> None: ...
53
+ @callback
54
+ def _async_update_current_pm25(self, new_state: State | None) -> None: ...
55
+ @callback
56
+ def _async_update_current_temperature_event(self, event: Event[EventStateChangedData]) -> None: ...
57
+ @callback
58
+ def _async_update_current_temperature(self, new_state: State | None) -> None: ...
59
+ @callback
60
+ def _async_update_filter_change_indicator_event(self, event: Event[EventStateChangedData]) -> None: ...
61
+ @callback
62
+ def _async_update_filter_change_indicator(self, new_state: State | None) -> None: ...
63
+ @callback
64
+ def _async_update_filter_life_level_event(self, event: Event[EventStateChangedData]) -> None: ...
65
+ @callback
66
+ def _async_update_filter_life_level(self, new_state: State | None) -> None: ...
67
+ @callback
68
+ def async_update_state(self, new_state: State) -> None: ...
69
+ def set_chars(self, char_values: dict[str, Any]) -> None: ...
@@ -1,10 +1,11 @@
1
1
  from .accessories import HomeAccessory as HomeAccessory, TYPES as TYPES
2
- from .const import CHAR_ACTIVE as CHAR_ACTIVE, CHAR_NAME as CHAR_NAME, CHAR_ON as CHAR_ON, CHAR_ROTATION_DIRECTION as CHAR_ROTATION_DIRECTION, CHAR_ROTATION_SPEED as CHAR_ROTATION_SPEED, CHAR_SWING_MODE as CHAR_SWING_MODE, CHAR_TARGET_FAN_STATE as CHAR_TARGET_FAN_STATE, PROP_MIN_STEP as PROP_MIN_STEP, SERV_FANV2 as SERV_FANV2, SERV_SWITCH as SERV_SWITCH
2
+ from .const import CHAR_ACTIVE as CHAR_ACTIVE, CHAR_CONFIGURED_NAME as CHAR_CONFIGURED_NAME, CHAR_NAME as CHAR_NAME, CHAR_ON as CHAR_ON, CHAR_ROTATION_DIRECTION as CHAR_ROTATION_DIRECTION, CHAR_ROTATION_SPEED as CHAR_ROTATION_SPEED, CHAR_SWING_MODE as CHAR_SWING_MODE, CHAR_TARGET_FAN_STATE as CHAR_TARGET_FAN_STATE, PROP_MIN_STEP as PROP_MIN_STEP, SERV_FANV2 as SERV_FANV2, SERV_SWITCH as SERV_SWITCH
3
3
  from .util import cleanup_name_for_homekit as cleanup_name_for_homekit
4
4
  from _typeshed import Incomplete
5
5
  from homeassistant.components.fan import ATTR_DIRECTION as ATTR_DIRECTION, ATTR_OSCILLATING as ATTR_OSCILLATING, ATTR_PERCENTAGE as ATTR_PERCENTAGE, ATTR_PERCENTAGE_STEP as ATTR_PERCENTAGE_STEP, ATTR_PRESET_MODE as ATTR_PRESET_MODE, ATTR_PRESET_MODES as ATTR_PRESET_MODES, DIRECTION_FORWARD as DIRECTION_FORWARD, DIRECTION_REVERSE as DIRECTION_REVERSE, FanEntityFeature as FanEntityFeature, SERVICE_OSCILLATE as SERVICE_OSCILLATE, SERVICE_SET_DIRECTION as SERVICE_SET_DIRECTION, SERVICE_SET_PERCENTAGE as SERVICE_SET_PERCENTAGE, SERVICE_SET_PRESET_MODE as SERVICE_SET_PRESET_MODE
6
6
  from homeassistant.const import ATTR_ENTITY_ID as ATTR_ENTITY_ID, ATTR_SUPPORTED_FEATURES as ATTR_SUPPORTED_FEATURES, SERVICE_TURN_OFF as SERVICE_TURN_OFF, SERVICE_TURN_ON as SERVICE_TURN_ON, STATE_OFF as STATE_OFF, STATE_ON as STATE_ON
7
7
  from homeassistant.core import State as State, callback as callback
8
+ from pyhap.service import Service as Service
8
9
  from typing import Any
9
10
 
10
11
  _LOGGER: Incomplete
@@ -12,14 +13,16 @@ _LOGGER: Incomplete
12
13
  class Fan(HomeAccessory):
13
14
  chars: list[str]
14
15
  preset_modes: list[str] | None
15
- char_active: Incomplete
16
16
  char_direction: Incomplete
17
17
  char_speed: Incomplete
18
18
  char_swing: Incomplete
19
19
  char_target_fan_state: Incomplete
20
20
  preset_mode_chars: Incomplete
21
- def __init__(self, *args: Any) -> None: ...
22
- def _set_chars(self, char_values: dict[str, Any]) -> None: ...
21
+ def __init__(self, *args: Any, category: int = ...) -> None: ...
22
+ char_active: Incomplete
23
+ def create_services(self) -> Service: ...
24
+ def should_add_preset_mode_switch(self, preset_mode: str) -> bool: ...
25
+ def set_chars(self, char_values: dict[str, Any]) -> None: ...
23
26
  def set_single_preset_mode(self, value: int) -> None: ...
24
27
  def set_preset_mode(self, value: int, preset_mode: str) -> None: ...
25
28
  def set_state(self, value: int) -> None: ...
@@ -1,5 +1,5 @@
1
1
  from .accessories import HomeAccessory as HomeAccessory, TYPES as TYPES
2
- from .const import ATTR_KEY_NAME as ATTR_KEY_NAME, CATEGORY_RECEIVER as CATEGORY_RECEIVER, CHAR_ACTIVE as CHAR_ACTIVE, CHAR_MUTE as CHAR_MUTE, CHAR_NAME as CHAR_NAME, CHAR_ON as CHAR_ON, CHAR_VOLUME as CHAR_VOLUME, CHAR_VOLUME_CONTROL_TYPE as CHAR_VOLUME_CONTROL_TYPE, CHAR_VOLUME_SELECTOR as CHAR_VOLUME_SELECTOR, CONF_FEATURE_LIST as CONF_FEATURE_LIST, EVENT_HOMEKIT_TV_REMOTE_KEY_PRESSED as EVENT_HOMEKIT_TV_REMOTE_KEY_PRESSED, FEATURE_ON_OFF as FEATURE_ON_OFF, FEATURE_PLAY_PAUSE as FEATURE_PLAY_PAUSE, FEATURE_PLAY_STOP as FEATURE_PLAY_STOP, FEATURE_TOGGLE_MUTE as FEATURE_TOGGLE_MUTE, KEY_PLAY_PAUSE as KEY_PLAY_PAUSE, SERV_SWITCH as SERV_SWITCH, SERV_TELEVISION_SPEAKER as SERV_TELEVISION_SPEAKER
2
+ from .const import ATTR_KEY_NAME as ATTR_KEY_NAME, CATEGORY_RECEIVER as CATEGORY_RECEIVER, CHAR_ACTIVE as CHAR_ACTIVE, CHAR_CONFIGURED_NAME as CHAR_CONFIGURED_NAME, CHAR_MUTE as CHAR_MUTE, CHAR_NAME as CHAR_NAME, CHAR_ON as CHAR_ON, CHAR_VOLUME as CHAR_VOLUME, CHAR_VOLUME_CONTROL_TYPE as CHAR_VOLUME_CONTROL_TYPE, CHAR_VOLUME_SELECTOR as CHAR_VOLUME_SELECTOR, CONF_FEATURE_LIST as CONF_FEATURE_LIST, EVENT_HOMEKIT_TV_REMOTE_KEY_PRESSED as EVENT_HOMEKIT_TV_REMOTE_KEY_PRESSED, FEATURE_ON_OFF as FEATURE_ON_OFF, FEATURE_PLAY_PAUSE as FEATURE_PLAY_PAUSE, FEATURE_PLAY_STOP as FEATURE_PLAY_STOP, FEATURE_TOGGLE_MUTE as FEATURE_TOGGLE_MUTE, KEY_PLAY_PAUSE as KEY_PLAY_PAUSE, SERV_SWITCH as SERV_SWITCH, SERV_TELEVISION_SPEAKER as SERV_TELEVISION_SPEAKER
3
3
  from .type_remotes import REMOTE_KEYS as REMOTE_KEYS, RemoteInputSelectAccessory as RemoteInputSelectAccessory
4
4
  from .util import cleanup_name_for_homekit as cleanup_name_for_homekit, get_media_player_features as get_media_player_features
5
5
  from _typeshed import Incomplete
@@ -17,6 +17,7 @@ class MediaPlayer(HomeAccessory):
17
17
  chars: dict[str, Characteristic | None]
18
18
  def __init__(self, *args: Any) -> None: ...
19
19
  def generate_service_name(self, mode: str) -> str: ...
20
+ def generated_configured_name(self, mode: str) -> str: ...
20
21
  def set_on_off(self, value: bool) -> None: ...
21
22
  def set_play_pause(self, value: bool) -> None: ...
22
23
  def set_play_stop(self, value: bool) -> None: ...
@@ -1,5 +1,5 @@
1
1
  from .accessories import HomeAccessory as HomeAccessory, HomeDriver as HomeDriver, TYPES as TYPES
2
- from .const import CHAR_ACTIVE as CHAR_ACTIVE, CHAR_IN_USE as CHAR_IN_USE, CHAR_NAME as CHAR_NAME, CHAR_ON as CHAR_ON, CHAR_OUTLET_IN_USE as CHAR_OUTLET_IN_USE, CHAR_VALVE_TYPE as CHAR_VALVE_TYPE, SERV_OUTLET as SERV_OUTLET, SERV_SWITCH as SERV_SWITCH, SERV_VALVE as SERV_VALVE, TYPE_FAUCET as TYPE_FAUCET, TYPE_SHOWER as TYPE_SHOWER, TYPE_SPRINKLER as TYPE_SPRINKLER, TYPE_VALVE as TYPE_VALVE
2
+ from .const import CHAR_ACTIVE as CHAR_ACTIVE, CHAR_CONFIGURED_NAME as CHAR_CONFIGURED_NAME, CHAR_IN_USE as CHAR_IN_USE, CHAR_NAME as CHAR_NAME, CHAR_ON as CHAR_ON, CHAR_OUTLET_IN_USE as CHAR_OUTLET_IN_USE, CHAR_VALVE_TYPE as CHAR_VALVE_TYPE, SERV_OUTLET as SERV_OUTLET, SERV_SWITCH as SERV_SWITCH, SERV_VALVE as SERV_VALVE, TYPE_FAUCET as TYPE_FAUCET, TYPE_SHOWER as TYPE_SHOWER, TYPE_SPRINKLER as TYPE_SPRINKLER, TYPE_VALVE as TYPE_VALVE
3
3
  from .util import cleanup_name_for_homekit as cleanup_name_for_homekit
4
4
  from _typeshed import Incomplete
5
5
  from homeassistant.components import button as button, input_button as input_button
@@ -1,6 +1,6 @@
1
1
  from .accessories import HomeAccessory as HomeAccessory, TYPES as TYPES
2
2
  from .aidmanager import get_system_unique_id as get_system_unique_id
3
- from .const import CHAR_NAME as CHAR_NAME, CHAR_PROGRAMMABLE_SWITCH_EVENT as CHAR_PROGRAMMABLE_SWITCH_EVENT, CHAR_SERVICE_LABEL_INDEX as CHAR_SERVICE_LABEL_INDEX, CHAR_SERVICE_LABEL_NAMESPACE as CHAR_SERVICE_LABEL_NAMESPACE, SERV_SERVICE_LABEL as SERV_SERVICE_LABEL, SERV_STATELESS_PROGRAMMABLE_SWITCH as SERV_STATELESS_PROGRAMMABLE_SWITCH
3
+ from .const import CHAR_CONFIGURED_NAME as CHAR_CONFIGURED_NAME, CHAR_NAME as CHAR_NAME, CHAR_PROGRAMMABLE_SWITCH_EVENT as CHAR_PROGRAMMABLE_SWITCH_EVENT, CHAR_SERVICE_LABEL_INDEX as CHAR_SERVICE_LABEL_INDEX, CHAR_SERVICE_LABEL_NAMESPACE as CHAR_SERVICE_LABEL_NAMESPACE, SERV_SERVICE_LABEL as SERV_SERVICE_LABEL, SERV_STATELESS_PROGRAMMABLE_SWITCH as SERV_STATELESS_PROGRAMMABLE_SWITCH
4
4
  from .util import cleanup_name_for_homekit as cleanup_name_for_homekit
5
5
  from _typeshed import Incomplete
6
6
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Context as Context, callback as callback
@@ -1,5 +1,5 @@
1
1
  import socket
2
- from .const import AUDIO_CODEC_COPY as AUDIO_CODEC_COPY, AUDIO_CODEC_OPUS as AUDIO_CODEC_OPUS, CONF_AUDIO_CODEC as CONF_AUDIO_CODEC, CONF_AUDIO_MAP as CONF_AUDIO_MAP, CONF_AUDIO_PACKET_SIZE as CONF_AUDIO_PACKET_SIZE, CONF_FEATURE as CONF_FEATURE, CONF_FEATURE_LIST as CONF_FEATURE_LIST, CONF_LINKED_BATTERY_CHARGING_SENSOR as CONF_LINKED_BATTERY_CHARGING_SENSOR, CONF_LINKED_BATTERY_SENSOR as CONF_LINKED_BATTERY_SENSOR, CONF_LINKED_DOORBELL_SENSOR as CONF_LINKED_DOORBELL_SENSOR, CONF_LINKED_HUMIDITY_SENSOR as CONF_LINKED_HUMIDITY_SENSOR, CONF_LINKED_MOTION_SENSOR as CONF_LINKED_MOTION_SENSOR, CONF_LINKED_OBSTRUCTION_SENSOR as CONF_LINKED_OBSTRUCTION_SENSOR, CONF_LOW_BATTERY_THRESHOLD as CONF_LOW_BATTERY_THRESHOLD, CONF_MAX_FPS as CONF_MAX_FPS, CONF_MAX_HEIGHT as CONF_MAX_HEIGHT, CONF_MAX_WIDTH as CONF_MAX_WIDTH, CONF_STREAM_ADDRESS as CONF_STREAM_ADDRESS, CONF_STREAM_COUNT as CONF_STREAM_COUNT, CONF_STREAM_SOURCE as CONF_STREAM_SOURCE, CONF_SUPPORT_AUDIO as CONF_SUPPORT_AUDIO, CONF_THRESHOLD_CO as CONF_THRESHOLD_CO, CONF_THRESHOLD_CO2 as CONF_THRESHOLD_CO2, CONF_VIDEO_CODEC as CONF_VIDEO_CODEC, CONF_VIDEO_MAP as CONF_VIDEO_MAP, CONF_VIDEO_PACKET_SIZE as CONF_VIDEO_PACKET_SIZE, CONF_VIDEO_PROFILE_NAMES as CONF_VIDEO_PROFILE_NAMES, DEFAULT_AUDIO_CODEC as DEFAULT_AUDIO_CODEC, DEFAULT_AUDIO_MAP as DEFAULT_AUDIO_MAP, DEFAULT_AUDIO_PACKET_SIZE as DEFAULT_AUDIO_PACKET_SIZE, DEFAULT_LOW_BATTERY_THRESHOLD as DEFAULT_LOW_BATTERY_THRESHOLD, DEFAULT_MAX_FPS as DEFAULT_MAX_FPS, DEFAULT_MAX_HEIGHT as DEFAULT_MAX_HEIGHT, DEFAULT_MAX_WIDTH as DEFAULT_MAX_WIDTH, DEFAULT_STREAM_COUNT as DEFAULT_STREAM_COUNT, DEFAULT_SUPPORT_AUDIO as DEFAULT_SUPPORT_AUDIO, DEFAULT_VIDEO_CODEC as DEFAULT_VIDEO_CODEC, DEFAULT_VIDEO_MAP as DEFAULT_VIDEO_MAP, DEFAULT_VIDEO_PACKET_SIZE as DEFAULT_VIDEO_PACKET_SIZE, DEFAULT_VIDEO_PROFILE_NAMES as DEFAULT_VIDEO_PROFILE_NAMES, DOMAIN as DOMAIN, FEATURE_ON_OFF as FEATURE_ON_OFF, FEATURE_PLAY_PAUSE as FEATURE_PLAY_PAUSE, FEATURE_PLAY_STOP as FEATURE_PLAY_STOP, FEATURE_TOGGLE_MUTE as FEATURE_TOGGLE_MUTE, MAX_NAME_LENGTH as MAX_NAME_LENGTH, TYPE_FAUCET as TYPE_FAUCET, TYPE_OUTLET as TYPE_OUTLET, TYPE_SHOWER as TYPE_SHOWER, TYPE_SPRINKLER as TYPE_SPRINKLER, TYPE_SWITCH as TYPE_SWITCH, TYPE_VALVE as TYPE_VALVE, VIDEO_CODEC_COPY as VIDEO_CODEC_COPY, VIDEO_CODEC_H264_OMX as VIDEO_CODEC_H264_OMX, VIDEO_CODEC_H264_V4L2M2M as VIDEO_CODEC_H264_V4L2M2M, VIDEO_CODEC_LIBX264 as VIDEO_CODEC_LIBX264
2
+ from .const import AUDIO_CODEC_COPY as AUDIO_CODEC_COPY, AUDIO_CODEC_OPUS as AUDIO_CODEC_OPUS, CONF_AUDIO_CODEC as CONF_AUDIO_CODEC, CONF_AUDIO_MAP as CONF_AUDIO_MAP, CONF_AUDIO_PACKET_SIZE as CONF_AUDIO_PACKET_SIZE, CONF_FEATURE as CONF_FEATURE, CONF_FEATURE_LIST as CONF_FEATURE_LIST, CONF_LINKED_BATTERY_CHARGING_SENSOR as CONF_LINKED_BATTERY_CHARGING_SENSOR, CONF_LINKED_BATTERY_SENSOR as CONF_LINKED_BATTERY_SENSOR, CONF_LINKED_DOORBELL_SENSOR as CONF_LINKED_DOORBELL_SENSOR, CONF_LINKED_FILTER_CHANGE_INDICATION as CONF_LINKED_FILTER_CHANGE_INDICATION, CONF_LINKED_FILTER_LIFE_LEVEL as CONF_LINKED_FILTER_LIFE_LEVEL, CONF_LINKED_HUMIDITY_SENSOR as CONF_LINKED_HUMIDITY_SENSOR, CONF_LINKED_MOTION_SENSOR as CONF_LINKED_MOTION_SENSOR, CONF_LINKED_OBSTRUCTION_SENSOR as CONF_LINKED_OBSTRUCTION_SENSOR, CONF_LINKED_PM25_SENSOR as CONF_LINKED_PM25_SENSOR, CONF_LINKED_TEMPERATURE_SENSOR as CONF_LINKED_TEMPERATURE_SENSOR, CONF_LOW_BATTERY_THRESHOLD as CONF_LOW_BATTERY_THRESHOLD, CONF_MAX_FPS as CONF_MAX_FPS, CONF_MAX_HEIGHT as CONF_MAX_HEIGHT, CONF_MAX_WIDTH as CONF_MAX_WIDTH, CONF_STREAM_ADDRESS as CONF_STREAM_ADDRESS, CONF_STREAM_COUNT as CONF_STREAM_COUNT, CONF_STREAM_SOURCE as CONF_STREAM_SOURCE, CONF_SUPPORT_AUDIO as CONF_SUPPORT_AUDIO, CONF_THRESHOLD_CO as CONF_THRESHOLD_CO, CONF_THRESHOLD_CO2 as CONF_THRESHOLD_CO2, CONF_VIDEO_CODEC as CONF_VIDEO_CODEC, CONF_VIDEO_MAP as CONF_VIDEO_MAP, CONF_VIDEO_PACKET_SIZE as CONF_VIDEO_PACKET_SIZE, CONF_VIDEO_PROFILE_NAMES as CONF_VIDEO_PROFILE_NAMES, DEFAULT_AUDIO_CODEC as DEFAULT_AUDIO_CODEC, DEFAULT_AUDIO_MAP as DEFAULT_AUDIO_MAP, DEFAULT_AUDIO_PACKET_SIZE as DEFAULT_AUDIO_PACKET_SIZE, DEFAULT_LOW_BATTERY_THRESHOLD as DEFAULT_LOW_BATTERY_THRESHOLD, DEFAULT_MAX_FPS as DEFAULT_MAX_FPS, DEFAULT_MAX_HEIGHT as DEFAULT_MAX_HEIGHT, DEFAULT_MAX_WIDTH as DEFAULT_MAX_WIDTH, DEFAULT_STREAM_COUNT as DEFAULT_STREAM_COUNT, DEFAULT_SUPPORT_AUDIO as DEFAULT_SUPPORT_AUDIO, DEFAULT_VIDEO_CODEC as DEFAULT_VIDEO_CODEC, DEFAULT_VIDEO_MAP as DEFAULT_VIDEO_MAP, DEFAULT_VIDEO_PACKET_SIZE as DEFAULT_VIDEO_PACKET_SIZE, DEFAULT_VIDEO_PROFILE_NAMES as DEFAULT_VIDEO_PROFILE_NAMES, DOMAIN as DOMAIN, FEATURE_ON_OFF as FEATURE_ON_OFF, FEATURE_PLAY_PAUSE as FEATURE_PLAY_PAUSE, FEATURE_PLAY_STOP as FEATURE_PLAY_STOP, FEATURE_TOGGLE_MUTE as FEATURE_TOGGLE_MUTE, MAX_NAME_LENGTH as MAX_NAME_LENGTH, TYPE_AIR_PURIFIER as TYPE_AIR_PURIFIER, TYPE_FAN as TYPE_FAN, TYPE_FAUCET as TYPE_FAUCET, TYPE_OUTLET as TYPE_OUTLET, TYPE_SHOWER as TYPE_SHOWER, TYPE_SPRINKLER as TYPE_SPRINKLER, TYPE_SWITCH as TYPE_SWITCH, TYPE_VALVE as TYPE_VALVE, VIDEO_CODEC_COPY as VIDEO_CODEC_COPY, VIDEO_CODEC_H264_OMX as VIDEO_CODEC_H264_OMX, VIDEO_CODEC_H264_V4L2M2M as VIDEO_CODEC_H264_V4L2M2M, VIDEO_CODEC_LIBX264 as VIDEO_CODEC_LIBX264
3
3
  from .models import HomeKitConfigEntry as HomeKitConfigEntry
4
4
  from _typeshed import Incomplete
5
5
  from homeassistant.components import binary_sensor as binary_sensor, media_player as media_player, persistent_notification as persistent_notification, sensor as sensor
@@ -24,6 +24,7 @@ BASIC_INFO_SCHEMA: Incomplete
24
24
  FEATURE_SCHEMA: Incomplete
25
25
  CAMERA_SCHEMA: Incomplete
26
26
  HUMIDIFIER_SCHEMA: Incomplete
27
+ FAN_SCHEMA: Incomplete
27
28
  COVER_SCHEMA: Incomplete
28
29
  CODE_SCHEMA: Incomplete
29
30
  LOCK_SCHEMA: Incomplete
@@ -1,6 +1,12 @@
1
1
  from aiohttp.web import Application as Application, Request as Request, StreamResponse as StreamResponse
2
2
  from collections.abc import Callable as Callable
3
3
  from homeassistant.core import callback as callback
4
+ from multidict import istr
5
+ from typing import Final
6
+
7
+ REFERRER_POLICY: Final[istr]
8
+ X_CONTENT_TYPE_OPTIONS: Final[istr]
9
+ X_FRAME_OPTIONS: Final[istr]
4
10
 
5
11
  @callback
6
12
  def setup_headers(app: Application, use_x_frame_options: bool) -> None: ...