
Yes, I know this sounds like we’ve shoved AI somewhere it doesn’t belong but hear me out, it might not be quite as mad as it sounds.
Our office isn’t perfect. It’s nice but there’s certain compromises we just can’t justify fixing properly.
The main bugbear is one we can all relate to: It’s either too hot or too cold, and as soon as someone changes the air conditioning you’ve got a mutiny on your hands.
When we took on the lease, the Cat A fitout had been done without any regard to partitioning the space off into places to meet and as such we’ve ended up with a nonsensical layout in terms of HVAC.
The dream is, of course, each room or partition gets its own, ideally individually controlled air conditioning system and ventilation, ideally with heat recovery and controllable bypass.
The reality is that we’ve got an HVAC system that someone has plonked in a big open space and specified on the basis of “that’s probably enough BTUs” and scarpered.
The layout

There’s two outdoor units (compressors) on the roof, each feeding three indoor fan coil units each (the red and blue ones marked FC on the floorplan).
It’s a two-pipe system meaning each group of fan coil units has to be operating in the same mode. You can probably start to see where the issues arise.
Want to heat the main office space and cool room one? No chance, you’ll be cooling bits of the main office and rooms two and four at the same time. It also has a fantastic design feature that lets you have one outdoor unit fight the other one if you set one to cool and one to heat. Great if you enjoy robot wars, less great if you’re paying the electricity bill or care about the environment.
As well as the outdoor units, each of the fan coil units have a fresh air supply fed into the back of them from the outside via two separate mechanical ventilation heat recovery units. They’re split in the same way (thankfully!).
MHVR (mechanical ventilation heat recovery) systems are interesting, they allow heat exchange between incoming and outgoing air so rather than just blasting freezing cold air into the office, they let you heat the incoming air using stale, warm air that is being extracted. This helps with energy efficiency.
The fan coil unit with blue lines going to rooms two and four has ducting attached to it that distributes treated air into rooms two and four.
The setup is fundamentally imperfect. You can’t use a thermostat on each outdoor unit/group of indoor fan coil units to regulate temperature. Room one has a whole fan coil unit to itself, meaning that it will heat/cool incredibly quickly compared to the main office.
There is a “proper” fix, but it’s really expensive
We did go out and get a quote to replace the entire system with a three-pipe (can heat + cool individual fan coil units) setup and it was… a lot. Like £100k+ a lot. Given we lease the space, that’s a whole lot of money to solve the “it’s a bit warm/cold in this meeting room” problem. Don’t get me wrong, if money was no object I’d love to just go ahead and do it but the payback feels like it’s a long way away.
So we’re left with an imperfect system, one that isn’t as simple as “if this, then that”. We’re left with a system that requires compromise, and compromise is actually quite hard to write code for. Compromise requires reasoning. And we all know what’s pretty good at reasoning…
Throw AI at it
Enter the Claude API. If we feed it enough information about what’s going on, we can delegate the reasoning required to make intelligent decisions on an ongoing basis to it.
We have a wealth of data being pulled from various sensors in our office already that we can put to work here. The basic “how hot is this room” is fine but it misses some of the subtle cues we can introduce to make the system truly efficient.
Here’s what we fed into Claude to help it make informed decisions:
- Temperature data for each room, using multiple sensors to gather an average for a given space
- CO2 in the air to understand if the air is stale or not
- Today’s peak forecast temperature
- Current solar panel power output as a proxy for solar thermal gain
- Presence sensor information so it knows when people are in which rooms (or whether anyone’s in the office at all)
- The calendars for each meeting room, so it knows when people are likely to be using them in future so it can adjust its decision making process accordingly
We then gave it tools that let it control:
- The mode of each AC system between heating, cooling, fan-only and off, as well as the speed of the fans in the indoor fan coil units
- The MHVR fresh air ventilation systems, how fast the fans in them are running and whether the heat recovery system should be bypassed or not to allow natural ventilation to cool a space without engaging the air conditioning
We also gave it a textual description of each control and how it would theoretically affect each room.
I’ve been curious about thermal modelling in real-world built environment scenarios for a while but I’ve always been put off implementing anything because the real world is never perfect. You can build a great model until someone opens the window and ruins it.
Rather than continue to be scared off by an imperfect world, I’ve decided to embrace it with this implementation. The instructions as to how a building works are quite theoretical and would be much more effective if they were backed up by real world measurements and science. I can tell you when the sun’s shining but I have absolutely no idea how many degrees a “sunny” day in April at 4pm will increase the temperature of a given room in our office.
Rather than try and model everything up-front, we can feed the LLM the consequences of its own actions and let it write its own rules. Yes, that’s right, the air conditioning has become sentient.
Every 15 minutes, it takes all of the sensor data as well as what it’s done over the last 24 hours and comes up with a plan for how the next 15 minutes are going to work. If it finds anything particularly noteworthy in its findings (like “at a delta T of 10K the office cools at an average of 0.8°C/hour”) that it doesn’t already know about, it stores these insights into permanent memory that will persist beyond the 24 hour look-back period.
Here’s an example of what a 15-minute decision and reasoning log looks like:

And yes, we’ve already ordered a more powerful fan to pull air out of room three. Claude’s right, it’s not powerful enough.
Can you do this without AI? I’d like to think you could, but I think the time you’d spend modelling, tweaking and dealing with outliers you hadn’t anticipated would be massive. We’ve been in this office for 5+ years now and we’ve tried to figure out a way to make it consistently pleasant in every room since we moved in and still haven’t managed to get it right.
What Does It Actually Cost?
Claude’s great in terms of getting an idea like this off the ground but initially the token costs were around £8/day. Almost £3k/year to poke the air conditioning with AI? That’s a lot! It’s not as big a problem as it sounds though.
We used Claude Opus 4 initially which is a huge, expensive model and vastly overkill for what we need to run the HVAC every day. The reason for that is we’re using it to build the background insights (like “With ~18.7kW solar output on a mid-April Thursday, Main Office temperature rebounded from 21.9°C to 22.15°C in 30 minutes (11:30-12:00) with HVAC in fan_only/off, confirming strong solar gain can drive temperatures upward without active heating during midday”) that then let a much cheaper model, like Haiku, take over the day to day operations without needing to think too much.
Switching to Haiku brings the cost down to £1.42/day. We only need to improve overall efficiency by 7% (we monitor every circuit's energy use so we'll know in a week or two if we're onto a winner) to recoup this cost, and we can reduce it further by not running every 15 minutes unless the office is actually occupied (96p/day), meaning our break-even point will be closer to a 3-4% required energy saving. The approach is also ultimately model-agnostic once the insight library matures and we could run this locally on something like Gemma 4 if we wanted to reduce costs further. As long as it can complete each iteration in under ~15 minutes without using more electricity than it saves, we're looking at a win. Even if we saved nothing, making everyone consistently comfortable and banishing aircon wars forever feels like a great use of £300/year.
Conclusion
After years of office aircon wars and tweaking traditional HVAC controls, the conclusion is clear: “throw it at an LLM and give it the tools it needs to make a judgement call” performs better than endlessly tweaking manual controls.
Today was the first day I had a meeting in room two and wasn't either sweating or shivering and even the dreaded and generally underused north-facing room four feels like a nice place to be.
We’re always looking for interesting, innovative problems to solve. If you want to come and talk to us about yours, at least you know you’ll be doing so in supreme comfort (or rather the least worst compromise that gets closest to environmental bliss based on who’s in the office at that point in time).
Like I said, the real world’s not perfect.


