Open source · RCP & vRCP svizzeri · self-hosted · AGPL-3.0

Dai dati del contatore al quarto d’ora alla fattura pagata.

Importa le curve di carico, ripartisci il solare tra i partecipanti per intervallo di 15 minuti, valorizzalo con le tue tariffe e invia una QR-fattura. L’ho scritto per fatturare il mio RCP e lo pubblico nel caso possa servire anche al tuo.

Bilancio energetico · comunità demo · T3 2026

FV 1’888.85 kWh Rete 738.9 kWh 625.8 kWh consumato localmente 33.1 % autoconsumato 1’263.05 kWh immesso in rete
Consumo locale Scambio con la rete Produzione

La stessa ripartizione eseguita dal motore di fatturazione — min(produzione, consumo) per intervallo di 15 minuti — è la base di ogni riga di fattura.

Risoluzione
Intervalli di 15 minuti
Documenti
PDF/A-3b + QR-fattura
Lingue
DE · FR · IT · EN
Installazione
Docker o Kubernetes

Cosa fa

Misure, tariffe, fatturazione, documenti

Fatturare un RCP per un mese è facile. Diventa più difficile quando la tariffa dell’anno scorso deve continuare a esistere, quando chi si è trasferito a marzo deve essere fatturato fino a marzo e quando la fattura deve essere qualcosa che un vicino accetta senza chiedere il foglio di calcolo che c’è dietro.

Misure & importazioni

CSV, Excel e SDAT-CH

I formati che i gestori di rete svizzeri inviano davvero, più tutto ciò che esporta il tuo contatore.

  • CSV ed Excel con mappatura delle colonne configurabile, più SDAT-CH per i flussi con il gestore di rete
  • Validazione con anteprima e protocollo di importazione riga per riga
  • Controlli di qualità dei dati su lacune, duplicati e letture non plausibili
  • Analisi di consumo e produzione per periodo o profilo giornaliero
Tariffe & fatturazione

Ripartizione per intervallo di 15 minuti

Ogni intervallo è valorizzato con la versione di tariffa valida in quel momento. Nulla viene mediato sul mese.

  • Tariffe versionate con fasce alta/bassa, periodi stagionali e finestre di validità
  • Serie di prezzi dinamici, incluso il prezzo di mercato di riferimento dell’UFE
  • Importazione del file tariffario leggibile da macchina di un gestore di rete (art. 7b OAEl)
  • Ripartizione del pool locale tra tutti i partecipanti, per ogni marca temporale
Documenti

Fatture, conteggi e contratti

Le fatture vengono generate in PDF/A-3b con la sezione di pagamento QR e passano attraverso gli stati bozza, approvata, inviata, pagata. Uno storno conserva il documento e il suo numero invece di eliminare la riga. Conteggi annuali e contratti di partecipazione escono dallo stesso motore di rendering e ogni versione emessa viene conservata così come è stata inviata.

Comunità

Ruoli, ambito e date di trasloco

Amministratori, proprietari dell’RCP e partecipanti hanno ciascuno la propria vista sugli stessi dati. Le assegnazioni tra partecipanti e punti di misura hanno date di validità: chi si trasferisce il 15 marzo viene fatturato fino al 15 marzo.

Pianificazione

La fattibilità prima di costituirne uno

Stima risparmi, tempo di recupero, ROI e VAN per una comunità in progetto. Se ne gestisci già una, il calcolo può essere precompilato dai suoi partecipanti e dall’autoconsumo misurato.

Esercizio

Pensato per essere gestito da una sola persona

  • Registro di audit di tutte le azioni privilegiate, limitato a ciò che puoi vedere
  • Invio asincrono delle e-mail con cronologia per fattura e nuovo tentativo
  • Chiavi API per gli script, in sola lettura e con un proprio limite di richieste
  • Esporta o sposta un’intera comunità tra istanze come archivio versionato

Schermate

Come si presenta

Dalla comunità demo inclusa nel progetto, creata con un solo comando. L’interfaccia è disponibile in quattro lingue; le schermate la mostrano in inglese.

Panoramica

Periodi di fatturazione, i più vecchi per primi

