Home Assistant on a pi with a zigbee / zwave stick imho, no 802.11 devices.
Zigbee is an RF standard and I don’t think there’s licensing so the devices tend to be cheaper but more wild west-y, while zwave is a controlled standard and has the cost overhead associated with that. Both standards support nodes being repeaters on the network so a chain of devices can pass instructions to devices not necessarily in range of the base. Also because they’re established standards, zigbee/zwave devices will still be useful after the company that makes them goes under, unlike fly by night wifi crap.
If you insist on having it wifi based, look into ESP custom firmware flash-able devices - there are open source firmwares that you can know won’t be trying to make any shady calls home.
My solution to “iot devices be shady” is to run my own network connected base and then everything else is a dumb device that takes commands.
Oh and if you do go ha on a pi, buy a usb hdd adapter and boot from that - I’ve found sd cards to be unreliable.