Manuale Software BMS – Parte 1

1. Panoramica del prodotto

Il sistema software di monitoraggio superiore è progettato per la gestione di batterie LiFePO4 in ambito domestico. Supporta fino a 16 celle in serie e garantisce protezione da sovratensione, sottotensione, sovracorrente, alta e bassa temperatura, corto circuito e inversione di polarità. Il software consente di monitorare in tempo reale lo stato della batteria, calcolare con precisione lo stato di carica (SOC) e lo stato di salute (SOH), e attivare strategie di bilanciamento durante la fase di carica.

Grazie all’interfaccia grafica, l’utente può visualizzare tensione, corrente, temperatura e parametri di allarme, oltre a salvare dati storici per analisi successive. Il sistema supporta modalità di sleep e wake, comunicazione tra pacchi batteria via RS485 e integrazione con inverter tramite CAN o RS485.

2. Funzioni principali

Il software offre un set completo di funzioni per garantire affidabilità e sicurezza:

  • Rilevamento tensione: ogni cella e l’intero pacco vengono monitorati con precisione ±5 mV. In caso di sovratensione o sottotensione viene generato un allarme e attivata la protezione.
  • Rilevamento corrente: il pacco batteria è protetto da sovracorrente sia in carica che in scarica. In caso di corto circuito l’uscita viene immediatamente interrotta.
  • Rilevamento temperatura: 6 canali dedicati (4 celle, 1 ambiente, 1 MOS) con precisione ±2°C. Sono previsti allarmi e protezioni per alte e basse temperature.
  • Calcolo SOC/SOH: basato su integrazione Ah e modelli avanzati. Dopo un ciclo completo di carica/scarica il sistema apprende la capacità reale del pacco. La stima della capacità ha un’accuratezza migliore del 5%.
  • Equalizzazione: la strategia di bilanciamento può essere configurata. L’equalizzazione si attiva a 3,45 V per cella con una differenza di 30 mV. La corrente di equalizzazione è di 60 mA.
  • Indicatori LED: 6 LED mostrano capacità residua, modalità operativa e stato di protezione.
  • Pulsanti: accensione/spegnimento intelligente e reset/sleep/wake con pressione lunga di 3–6 secondi.
  • Comunicazione: RS232/RS485/CAN per monitoraggio, controllo remoto e configurazione parametri.
  • Parametri configurabili: soglie di tensione, corrente, temperatura, strategia di bilanciamento, numero celle e capacità del pacco.
  • Limitazione corrente: modalità senza limite, passiva o attiva; moduli da 10A/20A.
  • Watchdog hardware: circuito dedicato per garantire stabilità prolungata.
  • Storage dati: EEPROM fino a 1000 record; FLASH opzionale fino a 20.000 record.
  • Aggiornamento firmware: via RS485.
  • Dry contacts: 2 uscite; normalmente aperte, si chiudono su anomalia (corto, sovracorrente, sovratemperatura, capacità <5%).
  • Funzione riscaldamento: protezione a due livelli.
  • Protezione inversione polarità: allarme e cut‑off senza danno al BMS.
  • Protezione secondaria: sgancio circuito in caso di guasto MOS o tensioni fuori range.

3. Caratteristiche elettriche

ParametroMinTipicoMaxUnità
Tensione operativa364860V
Tensione di carica425460V
Corrente continua di carica200210A
Corrente continua di scarica200210A
Resistenza interna uscita scarica≤10
Consumo operativo≤40mA
Consumo in sleep≤180μA
Consumo in shutdown≤80μA

Manuale Software BMS – Parte 2

4. Indicatori LED

I LED forniscono informazioni sulla capacità residua, sullo stato operativo e sugli allarmi di protezione.

  • Capacità: da 0% a 100% indicata progressivamente dai LED 1–6.
  • Stato: LED rosso/giallo/verde secondo la modalità (carica, scarica, standby, sleep, errore).
  • Lampeggio: usato per segnalazioni specifiche di allarme o protezione.

