1

VOLTTRON のドキュメントを読みましたが、ボルトトロンのアクチュエータ エージェントの pubsub メカニズムに関連する RPC メカニズムを理解することにまだ疑問があります。

たとえば、「キャンパス/建物/ユニット」というトピックのデバイスがあり、そのデバイスを月曜日の午後 5 時から午後 6 時までの 1 時間予約します。次に、このイベントのコードを実行するにはどうすればよいですか? イベントをキャッチするために、アクチュエータ エージェントから何らかのトピックにサブスクライブする必要がありますか、それとも、rpc 経由で setpoint を定期的に使用してみて、例外がスローされない場合は、デバイスに排他ロックが設定されていることを確認する必要がありますか?これで、デバイスで getpoint/setpoint を呼び出すことができますか?

4

1 に答える 1

2

デバイス用に予約された時間ブロックが開始されると、アクチュエータ エージェントはその事実を 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 は、設定された間隔で更新されたウィンドウ値で同じ情報を再発行することを覚えておくことが重要です。(デフォルトでは、これは 1 分に 1 回で、構成可能です) ウィンドウの値を使用して、割り当てられた時間ブロックの間にアクションをトリガーできます。

于 2016-07-11T19:57:24.977 に答える