I recently learned about Home Assistant here on Lemmy. It looks like a replacement for Google Home, etc. However, it requires an entire hardware installation. Proprietary products just use a simple app to manage and control devices, so can someone explain why a pretty robust dedicated device is necessary as a replacement? The base model has a quad core processor, 4 gigs of ram, and a 32 gig hard drive. Admittedly it’s no gaming PC, but it’s no arduino either.
What actually happens when I turn on a smart switch in my home? Does that command have to be sent to a server somewhere to be processed? What really has to be processed, and why can’t a smartphone app do it?
Edit: I am still getting new replies to this (which are appreciated!), but I wanted to share what I’ve learned from those who have posted already. I fundamentally misunderstood how smart switches work. I had very wrongly assumed that when my phone is connected to the WiFi, it sends a signal over the local network to toggle the switch, which is connected to the same network, and it turns on/off. While there are technologies that work like this (zigbee, kinda?), most smart home devices rely on a cloud server to communicate the signal. This enables features like using the switches from outside the home network, automation, voice controls, etc. The remote server is what’s being replaced.
I don’t really understand why a computer is necessary at all, is the thing. I know that it’s possible to use wifi network to send a signal between two devices. I have a sound board that works this way, and manages to communicate precise multichannel instructions directly over the network without an internet connection.
If I want to turn on a light switch, it seems like all I should need to send is the location of the light switch on the network and the on/off command. I know that there is not the computing power in the light switch itself to process much more than that.
Do these devices all connect to a remote server to switch on and off??
Yes. That’s why it’s called the Internet of things. Every “smart”, wifi connected, device you have uses that connection to communicate with a remote server. The app on your phone does the same to control the light.
Check out Zigbee for an example local control.
Many “smart” devices are sold with the idea that you can control your home from somewhere else. Maybe change the temperature on your way home or get notified when someone rings your doorbell. All this stuff requires servers to work.
Controlling some lightbulbs via bluetooth/wifi would be possible of course, but probably not very interesting for many.
Pretty much, yes.
I think you’re underestimating the computing power of these devices. If it has WiFi, it has an operating system.
You’re looking for something like ESPhome maybe. It’s a project from the same people that do home assistant. There’s a web server (and/or local API) available that allows you to toggle outputs locally, your browser directly to the microcontroller.
https://github.com/jkbenaim/hs100 if you have tplink kasa hardware this cli tool lets you send direct commands via Wifi, no hub required. it is not that the tech actually needs a server, it is that the server handles IP address changes, records data, checks switch on/off status, scheduling, etc, to provide a better experience than hitting an on off command.
The computing as to when they need switching on and off is done by the computer.
I used to use Tasker and Smart Life connected through Google to control my lights. It worked but it was fucking shit. I wrote all the logic for it based off my phone, so it kinda worked for me, and everyone else in the house hated it.
Now it’s all controlled by a computer based in the home, based on sensors that are in the home from all kinds of manufacturers using different protocols (because that’s what Home Assistant does, conglomerate protocols) it works much better for everyone involved.
You can try to make iot devices work without a computer or cloud if you like but it will just be absolutely garbage.
Good luck