MQTT — формат повідомлень
Для кого:Монтажник
Налаштування брокера — MQTT і Home Assistant.
Кожні 5 секунд, для кожного порту, на якому вибрано протокол:
| Тема | Вміст |
|---|---|
<назва>/p1, <назва>/p2 |
Дані пристрою на порту |
<назва>/pN/b<адреса> |
Окрема батарея паралельної групи JK (лише для протоколу JK BMS · Parallel bus), наприклад AKB2/p1/b0 |
<назва> — назва пристрою (Device name). Шифрування (TLS) немає.
Повідомлення порту
Section titled “Повідомлення порту”{ "device": "AKB2", "port": 1, "protocol": 5, "key": "jk_modbus", "name": "JK BMS · Modbus", "kind": "bms", "online": true, "age": 1, "frames": 1200, "errors": 2, "data": { "voltage": 53.12, "current": -5.65, "power": -299.9, "soc": 64, "cycles": 21, "capacity_remaining": 201.93, "capacity_full": 314.0, "mos_temp": 23.7, "balance_current": 0.0, "alarms": 524288, "charging": true, "discharging": true, "cells": [3.323, 3.320], "temps": [22.4, 22.8, 21.6, 22.0] }}| Поле | Що означає |
|---|---|
device |
Назва пристрою |
port |
Номер порту |
protocol, key, name |
id, ключ і назва протоколу (id протоколів) |
kind |
bms, inverter або tool |
online |
Була успішна відповідь за останні 30 секунд |
age |
Секунди від останньої успішної відповіді. Немає, якщо відповідей ще не було |
frames / errors |
Лічильники вдалих і невдалих опитувань |
error |
Остання помилка, наприклад no reply. Зникає після першої вдалої відповіді |
data |
Остання вдала відповідь. Якщо пристрій замовк, data лишається, а online стає false |
Поле, якого протокол не повідомляє, у data відсутнє. cells і temps містять лише наявні комірки й датчики.
Поля data для BMS
Section titled “Поля data для BMS”| Поле | Одиниці | Що це |
|---|---|---|
voltage |
В | Напруга батареї |
current |
А | Струм, «+» — заряд |
power |
Вт | Потужність |
soc |
% | Рівень заряду |
cycles |
Цикли | |
capacity_remaining, capacity_full, capacity_design |
А·год | Залишок, повна й номінальна ємність |
mos_temp |
°C | Температура MOSFET |
balance_current |
А | Струм балансування |
alarms |
Тривоги, бітова маска (біти JK) | |
charging, discharging |
true / false | Ключі заряду й розряду |
sampling_voltage, port_voltage |
В | Напруги, які повідомляє PACE |
missed_replies |
PACE: опитувань поспіль без відповіді | |
cells |
В | Напруги комірок |
temps |
°C | Температури датчиків |
Victron VE.Bus
Section titled “Victron VE.Bus”У data: dc_voltage (В), dc_current (А), ac_frequency (Гц), power_factor.
Інвертор Deye
Section titled “Інвертор Deye”"data": { "metrics": { "pv_power": 0, "battery_power": 320, "battery_soc": 75, "grid_power": 465, "load_power": 480 }, "state": "normal", "faults": ["F35 No AC grid"], "device": { "model": "Deye Single-phase hybrid", "serial": "…", "protocol_version": "2.1" }}metrics— 52 показники; ключі й одиниці — у таблиці показників Deye.state—standby,self-check,normal,alarm,faultабоactivating.faults— активні коди з назвами (коди Deye).device— модель, серійний номер, версія протоколу.
Паралельна група JK
Section titled “Паралельна група JK”Тема порту містить підсумок групи (поля BMS, як вище) і pack:
"pack": { "batteries": 3, "online": 3, "cell_min": { "voltage": 3.428, "address": 1, "cell": 4 }, "cell_max": { "voltage": 3.451, "address": 0, "cell": 12 }, "cell_delta_mv": 23}| Поле | Що це |
|---|---|
batteries / online |
Скільки батарей MiRCA бачила / скільки на зв’язку |
cell_min, cell_max |
Найнижча й найвища комірка в групі: напруга, адреса батареї, номер комірки |
cell_delta_mv |
Розкид напруг комірок, мВ |
Підсумок: напруга — середня; струм, потужність, ємність — сума; SOC — зважений на ємність; тривоги — об’єднання; температура MOSFET — найвища. Враховуються лише батареї на зв’язку.
Кожна батарея публікується окремо в <назва>/pN/b<адреса>:
{ "device": "AKB2", "address": 0, "name": "Battery 1 (master)", "role": "master", "online": true, "age": 2, "voltage": 51.71, "current": 7.14, "soc": 99, "cycles": 149, "cells": [3.450], "temps": [19.7, 20.0, 20.7, 19.9, 19.6]}role — master (адреса 0) або slave. Решта полів — як у BMS.
MiRCA · виробник kom-serviceЗастереження