3 ms·
The challenge is that even a minimal implementation requires quite a lot of functionality. Take a Wifi-based smart outlet, for example. The functionality is l
by Mister_Snuggles 3y ago
The challenge is that even a minimal implementation requires quite a lot of functionality.
Take a Wifi-based smart outlet, for example. The functionality is literally a single output that drives a relay. But in order for that to work, it needs to join a Wifi network - that means that you need some way to get an SSID and password onto the device and it needs a DHCP client to get an IP address. There also needs to be a way for the controller to discover the device's IP address, which means there's now likely an mDNS implementation on the device. Then there needs to be a way for the device to receive commands, so now we've got an HTTP server.
If you want out-of-home access, which I suspect most people do, there's even more work required. Usually this means a central server that the device connects to since most regular people don't have a VPN connection back home. Another option is HomeKit, which is explicitly about local control with all of the remote access magic handled by Apple. But HomeKit is yet more stuff to run on the device, and only works if you've bought into the Apple ecosystem.
This is a ton of scope creep for a pretty minimal device.
A Zigbee or Z-Wave based outlet would be better, but that really just moves all of that scope creep from the individual device to the hub.
- AnthonyMouse 3y ago> A Zigbee or Z-Wave based outlet would be better, but that really just moves all of that scope creep from the individual device to the hub. This is actually fine as long as the hub is open source software running on a general purpose computer, because then you're not reliant on the hardware vendor to support it. The fundamental problem is that the hardware vendors (1) don't provide what's necessary for anyone but themselves to support the hardware, and then (2) don't adequately support it themselves. Far better to address (1) than (2).