E-Ink-baserad lokal dashboard för att övervaka batteri- och solstatus från JBD/Overkill BMS samt Victron SmartSolar MPPT, designad för Raspberry Pi Zero 2 W.
Databasen innehåller två tabeller:
| Kolumn | Typ | Beskrivning |
|---|---|---|
id |
INTEGER | Primärnyckel |
timestamp |
TEXT | Tidpunkt då datan sparades (UTC) |
data |
TEXT | JSON med cellspänningar m.m. |
| Kolumn | Typ | Beskrivning |
|---|---|---|
id |
INTEGER | Primärnyckel |
timestamp |
TEXT | Tidpunkt då datan sparades (UTC) |
data |
TEXT | JSON med info om MPPT-enhet |
Initierar databasen med tabellerna ovan.
python3 init_db.pyLäser data från JBD/Overkill BMS via BLE, tolkar cellspänningar och sparar JSON till databasen.
node bms_reader_debug.jsExempel på sparad data (bms_data.data):
{
"cells": {
"cell0": "3.38",
"cell1": "3.384",
"cell2": "3.386",
"cell3": "3.388"
}
}Söker efter Victron SmartSolar via BLE och sparar info om enheten till databasen.
python3 mppt_reader.pyExempel på sparad data (mppt_data.data):
{
"device": "SmartSolar HQ2234K9G26",
"address": "E0:86:25:EA:F5:C0",
"timestamp": "2025-06-29T14:33:10.928755"
}Visar status på E-Ink-displayen:
- Tid och nätverksnamn
- IP-adress
- Databasstatus
- Senaste kända värden från BMS och MPPT
Skriptet kör även bms_reader_debug.js och mppt_reader.py automatiskt.
Systemd-tjänst: eink-status.service
Symlinkad i /etc/systemd/system/eink-status.service
Ursprungsfil i projektmappen: /home/dietpi/repos/dashHobby/eink-status.service
[Unit]
Description=E-Ink Startup Status Display
After=multi-user.target
[Service]
ExecStart=/usr/bin/python3 /home/dietpi/repos/dashHobby/startup_status.py
WorkingDirectory=/home/dietpi/repos/dashHobby
StandardOutput=journal
StandardError=journal
Restart=always
User=dietpi
Group=dietpi
[Install]
WantedBy=multi-user.targetAktivera tjänsten:
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable eink-status.service
sudo systemctl start eink-status.servicedashHobby/
├── bms_reader_debug.js
├── eink-status.service
├── eink_data.db (genereras)
├── init_db.py
├── mppt_reader.py
├── startup_status.py
├── status.json (genereras)
└── waveshare_epd_py/
└── epd5in79.py + epdconfig.py + drivrutiner
- Projektet kan testas både på Raspberry Pi Zero 2 W och i Termux (med proot).
- Statusdata lagras i SQLite och används för visning på displayen.
- Testdata kan användas vid avsaknad av hårdvara för utveckling.
- E-Ink-display visar klocka och IP
- BMS-data inhämtas och visas
- MPPT-enhet identifieras
- Systemd-tjänst för automatiserad start
- MPPT-data utökas med spänning/ström via BLE
- Historik och loggning via webbgränssnitt
- OTA-uppdatering och fjärrstyrning (eventuellt)