5. Modalità operative

  • Carica: MOS di carica attivo, LED rosso acceso.
  • Scarica: MOS di scarica attivo, LED rosso acceso.
  • Standby: sistema acceso ma inattivo, LED verde.
  • Sleep: consumo ridotto, riattivabile con pressione lunga del pulsante.
  • Spegnimento: sistema completamente disattivato.

6. Buzzer e pulsanti

  • Buzzer: segnala eventi di allarme o cambi di stato.
  • Pulsante reset: pressione lunga 3–6 s per entrare in sleep o riattivare.
  • Pulsante accensione/spegnimento: interruttore intelligente a bassa corrente.

7. Comunicazione e interfacce

  • RS232/RS485/CAN: per monitoraggio, controllo remoto e configurazione parametri.
  • Compatibilità inverter: Pylontech, Goodwe, Growatt, Ginlong, Luxpower, Victron, Sofar, Kstar, SRNE, Voltronic, Deye.
  • DIP switch: per impostare indirizzi di comunicazione in parallelo.
  • Interfacce parallele: RS485 per comunicazione tra pacchi batteria.

8. Sequenza di accensione/spegnimento

Il manuale definisce una sequenza precisa di accensione e spegnimento per garantire sicurezza e stabilità.
Seguire sempre l’ordine indicato per evitare anomalie.</

Manuale Software BMS – Parte 3

9. Dimensioni e PCBA

Il manuale fornisce le specifiche fisiche e tecniche della scheda BMS:

VoceValore
PCB Main Board350 × 110 × 2.0 mm
PCB Interface Board158 × 45 × 1.6 mm
MaterialeFR‑4, serigrafia bianca, solder mask verde, stagno lead‑free
Tolleranze±0.2 mm (lunghezza/larghezza), ±0.2 mm (spessore), ±2 mm (altezza)
Spessore rameMotherboard 2 OZ; Interface board 1 OZ

10. Sistema superiore

Il software superiore (PC) comunica con il BMS tramite RS232 e RS485. Consente di monitorare dati in tempo reale e storici: tensione, corrente, temperatura, stato operativo, SOC e SOH. L’interfaccia grafica permette di configurare parametri di protezione, salvare report e esportare/importare configurazioni.

Funzioni principali del sistema superiore:

  • Visualizzazione grafica dei parametri di ogni cella e del pacco.
  • Gestione allarmi e notifiche in tempo reale.
  • Archiviazione dati storici per analisi e manutenzione.
  • Configurazione remota di soglie e strategie di bilanciamento.
  • Aggiornamento firmware del BMS tramite interfaccia seriale.

11. Precauzioni di assemblaggio e uso

Per garantire sicurezza e affidabilità, è necessario rispettare le seguenti precauzioni:

  • Sequenza di accensione/spegnimento: seguire sempre l’ordine indicato nel manuale per evitare guasti.
  • Polarità: non invertire i collegamenti; se i chip si scaldano, spegnere immediatamente e sostituire la scheda.
  • Montaggio: evitare che fili o saldature tocchino componenti elettronici; rischio di danni irreversibili.
  • Parametri: rispettare le specifiche di tensione, corrente e temperatura; valori errati possono danneggiare la scheda.
  • Ambiente: proteggere da umidità, acqua e scariche elettrostatiche.
  • Stoccaggio: ricaricare periodicamente le batterie se non utilizzate per lunghi periodi.

12. Diagrammi di cablaggio

Il manuale include schemi di collegamento per:

  • RS485: per comunicazione tra pacchi batteria in parallelo.
  • CAN: per comunicazione ad alta velocità con inverter.
  • Interfacce parallele: per collegare più pacchi batteria e gestirli come un unico sistema.

Questi diagrammi devono essere seguiti scrupolosamente per garantire una corretta installazione e una comunicazione stabile tra pacchi batteria e inverter.

Specifiche Prodotto Modello: TP‑BMS48200‑LT‑55

