Come controllare lo stato della batteria al litio e monitorare le celle LiFePO4 tramite BMS da Victron Energy Venus OS
25 giugno 2024
Sono oramai più di 2 anni che abbiamo creato la nostra batteria al litio LiFePO4 a 24V, composta da 8 celle a 280 Ah, per un totale appena superiore ai 7 kWh (link per chi vuole saperne di più).
L'abbiamo equipaggiata con un BMS della JK con bluetooth integrato.
Ogni tanto ci connettiamo con l'app della JK per controllare le celle e dobbiamo dire che anche dopo una discreta quantità di cicli, tutte rimangono belle bilanciate.
Grazie alla libreria dbus-serialbattery (link), è possibile farlo direttamente da Victron Energy Venus OS: dal Cerbo GX o, come nel nostro caso, dal Raspberry Pi.
Avendo auto-costruito la nostra batteria potevamo usare anche il cavetto con interfaccia seriale, da collegare al Venus OS e da cui leggere i dati desiderati.
Chi invece ha acquistato una batteria commerciale sigillata non può certo tagliare e smontare tutto :-)
Quindi come fare per monitorare le celle che compongono una batteria LiFePO4 da Victron Venus OS?
Grazie agli sviluppatori è possibile monitorare le celle LiFePO4 anche tramite bluetooth, basta che la batteria sia dotata di BMS JK, o BMS JBD (con bluetooth).
La connessione tramite bluetooth non è stabile quanto il collegamento via cavo, ma in questi ultimi mesi la stabilità è migliorata, quindi ci siamo decisi ad installare e configurare la libreria.
Connettiamoci al Raspberry Pi o al CerboGX tramite console
Abilitiamo l'accesso come Superutente:
Impostazioni > Generali > Livello di accesso > Utente e installatore (la password è ZZZ)
Una volta tornati nel menu Generale, con la riga Livello di accesso sottolineata di azzurro, tenere premuta la freccia a destra della tastiera.
Apparirà il livello di accesso: Superutente
Impostare una password di root:
Impostazioni > Generali > Livello di accesso > Set root password > impostare quello che si vuole
Abilitare SSH:
Impostazioni > Generali > Livello di accesso > SSH su LAN > Abilitare
Colleghiamoci al Raspberry Pi tramite SSH da un altro pc.
ssh root@INDIRIZZO_IP
Se utilizzi Windows puoi collegarti tramite Putty.
Come Installare la libreria dbus-serialbattery su Victron Venus OS
Dopo esserci connessi tramite SSH al sistema Victron scarichiamo la libreria:
wget -O /tmp/install.sh https://raw.githubusercontent.com/Louisvdw/dbus-serialbattery/master/etc/dbus-serialbattery/install.sh
Procediamo poi con l'installazione (digitare 1 o 2 quando verrà chiesto che versione installare):
bash /tmp/install.sh
Riavviare il sistema:
reboot
Trovare il MAC address del BMS
Connettiamoci di nuovo al Venus OS tramite SSH.
Avviamo il tool bluetoothctl:
bluetoothctl [...] Agent registered [CHG] Controller xx:xx:xx:xx:xx:xx Pairable: yes [...]
Scannerizziamo per trovare il MAC address del BMS:
scan on [...] Discovery started [CHG] Controller xx:xx:xx:xx:xx:xx Discovering: yes [CHG] Device xx:xx:xx:xx:xx:xx RSSI: -60 [...]
Otteniamo il MAC address desiderato (i dati sono solo di esempio):
devices [...] Device xx:xx:xx:xx:xx:xx JK-B2A24S15P [...]
Stoppiamo la scansione e stampiamo i dati desiderati:
scan off [...] Discovery stopped [CHG] Device xx:xx:xx:xx:xx:xx RSSI is nil [CHG] Controller xx:xx:xx:xx:xx:xx Discovering: no [...]
Usciamo dal tool:
quit
Impostiamo la connessione al BMS tramite bluetooth, da Victron Venus OS
Nel manuale della libreria viene consigliato di disabilitare l'accesso bluetooth del sistema tramite Remote Console o Gui, per prevenire riconnessioni ogni minuto:
Impostazioni > Bluetooth > Disabilitare
Se non si è già connessi, riconnettersi a Venus OS tramite SSH.
La configurazione di default è salvata in questa posizione:
/data/etc/dbus-serialbattery/config.default.ini
Da qui è possibile copiare le porzioni di codice che ci interessano.
Impostiamo la connessione bluetooth con il BMS:
nano /data/etc/dbus-serialbattery/config.ini [...] ; --------- Bluetooth BMS --------- ; Description: ; Specify the Bluetooth BMS and it's MAC address that you want to install. Leave emty to disable ; Available Bluetooth BMS: ; Jkbms_Ble, LltJbd_Ble ; Example for one BMS: ; BLUETOOTH_BMS = Jkbms_Ble C8:47:8C:00:00:00 ; Example for multiple BMS: ; BLUETOOTH_BMS = Jkbms_Ble C8:47:8C:00:00:00, Jkbms_Ble C8:47:8C:00:00:11, Jkbms_Ble C8:47:8C:00:00:22 BLUETOOTH_BMS = Jkbms_Ble xx:xx:xx:xx:xx:xx [...]
Al posto di xx:xx:xx:xx:xx:xx utilizziamo il MAC address che abbiamo trovato sopra.
In caso il vostro BMS sia JBD, la stringa sarà:
BLUETOOTH_BMS = LltJbd_Ble xx:xx:xx:xx:xx:xx
In caso si vogliano leggere i dati di 2 batterie, con BMS JK, la stringa sarà:
BLUETOOTH_BMS = Jkbms_Ble xx:xx:xx:xx:xx:xx, Jkbms_Ble yy:yy:yy:yy:yy:yy
Mentre in caso si vogliano leggere i dati di 2 batterie, con BMS JBD, la stringa sarà:
BLUETOOTH_BMS = LltJbd_Ble xx:xx:xx:xx:xx:xx, LltJbd_Ble yy:yy:yy:yy:yy:yy
Salviamo e chiudiamo il file:
CRTL + X
Attiviamo i parametri appena impostati:
/data/etc/dbus-serialbattery/reinstall-local.sh
Riavviamo il sistema:
reboot
Una volta avviato il sistema, dopo qualche secondo, la lettura dei dati apparirà nell'elenco dispositivi di Victron Venus OS.
Ogni tanto sono necessari alcuni minuti, quindi attendere con pazienza.
Risoluzione dei problemi
Se non si è già connessi, riconnettersi a Venus OS tramite SSH.
In caso di problemi è possibile analizzare il file di log, con questo comando:
tail -F -n 100 /data/log/dbus-blebattery.*/current | tai64nlocal
Per uscire dall'analisi del log:
CRTL + C
Utilizzare uno SmartShunt oppure il BMS come monitor batteria in Victron Venus OS?
Una volta installata la libreria dbus-serialbattery è possibile utilizzare il BMS come monitor batteria di default sul Venus OS, oppure utilizzare il Victron SmartShunt (link) o per esempio un Victron BMV-712 Smart (link).
Personalmente non mi fido dei conteggi del BMS, specialmente quello dello stato di carica.
Spesso i BMS non hanno uno Shunt integrato, oppure ne hanno uno con livelli di lettura molto approssimativi.
Non riuscendo a rilevare le micro correnti, spesso infatti la percentuale di SOC rilevata dai BMS è errata.
Consiglio quindi di impostare Victron SmartShunt o Victron BMV come monitor della batteria ed usare i dati letti dal BMS come controllo visuale.
Come impostare SmartShunt o BMV come monitor batteria su Victron Venus OS
Per eseguire la configurazione è possibile utilizzare lo schermo touch.
In alternativa possiamo connetterci al Raspberry Pi o al CerboGX tramite Console Remota:
http://venus.local
Oppure:
http://INDIRIZZO_IP
Oppure tramite Victron VRM:
https://vrm.victronenergy.com
Andando alla voce:
Nome impianto > Consolle remota
Impostiamo il monitor batteria:
Impostazioni > Configurazione sistema > Monitor batteria: SmartShunt...
Impostiamo la visualizzazione nel Portale VRM (opzionale):
Impostazioni > Configurazione sistema > Misurazioni batteria > SmartShunt...: Visibile Impostazioni > Configurazione sistema > Misurazioni batteria > Nome BMS: Nascosto
Come impostare il BMS come monitor batteria su Victron Venus OS
Per chi invece preferisce impostare il BMS come Monitor batteria, ecco la guida.
Per eseguire la configurazione è possibile utilizzare lo schermo touch.
In alternativa possiamo connetterci al Raspberry Pi o al CerboGX tramite Console Remota:
http://venus.local
Oppure:
http://INDIRIZZO_IP
Oppure tramite Victron VRM:
https://vrm.victronenergy.com
Andando alla voce:
Nome impianto > Consolle remota
Impostiamo il monitor batteria:
Impostazioni > Configurazione sistema > Monitor batteria: Dispositivo xx:xx:xx:xx:xx:xx
Impostiamo la visualizzazione nel Portale VRM (opzionale):
Impostazioni > Configurazione sistema > Misurazioni batteria > SmartShunt...: Nascosto Impostazioni > Configurazione sistema > Misurazioni batteria > Nome BMS: Visibile
Se si imposta il BMS come monitor batteria, conviene impostare i limiti massimi di carica e scarica.
nano /data/etc/dbus-serialbattery/config.ini [...] MAX_BATTERY_CHARGE_CURRENT = 50.0 MAX_BATTERY_DISCHARGE_CURRENT = 60.0 [...]
Salviamo e chiudiamo il file:
CRTL + X
Attiviamo i parametri appena impostati:
/data/etc/dbus-serialbattery/reinstall-local.sh
Riavviamo il sistema:
reboot
Una volta impostati i limiti è possibile abilitare DVCC:
Impostazioni > DVCC > DVCC: On
Impostare poi il BMS, che dovrebbe in realtà già esser stato rilevato automaticamente:
Impostazioni > DVCC > Controllo BMS: Nome BMS o Selezione automatica
In questo modo verranno utilizzati i dati rilevati dal BMS, sia per la carica che per la scarica della batteria.
Per maggiori informazioni ecco di nuovo il link alla libreria dbus-serialbattery:
https://louisvdw.github.io/dbus-serialbattery/
Al prossimo tutorial ;-)
Potrebbero interessarti
-
Quest'oggi vi vogliamo spiegare come realizzare una centralina di gestione per camper, van o baita, tramite Raspberry Pi 4, con installato Victron Venus OS e con monitoraggio totale delle celle di una batteria LiFePO4 tramite bluetooth. segue »
-
In questo tutorial vi mostriamo come è possibile realizzare un piccolo impianto fotovoltaico a 12V, con una batteria al litio LiFePO4, senza inverter, con un budget di spesa minimo, adatto a camper, van e per una baita o casetta off-grid. segue »
-
In questa guida vi spieghiamo come realizzare un impianto fotovoltaico ad isola completo, a 12V, con 2 batterie al litio LiFePO4 Redodo e un inverter da 3000W Vevor, con un budget di spesa medio, adatto a camper, van e per una baita o casetta off-grid. segue »
-
Starlink è la connessione ad internet perfetta per chi viaggia in van? Mostriamo come modificare l'antenna in fai-da-te, montarla piatta sul camper ed alimentarla con la batteria servizi, senza inverter. segue »
-
In questo tutorial spieghiamo come costruire una micro camera wifi con un Raspberry PI Zero W o Zero 2 W ed il software Motion Eye. segue »
-
Riscaldamento elettrico per il van: come scaldare il camper senza webasto e cinebasto
Ecco come scaldiamo il nostro VW T4 "Vaniglia" gas-free anche d'inverno: con 4+1 tipologie differenti di riscaldamento elettrico. segue »