ZuinigeRijder/SolisCloud2PVOutput

Transmission stopped without any changes

playbackandrewind opened this issue ยท 8 comments

From December 17th, the script stopped transmitting data to pvoutput.org without doing any changes. When I enable the debug mode in the logging_config.ini, I see that the script polls data from the Solis cloud, but no data will be transmitted to pvoutput. I checked all API keys and log in data, nothing has changed.

20240111 16:48:18: DEBUG: {"success":true,"code":"0","msg":"success","data":{"id":"xxxxx","userId":"xxxxx","sn":"xxxx","inverterMeterModel" ...

Any idea what could be wrong ? There's also absolute no debug output for transmitting data (failing or success).

Is the web interface of soliscloud showing data? Maybe no data is uploaded to soliscloud, so the scripts cannot read it?

Sorry for all the hassle, but I found a solution. The web interface was the right "hint".

The serial number of the inverter in the debug log was wrong. But why has the serial number changed ? Simple answer: I added a new power plant to this Solis cloud account, which caused -this time- a renumbering of the web interface / API order.

There were two plants in the beginning: PlantA and PlantB - Script worked great and transmitted data from PlantA.
I added PlantC - The script still worked fine and transmitted the correct data.
I added PlantD - Booooooom - Transfer stopped without seeing any cause.

Old order: PlantA = 0, PlantB = 1, PlantC = 2
New order after adding PlantD: PlantA = 3, PlantB = 2, PlantC = 1, PlantD=0

So I changed line 216 to:

station_info = json.loads(content)["data"]["page"]["records"][3]

And SolisCloud2PVOutput started working again, and serial number shown is now also correct.

Maybe it's possible to "add" a parameter for the number of the plant ?

Thx!

@playbackandrewind You can configure the soliscloud_inverter_index = 0 (default is 0), so you should have changed this to 3? If you have multiple inverters, the readme explains how to do this then. Or did you have this configured differently?

soliscloud_inverter_index = 3 didn't work for me, tried this first. See ->

C:\solis>soliscloud_to_pvoutput.py
20240111 21:33:02: ERROR: Exception: list index out of range, sleeping a minute
Traceback (most recent call last):
File "C:\solis\soliscloud_to_pvoutput.py", line 358, in main_loop
do_work()
File "C:\solis\soliscloud_to_pvoutput.py", line 235, in do_work
inverter_detail_body = get_inverter_list_body()
File "C:\solis\soliscloud_to_pvoutput.py", line 221, in get_inverter_list_body
inverter_info = json.loads(content)["data"]["page"]["records"][
IndexError: list index out of range

I changed station_info = json.loads(content)["data"]["page"]["records"][3] in the python source to get it working.

I have only one email/cloud-account with multiple plants connected, and not multiple accounts with only one plant connected as shown in your example, if I understand it correctly?

Not really, you need multiple PVOutput accounts when you have multiple solis inverters when you want to track them all.

But indeed I do not have currently a configuration item for the station_id_index and it is now hardcoded to 0. I will make a configuration item for that in the near future.

Issue should be solved in Release R1.14.0. Can you let me know if this works for you?

Tested and works for me! Thanks for your great support.

Last question: You're supporting Domoticz, which is not so common here. Is there a chance to see an MQTT connector or similar to store the data in a SQL Database (Homeassistant, ioBroker etc)?

@playbackandrewind I will close this issue and start a discussion here: #30