Releases: VOLTTRON/volttron
9.0.1
This release provides an update to a security issue that was found. There was also a code path where requirements weren't getting properly loaded in the main volttron process.
What's Changed
- work around for issue #3154 by @schandrika in #3155
- Fix for security issue #3168 by @schandrika in #3169
Full Changelog: 9.0...9.0.1
9.0
This release is the culmination of a large body of work from multiple contributors in the community and includes new features, improved ease of use, and development support. The following list highlights the most notable changes included in 9.0:
New Features / Improvements
- Fixed boostrap process for newer versions of pip (#3159)
- The VOLTTRON 2030.5 EndDevice agent manages communication between the VOLTTRON platform and a 2030.5 server using the IEEE 2030.5 protocol, enabling both control and monitoring of an End Device. The agent implements the 2030.5 function sets End Device Time, Distributed Energy Resources, Metering, and Metering Mirror.
- New DNP3 driver which acts as DNP3 Master and supports communication with DNP3 Outstation to read/write end device points.
- New DNP3 Outstation agent to interact with DNP3 Master. This replaces the deprecated DNP3 Outstation agent.
- New HomeAssistant driver for data collection and control of IoT devices in smart buildings.
vcfg command now has new update-config-store function that can add multiple configuration store entries in one go (#3121). - Fixed RPC calls of configuration store to go through auth layer in order to avoid security loop holes. This is fix for issue https://github.com/VOLTTRON/volttron/issues/3097. As a side effect of this change duplicate RPC calls that do same function(manage_* RPC methods) have been deprecated and will be removed in future
- Updated RMQ VOLTTRON to use pika version 1.2.0 and Rabbitmq version 3.9.29.
- Fixes to several pytests.
Known Issues:
- 2030.5 EndDevice agent has been tested with inverter simulator and not against an actual device.
The following provides an in-depth look of commits since the 8.2 release.
What's Changed
- Fix VOLTTRON_HOME substitution by @Siecje in #3015
- hot-fix-doc/#3030There-are-two-menu-items-with-quickstart-to-two-diff… by @kefeimo in #3032
- DataPublisher example agent by @gwenkidd in #2962
- Releases/8.2 by @craig8 in #3046
- Remove unused imports by @Siecje in #3049
- Update CodeQL to v2 by @Siecje in #3052
- fix for issue 3053. Added check to determine if variable meta is a dict by @ntenney in #3054
- Sort imports by @Siecje in #2973
- Unused imports by @Siecje in #3051
- Refactor OpenADRVENAgent by @bonicim in #3059
- Fixed hardcoded value for table_catalog to use the database name (dbn… by @ntenney in #3080
- Use secrets for random_cookie() by @Siecje in #3074
- Simplify _calc_min_uuid_length() by @Siecje in #3075
- fix auth loops by @craig8 in #3087
- Remove more import * by @Siecje in #2939
- Remove superfluous parentheses by @Siecje in #3065
- Remove unused imports by @Siecje in #3064
- Simplify else: if code by @Siecje in #2919
- Fix whitespace by @Siecje in #2915
- Remove more import * by @Siecje in #3090
- Updaed yaml.load(file) to yaml.safe_load(file). by @davidraker in #3101
- Pip fix by @ntenney in #3094
- Remove unused imports by @Siecje in #3092
- Improve imports in main.py by @Siecje in #3091
- Dnp3 driver pr by @kefeimo in #3084
- Dnp3 agent pr by @kefeimo in #3083
- Revert "Pip fix" by @schandrika in #3104
- Fix for issue #3099 by @schandrika in #3105
- Fix for issue 3102 by @schandrika in #3107
- Remove unused imports by @Siecje in #3106
- Fix for config store security issue #3097 by @schandrika in #3109
- minor fix for issue #3110 by @schandrika in #3111
- minor fix for issue #3112 by @schandrika in #3113
- Hot fix/cleanup obsolete dnp3 code by @kefeimo in #3115
- RMQ version update, Mongo version update, Bug fixes by @schandrika in #3118
- Fix for issue 3119 by @schandrika in #3120
- Updates for tests run on Docker before 9.0 release. by @davidraker in #3122
- Home Assistant Driver by @riley206 in #3089
- Added improved handling of boolean registers and default type handlin… by @davidraker in #3123
- Updates to Energy Plus Agent by @davidraker in #3126
- revivied Craig s code to resolved the issue that uuid has extra char when using vctl status by @kefeimo in #3129
- Fix for - #3121 - vcfg command to set multiple configuration-store entries at a time by @schandrika in #3131
- Brought back working filter by @craig8 in #3133
- 2030 5 anew by @craig8 in #3128
- Fixed home assistant tests by @riley206 in #3136
- Culmination of 9.x items. by @craig8 in #3138
- don't import agent into the global space for tests. by @craig8 in #3137
- Updates for 9 by @craig8 in #3142
- fix for issue#3159 (fix for deprecated pip --install-options) by @schandrika in #3160
- handled timeout on test_historian.py by @schandrika in #3162
- New minor driver test updates by @davidraker in #3163
- Releases/9.0 by @craig8 in #3161
New Contributors
Full Changelog: 8.2...9.0
9.0 Release Candidate
9.0 Release Candidate
This release candidate is the culmination of a large body of work from multiple contributors in the community and includes new features, improved ease of use, and development support. The following list highlights the most notable changes included in 9.0-Release Candidate 0:
New Features / Improvements
- The VOLTTRON 2030.5 EndDevice agent manages communication between the VOLTTRON platform and a 2030.5 server using the IEEE 2030.5 protocol, enabling both control and monitoring of an End Device. The agent implements the 2030.5 function sets End Device Time, Distributed Energy Resources, Metering, and Metering Mirror.
- New DNP3 driver which acts as DNP3 Master and supports communication with DNP3 Outstation to read/write end device points.
- New DNP3 Outstation agent to interact with DNP3 Master. This replaces the deprecated DNP3 Outstation agent.
- New HomeAssistant driver for data collection and control of IoT devices in smart buildings.
- vcfg command now has new update-config-store function that can add multiple configuration store entries in one go (#3121).
- Fixed RPC calls of configuration store to go through auth layer in order to avoid security loop holes. This is fix for issue https://github.com/VOLTTRON/volttron/issues/3097. As a side effect of this change duplicate RPC calls that do same function(manage_* RPC methods) have been deprecated and will be removed in future
- Updated RMQ VOLTTRON to use pika version 1.2.0 and Rabbitmq version 3.9.29.
- Fixes to several pytests.
Known Issues:
- 2030.5 EndDevice agent has been tested with inverter simulator and not against an actual device.
8.2 Full Release
Version updates
Updated to newer version of RabbiMQ(3.9.7) and Pika(1.2.0)
#2839
Backward incompatible changes
VOLTTRON feature to run individual agents as unique Unix users is now named "agent-isolation-mode" and is consistently referred 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".
#3036
To upgrade existing VOLTTRON environment, use volttron-upgrade command. See README.
New features
-
Added platform feature to disable authentication (Currently only for ZMQ VOLTTRON). This would help avoid authentication overhead and improve performance for VOLTTRON instances used for running simulations, testing, or instances deployed in highly restricted and/or secure environment. https://volttron.readthedocs.io/en/releases-8.2/platform-features/security/non-auth-mode.html
#2926, #2989, #2995, #3001 -
Added RESTful web API which exposes functionality to client applications locally or over the network for working with devices, historians, RPC, pubsub, and management functionality similar to vctl. https://volttron.readthedocs.io/en/releases-8.2/platform-features/web-api/introduction.html
#2948, #2752, #2861, #2866, #2975, #2786, #2910 -
Added new OpenADRVen agent in core/services to support the Open Automated Demand Response (OpenADR) standard. Allows an agent to connect to an OpenADR Virtual Top Node (VTN). This agent replaces the old OpenADRVen agent and uses the third-party library OpenLEADR that is fully compliant with OpenADR 2.0b.
#2859 -
WeatherDotGov agent can now query hourly forecast data using (latitude and longitude), or (station id), or (wfo, x, y)
#2996
Improvements
-
All example agents (source, test, and documentation) have been updated to ensure compatibility with the latest VOLTTRON version
-
Fixed and updated several test cases to improve coverage for existing and newly added features, and improve CI integration
-
Several minor bug fixes and code improvements
-
Updated documentation in https://volttron.readthedocs.io
- Added documentation for all new features and agents
- Added quick-start tutorial
- Add documentation for Asyncio and Gevent usage in Agent development
-
Moved unsupported/deprecated agents into <volttron_source_root>/deprecated
#2990
8.1.3 Maintenance Release
8.1.2 Maintenance Release
This release fixes a historian bug that occurs when meta data is an empty dictionary. For more information see issue #2821
8.1.1 Maintenance Release
This release fixes bugs that were introduced with the addition of the dynamic rpc capability for 8.1 and through testing of different versions of python. This release targets 3.6.9 version of python, but has been tested with versions up to 3.9.
- [ #2778 ] An issue with vcfg where the vip identity of SQLHistorian wasn't platform.historian
- [ #2779 ] An issue with setuptools < 40
- [ #2790 ] Upgrading from 7.x volttron issue
- [ #2796 ] Pinned pyzmq and removed duplicate entry between requirements.py and bootstrap.py
A volttron-upgrade function has been added to upgrade the location of backup.sqlite for historian as well as updating auth.json file for any version of auth.json since 6.x See README.
8.1 Release
This release contains new features, fixes to issues reported by the community and the development team. The following list highlights the most notable changes included in 8.1:
- Historian related changes
- Support for newer version of Mysql 8.0.
- Updated SQL historians schema to combine topics and metadata into the same table. The new version of historian will work with existing tables (i.e. old schema) if tables already exists.
- Updated SQL aggregate historian schema to store aggregates as double precision number instead of text – removed support for string aggregations such as GROUP_CONCAT.
- Ability to allow capabilities to RPCs dynamically at run time.
- Bug fixes for RabbitMQ federation and shovel. Added pytests for RabbitMQ federation and shovel.
- Updated tests for web authentication.
- Added testing of RabbitMQ VOLTTRON into Github actions/workflows.
- Video tutorial on overview of platform driver.
- Moved agents contributed by external community into 'services/core/contrib' folder, agents that may work but is not actively maintained by PNNL team into 'services/core/unsupported' and agents that are deprecated into 'deprecated' folder.
Known Issues:
- RabbitMQ VOLTTRON does not work in Ubuntu 20.04 LTS
- There is a 6-7 compatibility issue when forwarding data from 6 instance to 7 instance
8.0 Full Release
This is full release of 8.0 version of VOLTTRON. This incorporates community feedback from the release candidate as well as new contributions and features.
⦁ Added a video tutorial for historian framework that walks through historian features and installation process (https://volttron.readthedocs.io/en/develop/, https://volttron.readthedocs.io/en/develop/agent-framework/historian-agents/historian-framework.html?highlight=video#historian-video-tutorial)
⦁ Renamed MasterDriver to PlatformDriver, MasterWebService to PlatformWebService and updated all associated documentation
⦁ Added command line support to authenticate remote ZeroMQ/RabbitMQ message bus-based connections
⦁ Added CSR support for multi-platform federation connection
⦁ Created github workflow to run VOLTTRON tests on github
⦁ Improved VOLTTRON test framework for automated unit and integration tests
⦁ Installation of agents is made available through volttron-ctl (vctl). 'vctl install' command will not by default install agent with default configuration.
⦁ All agents by default send heartbeat messages. Agents can opt out by removing default heartbeat configuration
⦁ Updated documentation for VOLTTRON introduction, services core agents and multiplatform deployment in readthedocs (https://volttron.readthedocs.io, https://volttron.readthedocs.io/en/develop/agent-framework/operations-agents/index.html, https://volttron.readthedocs.io/en/develop/deploying-volttron/multi-platform/index.html)
⦁ Added secure deployment guidance section in VOLTTRON readthedocs based on review comments from Secure Software Central report (https://volttron.readthedocs.io/en/develop/deploying-volttron/secure-deployment-considerations.html)
⦁ Minor bug fixes in vctl and vcfg sub commands
⦁ Removed pubsub backward compatibility with VOLTTRON 4.1
⦁ Fix for critical issue pertaining to non-start of VOLTTRON platform (zmq/rmq) without installation of RabbitMQ server (Issue #2596)
⦁ Fix for MQTT Historian to capture custom topics and store as single data element (Issue #2638)
⦁ Fix for Historians to detect data with invalid date and time and store in alternate datastore to be investigated later (Issue #2444)
Known Issues:
⦁ SSL handshake error is observed in the volttron log when remote authentication request (either from zmq/rmq instance) is observed in admin webpage. The approval, denial, deletion process goes through fine. A github issue has been raised to track the problem (#2594)
⦁ RabbitMQ VOLTTRON does not work in Ubuntu 20.04 LTS
⦁ There is a 6-7 compatibility issue when forwarding data from 6 instance to 7 instance