Skip to content

DiscoveryError

Robin Wohlers-Reichel edited this page Jun 10, 2020 · 6 revisions

Troubleshooting

At start-up, the library auto-discovers which inverter it is connecting to. However, the connection details of the inverter may be wrong, addressing another network device, or the inverter is not supported yet.

During discovery, the library attempts to connect to the inverter with each 'Inverter' configuration it understands. It uses the first one which does not throw an exception.

Intepreting DiscoveryError Failures=

Failures= is a list of all of the discovery attempts made and why they failed. Each message is accompanied by the inverter class used.

Follow the instructions for the first InverterError in the list below that you are able to find the whole Failures list.

InverterError('Received malformed JSON from inverter', '<something>')

Able to connect, and valid JSON was received. However, the library does not know about this JSON schema. Follow the instructions for 'Another Server' first, and if that does not work, take a look at 'Inverter not Supported yet'.

InverterError('Received non-JSON data from inverter endpoint', '<something>')

Able to connect to a host, but the response does not seem to be valid JSON. Maybe the connection details are for another server on the network. Follow the instructions for 'Another Server' below.

InverterError('Could not connect to inverter endpoint', '<something>')

Unable to connect to anything with these connection details. Maybe the IP address or hostname is wrong, the inverter is not connected to the network, or there is no route to the inverter. Follow the instructions for 'Network Issues' below.

Steps

Network Issues

  1. Try pinging the inverter. If this does not work, the inverter may not be on the same network.
  2. Check if your inverter has a pocket Wifi or pocket LAN adapter.

If your inverter has a 'pocket WiFi' or 'pocket LAN' adapter, there is some more advanced network setup required. See the following links for help:

Another Server

The connection details you have entered for the inverter may be incorrect. Try connecting with a browser to check if it might be another server on your network.

Inverter not Supported Yet

You will need to collect some data from your inverter to help us add your inverter to the library. Then, make a new Github Issue on this project and include this information.

We need to answer the following questions to add a new inverter:

  • What is the endpoint for the real time api
  • What is the data format for the real time api response

We currently know about two main endpoints for the real time api:

  1. curl http://${INVERTER_IP}/api/realTimeData.htm
  2. curl -X POST http://${INVERTER_IP}/?optType=ReadRealTimeData

You can try running the curl commands above. One of them might work and then you can include the output in the GitHub issue (remember to obfuscate your serial number).

Title your Issue Add Support for ${INVERTER MODEL}.

Now the fun challenge: there is likely to be a Data array in the curl output. Each number in this array is a sensor value.

You will need to determine which sensor values correspond to which element in the Data array. One of the existing inverters might already have most of the right values. You can see an example of this mapping here.

Please include this information in the issue.

In the example, the 'PV1 Current' is the 0th element in the Data array and so on.

If these curl commands don't work, then you will need to do some spelunking and find the endpoint.

Feel free to hit us up on discord for some help: https://discord.gg/y39XdEp