homeassistant-stubs 2024.12.5__py3-none-any.whl → 2025.1.0b0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (572) hide show
  1. homeassistant-stubs/auth/__init__.pyi +1 -1
  2. homeassistant-stubs/auth/mfa_modules/__init__.pyi +6 -4
  3. homeassistant-stubs/auth/mfa_modules/notify.pyi +2 -3
  4. homeassistant-stubs/auth/mfa_modules/totp.pyi +2 -3
  5. homeassistant-stubs/auth/providers/__init__.pyi +6 -4
  6. homeassistant-stubs/auth/providers/command_line.pyi +2 -2
  7. homeassistant-stubs/auth/providers/homeassistant.pyi +2 -2
  8. homeassistant-stubs/auth/providers/insecure_example.pyi +2 -2
  9. homeassistant-stubs/auth/providers/trusted_networks.pyi +2 -2
  10. homeassistant-stubs/backup_restore.pyi +11 -4
  11. homeassistant-stubs/components/abode/light.pyi +4 -3
  12. homeassistant-stubs/components/acaia/__init__.pyi +9 -0
  13. homeassistant-stubs/components/acaia/binary_sensor.pyi +24 -0
  14. homeassistant-stubs/components/acaia/button.pyi +24 -0
  15. homeassistant-stubs/components/acaia/config_flow.pyi +18 -0
  16. homeassistant-stubs/components/acaia/const.pyi +2 -0
  17. homeassistant-stubs/components/acaia/coordinator.pyi +19 -0
  18. homeassistant-stubs/components/{stookalert → acaia}/diagnostics.pyi +2 -3
  19. homeassistant-stubs/components/acaia/entity.pyi +17 -0
  20. homeassistant-stubs/components/acaia/sensor.pyi +44 -0
  21. homeassistant-stubs/components/adax/climate.pyi +0 -1
  22. homeassistant-stubs/components/airtouch5/climate.pyi +0 -1
  23. homeassistant-stubs/components/airzone/climate.pyi +0 -1
  24. homeassistant-stubs/components/airzone_cloud/climate.pyi +3 -2
  25. homeassistant-stubs/components/alarm_control_panel/__init__.pyi +1 -6
  26. homeassistant-stubs/components/alarm_control_panel/const.pyi +0 -14
  27. homeassistant-stubs/components/analytics_insights/config_flow.pyi +3 -2
  28. homeassistant-stubs/components/autarco/__init__.pyi +1 -0
  29. homeassistant-stubs/components/autarco/config_flow.pyi +4 -0
  30. homeassistant-stubs/components/autarco/coordinator.pyi +1 -0
  31. homeassistant-stubs/components/automation/__init__.pyi +1 -10
  32. homeassistant-stubs/components/backup/__init__.pyi +4 -11
  33. homeassistant-stubs/components/backup/agent.pyi +35 -0
  34. homeassistant-stubs/components/backup/backup.pyi +29 -0
  35. homeassistant-stubs/components/backup/config.pyi +117 -0
  36. homeassistant-stubs/components/backup/const.pyi +2 -0
  37. homeassistant-stubs/components/backup/http.pyi +3 -2
  38. homeassistant-stubs/components/backup/manager.pyi +191 -51
  39. homeassistant-stubs/components/backup/models.pyi +35 -0
  40. homeassistant-stubs/components/backup/store.pyi +24 -0
  41. homeassistant-stubs/components/backup/util.pyi +12 -0
  42. homeassistant-stubs/components/backup/websocket.pyi +9 -1
  43. homeassistant-stubs/components/baf/climate.pyi +0 -1
  44. homeassistant-stubs/components/baf/fan.pyi +0 -1
  45. homeassistant-stubs/components/baf/light.pyi +4 -5
  46. homeassistant-stubs/components/bang_olufsen/const.pyi +3 -0
  47. homeassistant-stubs/components/bang_olufsen/media_player.pyi +2 -2
  48. homeassistant-stubs/components/binary_sensor/__init__.pyi +0 -33
  49. homeassistant-stubs/components/bluesound/__init__.pyi +0 -1
  50. homeassistant-stubs/components/bluesound/media_player.pyi +13 -8
  51. homeassistant-stubs/components/bluesound/utils.pyi +2 -0
  52. homeassistant-stubs/components/bmw_connected_drive/__init__.pyi +4 -12
  53. homeassistant-stubs/components/bmw_connected_drive/binary_sensor.pyi +1 -0
  54. homeassistant-stubs/components/bmw_connected_drive/button.pyi +1 -0
  55. homeassistant-stubs/components/bmw_connected_drive/config_flow.pyi +8 -4
  56. homeassistant-stubs/components/bmw_connected_drive/coordinator.pyi +4 -3
  57. homeassistant-stubs/components/bmw_connected_drive/device_tracker.pyi +2 -2
  58. homeassistant-stubs/components/bmw_connected_drive/diagnostics.pyi +1 -0
  59. homeassistant-stubs/components/bmw_connected_drive/lock.pyi +1 -0
  60. homeassistant-stubs/components/bmw_connected_drive/notify.pyi +2 -1
  61. homeassistant-stubs/components/bmw_connected_drive/number.pyi +1 -0
  62. homeassistant-stubs/components/bmw_connected_drive/select.pyi +1 -0
  63. homeassistant-stubs/components/bmw_connected_drive/sensor.pyi +1 -0
  64. homeassistant-stubs/components/bmw_connected_drive/switch.pyi +1 -0
  65. homeassistant-stubs/components/bryant_evolution/climate.pyi +0 -1
  66. homeassistant-stubs/components/cambridge_audio/config_flow.pyi +4 -1
  67. homeassistant-stubs/components/cambridge_audio/media_browser.pyi +8 -0
  68. homeassistant-stubs/components/cambridge_audio/media_player.pyi +4 -3
  69. homeassistant-stubs/components/cambridge_audio/select.pyi +2 -2
  70. homeassistant-stubs/components/cambridge_audio/switch.pyi +2 -2
  71. homeassistant-stubs/components/camera/__init__.pyi +1 -5
  72. homeassistant-stubs/components/camera/const.pyi +0 -8
  73. homeassistant-stubs/components/cert_expiry/config_flow.pyi +0 -1
  74. homeassistant-stubs/components/cert_expiry/sensor.pyi +2 -10
  75. homeassistant-stubs/components/climate/__init__.pyi +1 -12
  76. homeassistant-stubs/components/climate/const.pyi +0 -25
  77. homeassistant-stubs/components/cloud/backup.pyi +36 -0
  78. homeassistant-stubs/components/cloud/const.pyi +2 -0
  79. homeassistant-stubs/components/cloud/http_api.pyi +7 -2
  80. homeassistant-stubs/components/cookidoo/__init__.pyi +9 -0
  81. homeassistant-stubs/components/cookidoo/config_flow.pyi +24 -0
  82. homeassistant-stubs/components/cookidoo/const.pyi +1 -0
  83. homeassistant-stubs/components/cookidoo/coordinator.pyi +25 -0
  84. homeassistant-stubs/components/cookidoo/entity.pyi +10 -0
  85. homeassistant-stubs/components/cookidoo/todo.pyi +32 -0
  86. homeassistant-stubs/components/cover/__init__.pyi +0 -18
  87. homeassistant-stubs/components/crownstone/config_flow.pyi +1 -1
  88. homeassistant-stubs/components/deconz/climate.pyi +0 -1
  89. homeassistant-stubs/components/deconz/fan.pyi +0 -1
  90. homeassistant-stubs/components/deconz/light.pyi +7 -5
  91. homeassistant-stubs/components/demo/climate.pyi +0 -1
  92. homeassistant-stubs/components/demo/fan.pyi +0 -1
  93. homeassistant-stubs/components/demo/light.pyi +4 -2
  94. homeassistant-stubs/components/demo/vacuum.pyi +2 -4
  95. homeassistant-stubs/components/device_tracker/__init__.pyi +1 -7
  96. homeassistant-stubs/components/device_tracker/const.pyi +0 -8
  97. homeassistant-stubs/components/devolo_home_control/__init__.pyi +1 -1
  98. homeassistant-stubs/components/devolo_home_control/binary_sensor.pyi +3 -2
  99. homeassistant-stubs/components/devolo_home_control/climate.pyi +0 -1
  100. homeassistant-stubs/components/devolo_home_control/config_flow.pyi +1 -2
  101. homeassistant-stubs/components/devolo_home_control/const.pyi +0 -2
  102. homeassistant-stubs/components/devolo_home_control/sensor.pyi +1 -3
  103. homeassistant-stubs/components/discovergy/__init__.pyi +2 -2
  104. homeassistant-stubs/components/duotecno/climate.pyi +0 -1
  105. homeassistant-stubs/components/easyenergy/__init__.pyi +4 -5
  106. homeassistant-stubs/components/easyenergy/coordinator.pyi +3 -2
  107. homeassistant-stubs/components/easyenergy/diagnostics.pyi +2 -5
  108. homeassistant-stubs/components/easyenergy/sensor.pyi +2 -3
  109. homeassistant-stubs/components/easyenergy/services.pyi +4 -4
  110. homeassistant-stubs/components/ecovacs/button.pyi +13 -2
  111. homeassistant-stubs/components/ecovacs/const.pyi +1 -0
  112. homeassistant-stubs/components/ecovacs/number.pyi +1 -1
  113. homeassistant-stubs/components/ecovacs/select.pyi +2 -2
  114. homeassistant-stubs/components/ecovacs/sensor.pyi +1 -1
  115. homeassistant-stubs/components/ecovacs/util.pyi +1 -0
  116. homeassistant-stubs/components/ecovacs/vacuum.pyi +3 -3
  117. homeassistant-stubs/components/eheimdigital/__init__.pyi +14 -0
  118. homeassistant-stubs/components/eheimdigital/config_flow.pyi +18 -0
  119. homeassistant-stubs/components/eheimdigital/const.pyi +8 -0
  120. homeassistant-stubs/components/eheimdigital/coordinator.pyi +25 -0
  121. homeassistant-stubs/components/eheimdigital/entity.pyi +20 -0
  122. homeassistant-stubs/components/eheimdigital/light.pyi +36 -0
  123. homeassistant-stubs/components/electrasmart/climate.pyi +0 -1
  124. homeassistant-stubs/components/elevenlabs/__init__.pyi +6 -7
  125. homeassistant-stubs/components/elevenlabs/config_flow.pyi +4 -3
  126. homeassistant-stubs/components/elevenlabs/tts.pyi +6 -3
  127. homeassistant-stubs/components/elgato/__init__.pyi +3 -5
  128. homeassistant-stubs/components/elgato/button.pyi +4 -3
  129. homeassistant-stubs/components/elgato/config_flow.pyi +1 -1
  130. homeassistant-stubs/components/elgato/coordinator.pyi +4 -3
  131. homeassistant-stubs/components/elgato/diagnostics.pyi +2 -2
  132. homeassistant-stubs/components/elgato/light.pyi +6 -7
  133. homeassistant-stubs/components/elgato/sensor.pyi +4 -3
  134. homeassistant-stubs/components/elgato/switch.pyi +4 -3
  135. homeassistant-stubs/components/elkm1/climate.pyi +0 -1
  136. homeassistant-stubs/components/emulated_hue/hue_api.pyi +1 -1
  137. homeassistant-stubs/components/energyzero/__init__.pyi +4 -5
  138. homeassistant-stubs/components/energyzero/coordinator.pyi +2 -1
  139. homeassistant-stubs/components/energyzero/diagnostics.pyi +2 -5
  140. homeassistant-stubs/components/energyzero/sensor.pyi +2 -3
  141. homeassistant-stubs/components/energyzero/services.pyi +4 -4
  142. homeassistant-stubs/components/enigma2/coordinator.pyi +1 -0
  143. homeassistant-stubs/components/enigma2/media_player.pyi +0 -1
  144. homeassistant-stubs/components/enphase_envoy/binary_sensor.pyi +2 -0
  145. homeassistant-stubs/components/enphase_envoy/config_flow.pyi +2 -1
  146. homeassistant-stubs/components/enphase_envoy/coordinator.pyi +2 -2
  147. homeassistant-stubs/components/enphase_envoy/number.pyi +2 -0
  148. homeassistant-stubs/components/enphase_envoy/select.pyi +2 -0
  149. homeassistant-stubs/components/enphase_envoy/sensor.pyi +35 -1
  150. homeassistant-stubs/components/enphase_envoy/switch.pyi +2 -0
  151. homeassistant-stubs/components/esphome/climate.pyi +0 -1
  152. homeassistant-stubs/components/esphome/fan.pyi +0 -1
  153. homeassistant-stubs/components/esphome/light.pyi +0 -2
  154. homeassistant-stubs/components/evohome/climate.pyi +0 -1
  155. homeassistant-stubs/components/fan/__init__.pyi +0 -15
  156. homeassistant-stubs/components/feedreader/__init__.pyi +3 -8
  157. homeassistant-stubs/components/feedreader/config_flow.pyi +1 -6
  158. homeassistant-stubs/components/flexit_bacnet/climate.pyi +0 -1
  159. homeassistant-stubs/components/flexit_bacnet/number.pyi +3 -0
  160. homeassistant-stubs/components/flux_led/light.pyi +4 -5
  161. homeassistant-stubs/components/fritzbox/climate.pyi +0 -1
  162. homeassistant-stubs/components/fritzbox/coordinator.pyi +2 -1
  163. homeassistant-stubs/components/fritzbox/light.pyi +3 -4
  164. homeassistant-stubs/components/fritzbox_callmonitor/base.pyi +13 -2
  165. homeassistant-stubs/components/fritzbox_callmonitor/config_flow.pyi +2 -2
  166. homeassistant-stubs/components/fritzbox_callmonitor/sensor.pyi +4 -4
  167. homeassistant-stubs/components/fronius/__init__.pyi +1 -1
  168. homeassistant-stubs/components/fronius/const.pyi +3 -3
  169. homeassistant-stubs/components/fronius/coordinator.pyi +1 -1
  170. homeassistant-stubs/components/fronius/sensor.pyi +2 -1
  171. homeassistant-stubs/components/fujitsu_fglair/climate.pyi +0 -1
  172. homeassistant-stubs/components/fyta/__init__.pyi +2 -2
  173. homeassistant-stubs/components/fyta/entity.pyi +2 -2
  174. homeassistant-stubs/components/generic_thermostat/climate.pyi +1 -4
  175. homeassistant-stubs/components/generic_thermostat/config_flow.pyi +1 -1
  176. homeassistant-stubs/components/generic_thermostat/const.pyi +2 -0
  177. homeassistant-stubs/components/group/fan.pyi +0 -1
  178. homeassistant-stubs/components/group/registry.pyi +1 -1
  179. homeassistant-stubs/components/history/__init__.pyi +1 -1
  180. homeassistant-stubs/components/history/helpers.pyi +1 -2
  181. homeassistant-stubs/components/history/websocket_api.pyi +1 -1
  182. homeassistant-stubs/components/holiday/__init__.pyi +2 -1
  183. homeassistant-stubs/components/holiday/calendar.pyi +4 -3
  184. homeassistant-stubs/components/holiday/config_flow.pyi +13 -3
  185. homeassistant-stubs/components/holiday/const.pyi +1 -0
  186. homeassistant-stubs/components/homeassistant_yellow/config_flow.pyi +5 -3
  187. homeassistant-stubs/components/homekit/doorbell.pyi +23 -0
  188. homeassistant-stubs/components/homekit/type_cameras.pyi +4 -12
  189. homeassistant-stubs/components/homekit/type_locks.pyi +3 -2
  190. homeassistant-stubs/components/homekit/type_switches.pyi +1 -1
  191. homeassistant-stubs/components/homekit/util.pyi +1 -0
  192. homeassistant-stubs/components/homewizard/sensor.pyi +1 -1
  193. homeassistant-stubs/components/humidifier/__init__.pyi +1 -8
  194. homeassistant-stubs/components/humidifier/const.pyi +0 -9
  195. homeassistant-stubs/components/husqvarna_automower/__init__.pyi +2 -2
  196. homeassistant-stubs/components/husqvarna_automower/binary_sensor.pyi +1 -0
  197. homeassistant-stubs/components/husqvarna_automower/calendar.pyi +1 -0
  198. homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +4 -4
  199. homeassistant-stubs/components/husqvarna_automower/device_tracker.pyi +2 -0
  200. homeassistant-stubs/components/husqvarna_automower/diagnostics.pyi +1 -2
  201. homeassistant-stubs/components/husqvarna_automower/entity.pyi +4 -3
  202. homeassistant-stubs/components/husqvarna_automower/sensor.pyi +1 -0
  203. homeassistant-stubs/components/idasen_desk/__init__.pyi +5 -16
  204. homeassistant-stubs/components/idasen_desk/button.pyi +7 -12
  205. homeassistant-stubs/components/idasen_desk/coordinator.pyi +2 -3
  206. homeassistant-stubs/components/idasen_desk/cover.pyi +8 -17
  207. homeassistant-stubs/components/idasen_desk/entity.pyi +12 -0
  208. homeassistant-stubs/components/idasen_desk/sensor.pyi +7 -20
  209. homeassistant-stubs/components/image_upload/media_source.pyi +14 -0
  210. homeassistant-stubs/components/imap/config_flow.pyi +3 -2
  211. homeassistant-stubs/components/imap/coordinator.pyi +5 -5
  212. homeassistant-stubs/components/imap/sensor.pyi +1 -0
  213. homeassistant-stubs/components/intent/__init__.pyi +2 -1
  214. homeassistant-stubs/components/iotty/switch.pyi +8 -6
  215. homeassistant-stubs/components/iron_os/__init__.pyi +21 -0
  216. homeassistant-stubs/components/iron_os/binary_sensor.pyi +19 -0
  217. homeassistant-stubs/components/iron_os/config_flow.pyi +15 -0
  218. homeassistant-stubs/components/iron_os/const.pyi +7 -0
  219. homeassistant-stubs/components/iron_os/coordinator.pyi +43 -0
  220. homeassistant-stubs/components/iron_os/entity.pyi +13 -0
  221. homeassistant-stubs/components/iron_os/number.pyi +62 -0
  222. homeassistant-stubs/components/iron_os/select.pyi +49 -0
  223. homeassistant-stubs/components/iron_os/sensor.pyi +46 -0
  224. homeassistant-stubs/components/iron_os/update.pyi +29 -0
  225. homeassistant-stubs/components/isy994/climate.pyi +0 -1
  226. homeassistant-stubs/components/isy994/fan.pyi +0 -1
  227. homeassistant-stubs/components/knx/climate.pyi +0 -1
  228. homeassistant-stubs/components/knx/config_flow.pyi +4 -0
  229. homeassistant-stubs/components/knx/fan.pyi +0 -1
  230. homeassistant-stubs/components/knx/services.pyi +5 -5
  231. homeassistant-stubs/components/lamarzocco/__init__.pyi +4 -5
  232. homeassistant-stubs/components/lamarzocco/binary_sensor.pyi +9 -3
  233. homeassistant-stubs/components/lamarzocco/calendar.pyi +1 -0
  234. homeassistant-stubs/components/lamarzocco/config_flow.pyi +6 -5
  235. homeassistant-stubs/components/lamarzocco/coordinator.pyi +39 -16
  236. homeassistant-stubs/components/lamarzocco/entity.pyi +7 -3
  237. homeassistant-stubs/components/lamarzocco/number.pyi +8 -4
  238. homeassistant-stubs/components/lamarzocco/select.pyi +8 -4
  239. homeassistant-stubs/components/lamarzocco/sensor.pyi +10 -3
  240. homeassistant-stubs/components/lamarzocco/switch.pyi +1 -1
  241. homeassistant-stubs/components/lametric/notify.pyi +2 -1
  242. homeassistant-stubs/components/lametric/number.pyi +2 -1
  243. homeassistant-stubs/components/lametric/services.pyi +2 -1
  244. homeassistant-stubs/components/lametric/switch.pyi +2 -1
  245. homeassistant-stubs/components/lcn/__init__.pyi +3 -1
  246. homeassistant-stubs/components/lcn/climate.pyi +0 -1
  247. homeassistant-stubs/components/lcn/const.pyi +1 -0
  248. homeassistant-stubs/components/lcn/helpers.pyi +1 -1
  249. homeassistant-stubs/components/lcn/services.pyi +7 -4
  250. homeassistant-stubs/components/lifx/const.pyi +1 -0
  251. homeassistant-stubs/components/lifx/manager.pyi +2 -2
  252. homeassistant-stubs/components/lifx/util.pyi +2 -2
  253. homeassistant-stubs/components/light/__init__.pyi +31 -55
  254. homeassistant-stubs/components/light/const.pyi +33 -0
  255. homeassistant-stubs/components/light/device_action.pyi +2 -1
  256. homeassistant-stubs/components/light/device_condition.pyi +1 -1
  257. homeassistant-stubs/components/light/device_trigger.pyi +1 -1
  258. homeassistant-stubs/components/light/intent.pyi +2 -1
  259. homeassistant-stubs/components/light/reproduce_state.pyi +2 -1
  260. homeassistant-stubs/components/light/significant_change.pyi +1 -1
  261. homeassistant-stubs/components/litterrobot/vacuum.pyi +2 -2
  262. homeassistant-stubs/components/lock/__init__.pyi +1 -2
  263. homeassistant-stubs/components/lookin/climate.pyi +0 -1
  264. homeassistant-stubs/components/mastodon/__init__.pyi +2 -2
  265. homeassistant-stubs/components/mastodon/config_flow.pyi +1 -2
  266. homeassistant-stubs/components/mastodon/sensor.pyi +2 -0
  267. homeassistant-stubs/components/matter/climate.pyi +0 -1
  268. homeassistant-stubs/components/matter/fan.pyi +0 -1
  269. homeassistant-stubs/components/matter/light.pyi +5 -5
  270. homeassistant-stubs/components/matter/vacuum.pyi +3 -3
  271. homeassistant-stubs/components/mealie/__init__.pyi +18 -0
  272. homeassistant-stubs/components/mealie/calendar.pyi +21 -0
  273. homeassistant-stubs/components/mealie/config_flow.pyi +20 -0
  274. homeassistant-stubs/components/mealie/const.pyi +14 -0
  275. homeassistant-stubs/components/mealie/coordinator.pyi +53 -0
  276. homeassistant-stubs/components/mealie/diagnostics.pyi +5 -0
  277. homeassistant-stubs/components/mealie/entity.pyi +11 -0
  278. homeassistant-stubs/components/mealie/sensor.pyi +29 -0
  279. homeassistant-stubs/components/mealie/services.pyi +21 -0
  280. homeassistant-stubs/components/mealie/todo.pyi +36 -0
  281. homeassistant-stubs/components/mealie/utils.pyi +3 -0
  282. homeassistant-stubs/components/media_player/__init__.pyi +0 -2
  283. homeassistant-stubs/components/modbus/climate.pyi +0 -1
  284. homeassistant-stubs/components/modbus/fan.pyi +0 -1
  285. homeassistant-stubs/components/modbus/modbus.pyi +3 -3
  286. homeassistant-stubs/components/mqtt/client.pyi +1 -1
  287. homeassistant-stubs/components/mqtt/climate.pyi +0 -1
  288. homeassistant-stubs/components/mqtt/config_flow.pyi +2 -1
  289. homeassistant-stubs/components/mqtt/fan.pyi +0 -1
  290. homeassistant-stubs/components/mqtt/light/schema_basic.pyi +5 -5
  291. homeassistant-stubs/components/mqtt/light/schema_json.pyi +4 -4
  292. homeassistant-stubs/components/mqtt/light/schema_template.pyi +4 -4
  293. homeassistant-stubs/components/mqtt/switch.pyi +1 -1
  294. homeassistant-stubs/components/mqtt/vacuum.pyi +10 -4
  295. homeassistant-stubs/components/music_assistant/__init__.pyi +4 -0
  296. homeassistant-stubs/components/music_assistant/actions.pyi +18 -0
  297. homeassistant-stubs/components/music_assistant/const.pyi +48 -0
  298. homeassistant-stubs/components/music_assistant/media_player.pyi +9 -16
  299. homeassistant-stubs/components/music_assistant/schemas.pyi +20 -0
  300. homeassistant-stubs/components/mysensors/climate.pyi +0 -1
  301. homeassistant-stubs/components/myuplink/__init__.pyi +5 -2
  302. homeassistant-stubs/components/myuplink/binary_sensor.pyi +2 -2
  303. homeassistant-stubs/components/myuplink/config_flow.pyi +4 -1
  304. homeassistant-stubs/components/myuplink/number.pyi +2 -2
  305. homeassistant-stubs/components/myuplink/select.pyi +3 -2
  306. homeassistant-stubs/components/myuplink/switch.pyi +1 -1
  307. homeassistant-stubs/components/nanoleaf/light.pyi +4 -4
  308. homeassistant-stubs/components/neato/vacuum.pyi +3 -3
  309. homeassistant-stubs/components/nest/__init__.pyi +6 -6
  310. homeassistant-stubs/components/nest/camera.pyi +2 -4
  311. homeassistant-stubs/components/nest/climate.pyi +2 -5
  312. homeassistant-stubs/components/nest/const.pyi +0 -2
  313. homeassistant-stubs/components/nest/device_info.pyi +2 -1
  314. homeassistant-stubs/components/nest/diagnostics.pyi +4 -8
  315. homeassistant-stubs/components/nest/event.pyi +2 -4
  316. homeassistant-stubs/components/nest/sensor.pyi +2 -4
  317. homeassistant-stubs/components/nest/types.pyi +11 -0
  318. homeassistant-stubs/components/netatmo/climate.pyi +0 -1
  319. homeassistant-stubs/components/netatmo/fan.pyi +0 -1
  320. homeassistant-stubs/components/nordpool/__init__.pyi +6 -0
  321. homeassistant-stubs/components/nordpool/coordinator.pyi +5 -2
  322. homeassistant-stubs/components/nordpool/entity.pyi +1 -1
  323. homeassistant-stubs/components/nordpool/sensor.pyi +10 -6
  324. homeassistant-stubs/components/nordpool/services.pyi +19 -0
  325. homeassistant-stubs/components/number/const.pyi +0 -8
  326. homeassistant-stubs/components/onkyo/config_flow.pyi +2 -0
  327. homeassistant-stubs/components/onkyo/media_player.pyi +10 -7
  328. homeassistant-stubs/components/overkiz/__init__.pyi +4 -3
  329. homeassistant-stubs/components/overkiz/alarm_control_panel.pyi +2 -4
  330. homeassistant-stubs/components/overkiz/binary_sensor.pyi +3 -4
  331. homeassistant-stubs/components/overkiz/button.pyi +4 -5
  332. homeassistant-stubs/components/overkiz/climate/__init__.pyi +3 -4
  333. homeassistant-stubs/components/overkiz/climate/atlantic_electrical_heater.pyi +0 -1
  334. homeassistant-stubs/components/overkiz/climate/atlantic_electrical_heater_with_adjustable_temperature_setpoint.pyi +0 -1
  335. homeassistant-stubs/components/overkiz/climate/atlantic_electrical_towel_dryer.pyi +1 -2
  336. homeassistant-stubs/components/overkiz/climate/atlantic_heat_recovery_ventilation.pyi +0 -1
  337. homeassistant-stubs/components/overkiz/climate/atlantic_pass_apc_heat_pump_main_component.pyi +0 -1
  338. homeassistant-stubs/components/overkiz/climate/atlantic_pass_apc_heating_zone.pyi +0 -1
  339. homeassistant-stubs/components/overkiz/climate/atlantic_pass_apc_zone_control.pyi +0 -1
  340. homeassistant-stubs/components/overkiz/climate/hitachi_air_to_air_heat_pump_hlrrwifi.pyi +0 -1
  341. homeassistant-stubs/components/overkiz/climate/hitachi_air_to_air_heat_pump_ovp.pyi +0 -1
  342. homeassistant-stubs/components/overkiz/climate/hitachi_air_to_water_heating_zone.pyi +34 -0
  343. homeassistant-stubs/components/overkiz/climate/somfy_heating_temperature_interface.pyi +0 -1
  344. homeassistant-stubs/components/overkiz/climate/somfy_thermostat.pyi +0 -1
  345. homeassistant-stubs/components/overkiz/climate/valve_heating_temperature_interface.pyi +0 -1
  346. homeassistant-stubs/components/overkiz/cover/__init__.pyi +2 -4
  347. homeassistant-stubs/components/overkiz/diagnostics.pyi +4 -5
  348. homeassistant-stubs/components/overkiz/light.pyi +2 -4
  349. homeassistant-stubs/components/overkiz/lock.pyi +2 -4
  350. homeassistant-stubs/components/overkiz/number.pyi +3 -4
  351. homeassistant-stubs/components/overkiz/scene.pyi +2 -4
  352. homeassistant-stubs/components/overkiz/select.pyi +3 -4
  353. homeassistant-stubs/components/overkiz/sensor.pyi +2 -3
  354. homeassistant-stubs/components/overkiz/siren.pyi +2 -4
  355. homeassistant-stubs/components/overkiz/switch.pyi +2 -4
  356. homeassistant-stubs/components/overkiz/water_heater/__init__.pyi +2 -4
  357. homeassistant-stubs/components/peblar/__init__.pyi +11 -0
  358. homeassistant-stubs/components/peblar/binary_sensor.pyi +25 -0
  359. homeassistant-stubs/components/peblar/button.pyi +27 -0
  360. homeassistant-stubs/components/peblar/config_flow.pyi +18 -0
  361. homeassistant-stubs/components/peblar/const.pyi +7 -0
  362. homeassistant-stubs/components/peblar/coordinator.pyi +50 -0
  363. homeassistant-stubs/components/peblar/diagnostics.pyi +5 -0
  364. homeassistant-stubs/components/peblar/entity.pyi +15 -0
  365. homeassistant-stubs/components/peblar/helpers.pyi +7 -0
  366. homeassistant-stubs/components/peblar/number.pyi +33 -0
  367. homeassistant-stubs/components/peblar/select.pyi +30 -0
  368. homeassistant-stubs/components/peblar/sensor.pyi +29 -0
  369. homeassistant-stubs/components/peblar/switch.pyi +32 -0
  370. homeassistant-stubs/components/peblar/update.pyi +26 -0
  371. homeassistant-stubs/components/plugwise/binary_sensor.pyi +1 -0
  372. homeassistant-stubs/components/plugwise/button.pyi +2 -0
  373. homeassistant-stubs/components/plugwise/climate.pyi +3 -4
  374. homeassistant-stubs/components/plugwise/config_flow.pyi +7 -1
  375. homeassistant-stubs/components/plugwise/entity.pyi +0 -1
  376. homeassistant-stubs/components/plugwise/number.pyi +2 -0
  377. homeassistant-stubs/components/plugwise/select.pyi +2 -0
  378. homeassistant-stubs/components/plugwise/sensor.pyi +2 -0
  379. homeassistant-stubs/components/plugwise/switch.pyi +2 -0
  380. homeassistant-stubs/components/plugwise/util.pyi +1 -0
  381. homeassistant-stubs/components/powerfox/__init__.pyi +12 -0
  382. homeassistant-stubs/components/powerfox/config_flow.pyi +16 -0
  383. homeassistant-stubs/components/{stookalert → powerfox}/const.pyi +1 -2
  384. homeassistant-stubs/components/powerfox/coordinator.pyi +14 -0
  385. homeassistant-stubs/components/powerfox/diagnostics.pyi +5 -0
  386. homeassistant-stubs/components/powerfox/entity.pyi +11 -0
  387. homeassistant-stubs/components/powerfox/sensor.pyi +28 -0
  388. homeassistant-stubs/components/powerwall/sensor.pyi +3 -5
  389. homeassistant-stubs/components/rabbitair/fan.pyi +0 -1
  390. homeassistant-stubs/components/recorder/db_schema.pyi +19 -4
  391. homeassistant-stubs/components/recorder/history/legacy.pyi +4 -4
  392. homeassistant-stubs/components/recorder/history/modern.pyi +5 -5
  393. homeassistant-stubs/components/recorder/migration.pyi +29 -19
  394. homeassistant-stubs/components/recorder/models/state.pyi +3 -0
  395. homeassistant-stubs/components/recorder/queries.pyi +3 -4
  396. homeassistant-stubs/components/recorder/statistics.pyi +2 -2
  397. homeassistant-stubs/components/recorder/table_managers/event_types.pyi +0 -1
  398. homeassistant-stubs/components/recorder/table_managers/recorder_runs.pyi +1 -12
  399. homeassistant-stubs/components/recorder/table_managers/states.pyi +7 -0
  400. homeassistant-stubs/components/remote/__init__.pyi +0 -10
  401. homeassistant-stubs/components/renault/binary_sensor.pyi +2 -0
  402. homeassistant-stubs/components/renault/button.pyi +2 -0
  403. homeassistant-stubs/components/renault/coordinator.pyi +2 -1
  404. homeassistant-stubs/components/renault/device_tracker.pyi +2 -0
  405. homeassistant-stubs/components/renault/select.pyi +2 -0
  406. homeassistant-stubs/components/renault/sensor.pyi +2 -0
  407. homeassistant-stubs/components/reolink/button.pyi +1 -2
  408. homeassistant-stubs/components/reolink/camera.pyi +1 -2
  409. homeassistant-stubs/components/reolink/light.pyi +1 -2
  410. homeassistant-stubs/components/reolink/number.pyi +1 -2
  411. homeassistant-stubs/components/reolink/select.pyi +1 -2
  412. homeassistant-stubs/components/reolink/services.pyi +2 -2
  413. homeassistant-stubs/components/reolink/siren.pyi +1 -2
  414. homeassistant-stubs/components/reolink/switch.pyi +1 -2
  415. homeassistant-stubs/components/reolink/update.pyi +1 -0
  416. homeassistant-stubs/components/reolink/util.pyi +7 -0
  417. homeassistant-stubs/components/roborock/vacuum.pyi +2 -2
  418. homeassistant-stubs/components/roku/__init__.pyi +5 -4
  419. homeassistant-stubs/components/roku/binary_sensor.pyi +4 -3
  420. homeassistant-stubs/components/roku/config_flow.pyi +5 -3
  421. homeassistant-stubs/components/roku/diagnostics.pyi +2 -4
  422. homeassistant-stubs/components/roku/media_player.pyi +4 -3
  423. homeassistant-stubs/components/roku/remote.pyi +4 -4
  424. homeassistant-stubs/components/roku/select.pyi +4 -4
  425. homeassistant-stubs/components/roku/sensor.pyi +4 -4
  426. homeassistant-stubs/components/romy/vacuum.pyi +2 -2
  427. homeassistant-stubs/components/russound_rio/__init__.pyi +14 -0
  428. homeassistant-stubs/components/russound_rio/config_flow.pyi +14 -0
  429. homeassistant-stubs/components/russound_rio/const.pyi +7 -0
  430. homeassistant-stubs/components/russound_rio/diagnostics.pyi +5 -0
  431. homeassistant-stubs/components/russound_rio/entity.pyi +25 -0
  432. homeassistant-stubs/components/russound_rio/media_player.pyi +56 -0
  433. homeassistant-stubs/components/schlage/__init__.pyi +11 -0
  434. homeassistant-stubs/components/schlage/binary_sensor.pyi +26 -0
  435. homeassistant-stubs/components/schlage/config_flow.pyi +19 -0
  436. homeassistant-stubs/components/schlage/const.pyi +6 -0
  437. homeassistant-stubs/components/schlage/coordinator.pyi +31 -0
  438. homeassistant-stubs/components/schlage/diagnostics.pyi +5 -0
  439. homeassistant-stubs/components/schlage/entity.pyi +19 -0
  440. homeassistant-stubs/components/schlage/lock.pyi +21 -0
  441. homeassistant-stubs/components/schlage/select.pyi +20 -0
  442. homeassistant-stubs/components/schlage/sensor.pyi +19 -0
  443. homeassistant-stubs/components/schlage/switch.pyi +32 -0
  444. homeassistant-stubs/components/sensibo/climate.pyi +2 -3
  445. homeassistant-stubs/components/sensibo/coordinator.pyi +1 -1
  446. homeassistant-stubs/components/sensor/const.pyi +0 -7
  447. homeassistant-stubs/components/senz/climate.pyi +0 -1
  448. homeassistant-stubs/components/shelly/climate.pyi +0 -2
  449. homeassistant-stubs/components/siren/__init__.pyi +1 -6
  450. homeassistant-stubs/components/siren/const.pyi +0 -11
  451. homeassistant-stubs/components/snooz/fan.pyi +0 -1
  452. homeassistant-stubs/components/solarlog/config_flow.pyi +2 -5
  453. homeassistant-stubs/components/solarlog/const.pyi +0 -1
  454. homeassistant-stubs/components/solarlog/coordinator.pyi +0 -1
  455. homeassistant-stubs/components/starlink/coordinator.pyi +4 -2
  456. homeassistant-stubs/components/starlink/sensor.pyi +1 -1
  457. homeassistant-stubs/components/statistics/sensor.pyi +43 -40
  458. homeassistant-stubs/components/stream/__init__.pyi +13 -0
  459. homeassistant-stubs/components/suez_water/__init__.pyi +3 -5
  460. homeassistant-stubs/components/suez_water/coordinator.pyi +7 -9
  461. homeassistant-stubs/components/suez_water/sensor.pyi +5 -6
  462. homeassistant-stubs/components/sun/__init__.pyi +2 -0
  463. homeassistant-stubs/components/sun/entity.pyi +1 -2
  464. homeassistant-stubs/components/switch/__init__.pyi +0 -7
  465. homeassistant-stubs/components/switch_as_x/fan.pyi +0 -1
  466. homeassistant-stubs/components/switchbee/climate.pyi +0 -1
  467. homeassistant-stubs/components/switchbot_cloud/climate.pyi +0 -1
  468. homeassistant-stubs/components/switchbot_cloud/sensor.pyi +12 -3
  469. homeassistant-stubs/components/switchbot_cloud/switch.pyi +4 -0
  470. homeassistant-stubs/components/switchbot_cloud/vacuum.pyi +3 -3
  471. homeassistant-stubs/components/switcher_kis/climate.pyi +1 -2
  472. homeassistant-stubs/components/switcher_kis/cover.pyi +0 -4
  473. homeassistant-stubs/components/switcher_kis/entity.pyi +6 -0
  474. homeassistant-stubs/components/switcher_kis/light.pyi +0 -4
  475. homeassistant-stubs/components/switcher_kis/switch.pyi +0 -2
  476. homeassistant-stubs/components/tailwind/__init__.pyi +2 -4
  477. homeassistant-stubs/components/tailwind/binary_sensor.pyi +1 -1
  478. homeassistant-stubs/components/tailwind/button.pyi +1 -1
  479. homeassistant-stubs/components/tailwind/coordinator.pyi +2 -1
  480. homeassistant-stubs/components/tailwind/cover.pyi +1 -1
  481. homeassistant-stubs/components/tailwind/diagnostics.pyi +1 -1
  482. homeassistant-stubs/components/tailwind/number.pyi +1 -1
  483. homeassistant-stubs/components/tedee/__init__.pyi +2 -3
  484. homeassistant-stubs/components/tedee/binary_sensor.pyi +2 -0
  485. homeassistant-stubs/components/tedee/sensor.pyi +2 -0
  486. homeassistant-stubs/components/tibber/services.pyi +1 -1
  487. homeassistant-stubs/components/tolo/climate.pyi +0 -1
  488. homeassistant-stubs/components/tolo/fan.pyi +0 -1
  489. homeassistant-stubs/components/tplink/__init__.pyi +1 -1
  490. homeassistant-stubs/components/tplink/binary_sensor.pyi +2 -2
  491. homeassistant-stubs/components/tplink/button.pyi +2 -2
  492. homeassistant-stubs/components/tplink/camera.pyi +49 -0
  493. homeassistant-stubs/components/tplink/climate.pyi +1 -2
  494. homeassistant-stubs/components/tplink/config_flow.pyi +11 -5
  495. homeassistant-stubs/components/tplink/const.pyi +2 -0
  496. homeassistant-stubs/components/tplink/entity.pyi +9 -2
  497. homeassistant-stubs/components/tplink/fan.pyi +1 -2
  498. homeassistant-stubs/components/tplink/light.pyi +2 -2
  499. homeassistant-stubs/components/tplink/models.pyi +4 -1
  500. homeassistant-stubs/components/tplink/number.pyi +2 -2
  501. homeassistant-stubs/components/tplink/select.pyi +2 -2
  502. homeassistant-stubs/components/tplink/sensor.pyi +2 -2
  503. homeassistant-stubs/components/tplink/siren.pyi +1 -1
  504. homeassistant-stubs/components/tplink/switch.pyi +2 -2
  505. homeassistant-stubs/components/tractive/sensor.pyi +1 -1
  506. homeassistant-stubs/components/tradfri/fan.pyi +0 -1
  507. homeassistant-stubs/components/tradfri/light.pyi +4 -4
  508. homeassistant-stubs/components/transmission/__init__.pyi +1 -1
  509. homeassistant-stubs/components/transmission/const.pyi +1 -0
  510. homeassistant-stubs/components/twentemilieu/__init__.pyi +3 -11
  511. homeassistant-stubs/components/twentemilieu/calendar.pyi +1 -1
  512. homeassistant-stubs/components/twentemilieu/coordinator.pyi +14 -0
  513. homeassistant-stubs/components/twentemilieu/diagnostics.pyi +2 -2
  514. homeassistant-stubs/components/twentemilieu/entity.pyi +2 -3
  515. homeassistant-stubs/components/twentemilieu/sensor.pyi +3 -3
  516. homeassistant-stubs/components/unifi/sensor.pyi +1 -1
  517. homeassistant-stubs/components/unifiprotect/const.pyi +6 -0
  518. homeassistant-stubs/components/unifiprotect/event.pyi +5 -3
  519. homeassistant-stubs/components/unifiprotect/services.pyi +16 -9
  520. homeassistant-stubs/components/update/__init__.pyi +0 -2
  521. homeassistant-stubs/components/vacuum/__init__.pyi +16 -7
  522. homeassistant-stubs/components/vacuum/const.pyi +18 -5
  523. homeassistant-stubs/components/vacuum/device_condition.pyi +1 -1
  524. homeassistant-stubs/components/vacuum/device_trigger.pyi +1 -1
  525. homeassistant-stubs/components/vacuum/reproduce_state.pyi +2 -2
  526. homeassistant-stubs/components/vallox/fan.pyi +0 -1
  527. homeassistant-stubs/components/velbus/__init__.pyi +22 -9
  528. homeassistant-stubs/components/velbus/binary_sensor.pyi +4 -3
  529. homeassistant-stubs/components/velbus/button.pyi +4 -3
  530. homeassistant-stubs/components/velbus/climate.pyi +4 -3
  531. homeassistant-stubs/components/velbus/cover.pyi +4 -3
  532. homeassistant-stubs/components/velbus/diagnostics.pyi +3 -4
  533. homeassistant-stubs/components/velbus/light.pyi +4 -3
  534. homeassistant-stubs/components/velbus/select.pyi +4 -3
  535. homeassistant-stubs/components/velbus/sensor.pyi +4 -3
  536. homeassistant-stubs/components/velbus/services.pyi +7 -0
  537. homeassistant-stubs/components/velbus/switch.pyi +4 -3
  538. homeassistant-stubs/components/water_heater/__init__.pyi +7 -12
  539. homeassistant-stubs/components/wemo/fan.pyi +0 -1
  540. homeassistant-stubs/components/wemo/light.pyi +4 -2
  541. homeassistant-stubs/components/wiz/light.pyi +4 -5
  542. homeassistant-stubs/components/yale_smart_alarm/__init__.pyi +4 -4
  543. homeassistant-stubs/components/yale_smart_alarm/alarm_control_panel.pyi +0 -1
  544. homeassistant-stubs/components/yale_smart_alarm/config_flow.pyi +3 -2
  545. homeassistant-stubs/components/yale_smart_alarm/coordinator.pyi +3 -3
  546. homeassistant-stubs/components/yale_smart_alarm/entity.pyi +1 -1
  547. homeassistant-stubs/components/yale_smart_alarm/lock.pyi +1 -1
  548. homeassistant-stubs/components/zwave_js/api.pyi +2 -0
  549. homeassistant-stubs/components/zwave_js/climate.pyi +0 -1
  550. homeassistant-stubs/components/zwave_js/fan.pyi +0 -1
  551. homeassistant-stubs/components/zwave_js/light.pyi +7 -9
  552. homeassistant-stubs/const.pyi +2 -151
  553. homeassistant-stubs/core.pyi +3 -6
  554. homeassistant-stubs/core_config.pyi +2 -1
  555. homeassistant-stubs/data_entry_flow.pyi +0 -13
  556. homeassistant-stubs/exceptions.pyi +6 -0
  557. homeassistant-stubs/helpers/device_registry.pyi +1 -9
  558. homeassistant-stubs/helpers/entity.pyi +1 -2
  559. homeassistant-stubs/helpers/event.pyi +3 -4
  560. homeassistant-stubs/helpers/service.pyi +1 -1
  561. homeassistant-stubs/helpers/service_info/mqtt.pyi +1 -1
  562. homeassistant-stubs/helpers/template.pyi +1 -1
  563. homeassistant-stubs/util/dt.pyi +1 -0
  564. {homeassistant_stubs-2024.12.5.dist-info → homeassistant_stubs-2025.1.0b0.dist-info}/METADATA +2 -2
  565. {homeassistant_stubs-2024.12.5.dist-info → homeassistant_stubs-2025.1.0b0.dist-info}/RECORD +567 -474
  566. homeassistant-stubs/components/bluesound/services.pyi +0 -21
  567. homeassistant-stubs/components/stookalert/__init__.pyi +0 -10
  568. homeassistant-stubs/components/stookalert/binary_sensor.pyi +0 -24
  569. homeassistant-stubs/components/stookalert/config_flow.pyi +0 -7
  570. homeassistant-stubs/components/tailwind/typing.pyi +0 -4
  571. {homeassistant_stubs-2024.12.5.dist-info → homeassistant_stubs-2025.1.0b0.dist-info}/WHEEL +0 -0
  572. {homeassistant_stubs-2024.12.5.dist-info → homeassistant_stubs-2025.1.0b0.dist-info}/licenses/LICENSE +0 -0
