I got a water softener installed that has WiFi capabilities, writing to a cloud API. The app (of course it has to be another stupid app) then pulls its data from the API after setting up the softener (WiFi credentials) through a local hotspot. There are integrations for HA that can read from the cloud API, but that usually isn’t enough for me.
Some data capturing revealed there’s no encryption. No HTTPS, no server validation, plaintext payloads sent via HTTP/1. That product will be illegal to sell in Europe in 2028, but I don’t want to name drop right now.
I was simply able to redirect the DNS record the softener uses to a local webserver, publish the data it receives via MQTT and configure a few entities in HA.
I could publish the very simple source code but I don’t know how to go about the requirement that users would have to know how to override a DNS record in their local network setup.
Any ideas? Is this project even worth sharing? Any better solutions?
I would say that almost all work that actually does work is worth sharing since someone may find it’s usefulness.
If they don’t know right now some of the technical aspects then you can either add that part in the setup tutorial or they can google it themselves.
I have an AO Smith water softener that uses wifi and sends info “somewhere?” but it doesn’t have a HA integration or even a published API so I have no idea how to get info from it other than waiting for an email from “somewhere?” that says there’s a problem. I would love it if somebody smarter than me could figure that out. (to clarify I’m not asking you to do it but just giving an example).
The steps are actually very easy, but you need to find a way to capture packets.
Method 1:
Setup a PC with two ethernet interfaces (e.g. via USB). One interface goes to your LAN l, the other to the WAN. Combine them into a bridge. That’s the difficult part, because it differs from system to system.
Method 2:
Capture packets on the access point you’re going to connect your softener to.
With packet capturing set up, run Wireshark either on the bridge interface (method 1) or a pipe input (method 2 on Linux). Filter packets for the IP address of the softener (or any other device you want to inspect).
I think most AIs might be able to help you with either method.
I’m using method 2 on OpenWRT with tcpdump and SSH pipe the output to my Linux notebook running Wireshark.
By the way: For a coffee I’d love to help you with any of these steps, but you’d have to be near Vienna, Austria.