Wskazówka
Node-RED

Dashboard, dostęp przez VRM i dobre praktyki

Własny panel z wykresami i przełącznikami, edytor i dashboard otwierane spoza domu przez VRM, dane z portalu VRM we flow — i to, czego pilnować, żeby nie zapełnić pamięci urządzenia GX. Wszystko według instrukcji Venus OS Large. Zakładamy, że Node-RED już działa — jeśli nie, zacznij od pierwszego uruchomienia.

Jak się łączyć z Node-RED na GX

Node-RED pracuje na samym urządzeniu GX. W sieci lokalnej przeglądarka łączy się z nim bezpośrednio, a spoza domu — przez portal VRM. Flow mogą też same pobierać dane z VRM i zapisywać pliki na partycji danych urządzenia.

https · 1881 internet token zapis Komputer w LAN edytor · :1881 Telefon w LAN dashboard Cerbo GX Venus OS Large Node-RED · flow i dashboard Portal VRM menu Venus OS Large Zdalnie telefon · laptop VRM API token · prognozy Partycja /data flow · palety · kontekst
połączenia sieciowe i zapis danych
Najedź na element schematu lub go dotknij.
  1. W sieci lokalnejEdytor pod adresem https://venus.local:1881, dashboard z panelu „Dashboard 2.0” w edytorze (ścieżka /dashboard).
  2. Zdalnie przez VRMMenu Venus OS Large w portalu VRM: edytor, dashboard i Signal K; przy słabym łączu działa wolno.
  3. Dane z VRMToken dostępu, VRM API i prognozy produkcji — na tym działa Dynamic ESS.
  4. Partycja /dataFlow, palety i kontekst; zawsze co najmniej 30 MB wolnego, poniżej 5% ostrzeżenie #46.

Dashboard: FlowFuse Dashboard 2.0

Dashboard to strona w przeglądarce z wykresami, wskaźnikami i kontrolkami, np. przełącznikami i suwakami. Victron zaleca pakiet FlowFuse Dashboard 2.0 — aktualny i rozwijany.

  1. Instalacja. W edytorze: menu po prawej → Manage palette → zakładka Install, wyszukaj i zainstaluj @flowfuse/node-red-dashboard. Urządzenie GX musi mieć działający internet. Paleta instaluje się na partycji danych, więc zostaje po aktualizacji Venus OS.
  2. Budowa. Nowe węzły pojawiają się w palecie po lewej. Dashboard ma cztery poziomy: ui-base (adres bazowy, fabrycznie /dashboard), ui-page (strony), ui-group (grupy na stronie) i widżety — wykres, wskaźnik, przycisk, przełącznik.
  3. Dane z instalacji. Węzeł wejściowy Victron (np. stan naładowania baterii) podłącz do widżetu, a przełącznik z dashboardu — do węzła wyjściowego, np. przekaźnika. Co jest w palecie Victron: węzły Victron.
  4. Deploy i podgląd. Po wdrożeniu (Deploy) dashboard otworzysz z panelu „Dashboard 2.0” po prawej stronie edytora, a w portalu VRM, w menu Venus OS Large, pojawi się dodatkowy kafelek do zdalnego dostępu.
  • Przekaźnik z dashboardu. Najpierw ustaw przekaźnik w tryb ręczny (Manual) w menu GX albo w VictronConnect. Żeby przełącznik pokazywał też zmiany zrobione gdzie indziej, np. w menu GX, podłącz stan przekaźnika także do wejścia przełącznika — tak robi przykład „Relay switching” z wiki Victron.
  • Jak często przychodzą dane. Węzły wejściowe Victron wysyłają wiadomość przy każdej zmianie wartości. Bez zaznaczonej opcji „only changes” dodatkowo co 5 sekund wysyłają bieżącą wartość — wykres dostanie wtedy punkt także wtedy, gdy nic się nie zmienia.
  • Stary dashboard. Pakiet node-red-dashboard jest przestarzały i według instrukcji nie należy go już używać.
  • Alternatywa: uibuilder. node-red-contrib-uibuilder daje pełną kontrolę nad wyglądem, ale nie ma gotowych widżetów — interfejs pisze się samemu w HTML, CSS i JavaScript. Bardziej elastyczny, ale znacznie trudniejszy niż Dashboard 2.0.