@@ -24,7 +24,6 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_e
24
24
  class SwitchBeeClimateEntity(SwitchBeeDeviceEntity[SwitchBeeThermostat], ClimateEntity):
25
25
  _attr_fan_modes = SUPPORTED_FAN_MODES
26
26
  _attr_target_temperature_step: int
27
- _enable_turn_on_off_backwards_compatibility: bool
28
27
  _attr_max_temp: Incomplete
29
28
  _attr_min_temp: Incomplete
30
29
  _attr_temperature_unit: Incomplete
@@ -28,7 +28,6 @@ class SwitchBotCloudAirConditioner(SwitchBotCloudEntity, ClimateEntity):
28
28
  _attr_target_temperature_step: int
29
29
  _attr_precision: int
30
30
  _attr_name: Incomplete
31
- _enable_turn_on_off_backwards_compatibility: bool
32
31
  async def _do_send_command(self, hvac_mode: HVACMode | None = None, fan_mode: str | None = None, temperature: float | None = None) -> None: ...
33
32
  async def async_set_hvac_mode(self, hvac_mode: HVACMode) -> None: ...
34
33
  async def async_set_fan_mode(self, fan_mode: str) -> None: ...
@@ -5,7 +5,7 @@ from .entity import SwitchBotCloudEntity as SwitchBotCloudEntity
5
5
  from _typeshed import Incomplete
