2026-10-06
climatecontrolopen-source

Two-pipe air conditioning: keeping every mode without the units getting in each other's way

How a two-pipe system works

Many apartments and houses have not a set of separate split units but one shared system: one outdoor unit and several indoor units, one per room. That is how multi-split and VRV systems are built.

In a two-pipe system the outdoor unit is connected to the indoor units by two refrigerant pipes and at any moment works in one direction only: it either cools or heats. So all indoor units work in one direction as well.

2 pipesOutdoor unitcooling nowLiving roomcoolingStudycoolingKids' roomfanBedroomneeds heat — not possible
While the outdoor unit cools, the indoor units can cool or run the fan. Heating the bedroom with its air conditioner is not possible at that moment.

This is not a setting or an installation fault — it is how the system is built. Only heat recovery systems can heat some rooms while cooling others, and they cost noticeably more.

Who chooses: heat or cool

With one direction for everyone, someone has to choose it. One indoor unit is made the lead. Its mode decides what the others, the secondary units, are allowed to do:

Lead runsOther units may run
CoolCool, fan, dry
HeatHeat, fan
FanFan
DryCool, fan, dry

For example, while the lead cools, a secondary unit may cool, run the fan or dry, but it cannot heat. Select heating on its remote and the modes conflict — the unit simply does not run.

The problem

Different rooms almost never want the same thing. Picture it: in the afternoon the living room with its large windows has warmed up to 26 °C, while the bedroom on the shady side has cooled to 19 °C against a setpoint of 22 °C. The lead is in the living room and switches to cooling. From that moment the bedroom cannot be warmed by its air conditioner.

This situation is usually handled in one of two ways, and both work badly:

Living room (lead): 26 °C, cooling · Bedroom: 19 °C, setpoint 22 °CA remote in every roomThe bedroomselects heatingMode conflict —the unit stands stillCopy the lead modeThe bedroom getsthe lead's coolingCools a roomalready at 19 °CThree rulesThe bedroom unitruns the fanHeat comes fromthe heating
The same situation: the living room asks for cooling, the bedroom needs heat.
  • A remote in every room. Everyone picks a mode on their own. Whoever switched on first set the direction, and units with a conflicting mode stand still. From the outside the air conditioner looks broken.
  • The automation copies the lead's mode to every unit. No more conflicts — but now the bedroom unit dutifully cools a room that is already at 19 °C.

Either way the occupants lose what they paid for: one room gets no heat, in another the air conditioner works against them. The cause is the same — each room gets someone else's decision instead of its own.

The solution: three rules

The physics of the system cannot be changed: one direction for everyone. But within that limit every room can still get its own temperature if the job is split into three rules, each responsible for its own part.

1The leadpicks cooling or heatingfrom its own room,at most every 30 minutes2Every other unitdecides for itself: runin the allowed modeor just the fan3The heatingsupplies the warmthan AC cannot give now:a valve in every room
The lead sets the direction, the other units decide for themselves, the heating covers what the air conditioners cannot do.

Rule 1. The lead chooses the direction and leaves the system alone

In Auto the lead looks only at its own room. Half a degree warmer than the setpoint — it switches to cooling. Half a degree colder — heating. While the temperature stays between those thresholds, the direction does not change.

Why does the lead not drop to fan once its room reaches the setpoint? Because then every other unit could only run the fan too — that is the table above. And stopping at the setpoint is something the indoor unit does on its own.

Changing direction reverses the whole outdoor unit, which is hard on the compressor. So the automation switches it at most once every 30 minutes.

Rule 2. Every other unit decides for itself

A secondary unit does not copy the lead's mode. It looks at its own room and picks the best of what is allowed right now:

  • the lead cools, the room is hot — the unit cools;
  • the lead cools, the room is cool — the unit only runs the fan;
  • the lead heats, the room is cold — the unit heats;
  • the lead heats, the room is warm — the unit runs the fan;
  • someone switched on drying while the lead heats — fan for now; as soon as the lead turns to cooling, the unit starts drying by itself.

The automation also picks the fan speed — from how far the room is from the setpoint: more than 3 °C means full speed, more than 1 °C the medium step, anything closer the quiet setting. The air conditioner is loud only while it is catching up.

Rule 3. The warmth an air conditioner cannot give comes from the heating

If the room has radiators or underfloor heating with a valve, they are controlled separately from the air conditioners. The valve opens when the room is a degree below the setpoint and closes once it has warmed up to the setpoint. That way the bedroom from the example gets heat even while the whole system is cooling.

The thresholds are chosen so that heating and cooling never run in the same room at once:

Air conditionerlead is coolingfankeeps its current modecoolingHeatingvalveopensopen up to setpointclosed−1.5−1−0.5setpoint+0.5+1+1.50.5 °C margin
The valve closes at the setpoint, and cooling starts only at +0.5 °C. There is always a margin between the two.

What you get

  • No air conditioner works against its own room.
  • The panel or remote in every room keeps all modes — auto, fan, dry. If a mode is not available right now, the automation moves the unit to the nearest possible one, and the unit never just stands still.
  • A room the air conditioner cannot warm right now gets heat from the heating.
  • The outdoor unit changes direction at most once every 30 minutes.

What this does not solve

The physics of the system. While the lead cools, a room that needs heat is warmed only by the heating. If the heating is already off for the summer, that room waits until the lead switches to heating.

The choice of the lead. Its room sets the direction for everyone, so the lead should be the unit where people spend most of their time — not the room on the sunny side that asks for cooling every morning.

For engineers: the Wiren Board module

All three rules are implemented in a module for wb-rules 2.0 — about two hundred lines, MIT licence. A unit is a device name when its controls follow one naming scheme, or an object when some of them are named differently. Modes are KNX DPT 20.105 values.

The lead: direction with hold and a pause between changeovers.

JavaScript
if (t >= sp + half) wanted = MODE.COOL;
else if (t <= sp - half) wanted = MODE.HEAT;
// Inside the band the lead keeps its direction: dropping it to fan
// would lock every other unit into fan as well.
else wanted = direction !== null ? direction : t > sp ? MODE.COOL : MODE.HEAT;

if (wanted !== direction) {
  // A changeover reverses the whole outdoor unit - keep it rare.
  var wait = lastChangeover + changeoverMs - Date.now();
  if (direction !== null && wait > 0) {
    if (!recheck) recheck = setTimeout(function () { recheck = null; leadMode(); }, wait);
    return;
  }
  lastChangeover = Date.now();
}
setMode(lead, wanted);

A secondary unit: choosing within what is allowed.

JavaScript
// demand: how far the room is from the setpoint in the one
// direction this unit may act right now.
function choose(active, demand, current) {
  if (demand >= half) return active;
  if (demand <= -half) return MODE.FAN;
  return current === active ? active : MODE.FAN;
}

if (dev[unit.dry]) return setMode(unit, canCool ? MODE.DRY : MODE.FAN);
...
if (canHeat) setMode(unit, choose(MODE.HEAT, sp - t, current));
else if (canCool) setMode(unit, choose(MODE.COOL, t - sp, current));
else setMode(unit, MODE.FAN);

The module comes from a 72 m² apartment with five Daikin units on a two-pipe system and a Zennio Z35 panel in each climate zone. The version published here is a revision: the changeover pause is new, and every rule is checked by a test.

two-pipe-ac.js — MITThe 72 m² case: five Daikin units, one panel per zoneOne setpoint, three devices: the dead band in a single zoneKNX programming as a service

Get a Preliminary Estimate

Get an Estimate
CallViberWhatsApp