Only one RRD File generated


I setup and configured my DS18B20 temp sensor with rrd4j persistence based on this tutorial. The DS18B20 sensor is working and delivers values which are show on my sitemap.
I also monitor and store the CPU Temp data via rrd4j.

My problem is:

  • A rrd file for CPU Temp Data is generated and the values get stored and plotted in the chart, With this sensor everything works as it should and data are stored and correctly shown,

  • The DS18B20 sensor delivers value which is shown correctly as a single temp value on the sitemap, Also the log shows that the data is read and converted correctly. But the value is not written in a .rrd file . Furthermore NO rrd file is generated for the DS18B20 sensor and therefor the chart is empty.

I have set my logging to DEBUG level and it shows the the CPU temp data stored in the database. But no information what is happening with the DS18B20 sensor values.

I checked all related topic in the forum, deleted .rrd and cache, rebootet multiple time but no success, Sensors are working, delivers the same value types (Temp in Celcius), get converted correctly but only one is stored in the rrd4j database. I am using different files to CPU and DS18B20 sensor too. And finally the log does not show any errors. Any idea what else could I do?


You might share your rrd4j.persist file, which controls which Items gets persisted.

my rrd4j.persist file

Strategies {
// for rrd charts, we need a cron strategy, every Minute is a must have.
//  |              Seconds
//  |              |    Minutes
//  |              |    |   Hours
//  |              |    |   |   Day of month
//  |              |    |   |   |   Month
//  |              |    |   |   |   |   Day of week
//  |              |    |   |   |   |   |   Year
    everyMinute : "0	* 	* 	* 	* 	?"
// get the data reduced for older values to keep database small
    everyHour	: "0 	0 	* 	*	*	?"
    everyDay 	: "0 	0 	0 	* 	*	?"
    default = everyChange
Items {
    // additionally persist Items
	GrowBox_Temp* : strategy = everyMinute, everyUpdate, restoreOnStartup
    // This one works
	System_Temperature_Chart* : strategy = everyMinute, everyUpdate, restoreOnStartup

Is your missing sensor included in any of that, in some way?

yes the ds18b20 (which is not persisted) is defined as GrowBox_Temp, It delivers values:

2020-04-01 00:52:28.846 [vent.ItemStateChangedEvent] - GrowBox_Temp_ds18b20 changed from 23.875 to 23.812

2020-04-01 00:52:28.854 [INFO ] [lipse.smarthome.model.script.Convert] - Item GrowBox_Temp_ds18b20 state 23.812

Your persist file includes the line
GrowBox_Temp* : strategy = ...
This will persist all the member Items of a Group named GrowBox_Temp
It will not persist any Item named GrowBox_Temp

  • is not a wildcard here, it is a Group instruction.

Bit of confusion here. Now your missing Item is called GrowBox_Temp_ds18b20. Obviously you need to take care to get names right or stuff will not work.

Your persist file will not persist any Item named GrowBox_Temp_ds18b20

  • is not a wildcard here, it is a Group instruction.

If you edit your persist file, you generally have to reboot to pick up new settings.

Maybe you meant to make a Group called GrowBox_Temp, and define Item GrowBox_Temp_ds18b20 as a member of that Group ?

I got it working . your comments helped me to understand and find the problem. At the end it was the name i used form the item - name in item and sitemap did not match with name in persits.
Very appriciated about your support - thanks a lot.

Did you check rrd4j.persist? All values to be persisted must be covered there.
Enable debugging for persistence.rrd4j, eventually explicitly call item.persist to make sure it really gets written to disk. I doubt OH ever tries.