6
6
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
7
7
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
- from homeassistant.const import CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, PERCENTAGE as PERCENTAGE, UnitOfTemperature as UnitOfTemperature
8
+ from homeassistant.const import CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, PERCENTAGE as PERCENTAGE, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfPower as UnitOfPower, UnitOfTemperature as UnitOfTemperature
9
9
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
10
10
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
11
  from switchbot_api import Device as Device, SwitchBotAPI as SwitchBotAPI
@@ -14,8 +14,17 @@ SENSOR_TYPE_TEMPERATURE: str
14
14
  SENSOR_TYPE_HUMIDITY: str
15
15
  SENSOR_TYPE_BATTERY: str
16
16
  SENSOR_TYPE_CO2: str
17
- METER_PLUS_SENSOR_DESCRIPTIONS: Incomplete
18
- METER_PRO_CO2_SENSOR_DESCRIPTIONS: Incomplete
17
+ SENSOR_TYPE_POWER: str
18
+ SENSOR_TYPE_VOLTAGE: str
19
+ SENSOR_TYPE_CURRENT: str
20
+ TEMPERATURE_DESCRIPTION: Incomplete
21
+ HUMIDITY_DESCRIPTION: Incomplete
22
+ BATTERY_DESCRIPTION: Incomplete
23
+ POWER_DESCRIPTION: Incomplete
24
+ VOLATGE_DESCRIPTION: Incomplete
25
+ CURRENT_DESCRIPTION: Incomplete
26
+ CO2_DESCRIPTION: Incomplete
27
+ SENSOR_DESCRIPTIONS_BY_DEVICE_TYPES: Incomplete
19
28
 
