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.
- W sieci lokalnejEdytor pod adresem https://venus.local:1881, dashboard z panelu „Dashboard 2.0” w edytorze (ścieżka /dashboard).
- Zdalnie przez VRMMenu Venus OS Large w portalu VRM: edytor, dashboard i Signal K; przy słabym łączu działa wolno.
- Dane z VRMToken dostępu, VRM API i prognozy produkcji — na tym działa Dynamic ESS.
- 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.
- 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. - 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. - 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.
- 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-dashboardjest przestarzały i według instrukcji nie należy go już używać. - Alternatywa: uibuilder.
node-red-contrib-uibuilderdaje 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.
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.
- Instalacja w VRM. Urządzenie GX musi wysyłać dane do portalu VRM — jak je podłączyć: monitoring w VRM.
- 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.
- 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.
- 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ł.
- Węzeł VRM API. Victron VRM API node ułatwia korzystanie z API we flow. Pełny opis API: dokumentacja VRM API.
- 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.
| ID | Atrybut | Dane |
|---|---|---|
| 1220 | vrm_pv_charger_yield_fc | prognoza produkcji regulatorów solarnych (MPPT) |
| 1221 | vrm_pv_inverter_yield_fc | prognoza produkcji falowników PV |
| 1173 | vrm_solar_irradiance_fc | prognoza nasłonecznienia |
| 1172 | vrm_solar_irradiance | nasł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:
- 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).
- Flow i palety. Usuń flow i doinstalowane palety. Jeśli edytor nie startuje, plik
venus-data-20-node-red-reset.tgzna 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.tgzkopiuje całą partycję /data na pendrive (jak to działa). - 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).
| Plik | Do czego | Edycja |
|---|---|---|
/usr/ | ustawienia bazowe, czytane jako pierwsze | nigdy — nadpisuje go aktualizacja Venus OS |
/data/ | uzupełnia pierwszy plik; zostaje po aktualizacji | nie — jest dla Victron |
/data/ | twoje ustawienia: porty, zabezpieczenia, edytor, contextStorage; zostaje po aktualizacji | tak, ostrożnie — błąd składni blokuje start Node-RED, a po aktualizacji ustawienie może przestać działać |
flows.json | wszystkie flow (to samo co eksport z menu) | nie ręcznie — ryzyko uszkodzenia |
flows_cred.json | zaszyfrowane poświadczenia z flow (loginy, hasła) | nie — ręczna zmiana może zepsuć odszyfrowanie |
.config.*.json | ustawienia samego Node-RED | nie; eksport flow ich nie obejmuje |
lib/ | biblioteka subflow i funkcji | bezpieczna 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:
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.module.exports = { // także http na porcie 1880 uiHost: "::" } - 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.
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
Cerbo GXCentrum sterowania systemem i brama do portalu VRM.
Ekrano GXCentrum GX z wbudowanym ekranem dotykowym 7″.Źródła
- Venus OS Large image: Signal K and Node-RED — dashboard, pliki konfiguracyjne, VRM API, FAQ, dostęp przez VRM, pełna partycja danychvictronenergy.com · EN
- node-red-contrib-victron — Example Flows (przekaźnik z dashboardu, zajętość dysku, threshold control)github.com · EN
- VRM API — dokumentacjavictronenergy.com · EN
- FlowFuse Dashboard 2.0 — Getting started (instalacja, ścieżka /dashboard, budowa)dashboard.flowfuse.com · EN