bertmelis / VitoWiFi

Communicate with Viessmann boilers using the optolink for ESP8266 and ESP32
MIT License
118 stars 39 forks source link

V1: protocol blocked after invalid DP address #67

Closed s0170071 closed 10 months ago

s0170071 commented 3 years ago

Installation specifics

ESP8266 + Vitotronic200 + Vitocal300

Symptom

What happens? (crash, unresponsive, nothing at all...)
I cannot communicate with the heater when I use a wrong DP address. It does not recover. As I am currently scanning the heater for all responsive data points, this cannot be avoided by nature.

When does it happen? (after several hours, immideately...)
immediately

What would you expect?
It should recover when I use a correct address, instead I need to reboot.

I have a workaround. In Optolink300.cpp, change line 285 in function void OptolinkP300::_receiveHandler() from

_setState(RESET);

to

_setState(IDLE);

I have to admit I did not dig too deep into the protocol stack and I cannot explain whats wrong with reset, but it did solve my issue. Bert, do you know why RESET is inappropriate at this point ? Technically a wrong DP address is not an error.

bertmelis commented 3 years ago

I'll have a look, but I'm leaving for holiday and only return in 3 weeks...

bertmelis commented 10 months ago

Stale issue, feel free to reopen of the issue is still relevant.