20
29
  async def async_setup_entry(hass: HomeAssistant, config: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
21
30
 
@@ -26,4 +26,8 @@ class SwitchBotCloudRemoteSwitch(SwitchBotCloudSwitch):
26
26
  class SwitchBotCloudPlugSwitch(SwitchBotCloudSwitch):
27
27
  _attr_device_class: Incomplete
28
28
 
29
+ class SwitchBotCloudRelaySwitchSwitch(SwitchBotCloudSwitch):
30
+ _attr_is_on: Incomplete
31
+ def _handle_coordinator_update(self) -> None: ...
32
+
29
33
  def _async_make_entity(api: SwitchBotAPI, device: Device | Remote, coordinator: SwitchBotCoordinator) -> SwitchBotCloudSwitch: ...
@@ -3,7 +3,7 @@ from .const import DOMAIN as DOMAIN, VACUUM_FAN_SPEED_MAX as VACUUM_FAN_SPEED_MA
3
3
  from .coordinator import SwitchBotCoordinator as SwitchBotCoordinator
4
4
  from .entity import SwitchBotCloudEntity as SwitchBotCloudEntity
5
5
  from _typeshed import Incomplete
6
- from homeassistant.components.vacuum import STATE_CLEANING as STATE_CLEANING, STATE_DOCKED as STATE_DOCKED, STATE_ERROR as STATE_ERROR, STATE_IDLE as STATE_IDLE, STATE_PAUSED as STATE_PAUSED, STATE_RETURNING as STATE_RETURNING, StateVacuumEntity as StateVacuumEntity, VacuumEntityFeature as VacuumEntityFeature
6
+ from homeassistant.components.vacuum import StateVacuumEntity as StateVacuumEntity, VacuumActivity as VacuumActivity, VacuumEntityFeature as VacuumEntityFeature
7
7
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
9
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
@@ -12,7 +12,7 @@ from typing import Any
12
12
 
13
13
  async def async_setup_entry(hass: HomeAssistant, config: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
14
14
 
15
- VACUUM_SWITCHBOT_STATE_TO_HA_STATE: dict[str, str]
15
+ VACUUM_SWITCHBOT_STATE_TO_HA_STATE: dict[str, VacuumActivity]
16
16
  VACUUM_FAN_SPEED_TO_SWITCHBOT_FAN_SPEED: dict[str, str]
17
17
 
18
18
  class SwitchBotCloudVacuum(SwitchBotCloudEntity, StateVacuumEntity):
@@ -26,7 +26,7 @@ class SwitchBotCloudVacuum(SwitchBotCloudEntity, StateVacuumEntity):
26
26
  async def async_start(self) -> None: ...
27
27
  _attr_battery_level: Incomplete
28
28
  _attr_available: Incomplete
29
- _attr_state: Incomplete
29
+ _attr_activity: Incomplete
30
30
  def _handle_coordinator_update(self) -> None: ...
31
31
 
32
32
  def _async_make_entity(api: SwitchBotAPI, device: Device | Remote, coordinator: SwitchBotCoordinator) -> SwitchBotCloudVacuum: ...
@@ -4,7 +4,6 @@ from .coordinator import SwitcherDataUpdateCoordinator as SwitcherDataUpdateCoor
4
4
  from .entity import SwitcherEntity as SwitcherEntity
5
5
  from .utils import get_breeze_remote_manager as get_breeze_remote_manager
6
6
  from _typeshed import Incomplete
7
- from aioswitcher.api import SwitcherBaseResponse as SwitcherBaseResponse
8
7
  from aioswitcher.api.remotes import SwitcherBreezeRemote as SwitcherBreezeRemote
9
8
  from homeassistant.components.climate import ClimateEntity as ClimateEntity, ClimateEntityFeature as ClimateEntityFeature, FAN_AUTO as FAN_AUTO, FAN_HIGH as FAN_HIGH, FAN_LOW as FAN_LOW, FAN_MEDIUM as FAN_MEDIUM, HVACMode as HVACMode, SWING_OFF as SWING_OFF, SWING_VERTICAL as SWING_VERTICAL
10
9
  from homeassistant.const import ATTR_TEMPERATURE as ATTR_TEMPERATURE, UnitOfTemperature as UnitOfTemperature
@@ -14,6 +13,7 @@ from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_d
14
13
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
15
14
  from typing import Any
16
15
 
16
+ API_CONTROL_BREEZE_DEVICE: str
17
17
  DEVICE_MODE_TO_HA: Incomplete
18
18
  HA_TO_DEVICE_MODE: Incomplete
19
19
  DEVICE_FAN_TO_HA: Incomplete
@@ -23,7 +23,6 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: SwitcherConfigEnt
23
23
 
24
24
  class SwitcherClimateEntity(SwitcherEntity, ClimateEntity):
25
25
  _attr_name: Incomplete
26
- _enable_turn_on_off_backwards_compatibility: bool
27
26
  _remote: Incomplete
28
27
  _attr_unique_id: Incomplete
29
28
  _attr_min_temp: Incomplete
@@ -2,16 +2,13 @@ from .const import SIGNAL_DEVICE_ADD as SIGNAL_DEVICE_ADD
2
2
  from .coordinator import SwitcherDataUpdateCoordinator as SwitcherDataUpdateCoordinator
3
3
  from .entity import SwitcherEntity as SwitcherEntity
4
4
  from _typeshed import Incomplete
5
- from aioswitcher.api import SwitcherBaseResponse as SwitcherBaseResponse
6
5
  from homeassistant.components.cover import ATTR_POSITION as ATTR_POSITION, CoverDeviceClass as CoverDeviceClass, CoverEntity as CoverEntity, CoverEntityFeature as CoverEntityFeature
7
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
7
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
- from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
10
8
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
11
9
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
12
10
  from typing import Any
13
11
 
14
- _LOGGER: Incomplete
15
12
  API_SET_POSITON: str
16
13
  API_STOP: str
17
14
 
@@ -27,7 +24,6 @@ class SwitcherBaseCoverEntity(SwitcherEntity, CoverEntity):
27
24
  _attr_is_closing: Incomplete
28
25
  _attr_is_opening: Incomplete
29
26
  def _update_data(self) -> None: ...
30
- async def _async_call_api(self, api: str, *args: Any) -> None: ...
31
27
  async def async_close_cover(self, **kwargs: Any) -> None: ...
32
28
  async def async_open_cover(self, **kwargs: Any) -> None: ...
33
29
  async def async_set_cover_position(self, **kwargs: Any) -> None: ...
@@ -1,9 +1,15 @@
1
1
  from .coordinator import SwitcherDataUpdateCoordinator as SwitcherDataUpdateCoordinator
2
2
  from _typeshed import Incomplete
3
+ from aioswitcher.api.messages import SwitcherBaseResponse as SwitcherBaseResponse
4
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
3
5
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
4
6
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
7
+ from typing import Any
8
+
9
+ _LOGGER: Incomplete
5
10
 
6
11
  class SwitcherEntity(CoordinatorEntity[SwitcherDataUpdateCoordinator]):
7
12
  _attr_has_entity_name: bool
8
13
  _attr_device_info: Incomplete
9
14
  def __init__(self, coordinator: SwitcherDataUpdateCoordinator) -> None: ...
15
+ async def _async_call_api(self, api: str, *args: Any, **kwargs: Any) -> None: ...
@@ -2,16 +2,13 @@ from .const import SIGNAL_DEVICE_ADD as SIGNAL_DEVICE_ADD
2
2
  from .coordinator import SwitcherDataUpdateCoordinator as SwitcherDataUpdateCoordinator
3
3
  from .entity import SwitcherEntity as SwitcherEntity
4
4
  from _typeshed import Incomplete
5
- from aioswitcher.api import SwitcherBaseResponse as SwitcherBaseResponse
6
5
  from homeassistant.components.light import ColorMode as ColorMode, LightEntity as LightEntity
7
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
7
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
- from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
10
8
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
11
9
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
12
10
  from typing import Any
13
11
 
14
- _LOGGER: Incomplete
15
12
  API_SET_LIGHT: str
16
13
 
17
14
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
@@ -24,7 +21,6 @@ class SwitcherBaseLightEntity(SwitcherEntity, LightEntity):
24
21
  def _handle_coordinator_update(self) -> None: ...
25
22
  @property
26
23
  def is_on(self) -> bool: ...
27
- async def _async_call_api(self, api: str, *args: Any) -> None: ...
28
24
  async def async_turn_on(self, **kwargs: Any) -> None: ...
29
25
  async def async_turn_off(self, **kwargs: Any) -> None: ...
30
26
 
@@ -2,7 +2,6 @@ from .const import CONF_AUTO_OFF as CONF_AUTO_OFF, CONF_TIMER_MINUTES as CONF_TI
2
2
  from .coordinator import SwitcherDataUpdateCoordinator as SwitcherDataUpdateCoordinator
3
3
  from .entity import SwitcherEntity as SwitcherEntity
4
4
  from _typeshed import Incomplete
5
- from aioswitcher.api import SwitcherBaseResponse as SwitcherBaseResponse
6
5
  from datetime import timedelta
7
6
  from homeassistant.components.switch import SwitchDeviceClass as SwitchDeviceClass, SwitchEntity as SwitchEntity
8
7
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
@@ -27,7 +26,6 @@ class SwitcherBaseSwitchEntity(SwitcherEntity, SwitchEntity):
27
26
  _attr_unique_id: Incomplete
28
27
  def __init__(self, coordinator: SwitcherDataUpdateCoordinator) -> None: ...
29
28
  def _handle_coordinator_update(self) -> None: ...
30
- async def _async_call_api(self, api: str, *args: Any) -> None: ...
31
29
  @property
32
30
  def is_on(self) -> bool: ...
33
31
  async def async_turn_on(self, **kwargs: Any) -> None: ...
@@ -1,12 +1,10 @@
1
1
  from .const import DOMAIN as DOMAIN
2
- from .coordinator import TailwindDataUpdateCoordinator as TailwindDataUpdateCoordinator
3
- from .typing import TailwindConfigEntry as TailwindConfigEntry
2
+ from .coordinator import TailwindConfigEntry as TailwindConfigEntry, TailwindDataUpdateCoordinator as TailwindDataUpdateCoordinator
4
3
  from _typeshed import Incomplete
5
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
4
  from homeassistant.const import Platform as Platform
7
5
  from homeassistant.core import HomeAssistant as HomeAssistant
8
6
 
9
7
  PLATFORMS: Incomplete
10
8
 
11
9
  async def async_setup_entry(hass: HomeAssistant, entry: TailwindConfigEntry) -> bool: ...
12
- async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
10
+ async def async_unload_entry(hass: HomeAssistant, entry: TailwindConfigEntry) -> bool: ...
@@ -1,5 +1,5 @@
1
+ from .coordinator import TailwindConfigEntry as TailwindConfigEntry
1
2
  from .entity import TailwindDoorEntity as TailwindDoorEntity
2
- from .typing import TailwindConfigEntry as TailwindConfigEntry
3
3
  from collections.abc import Callable as Callable
4
4
  from dataclasses import dataclass
5
5
  from gotailwind import TailwindDoor as TailwindDoor
@@ -1,6 +1,6 @@
1
1
  from .const import DOMAIN as DOMAIN
2
+ from .coordinator import TailwindConfigEntry as TailwindConfigEntry
2
3
  from .entity import TailwindEntity as TailwindEntity
3
- from .typing import TailwindConfigEntry as TailwindConfigEntry
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Awaitable, Callable as Callable
6
6
  from dataclasses import dataclass
@@ -8,7 +8,8 @@ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFai
8
8
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
9
9
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
10
10
 
11
+ type TailwindConfigEntry = ConfigEntry[TailwindDataUpdateCoordinator]
11
12
  class TailwindDataUpdateCoordinator(DataUpdateCoordinator[TailwindDeviceStatus]):
12
13
  tailwind: Incomplete
13
- def __init__(self, hass: HomeAssistant, entry: ConfigEntry) -> None: ...
14
+ def __init__(self, hass: HomeAssistant, entry: TailwindConfigEntry) -> None: ...
14
15
  async def _async_update_data(self) -> TailwindDeviceStatus: ...
@@ -1,6 +1,6 @@
1
1
  from .const import DOMAIN as DOMAIN, LOGGER as LOGGER
2
+ from .coordinator import TailwindConfigEntry as TailwindConfigEntry
2
3
  from .entity import TailwindDoorEntity as TailwindDoorEntity
3
- from .typing import TailwindConfigEntry as TailwindConfigEntry
4
4
  from _typeshed import Incomplete
5
5
  from homeassistant.components.cover import CoverDeviceClass as CoverDeviceClass, CoverEntity as CoverEntity, CoverEntityFeature as CoverEntityFeature
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant
@@ -1,4 +1,4 @@
1
- from .typing import TailwindConfigEntry as TailwindConfigEntry
1
+ from .coordinator import TailwindConfigEntry as TailwindConfigEntry
2
2
  from homeassistant.core import HomeAssistant as HomeAssistant
3
3
  from typing import Any
4
4
 
@@ -1,6 +1,6 @@
1
1
  from .const import DOMAIN as DOMAIN
2
+ from .coordinator import TailwindConfigEntry as TailwindConfigEntry
2
3
  from .entity import TailwindEntity as TailwindEntity
3
- from .typing import TailwindConfigEntry as TailwindConfigEntry
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Awaitable, Callable as Callable
6
6
  from dataclasses import dataclass
@@ -4,7 +4,6 @@ from _typeshed import Incomplete
4
4
  from aiohttp.web import Request as Request, Response as Response
5
5
  from collections.abc import Awaitable, Callable as Callable
6
6
  from homeassistant.components.http import HomeAssistantView as HomeAssistantView
7
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
7
  from homeassistant.const import CONF_WEBHOOK_ID as CONF_WEBHOOK_ID, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP, Platform as Platform
9
8
  from homeassistant.core import HomeAssistant as HomeAssistant
10
9
  from homeassistant.helpers.network import get_url as get_url
@@ -13,6 +12,6 @@ PLATFORMS: Incomplete
13
12
  _LOGGER: Incomplete
14
13
 
15
14
  async def async_setup_entry(hass: HomeAssistant, entry: TedeeConfigEntry) -> bool: ...
16
- async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
15
+ async def async_unload_entry(hass: HomeAssistant, entry: TedeeConfigEntry) -> bool: ...
17
16
  def get_webhook_handler(coordinator: TedeeApiCoordinator) -> Callable[[HomeAssistant, str, Request], Awaitable[Response | None]]: ...
18
- async def async_migrate_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: ...
17
+ async def async_migrate_entry(hass: HomeAssistant, config_entry: TedeeConfigEntry) -> bool: ...
@@ -8,6 +8,8 @@ from homeassistant.const import EntityCategory as EntityCategory
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant
9
9
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
10
 
11
+ PARALLEL_UPDATES: int
12
+
11
13
  @dataclass(frozen=True, kw_only=True)
12
14
  class TedeeBinarySensorEntityDescription(BinarySensorEntityDescription):
13
15
  is_on_fn: Callable[[TedeeLock], bool | None]
@@ -8,6 +8,8 @@ from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant
9
9
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
10
 
11
+ PARALLEL_UPDATES: int
12
+
11
13
  @dataclass(frozen=True, kw_only=True)
12
14
  class TedeeSensorEntityDescription(SensorEntityDescription):
13
15
  value_fn: Callable[[TedeeLock], float | None]
@@ -10,6 +10,6 @@ ATTR_START: Final[str]
10
10
  ATTR_END: Final[str]
11
11
  SERVICE_SCHEMA: Final[Incomplete]
12
12
 
13
- async def __get_prices(call: ServiceCall, *, hass: HomeAssistant) -> ServiceResponse: ...
13
+ async def __get_prices(call: ServiceCall) -> ServiceResponse: ...
14
14
  def __get_date(date_input: str | None, mode: str | None) -> datetime: ...
15
15
  def async_setup_services(hass: HomeAssistant) -> None: ...
@@ -24,7 +24,6 @@ class SaunaClimate(ToloSaunaCoordinatorEntity, ClimateEntity):
24
24
  _attr_supported_features: Incomplete
25
25
  _attr_target_temperature_step: int
26
26
  _attr_temperature_unit: Incomplete
27
- _enable_turn_on_off_backwards_compatibility: bool
28
27
  _attr_unique_id: Incomplete
29
28
  def __init__(self, coordinator: ToloSaunaUpdateCoordinator, entry: ConfigEntry) -> None: ...
30
29
  @property
@@ -13,7 +13,6 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_e
13
13
  class ToloFan(ToloSaunaCoordinatorEntity, FanEntity):
14
14
  _attr_translation_key: str
15
15
  _attr_supported_features: Incomplete
16
- _enable_turn_on_off_backwards_compatibility: bool
17
16
  _attr_unique_id: Incomplete
18
17
  def __init__(self, coordinator: ToloSaunaUpdateCoordinator, entry: ConfigEntry) -> None: ...
19
18
  @property
@@ -1,4 +1,4 @@
1
- from .const import CONF_AES_KEYS as CONF_AES_KEYS, CONF_CONFIG_ENTRY_MINOR_VERSION as CONF_CONFIG_ENTRY_MINOR_VERSION, CONF_CONNECTION_PARAMETERS as CONF_CONNECTION_PARAMETERS, CONF_CREDENTIALS_HASH as CONF_CREDENTIALS_HASH, CONF_DEVICE_CONFIG as CONF_DEVICE_CONFIG, CONF_USES_HTTP as CONF_USES_HTTP, CONNECT_TIMEOUT as CONNECT_TIMEOUT, DISCOVERY_TIMEOUT as DISCOVERY_TIMEOUT, DOMAIN as DOMAIN, PLATFORMS as PLATFORMS
1
+ from .const import CONF_AES_KEYS as CONF_AES_KEYS, CONF_CAMERA_CREDENTIALS as CONF_CAMERA_CREDENTIALS, CONF_CONFIG_ENTRY_MINOR_VERSION as CONF_CONFIG_ENTRY_MINOR_VERSION, CONF_CONNECTION_PARAMETERS as CONF_CONNECTION_PARAMETERS, CONF_CREDENTIALS_HASH as CONF_CREDENTIALS_HASH, CONF_DEVICE_CONFIG as CONF_DEVICE_CONFIG, CONF_LIVE_VIEW as CONF_LIVE_VIEW, CONF_USES_HTTP as CONF_USES_HTTP, CONNECT_TIMEOUT as CONNECT_TIMEOUT, DISCOVERY_TIMEOUT as DISCOVERY_TIMEOUT, DOMAIN as DOMAIN, PLATFORMS as PLATFORMS
2
2
  from .coordinator import TPLinkDataUpdateCoordinator as TPLinkDataUpdateCoordinator
3
3
  from .models import TPLinkData as TPLinkData
4
4
  from _typeshed import Incomplete
@@ -9,7 +9,7 @@ from typing import Final
9
9
 
10
10
  @dataclass(frozen=True, kw_only=True)
11
11
  class TPLinkBinarySensorEntityDescription(BinarySensorEntityDescription, TPLinkFeatureEntityDescription):
12
- 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=..., deprecated_info=...) -> None: ...
12
+ 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=..., deprecated_info=..., available_fn=...) -> None: ...
13
13
 
