hultenvp / solis-sensor

HomeAssistant integration for the SolisCloud PV Monitoring portal via SolisCloud API
Apache License 2.0
217 stars 45 forks source link

sensor.solis_energy_today stopped working (becomes unknown) #383

Closed khangwei closed 2 months ago

khangwei commented 2 months ago

Starting today (27 August)

sensor.solis_energy_today stopped working. I am not sure why. No value is reported . When I checked my Solis App and tried to tally against the entities on my HA, I realized this value is now reported under sensor.solis_daily_grid_energy_used which sounds wrong to begin with.

I assume nothing in this integration changed, so it must be at Solis API...

Anyone having the same issue as me?

Thank you

jmason commented 2 months ago

It's not across all users, at least -- I'm still seeing correct values under solis_energy_today.... odd!

hultenvp commented 2 months ago

Same here, still working. Please check the logs and see what the test script does https://github.com/hultenvp/solis-sensor/tree/master/test

khangwei commented 2 months ago

thanks for your reply. sorry for the silly question but how do i use the test script?

hultenvp commented 2 months ago

The doc says look at the wiki ;-)

wiikka commented 2 months ago

For me everything worked until this morning, and now integration doesn't work anymore. I haven't made any updates nor restarts between last evening (when everything worked) vs this morning (when stopped to work)

CraigCallender commented 2 months ago

Looks like the issue (for me) is that no inverters are found: image

And it'll be somewhere in here. I'm taking a look at this function to see what I can find out:

async def fetch_inverter_list(self, plant_id: str) -> dict[str, str]:
"""
Fetch return list of inverters { inverter serial : device_id }
"""

device_ids = {}

params = {
    'stationId': plant_id
}
result = await self._post_data_json('/v1/api/inverterList', params)

if result[SUCCESS] is True:
    result_json: dict = result[CONTENT]
    if result_json['code'] != '0':
        _LOGGER.info("%s responded with error: %s:%s",INVERTER_DETAIL, \
            result_json['code'], result_json['msg'])
        return device_ids
    try:
        for record in result_json['data']['page']['records']:
            serial = record.get('sn')
            device_id = record.get('id')
            device_ids[serial] = device_id
    except TypeError:
        _LOGGER.debug("Response contains unexpected data: %s", result_json)
elif result[STATUS_CODE] == 408:
    now = datetime.now().strftime("%d-%m-%Y %H:%M GMT")
    _LOGGER.warning("Your system time must be set correctly for this integration \
    to work, your time is %s", now)
return device_ids
CraigCallender commented 2 months ago

Most likely it's a solis_cloud API issue. Running the test script results in a response from the API on line 67 of (station_id and inverter_sn have been masked):

inverter_detail(station_id= 12345678901234, inverter_sn= 43210987654321):  Failed with: API returned an error: Communication error. Please refresh and try again later, error code: None, response None
CraigCallender commented 2 months ago

I've logged a ticket with Solis Support. It's often a struggle to get them to forward it to their cloud team (the support email is more for support setting up Inverters, etc...). But I'll keep the thread updated. Ticket (not sure you'll be able to see it)

hultenvp commented 2 months ago

Thanks @CraigCallender for following up with them. What is odd is that it only fails for a subset of people. I have no problems at all, for example. It could be anything on their backend, but I suspect one of their server instances is down.

