2024 Home Sweet Home Automation: A Piano-Controlled Smart Home

There’s a scene in Willy Wonka and the Chocolate Factory where a little flap in the wall flips down to reveal a small organ embedded there. Gene Wilder plays a bit of Rachmaninoff on the organ, and the giant door to the chocolate room slowly creaks open.

Once [Nathan Orick] got this into his head, he couldn’t get it out, and had to give it a go in his own home. Regrettably there’s no chocolate rooms in the house, so he’s using various chords and melodies to do things like control the lights and the TV, as you’ll see in the video after the break. Although this one may have started as a joke of a home automation scheme, [Nathan] thinks it turned out pretty solid, and so do we.

He already had the piano and a Raspberry Pi Zero lying around, so getting this up and running was mostly about connections and code. Speaking of connections, [Nathan] was hard-pressed to find a micro-USB to USB-B cord, so he ended up splicing one together. Simple enough. The harder part was getting Linux to recognize the keyboard, but all it took was touching all the pins with a multimeter, evidently. What’s a project without a little magic?

And not only did it show up, Linux went to the trouble of registering it as a MIDI device all on its own. Once [Nathan] obtained the port number, he had data printing to the console every time he played a note. Then it was mostly a matter of writing code to interact with MIDI data and track the notes as they’re played, and put it all together with Home Assistant. Be sure to check out the brief demo after the break.

Continue reading “2024 Home Sweet Home Automation: A Piano-Controlled Smart Home”

A Smarter Solar Water Heater

Installing solar power at a home is a great way to reduce electricity bills, especially as the cost of solar panels and their associated electronics continue to plummet. Not every utility allows selling solar back to the grid, though, so if you’re like [Rogan] who lives in South Africa you’ll need to come up with some clever tricks to use the solar energy each day while it’s available to keep from wasting any. He’s devised this system for his water heater that takes care of some of this excess incoming energy.

A normal water heater, at least one based on electric resistive heaters, attempts to maintain a small range of temperatures within the insulated tank. If the temperature drops due to use or loss to the environment, the heaters turn on to bring the temperature back up. This automation system does essentially the same thing, but allows a much wider range of temperatures depending on the time of day. Essentially, it allows the water heater to get much hotter during times when solar energy is available, and lets it drop to lower values before running the heater on utility electricity during times when it isn’t. Using a combination ESP32 and ATtiny to both control the heater and report its temperature, all that’s left is to program Home Assistant to get the new system to interact with the solar system’s battery charge state and available incoming solar energy.

While it’s an elegantly simple system that also affords ample hot water for morning showers, large efficiency gains like this can be low-hanging fruit to even more home energy savings than solar alone provides on paper. Effectively the water heater becomes another type of battery in [Rogan]’s home, capable of storing energy at least for the day in the form of hot water. There are a few other ways of storing excess renewable energy as well, although they might require more resources than are typically available at home.

IoT Air Purifier Makes A Great Case Study In Reverse Engineering

Here at Hackaday, about the only thing we like more than writing up tales of reverse engineering heroics is writing up tales of reverse engineering heroics that succeed in jailbreaking expensive widgets from their needless IoT dependency. It’s got a real “stick it to the man” vibe that’s hard to resist.

The thing is, we rarely see a reverse engineering write-up as thorough as the one [James Warner] did while integrating an IoT air purifier into Home Assistant, so we just had to make sure we called this one out. Buckle up; it’s a long, detailed post that really gets down into the weeds, but not unnecessarily so. [James] doesn’t cloud-shame the appliance manufacturer, so we can’t be sure who built this, but it’s someone who thought it’d be a swell idea to make the thing completely dependent on their servers for remote control via smartphone. The reverse engineering effort started with a quick look at the phone app, but when that didn’t pay off in any useful way, [James] started snooping on what the device was talking about using Wireshark.

One thing led to another, wires were soldered to the serial pins on the ESP32 on the purifier’s main board, and with the help of a FlipperZero as a UART bridge, the firmware was soon in hand. This gave [James] clues about the filesystem, which led to a whole Ghidra side quest into learning how to flash the firmware. [James] then dug into the meat of the problem: figuring out the packet structure used to talk to the server, and getting the private key used to encrypt the packets. This allowed a classic man-in-the-middle attack to figure out the contents of each packet and eventually, an MQTT bridge to let Home Assistant control the purifier.

If it sounds like we glossed over a lot, we know — this article is like a master class on reverse engineering. [James] pulled a lot of tools out of his kit for this, and the write-up is clear and concise. You may not have the same mystery fan to work with, but this would be a great place to start reverse engineering just about anything.

Thanks to [ThoriumBR] for the tip.

Alarm Panel Hack Defeats Encryption By Ignoring It

As frustrating as it may be for a company to lock you into its ecosystem by encrypting their protocols, you have to admit that it presents an enticing challenge. Cracking encryption can be more trouble than it’s worth, though, especially when a device gives you all the tools you need to do an end-run around their encryption.

We’ll explain. For [Valdez], the encrypted communication protocols between a DSC alarm panel and the control pads on the system were serious impediments to integration into Home Assistant. While there are integrations available for these alarm panels, they rely on third-party clouds, which means that not only is your security system potentially telling another computer all your juicy details, but there’s also the very real possibility that the cloud system can either break or be shut down; remember the Chamberlain MyQ fiasco?

