One of the biggest challenges when making an existing home smarter is what to do with the old appliances. It would not be very environmentally friendly to just throw them away and buy new simply because they don’t have an app. Instead we should look at how we can make them a little bit smarter, even if it isn’t as good as a completely integrated solution.
The Smart Dishwasher
This is my integrated dishwasher. A budget model that doesn’t even have a timer, but only installed about two years ago so we certainly did not want to rip it out. I decided instead to observe the behaviour of the machine and see if we could make it smarter. A Shelly 1PM was installed inside the electrical spur supplying the machine and added to Home Assistant. I then ran a few wash cycles and observed what the shelly energy sensor reported.
It was easy to see when the appliance was running based on consumption alone. You can even fairly accurately guess which part of the cycle its in if you wanted to simply by roughly how much energy is being consumed.
I also found that if you turned the appliance off, it would resume where it left off when you turned it back on. It also opens the door when the cycle is complete which is a bonus. With this in mind I used Node Red do the following:
- Show in Home Assistant what state the machine was in
- Allow Home Assistant to schedule when the appliance can run
- Pause the wash within 5 seconds if it is started outside of the schedule time
- Resume a paused wash at the scheduled time
- Alert us when the wash cycle is complete
I’ve used this same basic premise with the Washing Machine and Tumble Dryer too. Unfortunately the dryer does not resume if paused but thats a safety feature – i could overcome it with a SwitchBot on the start button.
The node-red flow is still a little messy as I have not yet been back to clean it up, but for this article this is a good thing as it means you can see how it works. Once tidied up I will have consolidated a lot of the nodes into a single javascript function. Neater, but much harder to visualise.
This flow runs every time the power consumption reading changes. The Shelly1PM provides this data every few seconds so it is quite accurate. We then check if the reading is less than or equal 0.8 Watts, if so the flow proceeds along the top row, checking what the previous state of the machine as recorded in Home Assistant currently is (not off, and not paused) and if thats the case we then check to make sure it isn’t just in a quiet part of the cycle by waiting 30 seconds for the power consumption to increase again. If this test also passes, and the machine was previously running we will mark it as finished. If it was finished, we set it to off. Sharp eyed readers will spot this means it doesn’t stay “finished” long before being marked “off” but thats ok, the whole purpose of that step is to trigger the push notification.
If the state check at the start had found the power usage to be over 5 Watts, we would instead have run through the bottom half of the flow. Here, we again check what the existing state as known to Home Assistant is, and check if the machine is in an automatic mode. If it is, we might turn it off if its outside of the allowed run window. This works best with the fully dynamic pricing as the next run time is chosen automatically – you just load and start the machine and it pauses until the next best time to run.
Anything can be made smarter…
It doesn’t really matter what kind of appliance, you can add monitoring and sometimes control using add-on devices. TechCube has also successfully implemented smart control of a hot tub using a contactor in the distribution board and a Shelly EM to monitor power. We used this along with a zigbee tilt sensor attached to the lid to show exactly what state the tub was in on the Home Assistant front end, and allow demand-shifting of the heating cycle to the most cost effective times of the day.
Making the appliances smarter means I don’t forget to unload them when the cycle is complete and they automatically delay the start until energy is cheapest, or greenest, whatever your goal for demand-shifting is. It also means we can see exactly how much energy these appliances use – home assistant does a great job of visualising this, which I’ll cover in another post.
Hi
I’me verry new to node-red (noob)
is it possible to give the values behind the nodes
Hey, thanks for your interest.
I’ve uploaded the nodes to https://www.tech-cube.co.uk/wp-content/uploads/2022/03/dishwasher-node.txt you can import that to a blank flow and play with it. Note that it won’t just work for you as it references entities in my Home Assistant which likely don’t have the same name or even exist in yours. Hopefully this helps you learn how the flow works though.
If you need any more help reply and I can always email you directly.
Thank you
very very much