Open Source Industrial IoT Platform | 300+ protocols | 6-min deploy | Modbus OPC UA MQTT | 12K Stars
$ npx -y skills add dgiot/dgiot --agent claude-code
What's inside
┌──────────────────────────────────────────────────────────────────┐
│ EDGE: iotStudio (Python+Vue) │
│ DeviceAccess(9) → UnifiedPipeline → StreamEngine(15) → Alert(6) │
└──────────────────────────┬───────────────────────────────────────┘
│ MQTT / HTTP
┌──────────────────────────▼───────────────────────────────────────┐
│ SECURITY auth · role · ACL/CLP · Hooks · JWT │
├──────────────────────────────────────────────────────────────────┤
│ ACTION Shadow(gen_statem) · Bridge · MQTT · Rule Engine │
│ init → auth → online → {normal, alarm, offline} │
├──────────────────────────────────────────────────────────────────┤
│ LOGIC Ontology Engine · Model Registry · 3 ETS Tables │
│ load_model → compile → spawn → evaluate → reason │
├──────────────────────────────────────────────────────────────────┤
│ DATA Parse(23 Classes) · PG(:7432) │
│ TDengine(_{ProductId}, devaddr NCHAR(50)) │
│ EMQX(:1883) · Mnesia/ETS │
└──────────────────────────────────────────────────────────────────┘
Model → Ontology → Device Access → TimeSeries → Rules → Dashboard
1 2 3 4 5 6
Modbus 40300 → MQTT(dgiot/{site}/{gw}/{dev}/{pt}/data) → Shadow PID
→ evaluate(Rules) → state transition → Parse + TDengine INSERT
| Layer | Function | Key Technology |
|---|---|---|
| Data | 23 Parse classes, TDengine, Mnesia/ETS | JSONB, SuperTable/SubTable, _{ProductId} |
| Logic | load_model, spawn_instance, registry, rules, reasoner | 3 ETS tables, gen_statem compile |
| Action | Shadow 1:1 device process, Bridge, MQTT | gen_statem OTP, ont_push_point |
| Security | auth, role tree, ACL(object), CLP(class), Hooks | JWT, Parse ACL |
Full Ontology Doc · Storage Architecture · Station Simulation
| App | Layer | Role |
|---|---|---|
dgiot | Data | Core — EMQX, rule engine, alarms |
dgiot_ontology | Logic | Model registry, reasoner, instance spawner |
dgiot_parse | Data | Parse Server REST client |
dgiot_task | Action | Shadow gen_statem worker |
dgiot_device | Logic | Device management + thing model |
dgiot_bridge | Action | Protocol bridge framework |
dgiot_dlink | Action | Data link layer |
dgiot_api | Security | REST API + auth gateway |
dgiot_http | — | HTTP service layer |
dgiot_tdengine | Data | TDengine timeseries connector |
One-click deploy with Docker (recommended for evaluation):
git clone https://github.com/dgiot/dgiot.git
cd dgiot
docker compose up -d
Build from source — the bootstrap script installs Erlang/OTP 24.3 and build tools automatically (Ubuntu / Debian / CentOS / openEuler / macOS):
git clone https://github.com/dgiot/dgiot.git
cd dgiot
bash scripts/bootstrap.sh
make
Apache 2.0
FAQ
dgiot is a Claude Code plugin with 1 hand-picked skill for backend work, indexed on Flowy. Install it with the command on its page. It includes fde-ontology. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it