wichers / esphome-comfoair

ESPHome configuration to drive Zehnder ComfoAir devices.
GNU General Public License v3.0
57 stars 30 forks source link

Filter reset command does not reset filter hours #12

Closed adorobis closed 2 years ago

adorobis commented 2 years ago

Hello, I'm using this method to control the Comfo Air 350 unit and all works great except the function to reset the filter status. It resets it but after an hour it goes back to the filter full status. When digging deeper I've noticed that it does not reset the filter hours counter (available via command xDB) so when it increases by one hour the filter goes to full status again. Any idea what could be wrong or how to fix it?

wichers commented 2 years ago

I checked with a commercial implementation, it really should be no more than something like this:

static const uint8_t COMFOAIR_SET_RESET_REQUEST = 0xdb;
static const uint8_t COMFOAIR_SET_RESET_LENGTH = 0x04; 

...

void reset_filter(void) {
    uint8_t reset_cmd[COMFOAIR_SET_RESET_LENGTH] = {0, 0, 0, 1};
    this->write_command_(COMFOAIR_SET_RESET_REQUEST, reset_cmd, sizeof(reset_cmd));
} 

This doesn't work for you?

adorobis commented 2 years ago

It resets the filter status but after an hour it goes back to filter full status. Looking at the filter hours I can see that it is not getting reset to zero. Not sure if anybody had similar experience - maybe some issue with my unit's controller or something...

adorobis commented 2 years ago

Btw, thanks to author of openhab binding for comfoair I was able to fix this by sending command that simulates 2sec "Mode" button press. It works ok now for me (it is x37 command with Number 82 in the second byte of data block means pressing the modus button by 2080 milisec. Full command is 07 f0 00 37 07 00 82 00 00 00 00 00 6d 07 0f).