Re: Evohome + Opentherm + Viessmann Vitodens 100
Posted: Wed Jan 09, 2019 8:26 pm
I've managed to build the gateway firmware with a small and quick modification so that it treats the #57 command in the same manner as the #25 command. This disables the functionality of changing on the wire a write request of the thermostat of the CH max temperature, for sure this shortcoming can be improved upon but since I don't see evohome sending out this command as a write data command (only a read data is done from evohome to the boiler) the hack suits my purpose quite well.
And it works.
I can now override the #57 command response using SR=57:65,00 to pretend that the maximum boiler temperature is 65,00 degrees. Evohome then scales the control setpoint between some minimum and the fake maximum temperature of 65. Log extract:
Note that when the new max is introduced, evohome reads it another two times, maybe to convince itself.. But after this initial repetition all the next read requests are like before - one read data for #57 every now and then.
Note that any subsequent read data from the thermostat contains the new 65 degree value as parameter. Which I still think is strange.
Next step would be to make this setting survive reset, save it in eeprom, or maybe just hard-code a convenient default temperature in to the firmware.
And it works.
I can now override the #57 command response using SR=57:65,00 to pretend that the maximum boiler temperature is 65,00 degrees. Evohome then scales the control setpoint between some minimum and the fake maximum temperature of 65. Log extract:
Code: Select all
22:04:35.399535 Command: SR=57:65,00
22:04:35.440532 SR: 57:65/0
22:04:37.903679 T80190000 Read-Data Boiler water temperature: 0.00
22:04:38.195700 BC01942CD Read-Ack Boiler water temperature: 66.80
22:04:38.437733 T90014C00 Write-Data Control setpoint: 76.00
22:04:38.706759 B50014C00 Write-Ack Control setpoint: 76.00
...
22:04:58.382856 T80190000 Read-Data Boiler water temperature: 0.00
22:04:58.718843 BC019434D Read-Ack Boiler water temperature: 67.30
22:04:58.925945 T90014C00 Write-Data Control setpoint: 76.00
22:04:59.217079 B50014C00 Write-Ack Control setpoint: 76.00
...
22:05:02.716139 T80190000 Read-Data Boiler water temperature: 0.00
22:05:03.039131 BC019434D Read-Ack Boiler water temperature: 67.30
22:05:03.262193 T90014C00 Write-Data Control setpoint: 76.00
22:05:03.545155 B50014C00 Write-Ack Control setpoint: 76.00
...
22:05:07.576364 T00395000 Read-Data Max CH water setpoint: 80.00
22:05:07.885404 BC0395000 Read-Ack Max CH water setpoint: 80.00
22:05:07.905126 AC0394100 Read-Ack Max CH water setpoint: 65.00
22:05:08.125435 T00394100 Read-Data Max CH water setpoint: 65.00
22:05:08.385432 BC0395000 Read-Ack Max CH water setpoint: 80.00
22:05:08.391833 AC0394100 Read-Ack Max CH water setpoint: 65.00
22:05:08.655487 T00394100 Read-Data Max CH water setpoint: 65.00
22:05:08.890453 BC0395000 Read-Ack Max CH water setpoint: 80.00
22:05:08.910505 AC0394100 Read-Ack Max CH water setpoint: 65.00
...
22:05:10.808619 T80190000 Read-Data Boiler water temperature: 0.00
22:05:11.066606 BC019434D Read-Ack Boiler water temperature: 67.30
22:05:11.352594 T90013E00 Write-Data Control setpoint: 62.00
22:05:11.562626 B50013E00 Write-Ack Control setpoint: 62.00
...
22:05:12.990673 T80190000 Read-Data Boiler water temperature: 0.00
22:05:13.224551 B401943CD Read-Ack Boiler water temperature: 67.80
22:05:13.519715 T90013E00 Write-Data Control setpoint: 62.00
22:05:13.719756 B50013E00 Write-Ack Control setpoint: 62.00
...
22:05:10.808619 T80190000 Read-Data Boiler water temperature: 0.00
22:05:11.066606 BC019434D Read-Ack Boiler water temperature: 67.30
22:05:11.352594 T90013E00 Write-Data Control setpoint: 62.00
22:05:11.562626 B50013E00 Write-Ack Control setpoint: 62.00
...
22:05:12.990673 T80190000 Read-Data Boiler water temperature: 0.00
22:05:13.224551 B401943CD Read-Ack Boiler water temperature: 67.80
22:05:13.519715 T90013E00 Write-Data Control setpoint: 62.00
22:05:13.719756 B50013E00 Write-Ack Control setpoint: 62.00
...
22:05:18.391972 T80190000 Read-Data Boiler water temperature: 0.00
22:05:18.702003 B401943CD Read-Ack Boiler water temperature: 67.80
22:05:18.918069 T90013E00 Write-Data Control setpoint: 62.00
22:05:19.206057 B50013E00 Write-Ack Control setpoint: 62.00
...
22:05:22.709280 T80190000 Read-Data Boiler water temperature: 0.00
22:05:23.036279 BC01942CD Read-Ack Boiler water temperature: 66.80
22:05:23.253401 T90013E00 Write-Data Control setpoint: 62.00
22:05:23.527313 B50013E00 Write-Ack Control setpoint: 62.00
...
22:05:28.122525 T80190000 Read-Data Boiler water temperature: 0.00
22:05:28.381581 B401940E6 Read-Ack Boiler water temperature: 64.90
...
...
22:08:09.569913 T00394100 Read-Data Max CH water setpoint: 65.00
22:08:09.754827 BC0395000 Read-Ack Max CH water setpoint: 80.00
22:08:09.770608 AC0394100 Read-Ack Max CH water setpoint: 65.00
Note that any subsequent read data from the thermostat contains the new 65 degree value as parameter. Which I still think is strange.
Next step would be to make this setting survive reset, save it in eeprom, or maybe just hard-code a convenient default temperature in to the firmware.