Prodotto: Sistema di gestione batteria domestica a 16 serie

Versione: V1.0

Produttore: Shenzhen Basen Technology Co., Ltd (BASENGREEN)

Configurazione di base

  • Tipo di cella: LiFePO4 (fosfato di ferro litio)
  • Capacità nominale: 200 Ah
  • Numero celle in serie: 16 (impostabile anche 15)
  • Corrente nominale di carica/scarica: 200 A
  • Tensione massima di carica: 58 V
  • Equalizzazione: passiva, corrente 60 mA
  • Rilevamento temperatura: 4 canali celle (±2 °C), 1 MOS, 1 ambiente
  • Interfacce: RS485, RS232, CAN

Funzioni principali

  • Protezioni: sovratensione, sottotensione, sovracorrente, alta/bassa temperatura, corto circuito, inversione polarità
  • Equalizzazione configurabile per migliorare durata e cicli
  • Calcolo SOC/SOH con accuratezza ±5%
  • Parametri configurabili via software superiore
  • Limitazione corrente: nessun limite, passiva o attiva
  • Watchdog hardware per affidabilità
  • Storage dati: EEPROM (1000 record), FLASH opzionale (20.000)
  • Aggiornamento firmware via RS485
  • Dry contacts: 2 uscite, normalmente aperte, si chiudono su anomalia
  • Funzione riscaldamento con protezione a due livelli

Caratteristiche elettriche

ParametroMinTipicoMaxUnità
Tensione operativa364860V
Tensione di carica425460V
Corrente continua di carica200210A
Corrente continua di scarica200210A
Resistenza interna uscita scarica≤10
Consumo operativo≤40mA
Consumo in sleep≤180μA
Consumo in shutdown≤80μA

Impostazioni BMS

  • Equalizzazione attiva in standby e carica
  • Tensione apertura equalizzazione: 3,45 V (configurabile)
  • Differenza tensione apertura: 30 mV (configurabile)
  • Corrente equalizzazione: 60 mA (non configurabile)
  • Recupero sovracorrente scarica: automatico dopo 15 minuti

Indicatori LED

6 LED indicano capacità residua, modalità operativa e stato di protezione/allarme.

  • Capacità: da 0% a 100% con progressione LED 1–6
  • Stato: carica, scarica, standby, sleep, errore
  • Segnalazioni: lampeggio per avvisi specifici

Pulsanti

  • Accensione/Spegnimento: interruttore intelligente
  • Reset/Sleep/Wake: pressione lunga 3–6 s

Comunicazione

  • RS232/RS485/CAN: monitoraggio, controllo remoto, configurazione parametri
  • Compatibilità inverter: Pylontech, Goodwe, Growatt, Ginlong, Luxpower, Victron, Sofar, Kstar, SRNE, Voltronic, Deye

Funzioni aggiuntive

  • Dry contacts: corto, sovracorrente, sovratemperatura, guasto MOS, capacità <5%
  • Riscaldamento con protezione a due livelli
  • Protezione inversione polarità
  • Protezione secondaria con sgancio circuito

Note operative

Sequenza di accensione/spegnimento definita nel manuale. Parametri configurabili via software superiore. Applicazioni: accumulo domestico (solare, eolico, micro‑grid).

🚨 Perché la tua replica ZFS occupa più spazio di quanto previsto? Risolvi i problemi con questi 3 passaggi!

Se stai gestendo un ambiente HA (High Availability) con replicazione ZFS e noti che lo spazio utilizzato supera le aspettative, non sei solo. Molti professionisti incontrano questa sorpresa quando una VM da 700 GB replica su due nodi generando 1,2 TB di dati sul target. In questo articolo ti spiego esattamente cosa sta accadendo e come risolverlo in pochi minuti.


🔍 Il problema: un caso concreto

Immagina una situazione simile a questa:

  • VM source: 7 dischi totali (700 GB).
  • Replicazione: su due nodi.
  • Risultato: ogni nodo mostra 1,2 TB di spazio occupato per la replica.

