Skip to main content

指定并行更新的数量

理由

某些设备或服务不喜欢同时接收大量请求。
为了避免这种情况,Home Assistant 内置了一个功能,以限制同时发送到设备或服务的请求数量。

这将适用于实体更新和动作调用。

我们认为显式设置并行更新的数量是一种良好的实践。

示例实现

在下面的示例中,我们将并行更新的数量设置为 1。
这意味着如果传感器平台上有更多实体,它们将逐个更新。
如果不需要限制并行更新的数量,可以将其设置为 0。

sensor.py

PARALLEL_UPDATES = 1

class MySensor(SensorEntity):
"""传感器的表示。"""

def __init__(self, device: Device) -> None:
"""初始化传感器。"""
...

使用协调器时

使用协调器时,您已经集中管理数据更新。
这意味着您可以为只读平台(binary_sensorsensordevice_trackerevent)设置 PARALLEL_UPDATES = 0
并且只有动作调用会考虑设置适当的并行更新数量。

sensor.py

# 使用协调器集中管理数据更新
PARALLEL_UPDATES = 0

class MySensor(CoordinatorEntity, SensorEntity):
"""传感器的表示。"""

def __init__(self, device: Device) -> None:
"""初始化传感器。"""
...

额外资源

有关请求并行性的更多信息,请查看 文档

例外

对此规则没有例外。