homeassistant-stubs 2025.8.2__py3-none-any.whl → 2025.9.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (250) hide show
  1. homeassistant-stubs/auth/models.pyi +3 -1
  2. homeassistant-stubs/components/airos/binary_sensor.pyi +27 -0
  3. homeassistant-stubs/components/airos/sensor.pyi +4 -2
  4. homeassistant-stubs/components/airq/number.pyi +31 -0
  5. homeassistant-stubs/components/aladdin_connect/__init__.pyi +10 -5
  6. homeassistant-stubs/components/aladdin_connect/api.pyi +12 -0
  7. homeassistant-stubs/components/aladdin_connect/application_credentials.pyi +5 -0
  8. homeassistant-stubs/components/aladdin_connect/config_flow.pyi +15 -4
  9. homeassistant-stubs/components/aladdin_connect/const.pyi +10 -0
  10. homeassistant-stubs/components/aladdin_connect/coordinator.pyi +16 -0
  11. homeassistant-stubs/components/aladdin_connect/cover.pyi +25 -0
  12. homeassistant-stubs/components/aladdin_connect/entity.pyi +15 -0
  13. homeassistant-stubs/components/aladdin_connect/sensor.pyi +25 -0
  14. homeassistant-stubs/components/alexa_devices/__init__.pyi +3 -2
  15. homeassistant-stubs/components/alexa_devices/config_flow.pyi +5 -2
  16. homeassistant-stubs/components/alexa_devices/const.pyi +2 -0
  17. homeassistant-stubs/components/alexa_devices/coordinator.pyi +1 -1
  18. homeassistant-stubs/components/alexa_devices/sensor.pyi +1 -1
  19. homeassistant-stubs/components/alexa_devices/services.pyi +0 -1
  20. homeassistant-stubs/components/amberelectric/config_flow.pyi +1 -1
  21. homeassistant-stubs/components/amberelectric/const.pyi +1 -1
  22. homeassistant-stubs/components/amberelectric/coordinator.pyi +1 -1
  23. homeassistant-stubs/components/amberelectric/services.pyi +2 -1
  24. homeassistant-stubs/components/ambient_station/entity.pyi +1 -1
  25. homeassistant-stubs/components/android_ip_webcam/coordinator.pyi +0 -1
  26. homeassistant-stubs/components/apcupsd/binary_sensor.pyi +2 -6
  27. homeassistant-stubs/components/apcupsd/entity.pyi +11 -0
  28. homeassistant-stubs/components/apcupsd/sensor.pyi +2 -6
  29. homeassistant-stubs/components/asuswrt/bridge.pyi +12 -8
  30. homeassistant-stubs/components/asuswrt/helpers.pyi +8 -0
  31. homeassistant-stubs/components/auth/login_flow.pyi +1 -1
  32. homeassistant-stubs/components/auth/mfa_setup_flow.pyi +1 -1
  33. homeassistant-stubs/components/awair/const.pyi +1 -0
  34. homeassistant-stubs/components/awair/sensor.pyi +2 -2
  35. homeassistant-stubs/components/backup/config.pyi +0 -14
  36. homeassistant-stubs/components/bayesian/__init__.pyi +6 -4
  37. homeassistant-stubs/components/bayesian/binary_sensor.pyi +6 -5
  38. homeassistant-stubs/components/bayesian/config_flow.pyi +69 -0
  39. homeassistant-stubs/components/bayesian/const.pyi +5 -0
  40. homeassistant-stubs/components/bayesian/issues.pyi +1 -1
  41. homeassistant-stubs/components/bosch_alarm/const.pyi +0 -1
  42. homeassistant-stubs/components/bosch_alarm/services.pyi +2 -1
  43. homeassistant-stubs/components/braviatv/button.pyi +1 -1
  44. homeassistant-stubs/components/braviatv/coordinator.pyi +1 -0
  45. homeassistant-stubs/components/braviatv/entity.pyi +1 -1
  46. homeassistant-stubs/components/climate/__init__.pyi +1 -1
  47. homeassistant-stubs/components/cloud/alexa_config.pyi +2 -1
  48. homeassistant-stubs/components/cloud/subscription.pyi +2 -4
  49. homeassistant-stubs/components/co2signal/coordinator.pyi +3 -3
  50. homeassistant-stubs/components/co2signal/helpers.pyi +2 -3
  51. homeassistant-stubs/components/co2signal/sensor.pyi +3 -3
  52. homeassistant-stubs/components/config/config_entries.pyi +6 -3
  53. homeassistant-stubs/components/deconz/hub/hub.pyi +0 -1
  54. homeassistant-stubs/components/deconz/services.pyi +0 -1
  55. homeassistant-stubs/components/demo/media_player.pyi +2 -0
  56. homeassistant-stubs/components/device_automation/condition.pyi +2 -2
  57. homeassistant-stubs/components/enphase_envoy/binary_sensor.pyi +29 -1
  58. homeassistant-stubs/components/enphase_envoy/sensor.pyi +30 -1
  59. homeassistant-stubs/components/esphome/manager.pyi +1 -2
  60. homeassistant-stubs/components/esphome/media_player.pyi +5 -0
  61. homeassistant-stubs/components/fan/intent.pyi +7 -0
  62. homeassistant-stubs/components/fritz/coordinator.pyi +0 -1
  63. homeassistant-stubs/components/fyta/const.pyi +4 -0
  64. homeassistant-stubs/components/fyta/sensor.pyi +11 -0
  65. homeassistant-stubs/components/glances/coordinator.pyi +0 -1
  66. homeassistant-stubs/components/group/config_flow.pyi +2 -0
  67. homeassistant-stubs/components/habitica/__init__.pyi +6 -2
  68. homeassistant-stubs/components/habitica/binary_sensor.pyi +13 -4
  69. homeassistant-stubs/components/habitica/coordinator.pyi +18 -4
  70. homeassistant-stubs/components/habitica/entity.pyi +10 -1
  71. homeassistant-stubs/components/habitica/image.pyi +19 -4
  72. homeassistant-stubs/components/habitica/sensor.pyi +27 -3
  73. homeassistant-stubs/components/habitica/util.pyi +5 -2
  74. homeassistant-stubs/components/home_connect/const.pyi +0 -7
  75. homeassistant-stubs/components/home_connect/services.pyi +1 -14
  76. homeassistant-stubs/components/homeassistant_hardware/coordinator.pyi +0 -1
  77. homeassistant-stubs/components/homee/config_flow.pyi +8 -2
  78. homeassistant-stubs/components/homee/const.pyi +3 -0
  79. homeassistant-stubs/components/homekit/accessories.pyi +1 -1
  80. homeassistant-stubs/components/homekit/const.pyi +4 -0
  81. homeassistant-stubs/components/homekit/type_switches.pyi +11 -1
  82. homeassistant-stubs/components/homekit/util.pyi +3 -2
  83. homeassistant-stubs/components/huawei_lte/__init__.pyi +2 -2
  84. homeassistant-stubs/components/huawei_lte/const.pyi +0 -1
  85. homeassistant-stubs/components/huawei_lte/notify.pyi +2 -2
  86. homeassistant-stubs/components/husqvarna_automower/button.pyi +4 -0
  87. homeassistant-stubs/components/husqvarna_automower/const.pyi +1 -0
  88. homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +10 -0
  89. homeassistant-stubs/components/husqvarna_automower/event.pyi +35 -0
  90. homeassistant-stubs/components/husqvarna_automower/sensor.pyi +1 -2
  91. homeassistant-stubs/components/idasen_desk/__init__.pyi +0 -1
  92. homeassistant-stubs/components/jewish_calendar/__init__.pyi +2 -1
  93. homeassistant-stubs/components/jewish_calendar/coordinator.pyi +41 -0
  94. homeassistant-stubs/components/jewish_calendar/entity.pyi +5 -26
  95. homeassistant-stubs/components/jewish_calendar/sensor.pyi +1 -1
  96. homeassistant-stubs/components/knx/scene.pyi +5 -4
  97. homeassistant-stubs/components/knx/storage/entity_store_schema.pyi +5 -11
  98. homeassistant-stubs/components/knx/storage/knx_selector.pyi +57 -6
  99. homeassistant-stubs/components/knx/storage/serialize.pyi +10 -0
  100. homeassistant-stubs/components/knx/storage/util.pyi +2 -0
  101. homeassistant-stubs/components/knx/websocket.pyi +7 -3
  102. homeassistant-stubs/components/letpot/select.pyi +39 -0
  103. homeassistant-stubs/components/mastodon/__init__.pyi +1 -2
  104. homeassistant-stubs/components/mastodon/config_flow.pyi +2 -2
  105. homeassistant-stubs/components/mastodon/const.pyi +0 -1
  106. homeassistant-stubs/components/mastodon/diagnostics.pyi +2 -2
  107. homeassistant-stubs/components/mastodon/services.pyi +2 -1
  108. homeassistant-stubs/components/matter/lock.pyi +6 -0
  109. homeassistant-stubs/components/matter/sensor.pyi +2 -1
  110. homeassistant-stubs/components/mealie/const.pyi +0 -1
  111. homeassistant-stubs/components/mealie/services.pyi +2 -2
  112. homeassistant-stubs/components/media_player/__init__.pyi +4 -0
  113. homeassistant-stubs/components/media_player/intent.pyi +13 -3
  114. homeassistant-stubs/components/met_eireann/const.pyi +1 -1
  115. homeassistant-stubs/components/met_eireann/weather.pyi +4 -0
  116. homeassistant-stubs/components/miele/climate.pyi +3 -1
  117. homeassistant-stubs/components/miele/const.pyi +1 -0
  118. homeassistant-stubs/components/miele/coordinator.pyi +2 -3
  119. homeassistant-stubs/components/miele/entity.pyi +2 -3
  120. homeassistant-stubs/components/miele/sensor.pyi +25 -6
  121. homeassistant-stubs/components/modbus/binary_sensor.pyi +1 -2
  122. homeassistant-stubs/components/modbus/climate.pyi +1 -2
  123. homeassistant-stubs/components/modbus/const.pyi +2 -0
  124. homeassistant-stubs/components/modbus/entity.pyi +7 -16
  125. homeassistant-stubs/components/modbus/light.pyi +0 -1
  126. homeassistant-stubs/components/modbus/modbus.pyi +9 -11
  127. homeassistant-stubs/components/modbus/sensor.pyi +1 -3
  128. homeassistant-stubs/components/mqtt/alarm_control_panel.pyi +2 -23
  129. homeassistant-stubs/components/mqtt/config_flow.pyi +8 -2
  130. homeassistant-stubs/components/mqtt/const.pyi +40 -1
  131. homeassistant-stubs/components/mqtt/lock.pyi +1 -21
  132. homeassistant-stubs/components/mqtt/number.pyi +1 -0
  133. homeassistant-stubs/components/mqtt/sensor.pyi +1 -1
  134. homeassistant-stubs/components/music_assistant/actions.pyi +2 -1
  135. homeassistant-stubs/components/music_assistant/const.pyi +0 -1
  136. homeassistant-stubs/components/music_assistant/media_browser.pyi +1 -1
  137. homeassistant-stubs/components/nanoleaf/config_flow.pyi +1 -1
  138. homeassistant-stubs/components/number/__init__.pyi +3 -0
  139. homeassistant-stubs/components/number/const.pyi +2 -1
  140. homeassistant-stubs/components/open_router/entity.pyi +2 -2
  141. homeassistant-stubs/components/openai_conversation/entity.pyi +3 -3
  142. homeassistant-stubs/components/opower/__init__.pyi +1 -0
  143. homeassistant-stubs/components/opower/repairs.pyi +13 -0
  144. homeassistant-stubs/components/overseerr/const.pyi +0 -1
  145. homeassistant-stubs/components/overseerr/services.pyi +2 -1
  146. homeassistant-stubs/components/person/__init__.pyi +2 -1
  147. homeassistant-stubs/components/qbus/binary_sensor.pyi +43 -0
  148. homeassistant-stubs/components/qbus/climate.pyi +1 -1
  149. homeassistant-stubs/components/qbus/coordinator.pyi +4 -3
  150. homeassistant-stubs/components/qbus/cover.pyi +1 -1
  151. homeassistant-stubs/components/qbus/entity.pyi +6 -5
  152. homeassistant-stubs/components/qbus/light.pyi +1 -1
  153. homeassistant-stubs/components/qbus/scene.pyi +4 -6
  154. homeassistant-stubs/components/qbus/sensor.pyi +67 -0
  155. homeassistant-stubs/components/qbus/switch.pyi +1 -1
  156. homeassistant-stubs/components/recorder/statistics.pyi +1 -1
  157. homeassistant-stubs/components/recorder/websocket_api.pyi +1 -1
  158. homeassistant-stubs/components/rest_command/__init__.pyi +1 -1
  159. homeassistant-stubs/components/romy/coordinator.pyi +0 -1
  160. homeassistant-stubs/components/russound_rio/media_browser.pyi +8 -0
  161. homeassistant-stubs/components/russound_rio/media_player.pyi +3 -2
  162. homeassistant-stubs/components/ruuvitag_ble/sensor.pyi +2 -2
  163. homeassistant-stubs/components/scene/__init__.pyi +13 -4
  164. homeassistant-stubs/components/sensibo/select.pyi +0 -5
  165. homeassistant-stubs/components/sensor/__init__.pyi +3 -0
  166. homeassistant-stubs/components/sensor/const.pyi +3 -2
  167. homeassistant-stubs/components/sensor/recorder.pyi +1 -1
  168. homeassistant-stubs/components/sleep_as_android/__init__.pyi +16 -0
  169. homeassistant-stubs/components/sleep_as_android/config_flow.pyi +2 -0
  170. homeassistant-stubs/components/sleep_as_android/const.pyi +9 -0
  171. homeassistant-stubs/components/sleep_as_android/diagnostics.pyi +5 -0
  172. homeassistant-stubs/components/sleep_as_android/entity.pyi +20 -0
  173. homeassistant-stubs/components/sleep_as_android/event.pyi +33 -0
  174. homeassistant-stubs/components/sleep_as_android/sensor.pyi +25 -0
  175. homeassistant-stubs/components/solarlog/sensor.pyi +11 -1
  176. homeassistant-stubs/components/speedtestdotnet/coordinator.pyi +0 -1
  177. homeassistant-stubs/components/stookwijzer/const.pyi +0 -1
  178. homeassistant-stubs/components/stookwijzer/services.pyi +2 -1
  179. homeassistant-stubs/components/sun/condition.pyi +2 -2
  180. homeassistant-stubs/components/switchbot_cloud/__init__.pyi +1 -0
  181. homeassistant-stubs/components/switchbot_cloud/const.pyi +10 -0
  182. homeassistant-stubs/components/switchbot_cloud/cover.pyi +57 -0
  183. homeassistant-stubs/components/switchbot_cloud/fan.pyi +22 -1
  184. homeassistant-stubs/components/telegram_bot/__init__.pyi +2 -1
  185. homeassistant-stubs/components/telegram_bot/bot.pyi +4 -1
  186. homeassistant-stubs/components/telegram_bot/notify.pyi +21 -0
  187. homeassistant-stubs/components/unifi/switch.pyi +3 -0
  188. homeassistant-stubs/components/volvo/__init__.pyi +1 -1
  189. homeassistant-stubs/components/volvo/binary_sensor.pyi +42 -0
  190. homeassistant-stubs/components/volvo/const.pyi +1 -1
  191. homeassistant-stubs/components/volvo/coordinator.pyi +8 -1
  192. homeassistant-stubs/components/volvo/sensor.pyi +2 -2
  193. homeassistant-stubs/components/webostv/__init__.pyi +2 -2
  194. homeassistant-stubs/components/webostv/const.pyi +0 -1
  195. homeassistant-stubs/components/webostv/notify.pyi +2 -2
  196. homeassistant-stubs/components/websocket_api/http.pyi +1 -0
  197. homeassistant-stubs/components/wemo/coordinator.pyi +0 -1
  198. homeassistant-stubs/components/withings/diagnostics.pyi +4 -0
  199. homeassistant-stubs/components/workday/__init__.pyi +6 -8
  200. homeassistant-stubs/components/workday/binary_sensor.pyi +9 -33
  201. homeassistant-stubs/components/workday/entity.pyi +34 -0
  202. homeassistant-stubs/components/workday/util.pyi +14 -0
  203. homeassistant-stubs/components/yalexs_ble/__init__.pyi +3 -1
  204. homeassistant-stubs/components/yalexs_ble/config_cache.pyi +10 -0
  205. homeassistant-stubs/components/yalexs_ble/config_flow.pyi +4 -0
  206. homeassistant-stubs/components/zone/condition.pyi +2 -2
  207. homeassistant-stubs/components/zwave_js/__init__.pyi +5 -5
  208. homeassistant-stubs/components/zwave_js/binary_sensor.pyi +18 -10
  209. homeassistant-stubs/components/zwave_js/config_flow.pyi +6 -0
  210. homeassistant-stubs/components/zwave_js/const.pyi +0 -1
  211. homeassistant-stubs/components/zwave_js/discovery.pyi +7 -51
  212. homeassistant-stubs/components/zwave_js/discovery_data_template.pyi +1 -11
  213. homeassistant-stubs/components/zwave_js/entity.pyi +15 -5
  214. homeassistant-stubs/components/zwave_js/helpers.pyi +0 -7
  215. homeassistant-stubs/components/zwave_js/migrate.pyi +2 -2
  216. homeassistant-stubs/components/zwave_js/models.pyi +95 -1
  217. homeassistant-stubs/components/zwave_js/sensor.pyi +7 -4
  218. homeassistant-stubs/components/zwave_js/triggers/event.pyi +5 -4
  219. homeassistant-stubs/components/zwave_js/triggers/trigger_helpers.pyi +2 -2
  220. homeassistant-stubs/components/zwave_js/triggers/value_updated.pyi +3 -2
  221. homeassistant-stubs/components/zwave_js/update.pyi +0 -3
  222. homeassistant-stubs/config_entries.pyi +5 -0
  223. homeassistant-stubs/const.pyi +9 -5
  224. homeassistant-stubs/data_entry_flow.pyi +0 -1
  225. homeassistant-stubs/helpers/automation.pyi +2 -0
  226. homeassistant-stubs/helpers/condition.pyi +6 -6
  227. homeassistant-stubs/helpers/config_validation.pyi +3 -0
  228. homeassistant-stubs/helpers/data_entry_flow.pyi +1 -1
  229. homeassistant-stubs/helpers/device_registry.pyi +2 -2
  230. homeassistant-stubs/helpers/entity_registry.pyi +4 -3
  231. homeassistant-stubs/helpers/json.pyi +0 -7
  232. homeassistant-stubs/helpers/llm.pyi +1 -0
  233. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +2 -1
  234. homeassistant-stubs/helpers/selector.pyi +2 -1
  235. homeassistant-stubs/helpers/target.pyi +3 -2
  236. homeassistant-stubs/helpers/trigger.pyi +6 -6
  237. homeassistant-stubs/util/unit_conversion.pyi +11 -1
  238. {homeassistant_stubs-2025.8.2.dist-info → homeassistant_stubs-2025.9.0.dist-info}/METADATA +2 -2
  239. {homeassistant_stubs-2025.8.2.dist-info → homeassistant_stubs-2025.9.0.dist-info}/RECORD +241 -215
  240. homeassistant-stubs/components/linear_garage_door/__init__.pyi +0 -10
  241. homeassistant-stubs/components/linear_garage_door/config_flow.pyi +0 -25
  242. homeassistant-stubs/components/linear_garage_door/const.pyi +0 -1
  243. homeassistant-stubs/components/linear_garage_door/coordinator.pyi +0 -26
  244. homeassistant-stubs/components/linear_garage_door/cover.pyi +0 -28
  245. homeassistant-stubs/components/linear_garage_door/diagnostics.pyi +0 -10
  246. homeassistant-stubs/components/linear_garage_door/entity.pyi +0 -17
  247. homeassistant-stubs/components/linear_garage_door/light.pyi +0 -23
  248. homeassistant-stubs/components/mastodon/notify.pyi +0 -24
  249. {homeassistant_stubs-2025.8.2.dist-info → homeassistant_stubs-2025.9.0.dist-info}/WHEEL +0 -0
  250. {homeassistant_stubs-2025.8.2.dist-info → homeassistant_stubs-2025.9.0.dist-info}/licenses/LICENSE +0 -0