14
14
  BINARY_SENSOR_DESCRIPTIONS: Final[Incomplete]
15
15
  BINARYSENSOR_DESCRIPTIONS_MAP: Incomplete
@@ -19,4 +19,4 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: TPLinkConfigEntry
19
19
  class TPLinkBinarySensorEntity(CoordinatedTPLinkFeatureEntity, BinarySensorEntity):
20
20
  entity_description: TPLinkBinarySensorEntityDescription
21
21
  _attr_is_on: Incomplete
22
- def _async_update_attrs(self) -> None: ...
22
+ def _async_update_attrs(self) -> bool: ...
@@ -10,7 +10,7 @@ from typing import Final
10
10
 
11
11
  @dataclass(frozen=True, kw_only=True)
12
12
  class TPLinkButtonEntityDescription(ButtonEntityDescription, TPLinkFeatureEntityDescription):
13
- 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=..., deprecated_info=...) -> None: ...
13
+ 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=..., deprecated_info=..., available_fn=...) -> None: ...
14
14
 
15
15
  BUTTON_DESCRIPTIONS: Final[Incomplete]
16
16
  BUTTON_DESCRIPTIONS_MAP: Incomplete
@@ -20,4 +20,4 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: TPLinkConfigEntry
20
20
  class TPLinkButtonEntity(CoordinatedTPLinkFeatureEntity, ButtonEntity):
