The lock-in trap
Every smart plug came with its own app, its own account, its own cloud dependency. Three vendors in, I had three apps, none of which talked to each other, and one outage away from losing control of my own lights.
The two things that fixed it
Zigbee for battery-powered sensors and switches, coordinated through Home Assistant instead of any single vendor's hub. MQTT as the common language for anything custom I build myself, so a weather station and a light switch can trigger each other without caring who made either device.
If a device only works through a vendor's cloud app with no local API, it doesn't get a place on the network, no matter how good the deal was.
What actually changed day to day
Automations that used to require three apps and a lot of luck now live in one place, run locally, and keep working when the internet doesn't. The upfront time spent picking open protocols paid for itself the first time an internet outage didn't also turn off my lights.
Standardizing on open protocols costs a bit more setup time upfront and saves a lot more time and frustration later.
