My central heating system has 2 zones:Zone 1: main part of house with thermostat in the living room - the thermostat can open/close a electric valve towards the floor heatingZone 2: basement area - with traditional on/off thermostat - a second thermostat can open/close a second electric valve hereUntil now I used traditional on/off thermostats and some relais to ensure either one or the other thermostats force the boiler to turn on when heating was required.

I want to switch over to OpenTherm and bought a NEST as thermostat in the living room and switch off the valve for the water towards the living room (permanent open). The NEST is now directly linked to the boiler using OpenTherm (all working fine for the living room). But this means the second thermostat (on the basement) can no longer tell the boiler it needs to be turned on. Key question is: how to fix this?

My idea is the following:- Use the OpenTherm GW between the NEST and the boiler- Connect the valve in the living room to the first GPIO connection of the gateway (configured as output - will need some electronics to boost the signals)- Connect the on/off switch thermostat of the basement to the other GPIO signal (configured as input)- Modify the firmware to do the following: * when the NEST in the living room needs heating, the signals are passed on as normal to the boiler and the gateway ensures the valve signal is turned on (GPIO pin on), so we also have warm water flowing that way. The valve will be closed when the NEST no longer requires heating (GPIO pin off) * when the on/off thermostat in the basement needs heating, it will turn on the value there (existing cabling + relais does this already) and signals the gateway (second GPIO pin) to increase the water temperature (overriding the NEST valves)

Anybody that has done something similar? I guess this could be done with a Domoticz script, but I rather have the logic inside a single device that is always turned on.

I think the firware changes are limited. Would this be a nice change to the firmware?

The NEST received firmware upgrades after installation. I will run a log and post, but I suggest I post any on that as reply in viewtopic.php?f=75&t=10897 as this topic is not about the NEST but about making a 2 zone system.

On this topic: The bottom line is I think I need is just 2 extra GA/GB commands:

Command 8: When GPIO is pulled low, force a execution as if the CS command is executed with a preconfigured EEPROM value. Maybe just use the value stored in SH (setpoint heating). When GPIO is pulled high force a CS=0Command 9: GPIO will reflect if the thermostat requests heat from boiler (probably modulation level>0) = 1 or when no heat is required = 0. What would be a good indicator?

Just for information. Here is the way I managed to get all of this to work (for those that are interested):

NEST heatlink (for zone 1):- OpenTherm interface of the heatlink connects to Gateway (regular install)- The NEST heatlink also has a relais contact (request heat from boiler). I connected this to a electric valve + 24 V AC transformer to open/close the warm water to the living room (zone 1) with the NEST boiler. This ensures the living room will not be heated when the 2nd zone kicks in

Second on/off thermostat in zone 2:- This one is connected to a +24V AC transformer to open/close the warm water to the basement (zone 2) and also a relais- The contacts of the relais are connected to the GPIO1 and GND pins of the gateway (with 1.5k pullup resister to the +5)

Gateway:- Load modified firmware (see below) that changes the meaning of the GA/GB=5 command: Instead of changing the thermostat setpoint when the GPIO level changes, we change the controlsetpoint to the value stored in AwaySetpoint- The modified firmware also forces MM=100 override with all commands from the NEST (normally the NEST uses the controlsetpoint to set the water temperature and sets the max modulation level either to 100 or 0 depending of the heat request status). We do not want the MM=0 to pass through to the boiler as we want to be able to warm zone 2 as well. The modified firmware sets MM=100 at reboot, so there is no need to issue that command on each reboot- Use SB=50 to set the SetBack temperature. The changed firmware will use this value to set the controlsetpoint (50 as temperature is fine for me, but it can be changed as needed)- Use the GA=5 command to program GPIO1 to listen to the relais from the thermostat in zone 2

End result is that each time the GPIO1 pin is pulled low by the on/off thermostat in zone2, the value stored in SB is used as target boiler water termperature. However, the gateway will send this information only when the NEST thermostat issues a Write-Data Control Setpoint command (which happens every 2:30 minutes)

Details on firmware modification (kudos to Schelte: this is extremely compact and efficient code. Great design!!)Download here:

1. NEST does not support reading and setting the room temperature. Not a huge problem, but it would be nice if these OpenTherm commands would be supported by NEST2. the NEST has two parts: Thermostat (in the room) and Heatlink (device next to boiler with OpenTherm wires). The two talk wirelessly. If for some reason the wireless connection is broken, the heatlink will maintain the OpenTherm protocol. However the "Write-Data Control Setpoint" commands are no longer issued. This means that the boiler no longer receives any updated data regarding the control setpoint and may decide to shutdown after some time out. The bottom line is that also zone 2 will no longer be heated.