Build Custom IoT Data Collectors Using JEDI and JSON Forms
- Machinechat Team
- 3 days ago
- 3 min read
Bring In Your Data. Your Way.
Documentation URL: https://docs.machinechat.io/machinechat-jedi/data-collectors/custom-data-collector-plugin/custom-data-collector-plugin/
You know your data.
You know your sensors, your equipment, your APIs.
But getting that data into a working, visual, and useful system has always been the challenge.
With Machinechat JEDI's custom plugin data collectors and new JSON Forms-powered settings UI, you can finally connect any data source–legacy or bleeding edge–and make it live inside a real-time monitoring system. No cloud. No vendor lock-in. No friction.
With Settings UI, your custom data collectors get a dynamic UI that you didn't have to build.
🧭 Why This Matters
You've got:
A sensor on a serial port
A PLC that speaks a custom Modbus dialect
An API streaming out data you care about
A USB device with zero public documentation
And you know how to talk to it.
But wiring it into a dashboard? Managing config changes? Giving someone else a clean way to use it? It is messy.
Machinechat JEDI's custom plugin system ≠ JSON Forms UI turns your expertise into a reusable, professional-grade IoT data connector.
Write a script, define a few JSON files, and boom–your logic has a live data stream and its own configuration UI in JEDI.
💡Think of It Like This:
Your script = the data brain
JSON Forms = the face of your plugin data collector
JEDI = the muscle: dashboards, alerts, storage, automation
You don't need to build an IoT platform. JEDI is your platform.
You bring the logic. JEDI'll handle the rest.

🛠️ How It Works
1. Write Your Plugin
Your script (Python, Go, C, Node.js—whatever you love) reads your data source and prints metrics in JEDI’s simple format:
textCopyEditmetric: id=SensorX, n=Temperature, vd=22.7, u=C
Send data to STDOUT, errors to STDERR. You’re speaking JEDI’s language.
2. Add a Dynamic UI with JSON Forms
Drop four files in your plugin folder:
JEDI automatically builds a settings UI for your plugin in the browser.
Refer to JEDI's documentation on custom data collectors and Settings UI here Custom Data Collector Documentation
3. Read Settings in Your Script
Your script reads a CONFIG environment variable—JSON-formatted with the user’s settings.
Example:
jsonCopyEdit{ "polling_interval": 5, "serial_port": "/dev/ttyUSB0"}
Use that data however you like. You’re in control.
👷 Real-World Examples
🏭 Modbus Vibration Monitor
Plugin written in Go
UI for serial port, address, and polling interval
Streams machine health data 24/7 into dashboards and rules
🌱 Smart Greenhouse
Plugin in Node.js
UI for API key and soil moisture threshold
Triggers watering rules via JEDI
🔌 DIY Energy Meter
C plugin to decode custom voltage sensor
UI for calibration and alert thresholds
Sends daily reports and alerts on overuse
👨💻 Built for Engineers Like You
You don’t want to fiddle with UI frameworks or cloud platforms. You want results.
JEDI lets you:
Use your favorite programming language
Build once, configure easily, share freely
Avoid writing front-end code, ever
Deploy fast—on Windows, Mac, Linux, Raspberry Pi
⚡ Your Next Step
You already know how to read your sensor, parse that file, or talk to that controller.
Now, take that script and make it rock inside JEDI:
Drop it in /plugins/
Add your JSON UI files
See your data. Customize it. Trigger actions. Share it.
You’ve done the hard part—writing the logic. JEDI does the rest for you—bringing your logic to life.
Want to Go Deeper?
Full plugin docs: Machinechat documentation
JSON Forms playground: jsonforms.io
Support team: support@machinechat.io
Bình luận