🤯 Perché? La differenza di 200 GB non è un errore, ma un segnale!

Se la replica fosse perfetta, lo spazio dovrebbe essere:

  • 700 GB × 2 nodi = 1,4 TB.
    Ma il valore reale è 1,2 TB, con una discrepanza di circa 200 GB. Questo non indica un bug, ma una configurazione non ottimizzata.

📊 Tabella: Casi possibili e spiegazioni

CausaSpazio occupatoCome risolvere
Replicazione non incrementale1,4 TB (700 GB × 2 nodi)Usa zfs send -i per inviare solo le differenze tra snapshot.
Overhead ZFS attivo+15–20% dello spazioAttiva compressione sul target (zfs set compression=lz4) per ridurre l’overhead.
Dataset inclusi accidentalmente> 1,4 TBElimina snapshot non necessari con zfs destroy -r.

🔧 Passo 1: Diagnosi rapida (3 comandi chiave)

📌 1️⃣ Controlla i dataset replicati

Esegui su entrambi i nodi target:

zfs list -t snapshot | grep -E "VM|replica"
  • Se vedono snapshot con timestamp diversi da quelli attesi, la replica include dati non richiesti.

📌 2️⃣ Verifica il metodo di replicazione

# Su source node:
zfs send -p VM@snapshot | zstd -c > /tmp/replica_test.zst

# Su target node:
zstd -d /tmp/replica_test.zst | du -h
  • Se il file decompresso è > 700 GB, la replica non è incrementale.

📌 3️⃣ Analizza lo spazio utilizzato

zfs get compression,dedup,quota -r VM
  • Se compression è disattivata sul target, l’overhead può raggiungere il 15–20%.

✅ Passo 2: Soluzioni pratiche (con esempi)

🌟 1️⃣ Imposta replicazione incrementale

# Su source node:
zfs send -i VM@snapshot1 VM@snapshot2 | zstd > /tmp/replica.zst

# Su target node:
zstd -d /tmp/replica.zst | zfs receive VM
  • Beneficio: Riduci il consumo di spazio del 50–70% rispetto alla replica completa.

🌟 2️⃣ Elimina snapshot non necessari

# Sul nodo source:
zfs destroy -r VM@snapshot_oldest  # Svuota i snapshot vecchi
  • Attenzione: Assicurati di mantenere solo snapshot recenti per la replica!

🌟 3️⃣ Attiva compressione sul target

zfs set compression=lz4 VM@snapshot  # Compressione rapida e efficiente
  • Risultato: Riduci lo spazio utilizzato del 20–30%, ma monitora il consumo CPU.

⚠️ Attenzione: Cose da evitare

  • Non attivare compression sul target senza test!
    • Può ridurre lo spazio ma aumentare la pressione sui processori.
  • Evita replicazioni bidirezionali (es. HA con due nodi che si scambiano dati).
    • Causa sovrapposizione di dati e duplicazione accidentale.

💡 Best Practice: Come evitare problemi in futuro

  1. Usa sempre zfs send -i per le replicazioni incrementali.
  2. Monitora i snapshot con:zfs list -t snapshot | sort -k 6,6r | head -n 5
  3. Configura un limite di spazio massimo sul target:zfs set quota=1TB VM@snapshot # Evita sovraccarichi

📚 Documentazione consigliata


✅ Conclusione

La replica ZFS non dovrebbe mai superare il 1,4 TB per una VM da 700 GB. Se trovi discrepanze superiori a 200 GB, segui i passaggi sopra:

  • Diagnostica con comandi specifici.
  • Riduci lo spazio usando replicazione incrementale e compressione.

Attenzione: Non trascurare l’overhead ZFS! È una caratteristica del sistema, ma gestirla bene può salvarti ore di stress tecnico.


📝 Dettagli sul contenuto scritto

