Release TerrariumPI v 4.9.0
Release 4.9.0 - More speed or less waiting
Speed up by adding more caching and threading
When TerrariumPI is running for a couple or years, you will get a lot of relay data which it used for the total power and water usage. After 7 years, it took about 15 seconds each time it was calculated. Which is half the time of the engine run time. So that is not good.
But also, it takes a full CPU so all other processes needs to wait. Which is also horrible. And can give a cascading effect where the system can never keep up anymore. Python cannot use multiple CPUs
And the process is not only called during updates, but also when a relay changed state, or when a new user connects to the web GUI. That all makes it going very slow and give timeouts.
So now the totals are cached and updated once an hour. Or when a relay goes off. And that is enough to still have correct information. But this will give a lot of processing power back to the rest of the system. And the GUI is loading even faster now! Yeah!
Also some long running processes are now running on the background, so the main engine does not have to wait for that anymore. This will also speed up the processing.
It looks like this should improve the speed by 40% or reduce the load by 40%. Depends how you look at it
GUI updates
In the GUI the tooltips at the graphs work now way better. It will now always show a tooltip of the nearest point. That works a lot better at the relay and button graphs.
Also the relay graphs are now again full selected period. By default that is 24 hours (day).
Unsplash support
It is now possible to have a nice background from Unsplash. This needs a free account at Unsplash. With your account you can create a free demo app at Unsplash. When that is done, you enter the Access Key in the GUI settings page with keywords for the background image. By default pictures of green forests are shown.
Read this FAQ how to setup the Unsplash background.
Docker
The docker build has been changed to support a docker image per Raspberry PI OS. So now there is a buster and a bullseye docker image. Bookworm OS is problematic, and will take more time to fix.
The new image tags will be x.y.z-os
where x.y.z
is the actual version and os
is either buster or bullseye. The tag latest
is referring to the latest buster
image as that is the same image as being used until now.
For now, do not use Bookworm as host machine for running the docker images. That will probably not work.
Also Raspberry PI 5 not supported! This is due to different hardware design.
Bookworm adaptation
There is more support for Bookworm OS. It is still not fully supported. As it takes time to figure some strange issues out with the webcams. So it will install on Bookworm, but it can happen that webcams will not work. This is due to an OpenCV and different way of capturing the Raspberry PI camera.
Another issue is that Bookworm does not support OMX hardware encoding through ffmpeg. Which means CPU processing for now. Which is heavy. This affect all live stream webcams
And finally a new Bluetooth library is needed due to the Python version. But that Bluetooth library does not play well with all the sensors. So it could happen that you existing bluetooth sensor is not Bookworm compatible.
But the installer should now detect the correct OS and install the correct libraries and settings per OS.
Docker is not supported on Bookworm yet. You cannot run a TerrariumPI docker image on a Bookworm OS.
Logging
The logging is changed a lot so it is now even more informative. And fixed a security issue where for some errors sensitive data is logged. This is now fixed, so no sensitive data should be logged.
And a number of error messages are changed to warning. And some warning/error messages where logged multiple times, which is a bit to verbose. This has been reduced.
Bugs
A small bug using weather data for main lights area is fixed. #911
Upgrading
Or, go the installation page in order to install Terrarium PI version.
Or, go the upgrade steps at the installation page.
Translations
Not all translations are done. Add missing translations here! All help is appreciated.