Rozbieżność w dokumentacji Victron

Instrukcja Venus OS Large odradza stary pakiet node-red-dashboard, ale przykładowe flow z wiki node-red-contrib-victron z dashboardem — „Monitor disk usage”, „Relay switching (from the dashboard)” i „Threshold control” — nadal go wymagają (węzły ui_chart, ui_switch, ui_slider i dodatki do starego dashboardu). Takie flow trzeba przebudować na widżety Dashboard 2.0 albo doinstalować stary pakiet wbrew zaleceniu instrukcji.

Dostęp zdalny przez VRM

Trzy panele — edytor flow, dashboard Node-RED i panel administracyjny Signal K — są dostępne także zdalnie, przez portal VRM.

  1. Instalacja w VRM. Urządzenie GX musi wysyłać dane do portalu VRM — jak je podłączyć: monitoring w VRM.
  2. Menu Venus OS Large. Zaloguj się do VRM, wybierz instalację i kliknij menu Venus OS Large. Kafelki edytora i Signal K są tam po włączeniu tych funkcji w GX, a kafelek dashboardu — po jego wdrożeniu.
  3. Logowanie. Node-RED pyta o to samo hasło co lokalnie — od Venus OS 3.50 jest to hasło profilu bezpieczeństwa z użytkownikiem admin (szczegóły).
  • Może działać wolno. Instrukcja uprzedza, że szybkość zależy od jakości połączenia.
  • Tylko przez VRM. Instrukcja Victron opisuje zdalny dostęp do Node-RED wyłącznie przez VRM; przekierowania portów na routerze nie opisuje.

Dane z VRM we flow

Część flow potrzebuje danych, których nie ma w samym urządzeniu GX, np. prognozy produkcji z paneli albo nasłonecznienia. Pobiera się je z bazy portalu VRM przez VRM API.

  1. Token dostępu. W portalu VRM, w części Access tokens, dodaj nowy token. Po wygenerowaniu nie da się go odczytać ponownie — od razu zapisz go w menedżerze haseł.
  2. Węzeł VRM API. Victron VRM API node ułatwia korzystanie z API we flow. Pełny opis API: dokumentacja VRM API.
  3. Prognozy. Służy do tego wywołanie stats z jednym z atrybutów w tabeli; instrukcja zaznacza, że przydatnych atrybutów może być więcej.
IDAtrybutDane
1220vrm_pv_charger_yield_fcprognoza produkcji regulatorów solarnych (MPPT)
1221vrm_pv_inverter_yield_fcprognoza produkcji falowników PV
1173vrm_solar_irradiance_fcprognoza nasłonecznienia
1172vrm_solar_irradiancenasłonecznienie

Gotowe rozwiązanie: Dynamic ESS — pobiera z VRM optymalną wartość zadaną dla ESS, wyliczoną z dynamicznych cen energii i prognozy produkcji z paneli. Jego flow to też dobry przykład korzystania z VRM API.

Token to klucz do konta. Traktuj go jak hasło: zanim udostępnisz flow, np. na forum Victron Community, sprawdź, czy token nie jest wpisany wprost w węzeł function, change albo inject.

Pamięć: partycja danych /data

