Un impianto fotovoltaico produce energia e produce dati, ma leggere i dati è molto più difficile che misurare l’energia. Ho passato qualche serata a estrarre la curva di produzione da un inverter da tetto, e l’ostacolo non è la fisica: ogni costruttore parla una lingua diversa, spesso non documentata, e il software che la traduce in un grafico è quasi sempre chiuso e legato al portale del costruttore.

Contesto

Un inverter di stringa registra grandezze utili: potenza istantanea in corrente continua e alternata, tensione di stringa, energia accumulata nella giornata e nel totale, codici di errore. Sugli impianti residenziali e di piccola taglia queste grandezze finiscono quasi sempre in un portale web del produttore, raggiunto da un datalogger dedicato che parla un protocollo deciso dal costruttore. Chi possiede l’impianto vede i propri numeri attraverso un’interfaccia che non controlla, su un server che non gestisce, in un formato che può esportare solo come l’azienda ha deciso.

Chi vuole tenere i dati in casa — su un database locale, dietro un grafico costruito con i propri strumenti come RRDtool — incontra tre barriere in fila: il protocollo di trasporto, la mappa dei registri, la licenza del software che li legge.

Il livello di trasporto

Sul campo convivono almeno tre famiglie di accesso.

La prima è Modbus, nelle varianti RTU su seriale RS-485 e TCP su rete IP. È un protocollo industriale del 1979, banale da implementare: una richiesta di lettura indica l’indirizzo del registro e la quantità, la risposta restituisce parole da 16 bit. Diversi inverter espongono un’interfaccia Modbus, ed è il caso più facile da affrontare per chi scrive software: il trasporto è pubblico e le librerie esistono in ogni linguaggio.

La seconda è il mondo proprietario di SMA, il maggiore costruttore europeo. I suoi inverter comunicano via SMA-Net su seriale, oppure via Bluetooth sui modelli più recenti. SMA distribuisce YASDIYet Another SMA Data Implementation — una libreria in C sotto licenza LGPL che implementa il protocollo SMAData su porta seriale e su UDP. È software con il sorgente disponibile, cosa rara per un costruttore, e copre la connessione cablata. Il canale Bluetooth, invece, usa una variante del protocollo che YASDI non gestisce.

La terza è la strada del reverse engineering, per i casi in cui non esiste una libreria ufficiale. Il progetto sma-bluetooth su Google Code — da cui discende lo strumento poi noto come SMAspot — nasce da un lavoro collettivo di analisi del traffico Bluetooth degli inverter SMA, ricostruito sniffando lo scambio fra l’inverter e il software ufficiale. Il codice è sotto GPL, gira su Linux, e legge il dato istantaneo e l’archivio giornaliero direttamente dall’apparecchio, senza passare dal portale del costruttore.

Il punto critico: la mappa dei registri

Avere il trasporto non basta. Anche con Modbus a disposizione, sapere dove sta la potenza istantanea e come è scalata resta un problema per ogni modello. Storicamente ogni costruttore numera i propri registri a modo suo, con unità e fattori di scala documentati — quando lo sono — in fogli tecnici separati. Un programma che funziona con un inverter va riscritto per il successivo.

Il tentativo più serio di chiudere questa frattura è la specifica SunSpec. Dal 2009 la SunSpec Alliance ha definito un modello informativo su Modbus: una mappa di registri comune che un inverter conforme espone a partire da un indirizzo base noto, con un blocco di intestazione che identifica il dispositivo e dichiara quali modelli opzionali implementa. Un lettore percorre la catena leggendo le intestazioni dei blocchi successivi e si ferma quando incontra il marcatore di fine mappa. La promessa è che lo stesso codice di lettura funzioni su qualsiasi inverter conforme, perché la semantica dei registri non è più una convenzione privata ma un documento pubblico.

Nel 2011 SunSpec è una specifica giovane: pubblicata, leggibile, ma con un parco installato ancora limitato. La maggior parte degli inverter sul tetto continua a parlare il proprio dialetto. La specifica risolve il problema all’origine — concordando la mappa prima che il dispositivo venga costruito — invece di lasciarlo all’archeologia del reverse engineering a valle.

Implicazioni

La differenza fra questi tre approcci non è solo tecnica. Modbus e SunSpec spostano il dato dalla custodia del costruttore a quella del proprietario: chi possiede l’impianto può leggere i propri numeri con i propri strumenti, conservarli nel formato che preferisce, confrontarli nel tempo senza dipendere dalla continuità di un servizio remoto. Una libreria distribuita in sorgente come YASDI rende questa lettura riproducibile e verificabile da chiunque, anche se il protocollo sottostante resta del costruttore. Il reverse engineering recupera l’accesso quando l’azienda non lo concede, al prezzo della fragilità: un cambio di firmware può rompere tutto.

Su un impianto fotovoltaico la posta in gioco è la longevità del dato. Un impianto dura vent’anni e oltre; i portali, le aziende e i formati proprietari raramente durano altrettanto. Una serie storica di produzione conservata in locale, in un formato documentato, è l’unica forma di monitoraggio che non dipende dalla sopravvivenza commerciale di chi ha venduto l’inverter.

Su questo terreno applicativo nasce FaSt, lo spinoff dedicato al fotovoltaico raccontato in un insight di noze: https://www.noze.it/insights/spinoff-fast/.

Limiti

Nessuno dei tre approcci copre l’intero parco installato. Modbus non lo espongono tutti i modelli; l’adozione di SunSpec è ancora rada; il reverse engineering è per definizione legato al singolo modello e si rompe con gli aggiornamenti. Le grandezze leggibili non includono tutto ciò che servirebbe a un’analisi di rendimento: dati ambientali, irraggiamento e temperatura del modulo vanno raccolti da sensori separati, con il loro logging. E leggere in locale il singolo inverter non sostituisce il monitoraggio fine di stringa che serve a diagnosticare un calo di resa su pochi pannelli. La leggibilità del dato di produzione è la condizione minima, non l’analisi completa di un impianto.


https://sunspec.org/wp-content/uploads/2009/03/SunSpec-Device-Information-Model-Specificiation-V1-2-1.pdf https://www.sma.de/en/products/apps-software/yasdi https://code.google.com/archive/p/sma-bluetooth https://oss.oetiker.ch/rrdtool/ https://www.modbus.org/specs.php

Immagine di copertina: Inverter fotovoltaico di stringa SMA Sunny Boy SB 2800i, unita rettangolare con involucro chiaro e display anteriore, fotografata… — foto di Asurnipal, CC BY-SA 4.0 — https://commons.wikimedia.org/wiki/File:Inverter_SMA_Sunny_Boy_SB_2800i-01ASD.jpg