Questa è una dashboard web sviluppata con Flask per monitorare, analizzare e prevedere il consumo elettrico, a partire dai dati raccolti dal sito Enel e salvati su un database PostgreSQL.
Il sistema supporta:
- Analisi dinamiche dei consumi nel tempo;
- Stime del costo della bolletta futura;
- Grafici con colorazione graduale per evidenziare trend di consumo;
- Tabella statistica con confronti storici;
- Esecuzione manuale di query SQL dal browser.
Clicca per visualizzare lo screenshot completo della dashboard
Nota: I dati mostrati nello screenshot sono generati automaticamente e potrebbero non rappresentare valori realistici. L’immagine ha il solo scopo illustrativo ed è stata creata per proteggere le informazioni reali dell’utente.
- Grafico a linea del consumo giornaliero sull’intero storico
- Grafici affiancati per il periodo corrente (dall’ultima bolletta alla prossima stimata):
- Consumo medio settimanale
- Consumo medio mensile
- Media per giorno della settimana
- Consumo aggregato nel periodo
- Consumo diviso per fasce orarie (F1, F2, F3)
- Stima del consumo e della spesa prevista:
- Consumo previsto
- Spesa prevista
- Voci dettagliate sotto ciascun valore
- Statistiche integrative:
- Massimo e minimo consumo assoluto e recenti
- Prezzo medio per kWh per ogni anno
- Storico e variazioni percentuali rispetto all’anno precedente
- Interfaccia SQL manuale
Non è necessaria alcuna installazione manuale dei pacchetti Python.
Il progetto è già contenuto in un ambiente Docker multicomponente, che installa automaticamente tutti i servizi necessari:
- PostgreSQL (con schema predefinito)
- Web app Flask
- Script automatici per l’inserimento dei dati
Assicurarsi solo di avere Docker e Docker Compose installati sul sistema host.
La dashboard e gli script di scraping richiedono alcune variabili di ambiente da definire nel file .env nella root del progetto:
| Variabile | Descrizione |
|---|---|
DB_HOST |
Host del database (es. localhost o db) |
DB_PORT |
Porta (es. 5432) |
DB_NAME |
Nome del database (es. enel) |
DB_USER |
Nome utente per la connessione |
DB_PASSWORD |
Password dell’utente del database |
| Variabile | Descrizione |
|---|---|
ENEL_USERNAME |
Email o username per login area clienti |
ENEL_PASSWORD |
Password dell’account Enel |
ENEL_POD |
Codice POD (identificatore punto di fornitura) |
ENEL_USER_NUMBER |
Codice utente associato al contratto |
ENEL_CF |
Codice fiscale del titolare del contratto |
ENEL_BP |
Business Partner (BP) code |
ENEL_CC |
Codice contratto Enel |
Per lanciare tutti i servizi:
chmod +x reset_all.sh
./reseset_all.shAl primo avvio è necessario assicurarsi della corretta terminazione dello script scripts/fetch_bollette.py (ossia verificare la presenza dell'output corretto dei dati in scripts/data/bollette_raw.json).
Se dopo un minuto circa dall'avvio dei container il file di output non risulta su disco significa che il fetch delle bollette non è avvenuto correttamente ed è sufficiente riavviare lo script, anche manualmente tramite
python3 fetch_bollette.py[!] Se non esistono nel database dati relativi alle bollette l'applicativo di Flask darà errore all'apertura fintanto che essi non sono presenti.
Progetto fatto abbastanza randomicamente by subnetMusk ⚡️
Per informazioni legali e condizioni d’uso, fare riferimento al DISCLAIMER.md.
