Hi Thinger team
,
I am working with Thinger.io Data Buckets using “From MQTT Topic” and I need guidance on the correct / recommended way to store and visualize large, event-based sweep data.
Setup
- Device: ESP32-S3
- Transport: MQTT
- Broker: backend.thinger.io
- Bucket source: From MQTT Topic
- Topic example:
solar/mppt/02/sweep - Payload format: JSON
- Data is successfully stored and exportable from the bucket
Data Types I Send
Periodic sensor data (WORKING PERFECTLY)
Example payload:
{
"bpw": 1,
"lux": 234.5,
"aht_temp": 32.1,
"aht_hum": 61.3,
"roll": 1.2,
"pitch": -0.5,
"ntc_array": "26.1,26.3,26.0,..."
}
2️⃣ Sweep / IV curve data (PROBLEM AREA)
Sweep is event-based, triggered manually or by timer.
Because the sweep string is long, I currently send it in multiple MQTT messages:
{"event":"init","data":""}
{"event":"sweep_start"}
{"event":"sweep_data","data":"49.38,0.05,2.30;49.21,0.38,18.07;..."}
{"event":"sweep_data","data":"48.77,1.42,66.14;..."}
{"event":"sweep_end"}
Each publish creates a separate row in the bucket (expected behavior).
🔹 Observed Behavior
✔ Data is stored in the bucket
✔ Exported JSON contains all sweep chunks
❌ Dashboards cannot reconstruct or plot the sweep
❌ Array/string-based sweep data is not usable for visualization
I also have a Python dashboard consuming live MQTT, and it works perfectly because it reconstructs the sweep manually.
❓ Questions
1️⃣ Is it recommended or supported to store large, event-based sweep data (IV curves) in Thinger.io Data Buckets?
2️⃣ Is it better to send the entire sweep in a single JSON payload, for example:
{
"V": [49.38,49.21,49.04],
"I": [0.05,0.38,0.82],
"P": [2.30,18.07,38.39],
"Voc": 49.42,
"Vmp": 40.81,
"Imp": 11.92,
"Pmp": 509.5
}
Are there payload size limits?
Is this dashboard-friendly?
3️⃣ Is the intended best practice to:
Store only summary values (Voc, Vmp, Imp, Pmp) in Thinger buckets
And handle full IV curve visualization outside Thinger dashboards?
4️⃣ Are Thinger dashboards mainly designed for scalar time-series data, not large array or event-based datasets?
🎯 Goal
I want to:
Use Thinger.io for monitoring, KPIs, alarms, and history
Use external tools (Python) for full IV curve visualization
I’d like to confirm if this split architecture is the intended and recommended approach.
Thanks in advance for any guidance or best-practice confirmation 🙏