PVOutput.org uploader for the following Samil SolarLake TL-PM series (only tested on SolarLake 15000TL-PM).
This is a fork of mhvis/solar(https://github.com/mhvis/solar) Since mhvis/solar was not compatible with the SolarLake TL-PM series, I reverse engineered the protocol with Wireshark.
- Ensure both the system you're running this script on and the inverter are on the same network.
- Ensure Python 3 is installed (needed for this script).
- Obtain your PVOutput.org API key and system ID and put this in
samil_upload.ini
. If you have multiple inverters, see the section on multiple inverters configuration. - Run
samil_upload.py
(for Linux:./samil_upload.py
).
If you are using a Linux distro with SysV (/etc/init.d
) like the Raspberry Pi
you can use a service script to run it automatically on startup.
See here. Alternatively you
could also make a cron entry: run crontab -e
and add
@reboot /path/to/samil_upload.py
to the cron file.
If your system has multiple network interfaces, you can optionally force the
script to use the correct one by specifying the system's IP address on the
network in samil_upload.ini
(should not be needed).
For using multiple inverters, you add a section for each inverter, in which you can specify the inverter serial number or IP address. The settings in the DEFAULT section apply to all inverters (useful for the API key). These can also be overridden in an inverter section. When a new inverter is found in the network, it is matched to all sections with equal and/or empty serial number and IP address. A section will only match one inverter, which is the first inverter found in the network that applies to the section filter. Thus if you have multiple sections without a specified serial number and IP address, the first inverter found is matched to all these sections.
Here are some examples:
[DEFAULT]
# Number of minutes between uploads
Status interval = 5
# Interface to bind to, optional
Interface IP =
API key = YourApiKey
System ID = YourSystemId
Note: filtering by serial number is not yet implemented! Use IP address instead.
When multiple sections point to the same PVOutput system ID, the data of each section is combined before it is send to PVOutput. The energy data is accumulated and all other data (temperature, voltage) is averaged.
When the serial number is ommited, this configuration will behave differently: the first inverter that is connected will match both systems (since both systems don't have serial number or IP address specified). Therefore only the data of that first inverter is combined (doubled) and sent to PVOutput.
[DEFAULT]
Status interval = 5
API key = AnkieIsLiev
System ID = 44819
[System1]
Serial number = DWB8080SDF
[System2]
Serial number = HELLO
[DEFAULT]
Status interval = 5
API key = NoortjeOok
[System1]
System ID = 12345
IP address = 192.168.80.30
[System2]
System ID = 12346
IP address = 192.168.80.31