Palety, flow, poświadczenia i zapisany kontekst leżą na partycji danych urządzenia GX. Dzięki temu przetrwają aktualizację Venus OS, ale miejsca jest mało, a Node-RED i Signal K potrafią zapełnić partycję całkowicie.

  • Co najmniej 30 MB wolnego — zawsze, według instrukcji Venus OS Large.
  • Ostrzeżenie #46. Gdy wolne miejsce spadnie poniżej 5%, GX zgłasza #46 Data partition full. Dokładną wartość pokazuje menu Settings → General → Modifications.
  • Skutki pełnej partycji. Venus OS przestaje działać poprawnie, Node-RED albo Signal K nie startuje — system nie jest przygotowany na brak miejsca.
  • Bez dużych plików na /data. Nie zapisuj tam dużych zdjęć, filmów ani logów. Takie dane trzymaj poza GX — w bazie danych, w chmurze, przez MQTT albo FTP — i odwołuj się do nich przez adres URL.
  • Palety tylko potrzebne. Każda doinstalowana paleta zajmuje miejsce. Nieużywane usuwa się przyciskiem remove w Manage palette.

Gdy partycja już się zapełniła — kolejno, od najłagodniejszego:

  1. Logi Signal K. Jeśli używasz Signal K, instrukcja zaleca zacząć od usunięcia jego logów, a potem sprawdzić, czy w Signal K → Server → Settings jest włączona opcja „Keep only most recent data log files” (fabrycznie włączona).
  2. Flow i palety. Usuń flow i doinstalowane palety. Jeśli edytor nie startuje, plik venus-data-20-node-red-reset.tgz na pendrivie usuwa całą zawartość /data/home/nodered/ — wszystkie flow i palety — i pozwala zacząć od zera. Wcześniej zrób kopię: venus-data-00-backup-data-partition.tgz kopiuje całą partycję /data na pendrive (jak to działa).
  3. Reset fabryczny GX — według instrukcji urządzenia GX. Wadą jest konieczność ponownej konfiguracji całego urządzenia.

Zajętość partycji można też śledzić we flow — wiki Victron ma dwa przykłady: „Monitor disk usage” (wykres na starym dashboardzie, zob. rozbieżność wyżej) i „Using MQTT to monitor disk space”, który wymaga włączenia w menu GX usługi MQTT on LAN (Plaintext) i wypisuje wolne miejsce tylko w oknie debug.

Zmienne kontekstu a pamięć flash

Zmienne kontekstu (context, flow, global) służą flow do zapamiętywania wartości, np. licznika albo ostatniego stanu. Fabrycznie są trzymane tylko w pamięci RAM urządzenia GX — po restarcie albo zaniku zasilania znikają.

Żeby przetrwały restart, trzeba je zapisywać na dysk — w pliku settings-user.js (zob. pliki konfiguracyjne):

module.exports = {
  contextStorage: {
    default: {
      module: "localfilesystem",
      config: {
        // zapis co 5 minut
        flushInterval: 300
      }
    }
  }
}
  • Nie zapisuj za często. Instrukcja ostrzega, że częste zapisy zużywają pamięć flash — przykład zapisuje kontekst co 300 s, czyli co 5 minut.
  • Tylko małe dane. W kontekście nie trzymaj dużych ani binarnych danych — ląduje on na tej samej, małej partycji /data.
  • Po zmianie uruchom Node-RED ponownie (restart).

Pliki konfiguracyjne — kiedy je ruszać

Zdecydowana większość instalacji z Node-RED nie musi — i nie powinna — zmieniać tych plików. Venus OS Large jest tak zrobiony, żeby nie trzeba było schodzić do wiersza poleceń. Do edycji potrzebny jest dostęp root przez SSH (instrukcja Victron).

