homeassistant-stubs 2025.10.4__py3-none-any.whl → 2025.11.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.

Potentially problematic release.


This version of homeassistant-stubs might be problematic. Click here for more details.

Files changed (454) hide show
  1. homeassistant-stubs/components/acaia/coordinator.pyi +2 -0
  2. homeassistant-stubs/components/airly/config_flow.pyi +3 -0
  3. homeassistant-stubs/components/airos/__init__.pyi +4 -2
  4. homeassistant-stubs/components/airos/config_flow.pyi +10 -1
  5. homeassistant-stubs/components/airos/coordinator.pyi +1 -1
  6. homeassistant-stubs/components/airthings/config_flow.pyi +1 -0
  7. homeassistant-stubs/components/airthings_ble/config_flow.pyi +4 -2
  8. homeassistant-stubs/components/airthings_ble/sensor.pyi +2 -1
  9. homeassistant-stubs/components/alarm_control_panel/__init__.pyi +0 -10
  10. homeassistant-stubs/components/alexa_devices/const.pyi +2 -0
  11. homeassistant-stubs/components/alexa_devices/sensor.pyi +12 -2
  12. homeassistant-stubs/components/androidtv_remote/config_flow.pyi +2 -0
  13. homeassistant-stubs/components/apple_tv/__init__.pyi +3 -3
  14. homeassistant-stubs/components/assist_pipeline/__init__.pyi +3 -3
  15. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +1 -1
  16. homeassistant-stubs/components/asuswrt/bridge.pyi +9 -9
  17. homeassistant-stubs/components/asuswrt/config_flow.pyi +1 -1
  18. homeassistant-stubs/components/asuswrt/device_tracker.pyi +0 -3
  19. homeassistant-stubs/components/asuswrt/helpers.pyi +2 -3
  20. homeassistant-stubs/components/asuswrt/router.pyi +1 -1
  21. homeassistant-stubs/components/backup/http.pyi +1 -0
  22. homeassistant-stubs/components/backup/manager.pyi +2 -1
  23. homeassistant-stubs/components/backup/util.pyi +2 -32
  24. homeassistant-stubs/components/bang_olufsen/media_player.pyi +5 -5
  25. homeassistant-stubs/components/bluetooth/__init__.pyi +2 -5
  26. homeassistant-stubs/components/bluetooth/api.pyi +2 -0
  27. homeassistant-stubs/components/bluetooth/manager.pyi +2 -0
  28. homeassistant-stubs/components/bryant_evolution/climate.pyi +2 -2
  29. homeassistant-stubs/components/calendar/trigger.pyi +1 -1
  30. homeassistant-stubs/components/camera/__init__.pyi +1 -9
  31. homeassistant-stubs/components/cert_expiry/config_flow.pyi +1 -1
  32. homeassistant-stubs/components/cert_expiry/errors.pyi +1 -0
  33. homeassistant-stubs/components/cert_expiry/helper.pyi +1 -1
  34. homeassistant-stubs/components/cloud/__init__.pyi +2 -1
  35. homeassistant-stubs/components/cloud/client.pyi +1 -1
  36. homeassistant-stubs/components/cloud/const.pyi +1 -1
  37. homeassistant-stubs/components/comelit/binary_sensor.pyi +1 -0
  38. homeassistant-stubs/components/comelit/cover.pyi +2 -2
  39. homeassistant-stubs/components/comelit/light.pyi +1 -1
  40. homeassistant-stubs/components/comelit/sensor.pyi +1 -0
  41. homeassistant-stubs/components/comelit/switch.pyi +1 -1
  42. homeassistant-stubs/components/comelit/utils.pyi +5 -1
  43. homeassistant-stubs/components/config/config_entries.pyi +5 -1
  44. homeassistant-stubs/components/cover/__init__.pyi +1 -11
  45. homeassistant-stubs/components/demo/valve.pyi +14 -5
  46. homeassistant-stubs/components/derivative/__init__.pyi +0 -1
  47. homeassistant-stubs/components/derivative/config_flow.pyi +1 -0
  48. homeassistant-stubs/components/derivative/sensor.pyi +2 -1
  49. homeassistant-stubs/components/device_automation/condition.pyi +7 -6
  50. homeassistant-stubs/components/devolo_home_control/binary_sensor.pyi +1 -1
  51. homeassistant-stubs/components/devolo_home_control/entity.pyi +1 -2
  52. homeassistant-stubs/components/devolo_home_control/sensor.pyi +1 -1
  53. homeassistant-stubs/components/devolo_home_control/subscriber.pyi +0 -1
  54. homeassistant-stubs/components/devolo_home_control/switch.pyi +1 -1
  55. homeassistant-stubs/components/dnsip/sensor.pyi +3 -3
  56. homeassistant-stubs/components/ecovacs/button.pyi +1 -1
  57. homeassistant-stubs/components/ecovacs/select.pyi +14 -2
  58. homeassistant-stubs/components/eheimdigital/sensor.pyi +1 -2
  59. homeassistant-stubs/components/enphase_envoy/sensor.pyi +4 -22
  60. homeassistant-stubs/components/eq3btsmart/sensor.pyi +1 -2
  61. homeassistant-stubs/components/esphome/__init__.pyi +1 -1
  62. homeassistant-stubs/components/esphome/assist_satellite.pyi +12 -2
  63. homeassistant-stubs/components/esphome/climate.pyi +1 -0
  64. homeassistant-stubs/components/esphome/config_flow.pyi +7 -4
  65. homeassistant-stubs/components/esphome/const.pyi +2 -0
  66. homeassistant-stubs/components/esphome/entry_data.pyi +1 -0
  67. homeassistant-stubs/components/esphome/manager.pyi +8 -3
  68. homeassistant-stubs/components/esphome/select.pyi +1 -1
  69. homeassistant-stubs/components/evohome/climate.pyi +1 -1
  70. homeassistant-stubs/components/fastdotcom/coordinator.pyi +2 -2
  71. homeassistant-stubs/components/fastdotcom/sensor.pyi +1 -1
  72. homeassistant-stubs/components/filter/__init__.pyi +0 -1
  73. homeassistant-stubs/components/filter/config_flow.pyi +1 -0
  74. homeassistant-stubs/components/firefly_iii/__init__.pyi +8 -0
  75. homeassistant-stubs/components/firefly_iii/config_flow.pyi +24 -0
  76. homeassistant-stubs/components/firefly_iii/const.pyi +3 -0
  77. homeassistant-stubs/components/firefly_iii/coordinator.pyi +30 -0
  78. homeassistant-stubs/components/firefly_iii/diagnostics.pyi +11 -0
  79. homeassistant-stubs/components/firefly_iii/entity.pyi +30 -0
  80. homeassistant-stubs/components/firefly_iii/sensor.pyi +66 -0
  81. homeassistant-stubs/components/fritz/coordinator.pyi +3 -0
  82. homeassistant-stubs/components/fritz/models.pyi +2 -2
  83. homeassistant-stubs/components/fritz/services.pyi +3 -0
  84. homeassistant-stubs/components/fritzbox/climate.pyi +2 -5
  85. homeassistant-stubs/components/generic_hygrostat/__init__.pyi +0 -1
  86. homeassistant-stubs/components/generic_hygrostat/config_flow.pyi +1 -0
  87. homeassistant-stubs/components/generic_thermostat/__init__.pyi +0 -1
  88. homeassistant-stubs/components/generic_thermostat/config_flow.pyi +1 -0
  89. homeassistant-stubs/components/github/__init__.pyi +12 -0
  90. homeassistant-stubs/components/github/config_flow.pyi +28 -0
  91. homeassistant-stubs/components/github/const.pyi +10 -0
  92. homeassistant-stubs/components/github/coordinator.pyi +26 -0
  93. homeassistant-stubs/components/github/diagnostics.pyi +7 -0
  94. homeassistant-stubs/components/github/sensor.pyi +37 -0
  95. homeassistant-stubs/components/go2rtc/__init__.pyi +1 -2
  96. homeassistant-stubs/components/google_assistant_sdk/config_flow.pyi +2 -1
  97. homeassistant-stubs/components/google_drive/api.pyi +1 -0
  98. homeassistant-stubs/components/google_sheets/services.pyi +9 -2
  99. homeassistant-stubs/components/group/__init__.pyi +0 -1
  100. homeassistant-stubs/components/group/config_flow.pyi +2 -0
  101. homeassistant-stubs/components/group/entity.pyi +3 -0
  102. homeassistant-stubs/components/group/light.pyi +1 -1
  103. homeassistant-stubs/components/group/util.pyi +1 -0
  104. homeassistant-stubs/components/group/valve.pyi +47 -0
  105. homeassistant-stubs/components/habitica/__init__.pyi +1 -0
  106. homeassistant-stubs/components/habitica/config_flow.pyi +11 -3
  107. homeassistant-stubs/components/habitica/const.pyi +1 -0
  108. homeassistant-stubs/components/habitica/coordinator.pyi +9 -3
  109. homeassistant-stubs/components/habitica/entity.pyi +15 -2
  110. homeassistant-stubs/components/habitica/image.pyi +6 -2
  111. homeassistant-stubs/components/habitica/notify.pyi +42 -0
  112. homeassistant-stubs/components/habitica/sensor.pyi +9 -4
  113. homeassistant-stubs/components/hardkernel/hardware.pyi +1 -1
  114. homeassistant-stubs/components/hardware/__init__.pyi +2 -10
  115. homeassistant-stubs/components/history_stats/__init__.pyi +0 -1
  116. homeassistant-stubs/components/history_stats/config_flow.pyi +1 -0
  117. homeassistant-stubs/components/home_connect/application_credentials.pyi +1 -0
  118. homeassistant-stubs/components/home_connect/const.pyi +1 -0
  119. homeassistant-stubs/components/home_connect/select.pyi +1 -1
  120. homeassistant-stubs/components/homeassistant_green/config_flow.pyi +4 -2
  121. homeassistant-stubs/components/homeassistant_green/hardware.pyi +1 -1
  122. homeassistant-stubs/components/homeassistant_hardware/const.pyi +1 -0
  123. homeassistant-stubs/components/homeassistant_hardware/helpers.pyi +12 -2
  124. homeassistant-stubs/components/homeassistant_hardware/switch.pyi +23 -0
  125. homeassistant-stubs/components/homeassistant_sky_connect/__init__.pyi +13 -4
  126. homeassistant-stubs/components/homeassistant_sky_connect/config_flow.pyi +4 -0
  127. homeassistant-stubs/components/homeassistant_sky_connect/hardware.pyi +1 -1
  128. homeassistant-stubs/components/homeassistant_sky_connect/switch.pyi +17 -0
  129. homeassistant-stubs/components/homeassistant_sky_connect/update.pyi +5 -7
  130. homeassistant-stubs/components/homeassistant_yellow/__init__.pyi +12 -4
  131. homeassistant-stubs/components/homeassistant_yellow/config_flow.pyi +1 -1
  132. homeassistant-stubs/components/homeassistant_yellow/hardware.pyi +1 -1
  133. homeassistant-stubs/components/homeassistant_yellow/switch.pyi +17 -0
  134. homeassistant-stubs/components/homeassistant_yellow/update.pyi +5 -7
  135. homeassistant-stubs/components/homee/__init__.pyi +1 -0
  136. homeassistant-stubs/components/homewizard/__init__.pyi +2 -0
  137. homeassistant-stubs/components/husqvarna_automower/button.pyi +1 -0
  138. homeassistant-stubs/components/husqvarna_automower/entity.pyi +8 -4
  139. homeassistant-stubs/components/husqvarna_automower/lawn_mower.pyi +5 -0
  140. homeassistant-stubs/components/husqvarna_automower/select.pyi +1 -0
  141. homeassistant-stubs/components/husqvarna_automower/sensor.pyi +2 -0
  142. homeassistant-stubs/components/husqvarna_automower/switch.pyi +2 -0
  143. homeassistant-stubs/components/imap/__init__.pyi +3 -1
  144. homeassistant-stubs/components/imap/coordinator.pyi +4 -1
  145. homeassistant-stubs/components/inels/__init__.pyi +18 -0
  146. homeassistant-stubs/components/inels/config_flow.pyi +13 -0
  147. homeassistant-stubs/components/inels/const.pyi +7 -0
  148. homeassistant-stubs/components/inels/entity.pyi +20 -0
  149. homeassistant-stubs/components/inels/switch.pyi +34 -0
  150. homeassistant-stubs/components/knx/climate.pyi +23 -11
  151. homeassistant-stubs/components/knx/const.pyi +14 -0
  152. homeassistant-stubs/components/knx/schema.pyi +1 -13
  153. homeassistant-stubs/components/knx/sensor.pyi +8 -9
  154. homeassistant-stubs/components/knx/storage/const.pyi +20 -0
  155. homeassistant-stubs/components/knx/storage/entity_store_schema.pyi +13 -2
  156. homeassistant-stubs/components/libre_hardware_monitor/__init__.pyi +3 -0
  157. homeassistant-stubs/components/libre_hardware_monitor/sensor.pyi +5 -9
  158. homeassistant-stubs/components/litterrobot/update.pyi +2 -0
  159. homeassistant-stubs/components/lock/__init__.pyi +1 -6
  160. homeassistant-stubs/components/london_underground/__init__.pyi +9 -0
  161. homeassistant-stubs/components/london_underground/config_flow.pyi +22 -0
  162. homeassistant-stubs/components/london_underground/const.pyi +1 -0
  163. homeassistant-stubs/components/london_underground/coordinator.pyi +3 -1
  164. homeassistant-stubs/components/london_underground/sensor.pyi +10 -5
  165. homeassistant-stubs/components/lunatone/__init__.pyi +12 -0
  166. homeassistant-stubs/components/lunatone/config_flow.pyi +16 -0
  167. homeassistant-stubs/components/lunatone/const.pyi +3 -0
  168. homeassistant-stubs/components/lunatone/coordinator.pyi +29 -0
  169. homeassistant-stubs/components/lunatone/light.pyi +43 -0
  170. homeassistant-stubs/components/matrix/__init__.pyi +10 -2
  171. homeassistant-stubs/components/matrix/const.pyi +5 -0
  172. homeassistant-stubs/components/matrix/services.pyi +3 -1
  173. homeassistant-stubs/components/matter/__init__.pyi +5 -0
  174. homeassistant-stubs/components/matter/binary_sensor.pyi +1 -1
  175. homeassistant-stubs/components/matter/button.pyi +1 -1
  176. homeassistant-stubs/components/matter/climate.pyi +7 -1
  177. homeassistant-stubs/components/matter/cover.pyi +6 -2
  178. homeassistant-stubs/components/matter/entity.pyi +4 -2
  179. homeassistant-stubs/components/matter/event.pyi +5 -1
  180. homeassistant-stubs/components/matter/fan.pyi +5 -1
  181. homeassistant-stubs/components/matter/light.pyi +6 -2
  182. homeassistant-stubs/components/matter/lock.pyi +5 -1
  183. homeassistant-stubs/components/matter/models.pyi +3 -3
  184. homeassistant-stubs/components/matter/number.pyi +1 -1
  185. homeassistant-stubs/components/matter/select.pyi +1 -1
  186. homeassistant-stubs/components/matter/sensor.pyi +4 -1
  187. homeassistant-stubs/components/matter/services.pyi +11 -0
  188. homeassistant-stubs/components/matter/switch.pyi +5 -2
  189. homeassistant-stubs/components/matter/update.pyi +4 -1
  190. homeassistant-stubs/components/matter/vacuum.pyi +6 -2
  191. homeassistant-stubs/components/matter/valve.pyi +6 -2
  192. homeassistant-stubs/components/matter/water_heater.pyi +8 -1
  193. homeassistant-stubs/components/mcp/__init__.pyi +1 -6
  194. homeassistant-stubs/components/mcp/config_flow.pyi +12 -2
  195. homeassistant-stubs/components/mcp/const.pyi +1 -0
  196. homeassistant-stubs/components/mcp/coordinator.pyi +1 -1
  197. homeassistant-stubs/components/mcp_server/__init__.pyi +1 -8
  198. homeassistant-stubs/components/mcp_server/http.pyi +23 -1
  199. homeassistant-stubs/components/mealie/config_flow.pyi +8 -1
  200. homeassistant-stubs/components/media_player/__init__.pyi +1 -9
  201. homeassistant-stubs/components/media_player/const.pyi +10 -69
  202. homeassistant-stubs/components/media_player/intent.pyi +7 -9
  203. homeassistant-stubs/components/metoffice/__init__.pyi +1 -0
  204. homeassistant-stubs/components/metoffice/helpers.pyi +2 -2
  205. homeassistant-stubs/components/metoffice/weather.pyi +11 -11
  206. homeassistant-stubs/components/miele/sensor.pyi +7 -8
  207. homeassistant-stubs/components/min_max/__init__.pyi +0 -1
  208. homeassistant-stubs/components/min_max/config_flow.pyi +1 -0
  209. homeassistant-stubs/components/mold_indicator/__init__.pyi +0 -1
  210. homeassistant-stubs/components/mold_indicator/config_flow.pyi +1 -0
  211. homeassistant-stubs/components/mqtt/__init__.pyi +1 -4
  212. homeassistant-stubs/components/mqtt/config_flow.pyi +23 -4
  213. homeassistant-stubs/components/mqtt/const.pyi +7 -1
  214. homeassistant-stubs/components/mqtt/number.pyi +1 -5
  215. homeassistant-stubs/components/mqtt/siren.pyi +1 -9
  216. homeassistant-stubs/components/music_assistant/const.pyi +4 -0
  217. homeassistant-stubs/components/music_assistant/media_player.pyi +1 -1
  218. homeassistant-stubs/components/music_assistant/schemas.pyi +2 -2
  219. homeassistant-stubs/components/nasweb/sensor.pyi +0 -5
  220. homeassistant-stubs/components/nasweb/switch.pyi +1 -0
  221. homeassistant-stubs/components/nextdns/config_flow.pyi +6 -1
  222. homeassistant-stubs/components/number/const.pyi +2 -1
  223. homeassistant-stubs/components/onedrive/backup.pyi +2 -1
  224. homeassistant-stubs/components/onewire/binary_sensor.pyi +5 -12
  225. homeassistant-stubs/components/onewire/const.pyi +0 -2
  226. homeassistant-stubs/components/onewire/diagnostics.pyi +2 -0
  227. homeassistant-stubs/components/onewire/entity.pyi +6 -14
  228. homeassistant-stubs/components/onewire/onewirehub.pyi +5 -5
  229. homeassistant-stubs/components/onewire/select.pyi +3 -10
  230. homeassistant-stubs/components/onewire/sensor.pyi +5 -7
  231. homeassistant-stubs/components/onewire/switch.pyi +7 -14
  232. homeassistant-stubs/components/onkyo/receiver.pyi +1 -1
  233. homeassistant-stubs/components/open_router/entity.pyi +4 -1
  234. homeassistant-stubs/components/openai_conversation/ai_task.pyi +1 -1
  235. homeassistant-stubs/components/openai_conversation/config_flow.pyi +1 -1
  236. homeassistant-stubs/components/openai_conversation/const.pyi +2 -0
  237. homeassistant-stubs/components/openai_conversation/entity.pyi +1 -1
  238. homeassistant-stubs/components/opower/coordinator.pyi +1 -0
  239. homeassistant-stubs/components/ping/__init__.pyi +1 -0
  240. homeassistant-stubs/components/ping/config_flow.pyi +1 -0
  241. homeassistant-stubs/components/ping/device_tracker.pyi +3 -2
  242. homeassistant-stubs/components/ping/entity.pyi +1 -0
  243. homeassistant-stubs/components/portainer/button.pyi +29 -0
  244. homeassistant-stubs/components/portainer/config_flow.pyi +4 -0
  245. homeassistant-stubs/components/portainer/const.pyi +1 -0
  246. homeassistant-stubs/components/portainer/coordinator.pyi +11 -2
  247. homeassistant-stubs/components/portainer/diagnostics.pyi +12 -0
  248. homeassistant-stubs/components/portainer/entity.pyi +2 -0
  249. homeassistant-stubs/components/portainer/sensor.pyi +41 -0
  250. homeassistant-stubs/components/portainer/switch.pyi +35 -0
  251. homeassistant-stubs/components/qbus/entity.pyi +1 -3
  252. homeassistant-stubs/components/raspberry_pi/hardware.pyi +1 -1
  253. homeassistant-stubs/components/recorder/const.pyi +1 -1
  254. homeassistant-stubs/components/recorder/core.pyi +3 -3
  255. homeassistant-stubs/components/recorder/db_schema.pyi +3 -10
  256. homeassistant-stubs/components/recorder/entity_registry.pyi +1 -0
  257. homeassistant-stubs/components/recorder/history/__init__.pyi +2 -2
  258. homeassistant-stubs/components/recorder/migration.pyi +4 -1
  259. homeassistant-stubs/components/recorder/models/statistics.pyi +1 -0
  260. homeassistant-stubs/components/recorder/statistics.pyi +17 -12
  261. homeassistant-stubs/components/recorder/table_managers/states_meta.pyi +0 -1
  262. homeassistant-stubs/components/recorder/table_managers/statistics_meta.pyi +4 -2
  263. homeassistant-stubs/components/recorder/tasks.pyi +1 -0
  264. homeassistant-stubs/components/recorder/util.pyi +1 -1
  265. homeassistant-stubs/components/recorder/websocket_api.pyi +6 -4
  266. homeassistant-stubs/components/renault/sensor.pyi +1 -1
  267. homeassistant-stubs/components/reolink/__init__.pyi +1 -1
  268. homeassistant-stubs/components/reolink/binary_sensor.pyi +15 -0
  269. homeassistant-stubs/components/reolink/siren.pyi +2 -0
  270. homeassistant-stubs/components/reolink/switch.pyi +25 -7
  271. homeassistant-stubs/components/roborock/__init__.pyi +1 -1
  272. homeassistant-stubs/components/roborock/config_flow.pyi +1 -1
  273. homeassistant-stubs/components/roborock/coordinator.pyi +2 -1
  274. homeassistant-stubs/components/roborock/entity.pyi +1 -1
  275. homeassistant-stubs/components/roborock/models.pyi +1 -1
  276. homeassistant-stubs/components/scrape/coordinator.pyi +1 -2
  277. homeassistant-stubs/components/sensibo/__init__.pyi +6 -0
  278. homeassistant-stubs/components/sensibo/climate.pyi +3 -26
  279. homeassistant-stubs/components/sensibo/services.pyi +31 -0
  280. homeassistant-stubs/components/sensor/const.pyi +2 -1
  281. homeassistant-stubs/components/sensor/device_condition.pyi +1 -0
  282. homeassistant-stubs/components/sensor/device_trigger.pyi +1 -0
  283. homeassistant-stubs/components/sensor/recorder.pyi +6 -3
  284. homeassistant-stubs/components/sfr_box/__init__.pyi +4 -6
  285. homeassistant-stubs/components/sfr_box/binary_sensor.pyi +5 -14
  286. homeassistant-stubs/components/sfr_box/button.pyi +4 -9
  287. homeassistant-stubs/components/sfr_box/config_flow.pyi +2 -1
  288. homeassistant-stubs/components/sfr_box/coordinator.pyi +13 -2
  289. homeassistant-stubs/components/sfr_box/diagnostics.pyi +2 -4
  290. homeassistant-stubs/components/sfr_box/entity.pyi +18 -0
  291. homeassistant-stubs/components/sfr_box/sensor.pyi +4 -13
  292. homeassistant-stubs/components/shelly/__init__.pyi +2 -2
  293. homeassistant-stubs/components/shelly/binary_sensor.pyi +6 -2
  294. homeassistant-stubs/components/shelly/button.pyi +26 -16
  295. homeassistant-stubs/components/shelly/climate.pyi +61 -7
  296. homeassistant-stubs/components/shelly/const.pyi +15 -3
  297. homeassistant-stubs/components/shelly/cover.pyi +31 -10
  298. homeassistant-stubs/components/shelly/entity.pyi +5 -4
  299. homeassistant-stubs/components/shelly/event.pyi +4 -0
  300. homeassistant-stubs/components/shelly/light.pyi +23 -7
  301. homeassistant-stubs/components/shelly/number.pyi +11 -2
  302. homeassistant-stubs/components/shelly/repairs.pyi +2 -2
  303. homeassistant-stubs/components/shelly/select.pyi +4 -1
  304. homeassistant-stubs/components/shelly/sensor.pyi +8 -7
  305. homeassistant-stubs/components/shelly/switch.pyi +7 -4
  306. homeassistant-stubs/components/shelly/text.pyi +4 -1
  307. homeassistant-stubs/components/shelly/update.pyi +4 -0
  308. homeassistant-stubs/components/shelly/utils.pyi +10 -5
  309. homeassistant-stubs/components/shelly/valve.pyi +34 -5
  310. homeassistant-stubs/components/sleep_as_android/event.pyi +1 -0
  311. homeassistant-stubs/components/sma/__init__.pyi +15 -0
  312. homeassistant-stubs/components/sma/config_flow.pyi +27 -0
  313. homeassistant-stubs/components/sma/const.pyi +11 -0
  314. homeassistant-stubs/components/sma/coordinator.pyi +28 -0
  315. homeassistant-stubs/components/sma/diagnostics.pyi +10 -0
  316. homeassistant-stubs/components/sma/sensor.pyi +33 -0
  317. homeassistant-stubs/components/sql/__init__.pyi +2 -4
  318. homeassistant-stubs/components/sql/sensor.pyi +6 -13
  319. homeassistant-stubs/components/sql/services.pyi +17 -0
  320. homeassistant-stubs/components/sql/util.pyi +16 -3
  321. homeassistant-stubs/components/squeezebox/__init__.pyi +4 -1
  322. homeassistant-stubs/components/squeezebox/browse_media.pyi +4 -3
  323. homeassistant-stubs/components/squeezebox/button.pyi +1 -0
  324. homeassistant-stubs/components/squeezebox/const.pyi +0 -1
  325. homeassistant-stubs/components/squeezebox/media_player.pyi +7 -2
  326. homeassistant-stubs/components/squeezebox/switch.pyi +1 -0
  327. homeassistant-stubs/components/squeezebox/util.pyi +6 -0
  328. homeassistant-stubs/components/suez_water/coordinator.pyi +2 -1
  329. homeassistant-stubs/components/sun/condition.pyi +10 -5
  330. homeassistant-stubs/components/switch_as_x/__init__.pyi +0 -1
  331. homeassistant-stubs/components/switch_as_x/config_flow.pyi +1 -0
  332. homeassistant-stubs/components/switchbot_cloud/climate.pyi +2 -0
  333. homeassistant-stubs/components/switchbot_cloud/lock.pyi +7 -2
  334. homeassistant-stubs/components/switchbot_cloud/sensor.pyi +25 -2
  335. homeassistant-stubs/components/switchbot_cloud/switch.pyi +13 -1
  336. homeassistant-stubs/components/switchbot_cloud/vacuum.pyi +4 -4
  337. homeassistant-stubs/components/switcher_kis/button.pyi +5 -6
  338. homeassistant-stubs/components/switcher_kis/climate.pyi +3 -3
  339. homeassistant-stubs/components/switcher_kis/const.pyi +1 -0
  340. homeassistant-stubs/components/switcher_kis/cover.pyi +4 -3
  341. homeassistant-stubs/components/switcher_kis/light.pyi +3 -2
  342. homeassistant-stubs/components/switcher_kis/sensor.pyi +4 -2
  343. homeassistant-stubs/components/switcher_kis/switch.pyi +3 -5
  344. homeassistant-stubs/components/systemmonitor/__init__.pyi +0 -1
  345. homeassistant-stubs/components/systemmonitor/config_flow.pyi +1 -0
  346. homeassistant-stubs/components/systemmonitor/coordinator.pyi +1 -0
  347. homeassistant-stubs/components/systemmonitor/sensor.pyi +3 -1
  348. homeassistant-stubs/components/telegram_bot/__init__.pyi +2 -1
  349. homeassistant-stubs/components/telegram_bot/bot.pyi +10 -5
  350. homeassistant-stubs/components/telegram_bot/const.pyi +9 -0
  351. homeassistant-stubs/components/telegram_bot/diagnostics.pyi +11 -0
  352. homeassistant-stubs/components/telegram_bot/entity.pyi +16 -0
  353. homeassistant-stubs/components/telegram_bot/event.pyi +18 -0
  354. homeassistant-stubs/components/telegram_bot/notify.pyi +6 -10
  355. homeassistant-stubs/components/tibber/coordinator.pyi +1 -0
  356. homeassistant-stubs/components/tod/__init__.pyi +0 -1
  357. homeassistant-stubs/components/tod/config_flow.pyi +1 -0
  358. homeassistant-stubs/components/tolo/__init__.pyi +3 -5
  359. homeassistant-stubs/components/tolo/binary_sensor.pyi +4 -6
  360. homeassistant-stubs/components/tolo/button.pyi +3 -5
  361. homeassistant-stubs/components/tolo/climate.pyi +3 -5
  362. homeassistant-stubs/components/tolo/coordinator.pyi +3 -2
  363. homeassistant-stubs/components/tolo/entity.pyi +2 -3
  364. homeassistant-stubs/components/tolo/fan.pyi +3 -5
  365. homeassistant-stubs/components/tolo/light.pyi +3 -5
  366. homeassistant-stubs/components/tolo/number.pyi +3 -5
  367. homeassistant-stubs/components/tolo/select.pyi +4 -5
  368. homeassistant-stubs/components/tolo/sensor.pyi +3 -5
  369. homeassistant-stubs/components/tolo/switch.pyi +3 -5
  370. homeassistant-stubs/components/trend/__init__.pyi +0 -1
  371. homeassistant-stubs/components/trend/config_flow.pyi +1 -0
  372. homeassistant-stubs/components/tts/__init__.pyi +2 -3
  373. homeassistant-stubs/components/unifi/light.pyi +44 -0
  374. homeassistant-stubs/components/uptimerobot/binary_sensor.pyi +2 -0
  375. homeassistant-stubs/components/uptimerobot/sensor.pyi +2 -0
  376. homeassistant-stubs/components/uptimerobot/switch.pyi +2 -0
  377. homeassistant-stubs/components/uptimerobot/utils.pyi +5 -0
  378. homeassistant-stubs/components/usb/__init__.pyi +2 -0
  379. homeassistant-stubs/components/usb/utils.pyi +7 -0
  380. homeassistant-stubs/components/vacuum/__init__.pyi +0 -15
  381. homeassistant-stubs/components/vivotek/__init__.pyi +0 -0
  382. homeassistant-stubs/components/vivotek/camera.pyi +35 -0
  383. homeassistant-stubs/components/vodafone_station/__init__.pyi +3 -1
  384. homeassistant-stubs/components/vodafone_station/config_flow.pyi +3 -2
  385. homeassistant-stubs/components/vodafone_station/const.pyi +3 -0
  386. homeassistant-stubs/components/vodafone_station/coordinator.pyi +4 -4
  387. homeassistant-stubs/components/volvo/__init__.pyi +2 -0
  388. homeassistant-stubs/components/volvo/binary_sensor.pyi +1 -3
  389. homeassistant-stubs/components/volvo/button.pyi +27 -0
  390. homeassistant-stubs/components/volvo/coordinator.pyi +12 -14
  391. homeassistant-stubs/components/volvo/device_tracker.pyi +23 -0
  392. homeassistant-stubs/components/volvo/diagnostics.pyi +12 -0
  393. homeassistant-stubs/components/volvo/entity.pyi +9 -5
  394. homeassistant-stubs/components/volvo/sensor.pyi +9 -8
  395. homeassistant-stubs/components/waqi/__init__.pyi +8 -0
  396. homeassistant-stubs/components/waqi/config_flow.pyi +14 -9
  397. homeassistant-stubs/components/waqi/const.pyi +1 -1
  398. homeassistant-stubs/components/waqi/coordinator.pyi +5 -4
  399. homeassistant-stubs/components/webostv/media_player.pyi +3 -0
  400. homeassistant-stubs/components/websocket_api/commands.pyi +2 -0
  401. homeassistant-stubs/components/wled/select.pyi +6 -3
  402. homeassistant-stubs/components/worldclock/__init__.pyi +0 -1
  403. homeassistant-stubs/components/worldclock/config_flow.pyi +1 -0
  404. homeassistant-stubs/components/zeroconf/__init__.pyi +3 -1
  405. homeassistant-stubs/components/zeroconf/discovery.pyi +8 -1
  406. homeassistant-stubs/components/zeroconf/repairs.pyi +13 -0
  407. homeassistant-stubs/components/zone/condition.pyi +10 -4
  408. homeassistant-stubs/components/zwave_js/config_flow.pyi +1 -0
  409. homeassistant-stubs/components/zwave_js/device_trigger.pyi +1 -1
  410. homeassistant-stubs/components/zwave_js/triggers/event.pyi +6 -8
  411. homeassistant-stubs/components/zwave_js/triggers/value_updated.pyi +6 -6
  412. homeassistant-stubs/config_entries.pyi +9 -0
  413. homeassistant-stubs/const.pyi +4 -21
  414. homeassistant-stubs/core.pyi +1 -7
  415. homeassistant-stubs/data_entry_flow.pyi +2 -0
  416. homeassistant-stubs/helpers/automation.pyi +6 -0
  417. homeassistant-stubs/helpers/condition.pyi +15 -5
  418. homeassistant-stubs/helpers/debounce.pyi +6 -1
  419. homeassistant-stubs/helpers/entity_platform.pyi +1 -1
  420. homeassistant-stubs/helpers/event.pyi +1 -1
  421. homeassistant-stubs/helpers/instance_id.pyi +1 -0
  422. homeassistant-stubs/helpers/llm.pyi +6 -1
  423. homeassistant-stubs/helpers/selector.pyi +5 -4
  424. homeassistant-stubs/helpers/service.pyi +4 -4
  425. homeassistant-stubs/helpers/template/__init__.pyi +0 -5
  426. homeassistant-stubs/helpers/trigger.pyi +18 -5
  427. homeassistant-stubs/helpers/update_coordinator.pyi +1 -0
  428. homeassistant-stubs/runner.pyi +1 -1
  429. homeassistant-stubs/util/async_iterator.pyi +33 -0
  430. homeassistant-stubs/util/unit_conversion.pyi +15 -0
  431. {homeassistant_stubs-2025.10.4.dist-info → homeassistant_stubs-2025.11.0b1.dist-info}/METADATA +2 -2
  432. {homeassistant_stubs-2025.10.4.dist-info → homeassistant_stubs-2025.11.0b1.dist-info}/RECORD +434 -398
  433. homeassistant-stubs/components/elevenlabs/__init__.pyi +0 -22
  434. homeassistant-stubs/components/elevenlabs/config_flow.pyi +0 -33
  435. homeassistant-stubs/components/elevenlabs/const.pyi +0 -14
  436. homeassistant-stubs/components/elevenlabs/tts.pyi +0 -36
  437. homeassistant-stubs/components/neato/__init__.pyi +0 -15
  438. homeassistant-stubs/components/neato/api.pyi +0 -17
  439. homeassistant-stubs/components/neato/application_credentials.pyi +0 -6
  440. homeassistant-stubs/components/neato/button.pyi +0 -18
  441. homeassistant-stubs/components/neato/camera.pyi +0 -34
  442. homeassistant-stubs/components/neato/config_flow.pyi +0 -15
  443. homeassistant-stubs/components/neato/const.pyi +0 -13
  444. homeassistant-stubs/components/neato/entity.pyi +0 -11
  445. homeassistant-stubs/components/neato/hub.pyi +0 -17
  446. homeassistant-stubs/components/neato/sensor.pyi +0 -30
  447. homeassistant-stubs/components/neato/switch.pyi +0 -34
  448. homeassistant-stubs/components/neato/vacuum.pyi +0 -70
  449. homeassistant-stubs/components/recorder/history/legacy.pyi +0 -48
  450. homeassistant-stubs/components/recorder/history/modern.pyi +0 -39
  451. homeassistant-stubs/components/recorder/models/legacy.pyi +0 -45
  452. homeassistant-stubs/components/sfr_box/models.pyi +0 -12
  453. {homeassistant_stubs-2025.10.4.dist-info → homeassistant_stubs-2025.11.0b1.dist-info}/WHEEL +0 -0
  454. {homeassistant_stubs-2025.10.4.dist-info → homeassistant_stubs-2025.11.0b1.dist-info}/licenses/LICENSE +0 -0
