Android - Ruuvitag scanner, datalogger/sender


@andersos I had the same problem with two different phones. Were you able to solve this?


Hi all, Android scanner is now in Ruuvi’s repository. I made some heavy rebranding from Centria to Ruuvi inorder to make it feel more familiar to Ruuvi users (this doesn’t mean that Centria will no longer support/work with Ruuvi, we are still very happy and proud to use it in our projects and stundent works).

To get things running you can uninstall old scanners and install this new version, although it should install even with existing versions installed. (App not installed problems could be due from previous versions having invalid signature)

APK Url:


Sorry to bother you, but should the humidity not be:
“humidity = ((float) (rawData[3] & 0xFF)) / 2f;”.
Now I only see 2.0% humidity on all my sensors.
At the same time I would like the time to be in 24 hour format, like it is on the graphs.


Sorry, thats a copy-paste mistake =) also just started to write unit testing for the project to be sure that this “never” happens again. Will change that time format too


@Frida854, thanksfor getting this caught. New code and APK now in Github, hope it works this time


Now it works.


I’m going to buy an Android Wear smartwatch, probably before Christmas. Would it be possible to make an Android Wear 2 version of this app?


Firstly, thank you for this great app! It’s just what I was looking for. I was just wondering am I doing something wrong? I’ve setup the app to send the data to the backend URL ( on 5 minutes interval. However when the phone’s (Samsung Galaxy A3 2015) screen is off, the update interval seems to be something like three hours or so. I’ve give all permissions to the app.

#50 is nice, thanks for the tip. But how do I get actual sensor data to show on the Visual tab at Now it only shows deviceId, eventId, tags and time rows. Tags row has [object Object],[object Object]. Maybe app output isn’t supported by Also woul dbe nice if the app could send all my three RuuviTags to


App should run as it is on Wear2 we have some cheap Chinese watches and it works on those


So you mean that app would collect data to one object and send it, now I think it sends scan events as single objects


Yes it does that now, and that’s ok. I have three RuuviTags and it looks like the app sends the latest scan from any of them. When I create a dashboard (on for the dweet I can pick out what data I want to show, so it works there. But when I check my dweeted thing on it looks like I said.

You can look at my RuuviTag thing here:

This is the url I enterd in the app:

And in my case when I have three RuuviTags that are scanned continuously, it would be nice if the app could send data from the different RuuviTags to their own dweet thing.


The current apps sending of data is flawed. It will spam the endpoint, so it does not work well with dweet. There will hopefully be a new apk uploaded today that has this bug fixed.

I like your idea of having the option to have different url’s per tag, it would simplify capturing of the data.


Yes I really want that feature to send multiple RuuviTags to their own dweet things. Maybe it would be good to move the settings scan intervall, gateway url and device identifier to a new settings button on the RuuviTag panels. Or maybe put them under the existing Edit RuuviTag button (…). So we would have one gateway url per RuuviTag MAC.


There is a new version of the app uploaded here:

@jari.isohanni made it so that it now send tags individually. But there is still no individual gatway url so it does still not work very well with dweet.
(It works ok if there is only one tag added in “My RuuviTags”).

Btw, @andersos, we live on the same island :wink:


Hello all, I’m new here.
At first I have to say that this Scanner is awesome! Thanks for great App for all contributors.
Secondly I’m wondering if anyone has tried the gateway feature to Google’s Firebase database?
…I already got my raspberry pi to upload data both dweet and firebase with python pyrobase and service account credentials … but I’m not that familiar with android coding. This app would suite my needs better than raspberry script.


@io53 Nice work. To keep this topic up to date (the dev talk is mostly at #mobile-apps on our Slack), FYI, @sini-maaria just posted a proposal of the new UX design. Everyone are free to comment and also join the discussion on Slack!


Small world :slight_smile:


Is the java formula correct for the temperature?
I do not get the correct values if I insert the example from the ruuvi sensor protocol.

If I run in steps of 0.01 to 0.99 degree, I get a difference from
0.00609375 to 0.60328125.

It seems that Grafana is the same as my javascript formula.

test_temp.pdf (27.4 KB)


The Javascript way is correct, Java divides decimals by 2.56.
The sensor format is somewhat confusing as the digits and decimals are in their own bytes, using standard 2-complement format would be better for everyone. Is the Java way from the Android app? I could change that and open a pull request.