Posted by skittleson 6 hours ago
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://github.com/AI4AIResearch/Awesome-REA
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.
"hey man, have u seen my coffee machine..it connects to the internet..so cool"
Yeah, nohttps://www.thedrive.com/news/bmw-commits-to-subscriptions-e...
https://www.tastingtable.com/2264769/customer-tricks-keurig-...
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.
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.
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.
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.