Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚡ Eastron SDM630MCT-LoRaWAN Energy Monitoring System

Industrial IoT energy-monitoring platform — a three-phase Eastron SDM630MCT meter streaming electrical telemetry over LoRaWAN, end to end, from the panel to a live dashboard.


Overview

A complete end-to-end telemetry pipeline for collecting, processing, storing, and visualizing electrical measurements from an Eastron SDM630MCT-LoRaWAN three-phase energy meter. Measurements are transmitted over LoRaWAN, decoded by TTN, processed in Node-RED, stored in InfluxDB, and visualized in Grafana — with Modbus-based configuration downlinks back to the meter.

Real-time parameters: Voltage, Current, Total Current, Active Energy (kWh), Reactive Energy (kVARh), Frequency.


Highlights

  • Industrial IoT energy-monitoring solution with real commercial hardware
  • Long-range LoRaWAN communication (uplinks + downlinks)
  • Real-time telemetry acquisition and payload decoding
  • Node-RED automation workflow with type validation
  • InfluxDB time-series storage · Grafana dashboards and analytics
  • Modbus CRC16 validation on configuration downlinks
  • End-to-end telemetry architecture, documented as an engineering case study

Engineering Challenges

The parts of this project that required real problem-solving:

Modbus downlink configuration

The SDM630MCT-LoRaWAN meter is configured through Modbus-based downlink commands (batch size, transmission interval, active registers, device parameters). Getting reliable communication meant handling correct byte ordering and generating a valid CRC16 for every command — an error there means the meter silently ignores the downlink.

Data-type validation

InfluxDB requires numerical values for aggregation and analytics. Incoming payload fields were validated and converted to floating-point before storage, preventing telemetry corruption from malformed or string-typed values.

Reliable connectivity

During development, TTN reached a local Node-RED instance through an ngrok tunnel. Tunnel expiration and connectivity limits required extra validation and automation to keep the pipeline stable.

Dashboard design

Grafana dashboards were built to present electrical measurements clearly — correct units, legends, and time-series structure — because a dashboard is only useful if the data is readable at a glance.


Architecture

flowchart LR
    Meter["Eastron SDM630MCT-LoRaWAN"]
    Gateway["LoRaWAN Gateway"]
    TTN["The Things Network (TTN)"]
    NodeRED["Node-RED"]
    Influx["InfluxDB"]
    Grafana["Grafana"]

    Meter -->|Telemetry Uplinks| Gateway
    Gateway -->|LoRaWAN| TTN
    TTN -->|Webhook JSON| NodeRED
    NodeRED -->|Processed Measurements| Influx
    Influx -->|Time-Series Queries| Grafana
    TTN -. Configuration Downlinks .-> Meter
Loading

Data flow: energy meter → LoRaWAN gateway → TTN (decode + webhook) → Node-RED (validate + transform) → InfluxDB (time-series) → Grafana (dashboards).


Technology Stack

Component Purpose
Eastron SDM630MCT-LoRaWAN Three-phase energy meter
LoRaWAN Gateway Packet forwarding
The Things Network (TTN) LoRaWAN network server
Node-RED Data processing and automation
InfluxDB Time-series database
Grafana Monitoring dashboards
Ngrok Development webhook tunnel

Screenshots

TTN Configuration

TTN Configuration

Node-RED Flow

Node-RED Flow

InfluxDB Data Explorer

InfluxDB Data Explorer

Grafana Dashboard

Grafana Dashboard


Telemetry Workflow

  1. The Eastron energy meter captures electrical measurements.
  2. Measurements are transmitted through LoRaWAN.
  3. The gateway forwards packets to TTN.
  4. TTN decodes payloads and triggers webhooks.
  5. Node-RED receives and validates telemetry.
  6. Data is transformed into structured measurements.
  7. InfluxDB stores the measurements as time-series data.
  8. Grafana visualizes the information through dashboards.

Example Measurements

Parameter Unit
Voltage V
Current A
Total Current A
Active Energy kWh
Reactive Energy kVARh
Frequency Hz

Lessons Learned

  • LoRaWAN payloads require strict formatting.
  • CRC validation is critical in Modbus communication.
  • Node-RED significantly simplifies IoT integrations.
  • Time-series databases require consistent field types.
  • Dashboard design is as important as data collection.
  • Proper validation prevents telemetry corruption.

Repository Structure

eastron-lorawan-energy-monitoring/
├── README.md
├── LICENSE
├── .gitignore
├── docs/
│   └── MEMORIA_PRACTICAS.pdf
├── images/
│   ├── ttn-configuration.png
│   ├── node-red-flow.png
│   ├── influxdb-data-explorer.png
│   └── grafana-dashboard.png
├── examples/
│   ├── sample-uplink.json
│   ├── sample-downlinks.md
│   └── payload-description.md
└── notes/
    ├── lessons-learned.md
    └── future-improvements.md

Future Improvements

  • Docker Compose deployment
  • MQTT integration
  • Alerting via Telegram and Email
  • Multiple meter support
  • Grafana / Node-RED flow versioning
  • VPS or cloud deployment
  • Remote device management and automatic provisioning

Security Considerations

Before publishing any IoT project, remove TTN API keys, InfluxDB tokens, Grafana credentials, active webhook URLs and ngrok endpoints, and rotate any exposed secrets. This repository is a public engineering case study and contains no active production secrets.


Project Context

Developed as part of a university internship focused on Internet of Things (IoT), LoRaWAN networks, telemetry systems, industrial monitoring, and data visualization. The repository serves as technical documentation and a portfolio project demonstrating a complete Industrial IoT telemetry stack.


Author

Zoel Arias Manchón — July 2025

License

Released under the MIT License.

About

Real-time electrical energy monitoring with LoRaWAN, telemetry processing, time-series storage and Grafana dashboards.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors