I only use "Local Polling" or better, and highly prefer "Local Push".
ESPHome or Tasmota work really well for all kinds of things. The last one I replaced was an infrared blaster for controlling my AC. The previous one, even though it was in an IoT VLAN decided to spam the network with requests to its mothership (never succeeding, fortunately).
I also have some eve energy plugs that do matter/thread (also push/local). There are apps here but i generally haven't needed them once i got things set up in home assistant.
Smart Plugs, sensors, etc: Ikea is amazing. You need to buy a hub, but then accessories are 3x cheaper. Their plugs are $9 and have energy monitoring which is amazing. They have water leak sensors for $12. Incredible value.
+1 on the IKEA stuff being amazing!
- buy the cheapest hardware that gets the job done
- ignore negative reviews that are software related
- upon receipt of devices, ask claude for local-first cfw
- have fun for a few hours acting as a meat proxy
- boom, cheap local-only smart home is done
Use a SBC or nas for home assistant. This process worked for me for switches, a thermostat, an air quality monitor, a thermometer, and a window fan.
Would’ve paid ~2.5x for hardware that had the appropriate local-first capability out of the box. Instead this all fit within an existing $20 subscription to an inference provider. DS 4.1 running locally was on track too just more slowly.
Your router is a point of failure, so an internet outage making it go weird doesn't mean you want all your stuff becoming on manageable).
IoT is honestly one of the best ways to rapidly learn SRE concepts.
On a home network with dynamic addresses: No need to worry about IP addresses; no overlaps happen, no mistakes, no spreadsheet table to manage. Use names (as long as DHCP works, then so does DNS). Renumbering the network is simple when that's useful.
It still works when the internet is down. And when the router itself breaks, we fix it or replace it and things work again. It's good to have a functional spare.
---
On a home network with static addresses: Micromanage IP addresses, keep a spreadsheet table, potentially make mistakes. Avoid using names (DHCP may be eliminated but DNS is still a failure point), making things harder to remember six months from now. Renumbering is arduous.
It still works when the router is down, but: When the router breaks, we still fix or replace it anyway. It's good to have a functional spare.
---
In terms of SRE: I don't need 5 9's of reliability for my smart light bulbs' IoT controls at home. They all still have some manner of physical switch, and they all can still be toggled on and off the old-fashioned way. Parallel controls work well-enough.
Everyone will get by almost-normally while I fix the router, which is a task that I'll set forth to be doing anyway for all of the reasons that household internet access provides.
The concept is that, instead of assuming that IP and MAC addresses are at all reliable, to "fingerprint" devices on the LAN based on things such as SSH public keys, TLS SPKI fingerprints, UPnP device UUIDs, mDNS, common TCP port profiles, and IEEE OUI manufacturer in order to form mostly-stable identities. The IP and full MAC are only fallen back to when there's absolutely no other data to work off of. My software uses a daemon that scans the network in order find devices and update existing device identities if IPs change. It serves hostnames for these devices on the `.home.arpa` TLD and creates synthetic IPv6 addresses for each device in case one would rather use their own DNS server or hosts file.
I recently "finished" this project, and it's kind of awesome because I was able to swap to a new router and everything just kept working as-is without having to think about it. Of course mDNS solves a lot of these problems already, but not every device has mDNS.
What's really cool is I recently realized that this is also very useful for accessing your local network with a VPN like Wireguard. Even though I only planned on this being something you run on individual clients, I put it on my OpenWrt router and configured it with dnsmasq so that, when I connect to my network with Netbird, all of my local hostnames just work on my phone by virtue of connecting to the network and using its DNS server. That said, my project doesn't require router admin access at all. It can even run as rootless if TUN access (for synthetic addresses) is turned off.
Maybe I'll release it publicly at some point, but if anyone wants to steal this idea and do their own implementation, I am not territorial over it. It's made getting my LAN devices working together a joy.
Custom firmware?
1. buy the Zigbee version
2. boom, local only smart home is done
I guess if there's a device that's actually wi-fi only then I'll have to go through your flow but so far there's been no need.
I found a few wifi and bluetooth devices that were cheaper than or didn’t have a zigbee equivalent. Window fan and air monitor specifically.
I didn’t do an exhaustive market search, just sharing my anecdotal experience. It’s a great feeling to be able to focus on hardware capabilities and price, then will the software you envision into existence via AI accelerated RE.
In Thread >= 1.4, devices can request globally routable IPv6 addresses. The Thread 1.4 white paper does not hide the intentions:
The Thread 1.4 Border Router acts as the IPv6 router between the Thread network and external networks, including the user's home network and the larger internet. It is by default configured to support external communication [...]
Cloud Connectivity: Direct internet connectivity enables Thread devices to easily connect to cloud services. This facilitates remote monitoring, control, and firmware updates, enhancing the user experience and enabling remote device management capabilities. Device vendors can now directly service and support their deployed fleet of devices, regardless of which application ecosystem each device is integrated with.
https://threadgroup.org/Portals/0/Documents/Thread_1.4_Featu...
This is what you get when you let Google, Amazon, Apple, and Samsung design a smart home standard. They'll use every opportunity extract analytics and increase control. You'll own nothing and be happy.
Zigbee, Z-Wave, and ESPHome over WiFi/Thread are the only major modern local and privacy-preserving smart home standards.
Matter over WiFi is also not fully local for obvious reasons (though you can try to block them on the router/firewall and/or put them on a separate VLAN).
Before Thread 1.4 the IPv6 addresses used by the Thread network were all ULAs - i.e. the devices were only routable locally and didn't have a global IPv6 address, so if you did happen to want to talk to your Thread devices over the internet, it was possible but the Thread border router had to do NAT for you.
With Thread 1.4 the border router can assign device IPs straight from the global IPv6 block assigned by your ISP, which means you can directly access your Thread device over the internet without the NAT provided by the Thread border router.
If you don't want to locally host your smart home automations (you and I do, but the average consumer doesn't) this can be very useful. It's also really helpful if you want to access your own devices remotely over the Internet and not need to bother with port forwarding.
IMO this fits perfectly with the philosophy of IPv6 - every device can have a globally routable IP address without needing NAT.
If you don't want your devices reaching out to the Internet (like I don't), the solution is to put all that stuff on its own VLAN with no Internet access (which I do).
Your post reinforces that feeling.
Luckily this is my setup.
I am not opposed to the possibility of cloud connectivity (as long as it is deactivateable) and even if I weren't I think I still prefer Matter (thread/wifi) over nearly all non-matter devices I've ever used, especially all the problems I had with Zigbee devices will make me stay far away from it. (Even though I am aware that many people had gread experiences with zigbee.)
Thread has the advantage of consuming very low power so battery powered sensors and remotes can run for years. Wifi is only used because it doesn’t require buying a thread border router.
We have a lot of devices and never have any issues. But yeah, if you put a lot of Tuya Zigbee devices with crappy firmware that flood the network. Similarly if you put a lot of crappy WiFi devices on your network, it's a security nightmare (wise people put them on an isolated VLAN and use WiFi client isolation).
Not contradicting or criticizing, just describing my lack of creativity.
My favorites are now air quality and climate measurement (the reason why i tried it again was mold prevention), climate control and a smart lock because i was scared of forgetting my keys when moving away from any friends I could hand a spare.
These are cheap chinese adware driven sensors. Security is not their priority.
But why does that matter? My smart home upgrade cycle is around once every 5 years. The world is changing on a dime every 6 months nowadays. Projections beyond about a year out in the smart home market are useless to me as a consumer.
1. Commercial devices must use offline only protocols, Zigbee or Zwave. If it's WiFi only I will not buy it unless the firmware is open source or easily replaced with an open source, local only alternative.
2. Non-sensor devices must fully function without their IoT features. I must be able to control my thermostat, fridge, stove, etc without any external interface.
Never use a WiFi IoT device that isn't open source. Even if you can control it locally it could be a spy device that's exfiltrating your data. Yes, you could setup VLANs or a separate network but it's not worth it. Vote with your wallet.
I managed to get to:
The cloud is the weak link
- No internet, no problem. ...
---
If you are writing for other machines to ingest it, whatever. But if you are writing for people it for me at least signals that you don't really care about the message that you want to get across, and are fine with a watered down LLM average.
If you're personally getting a headache from reading AI writing, all this does is transfer that headache to the rest of us. Thanks. /s
I will not be happy because we will be lost as a culture when we give up on this.
Its like you went to a potluck and brought a salad with you, you just closed your eyes and threw some things from the fridge together without thinking, it's all mixed together now and you don't know if something was old/moldy.
You are proud and happy that you brought a contribution, and you feel like your responsibility/duty ends there while the people who want to eat it have to be careful and fish things out, or just avoid it because they can't be sure if it was old or not.
Natural language is a non-verifiable domain due to the ambiguity of the intent, so we will never get away from this issue in LLM-land. You can't know intent of the writer unless they wrote it themselves.
I think it interesting that people are more upset about the complaint than the cause of the complaint.
If this place — a place where people are supposed to be sharing interesting things for techies and geeks — gives up on complaining about thoughtless nonsense, its culture dies.
In practice this looks like Z-wave smart switches everywhere for lights so that you can control the light via automation, app, the switch on the wall, or Alexa. They all feed into the same system.
LLMs have made this even easier and removed some of the annoying fiddling I used to do in the past. Now I can open up Claude Code and tell it to build a new automation and it's done in minutes.
Yesterday I realized I left the floodlight on in the backyard by accident, not problem "Claude, create an automation in home assistant to turn off backyard light 5 minutes after I turn it on", done. Could I have created that automation? Yes, I've written countless of them in that past but now I can speak it into existence and, almost more importantly, tweak it with barely any effort at all. If tomorrow I buy a motion sensor I can just ask the LLM to incorporate that, if I want the lights to stay on if X other device is turned on, it's a prompt away.
In the past I would spend a good bit of time writing an automation but when it broke down or my needs changed it was enough friction that I would just give up and turn off the automation rather than take the time to debug and change it. I setup all the motion-activated lights in my house when I first moved in and over the course of a few weeks I tweaked each one as needed with just a short prompt here or there, it felt like living in the future.
Pretty amazing the smart parrot can un-China/Cloud something like this in about 20-30 min. Prior to that I was expecting to need an IR blaster to try to control the thing with HomeKit and a complicated setup maintaining state. That’s all just solved now.
My only IoT device is a motorized chicken door that was acquired on Mac.bid, I think (one of those auction sites for returned goods), and requires some crummy app (SmartLife) that takes up half a gig on my phone.
Long story short, I had to go on a journey that involved creating a Tuya developer account and navigating their terrible website and being panicked at my ability to reconnect the device, but eventually I landed on Homebridge connecting it to Apple Home, and I finally have the control over it that I want. I finally was able to block the device from the Internet in my Deco app.
So...yes! It's finally working without the Internet.
I've always avoided IoT because of terrible software and silos but now that apparently these aren't the barriers they used to be thanks to LLM assistance, I'm more likely to dip my toes in the water.
That speaker linked to your phone should not need an internet proxy to communicate. It should allow for direct USB communication so it can share one power source. It should allow for Bluetooth communication so it can be in a different close location.
CoT should follow the rule of nature and take the shortest path by default.
What is better for society? The LLM modal running in a local environment or the one running on a data center that can be easily taken out via a power outage, fiber cut, national disaster, or a kinetic weapon?
I rather that LLM modal used at the hospital be ran locally and keep servicing patients even though the original data center was demolished by mother nature.
Though I did run into a roadblock with my Blueair air purifier and hubitat, so I'll probably run a Home Assistant instance so I can control the Blueair with the HomeAssistant->Hubitat integration.
There should be a system like the nutritional information on food and beverage products, as time went by most people read those and choose accordingly, which then incentivize companies to adapt their offering. We could imagine something similar which would define clearly the capabilities of the hardware or software sold, clearly labelled on the physical package or on the online shop with an easy classification for consumers to understand.
If they could get away without even having a Wi-Fi router and just use their cellular plan they would. Why? Because there are plenty people who are happy with just whatever internet they get on their cell phone and don't want to spend extra for a router and an ISP
Smart home devices should not freeze up whenever internet is down. A device like Google Nest should have the minimum decency to allow you to interact with it via local Wifi (which continues un-interrupted). It is fine if half the functionality doesn't work. It is fine if the "AI" doesn't work, but at least allow me to fcking change the temperature manually
Same thing with devices like Google Wifi which freezes up or run hot loops like headless chickens when internet is down.
And if I were the king of the forest, all medium to large appliances would run a controller board that is pin compatible with either arduino or raspberry pi so that the hobbyist community can refurbish devices that experienced a short. I won’t even make everyone pick a single standard. Two or maybe even three (ESP) are fine as long as we aren’t doing all custom just to count down a timer, run a pump, and sense water levels all at the same time.
Maybe not a space heater but dishwashers for sure. I’m divided stand mixers. Someone more invested could sway me either way.
These days I mostly don't buy it if it's not Zigbee (unless I make it myself with ESPHome). Just this week we bought two panel heaters (for two rooms that need a little heating because our heat pump is mostly used for heating the living room and kitchen). They work great over Zigbee and we can have some useful automations (like automatically switching off when forgotten and there is no one in the room for more than 10 minutes).
You can connect it to any evcc endpoint like a local homeassistant, or simply leave it on all the time.
I'm not happy with guaranteeing high availability on my HA install yet (it's not as simple as my pihole which is just a simple vrrp address over the two hosts) though so I just leave it in "always on" mode, and use the timer on the car to come on at 2310 (offpeak starts at 2300 on my tarrif).
I'd be surprised if a charger is genuinely only available via an cloud service, but from asking my neighbours if it doesn't have "an app" they wouldn't buy it.
I'd rather have an API I could poll/poke for the charger rather than set the charger to connect to me, but alas it doesn't have one.
Also anyone found the fix to smart bulbs constantly “updating”?
Also aside from maintenance there's no reason your WiFi should go down, an inexpensive UPS can keep it up for hours in a power outage. Even if it can't access the outside world, local routing works fine.
My personal situation imposes even stricter versions of your #1 and #2:
1. No network, no problem. Anything core to the house has to work with Wi-Fi or automation server shut down.
2. Smart functionality must not remove dumb functionality.
As one example: having a physical switch that controls a light and the switch can be operated by automation is good. Having automation control a light and the switch just tells automation what to do is bad.
This does make things hard sometimes. For instance, your sprinkler controller doesn't pass that bar. In fact the only one I've found so far that has a local API for automation plus full "dumb" on-device control (no Wi-Fi, no app) is RainMachine, and they are gone. If only OpenSprinkler hardware had a touch screen for local UI.
This is one of the reasons I love Zigbee, the device network is entirely independent of my computer network, can not directly communicate to the internet in any way, and every device I've put on the network so far can be configured to directly communicate with other devices so basic functionality remains operational even if the controller goes down.
For example, in my living room I have a Lutron Aurora dimmer dial locking a standard switch in the on position, then plugged in to the outlet that switch would normally control is a Leviton dimmer module. Both connect to the network controlled from a PoE Zigbee dongle, but have been directly paired as well so pressing the button on the dial makes it directly tell the dimmer module to turn on, rotation commands are sent direct, etc.
The controller also receives these commands when it's active and can add to the functionality for inputs like double-click, but if it's down the basic functionality still works entirely as a normal person would expect. You walk in to the room and see a knob on a switch plate, you turn the knob and the light brightness increases regardless of the state of the internet, my home server, or even my network as a whole.
The other major advantage compared to Matter/Thread is that it's not IP based so it's impossible for any Zigbee device to ever have a cloud dependency. No matter how much some marketing dingus might want to, it can not be ruined.
Specifically, I wanted the switch to turn on different lights depending on the time of day. In the evenings in early morning I wanted it to turn on the dimmer floor lamps, and during the day, I wanted it to turn on the brighter Center room light. This was not possible without turning the switch from a light turning on device, to an automation activating device.
I thought really long and hard about if I was worth the trade off, and in the end I decided that my automation server was only likely to be down for significant periods of time if the power was out and the lights weren't working anyways. If I run into a situation where this becomes a problem for me, I'll reconsider my decision. Which is a great thing about the local control. If I make a decision that I don't like I can just change it.
Unfortunately, almost no lan connected devices sport such an interface.
With another project, based on the ESP32-S3, I was able to cram grafana style scrubbable charts, full activity log, refrigerant circuit diagram, equipment topology, etc. I'm pretty excited for the ESP32-S31 since it's a nice jump up in performance.
The remote server always goes away after a couple years go by, and the radio is only capable of playing the stations that were set as presets. Then the preset radio stations go offline, or the URLs for them change.
I guess connecting to home automation would be useful for a fridge that's sufficiently out of the way that you might not hear it. But for the fridge in my kitchen the noises emitted by the fridge itself are enough for me
There's entire legions of people who consider themselves Christians. But I notice very little, if any, compassion for those in need: the neighbors, the ill, the refugees, or even the children.
Same with DoD -> DoW, and AI -> super intelligence. I wish I was making those up, alas.
Oh I also have a under-the-table contract with some intelligence community for some backdoors. You know it's a lot more expensive for them to actually send someone to test physical security, than just pay a contractor to sit before the desk collecting data, right? RIGHT??
__
I suspect that for resilience reasons alone, we might see a shift towards connecting less stuff to the public internet.
Not because consumers would complain. No one cares about consumers - including consumers themselves. But because of the threat to the stability of the system, internet connected stuff poses.
The fridge meltdowns are an example of that, but you can equally stun an enemy economy by just messing with the smart lights in people's homes, as it is the people who work.. or don't because they're tired.
Regulation, taxes, law. Can also just take over their business. Oh and they have military.
The state can do literally anything it wants.
It just often shouldn't, because a lot of escalative actions have quite the collateral.
But you don't need any of those to steer here.
You were warned.
If you accept and thus consented to a computer, or a device with a computer in it, without first verifying you can write to the media of its software, control the boot process, and will have sufficient access to that software, you get what you consented to.
And, you deserve it.
My home automation rules are even simpler: home automation devices are firewalled off the Internet. If something does not work because of this, it gets returned, period. I do my research and only buy Zigbee or WiFi devices that can be hacked, so I haven't had problems so far. I also don't want any "smart" fridge, washing machine, TV, etc.
Something anyone can use.
> Below that is the chart from a few real days: 21 opens, with spikes showing when each one happened. Most people skip this part, and it’s the part that tells me whether I left the garage open without opening an app.
seriously?
How would you know?
Also, QR codes as a good UX? I like what you are smoking, it is very effective in disconnecting from reality.
The web interface part would be the really complex piece I think. You would have to have some way for devices to tell it what features they have, so it could dynamically produce the appropriate controls per device
I dunno if this is really feasible to actually build but it's one of the only ways I can think that would allow average non-technical people to do this without having to administrate their own hardware and network settings and such
I'm talking about a fully built piece of hardware that comes in every house like plumbing and wiring does
Thanks for sharing this, I had never heard of home assistant before
1. smart home devices
2. your children's toys
3. your Siri when you ask to find something in your phone
and yet here we are. No internet? Siri can't find anything in your phone.
Oh my favorite is how Spotlight seems to randomly fail to find local files it was easily able to find yesterday, and starts searching the web instead.
The future of smart devices is a local LLM running on every single one.
I could see using an LLM to set up more complex home automation rules that I am too lazy to set up myself. But for what kind of situations is it useful to have an LLM run the device directly?
In a moment of weakness, I bought a D-Link wireless (wifi) water detector for the sump pit (it was on clearance for $30); it relied on a D-Link Home cloud service (free) that was closed down a few years ago.
Not wanting to toss it, I repurposed a spare Chromebook 14 that I was going to recycle and turned it into a Alpine monitor for the water detector, which I'm powering from the Chromebook's USB port (if power is lost in a rainstorm, I need to know about it before the sump pit fills up).
An immediate issue was that the D-Link firmware tried to "phone home" every 24 hours and would drop from the local network, since the server was kaput, and I had no clue what response it was expecting from the server to keep it alive. Solution; "reboot" the unit by interrupting USB power (with a Pico and MOSFET) every 23 hours. There's no question that home automation should work without the internet.
Reminds me of a possible apocryphal anecdote I heard about Alan Turing. He loved going on long bike rides, but one day his bike developed a distressing habit of slipping the chain. After the third time it happened, he realized it was due to a broken tooth on both the front and the back gear. He went back home and calculated how many revolutions of the pedals it would take for both broken teeth to line up when they were at the critical part of the rotation, and he built a little mechanical counter that would click on each link in the bike chain, and at the calculated time, a little arm would reach down and clasp the chain, holding it in place long enough for the teeth to re-engage.
He showed the device to his friend, who said "Why didn't you just buy new gears? You could have gotten both for a dime." And Alan replied "Oh, that's clever, I didn't think of that."
Contactors are built to run giant industrial motors for years, nevermind my little 1/4hp pump.
The way I built it lets my mother bypass it by unplugging the pump from the control box and plugging it right into the wall outlet.
So, hopefully it lasts years. If it doesnt, anyone can bypass it
I need an alarm because I've had a few pumps wear out, and also because I've had the power go out long enough to flood.
Your solution automates something that shouldn't have a computer involved in automating.
No issues whatsoever so far, and it holds the battery charge totally fine (which I get to test 2-3 times a year when i travel with it).
but isn't the alternative to have some third party on the Internet sitting between you and knowing that your cellar is flooding? third party services in the cloud have downtimes (not necessarily less than your Chromebook), tend to shut down entirely over time, tend to give up on you if you're not on a premium plan, tend to stop supporting the version of your device, etc
https://github.com/morluto/rea
https://rea.tools
https://github.com/AI4AIResearch/Awesome-REA
https://awesomerea.org/
Do we just need to establish bounties per cloud service target to reverse engineer and publish a spec, copyleft code, and reference architecture? Maybe https://www.fulu.org/ could host the results? Like OpenAI and Anthropic brute forcing math proofs, we can brute force interoperability (imho). Closed systems and tokens go in to the reverse engineering factory, out comes open systems that remain open to all.
https://bounties.fulu.org/bounties
(think in systems)
https://news.ycombinator.com/item?id=42572662 - January 2025 (71 comments)
https://news.ycombinator.com/item?id=31354130 - May 2022 (85 comments)
My rules for home automation are largely the same as the article, first and foremost the existing physical UX of switches and stuff should always work, and ideally automations should be nearly invisible: They should subtly be convenient and monitoring should be useful, but nobody should be confronted with a weird change of lifestyle because a house has automation. And nobody should ever need an app to use their house.
Anyone made any progress on rooting it?
You can then flash new firmware over USB.
If you're referring to the water sensor, it's definitely not parent-friendly, but I sometimes have to bail water during power outages from thunderstorms. It has to work during a power outage and an old Chromebook was cheaper than a UPS.
I kind of ran out of time for messing around with the sensor, but I did think of either dumping the Winbond chip on my reader, or using a .bin file that was used for OTA updates and pushing a modified version down locally.
That likely would have been "cleaner" vs. a 23-hour reboot cycle. I likely would have wanted a dump first in case I borked the firmware. The Python monitoring script just uses standard HNAP to read status codes from the sensor in 30 second intervals - I think there's some way to push updates via HNAP as well.
Thanks for the reminder - may be a good project for winter, when there's no chance of needing the sump.
https://www.thedrive.com/news/bmw-commits-to-subscriptions-e...
https://www.tastingtable.com/2264769/customer-tricks-keurig-...