Releases: wildmountainfarms/solarthing
Docker installs include netcat
This patch release only affects Docker installs. If you are migrating from an older SolarThing version, please read the release notes for v2025.1.0 to see if it affects you.
You are now able to use the nc
command inside the Docker container like so:
docker compose exec rover nc localhost 5051
batteryVoltage
23.9
This is useful for the config server feature that must be enabled for this to be useful for Rover or Tracer charge controllers.
Closes #223
Additionally, the base image of the docker images is now Ubuntu 24.04 (Ubuntu Noble).
Java 17 Required, Java 21 for solarthing-server
This release is the 2025.1.0 release, as I want to be able to do patch version bumps in 2025 for 2025.1.X if necessary. This release has very few changes since v2023.4.1, other than the version bump. However, the fact that I have upgraded the required Java version means you should see if this update affects you:
Does this change affect me?
- YES - If you are using a Raspberry Pi 1 or Raspberry Pi Zero
- These Raspberry Pi models are no longer supported because these use armv6 processors, and it has been difficult to get a modern Java version working on these processors for a long time
- NO - If you are using a Docker Install
- The Java version upgrade is handled automatically, and no changes are necessary
- YES - If you have a native install and do not currently have Java 17 installed
- You will need to install Java 17 or Java 21 (Java 21 is required if you are running SolarThing Server)
- Installing Java 17 may be difficult on some Linux distributions
- Installing Java 21 is likely to be very difficult on many Linux distributions including Debian 12 (Bookworm)
- NO - If you have a native install with Java 21 installed on your system
"I'm on an old native install of SolarThing on a device that is now unsupported"
- If this is the case, please note that calling
git pull
could break things in the future. This is unlikely, but one change that has been made to the repository itself is howjava
is invoked. You may receive warnings if you rungit pull
and continue to use SolarThing, but as of writing you should be OK for now.
If these changes affect you, please create an issue or comment in our discussion page.
Changes
- SolarThing Server's home page automatically updates battery voltage (a319278)
- Removed
rpi-cpu-temp
(this has been deprecated for a while in favor ofcpu-temp
) - SolarThing CouchDB Setup now puts a validation document in the database to prevent packets with incorrect dates from being uploaded (ccf7500)
- Modifications to GraphQL queries for added functionality
- 01cf884
- 0d425c1 (thanks @eidolon1138 )
- Started on
solarthing analyze
. Its behavior is currently undocumented and breaking changes may occur. Documentation and stability will be added for this feature in the future.
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)