@@ -1,5 +1,5 @@
1
1
  from .const import DOMAIN as DOMAIN
2
- from homeassistant.components.hardware.models import BoardInfo as BoardInfo, HardwareInfo as HardwareInfo
2
+ from homeassistant.components.hardware import BoardInfo as BoardInfo, HardwareInfo as HardwareInfo
3
3
  from homeassistant.components.hassio import get_os_info as get_os_info
4
4
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
5
5
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
@@ -0,0 +1,17 @@
1
+ from . import HomeAssistantYellowConfigEntry as HomeAssistantYellowConfigEntry
2
+ from .const import DOMAIN as DOMAIN, MANUFACTURER as MANUFACTURER, MODEL as MODEL
3
+ from _typeshed import Incomplete
4
+ from homeassistant.components.homeassistant_hardware.coordinator import FirmwareUpdateCoordinator as FirmwareUpdateCoordinator
5
+ from homeassistant.components.homeassistant_hardware.switch import BaseBetaFirmwareSwitch as BaseBetaFirmwareSwitch
6
+ from homeassistant.core import HomeAssistant as HomeAssistant
7
+ from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
8
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
9
+
10
+ _LOGGER: Incomplete
11
+
12
+ async def async_setup_entry(hass: HomeAssistant, config_entry: HomeAssistantYellowConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
13
+
14
+ class BetaFirmwareSwitch(BaseBetaFirmwareSwitch):
15
+ _attr_unique_id: str
16
+ _attr_device_info: Incomplete
17
+ def __init__(self, coordinator: FirmwareUpdateCoordinator, config_entry: HomeAssistantYellowConfigEntry) -> None: ...
@@ -1,29 +1,27 @@
1
- import aiohttp
2
- from .const import DOMAIN as DOMAIN, FIRMWARE as FIRMWARE, FIRMWARE_VERSION as FIRMWARE_VERSION, MANUFACTURER as MANUFACTURER, MODEL as MODEL, NABU_CASA_FIRMWARE_RELEASES_URL as NABU_CASA_FIRMWARE_RELEASES_URL, RADIO_DEVICE as RADIO_DEVICE
1
+ from . import HomeAssistantYellowConfigEntry as HomeAssistantYellowConfigEntry
2
+ from .const import DOMAIN as DOMAIN, FIRMWARE as FIRMWARE, FIRMWARE_VERSION as FIRMWARE_VERSION, MANUFACTURER as MANUFACTURER, MODEL as MODEL, RADIO_DEVICE as RADIO_DEVICE
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.components.homeassistant_hardware.coordinator import FirmwareUpdateCoordinator as FirmwareUpdateCoordinator
5
5
  from homeassistant.components.homeassistant_hardware.update import BaseFirmwareUpdateEntity as BaseFirmwareUpdateEntity, FirmwareUpdateEntityDescription as FirmwareUpdateEntityDescription
6
6
  from homeassistant.components.homeassistant_hardware.util import ApplicationType as ApplicationType, FirmwareInfo as FirmwareInfo, ResetTarget as ResetTarget
7
7
  from homeassistant.components.update import UpdateDeviceClass as UpdateDeviceClass
8
- from homeassistant.config_entries import ConfigEntry as ConfigEntry
9
8
  from homeassistant.const import EntityCategory as EntityCategory
10
9
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
11
- from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
12
10
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
13
11
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
14
12
 
15
13
  _LOGGER: Incomplete
16
14
  FIRMWARE_ENTITY_DESCRIPTIONS: dict[ApplicationType | None, FirmwareUpdateEntityDescription]
17
15
 
18
- def _async_create_update_entity(hass: HomeAssistant, config_entry: ConfigEntry, session: aiohttp.ClientSession, async_add_entities: AddConfigEntryEntitiesCallback) -> FirmwareUpdateEntity: ...
19
- async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
16
+ def _async_create_update_entity(hass: HomeAssistant, config_entry: HomeAssistantYellowConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> FirmwareUpdateEntity: ...
17
+ async def async_setup_entry(hass: HomeAssistant, config_entry: HomeAssistantYellowConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
20
18
 
21
19
  class FirmwareUpdateEntity(BaseFirmwareUpdateEntity):
22
20
  bootloader_reset_methods: Incomplete
23
21
  _attr_unique_id: Incomplete
24
22
  _attr_device_info: Incomplete
25
23
  _current_firmware_info: Incomplete
26
- def __init__(self, device: str, config_entry: ConfigEntry, update_coordinator: FirmwareUpdateCoordinator, entity_description: FirmwareUpdateEntityDescription) -> None: ...
24
+ def __init__(self, device: str, config_entry: HomeAssistantYellowConfigEntry, update_coordinator: FirmwareUpdateCoordinator, entity_description: FirmwareUpdateEntityDescription) -> None: ...
27
25
  def _update_attributes(self) -> None: ...
28
26
  @callback
29
27
  def _firmware_info_callback(self, firmware_info: FirmwareInfo) -> None: ...
@@ -5,6 +5,7 @@ from homeassistant.const import CONF_HOST as CONF_HOST, CONF_PASSWORD as CONF_PA
5
5
  from homeassistant.core import HomeAssistant as HomeAssistant
6
6
  from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
7
7
  from pyHomee import Homee
8
+ from pyHomee.model import HomeeNode as HomeeNode
8
9
 
9
10
  _LOGGER: Incomplete
10
11
  PLATFORMS: Incomplete
@@ -4,10 +4,12 @@ from homeassistant.config_entries import SOURCE_REAUTH as SOURCE_REAUTH
4
4
  from homeassistant.const import CONF_IP_ADDRESS as CONF_IP_ADDRESS, CONF_TOKEN as CONF_TOKEN
5
5
  from homeassistant.core import HomeAssistant as HomeAssistant
6
6
  from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
7
+ from homeassistant.helpers import device_registry as dr
7
8
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
8
9
  from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity, async_create_issue as async_create_issue
9
10
  from homewizard_energy import HomeWizardEnergy as HomeWizardEnergy
10
11
 
11
12
  async def async_setup_entry(hass: HomeAssistant, entry: HomeWizardConfigEntry) -> bool: ...
12
13
  async def async_unload_entry(hass: HomeAssistant, entry: HomeWizardConfigEntry) -> bool: ...
14
+ def get_main_device(hass: HomeAssistant, entry: HomeWizardConfigEntry) -> dr.DeviceEntry | None: ...
13
15
  async def async_check_v2_support_and_create_issue(hass: HomeAssistant, entry: HomeWizardConfigEntry) -> None: ...
@@ -34,4 +34,5 @@ class AutomowerButtonEntity(AutomowerControlEntity, ButtonEntity):
34
34
  def __init__(self, mower_id: str, coordinator: AutomowerDataUpdateCoordinator, description: AutomowerButtonEntityDescription) -> None: ...
35
35
  @property
36
36
  def available(self) -> bool: ...
37
+ @handle_sending_exception
37
38
  async def async_press(self) -> None: ...
@@ -2,21 +2,25 @@ from . import AutomowerDataUpdateCoordinator as AutomowerDataUpdateCoordinator
2
2
  from .const import DOMAIN as DOMAIN, EXECUTION_TIME_DELAY as EXECUTION_TIME_DELAY
3
3
  from _typeshed import Incomplete
4
4
  from aioautomower.model import MowerAttributes as MowerAttributes, WorkArea as WorkArea
5
- from collections.abc import Callable, Coroutine
5
+ from collections.abc import Callable as Callable, Coroutine
6
6
  from homeassistant.core import callback as callback
7
7
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
8
8
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
9
9
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
10
- from typing import Any, Concatenate
10
+ from typing import Any, Concatenate, ParamSpec, TypeVar, overload
11
11
 
12
12
  _LOGGER: Incomplete
13
13
  ERROR_ACTIVITIES: Incomplete
14
14
  ERROR_STATES: Incomplete
15
+ _Entity = TypeVar('_Entity', bound='AutomowerBaseEntity')
16
+ _P = ParamSpec('_P')
15
17
 
18
+ @overload
19
+ def handle_sending_exception(_func: Callable[Concatenate[_Entity, _P], Coroutine[Any, Any, Any]]) -> Callable[Concatenate[_Entity, _P], Coroutine[Any, Any, None]]: ...
20
+ @overload
21
+ def handle_sending_exception(*, poll_after_sending: bool = False) -> Callable[[Callable[Concatenate[_Entity, _P], Coroutine[Any, Any, Any]]], Callable[Concatenate[_Entity, _P], Coroutine[Any, Any, None]]]: ...
16
22
  @callback
17
23
  def _work_area_translation_key(work_area_id: int, key: str) -> str: ...
18
- type _FuncType[_T, **_P, _R] = Callable[Concatenate[_T, _P], Coroutine[Any, Any, _R]]
19
- def handle_sending_exception[_Entity: AutomowerBaseEntity, **_P](poll_after_sending: bool = False) -> Callable[[_FuncType[_Entity, _P, Any]], _FuncType[_Entity, _P, None]]: ...
20
24
 
21
25
  class AutomowerBaseEntity(CoordinatorEntity[AutomowerDataUpdateCoordinator]):
22
26
  _attr_has_entity_name: bool
@@ -34,8 +34,13 @@ class AutomowerLawnMowerEntity(AutomowerBaseEntity, LawnMowerEntity):
34
34
  def available(self) -> bool: ...
35
35
  @property
36
36
  def work_areas(self) -> dict[int, WorkArea] | None: ...
37
+ @handle_sending_exception
37
38
  async def async_start_mowing(self) -> None: ...
39
+ @handle_sending_exception
38
40
  async def async_pause(self) -> None: ...
41
+ @handle_sending_exception
39
42
  async def async_dock(self) -> None: ...
43
+ @handle_sending_exception
40
44
  async def async_override_schedule(self, override_mode: str, duration: timedelta) -> None: ...
45
+ @handle_sending_exception
41
46
  async def async_override_schedule_work_area(self, work_area_id: int, duration: timedelta) -> None: ...
@@ -21,4 +21,5 @@ class AutomowerSelectEntity(AutomowerControlEntity, SelectEntity):
21
21
  def __init__(self, mower_id: str, coordinator: AutomowerDataUpdateCoordinator) -> None: ...
22
22
  @property
23
23
  def current_option(self) -> str: ...
24
+ @handle_sending_exception
24
25
  async def async_select_option(self, option: str) -> None: ...
@@ -29,6 +29,8 @@ def _get_work_area_names(data: MowerAttributes) -> list[str]: ...
29
29
  @callback
30
30
  def _get_current_work_area_name(data: MowerAttributes) -> str: ...
31
31
  @callback
32
+ def _get_remaining_charging_time(data: MowerAttributes) -> int | None: ...
33
+ @callback
32
34
  def _get_current_work_area_dict(data: MowerAttributes) -> Mapping[str, Any]: ...
33
35
  @callback
34
36
  def _get_error_string(data: MowerAttributes) -> str: ...
@@ -19,7 +19,9 @@ class AutomowerScheduleSwitchEntity(AutomowerControlEntity, SwitchEntity):
19
19
  def __init__(self, mower_id: str, coordinator: AutomowerDataUpdateCoordinator) -> None: ...
20
20
  @property
21
21
  def is_on(self) -> bool: ...
22
+ @handle_sending_exception
22
23
  async def async_turn_off(self, **kwargs: Any) -> None: ...
24
+ @handle_sending_exception
23
25
  async def async_turn_on(self, **kwargs: Any) -> None: ...
24
26
 
25
27
  class StayOutZoneSwitchEntity(AutomowerControlEntity, SwitchEntity):
@@ -1,5 +1,5 @@
1
1
  from .const import CONF_ENABLE_PUSH as CONF_ENABLE_PUSH, DOMAIN as DOMAIN
2
- from .coordinator import ImapDataUpdateCoordinator as ImapDataUpdateCoordinator, ImapMessage as ImapMessage, ImapPollingDataUpdateCoordinator as ImapPollingDataUpdateCoordinator, ImapPushDataUpdateCoordinator as ImapPushDataUpdateCoordinator, connect_to_server as connect_to_server
2
+ from .coordinator import ImapDataUpdateCoordinator as ImapDataUpdateCoordinator, ImapMessage as ImapMessage, ImapPollingDataUpdateCoordinator as ImapPollingDataUpdateCoordinator, ImapPushDataUpdateCoordinator as ImapPushDataUpdateCoordinator, connect_to_server as connect_to_server, get_parts as get_parts
3
3
  from .errors import InvalidAuth as InvalidAuth, InvalidFolder as InvalidFolder
4
4
  from _typeshed import Incomplete
5
5
  from aioimaplib import IMAP4_SSL as IMAP4_SSL, Response as Response
@@ -12,6 +12,7 @@ from homeassistant.helpers.typing import ConfigType as ConfigType
12
12
  PLATFORMS: list[Platform]
13
13
  CONF_ENTRY: str
14
14
  CONF_SEEN: str
15
+ CONF_PART: str
15
16
  CONF_UID: str
16
17
  CONF_TARGET_FOLDER: str
17
18
  _LOGGER: Incomplete
@@ -21,6 +22,7 @@ SERVICE_SEEN_SCHEMA = _SERVICE_UID_SCHEMA
21
22
  SERVICE_MOVE_SCHEMA: Incomplete
22
23
  SERVICE_DELETE_SCHEMA = _SERVICE_UID_SCHEMA
23
24
  SERVICE_FETCH_TEXT_SCHEMA = _SERVICE_UID_SCHEMA
25
+ SERVICE_FETCH_PART_SCHEMA: Incomplete
24
26
  type ImapConfigEntry = ConfigEntry[ImapDataUpdateCoordinator]
25
27
 
26
28
  async def async_get_imap_client(hass: HomeAssistant, entry_id: str) -> IMAP4_SSL: ...
@@ -8,7 +8,7 @@ from collections.abc import Mapping
8
8
  from datetime import datetime, timedelta
9
9
  from email.message import Message
10
10
  from homeassistant.const import CONF_PASSWORD as CONF_PASSWORD, CONF_PORT as CONF_PORT, CONF_USERNAME as CONF_USERNAME, CONF_VERIFY_SSL as CONF_VERIFY_SSL, CONTENT_TYPE_TEXT_PLAIN as CONTENT_TYPE_TEXT_PLAIN
11
- from homeassistant.core import HomeAssistant as HomeAssistant
11
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
12
12
  from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryError as ConfigEntryError, TemplateError as TemplateError
13
13
  from homeassistant.helpers.json import json_bytes as json_bytes
14
14
  from homeassistant.helpers.template import Template as Template
@@ -43,6 +43,9 @@ class ImapMessage:
43
43
  @property
44
44
  def text(self) -> str: ...
45
45
 
46
+ @callback
47
+ def get_parts(message: Message, prefix: str | None = None) -> dict[str, Any]: ...
48
+
46
49
  class ImapDataUpdateCoordinator(DataUpdateCoordinator[int | None]):
47
50
  config_entry: ImapConfigEntry
48
51
  custom_event_template: Template | None
@@ -0,0 +1,18 @@
1
+ from .const import LOGGER as LOGGER, PLATFORMS as PLATFORMS
2
+ from collections.abc import Callable as Callable
3
+ from dataclasses import dataclass
4
+ from homeassistant.components.mqtt import ReceiveMessage as ReceiveMessage, async_prepare_subscribe_topics as async_prepare_subscribe_topics, async_subscribe_topics as async_subscribe_topics, async_unsubscribe_topics as async_unsubscribe_topics
5
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
7
+ from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
8
+ from inelsmqtt import InelsMqtt
9
+ from inelsmqtt.devices import Device as Device
10
+
11
+ type InelsConfigEntry = ConfigEntry[InelsData]
12
+ @dataclass
13
+ class InelsData:
14
+ mqtt: InelsMqtt
15
+ devices: list[Device]
16
+
17
+ async def async_setup_entry(hass: HomeAssistant, entry: InelsConfigEntry) -> bool: ...
18
+ async def async_unload_entry(hass: HomeAssistant, entry: InelsConfigEntry) -> bool: ...
@@ -0,0 +1,13 @@
1
+ from .const import DOMAIN as DOMAIN, TITLE as TITLE
2
+ from homeassistant.components import mqtt as mqtt
3
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult
4
+ from homeassistant.helpers.service_info.mqtt import MqttServiceInfo as MqttServiceInfo
5
+ from typing import Any
6
+
7
+ class INelsConfigFlow(ConfigFlow, domain=DOMAIN):
8
+ VERSION: int
9
+ async def async_step_mqtt(self, discovery_info: MqttServiceInfo) -> ConfigFlowResult: ...
10
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
11
+ async def step_confirm(self, step_id: str, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
12
+ async def async_step_confirm_from_mqtt(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
13
+ async def async_step_confirm_from_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -0,0 +1,7 @@
1
+ from _typeshed import Incomplete
2
+ from homeassistant.const import Platform as Platform
3
+
4
+ DOMAIN: str
5
+ TITLE: str
6
+ PLATFORMS: list[Platform]
7
+ LOGGER: Incomplete
@@ -0,0 +1,20 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from _typeshed import Incomplete
3
+ from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
4
+ from homeassistant.helpers.entity import Entity as Entity
5
+ from inelsmqtt.devices import Device as Device
6
+
7
+ class InelsBaseEntity(Entity):
8
+ _attr_should_poll: bool
9
+ _attr_has_entity_name: bool
10
+ _device: Incomplete
11
+ _device_id: Incomplete
12
+ _attr_unique_id: Incomplete
13
+ _key: Incomplete
14
+ _index: Incomplete
15
+ _attr_device_info: Incomplete
16
+ def __init__(self, device: Device, key: str, index: int) -> None: ...
17
+ async def async_added_to_hass(self) -> None: ...
18
+ def _callback(self) -> None: ...
19
+ @property
20
+ def available(self) -> bool: ...
@@ -0,0 +1,34 @@
1
+ from . import InelsConfigEntry as InelsConfigEntry
2
+ from .entity import InelsBaseEntity as InelsBaseEntity
3
+ from _typeshed import Incomplete
4
+ from collections.abc import Callable as Callable
5
+ from dataclasses import dataclass
6
+ from homeassistant.components.switch import SwitchEntity as SwitchEntity, SwitchEntityDescription as SwitchEntityDescription
7
+ from homeassistant.core import HomeAssistant as HomeAssistant
8
+ from homeassistant.exceptions import ServiceValidationError as ServiceValidationError
9
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
10
+ from inelsmqtt.devices import Device as Device
11
+ from inelsmqtt.utils.common import Bit as Bit, Relay as Relay, SimpleRelay as SimpleRelay
12
+ from typing import Any
13
+
14
+ @dataclass(frozen=True, kw_only=True)
15
+ class InelsSwitchEntityDescription(SwitchEntityDescription):
16
+ get_state_fn: Callable[[Device, int], Bit | SimpleRelay | Relay]
17
+ alerts: list[str] | None = ...
18
+ placeholder_fn: Callable[[Device, int, bool], dict[str, str]]
19
+
20
+ SWITCH_TYPES: Incomplete
21
+
22
+ async def async_setup_entry(hass: HomeAssistant, entry: InelsConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
23
+
24
+ class InelsSwitch(InelsBaseEntity, SwitchEntity):
25
+ entity_description: InelsSwitchEntityDescription
26
+ _switch_count: Incomplete
27
+ _attr_unique_id: Incomplete
28
+ _attr_translation_placeholders: Incomplete
29
+ def __init__(self, device: Device, description: InelsSwitchEntityDescription, index: int = 0, switch_count: int = 1) -> None: ...
30
+ def _check_alerts(self, current_state: Bit | SimpleRelay | Relay) -> None: ...
31
+ @property
32
+ def is_on(self) -> bool | None: ...
33
+ async def async_turn_off(self, **kwargs: Any) -> None: ...
34
+ async def async_turn_on(self, **kwargs: Any) -> None: ...
@@ -1,13 +1,16 @@
1
- from .const import CONTROLLER_MODES as CONTROLLER_MODES, CURRENT_HVAC_ACTIONS as CURRENT_HVAC_ACTIONS, KNX_MODULE_KEY as KNX_MODULE_KEY
2
- from .entity import KnxYamlEntity as KnxYamlEntity
1
+ from .const import CONF_SYNC_STATE as CONF_SYNC_STATE, CONTROLLER_MODES as CONTROLLER_MODES, CURRENT_HVAC_ACTIONS as CURRENT_HVAC_ACTIONS, ClimateConf as ClimateConf, DOMAIN as DOMAIN, KNX_MODULE_KEY as KNX_MODULE_KEY
2
+ from .entity import KnxUiEntity as KnxUiEntity, KnxUiEntityPlatformController as KnxUiEntityPlatformController, KnxYamlEntity as KnxYamlEntity, _KnxEntityBase as _KnxEntityBase
3
3
  from .knx_module import KNXModule as KNXModule
4
4
  from .schema import ClimateSchema as ClimateSchema
5
+ from .storage.const import CONF_ENTITY as CONF_ENTITY, CONF_GA_ACTIVE as CONF_GA_ACTIVE, CONF_GA_CONTROLLER_MODE as CONF_GA_CONTROLLER_MODE, CONF_GA_CONTROLLER_STATUS as CONF_GA_CONTROLLER_STATUS, CONF_GA_FAN_SPEED as CONF_GA_FAN_SPEED, CONF_GA_FAN_SWING as CONF_GA_FAN_SWING, CONF_GA_FAN_SWING_HORIZONTAL as CONF_GA_FAN_SWING_HORIZONTAL, CONF_GA_HEAT_COOL as CONF_GA_HEAT_COOL, CONF_GA_HUMIDITY_CURRENT as CONF_GA_HUMIDITY_CURRENT, CONF_GA_ON_OFF as CONF_GA_ON_OFF, CONF_GA_OPERATION_MODE as CONF_GA_OPERATION_MODE, CONF_GA_OP_MODE_COMFORT as CONF_GA_OP_MODE_COMFORT, CONF_GA_OP_MODE_ECO as CONF_GA_OP_MODE_ECO, CONF_GA_OP_MODE_PROTECTION as CONF_GA_OP_MODE_PROTECTION, CONF_GA_OP_MODE_STANDBY as CONF_GA_OP_MODE_STANDBY, CONF_GA_SETPOINT_SHIFT as CONF_GA_SETPOINT_SHIFT, CONF_GA_TEMPERATURE_CURRENT as CONF_GA_TEMPERATURE_CURRENT, CONF_GA_TEMPERATURE_TARGET as CONF_GA_TEMPERATURE_TARGET, CONF_GA_VALVE as CONF_GA_VALVE, CONF_IGNORE_AUTO_MODE as CONF_IGNORE_AUTO_MODE, CONF_TARGET_TEMPERATURE as CONF_TARGET_TEMPERATURE
6
+ from .storage.entity_store_schema import ConfClimateFanSpeedMode as ConfClimateFanSpeedMode, ConfSetpointShiftMode as ConfSetpointShiftMode
7
+ from .storage.util import ConfigExtractor as ConfigExtractor
5
8
  from _typeshed import Incomplete
6
9
  from homeassistant import config_entries as config_entries
7
10
  from homeassistant.components.climate import ClimateEntity as ClimateEntity, ClimateEntityFeature as ClimateEntityFeature, FAN_HIGH as FAN_HIGH, FAN_LOW as FAN_LOW, FAN_MEDIUM as FAN_MEDIUM, FAN_ON as FAN_ON, HVACAction as HVACAction, HVACMode as HVACMode, SWING_OFF as SWING_OFF, SWING_ON as SWING_ON
8
11
  from homeassistant.const import ATTR_TEMPERATURE as ATTR_TEMPERATURE, CONF_ENTITY_CATEGORY as CONF_ENTITY_CATEGORY, CONF_NAME as CONF_NAME, Platform as Platform, UnitOfTemperature as UnitOfTemperature
9
12
  from homeassistant.core import HomeAssistant as HomeAssistant
10
- from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
13
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback, async_get_current_platform as async_get_current_platform
11
14
  from homeassistant.helpers.typing import ConfigType as ConfigType
12
15
  from typing import Any
13
16
  from xknx import XKNX as XKNX
@@ -18,24 +21,23 @@ CONTROLLER_MODES_INV: Incomplete
18
21
 
19
22
  async def async_setup_entry(hass: HomeAssistant, config_entry: config_entries.ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
20
23
  def _create_climate(xknx: XKNX, config: ConfigType) -> XknxClimate: ...
24
+ def _create_climate_ui(xknx: XKNX, conf: ConfigExtractor, name: str) -> XknxClimate: ...
21
25
 
22
- class KNXClimate(KnxYamlEntity, ClimateEntity):
26
+ class _KnxClimate(ClimateEntity, _KnxEntityBase):
23
27
  _device: XknxClimate
24
28
  _attr_temperature_unit: Incomplete
25
29
  _attr_translation_key: str
26
- _attr_entity_category: Incomplete
30
+ default_hvac_mode: HVACMode
31
+ _last_hvac_mode: HVACMode
32
+ fan_zero_mode: str
33
+ _fan_modes_percentages: list[int]
27
34
  _attr_supported_features: Incomplete
28
35
  _attr_preset_modes: Incomplete
29
- _fan_modes_percentages: Incomplete
30
- fan_zero_mode: str
31
36
  _attr_fan_modes: Incomplete
32
37
  _attr_swing_modes: Incomplete
33
38
  _attr_swing_horizontal_modes: Incomplete
34
39
  _attr_target_temperature_step: Incomplete
35
- _attr_unique_id: Incomplete
36
- default_hvac_mode: HVACMode
37
- _last_hvac_mode: HVACMode
38
- def __init__(self, knx_module: KNXModule, config: ConfigType) -> None: ...
40
+ def _init_from_device_config(self, device: XknxClimate, default_hvac_mode: HVACMode, fan_max_step: int, fan_zero_mode: str) -> None: ...
39
41
  @property
40
42
  def current_temperature(self) -> float | None: ...
41
43
  @property
@@ -73,3 +75,13 @@ class KNXClimate(KnxYamlEntity, ClimateEntity):
73
75
  async def async_added_to_hass(self) -> None: ...
74
76
  async def async_will_remove_from_hass(self) -> None: ...
75
77
  def after_update_callback(self, device: XknxDevice) -> None: ...
78
+
79
+ class KnxYamlClimate(_KnxClimate, KnxYamlEntity):
80
+ _device: XknxClimate
81
+ _attr_entity_category: Incomplete
82
+ _attr_unique_id: Incomplete
83
+ def __init__(self, knx_module: KNXModule, config: ConfigType) -> None: ...
84
+
85
+ class KnxUiClimate(_KnxClimate, KnxUiEntity):
86
+ _device: XknxClimate
87
+ def __init__(self, knx_module: KNXModule, unique_id: str, config: ConfigType) -> None: ...
@@ -104,3 +104,17 @@ class CoverConf:
104
104
  INVERT_UPDOWN: Final[str]
105
105
  INVERT_POSITION: Final[str]
106
106
  INVERT_ANGLE: Final[str]
107
+
108
+ class ClimateConf:
109
+ MIN_TEMP: Final[str]
110
+ MAX_TEMP: Final[str]
111
+ TEMPERATURE_STEP: Final[str]
112
+ SETPOINT_SHIFT_MAX: Final[str]
113
+ SETPOINT_SHIFT_MIN: Final[str]
114
+ ON_OFF_INVERT: Final[str]
115
+ OPERATION_MODES: Final[str]
116
+ CONTROLLER_MODES: Final[str]
117
+ DEFAULT_CONTROLLER_MODE: Final[str]
118
+ FAN_MAX_STEP: Final[str]
119
+ FAN_SPEED_MODE: Final[str]
120
+ FAN_ZERO_MODE: Final[str]
@@ -1,5 +1,5 @@
1
1
  import voluptuous as vol
2
- from .const import CONF_CONTEXT_TIMEOUT as CONF_CONTEXT_TIMEOUT, CONF_IGNORE_INTERNAL_STATE as CONF_IGNORE_INTERNAL_STATE, CONF_INVERT as CONF_INVERT, CONF_KNX_EXPOSE as CONF_KNX_EXPOSE, CONF_PAYLOAD_LENGTH as CONF_PAYLOAD_LENGTH, CONF_RESET_AFTER as CONF_RESET_AFTER, CONF_RESPOND_TO_READ as CONF_RESPOND_TO_READ, CONF_STATE_ADDRESS as CONF_STATE_ADDRESS, CONF_SYNC_STATE as CONF_SYNC_STATE, ColorTempModes as ColorTempModes, CoverConf as CoverConf, FanZeroMode as FanZeroMode, KNX_ADDRESS as KNX_ADDRESS
2
+ from .const import CONF_CONTEXT_TIMEOUT as CONF_CONTEXT_TIMEOUT, CONF_IGNORE_INTERNAL_STATE as CONF_IGNORE_INTERNAL_STATE, CONF_INVERT as CONF_INVERT, CONF_KNX_EXPOSE as CONF_KNX_EXPOSE, CONF_PAYLOAD_LENGTH as CONF_PAYLOAD_LENGTH, CONF_RESET_AFTER as CONF_RESET_AFTER, CONF_RESPOND_TO_READ as CONF_RESPOND_TO_READ, CONF_STATE_ADDRESS as CONF_STATE_ADDRESS, CONF_SYNC_STATE as CONF_SYNC_STATE, ClimateConf as ClimateConf, ColorTempModes as ColorTempModes, CoverConf as CoverConf, FanZeroMode as FanZeroMode, KNX_ADDRESS as KNX_ADDRESS
3
3
  from .validation import backwards_compatible_xknx_climate_enum_member as backwards_compatible_xknx_climate_enum_member, dpt_base_type_validator as dpt_base_type_validator, ga_list_validator as ga_list_validator, ga_validator as ga_validator, numeric_type_validator as numeric_type_validator, sensor_type_validator as sensor_type_validator, string_type_validator as string_type_validator, sync_state_validator as sync_state_validator
4
4
  from _typeshed import Incomplete
5
5
  from abc import ABC
@@ -46,10 +46,7 @@ class ClimateSchema(KNXPlatformSchema):
46
46
  CONF_SETPOINT_SHIFT_ADDRESS: str
47
47
  CONF_SETPOINT_SHIFT_STATE_ADDRESS: str
48
48
  CONF_SETPOINT_SHIFT_MODE: str
49
- CONF_SETPOINT_SHIFT_MAX: str
50
- CONF_SETPOINT_SHIFT_MIN: str
51
49
  CONF_TEMPERATURE_ADDRESS: str
52
- CONF_TEMPERATURE_STEP: str
53
50
  CONF_TARGET_TEMPERATURE_ADDRESS: str
54
51
  CONF_TARGET_TEMPERATURE_STATE_ADDRESS: str
55
52
  CONF_OPERATION_MODE_ADDRESS: str
@@ -65,19 +62,10 @@ class ClimateSchema(KNXPlatformSchema):
65
62
  CONF_OPERATION_MODE_NIGHT_ADDRESS: str
66
63
  CONF_OPERATION_MODE_COMFORT_ADDRESS: str
67
64
  CONF_OPERATION_MODE_STANDBY_ADDRESS: str
68
- CONF_OPERATION_MODES: str
69
- CONF_CONTROLLER_MODES: str
70
- CONF_DEFAULT_CONTROLLER_MODE: str
71
65
  CONF_ON_OFF_ADDRESS: str
72
66
  CONF_ON_OFF_STATE_ADDRESS: str
73
- CONF_ON_OFF_INVERT: str
74
- CONF_MIN_TEMP: str
75
- CONF_MAX_TEMP: str
76
67
  CONF_FAN_SPEED_ADDRESS: str
77
68
  CONF_FAN_SPEED_STATE_ADDRESS: str
78
- CONF_FAN_MAX_STEP: str
79
- CONF_FAN_SPEED_MODE: str
80
- CONF_FAN_ZERO_MODE: str
81
69
  CONF_HUMIDITY_STATE_ADDRESS: str
82
70
  CONF_SWING_ADDRESS: str
83
71
  CONF_SWING_STATE_ADDRESS: str
@@ -7,16 +7,15 @@ from collections.abc import Callable as Callable
7
7
  from dataclasses import dataclass
8
8
  from datetime import datetime
9
9
  from homeassistant import config_entries as config_entries
10
- from homeassistant.components.sensor import CONF_STATE_CLASS as CONF_STATE_CLASS, SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
11
- from homeassistant.const import CONF_DEVICE_CLASS as CONF_DEVICE_CLASS, CONF_ENTITY_CATEGORY as CONF_ENTITY_CATEGORY, CONF_NAME as CONF_NAME, CONF_TYPE as CONF_TYPE, EntityCategory as EntityCategory, Platform as Platform
10
+ from homeassistant.components.sensor import CONF_STATE_CLASS as CONF_STATE_CLASS, RestoreSensor as RestoreSensor, SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
11
+ from homeassistant.const import CONF_DEVICE_CLASS as CONF_DEVICE_CLASS, CONF_ENTITY_CATEGORY as CONF_ENTITY_CATEGORY, CONF_NAME as CONF_NAME, CONF_TYPE as CONF_TYPE, EntityCategory as EntityCategory, Platform as Platform, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN
12
12
  from homeassistant.core import HomeAssistant as HomeAssistant
13
13
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
14
14
  from homeassistant.helpers.typing import ConfigType as ConfigType, StateType as StateType
15
15
  from homeassistant.util.enum import try_parse_enum as try_parse_enum
16
- from typing import Any
17
16
  from xknx import XKNX as XKNX
18
17
  from xknx.core.connection_state import XknxConnectionState
19
- from xknx.devices import Sensor as XknxSensor
18
+ from xknx.devices import Device as XknxDevice, Sensor as XknxSensor
20
19
 
21
20
  SCAN_INTERVAL: Incomplete
22
21
 
@@ -33,7 +32,7 @@ SYSTEM_ENTITY_DESCRIPTIONS: Incomplete
33
32
  async def async_setup_entry(hass: HomeAssistant, config_entry: config_entries.ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
34
33
  def _create_sensor(xknx: XKNX, config: ConfigType) -> XknxSensor: ...
35
34
 
36
- class KNXSensor(KnxYamlEntity, SensorEntity):
35
+ class KNXSensor(KnxYamlEntity, RestoreSensor):
37
36
  _device: XknxSensor
38
37
  _attr_device_class: Incomplete
39
38
  _attr_force_update: Incomplete
@@ -41,11 +40,11 @@ class KNXSensor(KnxYamlEntity, SensorEntity):
41
40
  _attr_unique_id: Incomplete
42
41
  _attr_native_unit_of_measurement: Incomplete
43
42
  _attr_state_class: Incomplete
43
+ _attr_extra_state_attributes: Incomplete
44
44
  def __init__(self, knx_module: KNXModule, config: ConfigType) -> None: ...
45
- @property
46
- def native_value(self) -> StateType: ...
47
- @property
48
- def extra_state_attributes(self) -> dict[str, Any] | None: ...
45
+ _attr_native_value: Incomplete
46
+ async def async_added_to_hass(self) -> None: ...
47
+ def after_update_callback(self, device: XknxDevice) -> None: ...
49
48
 
50
49
  class KNXSystemSensor(SensorEntity):
51
50
  _attr_has_entity_name: bool
@@ -9,6 +9,26 @@ CONF_GA_PASSIVE: Final[str]
9
9
  CONF_DPT: Final[str]
10
10
  CONF_GA_SENSOR: Final[str]
11
11
  CONF_GA_SWITCH: Final[str]
12
+ CONF_GA_TEMPERATURE_CURRENT: Final[str]
13
+ CONF_GA_HUMIDITY_CURRENT: Final[str]
14
+ CONF_TARGET_TEMPERATURE: Final[str]
15
+ CONF_GA_TEMPERATURE_TARGET: Final[str]
16
+ CONF_GA_SETPOINT_SHIFT: Final[str]
17
+ CONF_GA_ACTIVE: Final[str]
18
+ CONF_GA_VALVE: Final[str]
19
+ CONF_GA_OPERATION_MODE: Final[str]
20
+ CONF_IGNORE_AUTO_MODE: Final[str]
21
+ CONF_GA_OP_MODE_COMFORT: Final[str]
22
+ CONF_GA_OP_MODE_ECO: Final[str]
23
+ CONF_GA_OP_MODE_STANDBY: Final[str]
24
+ CONF_GA_OP_MODE_PROTECTION: Final[str]
25
+ CONF_GA_HEAT_COOL: Final[str]
26
+ CONF_GA_ON_OFF: Final[str]
27
+ CONF_GA_CONTROLLER_MODE: Final[str]
28
+ CONF_GA_CONTROLLER_STATUS: Final[str]
29
+ CONF_GA_FAN_SPEED: Final[str]
30
+ CONF_GA_FAN_SWING: Final[str]
31
+ CONF_GA_FAN_SWING_HORIZONTAL: Final[str]
12
32
  CONF_GA_UP_DOWN: Final[str]
13
33
  CONF_GA_STOP: Final[str]
14
34
  CONF_GA_STEP: Final[str]
@@ -1,8 +1,9 @@
1
- from ..const import CONF_CONTEXT_TIMEOUT as CONF_CONTEXT_TIMEOUT, CONF_IGNORE_INTERNAL_STATE as CONF_IGNORE_INTERNAL_STATE, CONF_INVERT as CONF_INVERT, CONF_RESET_AFTER as CONF_RESET_AFTER, CONF_RESPOND_TO_READ as CONF_RESPOND_TO_READ, CONF_SYNC_STATE as CONF_SYNC_STATE, ColorTempModes as ColorTempModes, CoverConf as CoverConf, DOMAIN as DOMAIN, SUPPORTED_PLATFORMS_UI as SUPPORTED_PLATFORMS_UI
2
- from .const import CONF_COLOR as CONF_COLOR, CONF_COLOR_TEMP_MAX as CONF_COLOR_TEMP_MAX, CONF_COLOR_TEMP_MIN as CONF_COLOR_TEMP_MIN, CONF_DATA as CONF_DATA, CONF_DEVICE_INFO as CONF_DEVICE_INFO, CONF_ENTITY as CONF_ENTITY, CONF_GA_ANGLE as CONF_GA_ANGLE, CONF_GA_BLUE_BRIGHTNESS as CONF_GA_BLUE_BRIGHTNESS, CONF_GA_BLUE_SWITCH as CONF_GA_BLUE_SWITCH, CONF_GA_BRIGHTNESS as CONF_GA_BRIGHTNESS, CONF_GA_COLOR as CONF_GA_COLOR, CONF_GA_COLOR_TEMP as CONF_GA_COLOR_TEMP, CONF_GA_GREEN_BRIGHTNESS as CONF_GA_GREEN_BRIGHTNESS, CONF_GA_GREEN_SWITCH as CONF_GA_GREEN_SWITCH, CONF_GA_HUE as CONF_GA_HUE, CONF_GA_POSITION_SET as CONF_GA_POSITION_SET, CONF_GA_POSITION_STATE as CONF_GA_POSITION_STATE, CONF_GA_RED_BRIGHTNESS as CONF_GA_RED_BRIGHTNESS, CONF_GA_RED_SWITCH as CONF_GA_RED_SWITCH, CONF_GA_SATURATION as CONF_GA_SATURATION, CONF_GA_SENSOR as CONF_GA_SENSOR, CONF_GA_STEP as CONF_GA_STEP, CONF_GA_STOP as CONF_GA_STOP, CONF_GA_SWITCH as CONF_GA_SWITCH, CONF_GA_UP_DOWN as CONF_GA_UP_DOWN, CONF_GA_WHITE_BRIGHTNESS as CONF_GA_WHITE_BRIGHTNESS, CONF_GA_WHITE_SWITCH as CONF_GA_WHITE_SWITCH
1
+ from ..const import CONF_CONTEXT_TIMEOUT as CONF_CONTEXT_TIMEOUT, CONF_IGNORE_INTERNAL_STATE as CONF_IGNORE_INTERNAL_STATE, CONF_INVERT as CONF_INVERT, CONF_RESET_AFTER as CONF_RESET_AFTER, CONF_RESPOND_TO_READ as CONF_RESPOND_TO_READ, CONF_SYNC_STATE as CONF_SYNC_STATE, ClimateConf as ClimateConf, ColorTempModes as ColorTempModes, CoverConf as CoverConf, DOMAIN as DOMAIN, FanZeroMode as FanZeroMode, SUPPORTED_PLATFORMS_UI as SUPPORTED_PLATFORMS_UI
2
+ from .const import CONF_COLOR as CONF_COLOR, CONF_COLOR_TEMP_MAX as CONF_COLOR_TEMP_MAX, CONF_COLOR_TEMP_MIN as CONF_COLOR_TEMP_MIN, CONF_DATA as CONF_DATA, CONF_DEVICE_INFO as CONF_DEVICE_INFO, CONF_ENTITY as CONF_ENTITY, CONF_GA_ACTIVE as CONF_GA_ACTIVE, CONF_GA_ANGLE as CONF_GA_ANGLE, CONF_GA_BLUE_BRIGHTNESS as CONF_GA_BLUE_BRIGHTNESS, CONF_GA_BLUE_SWITCH as CONF_GA_BLUE_SWITCH, CONF_GA_BRIGHTNESS as CONF_GA_BRIGHTNESS, CONF_GA_COLOR as CONF_GA_COLOR, CONF_GA_COLOR_TEMP as CONF_GA_COLOR_TEMP, CONF_GA_CONTROLLER_MODE as CONF_GA_CONTROLLER_MODE, CONF_GA_CONTROLLER_STATUS as CONF_GA_CONTROLLER_STATUS, CONF_GA_FAN_SPEED as CONF_GA_FAN_SPEED, CONF_GA_FAN_SWING as CONF_GA_FAN_SWING, CONF_GA_FAN_SWING_HORIZONTAL as CONF_GA_FAN_SWING_HORIZONTAL, CONF_GA_GREEN_BRIGHTNESS as CONF_GA_GREEN_BRIGHTNESS, CONF_GA_GREEN_SWITCH as CONF_GA_GREEN_SWITCH, CONF_GA_HEAT_COOL as CONF_GA_HEAT_COOL, CONF_GA_HUE as CONF_GA_HUE, CONF_GA_HUMIDITY_CURRENT as CONF_GA_HUMIDITY_CURRENT, CONF_GA_ON_OFF as CONF_GA_ON_OFF, CONF_GA_OPERATION_MODE as CONF_GA_OPERATION_MODE, CONF_GA_OP_MODE_COMFORT as CONF_GA_OP_MODE_COMFORT, CONF_GA_OP_MODE_ECO as CONF_GA_OP_MODE_ECO, CONF_GA_OP_MODE_PROTECTION as CONF_GA_OP_MODE_PROTECTION, CONF_GA_OP_MODE_STANDBY as CONF_GA_OP_MODE_STANDBY, CONF_GA_POSITION_SET as CONF_GA_POSITION_SET, CONF_GA_POSITION_STATE as CONF_GA_POSITION_STATE, CONF_GA_RED_BRIGHTNESS as CONF_GA_RED_BRIGHTNESS, CONF_GA_RED_SWITCH as CONF_GA_RED_SWITCH, CONF_GA_SATURATION as CONF_GA_SATURATION, CONF_GA_SENSOR as CONF_GA_SENSOR, CONF_GA_SETPOINT_SHIFT as CONF_GA_SETPOINT_SHIFT, CONF_GA_STEP as CONF_GA_STEP, CONF_GA_STOP as CONF_GA_STOP, CONF_GA_SWITCH as CONF_GA_SWITCH, CONF_GA_TEMPERATURE_CURRENT as CONF_GA_TEMPERATURE_CURRENT, CONF_GA_TEMPERATURE_TARGET as CONF_GA_TEMPERATURE_TARGET, CONF_GA_UP_DOWN as CONF_GA_UP_DOWN, CONF_GA_VALVE as CONF_GA_VALVE, CONF_GA_WHITE_BRIGHTNESS as CONF_GA_WHITE_BRIGHTNESS, CONF_GA_WHITE_SWITCH as CONF_GA_WHITE_SWITCH, CONF_IGNORE_AUTO_MODE as CONF_IGNORE_AUTO_MODE, CONF_TARGET_TEMPERATURE as CONF_TARGET_TEMPERATURE
3
3
  from .knx_selector import AllSerializeFirst as AllSerializeFirst, GASelector as GASelector, GroupSelect as GroupSelect, GroupSelectOption as GroupSelectOption, KNXSectionFlat as KNXSectionFlat, SyncStateSelector as SyncStateSelector
4
4
  from _typeshed import Incomplete
5
5
  from enum import StrEnum
6
+ from homeassistant.components.climate import HVACMode as HVACMode
6
7
  from homeassistant.const import CONF_ENTITY_CATEGORY as CONF_ENTITY_CATEGORY, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_NAME as CONF_NAME, CONF_PLATFORM as CONF_PLATFORM, Platform as Platform
7
8
  from homeassistant.helpers import selector as selector
8
9
  from homeassistant.helpers.entity import ENTITY_CATEGORIES_SCHEMA as ENTITY_CATEGORIES_SCHEMA
@@ -20,6 +21,16 @@ class LightColorMode(StrEnum):
20
21
  _hs_color_inclusion_msg: str
21
22
  LIGHT_KNX_SCHEMA: Incomplete
22
23
  SWITCH_KNX_SCHEMA: Incomplete
24
+
25
+ class ConfSetpointShiftMode(StrEnum):
26
+ COUNT = '6.010'
27
+ FLOAT = '9.002'
28
+
29
+ class ConfClimateFanSpeedMode(StrEnum):
30
+ PERCENTAGE = '5.001'
31
+ STEPS = '5.010'
32
+
33
+ CLIMATE_KNX_SCHEMA: Incomplete
23
34
  KNX_SCHEMA_FOR_PLATFORM: Incomplete
24
35
  ENTITY_STORE_DATA_SCHEMA: VolSchemaType
25
36
  CREATE_ENTITY_BASE_SCHEMA: VolDictType
@@ -1,9 +1,12 @@
1
+ from .const import DOMAIN as DOMAIN
1
2
  from .coordinator import LibreHardwareMonitorConfigEntry as LibreHardwareMonitorConfigEntry, LibreHardwareMonitorCoordinator as LibreHardwareMonitorCoordinator
2
3
  from _typeshed import Incomplete
3
4
  from homeassistant.const import Platform as Platform
4
5
  from homeassistant.core import HomeAssistant as HomeAssistant
5
6
 
6
7
  PLATFORMS: Incomplete
8
+ _LOGGER: Incomplete
7
9
 
10
+ async def async_migrate_entry(hass: HomeAssistant, config_entry: LibreHardwareMonitorConfigEntry) -> bool: ...
8
11
  async def async_setup_entry(hass: HomeAssistant, config_entry: LibreHardwareMonitorConfigEntry) -> bool: ...
9
12
  async def async_unload_entry(hass: HomeAssistant, config_entry: LibreHardwareMonitorConfigEntry) -> bool: ...
@@ -1,6 +1,5 @@
1
- from . import LibreHardwareMonitorCoordinator as LibreHardwareMonitorCoordinator
1
+ from . import LibreHardwareMonitorConfigEntry as LibreHardwareMonitorConfigEntry, LibreHardwareMonitorCoordinator as LibreHardwareMonitorCoordinator
2
2
  from .const import DOMAIN as DOMAIN
3
- from .coordinator import LibreHardwareMonitorConfigEntry as LibreHardwareMonitorConfigEntry
4
3
  from _typeshed import Incomplete
5
4
  from homeassistant.components.sensor import SensorEntity as SensorEntity, SensorStateClass as SensorStateClass
6
5
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
@@ -8,6 +7,7 @@ from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
8
7
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
9
8
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
10
9
  from librehardwaremonitor_api.model import LibreHardwareMonitorSensorData as LibreHardwareMonitorSensorData
10
+ from typing import Any
11
11
 
12
12
  PARALLEL_UPDATES: int
13
13
  STATE_MIN_VALUE: str
@@ -19,16 +19,12 @@ class LibreHardwareMonitorSensor(CoordinatorEntity[LibreHardwareMonitorCoordinat
19
19
  _attr_state_class: Incomplete
20
20
  _attr_has_entity_name: bool
21
21
  _attr_name: str
22
- value: str | None
23
- _attr_extra_state_attributes: dict[str, str]
22
+ _attr_native_value: str | None
23
+ _attr_extra_state_attributes: dict[str, Any]
24
24
  _attr_native_unit_of_measurement: Incomplete
25
25
  _attr_unique_id: str
26
26
  _sensor_id: str
27
27
  _attr_device_info: Incomplete
28
- def __init__(self, coordinator: LibreHardwareMonitorCoordinator, sensor_data: LibreHardwareMonitorSensorData) -> None: ...
28
+ def __init__(self, coordinator: LibreHardwareMonitorCoordinator, entry_id: str, sensor_data: LibreHardwareMonitorSensorData) -> None: ...
29
29
  @callback
30
30
  def _handle_coordinator_update(self) -> None: ...
31
- @property
32
- def native_value(self) -> str | None: ...
33
- @staticmethod
34
- def _format_number_value(number_str: str) -> str: ...
@@ -10,10 +10,12 @@ from typing import Any
10
10
 
11
11
  SCAN_INTERVAL: Incomplete
12
12
  FIRMWARE_UPDATE_ENTITY: Incomplete
13
+ RELEASE_URL: str
13
14
 
14
15
  async def async_setup_entry(hass: HomeAssistant, entry: LitterRobotConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
15
16
 
16
17
  class RobotUpdateEntity(LitterRobotEntity[LitterRobot4], UpdateEntity):
18
+ _attr_release_url = RELEASE_URL
17
19
  _attr_supported_features: Incomplete
18
20
  @property
19
21
  def installed_version(self) -> str: ...
@@ -3,10 +3,9 @@ from .const import DOMAIN as DOMAIN, LockState as LockState
3
3
  from _typeshed import Incomplete
4
4
  from enum import IntFlag
5
5
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
- from homeassistant.const import ATTR_CODE as ATTR_CODE, ATTR_CODE_FORMAT as ATTR_CODE_FORMAT, SERVICE_LOCK as SERVICE_LOCK, SERVICE_OPEN as SERVICE_OPEN, SERVICE_UNLOCK as SERVICE_UNLOCK, STATE_OPEN as STATE_OPEN, STATE_OPENING as STATE_OPENING, _DEPRECATED_STATE_JAMMED as _DEPRECATED_STATE_JAMMED, _DEPRECATED_STATE_LOCKED as _DEPRECATED_STATE_LOCKED, _DEPRECATED_STATE_LOCKING as _DEPRECATED_STATE_LOCKING, _DEPRECATED_STATE_UNLOCKED as _DEPRECATED_STATE_UNLOCKED, _DEPRECATED_STATE_UNLOCKING as _DEPRECATED_STATE_UNLOCKING
6
+ from homeassistant.const import ATTR_CODE as ATTR_CODE, ATTR_CODE_FORMAT as ATTR_CODE_FORMAT, SERVICE_LOCK as SERVICE_LOCK, SERVICE_OPEN as SERVICE_OPEN, SERVICE_UNLOCK as SERVICE_UNLOCK
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
8
8
  from homeassistant.exceptions import ServiceValidationError as ServiceValidationError
9
- from homeassistant.helpers.deprecation import all_with_deprecated_constants as all_with_deprecated_constants, check_if_deprecated_constant as check_if_deprecated_constant, dir_with_deprecated_constants as dir_with_deprecated_constants
10
9
  from homeassistant.helpers.entity import Entity as Entity, EntityDescription as EntityDescription
11
10
  from homeassistant.helpers.entity_component import EntityComponent as EntityComponent
12
11
  from homeassistant.helpers.typing import ConfigType as ConfigType, StateType as StateType
@@ -99,7 +98,3 @@ class LockEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_):
99
98
  def async_registry_entry_updated(self) -> None: ...
100
99
  @callback
101
100
  def _async_read_entity_options(self) -> None: ...
102
-
103
- __getattr__: Incomplete
104
- __dir__: Incomplete
105
- __all__: Incomplete