Cosa fa
PlantPulse chiude il ciclo che va dalla misura sul campo alla decisione di
manutenzione e alla prova del risparmio. Sul campo, nodi basati su Raspberry Pi
con ADC MCP3008 leggono tensione e corrente, calcolano potenza e cos phi e
inviano le misure a batch al server centrale con buffer e retry; in alternativa
un gateway on-site interroga i PLC e i contatori gia' installati via Modbus TCP
e OPC-UA, oppure il server si sottoscrive a un broker MQTT esistente. Il server
persiste, aggrega e valuta ogni misura in tempo reale: supera una soglia e nasce
un allarme, devia dalla firma elettrica attesa e nasce un ordine di lavoro
predittivo, scende sotto la baseline energetica e diventa risparmio
certificabile. Tutto il traffico e' in uscita e autenticato con chiave
per-dispositivo: non serve aprire porte in ingresso sul firewall del cliente.
| Modulo / componente | Ruolo |
|---|---|
| Nodo edge (Raspberry Pi + ADC MCP3008) | Legge V/I via SPI, calcola potenza e cos phi, bufferizza e invia batch HTTPS |
| Gateway di protocollo on-site | Poller Modbus TCP e OPC-UA verso PLC/contatori esistenti, con config scaricata dal server e hot-reload |
| Bridge MQTT (lato server) | Si sottoscrive ai broker del cliente; ricompone V/I/P e alimenta misure e tag |
| Server applicativo | ASP.NET Core .NET 10: ingest, dominio, allarmi, analytics, realtime SignalR |
| Anagrafica asset ad albero | Sito, immobile, impianto, macchinario, componente, con dati energia, MTBF/MTTR, OEE, cespite, centro di costo |
| Manutenzione | Ordini di lavoro, piani a calendario e a contatore kWh/ore, checklist, ricambi, allegati foto e firma |
| Salute predittiva | Deviazione della firma elettrica e vita utile residua, con generazione automatica di ordini di lavoro |
| Allarmi e anomalie | Soglie per sensore e per tag con cooldown, rilevamento z-score, escalation e notifiche |
| Risparmio e M&V | Baseline dichiarata e a regressione sui driver, EnPI, contratti EPC con rendiconto |
| Scadenzario compliance | Verifiche documentali ricorrenti (messa a terra, antincendio, F-Gas) che generano ordini di ispezione |
| ESG multi-vettore | Elettricita', gas, acqua, teleriscaldamento, diesel, GPL, con fattori kWh e kgCO2e |
| Integrazione | Feed OData per Power BI/Excel, webhook firmati HMAC, import/export ERP, master data export |
| Dashboard web | Angular 22 standalone a tiles, 43 aree funzionali, portale cliente separato |
Funzionalita' chiave
- Monitoraggio in tempo reale di tensione, corrente, potenza e cos phi, con monitor SignalR del consumo aggregato e dello stato della flotta edge.
- Tre vie di collegamento senza aprire il firewall in ingresso: agente edge proprietario, gateway Modbus/OPC-UA sull'automazione esistente, o push HTTPS diretto da SCADA.
- Auto-registrazione di impianti e sensori al primo invio, con anagrafica arricchibile dal web.
- Allarmi su soglia (potenza, tensione, corrente, cos phi) e su tag generici non elettrici, con cooldown, presa in carico e trasformazione automatica in ordine di lavoro.
- Manutenzione predittiva guidata dall'energia: la deviazione della firma elettrica apre l'ordine di lavoro prima del guasto.
- Piani di manutenzione a calendario e a contatore d'uso (kWh o ore), con ricambi tipizzati e magazzino.
- Misura e verifica del risparmio secondo IPMVP Opzione C: baseline a regressione su ore, produzione e gradi-giorno, con R2 e giorni valutati.
- Normalizzazione climatica automatica: i gradi-giorno HDD/CDD si scaricano dal servizio meteo a partire da latitudine e longitudine della baseline.
- Report M&V sigillati per audit: JSON canonico, hash SHA-256 per l'integrita' e firma HMAC per l'autenticita', in storico immutabile e riverificabili.
- Contratti EPC con risparmio garantito o shared savings, rendiconto automatico, calcolo della penale e ripartizione ESCO/cliente.
- EnPI secondo ISO 50001: kWh per unita' prodotta rispetto al target, con scostamento percentuale.
- Portafoglio ESCO cross-tenant e portale cliente con report mensili PDF pianificati.
- Contabilita' multi-vettore ed ESG con emissioni in kgCO2e e consumo idrico.
- Multi-tenant nativo con JWT, refresh token a rotazione, ruoli e audit trail.
- Aggiornamento firmware OTA dei nodi: catalogo con SHA-256, canali e gruppi di sensori.
- Osservabilita' opzionale OpenTelemetry via OTLP e Prometheus, retention configurabile e hypertable TimescaleDB.
Architettura
I nodi di campo sono agenti .NET su Raspberry Pi che leggono l'ADC MCP3008 su
bus SPI, campionano V e I, derivano potenza e cos phi e inoltrano i batch in
HTTPS verso l'endpoint di ingest, autenticandosi con una device-key per
dispositivo e bufferizzando in locale con retry quando la rete cade. In
parallelo, un worker gateway vive sulla LAN industriale, scarica la propria
configurazione dal server con hot-reload e polla PLC e contatori via Modbus TCP
e OPC-UA, applicando scale, offset e datatype per mappare ogni registro o NodeId
su un campo elettrico o su un tag generico; i device che pubblicano su MQTT sono
consumati lato server da un servizio dedicato che si sottoscrive ai broker del
cliente. Il contratto dati tra campo e server vive in un solo assembly condiviso,
cosi' il formato del messaggio e' garantito a compile-time su entrambi i lati. Il
server e' ASP.NET Core .NET 10 in minimal API con EF Core e Npgsql su
PostgreSQL, isolamento multi-tenant via query filter, SignalR per il push
realtime, OData per il feed BI e webhook firmati HMAC-SHA256 con outbox e retry.
Il front-end e' Angular 22 standalone con signals, servito da nginx. Il deploy va
da Docker Compose (TimescaleDB, server, web) fino al servizio Windows tramite
Application Hub; i nodi edge si installano come unita' systemd da un pacchetto
self-contained linux-arm64 o come immagine Docker arm64.
Requisiti
- Nodi di campo: Raspberry Pi con Raspberry Pi OS Lite 64-bit, ADC MCP3008 su bus SPI abilitato, sensori di tensione e corrente; servizio systemd da pacchetto linux-arm64 o immagine Docker arm64.
- Gateway di protocollo: una macchina sulla LAN industriale con accesso ai PLC/contatori Modbus TCP o OPC-UA e connettivita' HTTPS in uscita.
- Connettivita': solo traffico in uscita HTTPS dal campo al server, autenticato con device-key per dispositivo; nessuna porta in ingresso da aprire.
- Server: runtime .NET 10 (ASP.NET Core), oppure Docker e Docker Compose, oppure Windows come servizio via Application Hub.
- Database: PostgreSQL, con TimescaleDB opzionale per hypertable, compressione e retention delle serie storiche.
- Front-end: build con Node.js 24 LTS, servito da nginx; a runtime basta un browser moderno.
- Opzionali: broker MQTT del cliente, SMTP per le notifiche, collector OTLP o Prometheus per l'osservabilita'.
