Search code examples
volttron

Sending agent requests through volttron central


Is there a way to send calls to rpc exposed methods through volttron central other than using the uuid of the agent?

On the volttron read the docs, it seems like you can send requests using the tag or name, but when I attempt to do so, the request times out.

I.e. I can use this without issue,

"method": "platforms.uuid.###.agents.uuid.###.inspect"

But I can't find the right variation of

"method": "platforms.uuid.###.agents.tag.###.inspect"

that succeeds


Solution

  • Currently you can only use the uuid to reference agents running on a specific platform. We do have hopes of extending that to tags and/or identities (not really names).

    Identities make the most sense because they are required to be unique across an instance. The tags/names are not required to be unique which could be an advantage or a detriment depending upon the methods application (e.g. what would the return value of all the method be when all of the agent foo.sayhello method is called?)?

    The exception to this rule is a shortcut method to a specific agent called the platform.historian. For this we promote it to a little bit higher saying that if we call query.historian it will only be the identity platform.historian, thus we can be assured we are getting the exact agent we want.

    Now with all that being said you can still access the agent's identity in the develop and soon to be released release/4.1 branch. From that unique identity you can create a mapping between it and the uuid of the agent and build a method to transform it. If you do this it would be great to commit that back after integrating it into the VCP agent.

    Good luck!

    PS you can also reach us on our slack channel https://volttron-community.signup.team