VOLTTRON
A platform that provides services for collecting and storing data from buildings and devices. It provides an environment for developing applications that interact with data.
https://github.com/VOLTTRON/volttron
Keywords
bacnet buildings message-bus modbus office-hours python volttron volttron-applications volttron-instance
Last synced: about 1 year ago
JSON representation
Acceptance Criteria
- Revelant topics? true
- External users? true
- Open source license? true
- Active? true
- Fork? false
Repository metadata
VOLTTRON Distributed Control System Platform
- Host: GitHub
- URL: https://github.com/VOLTTRON/volttron
- Owner: VOLTTRON
- License: other
- Created: 2013-11-07T02:07:46.000Z (over 11 years ago)
- Default Branch: main
- Last Pushed: 2024-01-16T21:32:09.000Z (over 1 year ago)
- Last Synced: 2024-01-23T04:16:04.896Z (over 1 year ago)
- Topics: bacnet, buildings, message-bus, modbus, office-hours, python, volttron, volttron-applications, volttron-instance
- Language: Python
- Homepage: https://volttron.readthedocs.io/
- Size: 149 MB
- Stars: 441
- Watchers: 50
- Forks: 219
- Open Issues: 396
- Releases: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
README.md
VOLTTRON™ is an open source platform for distributed sensing and control. The
platform provides services for collecting and storing data from buildings and
devices and provides an environment for developing applications which interact
with that data.
Upgrading to VOLTTRON 8.x
VOLTTRON 8 introduces four changes that require an explict upgrade step when upgrading from an earlier VOLTTRON version
1. Dynamic RPC authorization feature - This requires a modification to the auth file. If you have a pre-existing
instance of VOLTTRON running on an older version, the auth file will need to be updated.
2. Historian agents now store the cache database (backup.sqlite file) in
<volttron home>/agents/<agent uuid>/<agentname-version>/<agentname-version>.agent-data directory instead of
<volttron home>/agents/<agent uuid>/<agentname-version> directory. In future all core agents will write data only
to the <agentname-version>.agent-data subdirectory. This is because vctl install --force backs up and restores
only the contents of this directory.
3. SQLHistorians (historian version 4.0.0 and above) now use a new database schema where metadata is stored in
topics table instead of separate metadata table. SQLHistorians with version >= 4.0.0 can work with existing
database with older schema however the historian agent code should be upgraded to newer version (>=4.0.0) to run
with VOLTTRON 8 core.
4. VOLTTRON feature to run individual agents as unique Unix users is now named "agent-isolation-mode" and is
consistently referred to using this name in code, configuration, and documentation. Before VOLTTRON 8.2 this
configuration parameter was called "secure-agent-users" and related documentation referred to this mode as
"secure mode".
To upgrade:
1. If upgrading historian, make sure historians are not in auto start mode. To remove any historian from auto start
mode use the command 'vctl disable <uuid of historian that is currently enabled>. This is necessary so that the old
sqlhistorian does not automatically start after step 5.
2. Update volttron source code version to VOLTTRON 8
3. activate the volttron environment, and run ```python bootstrap.py --force```. If you have
any additional bootstrap options that you need (rabbitmq, web, drivers, etc.) include these in the above command.
4. Run ```volttron-upgrade``` to update the auth file, move historian cache files into agent-data directory, and
rename the config parameter "secure-agent-users" in VOLTTRON_HOME/config to "agent-isolation-mode"
**Note** that the upgrade script will only move the backup.sqlite file and will not move sqlite historian's db
file if they are within the install directory. If using a SQLite historian, please backup the database file of
sqlite historian before upgrading to the latest historian version.
5. Start VOLTTRON
6. Run ```vctl install --force --vip-identity <vip id of existing historian> --agent-config <config>``` to upgrade
to the latest historian version. vctl install --force will backup the cache in <agent-version>.agent-data
folder, installs the latest version of the historian and restore the contents of
<agent-version>.agent-data folder.
Upgrading aggregate historians
VOLTTRON 8 also comes with updated SQL aggregate historian schema. However, there is no automated upgrade path for
aggregate historian. To upgrade an existing aggregate historian please refer to the CHANGELOG.md within
SQLAggregateHistorian source directory
Features
- Message Bus allows agents to subscribe to data sources and publish results and messages.
- Driver framework for collecting data from and sending control actions to buildings and devices.
- Historian framework for storing data.
- Agent lifecycle managment in the platform
- Web UI for managing deployed instances from a single central instance.
Installation
VOLTTRON is written in Python 3.6+ and runs on Linux Operating Systems. For
users unfamiliar with those technologies, the following resources are recommended:
1. Install prerequisites
From version 7.0, VOLTTRON requires python 3 with a minimum version of 3.6; it is tested only systems supporting that as a native package.
On Debian-based systems (Ubuntu bionic, debian buster, raspbian buster), these can all be installed with the following commands:
sudo apt-get update
sudo apt-get install build-essential libffi-dev python3-dev python3-venv openssl libssl-dev libevent-dev git
(Note: libffi-dev
seems to only be required on arm-based systems.)
On Redhat or CENTOS systems, these can all be installed with the following command:
sudo yum update
sudo yum install make automake gcc gcc-c++ kernel-devel python3.6-devel pythone3.6-venv openssl openssl-devel libevent-devel git
2. Clone VOLTTRON code
From version 6.0, VOLTTRON supports two message buses - ZMQ and RabbitMQ.
git clone https://github.com/VOLTTRON/volttron --branch <branch name>
3. Setup virtual environment
Steps for ZMQ
Run the following command to install all required packages
cd <volttron clone directory>
python3 bootstrap.py
source env/bin/activate
Proceed to step 4.
You can deactivate the environment at any time by running deactivate
.
Steps for RabbitMQ
1. Install Erlang version 24 packages
For RabbitMQ based VOLTTRON, some RabbitMQ specific software packages must be installed.
On Debian based systems and CentOS 6/7
If you are running an Debian or CentOS system, you can install the RabbitMQ dependencies by running the rabbit
dependencies script, passing in the OS name and appropriate distribution as parameters. The following are supported:
-
debian focal
(for Ubuntu 20.04) -
debian bionic
(for Ubuntu 18.04) -
debian stretch
(for Debian Stretch) -
debian buster
(for Debian Buster) -
raspbian buster
(for Raspbian/Raspberry Pi OS buster)
Example command:
./scripts/rabbit_dependencies.sh debian xenial
Alternatively
You can download and install Erlang from Erlang Solutions.
Please include OTP/components - ssl, public_key, asn1, and crypto.
Also lock your version of Erlang using the yum-plugin-versionlock
2. Configure hostname
Make sure that your hostname is correctly configured in /etc/hosts (See this StackOverflow Post).
If you are testing with VMs make please make sure to provide unique host names for each of the VM you are using.
The hostname should be resolvable to a valid IP when running on bridged mode. RabbitMQ checks for this during initial
boot. Without this (for example, when running on a VM in NAT mode) RabbitMQ start would fail with the error "unable to
connect to empd (port 4369) on ." Note: RabbitMQ startup error would show up in syslog (/var/log/messages) file
and not in RabbitMQ logs (/var/log/rabbitmq/[email protected])
3. Bootstrap
cd volttron
python3 bootstrap.py --rabbitmq [optional install directory. defaults to
<user_home>/rabbitmq_server]
This will build the platform and create a virtual Python environment and
dependencies for RabbitMQ. It also installs RabbitMQ server as the current user.
If an install path is provided, that path should exist and the user should have
write permissions. RabbitMQ will be installed under <install dir>/rabbitmq_server-<rmq-version>
.
The rest of the documentation refers to the directory <install dir>/rabbitmq_server-<rmq-version>
as
$RABBITMQ_HOME
You can check if the RabbitMQ server is installed by checking its status. Please
note, the RABBITMQ_HOME
environment variable can be set in ~/.bashrc. If doing so,
it needs to be set to the RabbitMQ installation directory (default path is
<user_home>/rabbitmq_server/rabbitmq_server-<rmq-version>
)
echo 'export RABBITMQ_HOME=$HOME/rabbitmq_server/rabbitmq_server-3.9.7'|sudo tee --append ~/.bashrc
source ~/.bashrc
$RABBITMQ_HOME/sbin/rabbitmqctl status
4. Activate the environment
source env/bin/activate
You can deactivate the environment at any time by running deactivate
.
5. Create RabbitMQ setup for VOLTTRON:
vcfg rabbitmq single [--config optional path to rabbitmq_config.yml]
Refer to examples/configurations/rabbitmq/rabbitmq_config.yml
for a sample configuration file.
At a minimum you will need to provide the hostname and a unique common-name
(under certificate-data) in the configuration file. Note: common-name must be
unique. The general convention is to use <voltttron instance name>-root-ca
.
Running the above command without the optional configuration file parameter will
cause the user to be prompted for all the required data in the command prompt.
vcfg
will use that data to generate a rabbitmq_config.yml file in the VOLTTRON_HOME
directory.
If the above configuration file is being used as a basis, be sure to update it with
the hostname of the deployment (this should be the fully qualified domain name
of the system).
This script creates a new virtual host and creates SSL certificates needed
for this VOLTTRON instance. These certificates get created under the subdirectory
"certificates" in your VOLTTRON home (typically in ~/.volttron). It
then creates the main VIP exchange named "volttron" to route message between
the platform and agents and alternate exchange to capture unrouteable messages.
NOTE: We configure the RabbitMQ instance for a single volttron_home and
volttron_instance. This script will confirm with the user the volttron_home to
be configured. The VOLTTRON instance name will be read from volttron_home/config
if available, if not the user will be prompted for VOLTTRON instance name. To
run the scripts without any prompts, save the VOLTTRON instance name in
volttron_home/config file and pass the VOLTTRON home directory as a command line
argument. For example: vcfg --vhome /home/vdev/.new_vhome rabbitmq single
The Following are the example inputs for vcfg rabbitmq single
command. Since no
config file is passed the script prompts for necessary details.
Your VOLTTRON_HOME currently set to: /home/vdev/new_vhome2
Is this the volttron you are attempting to setup? [Y]:
Creating rmq config yml
RabbitMQ server home: [/home/vdev/rabbitmq_server/rabbitmq_server-3.9.7]:
Fully qualified domain name of the system: [cs_cbox.pnl.gov]:
Enable SSL Authentication: [Y]:
Please enter the following details for root CA certificates
Country: [US]:
State: Washington
Location: Richland
Organization: PNNL
Organization Unit: Volttron-Team
Common Name: [volttron1-root-ca]:
Do you want to use default values for RabbitMQ home, ports, and virtual host: [Y]: N
Name of the virtual host under which RabbitMQ VOLTTRON will be running: [volttron]:
AMQP port for RabbitMQ: [5672]:
http port for the RabbitMQ management plugin: [15672]:
AMQPS (SSL) port RabbitMQ address: [5671]:
https port for the RabbitMQ management plugin: [15671]:
INFO:rmq_setup.pyc:Starting rabbitmq server
Warning: PID file not written; -detached was passed.
INFO:rmq_setup.pyc:**Started rmq server at /home/vdev/rabbitmq_server/rabbitmq_server-3.9.7
INFO:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): localhost
INFO:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): localhost
INFO:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): localhost
INFO:rmq_setup.pyc:
Checking for CA certificate
INFO:rmq_setup.pyc:
Root CA (/home/vdev/new_vhome2/certificates/certs/volttron1-root-ca.crt) NOT Found. Creating root ca for volttron instance
Created CA cert
INFO:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): localhost
INFO:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): localhost
INFO:rmq_setup.pyc:**Stopped rmq server
Warning: PID file not written; -detached was passed.
INFO:rmq_setup.pyc:**Started rmq server at /home/vdev/rabbitmq_server/rabbitmq_server-3.9.7
INFO:rmq_setup.pyc:
#######################
Setup complete for volttron home /home/vdev/new_vhome2 with instance name=volttron1
Notes:
- Please set environment variable `VOLTTRON_HOME` to `/home/vdev/new_vhome2` before starting volttron
- On production environments, restrict write access to
/home/vdev/new_vhome2/certificates/certs/volttron1-root-ca.crt to only admin user. For example: sudo chown root /home/vdev/new_vhome2/certificates/certs/volttron1-root-ca.crt
- A new admin user was created with user name: volttron1-admin and password=default_passwd.
You could change this user's password by logging into <https://cs_cbox.pnl.gov:15671/> Please update /home/vdev/new_vhome2/rabbitmq_config.yml if you change password
#######################
4. Test
We are now ready to start the VOLTTRON instance. If configured with a RabbitMQ message bus a config file would have been
generated in $VOLTTRON\_HOME/config
with the entry message-bus=rmq
. If you need to revert to ZeroMQ based
VOLTTRON, you will have to either remove "message-bus" parameter or set it to default "zmq" in $VOLTTRON\_HOME/config
and restart the volttron process. The following command starts the VOLTTRON process in the background:
volttron -vv -l volttron.log &
This command causes the shell to enter the virtual Python environment and then starts the platform in debug (vv) mode
with a log file named volttron.log.
Next, start an example listener to see it publish and subscribe to the message bus:
vctl install examples/ListenerAgent
This script handles several commands for installing and starting an agent after removing an old copy. This
simple agent publishes a heartbeat message and listens to everything on the message bus. Look at the VOLTTRON log to see
the activity:
tail volttron.log
Listener agent heartbeat publishes appear in the logs as:
2020-04-20 18:49:31,395 (listeneragent-3.3 13458) __main__ INFO: Peer: pubsub, Sender: listeneragent-3.2_1:, Bus: , Topic: heartbeat/listeneragent-3.2_1, Headers: {'TimeStamp': '2020-04-20T18:49:31.393651+00:00', 'min_compatible_version': '3.0', 'max_compatible_version': ''}, Message:
'GOOD'
2020-04-20 18:49:36,394 (listeneragent-3.3 13458) __main__ INFO: Peer: pubsub, Sender: listeneragent-3.2_1:, Bus: , Topic: heartbeat/listeneragent-3.2_1, Headers: {'TimeStamp': '2020-04-20T18:49:36.392294+00:00', 'min_compatible_version': '3.0', 'max_compatible_version': ''}, Message:
'GOOD'
To top the platform run the following command:
./stop-volttron
Next Steps
There are several walkthroughs to explore additional aspects of the platform:
- Agent Development Walkthrough
- Demonstration of the management UI
- RabbitMQ setup with Federation and Shovel plugins
- Backward compatibility with the RabbitMQ message bus
Acquiring Third Party Agent Code
Third party agents are available under the volttron-applications repository. In
order to use those agents, clone the volttron-applications repository into the same
directory as the VOLTTRON source code:
cd <parent directory of volttron>
git clone https://github.com/VOLTTRON/volttron-applications.git develop
Contribute
How to contribute back:
Support
There are several options for VOLTTRONTM support.
- A VOLTTRONTM office hours telecon takes place every other Friday at 11am Pacific over Zoom.
- A mailing list for announcements and reminders
- The VOLTTRONTM contact email for being added to office hours, the mailing list, and for inquiries is: [email protected]
- The preferred method for questions is through StackOverflow since this is easily discoverable by others who may have the same issue.
- GitHub issue tracker for feature requests, bug reports, and following development activities
- VOLTTRON now has a Slack channel
License
The project is licensed under Apache 2.
Owner metadata
- Name: VOLTTRON
- Login: VOLTTRON
- Email: [email protected]
- Kind: organization
- Description: An open source platform for distributed sensing and control.
- Website: http://volttron.org
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/5875448?v=4
- Repositories: 61
- Last ynced at: 2023-08-05T14:02:54.313Z
- Profile URL: https://github.com/VOLTTRON
Committers metadata
Last synced: over 1 year ago
Total Commits: 7,801
Total Committers: 108
Avg Commits per committer: 72.231
Development Distribution Score (DDS): 0.688
Commits in past year: 1
Committers in past year: 1
Avg Commits per committer in past year: 1.0
Development Distribution Score (DDS) in past year: 0.0
Name | Commits | |
---|---|---|
Craig Allwardt | c****t@p****v | 2434 |
schandrika | c****a@p****v | 871 |
Shwetha Niddodi | s****i@p****v | 540 |
Kyle Monson | k****n@p****v | 439 |
Brandon Carpenter | b****r@p****v | 410 |
jklarson | j****n@p****v | 378 |
Jereme Haack | J****k@p****v | 342 |
sgilbride | s****e@p****v | 315 |
Zach Beech | Z****h@p****v | 243 |
Joe Chapman | j****n@p****v | 224 |
Mike Roup | m****p@p****v | 173 |
schandrika | I****3@9****3 | 154 |
Edward Ellis | e****s@p****v | 151 |
Mark Bonicillo | m****o@p****v | 125 |
Tim Kang | t****g@p****v | 115 |
Robert Lutes | r****s@p****v | 103 |
Andrew Rodgers | a****w@g****m | 79 |
Joe Chapman | j****x@h****m | 66 |
Poorva | p****9@g****m | 61 |
rlutes | l****s@l****x | 60 |
schandrika | I****3@9****! | 51 |
rob-calvert | r****b@k****m | 40 |
Kirsten Pierce | k****e@p****v | 40 |
Brandon Carpenter | b****n@8****m | 31 |
Anh | a****1@g****m | 25 |
Ben LaRoque | b****e@ ****v | 18 |
Deepthi Vaidhynathan | d****n@g****m | 17 |
jchap-pnnl | j****n@p****v | 16 |
Thibaud Nesztler | t****r@e****m | 15 |
Nathan Tenney | n****y@p****v | 14 |
and 78 more... |
Committer domains:
- pnnl.gov: 31
- 8minutenergy.com: 3
- kisensum.com: 2
- anselmbradford.com: 1
- ip-172-31-2-44.ec2.internal: 1
- case.edu: 1
- ecolongllc.com: 1
- aceiotsolutions.com: 1
- pbanz.com: 1
- volttron-market.home: 1
- uw.edu: 1
- uncc.edu: 1
- the-merritts.net: 1
- burntfen.com: 1
- utoledo.edu: 1
- ecorithm.com: 1
- volttron-virtualbox.(none): 1
- ornl.gov: 1
- gmx.de: 1
- stanford.edu: 1
- acedrew.com: 1
- myjessie.gov: 1
- mesgtone.net: 1
- intwineconnect.com: 1
- naunetcorp.com: 1
- rtu1.pnl.gov: 1
- partner.bmw.co.za: 1
- monkey.pnl.gov: 1
- foff.com: 1
- volttrondev.com: 1
- ubuntu1804.pnl.gov: 1
- hiliosits.com: 1
- pnnl.gov: 1
Issue and Pull Request metadata
Last synced: over 1 year ago
Total issues: 1,441
Total pull requests: 1,690
Average time to close issues: 7 months
Average time to close pull requests: 15 days
Total issue authors: 101
Total pull request authors: 82
Average comments per issue: 1.35
Average comments per pull request: 0.71
Merged pull request: 1,419
Bot issues: 0
Bot pull requests: 22
Past year issues: 34
Past year pull requests: 48
Past year average time to close issues: 25 days
Past year average time to close pull requests: 24 days
Past year issue authors: 8
Past year pull request authors: 8
Past year average comments per issue: 1.09
Past year average comments per pull request: 0.4
Past year merged pull request: 34
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- craig8 (511)
- jhaack (212)
- schandrika (122)
- shwethanidd (58)
- kmonson (53)
- zbeech (47)
- jchap-pnnl (47)
- acedrew (44)
- hashstat (27)
- bonicim (25)
- fstshrk (16)
- jklarson (16)
- poorva1209 (15)
- carlatpnl (12)
- rlutes (11)
Top Pull Request Authors
- craig8 (430)
- schandrika (167)
- shwethanidd (131)
- kmonson (108)
- jklarson (98)
- bonicim (92)
- ghost (90)
- sgilbride (85)
- jhaack (58)
- Siecje (37)
- zbeech (35)
- acedrew (35)
- dependabot[bot] (22)
- gwenkidd (21)
- rcalvert-cpi (20)
Top Issue Labels
- bug (192)
- enhancement (85)
- discussion (67)
- documentation item (62)
- task (45)
- future (35)
- 8.2 (28)
- test needed (28)
- drivers (26)
- critical (26)
- user request (22)
- 7.0 (16)
- low (15)
- agent development (12)
- duplicate (11)
- feature/web (10)
- 7.1 (9)
- community (9)
- ready (9)
- blocking (8)
- master driver (7)
- Epic (7)
- security (6)
- determine-need (5)
- management UI (5)
- under review (5)
- 8.2.1 (5)
- 9.0 (5)
- 8.1 (5)
- rest-api (4)
Top Pull Request Labels
- jira_tracked (36)
- dependencies (23)
- python (10)
- 8.2 (6)
- bug (5)
- 8.0 (5)
- PR In Progress (4)
- PR Change Needed (4)
- 8.1 (4)
- test needed (3)
- documentation item (3)
- agent development (2)
- cleanup (2)
- under review (2)
- in progress (2)
- PR Documentation Needed (2)
- drivers (2)
- question (1)
- discussion (1)
- complete (1)
- low (1)
- ready (1)
- volttron central agent (1)
- master driver (1)
- 8.2.1 (1)
- 9.0 (1)
- high (1)
Dependencies
- babel-core ^6.17.0 development
- babel-eslint ^7.0.0 development
- babel-loader ^6.2.5 development
- babel-preset-es2015 ^6.16.0 development
- babel-preset-react ^6.16.0 development
- babel-preset-stage-0 ^6.16.0 development
- case-sensitive-paths-webpack-plugin ^1.1.4 development
- clean-webpack-plugin ^0.1.13 development
- css-loader ^0.25.0 development
- del ^1.1.1 development
- eslint ^3.8.1 development
- eslint-loader ^1.6.0 development
- eslint-plugin-import ^2.0.1 development
- eslint-plugin-react ^6.4.1 development
- extract-text-webpack-plugin ^1.0.1 development
- file-loader ^0.9.0 development
- html-webpack-plugin ^2.22.0 development
- reactify ^1.0.0 development
- style-loader ^0.13.1 development
- url-loader ^0.5.7 development
- vinyl-source-stream ^1.0.0 development
- webpack ^1.13.2 development
- webpack-dev-server ^1.16.2 development
- babel-polyfill ^6.16.0
- babyparse ^0.4.5
- bluebird ^2.9.14
- chart.js ^2.5.0
- codemirror ^4.13.0
- flux ^2.0.1
- font-awesome ^4.6.3
- history ^3.0.0
- immutable ^3.8.1
- jquery =3.5.0
- keymirror ^0.1.1
- moment ^2.10.3
- node-uuid ^1.4.2
- normalize.css ^3.0.2
- path-to-regexp ^1.5.3
- react ^15.4.0
- react-addons-pure-render-mixin ^15.3.2
- react-addons-shallow-compare ^15.3.2
- react-chartjs-2 ^2.0.5
- react-click-outside ^2.1.0
- react-dom ^15.4.0
- react-router ^2.8.1
- react-select-me ^0.6.4
- through2 ^2.0.0
- cryptography ==2.3 test
- docker * test
- influxdb * test
- mock * test
- more-itertools >=4.0.0 test
- mysql-connector-python-rf * test
- numpy >1.13<2 test
- pandas * test
- psycopg2 * test
- pymongo * test
- pytest ==5.4.3 test
- pytest-timeout * test
- watchdog ==0.10.2 test
- watchdog-gevent ==0.1.1 test
- websocket-client * test
- volttron *
- Twisted *
- bacpypes *
- enum34 *
- funcsigs *
- gevent *
- greenlet *
- grequests *
- m2r2 *
- mock *
- monotonic *
- pbr *
- ply *
- psutil *
- pymodbus *
- pyserial *
- python-dateutil *
- pytz *
- pyzmq *
- requests *
- simplejson *
- six *
- sphinx ==3.3.0
- sphinx-autobuild *
- sphinx_rtd_theme *
- tzlocal *
- ujson *
- ws4py *
- zmq *
- zope.interface *
- volttron *
- volttron *
- volttron *
- volttron *
- volttron *
- volttron *
- volttron *
- volttron *
- volttron *
- volttron *
- PyYAML ==5.4
- dateutils ==0.6.7
- docker *
- pytz ==2019.3
- stomp.py ==6.0.0
- volttron *
- PyYAML ==5.4
- dateutils ==0.6.7
- pytz ==2019.3
- stomp.py ==6.0.0
- volttron *
- volttron *
- volttron *
- volttron *
- volttron *
- volttron *
- volttron *
- volttron *
- volttron *
- volttron *
- volttron *
- ply *
- volttron *
- volttron *
- PyYAML ==5.4.1
- cryptography ==2.3
- gevent ==20.6.1
- greenlet ==0.4.16
- grequests ==0.6.0
- idna <3,>=2.5
- ply ==3.11
- psutil ==5.8.0
- pyOpenSSL ==19.0.0
- python-dateutil ==2.8.2
- pytz ==2021.1
- pyzmq ==22.2.1
- requests ==2.23.0
- setuptools ==39.0.1
- tzlocal ==2.1
- watchdog-gevent ==0.1.1
- wheel ==0.30
- volttron *
- volttron *
- volttron *
- volttron *
- volttron *
- influxdb ==5.3.1
- volttron *
- volttron *
- numpy ==1.15.4
- transitions ==0.6.9
- volttron *
- SQLAlchemy ==1.1.4
- volttron *
- volttron *
- volttron *
- bacpypes ==0.16.7
- volttron *
- pydnp3 ==0.1.0
- volttron *
- volttron *
- volttron *
- volttron *
- volttron *
- paho-mqtt *
- volttron *
- pymongo ==3.7.2
- ply *
- volttron *
- suds-jurko ==0.6
- volttron *
- PyYAML ==3.12
- modbus-tk ==1.1.2
- pyserial ==3.5
- bacpypes ==0.16.7
- modbus-tk ==1.1.2
- pymodbus ==2.5.2
- pyserial ==3.5
- volttron *
- volttron *
- ply *
- volttron *
- ply *
- volttron *
- volttron *
- psutil *
- volttron *
- pint ==0.17
- volttron *
- volttron *
- volttron *
- volttron *
- statistics *
- volttron *
- volttron *
- volttron *
- volttron *
- volttron *
- actions/checkout v2 composite
- github/codeql-action/analyze v1 composite
- github/codeql-action/autobuild v1 composite
- github/codeql-action/init v1 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- actions/upload-artifact v2 composite
- volttron/volttron-build-action v4 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- actions/upload-artifact v2 composite
- volttron/volttron-build-action v4 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- actions/upload-artifact v2 composite
- volttron/volttron-build-action v4 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- actions/upload-artifact v2 composite
- volttron/volttron-build-action v4 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- actions/upload-artifact v2 composite
- volttron/volttron-build-action v4 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- actions/upload-artifact v2 composite
- volttron/volttron-build-action v4 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- actions/upload-artifact v2 composite
- volttron/volttron-build-action v4 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- actions/upload-artifact v2 composite
- volttron/volttron-build-action v4 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- actions/upload-artifact v2 composite
- volttron/volttron-build-action v4 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- actions/upload-artifact v2 composite
- volttron/volttron-build-action v4 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- actions/upload-artifact v2 composite
- volttron/volttron-build-action v4 composite
- volttron_1 latest
- volttron_2 latest
- ${image_user}/${image_repo} ${image_tag} build
- pint ==0.17
- volttron *
- crate ==0.26.0
- volttron *
- pint *
- volttron *
- volttron *
- bson ==0.5.7
- pymongo ==3.7.2
- volttron *
Score: 11.411955297613694