Ogni periodo mostra l’azione richiesta, così inizi dal lavoro da fare invece di cercarlo. Il periodo che sta ancora raccogliendo dati lo dice semplicemente.

Schermata di panoramica di OpenZEV con i periodi di fatturazione per stato, ciascuno con la prossima azione (interfaccia in inglese)
Bilancio energetico

Dove è finito davvero il solare.

Produzione, consumo, autoconsumo e scambio con la rete per il periodo scelto, con un diagramma di Sankey che segue ogni kWh dal produttore al partecipante. Filtra per partecipante o scendi fino al singolo intervallo.

Schermata del bilancio energetico con indicatori chiave e un diagramma di Sankey del flusso di energia tra produttore, partecipanti e rete (interfaccia in inglese)
Fatturazione

Una riga per partecipante

Tutte le fatture del periodo con completezza delle misure, stato, totale e stato del PDF, più azioni di gruppo per i passaggi che altrimenti ripeteresti per ogni economia domestica.

Schermata di fatturazione con la fattura di ogni partecipante, badge di stato, totali e azioni di gruppo (interfaccia in inglese)
Tariffe

Ogni modifica di tariffa è una nuova versione

Una tariffa è una serie di versioni, ciascuna con le proprie fasce e la propria finestra di validità. Una fattura emessa l’anno scorso viene valorizzata ancora alla tariffa dell’anno scorso e il grafico mostra quando ogni modifica è entrata in vigore.

Dettaglio di una tariffa con cronologia delle versioni, grafico dell’andamento dei prezzi e fasce tariffarie alta e bassa (interfaccia in inglese)

Avvio rapido

Tre modi per eseguirlo

Scegli quello che corrisponde a dove vuoi installarlo. Tutti e tre scaricano immagini già pronte da GHCR.

Provalo

Comunità demo

Avvia lo stack e crea una comunità completa — partecipanti, contatori, tariffe e letture — così c’è qualcosa da guardare.

# clona, poi:
scripts/start-demo-environment.sh

# → http://localhost:8080
# admin@openzev.local / admin1234
Self-hosting

Docker Compose

Lo stack completo — frontend, API, worker e beat Celery, PostgreSQL e Redis — senza dati demo.

docker compose up -d --build

# frontend  :8080
# api       :8001

docker compose down
Kubernetes

Kubernetes, con Helm

Il chart distribuisce frontend, backend, worker e beat nel tuo cluster con un Ingress e un PVC per i media. PostgreSQL e Redis restano a tuo carico.

helm repo add openzev \
  https://splattner.github.io/openzev
helm repo update
helm install openzev openzev/openzev \
  -n openzev --create-namespace
Immagini ghcr.io/splattner/openzev-{backend,frontend,fullstack} Firmati manifest di release e attestazioni SBOM Database PostgreSQL, MariaDB o SQLite tramite DATABASE_URL

Sotto il cofano

Lo stack tecnologico

Backend
Django, Django REST Framework, SimpleJWT
Frontend
React, TypeScript, Vite, React Query, i18next
Asincrono
Worker e beat Celery su Redis
Dati
PostgreSQL, MariaDB o SQLite
API
Schema OpenAPI con Swagger e ReDoc
Installazione
Docker Compose, oppure Helm su Kubernetes
Licenza
AGPL-3.0 — eseguilo, modificalo, ospitalo. Se offri una versione modificata ad altri tramite una rete, ricevono anche il codice sorgente.

Leggi questo prima di fatturare qualcuno con OpenZEV

Ho costruito OpenZEV per gestire il mio RCP e lo condivido così com’è, senza garanzia. Si adatta a chi ama gestire il proprio stack. Controlla importazioni, tariffe e fatture prima che raggiungano un partecipante: la responsabilità di ciò che dicono i numeri resta tua.

È inoltre costruito con molta assistenza di IA, fino alle specifiche, agli ADR e alla documentazione utente. Alcune scelte sembreranno poco convenzionali a un team esperto. È il compromesso che ho scelto: il progetto è ottimizzato per l’apprendimento, la sperimentazione e la gestione di un vero RCP, non per i processi aziendali.