Hello Thinger team,
I am building a professional solar farm SCADA system using ESP32-S3 devices and Thinger.io MQTT integration, and I need guidance on enabling two-way communication (dashboard → device commands) without using the Product feature.
System Architecture
I have around 50 ESP32-S3 devices deployed in a solar monitoring system.
Each device connects as a generic MQTT device to Thinger broker:
-
Broker:
***.aws.thinger.io -
MQTT Device type: MQTT (generic)
-
Each device has unique ID:
solar_spvm_01_carnac solar_spvm_02_carnac ... solar_spvm_50_carnac
All devices publish telemetry via MQTT topics and data buckets are working perfectly.
Example telemetry topics:
spvm_01_sensor
spvm_01_sweep
These are correctly stored in buckets and visualized in dashboards.
Requirement: Two-way communication
Now I want to send control commands from dashboard → device via MQTT.
Each ESP32 already subscribes to:
Per-module command topic:
solar/spvm/01/cmd
solar/spvm/02/cmd
...
Broadcast topic:
solar/spvm/all/cmd
When payload "Start" is received, device starts IV sweep.
So device side is ready.
What I tried
1. Device property method
Created device property:
cmd (string)
Expected:
Dashboard/property change → MQTT publish → device receive
Subscribed ESP to:
v2/users/{user}/devices/{device}/properties/cmd
But property updates are not published to MQTT for MQTT devices.
So ESP receives nothing.
2. Products feature
I understand this can be solved using:
- Product
- API resource
- Device topic routing
But for this project I want to avoid Products layer and keep system simple with:
MQTT devices + buckets + dashboard
Question
Is there any official way to achieve:
Dashboard button → publish MQTT message → specific MQTT device
WITHOUT using Products feature?
For example:
From dashboard button send:
Topic: solar/spvm/02/cmd
Payload: Start
So device receives command directly.
Ideal workflow needed
Dashboard control widget
↓
ThingER MQTT publish
↓
Device receives command
All devices are already connected via MQTT and publishing successfully.
Only missing piece is:
Dashboard → MQTT publish
Example ESP32 subscribe (working)
mqtt.subscribe("solar/spvm/02/cmd");
mqtt.subscribe("solar/spvm/all/cmd");
If Thinger dashboard can publish to these topics,
two-way SCADA control will be complete.
Summary
Looking for recommended method for:
Two-way MQTT communication with MQTT devices
without using Products.
What is the correct approach?
Thank you.