BYD Battery-Box HVM: SOC e potenza verso KNX tramite Modbus TCP inverter
Lettura del SOC e della potenza di carica/scarica della BYD Battery-Box HVM tramite l'interfaccia Modbus TCP dell'inverter accoppiato — registri SolarEdge StorEdge, Fronius SunSpec Model 802 e SMA Sunny Boy Storage. Flusso di polling Node-RED e mappatura KNX DPT per l'automazione dell'autoconsumo.
Perché BYD non ha una porta Modbus diretta
BYD Battery-Box HVM (sistema ad alta tensione 403,2 V, 2,76–22,1 kWh per stack) comunica con l'inverter tramite un protocollo proprietario CAN-bus / EnergyLink sulla porta CAN tra batteria e inverter. BYD non espone una porta Modbus TCP o RS485 accessibile all'utente sulla batteria stessa. Tutti i dati della batteria devono essere letti indirettamente tramite il partner inverter certificato.
SolarEdge StorEdge + BYD: mappa dei registri
SolarEdge SE5K-RWS00BNN4 (StorEdge) con BYD Battery-Box HVM: Modbus TCP porta 1502, unit ID 1.
Registri holding specifici per la batteria (FC3, uint16 / int16):
| Registro | Descrizione | Tipo / Scala |
|---|---|---|
| 62784 (0xF540) | Temperatura media batteria 1 | int16, °C x10 |
| 62786 (0xF542) | Tensione DC batteria 1 | uint16, V x100 |
| 62794 (0xF54A) | Potenza istantanea batteria 1 | int16, W — positivo=carica, negativo=scarica |
| 62798 (0xF54E) | Stato di carica batteria 1 (SOC) | uint16, % |
| 62800 (0xF550) | Stato di salute batteria 1 (SOH) | uint16, % |
| 62852 (0xF584) | Maschera di bit stato batteria 1 | uint16: bit 3=carica, bit 4=scarica, bit 11=guasto |
Mappatura KNX: il registro 62794 (int16, W) diviso per 1000 corrisponde a KNX DPT 9.001 (potenza batteria kW), il registro 62798 a KNX DPT 5.001 (SOC %). Nota: il registro 62794 è un intero con segno — il gateway MDT Modbus deve essere configurato sul tipo di dato signed int16 per questo registro.
Fronius Symo Gen24 + BYD: SunSpec Model 802
Fronius Symo Gen24 5.0-1 con BYD Battery-Box HVM: Modbus TCP porta 502, unit ID 1. I registri SunSpec iniziano a 40001 (indirizzo base).
SunSpec Model 802 (Battery Base Model) viene aggiunto dopo il Model 103 (Inverter). Per localizzare dinamicamente il Model 802: scansionare l'elenco dei blocchi SunSpec dalla base. In pratica per Fronius Gen24 con firmware 1.24.x, i registri batteria iniziano a circa 40331:
Fronius Gen24 SunSpec Model 802 — registri chiave
Register 40331: SunSpec Model 802 ID (value 802) Register 40333: Battery SOC (uint16, SF from register 40372) Register 40337: Battery instantaneous power (int16, W — positive=charging) Register 40341: Battery status (enum16: 1=off, 3=charging, 4=discharging, 7=fault) Register 40361: Battery SOC (float32 alternative, direct %)
Per uso in produzione: il gateway MDT Modbus legge il registro 40361 (2 registri, float32 big-endian) per il SOC e il registro 40337 (int16) per la potenza. Mappatura sugli indirizzi di gruppo KNX.
SMA Sunny Boy Storage + BYD: indirizzi dei registri
SMA SBS6.0-10 con BYD Battery-Box: Modbus TCP porta 502, unit ID 3 (SMA utilizza tipicamente unit ID 3 per gli inverter di accumulo).
| Registro | Descrizione | Tipo |
|---|---|---|
| 30845-30846 | SOC batteria (0–100 %) | uint32 |
| 30851-30852 | Stato di salute batteria (0–100 %) | uint32 |
| 30775-30776 | Potenza di carica batteria (W — positivo=carica, negativo=scarica) | int32 |
| 30843-30844 | Stato operativo batteria (2291=vuota, 2292=carica, 2293=scarica, 2294=piena) | uint32 |
Nota: SMA utilizza tipi uint32 (2 registri ciascuno) anche per i valori percentuali. Gateway MDT Modbus: tipo di dato 'unsigned 32-bit integer', ordine byte 'big-endian', dividere il valore del registro SOC per 1 (già in percentuale, nessuna scala necessaria).
Flusso di polling Node-RED
Installare i pacchetti Node-RED: node-red-contrib-modbus (polling Modbus TCP). Struttura del flusso:
Flusso Node-RED — SolarEdge BYD SOC e potenza verso KNX
Inject (30s interval)
→ Modbus Read (server: 192.168.1.100, port 1502, unit 1,
FC3, start 62798, count 1, datatype INT)
→ Function: msg.payload = msg.payload[0]; return msg;
→ KNX-Classic Out (GA: 6/4/1, DPT 5.001 — Battery SOC %)
Second branch from inject (register 62794 — battery power):
→ Modbus Read (same server, start 62794, count 1, datatype INT)
→ Function:
var value = msg.payload[0];
if (value > 32767) { value = value - 65536; }
msg.payload = value / 1000;
return msg;
→ KNX-Classic Out (GA: 6/4/2, DPT 9.001 — Battery power kW,
positive = charging)Automazione dell'autoconsumo KNX
Controllore logico ETS6 (MDT Logic Controller o Weinzierl IP 731): Regola — se GA 6/4/1 (SOC batteria) è superiore a 85 E GA 7/0/0 (export PV, DPT 9.001) è superiore a 0,5 kW, attivare l'uscita KNX GA 1/5/4 (boost ACS, timer 30 min). Regola — se GA 6/4/1 (SOC) scende sotto 20, disattivare l'uscita KNX GA 1/6/1 (abilitazione ricarica VE, DPT 1.001). Isteresi: il SOC deve risalire oltre 30 per riabilitare la ricarica VE.
Gestione degli interi con segno: Il registro SolarEdge 62794 (potenza batteria) è un intero con segno a 16 bit. Quando viene letto come valore senza segno da alcuni gateway, la potenza di carica appare come un grande numero positivo (es. 65436 invece di -100W). Configurare sempre il gateway MDT SCN-MOD.02 o equivalente su signed int16 per questo registro, oppure applicare la formula di sottrazione (se valore superiore a 32767: sottrarre 65536) in Node-RED o nel controllore logico.
Avete bisogno di un quadro KNX con integrazione Modbus batteria BYD realizzato su specifica?
Progettiamo quadri di bassa tensione con integrazione Modbus batteria SolarEdge, Fronius e SMA, logica di autoconsumo KNX e documentazione completa di messa in servizio — consegnati testati e verificati presso il vostro sito.
Richiedi un preventivo →