{"action":"created","issue":{"url":"https://api.github.com/repos/VOLTTRON/volttron/issues/390","repository_url":"https://api.github.com/repos/VOLTTRON/volttron","labels_url":"https://api.github.com/repos/VOLTTRON/volttron/issues/390/labels{/name}","comments_url":"https://api.github.com/repos/VOLTTRON/volttron/issues/390/comments","events_url":"https://api.github.com/repos/VOLTTRON/volttron/issues/390/events","html_url":"https://github.com/VOLTTRON/volttron/issues/390","id":139717078,"number":390,"title":"Implement an optional heartbeat periodic for the base agent","user":{"login":"jhaack","id":6992449,"avatar_url":"https://avatars.githubusercontent.com/u/6992449?v=3","gravatar_id":"","url":"https://api.github.com/users/jhaack","html_url":"https://github.com/jhaack","followers_url":"https://api.github.com/users/jhaack/followers","following_url":"https://api.github.com/users/jhaack/following{/other_user}","gists_url":"https://api.github.com/users/jhaack/gists{/gist_id}","starred_url":"https://api.github.com/users/jhaack/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jhaack/subscriptions","organizations_url":"https://api.github.com/users/jhaack/orgs","repos_url":"https://api.github.com/users/jhaack/repos","events_url":"https://api.github.com/users/jhaack/events{/privacy}","received_events_url":"https://api.github.com/users/jhaack/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/VOLTTRON/volttron/labels/Task%201","name":"Task 1","color":"009800"}],"state":"open","locked":false,"assignee":{"login":"mikeroup","id":4081515,"avatar_url":"https://avatars.githubusercontent.com/u/4081515?v=3","gravatar_id":"","url":"https://api.github.com/users/mikeroup","html_url":"https://github.com/mikeroup","followers_url":"https://api.github.com/users/mikeroup/followers","following_url":"https://api.github.com/users/mikeroup/following{/other_user}","gists_url":"https://api.github.com/users/mikeroup/gists{/gist_id}","starred_url":"https://api.github.com/users/mikeroup/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikeroup/subscriptions","organizations_url":"https://api.github.com/users/mikeroup/orgs","repos_url":"https://api.github.com/users/mikeroup/repos","events_url":"https://api.github.com/users/mikeroup/events{/privacy}","received_events_url":"https://api.github.com/users/mikeroup/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/VOLTTRON/volttron/milestones/7","html_url":"https://github.com/VOLTTRON/volttron/milestones/VOLTTRON%203.5","labels_url":"https://api.github.com/repos/VOLTTRON/volttron/milestones/7/labels","id":1273807,"number":7,"title":"VOLTTRON 3.5","description":"","creator":{"login":"jhaack","id":6992449,"avatar_url":"https://avatars.githubusercontent.com/u/6992449?v=3","gravatar_id":"","url":"https://api.github.com/users/jhaack","html_url":"https://github.com/jhaack","followers_url":"https://api.github.com/users/jhaack/followers","following_url":"https://api.github.com/users/jhaack/following{/other_user}","gists_url":"https://api.github.com/users/jhaack/gists{/gist_id}","starred_url":"https://api.github.com/users/jhaack/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jhaack/subscriptions","organizations_url":"https://api.github.com/users/jhaack/orgs","repos_url":"https://api.github.com/users/jhaack/repos","events_url":"https://api.github.com/users/jhaack/events{/privacy}","received_events_url":"https://api.github.com/users/jhaack/received_events","type":"User","site_admin":false},"open_issues":54,"closed_issues":10,"state":"open","created_at":"2015-08-26T17:34:05Z","updated_at":"2016-03-11T00:14:38Z","due_on":"2016-03-31T07:00:00Z","closed_at":null},"comments":5,"created_at":"2016-03-09T22:15:08Z","updated_at":"2016-03-12T02:43:10Z","closed_at":null,"body":"This task should be able to accomplish the following:\r\n\r\n- [x] Be available to all agents inheriting from Agent (volttron.platform.vip.agent.Agent I believe)\r\n- [x] Be able to enable/disable and modify period through one or more rpc calls.\r\n- [x] Be able to specify heartbeat_enabled and period through configuration files.\r\n- [ ] Will publish heartbeat to the pubsub bus at heartbeat/agentid/uuid.\r\n- [ ] The message will be a string representation of a python datetime localtime that is formatted using @kmonson spiffy function\r\n\r\nSee #394 services and core agents that should utilize this by default.\r\n"},"comment":{"url":"https://api.github.com/repos/VOLTTRON/volttron/issues/comments/195644823","html_url":"https://github.com/VOLTTRON/volttron/issues/390#issuecomment-195644823","issue_url":"https://api.github.com/repos/VOLTTRON/volttron/issues/390","id":195644823,"user":{"login":"craig8","id":3979063,"avatar_url":"https://avatars.githubusercontent.com/u/3979063?v=3","gravatar_id":"","url":"https://api.github.com/users/craig8","html_url":"https://github.com/craig8","followers_url":"https://api.github.com/users/craig8/followers","following_url":"https://api.github.com/users/craig8/following{/other_user}","gists_url":"https://api.github.com/users/craig8/gists{/gist_id}","starred_url":"https://api.github.com/users/craig8/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/craig8/subscriptions","organizations_url":"https://api.github.com/users/craig8/orgs","repos_url":"https://api.github.com/users/craig8/repos","events_url":"https://api.github.com/users/craig8/events{/privacy}","received_events_url":"https://api.github.com/users/craig8/received_events","type":"User","site_admin":false},"created_at":"2016-03-12T02:43:10Z","updated_at":"2016-03-12T02:43:10Z","body":"For the service agenta there will only be one on a specific instance so it will be unique.  For any agent that is \"installed\" i.e. via volttron-ctl there will be a uuid folder name.  There may or may not be a unique vip.identity specified in the agent configuration file.\r\n\r\nThe ultimate goal is to be able to state that at this point in time this agent known as foo is running.  If there are multiple foo agents installed there need to be a way to distinguish between each of the installed agents.  \r\n\r\nNote you can get the agents uuid directly from the environment using os.environ['AGENT_UUID']\r\n"}}