I’m running openHAB in a Docker Swarm, and have just upgraded from the 2.3.0-amd64-debian image to 2.4.0-snapshot-amd64-debian to start testing it out.
Most things appear to work, but I was getting the following error in the logs:
There is no queryable persistence service registered with the id 'rrd4j'
After much looking around, something I tried was to add the following to my conf/services/addons.cfg
:
persistence = rrd4j,influxdb
And after restarting, things started working.
I had not yet checked in the Paper UI after upgrading (still used to do things on the command line), however when I did both rrd4j and influxdb were showing as “installed”.
So to try and diagnose, I removed the above line again, and restarted… and everything was OK, and checking the Paper UI, they are also showing as installed. Now it may have been that if I went to the Paper UI before modifying conf/services/addons.cfg
I could have installed things there, but either way, it’s working now.
I’m posting here in case there is some sort of bug with the upgrade process, or if I didn’t install it correctly the first time.
If you want more info please let me know. I have included a couple of files for reference below as well:
cat ./services/rrd4j.cfg
# please note that currently the first archive in each RRD defines the consolidation
# function (e.g. AVERAGE) used by OpenHAB, thus only one consolidation function is
# fully supported
#
# default_numeric and default_other are internally defined defnames and are used as
# defaults when no other defname applies
#<defname>.def=[ABSOLUTE|COUNTER|DERIVE|GAUGE],<heartbeat>,[<min>|U],[<max>|U],<step>
#<defname>.archives=[AVERAGE|MIN|MAX|LAST|FIRST|TOTAL],<xff>,<steps>,<rows>
#<defname>.items=<list of items for this defname>
cat ./persistence/rrd4j.persist
Strategies {
everyMinute : "0 * * * * ?"
everyHour : "0 0 * * * ?"
everyDay : "0 0 0 * * ?"
default = everyMinute
}
Items {
// persist everything when the value is updated, just a default, and restore them from database on startup
* : strategy = everyMinute, restoreOnStartup
}