I've been using smarthome stuff for quite a while now, and my conclusion is this:
- You absolutely have to stay local. Home Assistant is the only software I know that can pull that off at the moment, but never ever use commercial devices that have to talk to their servers. Once the servers are down or your internet connection is down, those devices are just bricks, and you don't want that at home.
- The setup is only really usable by the person who set it up. If you're living alone that's fine, but anybody else will have a hard time tapping in your secret code to turn on the lights. All trained behavior like pushing a light switch to turn the lights on and off are violated in a smart home, even if it's just because the delay between pushing the button and the lights going on is increased by 100ms.
- You have to monitor battery levels of sensors and replace them to keep the system working. There are dozens of coin cells in your home, they are going to run out eventually (after a few months).
- Have a fallback mechanism when the network goes down. It's not great when you can't turn on the lights to check why the WiFi router isn't responding.