Home Assistant Heating Season Calculations
I installed 2 minisplits this summer, a 24K BTU Gree Sapphire in the kitchen/main living space and a 12K BTU Gree Sapphire in the master bedroom. They kept the house very comfortable during the hottest days of summer and I'm looking forward to using them to complement our woodstove and oil fired furnace this winter.
The Gree Sapphire units are some of the most efficient R410 units on the market, rated at 24 SEER2 / 8.5 HSPF2 for the 12K BTU unit and 21.5 SEER2 / 9.5 HSPF for the 24K BTU unit. In most areas, it is vastly cheaper to run minisplits than alternatives like oil, but with heating season fast approaching and falling oil prices / Maine's incredibly high electricity prices, I wanted to be sure I could always run the lowest cost heat source. Fortunately, I already had most of the raw metrics to determine cost for all heat sources in home assistant. To compare apples to apples, I decided to calculate BTU/dollar for my furnace and each minisplit individually (despite both being in the same product line, due to compressor size and design, the 12K and 24K BTU unit have slightly different efficiency curves).

To determine the cost to run my oil fired furnace, I assumed a fixed 138500 BTU per gallon. I have a Biasi B10/6 boiler, rated at 86.9% efficiency. I added a helper "input number" in home assistant for oil price per gallon and then created a helper template sensor to calculate the BTU/dollar. When I fill up my tank next, I'll update the price input and the BTU/dollar will change dynamically.

For the minisplits, I created a second helper input number to enter price per kWh from my electricity provider. I have an ecowitt wittboy weather station measuring ambient conditions outside and an emporia vue measuring input power to both minisplits (CT on one leg of each 240v circuit). Without sensors to measure CFM/delta T of the minisplits, I opted to use ambient temperature + input power and the published minisplit efficiency curves to determine output BTU and by proxy cost per BTU.
Gree/Alpine Home Air both publish "extended ratings" that provide BTU output at various ambient temperature/power input numbers, but they are all at maximum power for a given ambient temperature. With a tightly insulated house, I was also interested in performance once the house is heated up and power input/heating load much lower. I found the NEEP heat pump list contained a combination of minimum, rated, and maximum outputs at various ambient temperatures. I keep my home a little cooler than 70F and the published values are all at 70F return air temp, but I figured the difference would be negligible.

I compiled the NEEP data for both minisplits into a spreadsheet. I dumped all of this data into ChatGPT 4o and asked it to perform various regressions. It spat out an equation, f(ambient_temp, input power) = output_BTU_per_hour, with low error for both data sets. As a sanity check, I added the equation into my sheet and compared calculated output to NEEP measured output - they were very close.

I then went to work in home assistant. I first created a helper template sensor for minisplit output in BTU/h, using the chatgpt equations. Since the minisplits have a minimum power input and the function would produce a nonzero value at input power = 0, I added an if statement to make the BTU/h zero if input power was below rated minimum input power.

I then created a helper integral sensor to turn BTU/h into BTU and fed that into a helper utility meter to turn BTU into BTU/day. My emporia vue already provides daily energy per circuit in kWh, so I created another helper template sensor using that and the cost per kWh from earlier to calculate cost per day. Finally, I used BTU/day and electricity cost per day to calculate BTU/$ on a daily basis. These values will continuously count up during the day, they just reset on a daily basis, so they should provide fairly instantaneous BTU/$ value throughout the day.

As I start running the minisplits this winter, these calculated final BTU/$ values should give me a better feel for what days I should favor running my boiler vs the minisplits. I plan to burn as much wood as possible as it will be an order of magnitude cheaper than either of these (assuming my time to cut and split it all is valued at 0), but both the boiler and minisplits will be used to supplement at night/while we're gone.

I have control of both minisplits, via the Gree integration, and all 4 zones of the oil furnace, via Nest thermostats, in home assistant. I'd like to continue developing similar metrics and eventually leave the decision of which heat source to use all to home assistant.