PlikDo czegoEdycja
/usr/lib/node_modules/node-red/venus-settings.jsustawienia bazowe, czytane jako pierwszenigdy — nadpisuje go aktualizacja Venus OS
/data/home/nodered/.node-red/settings-venus.jsuzupełnia pierwszy plik; zostaje po aktualizacjinie — jest dla Victron
/data/home/nodered/.node-red/settings-user.jstwoje ustawienia: porty, zabezpieczenia, edytor, contextStorage; zostaje po aktualizacjitak, ostrożnie — błąd składni blokuje start Node-RED, a po aktualizacji ustawienie może przestać działać
flows.jsonwszystkie flow (to samo co eksport z menu)nie ręcznie — ryzyko uszkodzenia
flows_cred.jsonzaszyfrowane poświadczenia z flow (loginy, hasła)nie — ręczna zmiana może zepsuć odszyfrowanie
.config.*.jsonustawienia samego Node-REDnie; eksport flow ich nie obejmuje
lib/biblioteka subflow i funkcjibezpieczna dla zaawansowanych
  • Jeden blok. Ustawienia w tych plikach muszą być wewnątrz bloku module.exports = {}. Kilka ustawień — np. port 1880 i contextStorage — wpisuje się w ten sam blok, oddzielone przecinkiem.
  • settings.js jest ignorowany. Plik /data/home/nodered/settings.js, nawet jeśli go utworzysz, nie jest czytany — działa tylko settings-user.js w katalogu .node-red.
  • Obrazy w dashboardzie. Żeby Node-RED serwował np. tło dashboardu, dopisz w settings-user.js httpStatic: "/data/home/nodered/www", utwórz ten katalog, oddaj go użytkownikowi nodered (chown -R nodered:nodered) i wstaw tam plik, np. image.png. W dashboardzie odwołujesz się do niego względnie: background-image: url(/image.png);. To też zajmuje miejsce na /data — tylko małe pliki.

Restart po zmianie ustawień. Najprościej w menu GX: Venus OS Large Features → Node-RED — wyłącz i włącz ponownie. Z wiersza poleceń:

# zatrzymaj
svc -d /service/node-red-venus
# uruchom
svc -u /service/node-red-venus
# restart
svc -t /service/node-red-venus

Jeśli po zmianie coś nie działa, uruchom Node-RED w trybie bezpiecznym — startuje bez uruchamiania flow (tryb bezpieczny).

Bezpieczeństwo i uprawnienia

  • Hasło. Od Venus OS 3.50 dostęp do Node-RED chroni hasło profilu bezpieczeństwa (Settings → General → Security Profile) z użytkownikiem admin; w starszych wersjach — hasło Remote Console. Szczegóły: hasło do edytora.
  • Szyfrowane połączenie. Edytor działa po https na porcie 1881. Certyfikat jest podpisany samodzielnie — stąd ostrzeżenie przeglądarki — ale login i hasło nie idą przez sieć otwartym tekstem.
  • Port 1880 tylko w razie potrzeby. Niektóre węzły łączą się wyłącznie po http. Dla nich można włączyć dodatkowo port 1880 na wszystkich interfejsach — w settings-user.js, po czym trzeba zrestartować Node-RED:
    module.exports = {
      // także http na porcie 1880
      uiHost: "::"
    }
    To zwykłe http, bez szyfrowania, które daje port 1881 — więc włączaj go tylko wtedy, gdy któryś węzeł tego wymaga.
  • Błąd EACCES przy zapisie pliku. Od Venus OS 2.90 Node-RED działa jako użytkownik nodered, a nie root, więc flow mogą czytać i zapisywać tylko pliki tego użytkownika — zwykle poniżej /data/home/nodered/. Zamiast innej ścieżki użyj np. /data/home/nodered/storage.txt.
  • Token VRM i hasła we flow. Poświadczenia, które węzły zapisują jako dane logowania, trafiają do zaszyfrowanego flows_cred.json. Tokenu ani hasła nie wpisuj wprost w węzły function, change czy inject — trafiłyby do zwykłego pliku flows.json i do każdego eksportu.
Przed zmianą plików — kopia

Wyeksportuj wszystkie flow (menu → Export → all flows) i zachowaj plik flows.json. Eksport nie obejmuje ustawień Node-RED z plików .config.*.json — pełną kopię partycji /data robi plik venus-data-00-backup-data-partition.tgz na pendrivie.

Urządzenia, których to dotyczy

Źródła

Treść porównana z dokumentacją Victron Energy (karty katalogowe i instrukcje) — stan na 22.09.2026. Zgłoś błąd w treści · Rejestr poprawek