21
21
  entity_description: TPLinkButtonEntityDescription
22
22
  async def async_press(self) -> None: ...
23
- def _async_update_attrs(self) -> None: ...
23
+ def _async_update_attrs(self) -> bool: ...
@@ -0,0 +1,49 @@
1
+ from . import TPLinkConfigEntry as TPLinkConfigEntry, legacy_device_id as legacy_device_id
2
+ from .const import CONF_CAMERA_CREDENTIALS as CONF_CAMERA_CREDENTIALS
3
+ from .coordinator import TPLinkDataUpdateCoordinator as TPLinkDataUpdateCoordinator
4
+ from .entity import CoordinatedTPLinkEntity as CoordinatedTPLinkEntity, TPLinkModuleEntityDescription as TPLinkModuleEntityDescription
5
+ from _typeshed import Incomplete
6
+ from aiohttp import web as web
7
+ from dataclasses import dataclass
8
+ from homeassistant.components import ffmpeg as ffmpeg, stream as stream
9
+ from homeassistant.components.camera import Camera as Camera, CameraEntityDescription as CameraEntityDescription, CameraEntityFeature as CameraEntityFeature
10
+ from homeassistant.config_entries import ConfigFlowContext as ConfigFlowContext
11
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
12
+ from homeassistant.helpers.aiohttp_client import async_aiohttp_proxy_stream as async_aiohttp_proxy_stream
13
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
14
+ from kasa import Credentials as Credentials, Device as Device
15
+ from kasa.smartcam.modules import Camera as CameraModule
16
+
17
+ _LOGGER: Incomplete
18
+
19
+ @dataclass(frozen=True, kw_only=True)
20
+ class TPLinkCameraEntityDescription(CameraEntityDescription, TPLinkModuleEntityDescription):
21
+ def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., deprecated_info=..., available_fn=...) -> None: ...
22
+
23
+ CAMERA_DESCRIPTIONS: tuple[TPLinkCameraEntityDescription, ...]
24
+
25
+ async def async_setup_entry(hass: HomeAssistant, config_entry: TPLinkConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
26
+
27
+ class TPLinkCameraEntity(CoordinatedTPLinkEntity, Camera):
28
+ IMAGE_INTERVAL: Incomplete
29
+ _attr_supported_features: Incomplete
30
+ entity_description: TPLinkCameraEntityDescription
31
+ _camera_module: Incomplete
32
+ _video_url: Incomplete
33
+ _image: Incomplete
34
+ _ffmpeg_manager: Incomplete
35
+ _image_lock: Incomplete
36
+ _last_update: int
37
+ _camera_credentials: Incomplete
38
+ _can_stream: bool
39
+ _http_mpeg_stream_running: bool
40
+ def __init__(self, device: Device, coordinator: TPLinkDataUpdateCoordinator, description: TPLinkCameraEntityDescription, *, camera_module: CameraModule, parent: Device | None = None, ffmpeg_manager: ffmpeg.FFmpegManager, camera_credentials: Credentials | None) -> None: ...
41
+ def _get_unique_id(self) -> str: ...
42
+ _attr_is_on: Incomplete
43
+ def _async_update_attrs(self) -> bool: ...
44
+ async def stream_source(self) -> str | None: ...
45
+ async def _async_check_stream_auth(self, video_url: str) -> None: ...
46
+ async def async_camera_image(self, width: int | None = None, height: int | None = None) -> bytes | None: ...
47
+ async def handle_async_mjpeg_stream(self, request: web.Request) -> web.StreamResponse | None: ...
48
+ async def async_turn_on(self) -> None: ...
49
+ async def async_turn_off(self) -> None: ...
@@ -21,7 +21,6 @@ class TPLinkClimateEntity(CoordinatedTPLinkEntity, ClimateEntity):
21
21
  _attr_supported_features: Incomplete
22
22
  _attr_hvac_modes: Incomplete
23
23
  _attr_precision = PRECISION_TENTHS
24
- _enable_turn_on_off_backwards_compatibility: bool
25
24
  _state_feature: Incomplete
26
25
  _mode_feature: Incomplete
27
26
  _temp_feature: Incomplete
@@ -38,5 +37,5 @@ class TPLinkClimateEntity(CoordinatedTPLinkEntity, ClimateEntity):
38
37
  _attr_target_temperature: Incomplete
39
38
  _attr_hvac_mode: Incomplete
40
39
  _attr_hvac_action: Incomplete
41
- def _async_update_attrs(self) -> None: ...
40
+ def _async_update_attrs(self) -> bool: ...
42
41
  def _get_unique_id(self) -> str: ...
@@ -1,10 +1,10 @@
1
1
  from . import async_discover_devices as async_discover_devices, create_async_tplink_clientsession as create_async_tplink_clientsession, get_credentials as get_credentials, mac_alias as mac_alias, set_credentials as set_credentials
2
- from .const import CONF_AES_KEYS as CONF_AES_KEYS, CONF_CONFIG_ENTRY_MINOR_VERSION as CONF_CONFIG_ENTRY_MINOR_VERSION, CONF_CONNECTION_PARAMETERS as CONF_CONNECTION_PARAMETERS, CONF_CREDENTIALS_HASH as CONF_CREDENTIALS_HASH, CONF_USES_HTTP as CONF_USES_HTTP, CONNECT_TIMEOUT as CONNECT_TIMEOUT, DOMAIN as DOMAIN
2
+ from .const import CONF_AES_KEYS as CONF_AES_KEYS, CONF_CAMERA_CREDENTIALS as CONF_CAMERA_CREDENTIALS, CONF_CONFIG_ENTRY_MINOR_VERSION as CONF_CONFIG_ENTRY_MINOR_VERSION, CONF_CONNECTION_PARAMETERS as CONF_CONNECTION_PARAMETERS, CONF_CREDENTIALS_HASH as CONF_CREDENTIALS_HASH, CONF_LIVE_VIEW as CONF_LIVE_VIEW, CONF_USES_HTTP as CONF_USES_HTTP, CONNECT_TIMEOUT as CONNECT_TIMEOUT, DOMAIN as DOMAIN
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Mapping
5
- from homeassistant.components import dhcp as dhcp
6
- from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigEntryState as ConfigEntryState, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, SOURCE_REAUTH as SOURCE_REAUTH
7
- from homeassistant.const import CONF_ALIAS as CONF_ALIAS, CONF_DEVICE as CONF_DEVICE, CONF_HOST as CONF_HOST, CONF_MAC as CONF_MAC, CONF_MODEL as CONF_MODEL, CONF_PASSWORD as CONF_PASSWORD, CONF_PORT as CONF_PORT, CONF_USERNAME as CONF_USERNAME
5
+ from homeassistant.components import dhcp as dhcp, ffmpeg as ffmpeg, stream as stream
6
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigEntryState as ConfigEntryState, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, SOURCE_REAUTH as SOURCE_REAUTH, SOURCE_RECONFIGURE as SOURCE_RECONFIGURE
7
+ from homeassistant.const import CONF_ALIAS as CONF_ALIAS, CONF_DEVICE as CONF_DEVICE, CONF_HOST as CONF_HOST, CONF_MAC as CONF_MAC, CONF_MODEL as CONF_MODEL, CONF_NAME as CONF_NAME, CONF_PASSWORD as CONF_PASSWORD, CONF_PORT as CONF_PORT, CONF_USERNAME as CONF_USERNAME
8
8
  from homeassistant.core import callback as callback
9
9
  from homeassistant.helpers.typing import DiscoveryInfoType as DiscoveryInfoType
10
10
  from kasa import Credentials, Device
@@ -12,6 +12,8 @@ from typing import Any, Self
12
12
 
13
13
  _LOGGER: Incomplete
14
14
  STEP_AUTH_DATA_SCHEMA: Incomplete
15
+ STEP_RECONFIGURE_DATA_SCHEMA: Incomplete
16
+ STEP_CAMERA_AUTH_DATA_SCHEMA: Incomplete
15
17
 
16
18
  class TPLinkConfigFlow(ConfigFlow, domain=DOMAIN):
17
19
  VERSION: int
@@ -32,13 +34,17 @@ class TPLinkConfigFlow(ConfigFlow, domain=DOMAIN):
32
34
  async def async_step_discovery_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
33
35
  @staticmethod
34
36
  def _async_get_host_port(host_str: str) -> tuple[str, int | None]: ...
37
+ def _async_supports_camera_credentials(self, device: Device) -> bool: ...
35
38
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
36
39
  async def async_step_user_auth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
40
+ def _create_camera_entry(self, device: Device, un: str, pw: str) -> ConfigFlowResult: ...
41
+ async def async_step_camera_auth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
37
42
  async def async_step_pick_device(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
38
43
  async def _async_reload_requires_auth_entries(self) -> None: ...
39
- def _async_create_entry_from_device(self, device: Device) -> ConfigFlowResult: ...
44
+ def _async_create_or_update_entry_from_device(self, device: Device, *, camera_data: dict | None = None) -> ConfigFlowResult: ...
40
45
  async def _async_try_connect_all(self, host: str, credentials: Credentials | None, raise_on_progress: bool, *, port: int | None = None) -> Device | None: ...
41
46
  async def _async_try_discover_and_update(self, host: str, credentials: Credentials | None, raise_on_progress: bool, raise_on_timeout: bool, *, port: int | None = None) -> Device | None: ...
42
47
  async def _async_try_connect(self, discovered_device: Device, credentials: Credentials | None) -> Device: ...
43
48
  async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
44
49
  async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
50
+ async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -15,6 +15,8 @@ CONF_CREDENTIALS_HASH: Final[str]
15
15
  CONF_CONNECTION_PARAMETERS: Final[str]
16
16
  CONF_USES_HTTP: Final[str]
17
17
  CONF_AES_KEYS: Final[str]
18
+ CONF_CAMERA_CREDENTIALS: str
19
+ CONF_LIVE_VIEW: str
18
20
  CONF_CONFIG_ENTRY_MINOR_VERSION: Final[int]
19
21
  PLATFORMS: Final[Incomplete]
20
22
  UNIT_MAPPING: Incomplete
@@ -27,7 +27,14 @@ LEGACY_KEY_MAPPING: Incomplete
27
27
  @dataclass(frozen=True, kw_only=True)
28
28
  class TPLinkFeatureEntityDescription(EntityDescription):
29
29
  deprecated_info: DeprecatedInfo | None = ...
30
- 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=..., deprecated_info=...) -> None: ...
30
+ available_fn: Callable[[Device], bool] = ...
31
+ 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=..., deprecated_info=..., available_fn=...) -> None: ...
32
+
33
+ @dataclass(frozen=True, kw_only=True)
34
+ class TPLinkModuleEntityDescription(EntityDescription):
35
+ deprecated_info: DeprecatedInfo | None = ...
36
+ available_fn: Callable[[Device], bool] = ...
37
+ def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., deprecated_info=..., available_fn=...) -> None: ...
31
38
 
