Scroll-driven storytelling · 5 kapitol · 2 minuty
Scroll-driven storytelling · 5 chapters · 2 minutes

Cesta jednoho registru.

The journey of a register.

Co se stane mezi okamžikem, kdy Sinexcel PCS přečte hodnotu, a vteřinou, kdy ji uvidíte v dashboardu. Posuňte stránku dolů.

What happens between the moment a Sinexcel PCS reads a value and the second you see it on a dashboard. Scroll down.

Posuňte se níže
Scroll down
Pole · Field PCS · BMS · REF615 · Emax2 Edge · ICO Gateway ecc-edge-module · Docker Cloud · Azure IoT Hub AMQP · TLS 1.2 Storage · Cosmos DB + API EventHub → FastAPI Dashboard · React SPA eccontrol.org/app
Kapitola I — Pole
Chapter I — Field

00:00:00 — Modbus vyšle bajt.

00:00:00 — Modbus emits a byte.

Sinexcel PCS na 192.168.5.101 odpoví na FC=3 dotaz, registr 32. Šestnáct bitů. Hodnota: 0x00A3 = 163 desetinných × 0.1 kW = 16.3 kW činného výkonu.

The Sinexcel PCS at 192.168.5.101 replies to an FC=3 query, register 32. Sixteen bits. Value: 0x00A3 = 163 decimal × 0.1 kW = 16.3 kW active power.

PCS_1 · reg 32 · UInt16 · 0x00A3 → 16.3 kW
Kapitola II — Edge
Chapter II — Edge

00:00:01 — Edge kontroluje, ukládá, posílá.

00:00:01 — Edge checks, stores, ships.

ecc-edge-module na ICO gateway hodnotu škáluje, porovná s předchozím vzorkem (change-detection), uloží do lokálního SQLite (offline-safe) a předá AMQP klientovi.

The ecc-edge-module on the ICO gateway scales the value, compares against the previous sample (change-detection), commits to local SQLite (offline-safe), and hands it to the AMQP client.

change_detector.py → local_buffer.py (SQLite WAL) → AMQP queue
Kapitola III — Cloud
Chapter III — Cloud

00:00:02 — IoT Hub přijímá přes TLS.

00:00:02 — IoT Hub receives over TLS.

Azure IoT Hub (ecc-iothub.azure-devices.net) hodnotu autentizuje proti device identity, validuje certifikát, předá Event Hub consumer group ecc-functions. AMQP 1.0 přes TLS 1.2.

Azure IoT Hub (ecc-iothub.azure-devices.net) authenticates against device identity, validates the certificate, forwards to the Event Hub consumer group ecc-functions. AMQP 1.0 over TLS 1.2.

Device-identity scope · Event Hub · partition routing
Kapitola IV — Sklad
Chapter IV — Storage

00:00:03 — Cosmos kotví řádek.

00:00:03 — Cosmos anchors the row.

Telemetry consumer (FastAPI background task) přečte zprávu, validuje proti Pydantic modelu, vloží do kolekce telemetry indexované podle (deviceId, timestamp). Update devices.lastSeen.

The telemetry consumer (FastAPI background task) reads the message, validates against a Pydantic model, inserts into the telemetry collection indexed by (deviceId, timestamp). Updates devices.lastSeen.

services/telemetry_consumer.py → Cosmos DB ecc.telemetry
Kapitola V — Obrazovka
Chapter V — Screen

00:00:04 — Operátor vidí 16.3 kW.

00:00:04 — The operator sees 16.3 kW.

React SPA, otevřená v prohlížeči dispečera, dotáhne /api/v1/devices/PCS_1/telemetry přes TanStack Query, vykreslí KPI dlaždici. 4 sekundy od bajtu k pixelu.

The React SPA, open in the dispatcher's browser, fetches /api/v1/devices/PCS_1/telemetry via TanStack Query, renders a KPI tile. Four seconds from byte to pixel.

DevicePage.tsx → KpiTile → 16.3 kW

Pět vrstev. Čtyři sekundy. Žádný papír.

Five layers. Four seconds. No paper.

Tohle je celá architektura. Pro každý ze 188 registrů, každých 30 sekund, od dubna 2026 bez přerušení.

That's the entire architecture. For every one of 188 registers, every 30 seconds, since April 2026 without interruption.

📞 +420 725 594 801 Napsat e-mailEmail us