Heating/Cooling blueprint for dual-zone setup?

I was looking into this blueprint for heating/cooling:

This blueprint looks great, I was planning to create a lightweight heat/cool automation, but looks like this is the gold standard.

I searched a bunch on this thread and elsewhere, but still can’t quite figure out my use case / particular setup.

I have a single outdoor unit and two separate head units on different floors, that have completely different controls. This is because the floors can have drastic temperature swings (upstairs 15 F hotter than downstairs).

Since I just have a single outdoor unit, the upstairs may be calling for cooling when downstairs is trying to heat. Only one can “win”, and the other ends up in “standby”, doing nothing. I’m hoping to keep the zones generally in sync.

My general algorithm would be something like this:

let differenceInUpstairsDesired = # difference in desired upstairs temp vs actual
let diifferenceInDownstairsDesired = # difference in desired downstairs temp vs actual


if downstairsAirHandler is in standby
  if differenceInUpstairsDesired > diifferenceInDownstairsDesired
     # keep downstairs in standby, re-evaluate in 5 minutes
  else
     # make upstairsMiniSplit match mode of downstairsAirHandler
  end
end 

It feels a bit brittle, hence I’m looking for other options. I didn’t see a ton of other messages with similar setups. I’m wondering if its because I’m just overthinking these, and I should be forcing them to always be the same mode, or something to simplify this.

It’s winter right now, so it’s not exactly urgent, but during the shoulder months it can be quite annoying as it’s hard to keep both zones at a comfortable temp.

Has anyone had success with this topic, or used Advanced Heating Control for this use case?

Take a look at GitHub - oyvindkinsey/dual_zone_hvac_controller: Smart thermostat tailored to dual airhandlers with a shared condenser. · GitHub

This is designed to work around the specific problems that comes with dual-zone/single condenser, which includes that no zone is ever truly off. That means that if one zone hits the target and the other zone takes over, the first zone continues to be affected.

This components solves this by creating two virtual thermostats that wrap the two real ones (I personally use GitHub - echavet/MitsubishiCN105ESPHome: ESPHome firmware inspired by GeoffDavis’s esphome-mitsubishiheatpump, directly integrating the SwiCago library within its codebase. · GitHub to control both of my air handlers), and which adjusts the target and fan speed of both to achieve the target temperatures.