32
39
  def async_refresh_after[_T: CoordinatedTPLinkEntity, **_P](func: Callable[Concatenate[_T, _P], Awaitable[None]]) -> Callable[Concatenate[_T, _P], Coroutine[Any, Any, None]]: ...
33
40
 
@@ -40,7 +47,7 @@ class CoordinatedTPLinkEntity(CoordinatorEntity[TPLinkDataUpdateCoordinator], AB
40
47
  def __init__(self, device: Device, coordinator: TPLinkDataUpdateCoordinator, *, feature: Feature | None = None, parent: Device | None = None) -> None: ...
41
48
  def _get_unique_id(self) -> str: ...
42
49
  @abstractmethod
43
- def _async_update_attrs(self) -> None: ...
50
+ def _async_update_attrs(self) -> bool: ...
44
51
  _attr_available: bool
45
52
  def _async_call_update_attrs(self) -> None: ...
46
53
  def _handle_coordinator_update(self) -> None: ...
@@ -20,7 +20,6 @@ SPEED_RANGE: Incomplete
20
20
  class TPLinkFanEntity(CoordinatedTPLinkEntity, FanEntity):
21
21
  _attr_speed_count: Incomplete
22
22
  _attr_supported_features: Incomplete
23
- _enable_turn_on_off_backwards_compatibility: bool
24
23
  fan_module: Incomplete
25
24
  _attr_name: Incomplete
26
25
  def __init__(self, device: Device, coordinator: TPLinkDataUpdateCoordinator, fan_module: FanInterface, parent: Device | None = None) -> None: ...
@@ -29,4 +28,4 @@ class TPLinkFanEntity(CoordinatedTPLinkEntity, FanEntity):
29
28
  async def async_set_percentage(self, percentage: int) -> None: ...
30
29
  _attr_is_on: Incomplete
31
30
  _attr_percentage: Incomplete
32
- def _async_update_attrs(self) -> None: ...
31
+ def _async_update_attrs(self) -> bool: ...
@@ -50,7 +50,7 @@ class TPLinkLightEntity(CoordinatedTPLinkEntity, LightEntity):
50
50
  _attr_color_mode: Incomplete
51
51
  _attr_color_temp_kelvin: Incomplete
52
52
  _attr_hs_color: Incomplete
53
- def _async_update_attrs(self) -> None: ...
53
+ def _async_update_attrs(self) -> bool: ...
54
54
 
55
55
  class TPLinkLightEffectEntity(TPLinkLightEntity):
56
56
  _effect_module: Incomplete
@@ -59,7 +59,7 @@ class TPLinkLightEffectEntity(TPLinkLightEntity):
59
59
  _attr_effect: Incomplete
60
60
  _attr_color_mode: Incomplete
61
61
  _attr_effect_list: Incomplete
62
- def _async_update_attrs(self) -> None: ...
62
+ def _async_update_attrs(self) -> bool: ...
63
63
  async def async_turn_on(self, **kwargs: Any) -> None: ...
64
64
  async def async_set_random_effect(self, brightness: int, duration: int, transition: int, segments: list[int], fadeoff: int, init_states: tuple[int, int, int], random_seed: int, backgrounds: Sequence[tuple[int, int, int]] | None = None, hue_range: tuple[int, int] | None = None, saturation_range: tuple[int, int] | None = None, brightness_range: tuple[int, int] | None = None, transition_range: tuple[int, int] | None = None) -> None: ...
65
65
  async def async_set_sequence_effect(self, brightness: int, duration: int, transition: int, segments: list[int], sequence: Sequence[tuple[int, int, int]], repeat_times: int, spread: int, direction: int) -> None: ...
@@ -1,8 +1,11 @@
1
1
  from .coordinator import TPLinkDataUpdateCoordinator as TPLinkDataUpdateCoordinator
2
2
  from dataclasses import dataclass
3
+ from kasa import Credentials as Credentials
3
4
 
4
5
  @dataclass(slots=True)
5
6
  class TPLinkData:
6
7
  parent_coordinator: TPLinkDataUpdateCoordinator
7
8
  children_coordinators: list[TPLinkDataUpdateCoordinator]
8
- def __init__(self, parent_coordinator, children_coordinators) -> None: ...
9
+ camera_credentials: Credentials | None
10
+ live_view: bool | None
11
+ def __init__(self, parent_coordinator, children_coordinators, camera_credentials, live_view) -> None: ...
@@ -12,7 +12,7 @@ _LOGGER: Incomplete
12
12
 
13
13
  @dataclass(frozen=True, kw_only=True)
14
14
  class TPLinkNumberEntityDescription(NumberEntityDescription, TPLinkFeatureEntityDescription):
15
- 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=..., deprecated_info=..., max_value=..., min_value=..., mode=..., native_max_value=..., native_min_value=..., native_step=..., native_unit_of_measurement=..., step=...) -> None: ...
15
+ 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=..., deprecated_info=..., available_fn=..., max_value=..., min_value=..., mode=..., native_max_value=..., native_min_value=..., native_step=..., native_unit_of_measurement=..., step=...) -> None: ...
16
16
 
