Tech Insights

How to Connect Elsys LoRaWAN Sensors to TagoIO

How to connect Elsys LoRaWAN sensors (ERS, ELT, EMS, ESENS) to TagoIO. Covers TTN integration, Elsys ERS payload decoding, tag-based device management, and smart office and building monitoring use cases.

Thiago Lima ·
How to Connect Elsys LoRaWAN Sensors to TagoIO

Elsys is a Swedish company that makes compact, battery-powered LoRaWAN sensors widely used in smart buildings, offices, and environmental monitoring. The ERS (Environment & Room Sensor), ELT (External Light Sensor), EMS (Environment Monitoring Sensor), and ESENS series cover temperature, humidity, CO2, light, occupancy, and external probe inputs.

Elsys sensors are plug-and-play from a hardware standpoint: power on and they start transmitting. The integration work is connecting that LoRaWAN data to an application platform. This guide shows how to route Elsys sensor data through TTN into TagoIO for storage, dashboards, and alerting.

What you need before you start

Step 1: Register Elsys sensors on TTN

Elsys sensors appear in the TTN Device Repository, which simplifies registration.

  1. In your TTN Application, click Register end device.
  2. Search the device repository for Elsys and select your model (e.g., ERS CO2).
  3. Select the firmware version and frequency plan.
  4. Enter the JoinEUI, DevEUI, and AppKey from the sensor label or the Elsys Sensor Settings app (Bluetooth configuration).
  5. Save the device.

Elsys sensors support OTAA by default. On first power-on after registration, they will join the network and start sending data.

Step 2: Create a device in TagoIO

  1. Log in to admin.tago.io.
  2. Go to Devices → Add Device.
  3. Search for The Things Network v3 and select it.
  4. Name the device to match your Elsys sensor (e.g., elsys-ers-co2-floor-3).
  5. Copy the Webhook URL and Authorization Token.

Device docs: docs.tago.io/docs/tagoio/devices

Step 3: Add the TTN webhook to TagoIO

  1. In your TTN Application, go to Integrations → Webhooks → + Add webhook → Custom webhook.
  2. Set the Base URL to the TagoIO Webhook URL.
  3. Add header: Authorization: YOUR_TAGOIO_TOKEN.
  4. Enable Uplink message.
  5. Save.

Step 4: Write the Payload Parser

Elsys uses a well-documented binary payload format called the Elsys Payload Specification. Each data point consists of a 1-byte type identifier followed by the value bytes. Elsys publishes a reference decoder on GitHub.

Here is a parser for the ERS CO2 (temperature, humidity, light, motion, CO2):

const raw = Buffer.from(payload.uplink_message.frm_payload, "base64");

const result = [];
let i = 0;

while (i < raw.length) {
  const type = raw[i++];
  switch (type) {
    case 0x01: // Temperature (2 bytes, signed, /10)
      result.push({ variable: "temperature", value: raw.readInt16BE(i) / 10, unit: "C" });
      i += 2;
      break;
    case 0x02: // Humidity (1 byte, unsigned, /2)
      result.push({ variable: "humidity", value: raw.readUInt8(i) / 2, unit: "%" });
      i += 1;
      break;
    case 0x05: // Light (2 bytes)
      result.push({ variable: "light", value: raw.readUInt16BE(i), unit: "lux" });
      i += 2;
      break;
    case 0x06: // Motion (1 byte)
      result.push({ variable: "motion", value: raw.readUInt8(i) });
      i += 1;
      break;
    case 0x08: // CO2 (2 bytes)
      result.push({ variable: "co2", value: raw.readUInt16BE(i), unit: "ppm" });
      i += 2;
      break;
    case 0x0B: // Battery voltage (2 bytes, /1000)
      result.push({ variable: "battery_voltage", value: raw.readUInt16BE(i) / 1000, unit: "V" });
      i += 2;
      break;
    default:
      i = raw.length; // Stop on unknown type
  }
}

payload = result;

This parser handles the most common Elsys sensor types. Add cases for additional types (sound, pressure, GPS) as needed, using the Elsys payload specification.

Payload Parser docs: docs.tago.io/docs/tagoio/devices/payload-parser

Step 5: Verify in the Live Inspector

Open the Live Inspector in TagoIO. Trigger a reading from your Elsys sensor (short-press the button for an immediate transmission on most models). Confirm that all variables decode correctly.

Live Inspector docs: docs.tago.io/docs/tagoio/devices/live-inspector

Step 6: Manage a fleet of Elsys sensors

Elsys sensors are typically deployed in groups: a floor, a building, or a campus. Use TagoIO’s Blueprint Dashboards to manage this at scale.

How Blueprint Dashboards work with Elsys:

  1. Create one TagoIO device per Elsys sensor.
  2. Tag each device by location: building:a, floor:3, room:conference-01.
  3. Create a Blueprint Dashboard that uses a tag selector to pull data for the currently selected device.
  4. Every sensor gets its own dashboard view using the same layout: no duplication.

Blueprint Dashboard docs: docs.tago.io/docs/tagoio/dashboards/blueprint-dashboard

Step 7: Set up alerts

Use Actions for:

  • CO2 above 1000 ppm in any room → notify facilities via email
  • Temperature outside 19-26°C band → HVAC alert
  • Motion detected outside business hours → security notification
  • Battery voltage below 2.5V → maintenance reminder

Actions docs: docs.tago.io/docs/tagoio/actions

Use case examples

Smart office air quality

ERS CO2 sensors in every meeting room and open area. TagoIO Blueprint Dashboard gives facilities a floor-by-floor CO2, temperature, and humidity view. Actions trigger ventilation when CO2 climbs above 1000 ppm. Weekly air quality report auto-generated by Analysis script.

Energy and occupancy correlation

ERS sensors with motion detection. TagoIO Analysis scripts cross-reference occupancy data with energy meter readings, generating correlation reports showing energy cost per occupied hour per zone.

Compliance monitoring

EMS sensors in food storage and pharmaceutical areas. TagoIO stores readings with timestamps for regulatory audit trails. Reports generate automatically for compliance submissions.

Taking it further with AI

TagoIO’s MCP server connects Claude and other AI assistants to your Elsys data. Ask natural language questions: “Which rooms had CO2 above 1000 ppm this week?” or “What’s the average temperature across all sensors on Floor 2?”

MCP docs: docs.tago.io/docs/tagoio/getting-started/tagoio-mcp-ai-powered-iot-data-integration

Summary

Elsys sensors connect to TagoIO through TTN in four steps: register on TTN, create a TagoIO TTN device, add the webhook, and write the Elsys payload parser. The parser follows Elsys’s published binary format specification. Once data flows, TagoIO handles storage, Blueprint Dashboards for fleet management, and real-time alerting.