Dobra telemetria to podstawa świadomego zarządzania energią. Bez danych nie wiesz kiedy Twoja bateria jest przeciążona, ile energii tracisz w konwersji ani kiedy warto włączyć pralkę. Ten artykuł pokazuje jak zbudować kompletny system monitorowania od zera, bez subskrypcji i chmury zewnętrznej.
Architektura systemu telemetrycznego
Panel PV + MPPT Victron
|
| VE.Direct USB
v
Raspberry Pi 4 (Venus OS)
|
| MQTT publish (lub REST API)
v
Mosquitto Broker (lokalnie na RPi lub osobnym serwerze)
|
| Subscribe
v
Node-RED (transformacja danych)
|
| HTTP/InfluxDB line protocol
v
InfluxDB (baza szeregów czasowych)
|
| Query
v
Grafana (dashboardy, alerty)
Krok 1 – Venus OS na Raspberry Pi
Venus OS to system operacyjny Victron Energy na RPi, który integruje wszystkie urządzenia Victron przez VE.Direct lub VE.Bus:
# Pobierz Venus OS:
# https://github.com/victronenergy/venus/wiki/raspberrypi-install
# Wgraj na kartę SD (min. 8GB):
sudo dd if=venus-image-raspberrypi4.wic.gz | gunzip | sudo dd of=/dev/sdX bs=4M
# Po uruchomieniu: Venus OS jest dostępne pod adresem IP RPi
# Interfejs webowy: http://IP_RPi:80
W Venus OS włącz MQTT on LAN: Settings → Services → MQTT on LAN → Enabled. Broker publikuje dane w czasie rzeczywistym na localhost:1883.
Krok 2 – Instalacja Mosquitto MQTT Broker
sudo apt-get install mosquitto mosquitto-clients -y
sudo systemctl enable mosquitto
sudo systemctl start mosquitto
# Test – sprawdź czy MPPT publikuje dane:
mosquitto_sub -h localhost -t "N/+/solarcharger/+/Dc/0/#" -v
# Powinieneś zobaczyć:
# N/abc123/solarcharger/257/Dc/0/Voltage {"value": 52.4}
# N/abc123/solarcharger/257/Dc/0/Current {"value": 18.2}
Krok 3 – Node-RED – transformacja danych
# Instalacja Node-RED:
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
sudo systemctl enable nodered
sudo systemctl start nodered
# Dostępne pod: http://IP_RPi:1880
W Node-RED tworzymy przepływ:
- MQTT in node → subskrybuje topic Venus OS
- Function node → parsuje JSON, oblicza moc (P = U × I)
- InfluxDB out node → zapisuje do bazy
Przykładowy kod Function node:
// Parsuj dane z Venus OS MQTT
const topic = msg.topic;
const value = msg.payload.value;
if (topic.includes("Voltage")) {
flow.set("voltage", value);
} else if (topic.includes("Current")) {
flow.set("current", value);
const voltage = flow.get("voltage") || 0;
msg.payload = {
measurement: "solar",
fields: {
voltage: voltage,
current: value,
power: Math.round(voltage * value * 10) / 10
},
timestamp: new Date()
};
return msg;
}
return null;
Krok 4 – InfluxDB 2.x
# Instalacja InfluxDB na Raspberry Pi 4:
curl https://repos.influxdata.com/influxdata-archive_compat.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg > /dev/null
echo "deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg] https://repos.influxdata.com/debian stable main" | sudo tee /etc/apt/sources.list.d/influxdata.list
sudo apt-get update && sudo apt-get install influxdb2 -y
sudo systemctl enable influxdb && sudo systemctl start influxdb
# Konfiguracja (przez przeglądarkę http://IP_RPi:8086):
# Utwórz organizację, bucket "solar" z retention 365 days
# Wygeneruj API token dla Node-RED
Krok 5 – Grafana – dashboardy
# Instalacja Grafana:
sudo apt-get install -y apt-transport-https software-properties-common
sudo mkdir -p /etc/apt/keyrings/
wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null
echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
sudo apt-get update && sudo apt-get install grafana -y
sudo systemctl enable grafana-server && sudo systemctl start grafana-server
# Dostępne pod: http://IP_RPi:3000 (admin/admin)
W Grafanie podłącz InfluxDB jako datasource i stwórz dashboard z panelami:
- Gauge: aktualny SOC baterii
- Time series: produkcja PV dzień/tydzień/miesiąc
- Stat: energia dzisiaj (kWh), oszczędności (zł)
- Bar chart: produkcja per godzina (Heat map)
Alternatywa: Home Assistant z integracją Victron
Jeśli już masz Home Assistant, możesz zainstalować oficjalną integrację Victron przez HACS. Wszystkie dane pojawiają się jako encje HA – możesz tworzyć automatyzacje (np. włącz pralkę gdy SOC > 80%) i mieć dashboardy w HA Lovelace.
Alerty i powiadomienia
W Grafanie konfiguruj alerty email/Telegram gdy:
- SOC < 15% – bateria krytycznie niska
- Temperatura baterii > 45°C – przegrzanie
- Produkcja PV = 0 przez > 4h w dzień – możliwe zacienienie lub awaria
- Prąd ładowania > 110% max BMS – problem z regulatorem
# Telegram bot alert (curl przykład):
curl -s -X POST "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage"
-d "chat_id=${CHAT_ID}"
-d "text=⚠️ SOC baterii: ${SOC}% – sprawdź instalację!"
Koszty całego systemu telemetrycznego
- Raspberry Pi 4 2GB: 200–300 zł
- Karta SD 32GB Class 10: 30 zł
- Kabel VE.Direct do USB: 60–100 zł
- Obudowa + zasilacz: 50 zł
- Razem: ok. 380–480 zł
- Oprogramowanie: wszystko bezpłatne i open-source