DriverInterfaceError: Point not configured on device: Heartbeat

DriverInterfaceError: Point not configured on device: Heartbeat

在我的边缘设备日志文件中,我注意到有一个错误,我认为它与我为 platform.driver 代理修改 restful driver 的方式有关。我这样做是因为我的休息 API 调用需要通过一个调用来解析大量数据,而我认为这个驱动程序的编写方式是使用 BASE URL 然后驱动程序配置文件只添加了“指向 BASE URL 以请求数据。 (希望这是有道理的)

这个心跳错误可能是我修改 restful 驱动程序的方式造成的吗?

2022-06-01 17:10:44,992 (platform_driveragent-4.0 2731042) volttron.platform.vip.agent.subsystems.rpc ERROR: unhandled exception in JSON-RPC method 'heart_beat':
Traceback (most recent call last):
  File "/home/geb/.volttron/agents/db5dc5bf-e75f-4ef3-a672-235f23c3f124/platform_driveragent-4.0/platform_driver/interfaces/__init__.py", line 296, in get_register_by_name
    return self.point_map[name]
KeyError: 'Heartbeat'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/geb/volttron/volttron/platform/vip/agent/subsystems/rpc.py", line 181, in method
    return method(*args, **kwargs)
  File "/home/geb/.volttron/agents/db5dc5bf-e75f-4ef3-a672-235f23c3f124/platform_driveragent-4.0/platform_driver/agent.py", line 504, in heart_beat
    device.heart_beat()
  File "/home/geb/.volttron/agents/db5dc5bf-e75f-4ef3-a672-235f23c3f124/platform_driveragent-4.0/platform_driver/driver.py", line 327, in heart_beat
    self.set_point(self.heart_beat_point, self.heart_beat_value)
  File "/home/geb/.volttron/agents/db5dc5bf-e75f-4ef3-a672-235f23c3f124/platform_driveragent-4.0/platform_driver/driver.py", line 344, in set_point
    return self.interface.set_point(point_name, value, **kwargs)
  File "/home/geb/.volttron/agents/db5dc5bf-e75f-4ef3-a672-235f23c3f124/platform_driveragent-4.0/platform_driver/interfaces/__init__.py", line 599, in set_point
    result = self._set_point(point_name, value)
  File "/home/geb/.volttron/agents/db5dc5bf-e75f-4ef3-a672-235f23c3f124/platform_driveragent-4.0/platform_driver/interfaces/restful.py", line 78, in _set_point
    register = self.get_register_by_name(point_name)
  File "/home/geb/.volttron/agents/db5dc5bf-e75f-4ef3-a672-235f23c3f124/platform_driveragent-4.0/platform_driver/interfaces/__init__.py", line 298, in get_register_by_name
    raise DriverInterfaceError("Point not configured on device: "+name)
platform_driver.interfaces.DriverInterfaceError: Point not configured on device: Heartbeat

@bbartling。请确保与您的 restful 驱动程序关联的注册表 csv 文件具有 'heartbeat' 点。另外,请确保在 restful 驱动程序配置中配置了 'heart_beat_point'。来自 Volttron Driver Framework docs:

heart_beat_point - A Point which to toggle to indicate a heartbeat to the device. A point with this Volttron Point Name must exist in the registry. If this setting is missing the driver will not send a heart beat signal to the device. Heart beats are triggered by the Actuator Agent which must be running to use this feature.