Smart Home Automation
The best smart home automation is completely automated.
If I'm having to constantly do something manually to make my automation work, I have failed. I'm constantly trying to make the home automation less of a failure but it's a work in process! (Progress? I never have figured that out.)
FYI, when I say "light" I really mean "outlet". All of my controllable things are for the most part just an outlet, so in most cases, that means a light but it can also mean my IP cameras (which sometimes need a power cycle) or other things.
I have a number of things that all tie together to make up my automation at the house, and here's a (partial) list of those things.
Raspberry Pi 1B Controller
More or less, everything originates from an ancient Raspberry Pi 1B using a handful of scripts of HTML, PHP, some Node (which I should pub on GitLab sometime) to control my Tuya outlets, and 433MHz receiver/transmitter boards to control my 433MHz RF outlets. The Pi is the central node/controller so that the interface to turn lights on/off is a centralized thing and everything uses it.
My Pi also has a temperature and humidity sensor on it so I can see what temperature the house is at any time and it tracks it in Cacti. One caveat; it's at about 7 feet above the floor as the Pi is on top of a bookshelf so the temperature is significantly higher than the weather sensor just a few feet away and at 3 feet above the floor. Some day I should extend the wiring on the sensor to get it to a more reasonable position for better readings.
I keep a backup of the Pi contents on my main server here at the house so when the sdcard dies I can restore things fairly easily, however, it'll be a real pain to do so when that actually happens. I really should take a complete backup of that sdcard so I can directly restore it. Yeah. That'd be smart.
Node/Tuya
Tuya outlets are well known to be pretty easily hacked to run your own code but mine are bog-standard and I just use the cloud service and the cloudtuya project to control them using my tuyaservice project. Ideally, I'd prefer they work directly on the LAN but for now, I leave them as-is. They also track power usage which is pretty nice. Node in this case allows me to control the lights via the Pi rather than use a smartphone app or a voice assistant.
433MHz RF Outlets
I have a number of really cheap (read: sketchy/scary) outlets that are controlled via 433MHz and just send a fairly simple binary code to turn outlets on and off. They come with a simple remote control but using some cheap boards made for such things you can easily control them with a Pi or other device. The image on this post is the transmitter and receiver for 433MHz attached to my Pi.
Linux Workstation
My office lights are tied to my workstation status. If the screen is unlocked, the lights are on. If the screen locks, the lights go off one at a time over a 10 minute period. This works well when it's just me in the office but has the tenancy to drive the wife crazy when they turn off on her. The workstation also has some cron driven scripts which turn lights on/off based on sunrise/sunset, time of day, etc. All of our TVs can be controlled over wifi as well, so I can even turn off TVs in case they've been left on inadvertently.
Tasker on my phone
When I leave the house, Tasker turns my office lights off. When I arrive home, it turns them on. When I put the phone on the charger at night it turns the office lights off, when I pick up the phone in the middle of the night it turns one of the office lights on. Tasker does a whole truckload of other things for me, but using my phone as a "sensor" offers me finer control over some things.
Webpage Remote Control
Speaking of TVs and control, I have a very simple set of web pages I can access from anywhere that lets me turn lights on or off and even basic TV remote controls. I've enhanced them enough that I can basically do everything I need to do to a TV without finding the remote. Just like everything else, these run on the Pi as a central controlling location.
Smart Assistants
I occasionally will use my Google or Alexa devices to turn lights on or off, but this is generally the exception, not the rule. Odd times, or when some other "rule" has turned a light off and I need it on, etc.
Smart Bulbs
NO. I love LED drop-in bulbs, they are so much more efficient and more predictable than CFLs or incandescent bulbs. However, they are designed to fail. They're over-driven, under-designed, or get too hot and one or more of those things will contribute to their demise much sooner than the LED itself would fail. So I'm not paying $10+ a bulb for a "smart" bulb because when it dies I have to toss the whole thing. Also, most smart bulbs are 60W (equivalent) or lower and I generally need 100W as my house is mostly lit by lamps.
Smart Thermostat
My thermostat is smart enough. It has four timeslots per day that allow me to set the temperature for each of those four timeslots and can program these to be executed the same way every day, individual days, etc. And double that; it programs for AC and Heat separately. So effectively my thermostat does exactly what I want it to all the time. And it cost $25. And nobody can turn it off remotely.
One thing I would like to have is the ability to remotely see its setting, the current temperature, and turn the blower on manually, but none of these things are enough for me to replace my simple thermostat that just works.
Things I'd like to do sometime
I'd like to add something like Sonoff's inline into various fixed lighting fixtures in the house to allow me to control turning more lights in the house on and off. I would wire up light switches so these lights behave like normal lights but would allow me to remotely control them.
I'd like to add motion sensors to some locations in the house to turn lights on/off, however, this can be tricky to meet the needs of everyone in the house at all times.
I'd like to replace all the sketchy, non-UL, probably fire hazardous smart outlets with UL-rated outlets. As prices come down I have been doing this.
I'd like to add a sensor to know what position the garage door is in and be able to open and close it remotely.