Releases: wildmountainfarms/solarthing
Dependency updates
Drafting this release to keep up to date with the numerous tiny changes that have been made since the last release in July 2023. No notable changes, which is why this release is not tagged with 2024.1.0
.
Most noteworthy changes are in 846725e, which cleans up log messages for rover and tracer programs.
Changes under the hood
No exciting changes in this release. Just lots of under the hood improvements.
Changes
- No more Google Analytics. All logic for disabling analytics has been kept. I plan to add analytics in the future that does not rely on Google, so please keep your configuration to disable analytics if you do not want a future version of SolarThing to collect usage data.
.data
directory is no longer created or used.
Breaking changes
- Configurations must use
action_config
instead ofactions
. This is not documented, but neither is actually using actions
Technical changes
- solarthing-server uses Spring Boot 3.0, which requires lots of changes
- solarthing-server also undocumented ability to configure a database that replicates to a main instance
In other news, I am working on a different way to setup and configure SolarThing. I believe the current approach of making sure /opt/solarthing
has correct permissions and making sure configuration files are gitignore'd is error prone. I'm always open to suggestions or critique as I would really like to get a better way set in stone before really focusing on improving the documentation.
Docker support, upgraded Java versions
This release does not have any exciting new features, but it is the first release to have docker support. With the ability to use docker to run SolarThing, I also decided that a minimum Java version bump was overdue. To run the client program (solarthing.jar), you must have Java 11. To run the server program (solarthing-graphql.jar), you must have Java 17. You are responsible for upgrading your Java version. In general, it should be very easy unless you are using a Raspberry Pi 1 or a Raspberry Pi Zero.
Docker support is available with packages published here: https://github.com/orgs/wildmountainfarms/packages?repo_name=solarthing. Documentation for using Docker is not yet complete, but example docker compose files will soon be available. Docker will likely not be the recommended way to run SolarThing client, but may be recommended for SolarThing server. The advantage of docker is that you won't have to manage your Java installation yourself. All you need is a docker installation!
New features:
- Ability to provide interpolated values in select configuration files. This can make it easier to share configuration between programs running SolarThing while customizing options for each.
--validate
option. If you are runningsolarthing
directly, you can add the--validate
option which will not run any code to upload data or to retrieve data, but will instead tell you if your configuration is valid or not. An exit code of 0 indicates a correctly formatted configuration.
Testing docker support
v2023.2.2-rc.2 docker build triggered on tags
Adding doker support
This release marks the first release with docker support. Assuming this builds fine, v2023.2.2
will be released.
I plan to add support for older versions of SolarThing with docker in the future. I also plan to document this more in the future.
SolarThing Server Fix
This release fixes a bug in the previous SolarThing Server jar (solarthing-graphql-2023.2.0.jar).
This release has also added the feature of automatically filtering out bad temperature data before uploading to PVOutput.
Announcements:
SolarThing will soon support running via docker. Packages will soon be available at: https://github.com/orgs/wildmountainfarms/packages?repo_name=solarthing. Documentation for using SolarThing in docker will likely remain sparse for the time being.
I plan to update the required Java version for SolarThing Server and SolarThing. I would like to upgrade SolarThing Server to use Java17+ and SolarThing to use Java 11. This may make it harder to run SolarThing on armv6 CPUs (like RPi1s), but it will still be possible by using zulu openjdk builds by azul (easy to install with SDKMAN). SolarThing will still support armv6, but it may require some additional setup.
ActionLang and more PVOutput upload options
This release contains two main features: The addition of a second way to describe and code actions in SolarThing and options for how temperature and voltage are uploaded to PVOutput (#85).
Automation and request program
- Actions should now be specified using the
action_config
property and theentries
property inside that object. See: automation_eq_template.json - Actions being defined in this new way are, by default, assumed to be in NotationScript format. NotationScript is effectively shorthand for the old JSON format. Examples can be found here: actions-ns
- Note: While these are shorthand, you may notice that some types of actions have slightly different names in the NotationScript version. This is to maintain kebab case for nodes and snake_case for user defined identifiers.
PVOutput
voltage_identifier
andtemperature_identifier
are deprecated. Usevoltage_from
andtemperature_from
instead.
Once again, the documentation on these new features is lacking. Hopefully I will get around to it, but if I don't feel free to bug me about it: https://github.com/wildmountainfarms/solarthing/issues
Local actions fixes and rover and tracer modbus command change
Local actions
- Bug fixes to make sure long running actions have an up to date reference to current data (e84a79f)
Rover and tracer (BREAKING CHANGE)
- You can no longer attach a specific device to specific commands. You must use the
rover-modbus
ortracer-modbus
actions to encapsulate your actions that send commands to the rover or tracer
Temperature
- Added 16.0 to the list of "bad" temperature values
Mate
- Detecting FlexMAX devices should have been fixed. If you were running SolarThing with an outdated MATE and a FLEXmax, SolarThing would crash (#81)
Local actions revision
Bug fixes for https://github.com/wildmountainfarms/solarthing/releases/tag/v2022.4.0 release. Please see that release for notes.
Local actions
This release adds local actions and removes the legacy rover
program (migrate your rover
program to the request
format).
mate
and request
programs
- Added
actions
field to configurations. Works the same way as in theautomation
program
request
program
- Deprecated usage of attaching a rover or tracer to commands. Use the
rover-modbus
ortracer-modbus
actions to inject the correct environment into the actions you want to use to command your charge controller.
graphql
- Added GraphQL Voyager page and Graphiql page to view schema and query schema.