Ruuvitag-listener problems with 2.5.9 firmware?

I am interested in logging data from around 20 RuuviTags, probably using a Raspberry Pi Model 3B+. A prototype using the ruuviberry image worked until I encountered problems with influxd running out of memory …

One of the other options I am investigating is ruuvitag-listener. This works fine with the official 1.2.12 firmware in the default RAW mode. However, with the 2.5.9 firmware in the default RAWv2-fast mode no data is seen.

I’m not yet sufficiently fluent in Rust to spot if there is a simple fix. Has anyone else looked into this?

My first guess is that RAWv2 parsing is not supported by that library, but I didn’t find where data is parsed on a quick glance so I’m not sure.

Another option is bt-mqtt-gateway, which uses the ruuvitag-sensor Python package that supports Data Format 2, 3, 4 and 5. I have created a demo here:

This runs fine on a Raspberry Pi 3B collecting data from 4 RuuviTags.

The architecture looks like this:

3B+ should be able to handle 20 tags. Is this Pi running other applications?
I think some tuning should fix this.

What are you requirements for update interval?
What interval are tags transmitting ? 1sec? 5sec?
Have you tried adjusting

ruuvi-collector.properties
measurementUpdateLimit=30000

to reduce the number of insertions into the database.

Are you seeing log messages indicating out of memory ?
How often does the problem occur?
Does it “self-correct”?

You might also look into these settings in /etc/influxdb

wal-fsync-delay = “5s”
cache-max-memory-size = “300m”
query-timeout = “90s”
log-queries-after = “10s”
log-enabled = false
suppress-write-log = true
level = “warn”

retention policy can also have a big impact. See:

Many thanks for the useful comments. I threw this system together in a rush and with very little thought. It’s just the unmodified ruuviberry image and I have left it to do its own thing for a number of months. Worked fine as a proof-of-concept and has produced some useful information on the building’s performance.

I suspect it would be wiser to just use the Raspberry Pi to collect the data from the RuuviTags and forward it somewhere else for longer term storage and analysis! Running grafana-server on the Raspberry Pi accessing data for long time periods may well have been the source of the out of memory issues.

For production hardware it would probably be wise to have some form of UPS to protect the Raspberry Pi from power outages. One possibility might be a PiJuice HAT.

The Ruuvi Dongle might be an alternative to a Raspberry Pi. Note that it only uses USB as a power supply (similar to the ZigBee CAD for Smart Meters which can be used to monitor electricity and gas usage.

For storage of time series data InfluxDB (1.x or 2.x) or Prometheus look like the main options.

For Bluetooth LE scanners bluewalker is another option.

Time for some more investigation …