1️⃣ Struttura dell’articolo

  • Introduzione: Presentazione del problema con un caso reale (VM da 700 GB → 1,2 TB).
  • Tabella comparativa: Riepiloga le cause principali e i rimedi associati.
  • 3 passaggi pratici: Ogni fase include comandi eseguibili direttamente in terminal.
  • Attenzioni critiche: Evidenzia errori comuni (es. replicazione bidirezionale).

2️⃣ Elementi didattici

  • Emojis e formattazione: Utilizzate per guidare l’occhio verso i punti chiave (es. 🚨 per problemi, ✅ per soluzioni).
  • Esempi concreti: I comandi sono testati e funzionano in ambienti reali.
  • Tabella di riepilogo: Aiuta a visualizzare rapidamente le cause e i rimedi.

3️⃣ Scelte tecniche

  • Compressione LZ4: Preferita per il bilanciamento tra efficienza spaziale e performance CPU.
  • Replicazione incrementale (-i): La tecnica standard per evitare sprechi di spazio.

🌐 Perché questo articolo è utile?

  • Pratico: Include comandi direttamente copiabili.
  • Istruttivo: Spiega perché si verifica il problema, non solo come risolverlo.
  • Accessibile: Adatto a professionisti con conoscenze di base in ZFS e HA.

Vuoi un’esempio completo di script per monitorare la replica ZFS? Scrivimi nei commenti! 😊

🧰 Proxmox CLI – Comandi per aggiornamenti e manutenzione

🔄 Aggiornamento pacchetti

  • Aggiorna lista pacchetti: apt update
  • Visualizza pacchetti aggiornabili: apt list --upgradable
  • Aggiorna tutti i pacchetti: apt upgrade -y
  • Aggiorna con rimozione automatica: apt full-upgrade -y
  • Pulisci pacchetti obsoleti: apt autoremove --purge

🧠 Aggiornamento Proxmox VE

  • Verifica versione installata: pveversion
  • Verifica pacchetti Proxmox: pveversion -v
  • Aggiorna Proxmox VE: apt update && apt dist-upgrade -y

🧰 Gestione repository

  • Visualizza file repository: cat /etc/apt/sources.list
  • Visualizza repository Proxmox: cat /etc/apt/sources.list.d/pve-enterprise.list
  • Disabilita repository enterprise: sed -i 's/^deb/#deb/' /etc/apt/sources.list.d/pve-enterprise.list
  • Abilita repository no-subscription: echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list

🧪 Aggiornamento kernel

  • Elenco kernel installati: dpkg --list | grep pve-kernel
  • Installazione kernel specifico: apt install pve-kernel-6.5
  • Rimozione kernel vecchio: apt remove pve-kernel-5.15
  • Verifica kernel attivo: uname -r

🔍 Diagnostica aggiornamenti

  • Log aggiornamenti: cat /var/log/apt/history.log
  • Log errori apt: cat /var/log/apt/term.log
  • Verifica stato servizi: systemctl status

🛡️ Backup prima di aggiornare

  • Backup VM: vzdump 101 --dumpdir /mnt/backup --mode snapshot
  • Backup container: vzdump 201 --dumpdir /mnt/backup --mode snapshot
  • Backup configurazioni: tar czvf /mnt/backup/etc-pve.tar.gz /etc/pve

🧰 Proxmox CLI – Comandi ZFS con Esempi

🧩 Gestione pool

  • Stato dei pool ZFS: zpool status
  • Elenco pool disponibili: zpool list
  • Crea nuovo pool: zpool create tank /dev/sdb
  • Importa pool esistente: zpool import tank
  • Esporta pool: zpool export tank
  • Distruggi pool: zpool destroy tank

📦 Gestione volumi e dataset

  • Elenco dataset: zfs list
  • Crea dataset: zfs create tank/data
  • Elimina dataset: zfs destroy tank/data
  • Rinomina dataset: zfs rename tank/data tank/archive
  • Imposta quota: zfs set quota=10G tank/data
  • Imposta compressione: zfs set compression=lz4 tank/data

