On my edge device log files I notice that there is an error that I think is related to the how I modified the restful driver for the platform.driver agent. I did this because my rest API call needs to parse alot of data with one call Vs I think the way this driver is written there it uses a BASE URL and then the driver config file just adds the "point" to the BASE URL to request data. (hopefully that makes sense)
Could this heartbeat error be from how I modified the restful driver?
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. Please ensure that the registry csv file associated with your restful driver has a 'heartbeat' point. Also, ensure that 'heart_beat_point' is configured in your restful driver configuration. From the 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.