1

我阅读了 VOLTTRON 的文档,但我仍然对理解与 volttron 中执行器代理的 pubsub 机制相关的 RPC 机制存在疑问。

例如,我有一个主题为“校园/建筑/单元”的设备,我在星期一下午 5 点到 6 点之间将设备保留一小时。那么我如何为这个事件运行我的代码呢?我是否需要从执行器代理订阅某些主题才能捕获事件,或者我是否需要定期尝试通过 rpc 使用设置点并查看如果没有抛出异常,那么我们确实在设备上拥有了排他锁,因此现在我们可以在设备上调用 getpoint/setpoint 了吗?

4

1 回答 1

2

当设备的预留时间块启动时,Actuator Agent 将开始在 pubsub 上发布该事实。

使用的主题是

devices/actuators/schedule/announce/<full device path>

或者在你的情况下

devices/actuators/schedule/announce/campus/building/unit

发布没有消息和具有以下格式的标头:

{
    'requesterID': <Agent with access>,
    'taskID': <Task associated with the time slot>
    'window': <Seconds remaining in the time slot>
}

(如果这一切都在标头中的事实看起来很奇怪,那是因为这可以追溯到 VOLTTRON Lite 时代,我们仍在决定标头中的内容以及消息中的内容。)

理想情况下,代理会安排一段时间,然后订阅公告主题。该主题的处理程序将在分配的时间段内触发活动的开始。

重要的是要记住,Actuator Agent 会以设定的时间间隔重新发布具有更新窗口值的相同信息。(默认情况下,这是一分钟一次,并且是可配置的)您可以使用窗口值在分配的时间段内触发操作。

于 2016-07-11T19:57:24.977 回答