A couple of weeks ago I wrote about consolidating the whole house onto Home Assistant. Everything lives there now. The bridges are gone or going, the vendor apps are off my phone, and the lights in a room finally answer to one action instead of four.
This is the update post. Since then I added a third radio, put my fridge and freezer on relays, bought a pile of used gear that mostly worked, upgraded my local model, and started the hardest automation project so far: retraining myself.
A third radio #
The new piece is an ESP32-H2, flashed and wired in as a Thread radio so Home Assistant can do Matter over Thread natively — no separate hub, no vendor border router in the path.
My Home Assistant box now covers three networks across two frequency ranges. Zigbee and Thread both sit on 2.4 GHz — same band, different protocols, each on its own coordinator. Z-Wave runs down on Sub-GHz through the SONOFF Z-Wave 800 dongle. Three radios, three meshes, one place to manage all of them.

The custom tray I printed for the NUC build was designed for two USB modules. It now holds three: the SONOFF MG24 for Zigbee, the SONOFF Z-Wave 800 for Z-Wave, and the little blue ESP32-H2 board hanging off a USB-C cable for Thread. It is a tighter fit than I would like and I will probably reprint the tray with a proper third bay, but it works and the antennas clear the desk.


One of the first devices I moved onto Thread was the IKEA Matter water sensor. It used to run through the IKEA bridge like everything else IKEA. Now it is a Matter device paired straight to Home Assistant over Thread — no bridge, no IKEA account anywhere in the path. That is Matter doing exactly what it is supposed to do: the device is just a device, and it talks to my controller.
The fridge and freezer are on relays now #
I put a Zigbee relay on the fridge and another on the freezer.
Not because I want to switch them off from my phone. Because I was tired of trusting the appliance to be smart about its own duty cycle. “Energy saver mode” on a fridge is a black box — you get a checkbox and no numbers. Now the relay meters it, and every compressor cycle, every defrost, every door-open warm-up shows up as data in Home Assistant. I can see what the thing actually costs to run instead of what the sticker claimed.
The next step is a temperature sensor inside the freezer. The blocker is boring: I need a AA or AAA cell that will actually hold voltage at freezer temperatures. Most alkalines fall on their face in the cold, and lithium primaries are the real answer, so I am not putting a sensor in there until I am sure the battery survives the environment I am putting it in.
The end state is to take away the appliance’s always-on brain entirely and hand the duty-cycle decisions to Home Assistant and MikeOsude AI — cycle the compressor around off-peak windows, hold setpoint with the door history in mind, that kind of thing. The appliance keeps the food cold. The decision about when lives somewhere I can see it.
Retraining myself #
Here is the automation I did not budget for. Me.
The house responds to motion and presence now. Walk into the office, the lights come up. Leave, they go out on a timeout that changes with the time of day. It works. And I keep reaching for the wall switch anyway, out of twenty years of habit, which then fights the automation.
The hardest device to automate in my house is me.
So the current project is behavioral. Hands off the switches. Let the house do its job. Every time I catch myself tapping a paddle on the wall, I treat it as a bug report against an automation, not a reason to keep using the switch.
Where this goes: no wall panels at all. I want the paddles gone, the boxes either blanked or fitted with a relay behind them, and the house lighting itself based on where I am. A clean wall, and a room that already knows I walked in before I have to ask it for anything.
The used gear experiment #
I went on a used-device run. Mixed results.
The Z-Wave side went fine — picked up a few more Z-Wave devices and some Ring Alarm Gen2 kit. The one I actually wanted was the Ring Gen2 keypad, because I run Alarmo for alarm control in Home Assistant, and a real keypad by the door beats pulling out a phone every time I leave.
The keypad was dead on arrival. Not “needs a factory reset” dead — actually dead. I charged it over micro-USB, left it overnight, nothing. So I opened it up.

Inside is a single board with a 2000 mAh lithium pack. I checked the pack, checked the charge circuit, reflowed the joints that looked suspect, and put a bench supply on it. It would not take a charge and it would not boot. I got further into that keypad than anyone has any business getting into a keypad, and it still would not power up.

The transaction was not a total loss. It came with a Ring motion sensor and a contact sensor that both paired fine and are earning their keep now. But the lesson stands: buying used automation gear is a gamble, and a keypad you cannot watch boot before money changes hands is a bad bet. I will buy that one new.
MikeOsude AI: bigger model, shorter memory #
MikeOsude AI got an upgrade. I moved it to Qwen3-14B-AWQ.
To make it fit, I had to cut the context hard — max-model-len went from 131072 down to 10240. That is a big cut, and I expected to hate it. I do not. The 14B model at short context gives me replies that sound like a person instead of replies that sound like a model reading a manual, and for what I actually use it for, that trade is worth it. I would rather have 10k tokens of context and a natural answer than 128k tokens and a stilted one.
The other half of this is keeping the memory outside the context window where it belongs. Home Assistant is writing every activity — every state change, every automation fire, every sensor reading — to ClickHouse. That is the long-term memory. The model does not need a giant context window if the history it needs is one query away in a database built for exactly that.
I am still wiring the agent side into Home Assistant properly. The rule from my OpenShift AI agent carries over unchanged: it observes and recommends, I decide. The model can notice that I always drop the office lights to 40% around 9pm and offer to turn that into an automation. It does not get to write the automation itself.
Where this is going #
None of this is finished. The tray needs a reprint, the freezer sensor is waiting on a battery I trust, the walls still have paddles on them, and the agent is still half-wired into Home Assistant.
But the direction has not changed since the last post: fewer vendor islands, more of the house in one place, and a system I can actually reason about. The next milestone is a wall with nothing on it and a room that lights itself. I will write that one up when I get there.