I have a project where i need to measure temp/humid for multiple enclosed cases that are placed in a matrix and i need to know for each ruuvi what is the row and column. An example:
area 1 | area 2
X X X | X X X
X X X | X X X
I need to identify completely the tag, so know the area, row and column.
I tried this with a BT tag from a different manufacturer, but it has bugs and isn’t very reliable, so i ordered some ruuvies to see if it’s possible with them.
What i did with the previous tag:
** Mode iBeacon **
Set name to area id, set major to row, set minor to column
** Mode eddystone URL **
Set url to area id + row + column
All these settings i could do directly from an android app (when it worked) they offered.
Is this possible with ruuvi (i don’t care if iBeacon or eddystone)? If yes, can the setting of the area id, row and column be done easily, like with an android app? Because if everything works fine it could mean 100s of tags being configured, so ‘coding’ each one would be a pain.
Sorry if my questions might be stupid, i’m new with this BT stuff.
In my humble opinion, hard-coding the area, row and column into the tags themselves is not a good idea. Every tag already has a unique MAC address which is its unique identifier. This identifier is transmitted with every BLE advertisement regardless of its format. All you need to do is map the MAC addresses to area/row/column in the app that would receive, process and store your advertisements.
This application - Collecting RuuviTag measurements and displaying them with Grafana - provides a nice example of mapping MACs to human-readable tags before storing the measurements in the InfluxDB database. As you need “multidimensional” tags (area/row/column) you might need to do some custom coding but the Ruuvi Collector will give you a nice headstart.
Just my two cents…
Thank for the idea. I think it could work like you say, as each of the area is monitored by a lopy board for which i have already done a phone app that i use to configure all sort of params. I could just add extra params for the MACs.
Is the MAC printed on the ruuvi (i haven’t received mine yet)? Or do i have to connect with a phone app to read the MAC?
I see the tag also has a ‘beacon id’ which ‘is “random” but it’s generated from a unique ID every device has’. Is this something that i could use instead of the MAC?
Also, i see that each tag comes, by default, as a weather station. So it will, by default, send the temp and humid on the eddystone url, without any other configuration, right? Does it also include battery info?
I’m asking all these because i want to estimate how much time it would take to have a fully configured ‘area’.
Unfortunately it isn’t. @otso - please take that as an enhancement request
What I did was open a beacon scanner app on my phone, take a marker and write the MAC address of every new tag (at least first and last byte) right on the tag casing as I opened the cases one by one to remove the battery isolator thingies from them (you will have to do that anyway).
Note: it’s more reliable to write the MAC on the bottom as the tops are interchangeable and you can easily swap them inadvertently if you have more than one tag open at the same time for some reason.
As you are doing that, you might want to switch all tags into the RAW mode by pressing the button 2 - you will need that anyway if you want more precision and battery voltage info.
I’m afraid you can’t - out of my six tags two happen to have the same id…
Only if you switch it into the RAW mode. But in that case you will need custom software to parse the RAW payload - no generic beacon scanner will figure out what it means. You will probably need to write some custom software anyway to parse and store your messages, and there is a lot of examples in different programming languages.
No problem to write custom code, i already do this on my lopy board for other type of sensors. From what i see, in RAW mode it sends the info as “Manufacturer Specific Data”. Does this mean it’s in iBeacon mode for this?