@@ -12,6 +12,7 @@ from homeassistant.helpers.typing import ConfigType as ConfigType
12
12
  from zwave_js_server.model.driver import Driver as Driver
13
13
  from zwave_js_server.model.value import Value as Value
14
14
 
15
+ RELATIVE_PLATFORM_TYPE: Incomplete
15
16
  PLATFORM_TYPE: Incomplete
16
17
  ATTR_FROM: str
17
18
  ATTR_TO: str
@@ -25,5 +26,5 @@ class ValueUpdatedTrigger(Trigger):
25
26
  _hass: Incomplete
26
27
  def __init__(self, hass: HomeAssistant, config: ConfigType) -> None: ...
27
28
  @classmethod
28
- async def async_validate_trigger_config(cls, hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
29
- async def async_attach_trigger(self, action: TriggerActionType, trigger_info: TriggerInfo) -> CALLBACK_TYPE: ...
29
+ async def async_validate_config(cls, hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
30
+ async def async_attach(self, action: TriggerActionType, trigger_info: TriggerInfo) -> CALLBACK_TYPE: ...
@@ -51,7 +51,6 @@ class ZWaveFirmwareUpdateEntity(UpdateEntity):
51
51
  _attr_has_entity_name: bool
52
52
  _attr_should_poll: bool
53
53
  _latest_version_firmware: FirmwareUpdateInfo | None
54
- _status_unsub: Callable[[], None] | None
55
54
  _poll_unsub: Callable[[], None] | None
56
55
  _progress_unsub: Callable[[], None] | None
57
56
  _finished_unsub: Callable[[], None] | None
@@ -66,8 +65,6 @@ class ZWaveFirmwareUpdateEntity(UpdateEntity):
66
65
  def __init__(self, driver: Driver, node: ZwaveNode, delay: timedelta, entity_description: ZWaveUpdateEntityDescription) -> None: ...
67
66
  @property
68
67
  def extra_restore_state_data(self) -> ZWaveFirmwareUpdateExtraStoredData: ...
69
- @callback
70
- def _update_on_status_change(self, _: dict[str, Any]) -> None: ...
71
68
  _attr_in_progress: bool
72
69
  _attr_update_percentage: Incomplete
73
70
  @callback
@@ -129,6 +129,7 @@ class ConfigFlowContext(FlowContext, total=False):
129
129
  class ConfigFlowResult(FlowResult[ConfigFlowContext, str], total=False):
130
130
  minor_version: int
131
131
  options: Mapping[str, Any]
132
+ result: ConfigEntry
132
133
  subentries: Iterable[ConfigSubentryData]
133
134
  version: int
134
135
 
@@ -444,7 +445,11 @@ class ConfigSubentryFlow(data_entry_flow.FlowHandler[SubentryFlowContext, Subent
444
445
  @callback
445
446
  def async_create_entry(self, *, title: str | None = None, data: Mapping[str, Any], description: str | None = None, description_placeholders: Mapping[str, str] | None = None, unique_id: str | None = None) -> SubentryFlowResult: ...
446
447
  @callback
448
+ def _async_update(self, entry: ConfigEntry, subentry: ConfigSubentry, *, unique_id: str | None | UndefinedType = ..., title: str | UndefinedType = ..., data: Mapping[str, Any] | UndefinedType = ..., data_updates: Mapping[str, Any] | UndefinedType = ...) -> bool: ...
449
+ @callback
447
450
  def async_update_and_abort(self, entry: ConfigEntry, subentry: ConfigSubentry, *, unique_id: str | None | UndefinedType = ..., title: str | UndefinedType = ..., data: Mapping[str, Any] | UndefinedType = ..., data_updates: Mapping[str, Any] | UndefinedType = ...) -> SubentryFlowResult: ...
451
+ @callback
452
+ def async_update_reload_and_abort(self, entry: ConfigEntry, subentry: ConfigSubentry, *, unique_id: str | None | UndefinedType = ..., title: str | UndefinedType = ..., data: Mapping[str, Any] | UndefinedType = ..., data_updates: Mapping[str, Any] | UndefinedType = ..., reload_even_if_entry_is_unchanged: bool = True) -> SubentryFlowResult: ...
448
453
  @property
449
454
  def _entry_id(self) -> str: ...
450
455
  @property
@@ -341,6 +341,7 @@ ATTR_SERVICE_DATA: Final[str]
341
341
  ATTR_ID: Final[str]
342
342
  ATTR_NAME: Final[str]
343
343
  ATTR_ENTITY_ID: Final[str]
344
+ ATTR_CONFIG_ENTRY_ID: Final[str]
344
345
  ATTR_AREA_ID: Final[str]
345
346
  ATTR_DEVICE_ID: Final[str]
346
347
  ATTR_FLOOR_ID: Final[str]
@@ -392,6 +393,7 @@ ATTR_TEMPERATURE: Final[str]
392
393
  ATTR_PERSONS: Final[str]
393
394
 
394
395
  class UnitOfApparentPower(StrEnum):
396
+ MILLIVOLT_AMPERE = 'mVA'
395
397
  VOLT_AMPERE = 'VA'
396
398
 
397
399
  class UnitOfPower(StrEnum):
@@ -404,6 +406,7 @@ class UnitOfPower(StrEnum):
404
406
  BTU_PER_HOUR = 'BTU/h'
405
407
 
406
408
  class UnitOfReactivePower(StrEnum):
409
+ MILLIVOLT_AMPERE_REACTIVE = 'mvar'
407
410
  VOLT_AMPERE_REACTIVE = 'var'
408
411
  KILO_VOLT_AMPERE_REACTIVE = 'kvar'
409
412
 
@@ -440,7 +443,7 @@ class UnitOfElectricCurrent(StrEnum):
440
443
  AMPERE = 'A'
441
444
 
442
445
  class UnitOfElectricPotential(StrEnum):
443
- MICROVOLT = 'µV'
446
+ MICROVOLT = 'μV'
444
447
  MILLIVOLT = 'mV'
445
448
  VOLT = 'V'
446
449
  KILOVOLT = 'kV'
@@ -510,6 +513,7 @@ class UnitOfVolume(StrEnum):
510
513
 
511
514
  class UnitOfVolumeFlowRate(StrEnum):
512
515
  CUBIC_METERS_PER_HOUR = 'm³/h'
516
+ CUBIC_METERS_PER_MINUTE = 'm³/min'
513
517
  CUBIC_METERS_PER_SECOND = 'm³/s'
514
518
  CUBIC_FEET_PER_MINUTE = 'ft³/min'
515
519
  LITERS_PER_HOUR = 'L/h'
@@ -536,17 +540,17 @@ class UnitOfMass(StrEnum):
536
540
  GRAMS = 'g'
537
541
  KILOGRAMS = 'kg'
538
542
  MILLIGRAMS = 'mg'
539
- MICROGRAMS = 'µg'
543
+ MICROGRAMS = 'μg'
540
544
  OUNCES = 'oz'
541
545
  POUNDS = 'lb'
542
546
  STONES = 'st'
543
547
 
544
548
  class UnitOfConductivity(StrEnum, deprecated={'SIEMENS': ('UnitOfConductivity.SIEMENS_PER_CM', '2025.11.0'), 'MICROSIEMENS': ('UnitOfConductivity.MICROSIEMENS_PER_CM', '2025.11.0'), 'MILLISIEMENS': ('UnitOfConductivity.MILLISIEMENS_PER_CM', '2025.11.0')}, metaclass=EnumWithDeprecatedMembers):
545
549
  SIEMENS_PER_CM = 'S/cm'
546
- MICROSIEMENS_PER_CM = 'µS/cm'
550
+ MICROSIEMENS_PER_CM = 'μS/cm'
547
551
  MILLISIEMENS_PER_CM = 'mS/cm'
548
552
  SIEMENS = 'S/cm'
549
- MICROSIEMENS = 'µS/cm'
553
+ MICROSIEMENS = 'μS/cm'
550
554
  MILLISIEMENS = 'mS/cm'
551
555
 
552
556
  _DEPRECATED_CONDUCTIVITY: Final[Incomplete]
@@ -571,8 +575,8 @@ class UnitOfPrecipitationDepth(StrEnum):
571
575
  CENTIMETERS = 'cm'
572
576
 
573
577
  CONCENTRATION_GRAMS_PER_CUBIC_METER: Final[str]
574
- CONCENTRATION_MICROGRAMS_PER_CUBIC_METER: Final[str]
575
578
  CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER: Final[str]
579
+ CONCENTRATION_MICROGRAMS_PER_CUBIC_METER: Final[str]
576
580
  CONCENTRATION_MICROGRAMS_PER_CUBIC_FOOT: Final[str]
577
581
  CONCENTRATION_PARTS_PER_CUBIC_METER: Final[str]
578
582
  CONCENTRATION_PARTS_PER_MILLION: Final[str]
@@ -69,7 +69,6 @@ class FlowResult(TypedDict, Generic[_FlowContextT, _HandlerT], total=False):
69
69
  progress_task: asyncio.Task[Any] | None
70
70
  reason: str
71
71
  required: bool
72
- result: Any
73
72
  step_id: str
74
73
  title: str
75
74
  translation_domain: str
@@ -0,0 +1,2 @@
1
+ def get_absolute_description_key(domain: str, key: str) -> str: ...
2
+ def get_relative_description_key(domain: str, key: str) -> str: ...
@@ -1,5 +1,6 @@
1
1
  import abc
2
2
  import logging
3
+ from .automation import get_absolute_description_key as get_absolute_description_key, get_relative_description_key as get_relative_description_key
3
4
  from .integration_platform import async_process_integration_platforms as async_process_integration_platforms
4
5
  from .template import Template as Template, render_complex as render_complex
5
6
  from .trace import TraceElement as TraceElement, trace_append_element as trace_append_element, trace_path as trace_path, trace_path_get as trace_path_get, trace_stack_cv as trace_stack_cv, trace_stack_pop as trace_stack_pop, trace_stack_push as trace_stack_push, trace_stack_top as trace_stack_top
@@ -15,7 +16,6 @@ from homeassistant.loader import Integration as Integration, IntegrationNotFound
15
16
  from homeassistant.util.async_ import run_callback_threadsafe as run_callback_threadsafe
16
17
  from homeassistant.util.hass_dict import HassKey as HassKey
17
18
  from homeassistant.util.yaml import load_yaml_dict as load_yaml_dict
18
- from homeassistant.util.yaml.loader import JSON_TYPE as JSON_TYPE
19
19
  from typing import Any, Protocol
20
20
 
21
21
  ASYNC_FROM_CONFIG_FORMAT: str
@@ -43,9 +43,9 @@ class Condition(abc.ABC, metaclass=abc.ABCMeta):
43
43
  def __init__(self, hass: HomeAssistant, config: ConfigType) -> None: ...
44
44
  @classmethod
45
45
  @abc.abstractmethod
46
- async def async_validate_condition_config(cls, hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
46
+ async def async_validate_config(cls, hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
47
47
  @abc.abstractmethod
48
- async def async_condition_from_config(self) -> ConditionCheckerType: ...
48
+ async def async_get_checker(self) -> ConditionCheckerType: ...
49
49
 
50
50
  class ConditionProtocol(Protocol):
51
51
  async def async_get_conditions(self, hass: HomeAssistant) -> dict[str, type[Condition]]: ...
@@ -57,7 +57,7 @@ def condition_trace_update_result(**kwargs: Any) -> None: ...
57
57
  @contextmanager
58
58
  def trace_condition(variables: TemplateVarsType) -> Generator[TraceElement]: ...
59
59
  def trace_condition_function(condition: ConditionCheckerType) -> ConditionCheckerType: ...
60
- async def _async_get_condition_platform(hass: HomeAssistant, config: ConfigType) -> ConditionProtocol | None: ...
60
+ async def _async_get_condition_platform(hass: HomeAssistant, condition_key: str) -> tuple[str, ConditionProtocol | None]: ...
61
61
  async def async_from_config(hass: HomeAssistant, config: ConfigType) -> ConditionCheckerType: ...
62
62
  async def async_and_from_config(hass: HomeAssistant, config: ConfigType) -> ConditionCheckerType: ...
63
63
  async def async_or_from_config(hass: HomeAssistant, config: ConfigType) -> ConditionCheckerType: ...
@@ -82,6 +82,6 @@ async def async_conditions_from_config(hass: HomeAssistant, condition_configs: l
82
82
  def async_extract_entities(config: ConfigType | Template) -> set[str]: ...
83
83
  @callback
84
84
  def async_extract_devices(config: ConfigType | Template) -> set[str]: ...
85
- def _load_conditions_file(hass: HomeAssistant, integration: Integration) -> JSON_TYPE: ...
86
- def _load_conditions_files(hass: HomeAssistant, integrations: Iterable[Integration]) -> dict[str, JSON_TYPE]: ...
85
+ def _load_conditions_file(integration: Integration) -> dict[str, Any]: ...
86
+ def _load_conditions_files(integrations: Iterable[Integration]) -> dict[str, dict[str, Any]]: ...
87
87
  async def async_get_all_descriptions(hass: HomeAssistant) -> dict[str, dict[str, Any] | None]: ...
@@ -71,6 +71,7 @@ def ensure_list[_T](value: list[_T]) -> list[_T]: ...
71
71
  @overload
72
72
  def ensure_list[_T](value: list[_T] | _T) -> list[_T]: ...
73
73
  def entity_id(value: Any) -> str: ...
74
+ def strict_entity_id(value: Any) -> str: ...
74
75
  def entity_id_or_uuid(value: Any) -> str: ...
75
76
  def _entity_ids(value: str | list, allow_uuid: bool) -> list[str]: ...
76
77
  def entity_ids(value: str | list) -> list[str]: ...
@@ -108,6 +109,7 @@ positive_time_period: Incomplete
108
109
  def remove_falsy[_T](value: list[_T]) -> list[_T]: ...
109
110
  def service(value: Any) -> str: ...
110
111
  def slug(value: Any) -> str: ...
112
+ def underscore_slug(value: Any) -> str: ...
111
113
  def schema_with_slug_keys(value_schema: dict | Callable, *, slug_validator: Callable[[Any], str] = ...) -> Callable: ...
112
114
  def slugify(value: Any) -> str: ...
113
115
  def string(value: Any) -> str: ...
@@ -158,6 +160,7 @@ def platform_only_config_schema(domain: str) -> Callable[[dict], dict]: ...
158
160
 
159
161
  PLATFORM_SCHEMA: Incomplete
160
162
  PLATFORM_SCHEMA_BASE: Incomplete
163
+ TARGET_FIELDS: VolDictType
161
164
  ENTITY_SERVICE_FIELDS: VolDictType
162
165
  TARGET_SERVICE_FIELDS: Incomplete
163
166
  _HAS_ENTITY_SERVICE_FIELD: Incomplete
@@ -10,7 +10,7 @@ _FlowManagerT = TypeVar('_FlowManagerT', bound=data_entry_flow.FlowManager[Any,
10
10
  class _BaseFlowManagerView(HomeAssistantView, Generic[_FlowManagerT]):
11
11
  _flow_mgr: Incomplete
12
12
  def __init__(self, flow_mgr: _FlowManagerT) -> None: ...
13
- def _prepare_result_json(self, result: data_entry_flow.FlowResult) -> data_entry_flow.FlowResult: ...
13
+ def _prepare_result_json(self, result: data_entry_flow.FlowResult) -> dict[str, Any]: ...
14
14
 
15
15
  class FlowManagerIndexView(_BaseFlowManagerView[_FlowManagerT]):
16
16
  async def post(self, request: web.Request, data: dict[str, Any]) -> web.Response: ...
@@ -157,7 +157,7 @@ class DeletedDeviceEntry:
157
157
  config_entries_subentries: dict[str, set[str | None]]
158
158
  connections: set[tuple[str, str]]
159
159
  created_at: datetime
160
- disabled_by: DeviceEntryDisabler | None
160
+ disabled_by: DeviceEntryDisabler | UndefinedType | None
161
161
  id: str
162
162
  identifiers: set[tuple[str, str]]
163
163
  labels: set[str]
@@ -165,7 +165,7 @@ class DeletedDeviceEntry:
165
165
  name_by_user: str | None
166
166
  orphaned_timestamp: float | None
167
167
  _cache: dict[str, Any]
168
- def to_device_entry(self, config_entry_id: str, config_subentry_id: str | None, connections: set[tuple[str, str]], identifiers: set[tuple[str, str]]) -> DeviceEntry: ...
168
+ def to_device_entry(self, config_entry: ConfigEntry, config_subentry_id: str | None, connections: set[tuple[str, str]], identifiers: set[tuple[str, str]], disabled_by: DeviceEntryDisabler | UndefinedType | None) -> DeviceEntry: ...
169
169
  @under_cached_property
170
170
  def as_storage_fragment(self) -> json_fragment: ...
171
171
  def __init__(self, area_id, config_entries, config_entries_subentries, connections, created_at, disabled_by, id, identifiers, labels, modified_at, name_by_user, orphaned_timestamp, cache) -> None: ...
@@ -61,6 +61,7 @@ type ReadOnlyEntityOptionsType = ReadOnlyDict[str, ReadOnlyDict[str, Any]]
61
61
  DISPLAY_DICT_OPTIONAL: Incomplete
62
62
 
63
63
  def _protect_entity_options(data: EntityOptionsType | None) -> ReadOnlyEntityOptionsType: ...
64
+ def _protect_optional_entity_options(data: EntityOptionsType | UndefinedType | None) -> ReadOnlyEntityOptionsType | UndefinedType: ...
64
65
 
65
66
  class RegistryEntry:
66
67
  entity_id: str
@@ -132,15 +133,15 @@ class DeletedRegistryEntry:
132
133
  config_subentry_id: str | None
133
134
  created_at: datetime
134
135
  device_class: str | None
135
- disabled_by: RegistryEntryDisabler | None
136
+ disabled_by: RegistryEntryDisabler | UndefinedType | None
136
137
  domain: str
137
- hidden_by: RegistryEntryHider | None
138
+ hidden_by: RegistryEntryHider | UndefinedType | None
138
139
  icon: str | None
139
140
  id: str
140
141
  labels: set[str]
141
142
  modified_at: datetime
142
143
  name: str | None
143
- options: ReadOnlyEntityOptionsType
144
+ options: ReadOnlyEntityOptionsType | UndefinedType
144
145
  orphaned_timestamp: float | None
145
146
  _cache: dict[str, Any]
146
147
  @domain.default
@@ -1,18 +1,11 @@
1
1
  import json
2
2
  import orjson
3
- from .deprecation import DeprecatedConstant as DeprecatedConstant, all_with_deprecated_constants as all_with_deprecated_constants, check_if_deprecated_constant as check_if_deprecated_constant, deprecated_function as deprecated_function, dir_with_deprecated_constants as dir_with_deprecated_constants
4
3
  from _typeshed import Incomplete
5
4
  from collections.abc import Callable as Callable
6
5
  from homeassistant.util.file import write_utf8_file as write_utf8_file, write_utf8_file_atomic as write_utf8_file_atomic
7
6
  from homeassistant.util.json import SerializationError as SerializationError, format_unserializable_data as format_unserializable_data
8
7
  from typing import Any, Final
9
8
 
10
- _DEPRECATED_JSON_DECODE_EXCEPTIONS: Incomplete
11
- _DEPRECATED_JSON_ENCODE_EXCEPTIONS: Incomplete
12
- json_loads: Incomplete
13
- __getattr__: Incomplete
14
- __dir__: Incomplete
15
- __all__: Incomplete
16
9
  _LOGGER: Incomplete
17
10
 
18
11
  class JSONEncoder(json.JSONEncoder):
@@ -50,6 +50,7 @@ class ToolInput:
50
50
  tool_name: str
51
51
  tool_args: dict[str, Any]
52
52
  id: str = dc_field(default_factory=Incomplete)
53
+ external: bool = ...
53
54
 
54
55
  class Tool(metaclass=abc.ABCMeta):
55
56
  name: str
@@ -26,7 +26,7 @@ class SchemaFlowFormStep(SchemaFlowStep):
26
26
 
27
27
  @dataclass(slots=True)
28
28
  class SchemaFlowMenuStep(SchemaFlowStep):
29
- options: Container[str]
29
+ options: Container[str] | Callable[[SchemaCommonFlowHandler], Coroutine[Any, Any, Container[str]]]
30
30
 
31
31
  class SchemaCommonFlowHandler:
32
32
  _flow: Incomplete
@@ -41,6 +41,7 @@ class SchemaCommonFlowHandler:
41
41
  @property
42
42
  def flow_state(self) -> dict[str, Any]: ...
43
43
  async def async_step(self, step_id: str, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
44
+ async def _get_options(self, form_step: SchemaFlowMenuStep) -> Container[str]: ...
44
45
  async def _get_schema(self, form_step: SchemaFlowFormStep) -> vol.Schema | None: ...
45
46
  async def _async_form_step(self, step_id: str, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
46
47
  def _update_and_remove_omitted_optional_keys(self, values: dict[str, Any], user_input: dict[str, Any], data_schema: vol.Schema | None) -> None: ...
@@ -389,12 +389,13 @@ class SelectSelector(Selector[SelectSelectorConfig]):
389
389
  class StateSelectorConfig(BaseSelectorConfig, total=False):
390
390
  entity_id: str
391
391
  hide_states: list[str]
392
+ multiple: bool
392
393
 
393
394
  class StateSelector(Selector[StateSelectorConfig]):
394
395
  selector_type: str
395
396
  CONFIG_SCHEMA: Incomplete
396
397
  def __init__(self, config: StateSelectorConfig) -> None: ...
397
- def __call__(self, data: Any) -> str: ...
398
+ def __call__(self, data: Any) -> str | list[str]: ...
398
399
 
399
400
  class StatisticSelectorConfig(BaseSelectorConfig, total=False):
400
401
  multiple: bool
@@ -48,12 +48,13 @@ class TargetStateChangeTracker:
48
48
  _hass: Incomplete
49
49
  _selector_data: Incomplete
50
50
  _action: Incomplete
51
+ _entity_filter: Incomplete
51
52
  _state_change_unsub: CALLBACK_TYPE | None
52
53
  _registry_unsubs: list[CALLBACK_TYPE]
53
- def __init__(self, hass: HomeAssistant, selector_data: TargetSelectorData, action: Callable[[TargetStateChangedData], Any]) -> None: ...
54
+ def __init__(self, hass: HomeAssistant, selector_data: TargetSelectorData, action: Callable[[TargetStateChangedData], Any], entity_filter: Callable[[set[str]], set[str]]) -> None: ...
54
55
  def async_setup(self) -> Callable[[], None]: ...
55
56
  def _track_entities_state_change(self) -> None: ...
56
57
  def _setup_registry_listeners(self) -> None: ...
57
58
  def _unsubscribe(self) -> None: ...
58
59
 
59
- def async_track_target_selector_state_change_event(hass: HomeAssistant, target_selector_config: ConfigType, action: Callable[[TargetStateChangedData], Any]) -> CALLBACK_TYPE: ...
60
+ def async_track_target_selector_state_change_event(hass: HomeAssistant, target_selector_config: ConfigType, action: Callable[[TargetStateChangedData], Any], entity_filter: Callable[[set[str]], set[str]] = ...) -> CALLBACK_TYPE: ...
@@ -1,6 +1,7 @@
1
1
  import abc
2
2
  import voluptuous as vol
3
3
  from . import selector as selector
4
+ from .automation import get_absolute_description_key as get_absolute_description_key, get_relative_description_key as get_relative_description_key
4
5
  from .integration_platform import async_process_integration_platforms as async_process_integration_platforms
5
6
  from .selector import TargetSelector as TargetSelector
6
7
  from .template import Template as Template
@@ -16,7 +17,6 @@ from homeassistant.loader import Integration as Integration, IntegrationNotFound
16
17
  from homeassistant.util.async_ import create_eager_task as create_eager_task
17
18
  from homeassistant.util.hass_dict import HassKey as HassKey
18
19
  from homeassistant.util.yaml import load_yaml_dict as load_yaml_dict
19
- from homeassistant.util.yaml.loader import JSON_TYPE as JSON_TYPE
20
20
  from typing import Any, Protocol, TypedDict
21
21
 
22
22
  _LOGGER: Incomplete
@@ -41,9 +41,9 @@ class Trigger(abc.ABC, metaclass=abc.ABCMeta):
41
41
  def __init__(self, hass: HomeAssistant, config: ConfigType) -> None: ...
42
42
  @classmethod
43
43
  @abc.abstractmethod
44
- async def async_validate_trigger_config(cls, hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
44
+ async def async_validate_config(cls, hass: HomeAssistant, config: ConfigType) -> ConfigType: ...
45
45
  @abc.abstractmethod
46
- async def async_attach_trigger(self, action: TriggerActionType, trigger_info: TriggerInfo) -> CALLBACK_TYPE: ...
46
+ async def async_attach(self, action: TriggerActionType, trigger_info: TriggerInfo) -> CALLBACK_TYPE: ...
47
47
 
48
48
  class TriggerProtocol(Protocol):
49
49
  async def async_get_triggers(self, hass: HomeAssistant) -> dict[str, type[Trigger]]: ...
@@ -88,10 +88,10 @@ class PluggableAction:
88
88
  def async_register(self, hass: HomeAssistant, trigger: dict[str, str]) -> CALLBACK_TYPE: ...
89
89
  async def async_run(self, hass: HomeAssistant, context: Context | None = None) -> None: ...
90
90
 
91
- async def _async_get_trigger_platform(hass: HomeAssistant, config: ConfigType) -> TriggerProtocol: ...
91
+ async def _async_get_trigger_platform(hass: HomeAssistant, trigger_key: str) -> tuple[str, TriggerProtocol]: ...
92
92
  async def async_validate_trigger_config(hass: HomeAssistant, trigger_config: list[ConfigType]) -> list[ConfigType]: ...
93
93
  def _trigger_action_wrapper(hass: HomeAssistant, action: Callable, conf: ConfigType) -> Callable: ...
94
94
  async def async_initialize_triggers(hass: HomeAssistant, trigger_config: list[ConfigType], action: Callable, domain: str, name: str, log_cb: Callable, home_assistant_start: bool = False, variables: TemplateVarsType = None) -> CALLBACK_TYPE | None: ...
95
- def _load_triggers_file(hass: HomeAssistant, integration: Integration) -> JSON_TYPE: ...
96
- def _load_triggers_files(hass: HomeAssistant, integrations: Iterable[Integration]) -> dict[str, JSON_TYPE]: ...
95
+ def _load_triggers_file(integration: Integration) -> dict[str, Any]: ...
96
+ def _load_triggers_files(integrations: Iterable[Integration]) -> dict[str, dict[str, Any]]: ...
97
97
  async def async_get_all_descriptions(hass: HomeAssistant) -> dict[str, dict[str, Any] | None]: ...
@@ -1,7 +1,7 @@
1
1
  from _typeshed import Incomplete
2
2
  from collections.abc import Callable as Callable
3
3
  from functools import lru_cache
4
- from homeassistant.const import CONCENTRATION_GRAMS_PER_CUBIC_METER as CONCENTRATION_GRAMS_PER_CUBIC_METER, CONCENTRATION_MICROGRAMS_PER_CUBIC_METER as CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER as CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER, CONCENTRATION_PARTS_PER_BILLION as CONCENTRATION_PARTS_PER_BILLION, CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, PERCENTAGE as PERCENTAGE, UNIT_NOT_RECOGNIZED_TEMPLATE as UNIT_NOT_RECOGNIZED_TEMPLATE, UnitOfArea as UnitOfArea, UnitOfBloodGlucoseConcentration as UnitOfBloodGlucoseConcentration, UnitOfConductivity as UnitOfConductivity, UnitOfDataRate as UnitOfDataRate, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfEnergyDistance as UnitOfEnergyDistance, UnitOfInformation as UnitOfInformation, UnitOfLength as UnitOfLength, UnitOfMass as UnitOfMass, UnitOfPower as UnitOfPower, UnitOfPressure as UnitOfPressure, UnitOfReactiveEnergy as UnitOfReactiveEnergy, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime, UnitOfVolume as UnitOfVolume, UnitOfVolumeFlowRate as UnitOfVolumeFlowRate, UnitOfVolumetricFlux as UnitOfVolumetricFlux
4
+ from homeassistant.const import CONCENTRATION_GRAMS_PER_CUBIC_METER as CONCENTRATION_GRAMS_PER_CUBIC_METER, CONCENTRATION_MICROGRAMS_PER_CUBIC_METER as CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER as CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER, CONCENTRATION_PARTS_PER_BILLION as CONCENTRATION_PARTS_PER_BILLION, CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, PERCENTAGE as PERCENTAGE, UNIT_NOT_RECOGNIZED_TEMPLATE as UNIT_NOT_RECOGNIZED_TEMPLATE, UnitOfApparentPower as UnitOfApparentPower, UnitOfArea as UnitOfArea, UnitOfBloodGlucoseConcentration as UnitOfBloodGlucoseConcentration, UnitOfConductivity as UnitOfConductivity, UnitOfDataRate as UnitOfDataRate, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfEnergyDistance as UnitOfEnergyDistance, UnitOfInformation as UnitOfInformation, UnitOfLength as UnitOfLength, UnitOfMass as UnitOfMass, UnitOfPower as UnitOfPower, UnitOfPressure as UnitOfPressure, UnitOfReactiveEnergy as UnitOfReactiveEnergy, UnitOfReactivePower as UnitOfReactivePower, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime, UnitOfVolume as UnitOfVolume, UnitOfVolumeFlowRate as UnitOfVolumeFlowRate, UnitOfVolumetricFlux as UnitOfVolumetricFlux
5
5
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
6
6
 
7
7
  _MM_TO_M: float
@@ -119,6 +119,11 @@ class MassConverter(BaseUnitConverter):
119
119
  _UNIT_CONVERSION: dict[str | None, float]
120
120
  VALID_UNITS: Incomplete
121
121
 
122
+ class ApparentPowerConverter(BaseUnitConverter):
123
+ UNIT_CLASS: str
124
+ _UNIT_CONVERSION: dict[str | None, float]
125
+ VALID_UNITS: Incomplete
126
+
122
127
  class PowerConverter(BaseUnitConverter):
123
128
  UNIT_CLASS: str
124
129
  _UNIT_CONVERSION: dict[str | None, float]
@@ -134,6 +139,11 @@ class ReactiveEnergyConverter(BaseUnitConverter):
134
139
  _UNIT_CONVERSION: dict[str | None, float]
135
140
  VALID_UNITS: Incomplete
136
141
 
142
+ class ReactivePowerConverter(BaseUnitConverter):
143
+ UNIT_CLASS: str
144
+ _UNIT_CONVERSION: dict[str | None, float]
145
+ VALID_UNITS: Incomplete
146
+
137
147
  class SpeedConverter(BaseUnitConverter):
138
148
  UNIT_CLASS: str
139
149
  _UNIT_CONVERSION: dict[str | None, float]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: homeassistant-stubs
3
- Version: 2025.8.2
3
+ Version: 2025.9.0
4
4
  Summary: PEP 484 typing stubs for Home Assistant Core
5
5
  Project-URL: Homepage, https://github.com/KapJI/homeassistant-stubs
6
6
  Project-URL: Bug Tracker, https://github.com/KapJI/homeassistant-stubs/issues
@@ -18,7 +18,7 @@ Classifier: Topic :: Home Automation
18
18
  Classifier: Topic :: Software Development
19
19
  Classifier: Typing :: Typed
20
20
  Requires-Python: >=3.13.2
21
- Requires-Dist: homeassistant==2025.8.2
21
+ Requires-Dist: homeassistant==2025.9.0
22
22
  Description-Content-Type: text/markdown
23
23
 
24
24
  [![CI](https://github.com/KapJI/homeassistant-stubs/actions/workflows/ci.yaml/badge.svg)](https://github.com/KapJI/homeassistant-stubs/actions/workflows/ci.yaml)