Just thought I'd stick some findings here from my fiddlings with evohome and a cc1101 module as I was hunting for them without success so it might be useful to someone.
My setup is a slightly old condensing boiler (Rinnai/Atag E32S) - it claims to support OpenTherm but apparently it's an old version so when I tried the OpenTherm bridge it didn't work.
I'm using a slightly modified version of smar's evohome-Listener gateway to separate out some of the messages that are combined on the original script ( https://github.com/thigger/evohome-Listener )
I use OpenHAB to listen to the MQTT messages and have an ESP8266 sat next to the boiler controlling a digital potentiometer over SPI. That digital potentiometer emulates an outside temperature sensor. So when I want the boiler temperature to increase I "tell" the boiler it's cold outside, and when I want a low temperature I "tell" the boiler it's warming up.
The OpenHAB script takes into account the OpenTherm messages (they're still broadcast if you tell it you have an opentherm module even if there isn't one there) and the boiler relay messages, to try to keep the heat demand at about 80% (if it doesn't turn off every now and again then my boiler starts to ramp up the temperature) - and it seems to work fairly successfully.
Happy to share details of the setup, though I imagine most people are using more modern boilers that support opentherm properly! (though even then my system avoids the issue of it ramping up to high temperatures every morning).
My other work has been playing around with changing hot water settings. We have stored hot water from the same boiler. I wanted to run the hot water at a relatively economical temperature, but my wife complained that her showers were running cold too quickly (she's one of those!)
I've switched my nano to evofw3 and am able to control the DHW in two ways by using these commands (send to evohome/gateway/command via MQTT)
Code:
{"command":"dhw_temperature", "arguments" : {"dev1":"07:016202","dev2":"--:------","dev3":"01:067930","payload": "000FA0"},"wait_for_ack":false}
Where dev1 is the DHW sensor, and dev3 is the controller - tells the controller that the hot water has dropped to 40C. This causes it to fire up and it will stay on until it reaches the set temperature. This is useful when the hysteresis (differential) has allowed the temperature to drop, as it will now carry on all the way back up to the top of the band. When it gets close to the set temperature, the DHW sensor seems to send out more temperature messages which will convince the controller to back off.
Code:
Sets to 65:
{"command_code":"0x10A0", "send_mode":"W", "arguments" : {"payload": "001964000000"},"wait_for_ack":false}
Sets to 55:
{"command_code":"0x10A0", "send_mode":"W", "arguments" : {"payload": "00157C000000"},"wait_for_ack":false}
Changes the set DHW temperature (you can't change the differential). The important bit is the 1964/157C which is the temperature you're after, in hex, multiplied by 100. 1770 is 60C.
Thought it might be useful to someone so leaving it here! Thanks for everyone's work on this - it makes a good system even better.