I Pointed My Industrial IoT Platform at My Dog — Here's What Happened
Dog Days Challenge Entry 🐶
My company builds industrial IoT infrastructure — 928 gateways monitoring oil wells, UAV testing lines producing 60 drones a day, maritime safety platforms with 99.9999% uptime.
This weekend, I pointed that entire stack at a Golden Retriever.
The Stack
Meet PawTrack — a dog health monitoring demo built on DGIOT, our open-source industrial IoT platform:
Smart Collar (PawCollar-V2)
│ MQTT · 2-second sampling
▼
DGIOT Platform (Erlang/OTP)
│ 300+ protocol adapters · Shadow devices · Rule engine
├── TDengine (time-series storage)
├── DLAS Ontology Engine (OWL reasoning)
└── Dashboard (real-time vitals)
The collar streams four metrics every 2 seconds:
- Heart rate (bpm)
- Body temperature (°C)
- Activity level (%)
- Battery + RSSI
Why Industrial IoT Makes Sense for Pets
Here's the part that surprised me: a dog is just another telemetry source.
The industrial world has spent decades solving problems that pet tech startups are rediscovering:
| Industrial Problem | Pet Equivalent |
|---|---|
| Gateway goes offline in a remote oil field | Dog runs out of Wi-Fi range |
| Sensor drift on a pressure gauge | Collar temperature calibration |
| False alarms flooding operators | "Your dog is dying" notification at 3am |
| 928 gateways to manage | Multiple pets, multiple collars |
We already solved all of these for oil fields. A Golden Retriever is just a smaller, fluffier oil well.
The Ontology Layer — Why It Matters
The interesting part is our DLAS ontology engine. Instead of hard-coded thresholds ("if temp > 39.5, alert"), we model knowledge:
GoldenRetriever ⊑ Dog ⊓ ∃hasRisk.HipDysplasia
ActivityDrop(dog, 40%) ∧ BreedRisk(dog, High) → Alert(medium)
This means the system knows that a Golden Retriever's activity drop is more concerning than a Border Collie's — hip dysplasia is breed-specific. The ontology compiles to Erlang pattern matches, so reasoning happens at runtime speed.
The Shadow Device
Every physical device gets a digital twin — a gen_statem process that mirrors its lifecycle:
init → auth → online → {active, inactive, alert}
When the collar drops offline, the shadow holds state and retries silently. The dashboard doesn't scream "DOG IS GONE" — it waits, because shadows absorb network chaos. This is the same mechanism that keeps oil field gateways calm during sandstorms.
The Demo
The live demo simulates the MQTT stream with real-time vitals, ontology inference, and the alert closed-loop (discover → confirm → handle → verify):
dgiot/pets/wanCai/telemetry → {"temp":38.6,"hr":88,"activity":62}
dgiot/pets/wanCai/shadow → {"state":"active","battery":87,"rssi":-62}
Watch for the activity-drop alert — when activity falls below 35%, the ontology fires a hip dysplasia risk warning for the Golden Retriever, generates a work order, and closes the loop when activity recovers.
What's Real vs. What's Demo
Real: DGIOT platform, DLAS ontology engine, shadow device architecture, MQTT pipeline, alert closed-loop — all production code from our industrial deployments.
Demo: The collar hardware (simulated), the dog (borrowed), the vitals (synthetic values).
The point: the platform is production-grade. Building pet monitoring on it took one afternoon, because the hard parts — protocol handling, shadow state, ontology reasoning — were already done for 300+ industrial use cases.
The Code
- Platform: github.com/dgiot/dgiot — Apache 2.0, 4.8K stars
- Demo: Single HTML file simulating the MQTT stream
Want to build your own? The platform deploys in 6 minutes:
git clone https://github.com/dgiot/dgiot.git
cd dgiot && docker-compose up -d
Built for the Dev.to Dog Days Challenge. If your dog's activity drops below 35%, take them to the vet — the ontology says so.
Top comments (0)