Node-RED × Victron Energy

Komplexné asistentské
scenáre pre váš
Victron systém

Programujeme pokročilú automatizačnú logiku priamo v Node-RED — od inteligentného riadenia nabitia až po viacpodmienkovú orchestráciu celého energetického systému.

200 € / hodina bez DPH

Čo programujeme

Každý scenár je vlastný Node-RED flow šitý na konkrétny Victron systém a požiadavky prevádzky

Najkomplexnejší

Časovo-tarifný správca nabitia

Flow sleduje spotové ceny elektriny alebo pevné tariffy a automaticky rozhoduje, kedy nabíjať batérie zo siete, kedy predávať prebytky a kedy využiť solárnu produkciu — všetko s prioritizáciou podľa predikcie počasia a plánovanej spotreby.

  • MQTT / VRM API
  • Solax / Spot ceny
  • Multi-condition logic

Dynamická regulácia záťaže

Automatické zapínanie a vypínanie spotrebičov (tepelné čerpadlo, EV nabíjačka, bojler) podľa aktuálneho stavu SOC, solárnej produkcie a grid limitu — bez zásahu obsluhy.

  • AC loads control
  • Modbus / relay

Viacúrovňový poplachový systém

Scenár sleduje desiatky parametrov (teplota batérie, pretlak, podpätie, chybové kódy) a eskaluje udalosti cez rôzne kanály — push notifikácia, e-mail, SMS, alebo priamy zásah do systému.

  • Pushover / Telegram
  • SMTP / webhook

Orchester viacerých invertorov

Koordinácia paralelných MultiPlus alebo Quattro jednotiek v rôznych fázach — vyvažovanie záťaže, prioritizácia zdrojov a automatický failover bez manuálneho prepínania.

  • Multi-inverter
  • 3-phase balancing

Vlastný dashboard & reporty

Node-RED UI alebo integrácia s Grafanou — živé grafy spotreby, produkcie a SOC histórie s automatickým denným alebo týždenným e-mailovým reportom vo vlastnej šablóne.

  • Node-RED UI
  • InfluxDB / Grafana

Integrácia s externým systémom

Prepojenie Victron systému s Home Assistant, EVCC, smart metrami, BMS komunikáciou alebo vlastným backendom cez REST, MQTT, Modbus alebo Victron D-Bus protokol.

  • Home Assistant
  • EVCC / D-Bus

Ako to funguje

Node-RED beží priamo na Cerbo GX alebo externom Raspberry Pi a komunikuje so všetkými zariadeniami v systéme

01

Analýza systému

Zmapujeme topológiu vašej inštalácie — zariadenia, komunikačné rozhrania, dostupné dáta a požiadavky na automatizáciu.

02

Návrh flow logiky

Navrhneme stavový diagram scenára — vstupy, podmienky, akcie a výstupy. Každý rozhodovací bod je zdokumentovaný pred implementáciou.

03

Programovanie & testovanie

Flow je vyvíjaný iteratívne — najprv na testovacom prostredí, potom nasadený do živého systému s možnosťou rollbacku.

04

Odovzdanie & dokumentácia

Dostanete exportovaný flow, technickú dokumentáciu logiky a voliteľne krátke video s popisom ako scenár funguje a ako ho upraviť.

Technologický základ

Node-RED
MQTT
Victron D-Bus
Modbus TCP
InfluxDB
Grafana
Home Assistant
Cerbo GX
VRM API

Reálna ukážka scenára

Riadenie výkonu invertora a EV nabíjačky podľa SOC, dennej doby a celkovej spotreby — funkčný Node-RED function node nasadený v prevádzke

01
Denná / nočná krivka

Rôzne SOC prahy pre deň a noc. Cez deň chráni batériu pre solárne nabíjanie, v noci plynulo redukuje výkon invertora.

02
Núdzový ochranný limit

Pod 23 % SOC sa výkon tvrdо obmedzí na 500 W bez ohľadu na iné pravidlá — ochrana pred hlbokým vybitím.

03
Power reserve override

Ak rezerva klesne pod 1 kW, scenár automaticky zvýši výkon invertoра — aj napriek SOC throttle. Prednosť pred záťažovými špičkami.

04
Dynamická regulácia EV

Nabíjací prúd auta sa škrtí v reálnom čase podľa celkovej záťaže, aby nedošlo k pretečeniu gridového limitu 6,8 kW.

inverter-power-control.js Victron Venus OS MultiPlus-II EV nabíjačka
// Node-RED function node: Victron Venus OS inverter power control
// Controls max inverter discharge power and EV charger amps based on battery SOC,
// time of day, and total AC consumption. Publishes results to flow context.

// --- Inputs (from flow context) ---
const acAll           = flow.get("l1");    // Total AC consumption (W), all phases
const soc             = flow.get("soc");   // Battery state of charge (%)
const carTakes        = flow.get("evl1");  // EV charger current draw (W)
const houseWithoutCar = acAll - carTakes;    // House load excluding EV charger (W)

// --- Constants ---
const GRID_LIMIT       = 6800;  // Max power to draw from grid (W)
const DESIRED_RESERVE  = 1000;  // Minimum power reserve before boosting inverter (W)
const INVERTER_MAX     = 5000;  // Absolute inverter hardware maximum (W)
const HIGH_LOAD_THRESH = 5000;  // AC threshold that unlocks higher daytime discharge (W)
const DEFAULT_CAR_AMPS = 32;    // Default EV charger current (A)

