Локальный JSON API SENEC.Home G3: SOC батареи и мощность сети в KNX
Опрос SENEC.Home G3 и V3 Hybrid через неавторизованный локальный JSON API на порту 7001 — извлечение SOC, мощности батареи, потребления дома и импорта/экспорта сети. Поток Node-RED, адаптер ioBroker SENEC и привязка групповых адресов KNX для автоматизации самопотребления.
Обзор локального API SENEC.Home
SENEC.Home G3 (5/10/15 kWh), V3 Hybrid (5-15 kWh), and V4 all expose a local JSON API at 'http://[senec-ip]:7001/lala.cgi'. This API is unauthenticated and accessible on the local LAN — no cloud dependency. It uses HTTP POST with a JSON body that specifies which data fields to return.
API предшествует современным REST-конвенциям: вы отправляете POST с JSON-объектом, где значения полей пусты, а ответ возвращает эти поля с текущими показаниями датчиков.
Опрос API: структура запроса
Локальный API SENEC — HTTP POST запрос и поля ответа
POST http://192.168.1.200:7001/lala.cgi
Content-Type: application/json
Request body:
{
"ENERGY": {
"GUI_BAT_DATA_POWER": "",
"GUI_BAT_DATA_FUEL_CHARGE": "",
"GUI_HOUSE_POW": "",
"GUI_GRID_POW": "",
"GUI_INVERTER_POWER": "",
"STAT_STATE": ""
}
}
Response fields:
GUI_BAT_DATA_POWER — battery power (W, float; positive=charging, negative=discharging)
GUI_BAT_DATA_FUEL_CHARGE — battery SOC (%, float 0.0-100.0)
GUI_HOUSE_POW — house consumption (W, float)
GUI_GRID_POW — grid power (W, float; positive=import, negative=export)
GUI_INVERTER_POWER — PV inverter DC output (W, float; V3 Hybrid and V4 only)
STAT_STATE — operating state number (see table below)| STAT_STATE | Значение |
|---|---|
| 0 | Ожидание |
| 1 | Зарядка |
| 2 | Полностью заряжена |
| 3 | Разрядка |
| 5 | Зарядка от сети |
| 14 | Калибровка |
| 16 | Резервный заряд |
| 255 | Обновление / офлайн |
Поток интеграции Node-RED
Prerequisite: install 'node-red-node-http-request' (built-in) and 'node-red-contrib-knx-ultimate' or standard KNX Classic nodes.
Поток: Inject (интервал 30 с) → HTTP Request (метод POST, URL http://192.168.1.200:7001/lala.cgi, тело из msg.payload — inject задаёт payload строкой JSON) → JSON parse → Function (извлечение значений и отправка в KNX) → KNX Out.
Функциональный узел Node-RED — извлечение данных SENEC и отправка в KNX
const energy = msg.payload.ENERGY;
const soc = parseFloat(energy.GUI_BAT_DATA_FUEL_CHARGE);
const batPower = parseFloat(energy.GUI_BAT_DATA_POWER);
const gridPower = parseFloat(energy.GUI_GRID_POW);
node.send([
{ payload: soc, topic: "6/4/3" }, // SOC DPT 5.001
{ payload: batPower / 1000, topic: "6/4/4" }, // Battery kW DPT 9.001
{ payload: gridPower / 1000, topic: "6/4/5" } // Grid kW DPT 9.001
]);Групповые адреса KNX: 6/4/3 (SOC батареи DPT 5.001), 6/4/4 (мощность батареи кВт DPT 9.001), 6/4/5 (мощность сети кВт DPT 9.001 — отрицательное значение означает отдачу в сеть).
Адаптер ioBroker SENEC
Install ioBroker adapter 'senec' (iobroker.senec). Configuration: enter SENEC IP address in adapter settings. Adapter polls port 7001 every 10s. Object tree: senec.0.ENERGY.GUI_BAT_DATA_FUEL_CHARGE (number, 0-100), senec.0.ENERGY.GUI_BAT_DATA_POWER (number, W).
Привязка KNX (адаптер ioBroker KNX): привяжите senec.0.ENERGY.GUI_BAT_DATA_FUEL_CHARGE к GA 6/4/3, DPT 5.001 (запись при изменении, допуск 1%). Привяжите GUI_BAT_DATA_POWER / 1000 к GA 6/4/4 DPT 9.001. ETS6 читает групповые адреса KNX как обычно — данные SENEC отображаются как стандартные значения KNX.
Логика автоматизации самопотребления
ETS6 logic (MDT Logic Controller): Rule 1 — When SOC (GA 6/4/3) rises above 85%, send '1' to GA 3/2/0 (washing machine KNX socket enable). Rule 2 — When grid export (GA 6/4/5 below -0.5 kW, i.e. exporting more than 500W): send '1' to GA 3/2/1 (dishwasher enable), send 32 to GA 6/0/8 (EV charger current GA, DPT 5.010). Rule 3 — When SOC drops below 20%: send '0' to GA 3/2/0 and GA 3/2/1 (disable flex loads). Reset timer: 30-minute minimum on-time per cycle to prevent short cycling.
Отличия V3 Hybrid от G3
SENEC.Home V3 Hybrid объединяет гибридный инвертор — доступна мощность GUI_INVERTER_POWER (постоянный ток от солнечных панелей). G3 — AC-связанная система, это поле отсутствует; опрашивайте инвертор отдельно (например, SMA Sunny Boy Modbus TCP порт 502, устройство 3, регистр мощности AC 30775). V4 hybrid: тот же API-эндпоинт, дополнительные поля для мультистринг-инвертора. Все поколения SENEC используют одинаковый HTTP POST эндпоинт и имена JSON-полей.
Примечание о прошивке SENEC.Home: начиная с версии 3.11, SENEC ввел шифрование значений полей в некоторых ответах API (значения возвращаются в виде шестнадцатеричных строк). Поля GUI_BAT_DATA_FUEL_CHARGE и GUI_BAT_DATA_POWER обычно остаются незашифрованными. Если в ответе встречаются нечисловые значения, обратитесь к библиотеке декодирования сообщества SENEC (senec-lala-cgi-decoder на GitHub) для обработки текущего шифрования.
Нужна панель KNX с интеграцией аккумулятора SENEC под ваш проект?
Мы настраиваем адаптеры Node-RED и ioBroker для SENEC, разрабатываем схемы групповых адресов KNX для автоматизации самопотребления и поставляем полностью протестированные панели с документацией для вашего объекта.
Запросить предложение →