I closed the other ticket (#384 ), but I'll leave this one open for anyone to update on status. But I consider this an API issue and have labeled to not a bug

ricardito62 commented 2 months ago

Was working for me until this morning (so, while failing for a subset of people, it may be a growing subset…)

Edit: may be irrelevant, but Solis app still works

deligatedgeek commented 2 months ago

Same happened to me this morning. Have tweeted them, but not sure they care that much

conallob commented 2 months ago

Another user who has no data in Home Assistant as of today, 2024-08-29. SolisCloud v4.3.9 does indeed work though.

One interesting observation after I installed V3.6.0 of this integration is I got promoted to re-auth to SolisCloud. I'm unable to do so, as my PlantID appears to be in hexadecimal, but the integration form is looking for a numberic ID, in base10

strickersuk commented 2 months ago

Definitely a growing subset, me too.

OctoStu commented 2 months ago

Same here. soliscloud.com and the app are fine. It's just my HA integration that isn't working.

Annoyingly, I can't view my API key on soliscloud.com as the verification email isn't coming through.

hultenvp commented 2 months ago

Another user who has no data in Home Assistant as of today, 2024-08-29. SolisCloud v4.3.9 does indeed work though.

One interesting observation after I installed V3.6.0 of this integration is I got promoted to re-auth to SolisCloud. I'm unable to do so, as my PlantID appears to be in hexadecimal, but the integration form is looking for a numberic ID, in base10

Hi Conall, please follow the steps in the installation manual. https://github.com/hultenvp/solis-sensor PlantID is the 19-digit number from the plant detail URL on SolisCloud.

Maybe reauth is the way to go for everyone observing issues?

strickersuk commented 2 months ago

I tried to reauth but got an error, for clarification this was using the 19 digit number.

hultenvp commented 2 months ago

@strickersuk You mean you requested a new API key?

strickersuk commented 2 months ago

No, tried to reinstall using the existing? Is it worth a service request for a new one?

hultenvp commented 2 months ago

Not sure if it said before but the apiManage page now explicitly states only for Organization leaders: image

I sincerely hope they are not in the process of revoking access for end-users

hultenvp commented 2 months ago

@strickersuk no service request, I only mean the steps on the apiManage page; pressing the activation button, verification mail etc.

hultenvp commented 2 months ago

This part:

strickersuk commented 2 months ago

Yes, tried that and used my existing API keys.

hultenvp commented 2 months ago

Yes, tried that and used my existing API keys.

You did not get a new key and secret?

OctoStu commented 2 months ago

got my api key. interested to see if anyone else is unable to re-auth

image

strickersuk commented 2 months ago

Yes, tried that and used my existing API keys.

You did not get a new key and secret?

Tried to reauth using the API key and secret and got the same error as OctoStu above.

wiikka commented 2 months ago

I was playing with soliscloud_test.py and was able to get some data out by calling /v1/api/userStationList with body {"sn":"xxx"}. So obviously authentication is not an issue.

strickersuk commented 2 months ago

It just came back.

wiikka commented 2 months ago

Yes, data again visible in HA!

hultenvp commented 2 months ago

Somebody at ginlong turned a server off and on again ;-)

OctoStu commented 2 months ago

back in too. thanks for coming on that journey with me, everyone 👋

dpgh947 commented 2 months ago

Well that was an hour of messing around collecting debug logs that I needn't have bothered with! :-)

I updated to the new 3.6, and it wouldn't connect. Checked the solis app, that was fine. So I collected some logs, and then fell back to previous version, and that didn't start either. Collected some more logs from that, thinking "what has the new version done to my account?" , then realised looking at history that it hadn't worked at all this morning. Then found this thread just as it started working again. Anyway, installed 3.6 again and all seems good now. Great timing!

khangwei commented 2 months ago

The doc says look at the wiki ;-)

thank you for this... tried to follow but am getting this error:

image

hultenvp commented 2 months ago

Use pip to install the requests package.

khangwei commented 2 months ago

Use pip to install the requests package.

thank you so much. just tried the test script and all looks OK.

in verbose mode..

I could find my current generation: "etoday": 18.8, "etoday1": 18.8,

which can be found here : image

and oddly, the previous entity i used is unknown! image

any idea which field should i look out for in verbose mode for solis_energy_today?

khangwei commented 2 months ago

just want to report that everything is now back to normal. I have my solis energy today back... i did not change anything.

crryp commented 2 months ago

For me this just happend after i did update the solis intergration to the latest version.

Daily usage = unknown

I read in the comments for some it gets back somehow? Will see if it does for me

The grid usage does show the daily value also mentioned in another comment.

crryp commented 2 months ago

It went back the next day! 0:00 it was reset to zero!