const isDay = flow.get("day") === 1;

// --- Inverter power limit ---
// Default to full power; reduced by SOC-based curves below.
let maxInverterPower = INVERTER_MAX;

if (!isDay) {
    // Night: gradually reduce discharge as battery empties to preserve morning reserves
    if      (soc < 35) maxInverterPower = 2000;
    else if (soc < 50) maxInverterPower = 2500;
    else if (soc < 60) maxInverterPower = 3000;
    // soc >= 60: full power (INVERTER_MAX)

} else {
    // Day: throttle inverter heavily to allow solar to recharge the battery.
    // When AC load is high (>HIGH_LOAD_THRESH), allow more discharge to avoid
    // overloading the grid connection.
    if      (soc < 50) maxInverterPower = acAll > HIGH_LOAD_THRESH ? 2000 : 500;
    else if (soc < 60) maxInverterPower = acAll > HIGH_LOAD_THRESH ? 3000 : 1000;
    else if (soc < 70) maxInverterPower = acAll > HIGH_LOAD_THRESH ? 4000 : 1500;
    else if (soc < 80) maxInverterPower = acAll > HIGH_LOAD_THRESH ? 5000 : 2000;
    // soc >= 80: full power (INVERTER_MAX)
}

// Emergency low-battery cutback: applies day and night.
// Protects battery from deep discharge regardless of other rules.
if (soc < 23) maxInverterPower = 500;

// --- Power reserve override ---
// If available headroom (grid + inverter - load) drops below DESIRED_RESERVE,
// raise inverter power to cover the shortfall and prevent grid overload.
// This intentionally overrides the SOC throttle during high-load spikes.
const powerReserve = GRID_LIMIT + maxInverterPower - acAll;
if (powerReserve < DESIRED_RESERVE) {
    maxInverterPower = acAll + DESIRED_RESERVE - GRID_LIMIT;
}

// Hard cap at inverter hardware maximum
if (maxInverterPower > INVERTER_MAX) maxInverterPower = INVERTER_MAX;

// --- EV charger current limit ---
// Reduce car charging amps if total load would exceed grid limit + inverter budget.
// Negative result is intentional: signals charger to pause (handled downstream).
let carAmps = DEFAULT_CAR_AMPS;
const desiredGridLimitMax = maxInverterPower + GRID_LIMIT;
if (acAll > desiredGridLimitMax) {
    carAmps = (desiredGridLimitMax - houseWithoutCar) / 230;
}

// --- Outputs ---
flow.set("carAmps",           carAmps);
flow.set("maxInverterPower",  maxInverterPower);
flow.set("maxInverterCharge", 5000); // Max charge power — fixed, not SOC-dependent

return msg;

O nás

Tekvica s.r.o.

Sme slovenská technologická spoločnosť. Pod značkou VictronLab sa venujeme výhradne programovaniu komplexných automatizačných scenárov v Node-RED pre inštalácie Victron Energy.

Nejde nám o jednoduché pravidlá — programujeme stavové stroje, viacpodmienkovú logiku a dlhodobé orchestrátory, ktoré reagujú na desiatky premenných súčasne.

IČO 52765024
DIČ 2121155047
IČ DPH SK2121155047
charge-assistant.js
const soc = msg.payload.soc;
const price = context.get('spotPrice');
const solar = flow.get('solarForecast');

if (soc < 20 && price < 0.08) {
  return [{ payload: 'charge' }, null];
}
if (solar > 3000 && soc > 90) {
  return [null, { payload: 'export' }];
}
return [null, null];

Časté otázky

Odpovede na najčastejšie otázky o Node-RED programovaní pre Victron Energy

Na aké zariadenia Victron Energy sa špecializujete?

Pracujeme s celým ekosystémom Victron Energy — Cerbo GX, MultiPlus-II, Quattro, MPPT regulátory, SmartShunt, VenusOS a VRM portál. Node-RED beží priamo na Cerbo GX alebo externom Raspberry Pi s VenusOS.

Čo je potrebné pre spustenie Node-RED na Victron systéme?

Na spustenie Node-RED stačí Cerbo GX alebo Raspberry Pi s VenusOS Large. Node-RED je v ňom dostupný priamo. Potrebujete tiež prístup k VRM portálu pre vzdialenú správu a diagnostiku.

Aká je cena za programovanie Node-RED scenára?

Cena je 200 € bez DPH za hodinu. Fakturujeme po 15-minútových intervaloch. Pred začatím prác odhadneme rozsah a časovú náročnosť konkrétneho scenára — takže viete, čo čakať.

Je možná vzdialená spolupráca?

Áno, väčšinu prác vykonávame na diaľku cez VRM portál a vzdialený prístup k Cerbo GX. Fyzická prítomnosť pri programovaní Node-RED scenárov nie je potrebná — fungujeme s klientmi po celej EÚ.

Dostaneme zdrojový kód a dokumentáciu?

Áno. Po dokončení dostanete exportovaný Node-RED flow vo formáte JSON, technickú dokumentáciu logiky a popis každého rozhodovacieho uzla. Vlastníte celý kód bez licenčných obmedzení.

Kontakt

Opíšte váš systém a čo chcete automatizovať — ozveme sa vám

Správa odoslaná. Ozveme sa vám čoskoro.