In molte reti basate su pfSense, è comune utilizzare:
pfSense come router/firewall e server DHCP
Unbound come DNS Resolver con registrazione dinamica
Pi‑hole come DNS primario per filtraggio e caching
Questa combinazione è potente, ma può generare problemi difficili da diagnosticare quando entrano in gioco:
hostname duplicati
lease DHCP scaduti ma non rimossi
record DNS dinamici generati da lease “abandoned”
cache DNS persistente di Pi‑hole
In questo articolo analizziamo un caso reale in cui un dispositivo IoT ha causato un conflitto DNS che ha portato a risoluzioni errate e incoerenti tra DHCP, DNS Resolver e Pi‑hole.
—
Sintomo del problema
Il comportamento osservato era il seguente:
DHCP mostrava Mini4 → 192.168.8.101
DNS Lookup mostrava Mini4 → 192.168.8.100
Pi‑hole rispondeva sempre con 100
pfSense rispondeva con 100 anche dopo reboot
Una situazione apparentemente impossibile: il lease attivo era corretto, ma il DNS continuava a servire un IP vecchio.
—
La causa reale: un lease DHCP “abbandonato” con hostname duplicato
Nel file reale dei lease di pfSense:
/var/dhcpd/var/db/dhcpd.leases
era presente questo blocco:
lease 192.168.8.100 {
binding state abandoned;
client-hostname “Mini4”;
}
Questo lease:
era scaduto
era “abandoned”
non compariva nella GUI
ma era ancora presente nel file
e conteneva l’hostname “Mini4”
Perché è un problema?
Perché Unbound genera i record DNS dinamici leggendo tutti i lease, anche quelli:
expired
abandoned
free
rewind
Di conseguenza, Unbound continuava a generare:
A record: mini4.local.lan → 192.168.8.100
PTR record: 100 → mini4.local.lan
anche se il lease attivo era 101.
—
La causa originale: un dispositivo IoT che si è spacciato per “Mini4”
Il dispositivo incriminato era un Aubess (wlan0), che:
non rispetta DHCP Option 12
non invia un hostname coerente
si presenta con nomi casuali
in questo caso si è presentato come “Mini4”
pfSense ha quindi creato un lease per:
192.168.8.100 → Mini4
Quando il Mac mini ha richiesto un IP, ha ottenuto:
192.168.8.101 → Mini4
Risultato: hostname duplicato.
—
Il secondo problema: la cache DNS di Pi‑hole
Pi‑hole aveva memorizzato:
mini4.local.lan → 192.168.8.100
Quindi:
anche dopo aver corretto pfSense
anche dopo aver cancellato il lease fantasma
anche dopo il reboot di pfSense
Pi‑hole continuava a rispondere con l’IP sbagliato.
Solo dopo:
pihole restartdns
la cache è stata svuotata e il DNS si è riallineato.
—
Perché il reboot di pfSense non ha risolto?
Perché pfSense non elimina i lease scaduti dal file.
Il file rimane identico.
E Unbound, al boot, ricostruisce i record DNS dinamici anche dai lease “abandoned”.
Quindi il record sbagliato veniva ricreato ogni volta.
1. Introduzione a Proxmox VE: Il Sistema Operativo Hyperconvergente
Cos’è: Proxmox Virtual Environment (VE) non è un semplice hypervisor, ma un sistema operativo completo basato su Debian Linux, progettato specificamente per la virtualizzazione enterprise.
Filosofia: Fornisce una piattaforma unificata, open-source e integrata per gestire macchine virtuali (VM) e container dallo stesso pannello di controllo web.
Modello di Distribuzione: Si installa direttamente sull’hardware server (bare-metal), posizionandosi tecnicamente nella categoria degli hypervisor Type 1.
Componenti Core: La sua potenza deriva dall’integrazione di due tecnologie:
KVM (Kernel-based Virtual Machine): Per la virtualizzazione completa delle macchine virtuali.
LXC (Linux Containers): Per la virtualizzazione leggera dei container.
Web Interface: Tutta la gestione avviene attraverso un’interfaccia web moderna (https://server-ip:8006), eliminando la necessità di software client dedicati su PC degli amministratori.
2. Architettura Tecnica e Componenti di Base
Base Solida: Poggia su un kernel Linux Debian stabilizzato e a lungo supporto, garantendo compatibilità hardware estrema e stabilità.
KVM (Kernel-based Virtual Machine):
Trasforma il kernel Linux in un hypervisor a tutti gli effetti (Type 1).
Utilizza le estensioni di virtualizzazione hardware della CPU (Intel VT-x o AMD-V) per ottenere performance native.
Gestisce direttamente l’accesso alla CPU e alla memoria delle VM.
Per l’I/O, può utilizzare:
Emulazione completa (e1000 per NIC, ide per dischi – lenta ma compatibile).
Paravirtualizzazione (virtio-net per NIC, virtio-blk per dischi – alta performance, richiede driver nel guest).
PCI Passthrough (VT-d/AMD-Vi) per assegnare hardware fisico direttamente a una VM.
LXC (Linux Containers):
Tecnologia di virtualizzazione a livello di sistema operativo.
I container condividono il kernel host, risultando in overhead quasi nullo, avvio istantaneo e densità molto elevata.
Ideale per servizi isolati che non richiedono un kernel personalizzato o driver specifici (es.: web server, database, reverse proxy, applicazioni in container).
Storage Management:
Supporta nativamente una vasta gamma di backend di storage:
ZFS Integration: Il supporto integrato per ZFS è un punto di forza, offrendo feature enterprise come copy-on-write, snapshot atomiche, compressione, deduplicazione e riparazione dei dati automatica (self-healing).
Networking:
Basato su Linux bridging e VLANs (802.1q).
Supporta Bonding/LAG (aggregazione di schede di rete) per ridondanza e aumento di banda.
Software-Defined Networking (SDN): Dalla versione 7.0, introduce un SDN nativo per gestire reti overlay (VXLan) e sotto-sistemi di rete più complessi in modo centralizzato.
3. Il Cuore del Cluster: High Availability e Gestione Centralizzata
Modello a Cluster:
Più nodi Proxmox (server fisici) possono essere uniti in un cluster tramite Corosync.
Il cluster appare come una singola entità gestibile dall’interfaccia web.
Tutte le configurazioni (VM, storage, rete) sono replicate in tempo reale tra i nodi.
High Availability (HA) Integrato:
Feature fondamentale per l’enterprise.
Se un nodo del cluster si spegne o ha un malfunzionamento hardware, le VM e i container contrassegnati come “HA” vengono automaticamente riavviati su un altro nodo del cluster in pochi secondi/minuti.
Il sistema monitora lo stato dei nodi e delle VM e prende decisioni senza intervento umano.
Live Migration:
Migrazione a Caldo (Live Migration): Permette di spostare una VM in esecuzione da un nodo all’altro senza downtime percepibile. Essenziale per la manutenzione dell’hardware e il bilanciamento del carico.
Migrazione delle Storage: Permette di spostare i dischi di una VM (anche in esecuzione) da uno storage backend a un altro (es.: da storage locale a Ceph).
4. Vantaggi Chiave di Proxmox VE
Open Source e Costo Zero: La licenza è GNU AGPL, v3. Non ci sono costi di licensing per le funzionalità core. Il modello di subscription esiste solo per l’accesso ai repository enterprise stabili e al supporto tecnico.
Ecosistema Completo: Tutto ciò che serve è integrato: virtualizzazione, storage (ZFS, Ceph), networking, clustering, HA. Niente più “vendor lock-in” o integrazioni complesse tra software diversi.
Alta Performance: L’uso di KVM e LXC garantisce performance pari o molto vicine al bare-metal.
Flessibilità Operativa: La scelta tra VM (per carichi di lavoro che necessitano di un OS completo) e Container (per leggerezza e densità) offre la massima flessibilità di deployment.
Gestione Unificata: L’interfaccia web centrale semplifica enormemente la gestione di intere infrastrutture, riducendo la curva di apprendimento e gli errori di configurazione.
Comunità Attiva e Supporto Enterprise: Una vasta comunità offre supporto gratuito nei forum. Per ambienti critici, è disponibile un supporto professionale a pagamento.
5. Considerazioni e Best Practices
Hardware Consigliato:
CPU: 64-bit (x86-64) con supporto per virtualizzazione hardware (Intel VT-x/AMD-V). Per il PCI Passthrough, serve IOMMU (Intel VT-d/AMD-Vi).
RAM: Più è, meglio è. Calcolare il bisogno per l’OS host + (RAM per VM) + (RAM per Ceph/ZFS se usati).
Storage: SSD NVMe sono fortemente consigliati per disco di sistema e per le VM. Gli HDD sono adatti solo per storage di archivio.
Rete: Schede multiporta Gigabit o, meglio, 10Gbps+ sono essenziali per il traffico di migrazione, Ceph e VM.
Pianificazione dello Storage:
ZFS locale è un’ottima scelta per un singolo nodo o per un cluster con storage non condiviso.
Ceph è la soluzione per creare un storage iper-convergente e ridondante distribuito su più nodi. Richiede almeno 3 nodi per la produzione.
Sicurezza:
Cambiare la password di root e la porta SSH di default.
Configurare firewall basato su pve-firewall o iptables/nftables.
Isolare la rete di management del cluster da quella delle VM.
Tenere aggiornato il sistema applicando gli aggiornamenti dai repository.
6. Conclusione: Perché Scegliere Proxmox VE?
Proxmox VE si è affermato come una soluzione enterprise-grade alternativa totalmente percorribile a costosi stack commerciali come VMware vSphere. La sua natura open-source, l’incredibile set di funzionalità integrate e la straordinaria stabilità lo rendono la scelta ideale per:
PMI che necessitano di un’infrastruttura virtuale robusta senza costi di licensing proibitivi.
Entusiasti e Homelab per imparare tecnologie enterprise a costo zero.
Aziende di qualsiasi dimensione che vogliono evitare il vendor lock-in e costruire un’infrastruttura moderna, flessibile e scalabile basata su standard aperti.
È uno degli esempi più riusciti di come il software open-source possa non solo competere, ma spesso superare, le soluzioni commerciali in termini di features, flessibilità e rapporto qualità/prezzo.
Il DC‑DC Step Down Converter LAOMAO XL7015 è un regolatore di tensione compatto e versatile, progettato per chi necessita di convertire tensioni elevate in un’uscita stabile e regolabile. Venduto in confezione da 3 moduli, rappresenta una soluzione economica per progetti elettronici, automazione, modellismo e applicazioni fai‑da‑te.
In questa recensione analizziamo caratteristiche, prestazioni, limiti e possibili utilizzi.
Caratteristiche principali
Intervallo di ingresso: 5 V – 80 V
Tensione di uscita regolabile: 5 V – 20 V
Caduta minima (dropout): circa 1 V
Corrente di commutazione massima: 0,8 A
Potenza consigliata: < 7 W
Efficienza di conversione: 85%
Protezione integrate:
protezione termica
protezione da cortocircuito
protezione da sovracorrente
Montaggio: a pannello o su piastra
Garanzia: 12 mesi (supporto clienti LAOMAO)
Design e qualità costruttiva
Il modulo utilizza il chip XL7015, un convertitore step‑down noto per la sua capacità di gestire tensioni di ingresso molto elevate rispetto ad altri regolatori switching economici. La costruzione è semplice ma funzionale: morsetti a vite, trimmer per la regolazione della tensione e un layout compatto che facilita l’integrazione in piccoli progetti.
Nonostante il prezzo contenuto, il modulo offre un buon livello di protezione, utile soprattutto in applicazioni non critiche o prototipazione.
Prestazioni e limiti
Efficienza
Con un’efficienza dichiarata dell’85%, il modulo si comporta bene per applicazioni a basso consumo. Tuttavia, non è progettato per erogare correnti elevate: la potenza consigliata è inferiore a 7 W, quindi è ideale per piccoli carichi.
Stabilità della tensione
La regolazione è precisa e stabile, grazie alla buona linearità del chip XL7015. La caduta minima di 1 V permette di ottenere un’uscita stabile anche con differenze ridotte tra ingresso e uscita.
Dissipazione termica
A carichi prossimi al limite, il modulo tende a scaldare. È consigliabile garantire una buona ventilazione o ridurre la potenza per aumentare l’affidabilità nel tempo.
Applicazioni consigliate
alimentazione di microcontrollori (Arduino, ESP32, ESP8266)
piccoli sistemi di automazione
progetti fai‑da‑te con batterie o pannelli solari
riduzione della tensione da sistemi a 24 V o 48 V
alimentazione di sensori e moduli elettronici a basso consumo
Non è invece indicato per carichi ad alta corrente o dispositivi che richiedono alimentazioni molto stabili sotto forte stress.
Pro e Contro
Vantaggi
Ampio range di tensione in ingresso
Prezzo molto competitivo (3 moduli per meno di 10 €)
Protezioni integrate utili
Regolazione semplice e precisa
Ideale per prototipazione e piccoli progetti
Svantaggi
Corrente massima limitata (0,8 A)
Non adatto a carichi superiori a 7 W
Dissipazione termica migliorabile
Qualità costruttiva discreta ma non professionale
Conclusioni
Il DC‑DC Step Down Converter LAOMAO XL7015 è un modulo economico e versatile, perfetto per chi cerca una soluzione semplice per abbassare tensioni elevate in progetti a basso consumo. Pur non essendo un regolatore adatto a impieghi professionali o carichi impegnativi, offre un ottimo rapporto qualità‑prezzo e una buona affidabilità per applicazioni hobbistiche.
I gateway Ecowitt della serie GWI100 / GW1100 rappresentano il cuore di una stazione meteo personale moderna. Questi dispositivi raccolgono i dati provenienti dai sensori wireless Ecowitt e li inviano sia alla rete locale sia ai principali servizi meteorologici online. In questa guida completa scoprirai come configurarli, come collegare i sensori e come sfruttare tutte le funzioni disponibili.
Cos’è il Gateway Ecowitt GW1100 / GWI100
Il GW1100 è un piccolo hub Wi‑Fi che riceve i dati dai sensori Ecowitt (temperatura, umidità, vento, pioggia, UV, luminosità, ecc.) e li rende disponibili:
tramite pagina web interna
tramite app Ecowitt
sul portale ecowitt.net
su servizi meteo esterni come Wunderground, WeatherCloud, WOW
su server personalizzati
È compatto, facile da configurare e compatibile con un’ampia gamma di sensori Ecowitt.
1. Prima Accensione e Accesso al Dispositivo
1.1 Avvio del gateway
Dopo aver alimentato il dispositivo:
attendi l’accensione
premi il pulsante RESET per 5 secondi per entrare in modalità configurazione
1.2 Connessione al Wi‑Fi del gateway
Il dispositivo crea un access point temporaneo:
GWI100X-XXXXXXXX
Collegati con il tuo smartphone.
1.3 Accesso alla pagina web
Apri il browser e digita:
192.168.4.1
Al primo accesso non è richiesta alcuna password.
2. Configurazione del Dispositivo
2.1 Impostazioni principali
Dalla pagina Device Setting puoi configurare:
Nome del dispositivo
Fuso orario
Localizzazione
Unità di misura
Password di accesso (opzionale)
Se abiliti Auto Timezone, ricordati di impostare il fuso orario corretto anche su ecowitt.net.
3. Collegamento alla Rete Wi‑Fi Domestica
3.1 Configurazione rete locale
Nella sezione Local Network:
seleziona la tua rete Wi‑Fi
inserisci la password
premi Apply
verifica che il gateway abbia ottenuto un indirizzo IP
4. Invio dei Dati ai Servizi Meteo
Il gateway può inviare i dati a diversi servizi online.
4.1 Ecowitt.net
È il servizio principale e più completo.
Per configurarlo:
copia il MAC address del gateway
registrati su ecowitt.net
aggiungi il dispositivo
imposta l’intervallo di upload (minimo 1 minuto)
4.2 Wunderground, WeatherCloud, WOW
Per ciascun servizio devi inserire:
Station ID
Station Key
4.3 Server personalizzato
Puoi inviare i dati anche a un tuo server:
protocollo Ecowitt o Wunderground
IP/hostname
path (es. /data/report/)
porta
intervallo di upload
5. Gestione dei Sensori Ecowitt
Il gateway supporta numerosi sensori. Ecco i principali:
verificare la ricezione del segnale prima del montaggio definitivo
evitare ostacoli metallici
montare il sensore del vento in posizione elevata
mantenere il pluviometro perfettamente in bolla
7. Avvertenze Importanti
Non installare durante un temporale
I pali metallici possono attirare fulmini
Valuta la messa a terra se monti su un edificio
Esegui test preliminari a terra
Conclusione
Il gateway Ecowitt GW1100/GWI100 è uno strumento potente e versatile per creare una stazione meteo completa e affidabile. Con pochi passaggi puoi configurarlo, collegarlo alla rete, aggiungere sensori e inviare i dati ai principali servizi meteorologici.
Questa guida ti permette di sfruttare al massimo tutte le funzioni del dispositivo.
👋 Introduzione: Quando la Tecnologia Prevede il Futuro
Hai mai voluto sapere non solo quanta energia produce oggi il tuo impianto solare, ma quanto potrebbe produrre nel momento esatto? Questo è il potere dei “Template” avanzati che utilizziamo nei sistemi di casa intelligente. Questi Template sono veri e propri mini-calcolatori, scritti in un linguaggio chiamato Jinja2, capaci di trasformare semplici letture meteo (come l’intensità del sole o la temperatura) in una previsione molto dettagliata della potenza reale prodotta dal tuo impianto FV.
In questo articolo, smonteremo questa “ricetta digitale” per capire esattamente quali formule vengono usate e perché ogni piccolo numero conta. Prepariamoci a fare un viaggio didattico tra fisica e tecnologia!
🧱 La Struttura: Ingredienti e Obiettivo
Il template ha due compiti principali:
Controllare la Salute: Verificare che tutti i dati di ingresso siano presenti e validi.
Simulare la Produzione: Usando le leggi della fisica, calcolare quanta energia il pannello riceve e quanta ne riesce a trasformare.
Gli Ingredienti Necessari (I Dati Iniziali)
Il sistema parte da due letture chiave dai sensori esterni:
GrawGraw: L’intensità della luce solare che arriva sull’area di misura (Irradiazione Globale).
TrawTraw: La temperatura dell’aria all’esterno.
📐 Analisi Passo-Passo: Le Formule Semplificate (Il Cuore del Template)
Il template non fa un singolo calcolo, ma una catena di trasformazioni. Vediamo i passaggi chiave e le formule che li guidano.
Fase 1: Preparazione della Luce
Prima di tutto, dobbiamo capire quanta luce è davvero utile per il pannello e come questa luce cade su di esso.
Aggiustamento dell’Altezza (GG): Il template prende l’intensità grezza (Graw) e la corregge leggermente con un fattore (sensor_height_factor = 0.98). Cosa significa? È una piccola correzione per tenere conto del fatto che il sensore non è perfettamente allineato o misurato alla stessa altezza dell’impianto reale. G=Graw×0.98
La Distribuzione della Luce (DiffuseDiffuse vs DirectDirect): Il sole non è sempre un fascio dritto e perfetto; a volte la luce viene “sparsa” dall’atmosfera.
Il template calcola una frazione diffusa basandosi su quanto forte sta brillando il cielo (clearness). Questa frazione ci dice quanta luce arriva da tutte le direzioni, non solo dal punto esatto del sole.
Successivamente, usa i dati di orientamento (tilt_deg=30∘) per capire quanto è efficace la superficie del pannello a catturare quella luce diretta e diffusa.
Fase 2: Calcolare l’Energia Reale sul Pannello (GPOAGPOA)
Questo è il passaggio fondamentale! Stiamo chiedendo: “Quanta energia colpisce davvero la superficie orientata del pannello?”
Il template mescola le frazioni di luce diretta, diffusa e riflessa dal terreno (l’albedo) con i fattori geometrici legati all’angolo di inclinazione ($30^\circ$). La formula combina questi elementi per ottenere GPOA:
In parole semplici: Stiamo dando al sistema una mappa precisa di come la luce cade sul pannello, tenendo conto sia dell’orientamento che del tipo di cielo.
Fase 3: La Potenza Iniziale (Dal Calore alla Forza)
Una volta che sappiamo quanta energia colpisce il pannello (GPOA), dobbiamo trasformarla in Watt. Usiamo la potenza nominale massima (PSTC_total, ovvero quanto produce l’impianto in condizioni perfette di laboratorio) e la confrontiamo con l’irradiazione ricevuta:
Potenza Iniziale=(1000.0GPOA)×PSTC_total (Il diviso per 1000 serve perché le nostre misurazioni sono spesso in W/m2W/m2, mentre la potenza nominale è espressa su tutta l’area del modulo).
Fase 4: La Correzione Finale (L’Effetto della Temperatura)
Questo è il tocco di finitura. Anche se tutto va bene, quando i pannelli si scaldano troppo, diventano meno efficienti. Il template simula questo calore e applica una “penalità” basata sul delta termico (ΔT=Temperatura Cella−25∘C).
La formula di correzione finale è questa: Potenza Corretta=Potenza Iniziale×(1+γp⋅ΔT)
Spiegazione Semplice: Se il pannello si scalda molto (ΔT alto), e γp è un numero negativo, la parentesi (1+…) diventa minore di 1, riducendo artificialmente la potenza calcolata. Questo assicura che la nostra previsione sia realistica.
✅ Conclusione: Un Modello Potente ma Semplificato
Il template è estremamente potente perché automatizza un processo che, se lo facessi a mano, richiederebbe ore di calcoli trigonometrici e termici!
Cosa abbiamo imparato? Abbiamo visto che il valore finale in Watt non dipende solo da “quanto c’è sole”, ma da: come cade la luce sul mio pannello (GPOA), e quanto è caldo quel pannello (Correzione Termica).
È un esempio brillante di come i dati, quando vengono incartati con una buona dose di logica scolastica e fisica, possano trasformarsi in strumenti di previsione super diretti per la nostra vita quotidiana.
Codice calcolo potenza presunta pannelli
template:
- sensor:
- name: "FV Potenza Teorica Reale"
unique_id: fv_potenza_teorica_reale
unit_of_measurement: "W"
device_class: power
state_class: measurement
state: >
{% set G_raw = states('sensor.gw1100a_solar_radiation') %}
{% set T_raw = states('sensor.gw1100a_outdoor_temperature') %}
{% if G_raw in ['unknown','unavailable','none'] or T_raw in ['unknown','unavailable','none'] %}
unavailable
{% else %}
{% set modules_count = 4 %}
{% set P_stc_module = 585.0 %}
{% set area_module = 2.582 %}
{% set eta = 0.2266 %}
{% set noct = 45 %}
{% set gamma_p = -0.003 %}
{% set tilt_deg = 30 %}
{% set albedo = 0.20 %}
{% set sensor_height_factor = 0.98 %}
{% set G = (G_raw | float(0)) * sensor_height_factor %}
{% set T_amb = (T_raw | float(20)) %}
{% set _ = states('sensor.time') %}
{% set area_total = area_module * modules_count %}
{% set clearness = G / 1000.0 %}
{% set df_raw = 0.45 + (1 - clearness) * 0.35 %}
{% set diffuse_frac = [df_raw, 0.9] | min %}
{% set diffuse_frac = [diffuse_frac, 0.1] | max %}
{% set direct_frac = 1.0 - diffuse_frac %}
{% set tilt_rad = (tilt_deg * pi / 180.0) %}
{% set direct_factor = [ (cos(tilt_rad)), 0.0 ] | max %}
{% set diffuse_factor = (1.0 + cos(tilt_rad)) / 2.0 %}
{% set ground_reflect_factor = (1.0 - cos(tilt_rad)) / 2.0 %}
{% set G_poa = G * ( direct_frac * direct_factor + diffuse_frac * diffuse_factor + albedo * ground_reflect_factor ) %}
{% set P_stc_total = P_stc_module * modules_count %}
{% set P_from_irradiance = (G_poa / 1000.0) * P_stc_total %}
{% set T_cell = T_amb + (G_poa / 800.0) * (noct - 20.0) %}
{% set deltaT = T_cell - 25.0 %}
{% set P_temp_corr = P_from_irradiance * (1.0 + gamma_p * deltaT) %}
{{ [ (P_temp_corr) | round(0), 0 ] | max }}
{% endif %}
In questo articolo ti porto dentro, passo passo, quello che abbiamo fatto insieme: stimare lo stato di carica (SOC) di una batteria LiFePO₄ da 51,2 V usando solo:
un ESP32
un Victron SmartSolar (via BLE)
ESPHome
e… un po’ di logica nel codice YAML 😄
Niente BMS con BLE, niente dati “magici” dalla batteria: 👉 il SOC lo ricaviamo noi, a partire dalla tensione.
1. Cos’è il SOC e perché non lo leggiamo dalla batteria
Lo stato di carica (SOC) è, in pratica, “quanta energia c’è ancora dentro la batteria”, espresso in percentuale:
100% → batteria piena
0% → batteria scarica
Nel nostro caso:
la batteria è una LiFePO₄ DCHOUSE 51,2 V
non abbiamo un collegamento diretto al suo BMS
quindi non possiamo leggere il SOC via BLE o CAN
Però abbiamo due cose fondamentali:
La tensione della batteria (letta dal Victron via BLE)
Lo stato del regolatore MPPT (Bulk, Absorption, Float, ecc.)
Da qui nasce l’idea:
“Se conosco la tensione e so in che stato è il caricatore, posso stimare il SOC.”
2. L’idea di base: SOC da tensione
Le batterie LiFePO₄ hanno una curva tensione ↔ SOC abbastanza nota. In pratica, a batteria a riposo:
sopra una certa tensione → sei vicino al 100%
sotto una certa tensione → sei vicino allo 0%
in mezzo → c’è una curva abbastanza piatta ma comunque mappabile
Quello che abbiamo fatto è:
definire una serie di punti di riferimento:textv_points = {54.4, 53.6, 53.1, 52.8, 52.3, 52.0, 51.5, 51.2, 48.0, 40.0} soc_points = {100, 90, 80, 70, 60, 45, 30, 20, 10, 0}
prendere la tensione letta dal Victron
trovare in quale “tratto” della curva ci troviamo
interpolare tra i due punti più vicini per ottenere un SOC “continuo”
3. Il cuore del sistema: il sensore template in ESPHome
Tutto il calcolo del SOC avviene in un sensore template di ESPHome.
Realizzare un monitor solare professionale, elegante e completamente personalizzato non è mai stato così semplice. In questo articolo ti mostro come ho costruito un sistema completo basato su ESP32, display OLED e protocollo VE.Direct, capace di leggere in tempo reale tutti i dati del regolatore Victron e mostrarli sia su schermo che su una dashboard web moderna e responsive.
Un progetto che unisce elettronica, programmazione e design… e che porta il tuo impianto solare a un livello superiore.
💙 Firmato: TechConnectHub
🔥 Perché questo progetto è speciale
Questo monitor non è un semplice lettore di dati: è un vero e proprio cruscotto intelligente per il tuo impianto fotovoltaico.
Ecco cosa fa:
Legge in tempo reale i dati VE.Direct del regolatore Victron
Mostra i valori principali su un display OLED 128×64
Offre una dashboard web moderna, scura, elegante e aggiornata ogni secondo
Funziona con hostname dedicato: `http://victron-monitor.localMostra:
Potenza pannelli (W)
Tensione pannelli (V)
Tensione batteria (V)
Corrente (A)
Produzione totale (Wh)
Produzione giornaliera (Wh)
Stato MPPT (Bulk, Absorption, Float…)
Numero di serie del regolatore
Versione firmware
Include una pagina OLED dedicata con il logo TechConnectHub
Sincronizzazione perfetta senza perdere pacchetti VE.Direct
Un progetto pensato per essere affidabile, bello da vedere e semplice da installare.
Integrare un regolatore Victron SmartSolar con un ESP32 permette di ottenere un monitoraggio locale, immediato e completamente personalizzabile dei parametri principali del proprio impianto fotovoltaico. Questo documento descrive un sistema compatto che legge via BLE i dati del Victron, li elabora con ESPHome e li visualizza su un display OLED SSD1306.
Perché usare un ESP32 con ESPHome
L’ESP32 è un microcontrollore economico, potente e dotato di Bluetooth Low Energy. ESPHome semplifica la configurazione e consente di:
Leggere i dati via BLE dal regolatore Victron.
Inviarli a Home Assistant.
Visualizzarli su un display locale.
Creare logiche personalizzate.
Aggiornare il firmware OTA.
Il display SSD1306
Il display OLED SSD1306 (128×64 pixel) è ideale per visualizzare informazioni essenziali:
Consumo ridotto.
Ottima leggibilità.
Collegamento semplice tramite I2C.
Supporto nativo in ESPHome.
Nel progetto vengono visualizzati ciclicamente:
PV Power (W)
Battery Voltage (V)
Battery Current (A)
Stato MPPT
Collegamenti hardware
SSD1306 → ESP32
SDA → GPIO 21
SCL → GPIO 22
VCC → 3.3V o 5V (in base al modulo)
GND → GND