GitHub - dgiot/dgiot: Open Source Industrial IoT Platform | 300+ protocols | 6-min deploy | Modbus OPC UA MQTT | 12K Stars · GitHub
Skip to content
dgiotPublic

About

Open Source Industrial IoT Platform | 300+ protocols | 6-min deploy | Modbus OPC UA MQTT | 12K Stars

Topics

Resources

Contributing

Security policy

Stars

4.9k stars

Watchers

911 watching

Forks

Latest commit

 

History

61 Commits

Folders and files

Repository files navigation

dgaiot

Industrial IoT Aggregation Engine

Erlang/OTP · Million-Device · Shadow · Ontology · gen_statem


DLAS Architecture

  ┌──────────────────────────────────────────────────────────────────┐
  │                    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                             │
  └──────────────────────────────────────────────────────────────────┘

Full HTML Diagram

FDE Pipeline

Model → Ontology → Device Access → TimeSeries → Rules → Dashboard
  1        2           3              4           5          6

Data Flow

Modbus 40300 → MQTT(dgiot/{site}/{gw}/{dev}/{pt}/data) → Shadow PID
  → evaluate(Rules) → state transition → Parse + TDengine INSERT

Ontology: DLAS

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

Modules

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

Quick Start

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

Documentation

Related

  • iotStudio — Edge Agent & Application (Python + Vue)
  • dgiot — Full Erlang IoT Platform

License

Apache 2.0

About

Open Source Industrial IoT Platform | 300+ protocols | 6-min deploy | Modbus OPC UA MQTT | 12K Stars

Topics

Resources

Contributing

Security policy

Stars

4.9k stars

Watchers

911 watching

Forks

Releases

Packages

Used by

Contributors

Languages