Troubleshooting¶
Invalid register data on meter detection¶
Symptom. Errors like these during startup device detection:
ERROR: Skipping meter2 due to invalid register data in device info
ERROR: Failed to decode register 'c_manufacturer' at address 40123: 'utf-8' codec can't decode byte...
Cause. Usually one of:
- a meter position is enabled in the configuration but no physical meter is installed there,
- the meter reports uninitialised or corrupted data,
- or there is a communication problem with the meter.
If you have no meter at that position, disable its detection. The meter list has one entry
per slot:
modbus:
meter:
- true # meter0
- false # meter1, disable if not installed
- false # meter2, disable if not installed
Restart the service afterwards.
If you do have a meter there, check the physical connection between inverter and meter, confirm the meter is powered, look for communication errors in the inverter's own log, and contact SolarEdge support if it persists.
Only that device is skipped
The service keeps monitoring everything else when one meter fails to respond.
The inverter is unreachable at startup¶
The service does not exit. It retries with exponential backoff, starting at
startup_retry_delay and doubling up to startup_retry_max_delay, and never gives up. Both are
documented under Modbus.
If it never connects, check that host, port and unit are right, and that Modbus TCP is
enabled on the inverter. It is off by default on many SolarEdge units and has to be switched on
in the installer menu or SetApp.
A status keeps flapping between online and offline¶
Raise debounce_cycles in the section of the service that is flapping. It requires that many
consecutive failed checks before offline is published:
The setting exists for modbus, monitoring, wallbox, weather and storage. It is not a top-level option.
Permission denied in Docker¶
Covered on the Docker page,
including the caveat that the automatic ownership fix loosens the mode of secrets.yml.
A secret is not found¶
The error names a secret that is missing from secrets.yml. Compare both files:
Names are case-sensitive. !secret mqtt_password matches mqtt_password, not MQTT_PASSWORD.
Values containing @, :, # or a leading ! need quotes.
The forecast never produces anything¶
Forecasting needs at least 60 hours of continuous training data, plus location, storage and weather all configured. A gap longer than an hour prevents that stretch from becoming training data. A fresh installation is quiet for the first few days by design.
Check that the optional dependencies are installed:
The Docker image already includes them.
Weather automations broke after an upgrade¶
The weather/current topic now publishes canonical field names. temp became temperature,
clouds became cloud_cover, and weather_id became the WMO condition_code. The full list
is under Weather.
Getting more detail¶
Then read the log where your deployment puts it: the terminal, docker logs, or
journalctl -u solaredge2mqtt -f.
Still stuck¶
- Ask on Discord.
- Open a GitHub issue with your
configuration.yml, secrets removed, and the relevant log lines.