chomupashchuk / ariston-remotethermo-home-assistant-v2

Ariston NET remotethermo integration for Home Assistant based on API
MIT License
94 stars 22 forks source link

climate and water heater unavailable #19

Closed michtate closed 3 years ago

michtate commented 3 years ago

Hi,

after upgrade to recent version of plugin and HA (core-2021.6.6) climate and water heater entities became unavailable.

In logs I see 500 errors.

Logger: custom_components.ariston.ariston
Source: custom_components/ariston/ariston.py:2714
Integration: Ariston (documentation, issues)
First occurred: 10:01:10 (32 occurrences)
Last logged: 13:01:10

ariston action nok for _get_param: Unexpected code 500 received for the request _get_param
ariston action nok for _get_gas: Unexpected code 500 received for the request _get_gas

Regards ./Michał

chomupashchuk commented 3 years ago

Did you check if android or IOS has access to the boiler? It it permanent issue or a temporary one? Integration emulates remote access as via web page and it does not work if Ariston server is down or if server has problem connecting to the boiler.

If this integration does not work PERMANENTLY but official applications do, then you may set store_config_files to true and inside /config/http_folder there should be file with code 500 in file name, which have to be looked into. I'm using the integration with 2021.6.6 and it works fine, so it is either connectivity problem or specifics of your boiler and used version of the integration. If integration recovers the connection then it is completely normal behavior as I often get such errors and I reduce their frequency by setting polling to values between 1.2 and 1.6, which increases time between requests proportionally. It was just an observation that server might reject with codes 500 or 599 due to frequency of requests and not due to its contents and default values works for most, but not for all and might require tuning. But permanent issue might be due to specifics of a boiler (for example unsupported parameter sent), so that is the reason why I'm asking.

michtate commented 3 years ago

Hi,

the integration was working fine from Dec'2020. The Android Ariston app is working fine at the moment. As you said I've set the store_config_file option and have some errors. On get_main I get 500 error due to some security reasons. Attaching the error files. data_ariston_get_gas_500_error.txt[+2].tar.gz

chomupashchuk commented 3 years ago

Has integration also recovered or is it permanently down? As I've mentioned, not much can be done for occasional faults, so I'd like to understand more.

michtate commented 3 years ago

it's permanently broken since the upgrade.

michtate commented 3 years ago

also the some other entities became unavailable too:

chomupashchuk commented 3 years ago

sensors base data on same values as water_heater and climate, so it is normal. It seems that there is error Violated Postcondition (CheckId: 710201000021): Node "6.3.0.0" not found in "User" menu in parameters request, which should be _ARISTON_CH_WATER_TEMPERATURE, which seems to be not supported in your case. At least that is what I assume based on the data. I can try prepare prototype to test the theory, but I'm curious about data in data_ariston_get_main.json to see supported functions to understand what to check for.

chomupashchuk commented 3 years ago

It seems that your boiler does not like use of sensor.heatpump_ch_water_temperature. Try commenting it out.

michtate commented 3 years ago

It works!!!

Thank you so much, commenting the sensor.heatpump_ch_water_temperature made it. Thermostat is available again and rest of params seems to be getting back online again.

chomupashchuk commented 3 years ago

I'll consider analyzing result of specific request as it is not the first time that boiler does not work with specific sensors. It might be good to log error with list of supposedly unsupported sensors to save time for myself in the future. But I need to check how to parse the html reply properly, as it is not a JSON format and potentially can change (as it is more user oriented rather than hardcoded JSON for inter hardware communication).