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

Potentially problematic release.


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

Files changed (453) 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 +2 -3
  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/min_max/__init__.pyi +0 -1
  207. homeassistant-stubs/components/min_max/config_flow.pyi +1 -0
  208. homeassistant-stubs/components/mold_indicator/__init__.pyi +0 -1
  209. homeassistant-stubs/components/mold_indicator/config_flow.pyi +1 -0
  210. homeassistant-stubs/components/mqtt/__init__.pyi +1 -4
  211. homeassistant-stubs/components/mqtt/config_flow.pyi +23 -4
  212. homeassistant-stubs/components/mqtt/const.pyi +7 -1
  213. homeassistant-stubs/components/mqtt/number.pyi +1 -5
  214. homeassistant-stubs/components/mqtt/siren.pyi +1 -9
  215. homeassistant-stubs/components/music_assistant/const.pyi +4 -0
  216. homeassistant-stubs/components/music_assistant/media_player.pyi +1 -1
  217. homeassistant-stubs/components/music_assistant/schemas.pyi +2 -2
  218. homeassistant-stubs/components/nasweb/sensor.pyi +0 -5
  219. homeassistant-stubs/components/nasweb/switch.pyi +1 -0
  220. homeassistant-stubs/components/nextdns/config_flow.pyi +6 -1
  221. homeassistant-stubs/components/number/const.pyi +2 -1
  222. homeassistant-stubs/components/onedrive/backup.pyi +2 -1
  223. homeassistant-stubs/components/onewire/binary_sensor.pyi +5 -12
  224. homeassistant-stubs/components/onewire/const.pyi +0 -2
  225. homeassistant-stubs/components/onewire/diagnostics.pyi +2 -0
  226. homeassistant-stubs/components/onewire/entity.pyi +6 -14
  227. homeassistant-stubs/components/onewire/onewirehub.pyi +5 -5
  228. homeassistant-stubs/components/onewire/select.pyi +3 -10
  229. homeassistant-stubs/components/onewire/sensor.pyi +5 -7
  230. homeassistant-stubs/components/onewire/switch.pyi +7 -14
  231. homeassistant-stubs/components/onkyo/receiver.pyi +1 -1
  232. homeassistant-stubs/components/open_router/entity.pyi +4 -1
  233. homeassistant-stubs/components/openai_conversation/ai_task.pyi +1 -1
  234. homeassistant-stubs/components/openai_conversation/config_flow.pyi +1 -1
  235. homeassistant-stubs/components/openai_conversation/const.pyi +2 -0
  236. homeassistant-stubs/components/openai_conversation/entity.pyi +1 -1
  237. homeassistant-stubs/components/opower/coordinator.pyi +1 -0
  238. homeassistant-stubs/components/ping/__init__.pyi +1 -0
  239. homeassistant-stubs/components/ping/config_flow.pyi +1 -0
  240. homeassistant-stubs/components/ping/device_tracker.pyi +3 -2
  241. homeassistant-stubs/components/ping/entity.pyi +1 -0
  242. homeassistant-stubs/components/portainer/button.pyi +29 -0
  243. homeassistant-stubs/components/portainer/config_flow.pyi +4 -0
  244. homeassistant-stubs/components/portainer/const.pyi +1 -0
  245. homeassistant-stubs/components/portainer/coordinator.pyi +11 -2
  246. homeassistant-stubs/components/portainer/diagnostics.pyi +12 -0
  247. homeassistant-stubs/components/portainer/entity.pyi +2 -0
  248. homeassistant-stubs/components/portainer/sensor.pyi +41 -0
  249. homeassistant-stubs/components/portainer/switch.pyi +35 -0
  250. homeassistant-stubs/components/qbus/entity.pyi +1 -3
  251. homeassistant-stubs/components/raspberry_pi/hardware.pyi +1 -1
  252. homeassistant-stubs/components/recorder/const.pyi +1 -1
  253. homeassistant-stubs/components/recorder/core.pyi +3 -3
  254. homeassistant-stubs/components/recorder/db_schema.pyi +3 -10
  255. homeassistant-stubs/components/recorder/entity_registry.pyi +1 -0
  256. homeassistant-stubs/components/recorder/history/__init__.pyi +2 -2
  257. homeassistant-stubs/components/recorder/migration.pyi +4 -1
  258. homeassistant-stubs/components/recorder/models/statistics.pyi +1 -0
  259. homeassistant-stubs/components/recorder/statistics.pyi +17 -12
  260. homeassistant-stubs/components/recorder/table_managers/states_meta.pyi +0 -1
  261. homeassistant-stubs/components/recorder/table_managers/statistics_meta.pyi +4 -2
  262. homeassistant-stubs/components/recorder/tasks.pyi +1 -0
  263. homeassistant-stubs/components/recorder/util.pyi +1 -1
  264. homeassistant-stubs/components/recorder/websocket_api.pyi +6 -4
  265. homeassistant-stubs/components/renault/sensor.pyi +1 -1
  266. homeassistant-stubs/components/reolink/__init__.pyi +1 -1
  267. homeassistant-stubs/components/reolink/binary_sensor.pyi +15 -0
  268. homeassistant-stubs/components/reolink/siren.pyi +2 -0
  269. homeassistant-stubs/components/reolink/switch.pyi +25 -7
  270. homeassistant-stubs/components/roborock/__init__.pyi +1 -1
  271. homeassistant-stubs/components/roborock/config_flow.pyi +1 -1
  272. homeassistant-stubs/components/roborock/coordinator.pyi +2 -1
  273. homeassistant-stubs/components/roborock/entity.pyi +1 -1
  274. homeassistant-stubs/components/roborock/models.pyi +1 -1
  275. homeassistant-stubs/components/scrape/coordinator.pyi +1 -2
  276. homeassistant-stubs/components/sensibo/__init__.pyi +6 -0
  277. homeassistant-stubs/components/sensibo/climate.pyi +3 -26
  278. homeassistant-stubs/components/sensibo/services.pyi +31 -0
  279. homeassistant-stubs/components/sensor/const.pyi +2 -1
  280. homeassistant-stubs/components/sensor/device_condition.pyi +1 -0
  281. homeassistant-stubs/components/sensor/device_trigger.pyi +1 -0
  282. homeassistant-stubs/components/sensor/recorder.pyi +6 -3
  283. homeassistant-stubs/components/sfr_box/__init__.pyi +4 -6
  284. homeassistant-stubs/components/sfr_box/binary_sensor.pyi +5 -14
  285. homeassistant-stubs/components/sfr_box/button.pyi +4 -9
  286. homeassistant-stubs/components/sfr_box/config_flow.pyi +2 -1
  287. homeassistant-stubs/components/sfr_box/coordinator.pyi +13 -2
  288. homeassistant-stubs/components/sfr_box/diagnostics.pyi +2 -4
  289. homeassistant-stubs/components/sfr_box/entity.pyi +18 -0
  290. homeassistant-stubs/components/sfr_box/sensor.pyi +4 -13
  291. homeassistant-stubs/components/shelly/__init__.pyi +2 -2
  292. homeassistant-stubs/components/shelly/binary_sensor.pyi +6 -2
  293. homeassistant-stubs/components/shelly/button.pyi +26 -16
  294. homeassistant-stubs/components/shelly/climate.pyi +61 -7
  295. homeassistant-stubs/components/shelly/const.pyi +15 -3
  296. homeassistant-stubs/components/shelly/cover.pyi +31 -10
  297. homeassistant-stubs/components/shelly/entity.pyi +5 -4
  298. homeassistant-stubs/components/shelly/event.pyi +4 -0
  299. homeassistant-stubs/components/shelly/light.pyi +23 -7
  300. homeassistant-stubs/components/shelly/number.pyi +11 -2
  301. homeassistant-stubs/components/shelly/repairs.pyi +2 -2
  302. homeassistant-stubs/components/shelly/select.pyi +4 -1
  303. homeassistant-stubs/components/shelly/sensor.pyi +8 -7
  304. homeassistant-stubs/components/shelly/switch.pyi +7 -4
  305. homeassistant-stubs/components/shelly/text.pyi +4 -1
  306. homeassistant-stubs/components/shelly/update.pyi +4 -0
  307. homeassistant-stubs/components/shelly/utils.pyi +10 -5
  308. homeassistant-stubs/components/shelly/valve.pyi +34 -5
  309. homeassistant-stubs/components/sleep_as_android/event.pyi +1 -0
  310. homeassistant-stubs/components/sma/__init__.pyi +15 -0
  311. homeassistant-stubs/components/sma/config_flow.pyi +27 -0
  312. homeassistant-stubs/components/sma/const.pyi +11 -0
  313. homeassistant-stubs/components/sma/coordinator.pyi +28 -0
  314. homeassistant-stubs/components/sma/diagnostics.pyi +10 -0
  315. homeassistant-stubs/components/sma/sensor.pyi +33 -0
  316. homeassistant-stubs/components/sql/__init__.pyi +2 -4
  317. homeassistant-stubs/components/sql/sensor.pyi +6 -13
  318. homeassistant-stubs/components/sql/services.pyi +17 -0
  319. homeassistant-stubs/components/sql/util.pyi +16 -3
  320. homeassistant-stubs/components/squeezebox/__init__.pyi +4 -1
  321. homeassistant-stubs/components/squeezebox/browse_media.pyi +4 -3
  322. homeassistant-stubs/components/squeezebox/button.pyi +1 -0
  323. homeassistant-stubs/components/squeezebox/const.pyi +0 -1
  324. homeassistant-stubs/components/squeezebox/media_player.pyi +7 -2
  325. homeassistant-stubs/components/squeezebox/switch.pyi +1 -0
  326. homeassistant-stubs/components/squeezebox/util.pyi +6 -0
  327. homeassistant-stubs/components/suez_water/coordinator.pyi +2 -1
  328. homeassistant-stubs/components/sun/condition.pyi +10 -5
  329. homeassistant-stubs/components/switch_as_x/__init__.pyi +0 -1
  330. homeassistant-stubs/components/switch_as_x/config_flow.pyi +1 -0
  331. homeassistant-stubs/components/switchbot_cloud/climate.pyi +2 -0
  332. homeassistant-stubs/components/switchbot_cloud/lock.pyi +7 -2
  333. homeassistant-stubs/components/switchbot_cloud/sensor.pyi +25 -2
  334. homeassistant-stubs/components/switchbot_cloud/switch.pyi +13 -1
  335. homeassistant-stubs/components/switchbot_cloud/vacuum.pyi +4 -4
  336. homeassistant-stubs/components/switcher_kis/button.pyi +5 -6
  337. homeassistant-stubs/components/switcher_kis/climate.pyi +3 -3
  338. homeassistant-stubs/components/switcher_kis/const.pyi +1 -0
  339. homeassistant-stubs/components/switcher_kis/cover.pyi +4 -3
  340. homeassistant-stubs/components/switcher_kis/light.pyi +3 -2
  341. homeassistant-stubs/components/switcher_kis/sensor.pyi +4 -2
  342. homeassistant-stubs/components/switcher_kis/switch.pyi +3 -5
  343. homeassistant-stubs/components/systemmonitor/__init__.pyi +0 -1
  344. homeassistant-stubs/components/systemmonitor/config_flow.pyi +1 -0
  345. homeassistant-stubs/components/systemmonitor/coordinator.pyi +1 -0
  346. homeassistant-stubs/components/systemmonitor/sensor.pyi +3 -1
  347. homeassistant-stubs/components/telegram_bot/__init__.pyi +2 -1
  348. homeassistant-stubs/components/telegram_bot/bot.pyi +10 -5
  349. homeassistant-stubs/components/telegram_bot/const.pyi +9 -0
  350. homeassistant-stubs/components/telegram_bot/diagnostics.pyi +11 -0
  351. homeassistant-stubs/components/telegram_bot/entity.pyi +16 -0
  352. homeassistant-stubs/components/telegram_bot/event.pyi +18 -0
  353. homeassistant-stubs/components/telegram_bot/notify.pyi +6 -10
  354. homeassistant-stubs/components/tibber/coordinator.pyi +1 -0
  355. homeassistant-stubs/components/tod/__init__.pyi +0 -1
  356. homeassistant-stubs/components/tod/config_flow.pyi +1 -0
  357. homeassistant-stubs/components/tolo/__init__.pyi +3 -5
  358. homeassistant-stubs/components/tolo/binary_sensor.pyi +4 -6
  359. homeassistant-stubs/components/tolo/button.pyi +3 -5
  360. homeassistant-stubs/components/tolo/climate.pyi +3 -5
  361. homeassistant-stubs/components/tolo/coordinator.pyi +3 -2
  362. homeassistant-stubs/components/tolo/entity.pyi +2 -3
  363. homeassistant-stubs/components/tolo/fan.pyi +3 -5
  364. homeassistant-stubs/components/tolo/light.pyi +3 -5
  365. homeassistant-stubs/components/tolo/number.pyi +3 -5
  366. homeassistant-stubs/components/tolo/select.pyi +4 -5
  367. homeassistant-stubs/components/tolo/sensor.pyi +3 -5
  368. homeassistant-stubs/components/tolo/switch.pyi +3 -5
  369. homeassistant-stubs/components/trend/__init__.pyi +0 -1
  370. homeassistant-stubs/components/trend/config_flow.pyi +1 -0
  371. homeassistant-stubs/components/tts/__init__.pyi +2 -3
  372. homeassistant-stubs/components/unifi/light.pyi +44 -0
  373. homeassistant-stubs/components/uptimerobot/binary_sensor.pyi +2 -0
  374. homeassistant-stubs/components/uptimerobot/sensor.pyi +2 -0
  375. homeassistant-stubs/components/uptimerobot/switch.pyi +2 -0
  376. homeassistant-stubs/components/uptimerobot/utils.pyi +5 -0
  377. homeassistant-stubs/components/usb/__init__.pyi +2 -0
  378. homeassistant-stubs/components/usb/utils.pyi +7 -0
  379. homeassistant-stubs/components/vacuum/__init__.pyi +0 -15
  380. homeassistant-stubs/components/vivotek/__init__.pyi +0 -0
  381. homeassistant-stubs/components/vivotek/camera.pyi +35 -0
  382. homeassistant-stubs/components/vodafone_station/__init__.pyi +3 -1
  383. homeassistant-stubs/components/vodafone_station/config_flow.pyi +3 -2
  384. homeassistant-stubs/components/vodafone_station/const.pyi +3 -0
  385. homeassistant-stubs/components/vodafone_station/coordinator.pyi +4 -4
  386. homeassistant-stubs/components/volvo/__init__.pyi +2 -0
  387. homeassistant-stubs/components/volvo/binary_sensor.pyi +1 -3
  388. homeassistant-stubs/components/volvo/button.pyi +27 -0
  389. homeassistant-stubs/components/volvo/coordinator.pyi +12 -14
  390. homeassistant-stubs/components/volvo/device_tracker.pyi +23 -0
  391. homeassistant-stubs/components/volvo/diagnostics.pyi +12 -0
  392. homeassistant-stubs/components/volvo/entity.pyi +9 -5
  393. homeassistant-stubs/components/volvo/sensor.pyi +9 -8
  394. homeassistant-stubs/components/waqi/__init__.pyi +8 -0
  395. homeassistant-stubs/components/waqi/config_flow.pyi +14 -9
  396. homeassistant-stubs/components/waqi/const.pyi +1 -1
  397. homeassistant-stubs/components/waqi/coordinator.pyi +5 -4
  398. homeassistant-stubs/components/webostv/media_player.pyi +3 -0
  399. homeassistant-stubs/components/websocket_api/commands.pyi +2 -0
  400. homeassistant-stubs/components/wled/select.pyi +6 -3
  401. homeassistant-stubs/components/worldclock/__init__.pyi +0 -1
  402. homeassistant-stubs/components/worldclock/config_flow.pyi +1 -0
  403. homeassistant-stubs/components/zeroconf/__init__.pyi +3 -1
  404. homeassistant-stubs/components/zeroconf/discovery.pyi +8 -1
  405. homeassistant-stubs/components/zeroconf/repairs.pyi +13 -0
  406. homeassistant-stubs/components/zone/condition.pyi +10 -4
  407. homeassistant-stubs/components/zwave_js/config_flow.pyi +1 -0
  408. homeassistant-stubs/components/zwave_js/device_trigger.pyi +1 -1
  409. homeassistant-stubs/components/zwave_js/triggers/event.pyi +6 -8
  410. homeassistant-stubs/components/zwave_js/triggers/value_updated.pyi +6 -6
  411. homeassistant-stubs/config_entries.pyi +9 -0
  412. homeassistant-stubs/const.pyi +4 -21
  413. homeassistant-stubs/core.pyi +1 -7
  414. homeassistant-stubs/data_entry_flow.pyi +2 -0
  415. homeassistant-stubs/helpers/automation.pyi +6 -0
  416. homeassistant-stubs/helpers/condition.pyi +15 -5
  417. homeassistant-stubs/helpers/debounce.pyi +6 -1
  418. homeassistant-stubs/helpers/entity_platform.pyi +1 -1
  419. homeassistant-stubs/helpers/event.pyi +1 -1
  420. homeassistant-stubs/helpers/instance_id.pyi +1 -0
  421. homeassistant-stubs/helpers/llm.pyi +6 -1
  422. homeassistant-stubs/helpers/selector.pyi +5 -4
  423. homeassistant-stubs/helpers/service.pyi +4 -4
  424. homeassistant-stubs/helpers/template/__init__.pyi +0 -5
  425. homeassistant-stubs/helpers/trigger.pyi +18 -5
  426. homeassistant-stubs/helpers/update_coordinator.pyi +1 -0
  427. homeassistant-stubs/runner.pyi +1 -1
  428. homeassistant-stubs/util/async_iterator.pyi +33 -0
  429. homeassistant-stubs/util/unit_conversion.pyi +15 -0
  430. {homeassistant_stubs-2025.10.4.dist-info → homeassistant_stubs-2025.11.0b0.dist-info}/METADATA +2 -2
  431. {homeassistant_stubs-2025.10.4.dist-info → homeassistant_stubs-2025.11.0b0.dist-info}/RECORD +433 -397
  432. homeassistant-stubs/components/elevenlabs/__init__.pyi +0 -22
  433. homeassistant-stubs/components/elevenlabs/config_flow.pyi +0 -33
  434. homeassistant-stubs/components/elevenlabs/const.pyi +0 -14
  435. homeassistant-stubs/components/elevenlabs/tts.pyi +0 -36
  436. homeassistant-stubs/components/neato/__init__.pyi +0 -15
  437. homeassistant-stubs/components/neato/api.pyi +0 -17
  438. homeassistant-stubs/components/neato/application_credentials.pyi +0 -6
  439. homeassistant-stubs/components/neato/button.pyi +0 -18
  440. homeassistant-stubs/components/neato/camera.pyi +0 -34
  441. homeassistant-stubs/components/neato/config_flow.pyi +0 -15
  442. homeassistant-stubs/components/neato/const.pyi +0 -13
  443. homeassistant-stubs/components/neato/entity.pyi +0 -11
  444. homeassistant-stubs/components/neato/hub.pyi +0 -17
  445. homeassistant-stubs/components/neato/sensor.pyi +0 -30
  446. homeassistant-stubs/components/neato/switch.pyi +0 -34
  447. homeassistant-stubs/components/neato/vacuum.pyi +0 -70
  448. homeassistant-stubs/components/recorder/history/legacy.pyi +0 -48
  449. homeassistant-stubs/components/recorder/history/modern.pyi +0 -39
  450. homeassistant-stubs/components/recorder/models/legacy.pyi +0 -45
  451. homeassistant-stubs/components/sfr_box/models.pyi +0 -12
  452. {homeassistant_stubs-2025.10.4.dist-info → homeassistant_stubs-2025.11.0b0.dist-info}/WHEEL +0 -0
  453. {homeassistant_stubs-2025.10.4.dist-info → homeassistant_stubs-2025.11.0b0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,22 @@
1
+ from .const import CONF_LINE as CONF_LINE, DEFAULT_LINES as DEFAULT_LINES, DOMAIN as DOMAIN, TUBE_LINES as TUBE_LINES
2
+ from _typeshed import Incomplete
3
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlowWithReload as OptionsFlowWithReload
4
+ from homeassistant.core import callback as callback
5
+ from homeassistant.helpers import selector as selector
6
+ from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
7
+ from homeassistant.helpers.typing import ConfigType as ConfigType
8
+ from typing import Any
9
+
10
+ _LOGGER: Incomplete
11
+
12
+ class LondonUndergroundConfigFlow(ConfigFlow, domain=DOMAIN):
13
+ VERSION: int
14
+ MINOR_VERSION: int
15
+ @staticmethod
16
+ @callback
17
+ def async_get_options_flow(_: ConfigEntry) -> LondonUndergroundOptionsFlow: ...
18
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
19
+ async def async_step_import(self, import_data: ConfigType) -> ConfigFlowResult: ...
20
+
21
+ class LondonUndergroundOptionsFlow(OptionsFlowWithReload):
22
+ async def async_step_init(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -4,3 +4,4 @@ DOMAIN: str
4
4
  CONF_LINE: str
5
5
  SCAN_INTERVAL: Incomplete
6
6
  TUBE_LINES: Incomplete
7
+ DEFAULT_LINES: Incomplete
@@ -1,12 +1,14 @@
1
1
  from .const import DOMAIN as DOMAIN, SCAN_INTERVAL as SCAN_INTERVAL
2
2
  from _typeshed import Incomplete
3
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
3
4
  from homeassistant.core import HomeAssistant as HomeAssistant
4
5
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator
5
6
  from london_tube_status import TubeData as TubeData
6
7
 
7
8
  _LOGGER: Incomplete
9
+ type LondonUndergroundConfigEntry = ConfigEntry[LondonTubeCoordinator]
8
10
 
9
11
  class LondonTubeCoordinator(DataUpdateCoordinator[dict[str, dict[str, str]]]):
10
12
  _data: Incomplete
11
- def __init__(self, hass: HomeAssistant, data: TubeData) -> None: ...
13
+ def __init__(self, hass: HomeAssistant, data: TubeData, config_entry: LondonUndergroundConfigEntry) -> None: ...
12
14
  async def _async_update_data(self) -> dict[str, dict[str, str]]: ...
@@ -1,11 +1,12 @@
1
- from .const import CONF_LINE as CONF_LINE, TUBE_LINES as TUBE_LINES
2
- from .coordinator import LondonTubeCoordinator as LondonTubeCoordinator
1
+ from .const import CONF_LINE as CONF_LINE, DOMAIN as DOMAIN, TUBE_LINES as TUBE_LINES
2
+ from .coordinator import LondonTubeCoordinator as LondonTubeCoordinator, LondonUndergroundConfigEntry as LondonUndergroundConfigEntry
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.components.sensor import SensorEntity as SensorEntity
5
+ from homeassistant.config_entries import SOURCE_IMPORT as SOURCE_IMPORT
5
6
  from homeassistant.core import HomeAssistant as HomeAssistant
6
- from homeassistant.exceptions import PlatformNotReady as PlatformNotReady
7
- from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
8
- from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
7
+ from homeassistant.data_entry_flow import FlowResultType as FlowResultType
8
+ from homeassistant.helpers.device_registry import DeviceEntryType as DeviceEntryType, DeviceInfo as DeviceInfo
9
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback, AddEntitiesCallback as AddEntitiesCallback
9
10
  from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
10
11
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
11
12
  from typing import Any
@@ -14,11 +15,15 @@ _LOGGER: Incomplete
14
15
  PLATFORM_SCHEMA: Incomplete
15
16
 
16
17
  async def async_setup_platform(hass: HomeAssistant, config: ConfigType, async_add_entities: AddEntitiesCallback, discovery_info: DiscoveryInfoType | None = None) -> None: ...
18
+ async def async_setup_entry(hass: HomeAssistant, entry: LondonUndergroundConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
17
19
 
18
20
  class LondonTubeSensor(CoordinatorEntity[LondonTubeCoordinator], SensorEntity):
19
21
  _attr_attribution: str
20
22
  _attr_icon: str
23
+ _attr_has_entity_name: bool
21
24
  _name: Incomplete
25
+ _attr_unique_id: Incomplete
26
+ _attr_device_info: Incomplete
22
27
  def __init__(self, coordinator: LondonTubeCoordinator, name: str) -> None: ...
23
28
  @property
24
29
  def name(self) -> str: ...
@@ -0,0 +1,12 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .coordinator import LunatoneConfigEntry as LunatoneConfigEntry, LunatoneData as LunatoneData, LunatoneDevicesDataUpdateCoordinator as LunatoneDevicesDataUpdateCoordinator, LunatoneInfoDataUpdateCoordinator as LunatoneInfoDataUpdateCoordinator
3
+ from homeassistant.const import CONF_URL as CONF_URL, Platform as Platform
4
+ from homeassistant.core import HomeAssistant as HomeAssistant
5
+ from homeassistant.exceptions import ConfigEntryError as ConfigEntryError
6
+ from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
7
+ from typing import Final
8
+
9
+ PLATFORMS: Final[list[Platform]]
10
+
11
+ async def async_setup_entry(hass: HomeAssistant, entry: LunatoneConfigEntry) -> bool: ...
12
+ async def async_unload_entry(hass: HomeAssistant, entry: LunatoneConfigEntry) -> bool: ...
@@ -0,0 +1,16 @@
1
+ import voluptuous as vol
2
+ from .const import DOMAIN as DOMAIN
3
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, SOURCE_RECONFIGURE as SOURCE_RECONFIGURE
4
+ from homeassistant.const import CONF_URL as CONF_URL
5
+ from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
6
+ from typing import Any, Final
7
+
8
+ DATA_SCHEMA: Final[vol.Schema]
9
+
10
+ def compose_title(name: str | None, serial_number: int) -> str: ...
11
+
12
+ class LunatoneConfigFlow(ConfigFlow, domain=DOMAIN):
13
+ VERSION: int
14
+ MINOR_VERSION: int
15
+ async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
16
+ async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -0,0 +1,3 @@
1
+ from typing import Final
2
+
3
+ DOMAIN: Final[str]
@@ -0,0 +1,29 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from _typeshed import Incomplete
3
+ from dataclasses import dataclass
4
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
+ from homeassistant.core import HomeAssistant as HomeAssistant
6
+ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
7
+ from lunatone_rest_api_client import Device, Devices as Devices, Info as Info
8
+ from lunatone_rest_api_client.models import InfoData
9
+
10
+ _LOGGER: Incomplete
11
+ DEFAULT_DEVICES_SCAN_INTERVAL: Incomplete
12
+
13
+ @dataclass
14
+ class LunatoneData:
15
+ coordinator_info: LunatoneInfoDataUpdateCoordinator
16
+ coordinator_devices: LunatoneDevicesDataUpdateCoordinator
17
+ type LunatoneConfigEntry = ConfigEntry[LunatoneData]
18
+
19
+ class LunatoneInfoDataUpdateCoordinator(DataUpdateCoordinator[InfoData]):
20
+ config_entry: LunatoneConfigEntry
21
+ info_api: Incomplete
22
+ def __init__(self, hass: HomeAssistant, config_entry: LunatoneConfigEntry, info_api: Info) -> None: ...
23
+ async def _async_update_data(self) -> InfoData: ...
24
+
25
+ class LunatoneDevicesDataUpdateCoordinator(DataUpdateCoordinator[dict[int, Device]]):
26
+ config_entry: LunatoneConfigEntry
27
+ devices_api: Incomplete
28
+ def __init__(self, hass: HomeAssistant, config_entry: LunatoneConfigEntry, devices_api: Devices) -> None: ...
29
+ async def _async_update_data(self) -> dict[int, Device]: ...
@@ -0,0 +1,43 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from .coordinator import LunatoneConfigEntry as LunatoneConfigEntry, LunatoneDevicesDataUpdateCoordinator as LunatoneDevicesDataUpdateCoordinator
3
+ from _typeshed import Incomplete
4
+ from homeassistant.components.light import ATTR_BRIGHTNESS as ATTR_BRIGHTNESS, ColorMode as ColorMode, LightEntity as LightEntity, brightness_supported as brightness_supported
5
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
6
+ from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
7
+ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
8
+ from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
9
+ from homeassistant.util.color import brightness_to_value as brightness_to_value, value_to_brightness as value_to_brightness
10
+ from typing import Any
11
+
12
+ PARALLEL_UPDATES: int
13
+ STATUS_UPDATE_DELAY: float
14
+
15
+ async def async_setup_entry(hass: HomeAssistant, config_entry: LunatoneConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
16
+
17
+ class LunatoneLight(CoordinatorEntity[LunatoneDevicesDataUpdateCoordinator], LightEntity):
18
+ BRIGHTNESS_SCALE: Incomplete
19
+ _last_brightness: int
20
+ _attr_has_entity_name: bool
21
+ _attr_name: Incomplete
22
+ _attr_should_poll: bool
23
+ _device_id: Incomplete
24
+ _interface_serial_number: Incomplete
25
+ _device: Incomplete
26
+ _attr_unique_id: Incomplete
27
+ def __init__(self, coordinator: LunatoneDevicesDataUpdateCoordinator, device_id: int, interface_serial_number: int) -> None: ...
28
+ @property
29
+ def device_info(self) -> DeviceInfo: ...
30
+ @property
31
+ def available(self) -> bool: ...
32
+ @property
33
+ def is_on(self) -> bool: ...
34
+ @property
35
+ def brightness(self) -> int: ...
36
+ @property
37
+ def color_mode(self) -> ColorMode: ...
38
+ @property
39
+ def supported_color_modes(self) -> set[ColorMode]: ...
40
+ @callback
41
+ def _handle_coordinator_update(self) -> None: ...
42
+ async def async_turn_on(self, **kwargs: Any) -> None: ...
43
+ async def async_turn_off(self, **kwargs: Any) -> None: ...
@@ -1,4 +1,4 @@
1
- from .const import ATTR_FORMAT as ATTR_FORMAT, ATTR_IMAGES as ATTR_IMAGES, CONF_ROOMS_REGEX as CONF_ROOMS_REGEX, DOMAIN as DOMAIN, FORMAT_HTML as FORMAT_HTML
1
+ from .const import ATTR_FORMAT as ATTR_FORMAT, ATTR_IMAGES as ATTR_IMAGES, ATTR_MESSAGE_ID as ATTR_MESSAGE_ID, ATTR_REACTION as ATTR_REACTION, ATTR_ROOM as ATTR_ROOM, ATTR_THREAD_ID as ATTR_THREAD_ID, CONF_ROOMS_REGEX as CONF_ROOMS_REGEX, DOMAIN as DOMAIN, FORMAT_HTML as FORMAT_HTML
2
2
  from .services import async_setup_services as async_setup_services
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Sequence
@@ -10,6 +10,7 @@ from homeassistant.helpers.json import save_json as save_json
10
10
  from homeassistant.helpers.typing import ConfigType as ConfigType
11
11
  from homeassistant.util.json import JsonObjectType as JsonObjectType, load_json_object as load_json_object
12
12
  from nio import AsyncClient, Event, MatrixRoom as MatrixRoom
13
+ from nio.events.room_events import RoomMessageText
13
14
  from nio.responses import Response as Response
14
15
  from typing import Final, Required, TypedDict
15
16
 
@@ -20,11 +21,13 @@ CONF_ROOMS: Final[str]
20
21
  CONF_COMMANDS: Final[str]
21
22
  CONF_WORD: Final[str]
22
23
  CONF_EXPRESSION: Final[str]
24
+ CONF_REACTION: Final[str]
23
25
  CONF_USERNAME_REGEX: str
24
26
  EVENT_MATRIX_COMMAND: str
25
27
  DEFAULT_CONTENT_TYPE: str
26
28
  WordCommand: Incomplete
27
29
  ExpressionCommand: Incomplete
30
+ ReactionCommand: Incomplete
28
31
  RoomAlias: Incomplete
29
32
  RoomID: Incomplete
30
33
  RoomAnyID = RoomID | RoomAlias
@@ -34,6 +37,7 @@ class ConfigCommand(TypedDict, total=False):
34
37
  rooms: list[RoomID]
35
38
  word: WordCommand
36
39
  expression: ExpressionCommand
40
+ reaction: ReactionCommand
37
41
 
38
42
  COMMAND_SCHEMA: Incomplete
39
43
  CONFIG_SCHEMA: Incomplete
@@ -52,10 +56,12 @@ class MatrixBot:
52
56
  _listening_rooms: dict[RoomAnyID, RoomID]
53
57
  _word_commands: dict[RoomID, dict[WordCommand, ConfigCommand]]
54
58
  _expression_commands: dict[RoomID, list[ConfigCommand]]
59
+ _reaction_commands: dict[RoomID, dict[ReactionCommand, ConfigCommand]]
55
60
  _unparsed_commands: Incomplete
56
61
  def __init__(self, hass: HomeAssistant, config_file: str, homeserver: str, verify_ssl: bool, username: str, password: str, listening_rooms: list[RoomAnyID], commands: list[ConfigCommand]) -> None: ...
57
62
  def _load_commands(self, commands: list[ConfigCommand]) -> None: ...
58
63
  async def _handle_room_message(self, room: MatrixRoom, message: Event) -> None: ...
64
+ def _get_thread_parent(self, message: RoomMessageText) -> str | None: ...
59
65
  async def _resolve_room_alias(self, room_alias_or_id: RoomAnyID) -> dict[RoomAnyID, RoomID]: ...
60
66
  async def _resolve_room_aliases(self, listening_rooms: list[RoomAnyID]) -> None: ...
61
67
  async def _join_room(self, room_id: RoomID, room_alias_or_id: RoomAnyID) -> None: ...
@@ -65,6 +71,8 @@ class MatrixBot:
65
71
  async def _login(self) -> None: ...
66
72
  async def _handle_room_send(self, target_room: RoomAnyID, message_type: str, content: dict) -> None: ...
67
73
  async def _handle_multi_room_send(self, target_rooms: Sequence[RoomAnyID], message_type: str, content: dict) -> None: ...
68
- async def _send_image(self, image_path: str, target_rooms: Sequence[RoomAnyID]) -> None: ...
74
+ async def _send_image(self, image_path: str, target_rooms: Sequence[RoomAnyID], thread_id: str | None) -> None: ...
69
75
  async def _send_message(self, message: str, target_rooms: list[RoomAnyID], data: dict | None) -> None: ...
76
+ async def _send_reaction(self, reaction: str, target_room: RoomAnyID, message_id: str) -> None: ...
70
77
  async def handle_send_message(self, service: ServiceCall) -> None: ...
78
+ async def handle_send_reaction(self, service: ServiceCall) -> None: ...
@@ -1,7 +1,12 @@
1
1
  DOMAIN: str
2
2
  SERVICE_SEND_MESSAGE: str
3
+ SERVICE_REACT: str
3
4
  FORMAT_HTML: str
4
5
  FORMAT_TEXT: str
5
6
  ATTR_FORMAT: str
6
7
  ATTR_IMAGES: str
8
+ ATTR_THREAD_ID: str
9
+ ATTR_REACTION: str
10
+ ATTR_ROOM: str
11
+ ATTR_MESSAGE_ID: str
7
12
  CONF_ROOMS_REGEX: str
@@ -1,5 +1,5 @@
1
1
  from . import MatrixBot as MatrixBot
2
- from .const import ATTR_FORMAT as ATTR_FORMAT, ATTR_IMAGES as ATTR_IMAGES, CONF_ROOMS_REGEX as CONF_ROOMS_REGEX, DOMAIN as DOMAIN, FORMAT_HTML as FORMAT_HTML, FORMAT_TEXT as FORMAT_TEXT, SERVICE_SEND_MESSAGE as SERVICE_SEND_MESSAGE
2
+ from .const import ATTR_FORMAT as ATTR_FORMAT, ATTR_IMAGES as ATTR_IMAGES, ATTR_MESSAGE_ID as ATTR_MESSAGE_ID, ATTR_REACTION as ATTR_REACTION, ATTR_ROOM as ATTR_ROOM, ATTR_THREAD_ID as ATTR_THREAD_ID, CONF_ROOMS_REGEX as CONF_ROOMS_REGEX, DOMAIN as DOMAIN, FORMAT_HTML as FORMAT_HTML, FORMAT_TEXT as FORMAT_TEXT, SERVICE_REACT as SERVICE_REACT, SERVICE_SEND_MESSAGE as SERVICE_SEND_MESSAGE
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.components.notify import ATTR_DATA as ATTR_DATA, ATTR_MESSAGE as ATTR_MESSAGE, ATTR_TARGET as ATTR_TARGET
5
5
  from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
@@ -7,7 +7,9 @@ from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as Se
7
7
  MESSAGE_FORMATS: Incomplete
8
8
  DEFAULT_MESSAGE_FORMAT = FORMAT_TEXT
9
9
  SERVICE_SCHEMA_SEND_MESSAGE: Incomplete
10
+ SERVICE_SCHEMA_REACT: Incomplete
10
11
 
11
12
  async def _handle_send_message(call: ServiceCall) -> None: ...
13
+ async def _handle_react(call: ServiceCall) -> None: ...
12
14
  @callback
13
15
  def async_setup_services(hass: HomeAssistant) -> None: ...
@@ -6,6 +6,8 @@ from .const import CONF_INTEGRATION_CREATED_ADDON as CONF_INTEGRATION_CREATED_AD
6
6
  from .discovery import SUPPORTED_PLATFORMS as SUPPORTED_PLATFORMS
7
7
  from .helpers import MatterEntryData as MatterEntryData, get_matter as get_matter, get_node_from_device_entry as get_node_from_device_entry, node_from_ha_device_id as node_from_ha_device_id
8
8
  from .models import MatterDeviceInfo as MatterDeviceInfo
9
+ from .services import async_setup_services as async_setup_services
10
+ from _typeshed import Incomplete
9
11
  from functools import cache
10
12
  from homeassistant.components.hassio import AddonError as AddonError, AddonManager as AddonManager, AddonState as AddonState
11
13
  from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigEntryState as ConfigEntryState
@@ -15,14 +17,17 @@ from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
15
17
  from homeassistant.helpers import device_registry as dr
16
18
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
17
19
  from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity, async_create_issue as async_create_issue, async_delete_issue as async_delete_issue
20
+ from homeassistant.helpers.typing import ConfigType as ConfigType
18
21
  from matter_server.client import MatterClient
19
22
 
20
23
  CONNECT_TIMEOUT: int
21
24
  LISTEN_READY_TIMEOUT: int
25
+ CONFIG_SCHEMA: Incomplete
22
26
 
23
27
  @callback
24
28
  @cache
25
29
  def get_matter_device_info(hass: HomeAssistant, device_id: str) -> MatterDeviceInfo | None: ...
30
+ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
26
31
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
27
32
  async def _client_listen(hass: HomeAssistant, entry: ConfigEntry, matter_client: MatterClient, init_ready: asyncio.Event) -> None: ...
28
33
  async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
@@ -13,7 +13,7 @@ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
13
13
 
14
14
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
15
15
 
16
- @dataclass(frozen=True)
16
+ @dataclass(frozen=True, kw_only=True)
17
17
  class MatterBinarySensorEntityDescription(BinarySensorEntityDescription, MatterEntityDescription): ...
18
18
 
19
19
  class MatterBinarySensor(MatterEntity, BinarySensorEntity):
@@ -13,7 +13,7 @@ from typing import Any
13
13
 
14
14
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
15
15
 
16
- @dataclass(frozen=True)
16
+ @dataclass(frozen=True, kw_only=True)
17
17
  class MatterButtonEntityDescription(ButtonEntityDescription, MatterEntityDescription):
18
18
  command: Callable[[], Any] | None = ...
19
19
 
@@ -1,8 +1,9 @@
1
- from .entity import MatterEntity as MatterEntity
1
+ from .entity import MatterEntity as MatterEntity, MatterEntityDescription as MatterEntityDescription
2
2
  from .helpers import get_matter as get_matter
3
3
  from .models import MatterDiscoverySchema as MatterDiscoverySchema
4
4
  from _typeshed import Incomplete
5
5
  from chip.clusters import Objects as clusters
6
+ from dataclasses import dataclass
6
7
  from enum import IntEnum
7
8
  from homeassistant.components.climate import ATTR_HVAC_MODE as ATTR_HVAC_MODE, ATTR_TARGET_TEMP_HIGH as ATTR_TARGET_TEMP_HIGH, ATTR_TARGET_TEMP_LOW as ATTR_TARGET_TEMP_LOW, ClimateEntity as ClimateEntity, ClimateEntityDescription as ClimateEntityDescription, ClimateEntityFeature as ClimateEntityFeature, DEFAULT_MAX_TEMP as DEFAULT_MAX_TEMP, DEFAULT_MIN_TEMP as DEFAULT_MIN_TEMP, HVACAction as HVACAction, HVACMode as HVACMode
8
9
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
@@ -11,6 +12,7 @@ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callb
11
12
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
12
13
  from typing import Any
13
14
 
15
+ HUMIDITY_SCALING_FACTOR: int
14
16
  TEMPERATURE_SCALING_FACTOR: int
15
17
  HVAC_SYSTEM_MODE_MAP: Incomplete
16
18
  SINGLE_SETPOINT_DEVICES: set[tuple[int, int]]
@@ -31,6 +33,9 @@ class ThermostatRunningState(IntEnum):
31
33
 
32
34
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
33
35
 
36
+ @dataclass(frozen=True, kw_only=True)
37
+ class MatterClimateEntityDescription(ClimateEntityDescription, MatterEntityDescription): ...
38
+
34
39
  class MatterClimate(MatterEntity, ClimateEntity):
35
40
  _attr_temperature_unit: str
36
41
  _attr_hvac_mode: HVACMode
@@ -39,6 +44,7 @@ class MatterClimate(MatterEntity, ClimateEntity):
39
44
  async def async_set_temperature(self, **kwargs: Any) -> None: ...
40
45
  async def async_set_hvac_mode(self, hvac_mode: HVACMode) -> None: ...
41
46
  _attr_current_temperature: Incomplete
47
+ _attr_current_humidity: Incomplete
42
48
  _attr_hvac_action: Incomplete
43
49
  _attr_target_temperature: Incomplete
44
50
  _attr_target_temperature_high: Incomplete
@@ -1,8 +1,9 @@
1
1
  from .const import LOGGER as LOGGER
2
- from .entity import MatterEntity as MatterEntity
2
+ from .entity import MatterEntity as MatterEntity, MatterEntityDescription as MatterEntityDescription
3
3
  from .helpers import get_matter as get_matter
4
4
  from .models import MatterDiscoverySchema as MatterDiscoverySchema
5
5
  from _typeshed import Incomplete
6
+ from dataclasses import dataclass
6
7
  from enum import IntEnum
7
8
  from homeassistant.components.cover import ATTR_POSITION as ATTR_POSITION, ATTR_TILT_POSITION as ATTR_TILT_POSITION, CoverDeviceClass as CoverDeviceClass, CoverEntity as CoverEntity, CoverEntityDescription as CoverEntityDescription, CoverEntityFeature as CoverEntityFeature
8
9
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
@@ -22,8 +23,11 @@ class OperationalStatus(IntEnum):
22
23
 
23
24
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
24
25
 
26
+ @dataclass(frozen=True, kw_only=True)
27
+ class MatterCoverEntityDescription(CoverEntityDescription, MatterEntityDescription): ...
28
+
25
29
  class MatterCover(MatterEntity, CoverEntity):
26
- entity_description: CoverEntityDescription
30
+ entity_description: MatterCoverEntityDescription
27
31
  @property
28
32
  def is_closed(self) -> bool | None: ...
29
33
  async def async_stop_cover(self, **kwargs: Any) -> None: ...
@@ -17,10 +17,11 @@ from propcache.api import cached_property
17
17
  from typing import Any, Concatenate
18
18
 
19
19
  LOGGER: Incomplete
20
+ VENDOR_LABELING_LIST: dict[int, dict[int, list[str] | None]]
20
21
 
21
22
  def catch_matter_error[_R, **P](func: Callable[Concatenate[MatterEntity, P], Coroutine[Any, Any, _R]]) -> Callable[Concatenate[MatterEntity, P], Coroutine[Any, Any, _R]]: ...
22
23
 
23
- @dataclass(frozen=True)
24
+ @dataclass(frozen=True, kw_only=True)
24
25
  class MatterEntityDescription(EntityDescription):
25
26
  device_to_ha: Callable[[Any], Any] | None = ...
26
27
  ha_to_device: Callable[[Any], Any] | None = ...
@@ -41,8 +42,9 @@ class MatterEntity(Entity):
41
42
  _attr_device_info: Incomplete
42
43
  _attr_available: Incomplete
43
44
  _attr_translation_key: Incomplete
44
- _attr_name: Incomplete
45
45
  def __init__(self, matter_client: MatterClient, endpoint: MatterEndpoint, entity_info: MatterEntityInfo) -> None: ...
46
+ def _find_matching_labels(self) -> list[str]: ...
47
+ def _get_name_modifier(self) -> str | None: ...
46
48
  async def async_added_to_hass(self) -> None: ...
47
49
  @cached_property
48
50
  def name(self) -> str | UndefinedType | None: ...
@@ -1,7 +1,8 @@
1
- from .entity import MatterEntity as MatterEntity
1
+ from .entity import MatterEntity as MatterEntity, MatterEntityDescription as MatterEntityDescription
2
2
  from .helpers import get_matter as get_matter
3
3
  from .models import MatterDiscoverySchema as MatterDiscoverySchema
4
4
  from _typeshed import Incomplete
5
+ from dataclasses import dataclass
5
6
  from homeassistant.components.event import EventDeviceClass as EventDeviceClass, EventEntity as EventEntity, EventEntityDescription as EventEntityDescription
6
7
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
8
  from homeassistant.const import Platform as Platform
@@ -15,6 +16,9 @@ EVENT_TYPES_MAP: Incomplete
15
16
 
16
17
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
17
18
 
19
+ @dataclass(frozen=True, kw_only=True)
20
+ class MatterEventEntityDescription(EventEntityDescription, MatterEntityDescription): ...
21
+
18
22
  class MatterEventEntity(MatterEntity, EventEntity):
19
23
  _attr_event_types: Incomplete
20
24
  def __init__(self, *args: Any, **kwargs: Any) -> None: ...
@@ -1,7 +1,8 @@
1
- from .entity import MatterEntity as MatterEntity
1
+ from .entity import MatterEntity as MatterEntity, MatterEntityDescription as MatterEntityDescription
2
2
  from .helpers import get_matter as get_matter
3
3
  from .models import MatterDiscoverySchema as MatterDiscoverySchema
4
4
  from _typeshed import Incomplete
5
+ from dataclasses import dataclass
5
6
  from homeassistant.components.fan import DIRECTION_FORWARD as DIRECTION_FORWARD, DIRECTION_REVERSE as DIRECTION_REVERSE, FanEntity as FanEntity, FanEntityDescription as FanEntityDescription, FanEntityFeature as FanEntityFeature
6
7
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
8
  from homeassistant.const import Platform as Platform
@@ -23,6 +24,9 @@ PRESET_SLEEP_WIND: str
23
24
 
24
25
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
25
26
 
27
+ @dataclass(frozen=True, kw_only=True)
28
+ class MatterFanEntityDescription(FanEntityDescription, MatterEntityDescription): ...
29
+
26
30
  class MatterFan(MatterEntity, FanEntity):
27
31
  _last_known_preset_mode: str | None
28
32
  _last_known_percentage: int
@@ -1,9 +1,10 @@
1
1
  from .const import LOGGER as LOGGER
2
- from .entity import MatterEntity as MatterEntity
2
+ from .entity import MatterEntity as MatterEntity, MatterEntityDescription as MatterEntityDescription
3
3
  from .helpers import get_matter as get_matter
4
4
  from .models import MatterDiscoverySchema as MatterDiscoverySchema
5
5
  from .util import convert_to_hass_hs as convert_to_hass_hs, convert_to_hass_xy as convert_to_hass_xy, convert_to_matter_hs as convert_to_matter_hs, convert_to_matter_xy as convert_to_matter_xy, renormalize as renormalize
6
6
  from _typeshed import Incomplete
7
+ from dataclasses import dataclass
7
8
  from homeassistant.components.light import ATTR_BRIGHTNESS as ATTR_BRIGHTNESS, ATTR_COLOR_TEMP_KELVIN as ATTR_COLOR_TEMP_KELVIN, ATTR_HS_COLOR as ATTR_HS_COLOR, ATTR_TRANSITION as ATTR_TRANSITION, ATTR_XY_COLOR as ATTR_XY_COLOR, ColorMode as ColorMode, DEFAULT_MAX_KELVIN as DEFAULT_MAX_KELVIN, DEFAULT_MIN_KELVIN as DEFAULT_MIN_KELVIN, LightEntity as LightEntity, LightEntityDescription as LightEntityDescription, LightEntityFeature as LightEntityFeature, filter_supported_color_modes as filter_supported_color_modes
8
9
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
9
10
  from homeassistant.const import Platform as Platform
@@ -16,8 +17,11 @@ TRANSITION_BLOCKLIST: Incomplete
16
17
 
17
18
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
18
19
 
20
+ @dataclass(frozen=True, kw_only=True)
21
+ class MatterLightEntityDescription(LightEntityDescription, MatterEntityDescription): ...
22
+
19
23
  class MatterLight(MatterEntity, LightEntity):
20
- entity_description: LightEntityDescription
24
+ entity_description: MatterLightEntityDescription
21
25
  _supports_brightness: bool
22
26
  _supports_color: bool
23
27
  _supports_color_temperature: bool
@@ -1,9 +1,10 @@
1
1
  import asyncio
2
2
  from .const import LOGGER as LOGGER
3
- from .entity import MatterEntity as MatterEntity
3
+ from .entity import MatterEntity as MatterEntity, MatterEntityDescription as MatterEntityDescription
4
4
  from .helpers import get_matter as get_matter
5
5
  from .models import MatterDiscoverySchema as MatterDiscoverySchema
6
6
  from _typeshed import Incomplete
7
+ from dataclasses import dataclass
7
8
  from homeassistant.components.lock import LockEntity as LockEntity, LockEntityDescription as LockEntityDescription, LockEntityFeature as LockEntityFeature
8
9
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
9
10
  from homeassistant.const import ATTR_CODE as ATTR_CODE, Platform as Platform
@@ -17,6 +18,9 @@ DoorLockFeature: Incomplete
17
18
 
18
19
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
19
20
 
21
+ @dataclass(frozen=True, kw_only=True)
22
+ class MatterLockEntityDescription(LockEntityDescription, MatterEntityDescription): ...
23
+
20
24
  class MatterLock(MatterEntity, LockEntity):
21
25
  _feature_map: int | None
22
26
  _optimistic_timer: asyncio.TimerHandle | None
@@ -1,9 +1,9 @@
1
+ from .entity import MatterEntityDescription as MatterEntityDescription
1
2
  from _typeshed import Incomplete
2
3
  from chip.clusters import Objects as clusters
3
4
  from chip.clusters.Objects import Cluster as Cluster, ClusterAttributeDescriptor as ClusterAttributeDescriptor
4
5
  from dataclasses import dataclass
5
6
  from homeassistant.const import Platform as Platform
6
- from homeassistant.helpers.entity import EntityDescription as EntityDescription
7
7
  from matter_server.client.models.device_types import DeviceType as DeviceType
8
8
  from matter_server.client.models.node import MatterEndpoint as MatterEndpoint
9
9
  from typing import Any, TypedDict
@@ -23,7 +23,7 @@ class MatterEntityInfo:
23
23
  endpoint: MatterEndpoint
24
24
  platform: Platform
25
25
  attributes_to_watch: list[type[ClusterAttributeDescriptor]]
26
- entity_description: EntityDescription
26
+ entity_description: MatterEntityDescription
27
27
  entity_class: type
28
28
  discovery_schema: MatterDiscoverySchema
29
29
  @property
@@ -32,7 +32,7 @@ class MatterEntityInfo:
32
32
  @dataclass
33
33
  class MatterDiscoverySchema:
34
34
  platform: Platform
35
- entity_description: EntityDescription
35
+ entity_description: MatterEntityDescription
36
36
  entity_class: type
37
37
  required_attributes: tuple[type[ClusterAttributeDescriptor], ...]
38
38
  device_type: tuple[type[DeviceType] | DeviceType, ...] | None = ...
@@ -14,7 +14,7 @@ from typing import Any
14
14
 
15
15
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
16
16
 
17
- @dataclass(frozen=True)
17
+ @dataclass(frozen=True, kw_only=True)
18
18
  class MatterNumberEntityDescription(NumberEntityDescription, MatterEntityDescription): ...
19
19
 
20
20
  @dataclass(frozen=True, kw_only=True)
@@ -21,7 +21,7 @@ type SelectCluster = clusters.ModeSelect | clusters.OvenMode | clusters.LaundryW
21
21
 
22
22
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
23
23
 
24
- @dataclass(frozen=True)
24
+ @dataclass(frozen=True, kw_only=True)
25
25
  class MatterSelectEntityDescription(SelectEntityDescription, MatterEntityDescription): ...
26
26
 
27
27
  @dataclass(frozen=True, kw_only=True)
@@ -16,18 +16,21 @@ AIR_QUALITY_MAP: Incomplete
16
16
  CONTAMINATION_STATE_MAP: Incomplete
17
17
  EVE_CLUSTER_WEATHER_MAP: Incomplete
18
18
  OPERATIONAL_STATE_MAP: Incomplete
19
+ OPERATIONAL_STATE_ERROR_MAP: Incomplete
19
20
  RVC_OPERATIONAL_STATE_MAP: Incomplete
21
+ RVC_OPERATIONAL_STATE_ERROR_MAP: Incomplete
20
22
  BOOST_STATE_MAP: Incomplete
21
23
  CHARGE_STATE_MAP: Incomplete
22
24
  DEM_OPT_OUT_STATE_MAP: Incomplete
23
25
  ESA_STATE_MAP: Incomplete
24
26
  EVSE_FAULT_STATE_MAP: Incomplete
25
27
  PUMP_CONTROL_MODE_MAP: Incomplete
28
+ HUMIDITY_SCALING_FACTOR: int
26
29
  TEMPERATURE_SCALING_FACTOR: int
27
30
 
28
31
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
29
32
 
30
- @dataclass(frozen=True)
33
+ @dataclass(frozen=True, kw_only=True)
31
34
  class MatterSensorEntityDescription(SensorEntityDescription, MatterEntityDescription): ...
32
35
 
33
36
  @dataclass(frozen=True, kw_only=True)
@@ -0,0 +1,11 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
3
+ from homeassistant.helpers import service as service
4
+
5
+ ATTR_DURATION: str
6
+ ATTR_EMERGENCY_BOOST: str
7
+ ATTR_TEMPORARY_SETPOINT: str
8
+ SERVICE_WATER_HEATER_BOOST: str
9
+
10
+ @callback
11
+ def async_setup_services(hass: HomeAssistant) -> None: ...
@@ -16,6 +16,9 @@ EVSE_SUPPLY_STATE_MAP: Incomplete
16
16
 
17
17
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
18
18
 
19
+ @dataclass(frozen=True, kw_only=True)
20
+ class MatterSwitchEntityDescription(SwitchEntityDescription, MatterEntityDescription): ...
21
+
19
22
  class MatterSwitch(MatterEntity, SwitchEntity):
20
23
  _platform_translation_key: str
21
24
  async def async_turn_on(self, **kwargs: Any) -> None: ...
@@ -34,13 +37,13 @@ class MatterGenericCommandSwitch(MatterSwitch):
34
37
  def _update_from_device(self) -> None: ...
35
38
  async def send_device_command(self, command: ClusterCommand, command_timeout: int | None = None, **kwargs: Any) -> None: ...
36
39
 
37
- @dataclass(frozen=True)
40
+ @dataclass(frozen=True, kw_only=True)
38
41
  class MatterGenericCommandSwitchEntityDescription(SwitchEntityDescription, MatterEntityDescription):
39
42
  on_command: Callable[[], Any] | None = ...
40
43
  off_command: Callable[[], Any] | None = ...
41
44
  command_timeout: int | None = ...
42
45
 
43
- @dataclass(frozen=True)
46
+ @dataclass(frozen=True, kw_only=True)
44
47
  class MatterNumericSwitchEntityDescription(SwitchEntityDescription, MatterEntityDescription): ...
45
48
 
46
49
  class MatterNumericSwitch(MatterSwitch):
@@ -1,4 +1,4 @@
1
- from .entity import MatterEntity as MatterEntity
1
+ from .entity import MatterEntity as MatterEntity, MatterEntityDescription as MatterEntityDescription
2
2
  from .helpers import get_matter as get_matter
3
3
  from .models import MatterDiscoverySchema as MatterDiscoverySchema
4
4
  from _typeshed import Incomplete
@@ -28,6 +28,9 @@ class MatterUpdateExtraStoredData(ExtraStoredData):
28
28
 
29
29
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
30
30
 
31
+ @dataclass(frozen=True, kw_only=True)
32
+ class MatterUpdateEntityDescription(UpdateEntityDescription, MatterEntityDescription): ...
33
+
31
34
  class MatterUpdate(MatterEntity, UpdateEntity):
32
35
  _attr_should_poll: bool
33
36
  _software_update: MatterSoftwareVersion | None