IDA Lab Università del Salento
Progetto · Corso di Internet of Things

Smart Home Energy
Demand Prediction

Un'applicazione IoT per la previsione del consumo energetico domestico tramite Machine Learning.

Autori
Mara Montinari, Giuseppe Ruberto
Corso
Internet of Things
Docente
Prof. Luigi Patrono
Tutor
Giuseppe Del Fiore
Anno Accademico
2018/2019

Introduzione

Contesto

Crescente bisogno di ottimizzazione energetica nelle abitazioni.

Problema

Come prevedere il consumo energetico giornaliero di una casa?

Obiettivo

Sviluppare un sistema basato su Machine Learning per stimare la domanda energetica e supportare decisioni consapevoli.

Analisi dei requisiti

Requisiti funzionali

  • Previsione del consumo giornaliero
  • Acquisizione dati in tempo reale e storici
  • Pulizia e trasformazione dei dati
  • Valutazione delle prestazioni dei modelli di M.L.
  • Predizione del consumo energetico tramite un modello di M.L.
  • Visualizzazione interattiva dei risultati

Requisiti non funzionali

  • Accuratezza del modello (R² > 0.8)
  • Tempi di risposta rapidi per le previsioni
  • Interfaccia utente semplice e intuitiva

Tecnologie

FrameworkStreamlit, per la creazione dell'interfaccia utente.
LinguaggioPython
pandasManipolazione e analisi dei dati.
numpyCalcolo numerico e gestione di array.
XGBoostAlgoritmo di machine learning specifico utilizzato per le previsioni.
joblibSalvataggio e caricamento del modello pre-addestrato.
scikit-learnPre-elaborazione dei dati e selezione dei modelli.
Dati istantanei dalla casa (Home Assistant)
sensor.termostat_temperature26.6 °C
sensor.termostat_humidity63.1 %
sensor.quadro_primo_piano_channel_1_power89.41 W
Scarica dati storici da API
ParametroConsumo abitazione (W)
Data inizio → fine2025/09/23
Scarica dati

Proposta

Home Assistant API
Tomorrow.io API
Historical Dataset
Data AcquisitionModulo
Pre-processingModulo
Prediction · XGBoostModulo
Visualization · StreamlitModulo

Acquisizione dati

  • Dati storici (dataset fornito)
  • Dati in tempo reale (API Home Assistant)
  • Dati meteorologici (API Tomorrow.io)

Pre-elaborazione

  • Pulizia e integrazione dei dati utilizzando datasets esterni
  • Feature engineering

Predizione

  • Addestramento dei modelli di M.L. (Random Forest, XGBoost, CatBoost)

Visualizzazione

  • Interfaccia utente realizzata con Streamlit
  • Metriche dei 3 modelli e scelta del migliore
  • Valutazione delle previsioni

Integrazione dataset esterni

Integrazione di dataset esterni: Smart Home Energy Consumption Optimization, Energy Weather Raw Data, Energy-consumption-prediction, Smart Home Energy Consumption, Dataset Smart Home (2013–2017).

Fonte dati
FonteAbitazioniLocalizzazionePeriodoRecord dopo cleaning
Dataset fornito (Lecce)1Lecce2023–2024~8.000
Smart Home Energy Consumption Optimization10Vari stati europei2020~40.000
Energy Weather Raw Data1MessicoNov 2022 – Feb 2024~20.000
Energy-consumption-prediction10Vari stati europei2019~15.000
Smart Home Energy Consumption39USA2018~100.000
UMass Smart* (A–H)8USA2013–2017~200.000
Colonne del dataset unificato
ColonnaDescrizione
DatetimeTimestamp (ora)
EnergyConsumptionConsumo (W)
TemperatureTemperatura (°C)
HumidityUmidità (%)
HourOra del giorno in cui è stato rilevato il consumo
Day_of_weekGiorno della settimana (0 = Lunedì … 6 = Domenica)
MonthMese in cui è stato rilevato il consumo
Day_of_yearGiorno dell'anno (1–365)
Week_of_yearSettimana dell'anno (1–52)
Is_weekendCampo binario: weekend (giorni 4, 5, 6) = 1, altrimenti 0

Data pre-processing

Dettagli

Data fusion

Combinazione dei dati da diverse fonti.

Modellazione

Addestramento e validazione di tre modelli:

  • Random Forest
  • XGBoost
  • CatBoost

Salvataggio del modello

Il modello addestrato e testato migliore viene salvato utilizzando joblib per essere riutilizzato.

Validazione e metriche

Addestramento sul singolo file fornito
ModelloMSE (kW)RMSE (kW)MAPE
Random Forest0.475027.725.263.77
XGBoost0.455128.775.363.87
CatBoost0.447229.185.403.90
Addestramento su file_ripulito.csv
ModelloMSE (kW)RMSE (kW)MAPE
Random Forest0.82263.811.970.19
XGBoost0.83023.711.930.19
CatBoost0.82773.761.940.22

Risultati attesi: R² superiore a 0.8, in linea con i requisiti non funzionali.

Confronto consumo reale vs predetto (giornaliero) — modello addestrato sul solo file fornito

Confronto consumo reale vs predetto — modello addestrato con file_ripulito.csv

Interfaccia grafica e dashboard

Interfaccia grafica realizzata con Streamlit, articolata in tre viste principali.

Predizione consumo energetico manuale
Temperatura media (°C)22.00
Temperatura min / max18.00 / 26.00
Umidità media (%)50.00
Data previsione2025/09/23
Predici consumo giornaliero
Consumo energetico previsto per il 2025-09-23: 6.87 kWh
Predizione da meteo città (giornaliera)
CittàLecce
Data inizio → fine2025/09/23 → 25
Predici consumo energetico giornaliero
2025-09-238.9278 kWh
2025-09-246.8961 kWh
2025-09-257.3284 kWh
Previsione consumo giornaliero

Reale vs predetto sugli ultimi giorni selezionati.

2025-09-204.82 → 4.09
2025-09-214.54 → 3.92
2025-09-223.96 → 3.90
2025-09-230.66 → 3.30
2025-09-24— → 7.78

Conclusioni e sviluppi futuri

Conclusioni

  • Il progetto ha dimostrato l'efficacia del Machine Learning e dell'IoT per la gestione energetica domestica.
  • L'integrazione di dati in tempo reale migliora la precisione delle previsioni.

Sviluppi futuri

  • Sviluppo di un sistema di notifiche per avvisi in tempo reale.
  • Integrazione con altri tipi di sensori (es. vento, luminosità, numero di occupanti…).
  • Ottimizzazione del modello per prestazioni ancora migliori.