17
17
  NUMBER_DESCRIPTIONS: Final[Incomplete]
18
18
  NUMBER_DESCRIPTIONS_MAP: Incomplete
@@ -26,4 +26,4 @@ class TPLinkNumberEntity(CoordinatedTPLinkFeatureEntity, NumberEntity):
26
26
  def __init__(self, device: Device, coordinator: TPLinkDataUpdateCoordinator, *, feature: Feature, description: TPLinkFeatureEntityDescription, parent: Device | None = None) -> None: ...
27
27
  async def async_set_native_value(self, value: float) -> None: ...
28
28
  _attr_native_value: Incomplete
29
- def _async_update_attrs(self) -> None: ...
29
+ def _async_update_attrs(self) -> bool: ...
@@ -10,7 +10,7 @@ from typing import Final
10
10
 
11
11
  @dataclass(frozen=True, kw_only=True)
12
12
  class TPLinkSelectEntityDescription(SelectEntityDescription, TPLinkFeatureEntityDescription):
13
- 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=..., deprecated_info=..., options=...) -> None: ...
13
+ 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=..., deprecated_info=..., available_fn=..., options=...) -> None: ...
14
14
 
15
15
  SELECT_DESCRIPTIONS: Final[Incomplete]
16
16
  SELECT_DESCRIPTIONS_MAP: Incomplete
@@ -23,4 +23,4 @@ class TPLinkSelectEntity(CoordinatedTPLinkFeatureEntity, SelectEntity):
23
23
  def __init__(self, device: Device, coordinator: TPLinkDataUpdateCoordinator, *, feature: Feature, description: TPLinkFeatureEntityDescription, parent: Device | None = None) -> None: ...
24
24
  async def async_select_option(self, option: str) -> None: ...
25
25
  _attr_current_option: Incomplete
26
- def _async_update_attrs(self) -> None: ...
26
+ def _async_update_attrs(self) -> bool: ...
@@ -10,7 +10,7 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEnti
10
10
 
11
11
  @dataclass(frozen=True, kw_only=True)
12
12
  class TPLinkSensorEntityDescription(SensorEntityDescription, TPLinkFeatureEntityDescription):
13
- 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=..., deprecated_info=..., last_reset=..., native_unit_of_measurement=..., options=..., state_class=..., suggested_display_precision=..., suggested_unit_of_measurement=...) -> None: ...
13
+ 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=..., deprecated_info=..., available_fn=..., last_reset=..., native_unit_of_measurement=..., options=..., state_class=..., suggested_display_precision=..., suggested_unit_of_measurement=...) -> None: ...
14
14
 
15
15
  SENSOR_DESCRIPTIONS: tuple[TPLinkSensorEntityDescription, ...]
16
16
  SENSOR_DESCRIPTIONS_MAP: Incomplete
@@ -22,4 +22,4 @@ class TPLinkSensorEntity(CoordinatedTPLinkFeatureEntity, SensorEntity):
22
22
  _attr_suggested_display_precision: Incomplete
23
23
  _attr_native_value: Incomplete
24
24
  _attr_native_unit_of_measurement: Incomplete
25
- def _async_update_attrs(self) -> None: ...
25
+ def _async_update_attrs(self) -> bool: ...