You don't even need Home Assistant. Many compliant devices just speak UPNP and have MDNS so you can just use UPNP clients. There's even a nice GTK UPNP IOT GUI for Linux.
HA acts as a HomeKit bridge, meaning that as long as I get a thing working with HA, I can control it from my Apple ecosystem.
Do I need it? No. But it's extremely helpful and still meets my goals around data ownership and no dependency on an Internet connection to turn off the lights before bed.