With these facts in mind, [Valdez] came up with a clever workaround to DSC encryption by focusing on physically interfacing with the keypad. The device has a common 16×2 LCD and a 25-key keypad, and a little poking around with a multimeter and a $20 logic analyzer eventually showed that the LCD had an HD44780 controller, and revealed all the lines needed to decode the display with an ESP32. Next up was interfacing with the keypad, which also involved a little multimeter work to determine that the keys were hooked up in a 5×5 matrix. Ten GPIOs on the ESP32 made it possible to virtually push any key; however, the ten relays [Valdez] originally used to do the switching proved unwieldy. That led to an optocoupler design, sadly not as clicky but certainly more compact and streamlined, and enabling complete control over the alarm system from Home Assistant.

We love this solution because, as [Valdez] aptly points out, the weakest point in any system is the place where it can’t be encrypted. Information has to flow between the user and the control panel, and by providing the electronic equivalents to eyes and fingers, the underlying encryption is moot. Hats off to [Valdez] for an excellent hack, and for sharing the wealth with the HA community.

Does Getting Into Your Garage Really Need To Be Difficult?

Probably the last thing anyone wants when coming home from a long day at work or a trip is to be hassled at the last possible moment — gaining entrance to your house. But for some home automation enthusiasts, that’s just what happened when they suddenly learned that their own garage doors had betrayed them.

The story basically boils down to this: Chamberlain, a US company that commands 60% of the garage door market, recently decided to prevent “unauthorized usage” of their MyQ ecosystem through third-party apps. Once Chamberlain rolled out the change, users of Home Assistant and other unauthorized apps found themselves unable to open or close their doors with the apps they were accustomed to.

Those of us with custom smart home setups can relate to how frustrating it is when something disturbs the systems you’ve spent a lot of time tweaking and optimizing. It’s especially upsetting for users who both Chamberlain hardware specifically because it was supported by Home Assistant, only to have the company decide to drop support. This feels like false advertising, but we strongly suspect that buried in the EULA users must have agreed to at some point is a clause that essentially says, “We can do anything we want and tough noogies to you.” And if you read through the article linked above, you’ll get an idea why Chamberlain did this — they probably didn’t like the idea that users were avoiding their ad-spangled MyQ app for third-party interfaces, depriving them of ad revenue and the opportunity for up-selling.

We feel the frustration of these users, but rather than curse the darkness, perhaps this will light a candle of righteous rage that leads to a clever workaround. The Home Assistant blog article mentions a dongle called ratgdo, which should allow any door with plain old dry contacts to work via MQTT or ESPHome. It’s extra work that users shouldn’t have to put in, but maybe getting one over on The Man would be worth the effort.

Thanks to [KC] for the tip; please keep us posted on your workaround.

A hot tub with a smartphone in front showing real-time sensor data

ESP32 Keeps Track Of Hot Tub’s Vital Signs

Like swimming pools, hot tubs need regular monitoring to ensure their water stays clean and clear. An average person might take a water quality reading once or twice a week using test strips, but such a low sampling rate obviously won’t do for a hacker. [Stephen Carey] has therefore built a hot tub monitor that checks the water quality every minute and reports it on a neat mobile dashboard.

[Stephen]’s system uses commercially available sensors that track pH levels and Oxidation-Reduction Potential (ORP), both basic measurements that indicate water quality. A second set of sensors keeps track of the temperature of the water and the outside air, which should help in finding insulation failures and keeping energy use under control.

A set of graphs showing a hot tub's pH and ORP over time, with a significant spike in both near the beginningAn ESP32 reads the sensors and sends out the data through WiFi. [Stephen] programmed the ESP32 in MicroPython, using an MQTT driver to connect it to Home Assistant. By looking at the graphs generated, you can tell when someone entered the tub from a step change in pH and ORP. It’s even possible to generate alerts when any of the values drift outside their acceptable range – we can already imagine an alarm going off when someone enters without having showered first.

The system also has a calibration mode to check the sensors against a well-defined buffer solution. As with many chemical sensors, the pH and ORP probes gradually lose their active material and need to be replaced after about a year. Good ones aren’t cheap, but [Stephen] has found pretty decent low-cost alternatives on AliExpress that should be fine for a home setup.

If you also want your tub or pool to be actively managed, you’ll need a more complex system, perhaps even one that can also dispense chemicals. If your hot tub is heated by a wood fire, however, all you need is a way to alert the person tending the fire.

Litter Box Sensor Lets You Know Exactly What The Cat’s Been Up To

In our experience, there’s rarely any question when the cat uses the litter box. At all. In the entire house. For hours. And while it may be instantly obvious to the most casual observer that it’s time to clean the thing out, that doesn’t mean there’s no value in quantifying your feline friend’s noxious vapors. For science.

Now of course, [Owen Ashurst] could have opted for one of those fancy automated litter boxes, the kind that detects when a cat has made a deposit and uses various methods to sweep it away and prepare the box for the next use, with varying degrees of success. These machines seem like great ideas, and generally work pretty well out of the box, but — well, let’s just say that a value-engineered system can only last so long under extreme conditions. So a plain old-fashioned litterbox suffices for [Owen], except with a few special modifications. A NodeMCU lives inside the modesty cover of the box, along with a PIR sensor to detect the cat’s presence, as well as an MQ135 air quality sensor to monitor for gasses. It seems an appropriate choice, since the sensor responds to ammonia and sulfides — both likely to be present after a deposit. Continue reading “Litter Box Sensor Lets You Know Exactly What The Cat’s Been Up To”