Epilykos Wiki

Troubleshooting

Fixes for the problems people run into most.

Start with the logs

Before anything else, have a look at Settings → Logs. For a stubborn problem, set How much to log to Debug, make the problem happen again, then download the Diagnostics file. It contains the recent log lines and your settings, with every secret blanked out, so it's safe to share when you ask for help. See Logs.

On Docker, docker compose logs -f shows the same log from the computer itself.

You can't reach the dashboard

What you seeWhat to do
epilykos.local won't open (EpilykosOS)Try the Pi's IP address from your router instead. If devices on your network can't reach each other at all, turn off the router's "AP isolation" or "client isolation" setting and restart it, or connect the Pi with an Ethernet cable. See Wi-Fi setup.
The box can't find your Wi-FiThe Pi 3B only sees 2.4 GHz networks, and won't see channels 12 or 13 until it knows its country. See Wi-Fi setup.
Nothing answers on port 3000 (Docker)Check that the container is running with docker compose ps, and read docker compose logs.
EACCES on /app/data or SQLITE_CANTOPEN when it startsCurrent images fix this themselves. On an older image, run sudo chown -R 1000:1000 ./data, then docker compose up -d.
Live updates stop, with closed before connection is establishedClear the app's old background worker (in your browser's site data for the Epilykos address) and reload. If you use a reverse proxy, check its WebSocket settings.

Signing in

What you seeWhat to do
The wizard says Epilykos is already set up, but you never chose a passwordSomeone else got there first. See If someone else set the password first.
SETTINGS_PASSWORD in a .env file is ignored (Docker)The compose file doesn't pass .env into the container. Put the password under environment: instead; see Install with Docker.
You've forgotten the passwordOn EpilykosOS, see Password and factory reset. On Docker, set SETTINGS_PASSWORD under environment:.
A two-step code is never acceptedCompare the box's clock with your phone's (the error message shows the box's time). Use a recovery code, or see Locked out of two-step sign-in.
Settings won't saveYour session has probably expired; sign out and sign back in.
Remote access won't switch onYour admin password is shorter than 12 characters. Set a longer one; see Security.

No data, or the wrong data

What you seeWhat to do
Nothing at all on the dashboardCheck that at least one source is switched on and reading: Settings → Metrics → All metrics shows when each metric last changed.
A card shows zeros or nothingThe metric picked on the card has to match exactly what the source writes.
The charts are emptyHistory builds up from the first readings, so give it two or three cycles (60 to 90 seconds). The energy charts and tables also need your metric roles.
The grid status card shows nothingSet the grid status metric to the metric that reads 1 or on while the grid is up.
Savings look too low after choosing a generator optionThe generator price is still 0; set it in Prices and savings.
The generator is missing from charts and costsMap Generator power and Daily generator energy in Metric roles.
Daily totals roll over at the wrong timeThe time zone is wrong. On Docker, set TZ or mount /etc/localtime (the first log lines show the active time zone). On EpilykosOS, use Settings → System → Time and storage.
The battery percentage jumps aroundIf your inverter guesses the charge from the voltage, try the battery estimate.

Modbus

What you seeLikely causeWhat to do
Connection refusedThe IP address or port is wrongCheck that the address answers (ping <ip>) and that port 502 is open.
TimeoutThe unit ID is wrongMost inverters use unit ID 1.
No dataThe registers aren't mappedPress Load Profile Registers and give every register a metric name.
CRC or checksum errorsThe baud rate doesn't matchMost inverters use 9600; Voltronic uses 2400.

There's more on the Modbus page.

Serial ports (RS232, RS-485, wired BMS)

What you seeWhat to do
No ports are foundCheck ls /dev/ttyUSB* and reseat the cable. On Docker, pass the adapter in with devices:; on Docker Desktop, attach it with USB/IP first.
Permission deniedOn Docker, add dialout under group_add:. Without Docker, run sudo usermod -a -G dialout $USER, then log out and back in.
Reads time outThe baud rate is wrong: 2400 for Voltronic, 9600 for SolaX, 19200 for VE.Direct.

See Install with Docker for passing adapters into the container.

Dongles

What you seeLikely causeWhat to do
TimeoutEpilykos can't reach the dongleCheck its Wi-Fi signal and ping its IP address.
Checksum mismatchThe serial number is wrongType it exactly as on the sticker; upper and lower case matter.
No dataThe wrong profile is selectedPick the profile for your inverter: a Solarman stick is not a Felicity TCP dongle.
No data from a Growatt stick (Docker)Port 5279 isn't publishedAdd - "5279:5279" under ports: and run docker compose up -d.

Bluetooth

What you seeWhat to do
Bluetooth unavailable: mount the host D-Bus socketAdd - /run/dbus:/run/dbus:ro to the volumes and recreate the container.
D-Bus denied access to BlueZAdd the host's bluetooth group ID under group_add: (getent group bluetooth tells you what it is). On Ubuntu, keep security_opt: apparmor=unconfined too.
There's no adapter, or it's switched offCheck bluetoothctl show on the computer; rfkill unblock bluetooth and bluetoothctl power on usually sort it out.
A scan finds nothingMove the adapter closer (Bluetooth reaches about 10 metres), close the battery's phone app, and scan again. On a Raspberry Pi 3, a USB Bluetooth adapter is more reliable than the built-in one.
A pack is found but not recognisedSet its type next to the MAC address; see Battery BMS.
Bluetooth doesn't work on Docker DesktopThat's expected; see Bluetooth on Docker Desktop.

MQTT

What you seeLikely causeWhat to do
Connection refusedThe broker isn't running, or the port is wrongCheck systemctl status mosquitto; the usual port is 1883.
Authentication failsThe username or password is wrongCheck them against your broker's configuration.
No dataNothing is being published on the topicWatch the broker with mosquitto_sub -t "#" -v.
A value shows up as textThe topic carries a JSON messageEach topic needs to carry a single value; see MQTT.

Still stuck?

Open an issue on GitHub, and attach the diagnostics file.

Last updated on

On this page