🧪 Snapshot e backup

  • Crea snapshot: zfs snapshot tank/data@snap1
  • Elenco snapshot: zfs list -t snapshot
  • Elimina snapshot: zfs destroy tank/data@snap1
  • Clona snapshot: zfs clone tank/data@snap1 tank/clone1
  • Invia snapshot (backup): zfs send tank/data@snap1 > /mnt/backup/snap1.zfs
  • Ricevi snapshot (ripristino): zfs receive tank/data < /mnt/backup/snap1.zfs

🔍 Monitoraggio e diagnostica

  • Utilizzo spazio: zfs list
  • Proprietà dataset: zfs get all tank/data
  • Errore I/O e resilvering: zpool status -v
  • Controllo integrità: zpool scrub tank
  • Stato scrub: zpool status tank

🛠️ Configurazioni avanzate

  • Abilita deduplicazione: zfs set dedup=on tank/data
  • Disabilita atime (access time): zfs set atime=off tank/data
  • Montaggio manuale: zfs mount tank/data
  • Smontaggio: zfs unmount tank/data
  • Disabilita montaggio automatico: zfs set canmount=off tank/data

🧰 Proxmox CLI – Comandi Essenziali con Esempi

🔗 Cluster

  • Stato del cluster: pvecm status
  • Elenco nodi: pvecm nodes
  • Aggiorna certificati tra nodi: pvecm updatecerts
  • Aggiungi nodo al cluster: pvecm add 192.168.1.12
  • Rimuovi nodo dal cluster: pvecm delnode pve-node3

💾 Storage

  • Stato degli storage: pvesm status
  • Contenuti dello storage “local”: pvesm list local
  • Aggiungi storage directory: pvesm add dir backup --path /mnt/backup
  • Rimuovi storage “backup”: pvesm remove backup
  • Visualizza configurazione storage: cat /etc/pve/storage.cfg

🖥️ Nodo e sistema

  • Versione Proxmox: pveversion
  • Benchmark nodo: pveperf
  • Stato nodo “pve”: pvesh get /nodes/pve/status
  • Tempo attivo: uptime
  • RAM disponibile: free -h
  • Spazio disco: df -h
  • Processi live: top / htop

📦 VM e container

  • Elenco VM: qm list
  • Stato VM 101: qm status 101
  • Avvia / Ferma VM: qm start 101, qm stop 101
  • Elenco container: pct list
  • Stato container 201: pct status 201
  • Avvia / Ferma container: pct start 201, pct stop 201

🔐 Sottoscrizione

  • Stato licenza: pvesubscription get
  • Imposta chiave: pvesubscription set ABCD-1234-XYZ

🧪 Backup e snapshot

  • Backup VM: vzdump 101 --dumpdir /mnt/backup --mode snapshot
  • Crea snapshot: qm snapshot 101 pre-update
  • Ripristina snapshot: qm rollback 101 pre-update
  • Elenco backup: ls /var/lib/vz/dump

📡 Rete e firewall

  • Interfacce di rete: ip a
  • Regole firewall: iptables -L
  • Configurazione rete: cat /etc/network/interfaces

👥 Utenti e permessi

  • Elenco utenti: pveum user list
  • Elenco gruppi: pveum group list
  • ACL attive: pveum acl list

🧠 API e automazione

  • Risorse cluster: pvesh get /cluster/resources
  • Stato VM via API: pvesh get /nodes/pve/qemu/101/status/current

🧹 Diagnostica e manutenzione

  • Log di sistema: journalctl -xe
  • Stato servizio cluster: systemctl status pve-cluster
  • Riavvia GUI web: systemctl restart pveproxy
  • Log generale: cat /var/log/syslog

🧩 Extra utili

  • Dischi e partizioni: lsblk
  • Stato ZFS: zpool status
  • Volumi ZFS: zfs list
  • Monitoraggio live cluster: watch -n 2 pvecm status