Temperature measurement outside the tag


to measure a temperature on a specific place outside the tag, for example on a radiator, it would be useful to extend the tag (the temperature sensor) with a cable of maybe 10 centimeter. Would this be possible?

best regards

Yes, it is possible to add external sensors.

Prototyping is easy. Just run Espruino on your RuuviTag and you’re almost ready to go. One might find these interesting:



1 Like

Its possible to use external sensor with Ruuvitag, see attached image. We used DS18B20 temperature sensor and attached it to GPIO pin. I’m not even into electronics, but still I was able make required connections. Prototyping was easy with Espruino, code below

var ow = new OneWire(4);
device = ow.search()[0]; // search returns an array of device IDs
if (device===undefined)
print(“No OneWire devices found”);

print(“Getting temp”);

var sensor = require(“DS18B20”).connect(ow);

setInterval(function() {
}, 1000);


Hi. Is there any detailed instructions available how to connect 1-wire sensors to Ruuvi? Plan is to connect several 1-wire sensors (=1-wire network) to Ruuvi. 1-wire network is powered by own power supply.

If we use espruino fw in Ruuvi, can we still use RuuviStation mobile app for reading sensors ?

Hey. Are you not going to use DS18 sensors? If not, what kind of sensors?

I’m not sure if anyone has shared Espruino code snippets about using Ruuvi’s official sensor data formats but it’s definitely possible to do so. Just follow the spec:

Sensors are DS18. Currently i have 4 sensors in one network, powered with 5vdc USB power supply.

I apologize for resurrecting this old thread.

I am interested in connecting a DS1820 to a few of my RuuviTags.

I understand from the info above that this seems to be possible without too much of a hassle.

However, currently I am my RuuviTags out of the box with RuuviCollector and Influx/Grafana. Optimally, I’d continue doing that, but have the new temperature from the DS1820 collected in the same way.

I have no problem modifying RuuviCollector.

Does the Espruino code run in parallel to the standard firmware which sends the usual data such as temp and humidity? So I would simply be BLE advertising the new temp from DS18B20 temp data in addition to the standard temp/humidity from firmware with my own code? Or do I need to change the original firmware to include the temp from DS18B20?

Please give me a few pointers before I dive into this rabbit whole (reading up on Espruino, IDE etc in the meantime).


No, it’s either the standard firmware only, or Espruino only, or some other firmware only, and so on. So if you want to keep the “standard tag measurements” and append your own, you need to either modify the standard firmware, or use Espruino to read & send the same data as the standard firmware and add your own to that. If you are familiar with C, modifying the “default firmware” is probably easier than replicating it in Espruino, especially if you want a “production grade setup”.

Either way you will need to invent your own data format (and add support for it in the RuuviCollector) if you want to include two temperature readings, as none of the official data formats hold two different temperatures.

Here’s how I recently hacked support for multiple sensors in our development firmware:
https://blog.ruuvi.com/ruuvi-firmware-adding-a-new-sensor-6e973b2e8a9b .

TLDR: Each sensor is read sequentially and sent in a standard RAWv2 format, and the last byte of MAC address is modified to match the sensor, for example DS18B20 could become XX:XX:XX:XX:XX:18

Great stuff! Lacking the required coding skills I’m wondering has anyone shared their firmware for any external temperature sensor+Ruuvi combination (preferable capable of at least 0…100 degrees celsius)? I would definitely to give it a try with some of our existing Ruuvis, solder the sensor in and give it a go in our lab.