I won’t give a detailed description for how to replicate this, because it’s not a ‘one size fits all’ field and I think a lot of simplifications can be made with a stronger stepper motor than I used (I used the cheapest 5 USD version from Amazon).
But here is the finished product:
Here is what I did in short:
(a) Stepper motor and a driver.
ESPhome’s stepper component supports drivers of type A4988 or ULN2003.
In essence, what you get is a stepper motor with a cable to a driver, and the driver have 3 or 4 outs for cables to GIPOs.
You also will need a 9v or 12v power source. I often just take some old cable I have laying around at home and connect it. This time I took the cable from a massage pillow the Mrs hadn’t used in a while. Please note that if you just have moved, you got a golden window for a few months to get your hands on great voltage reducing cables since you can always blame the missing cables on ‘stuff getting lost in the move’! So if you just have moved, don’t snooze these projects too long. Like ‘Stig Stig have you seen the cable to my massage pillow? Nope, must have been lost in the move.’ Works perfectly.
(b) ESP32 / ESP8266
I used an ESP8266. Just connect the ESP to the RPI with a USB/mini USB cable that support data traffic. Install the plug-in ESPhome and set up the ESP board. Copy paste the configuration from ESPhome (Stepper Component — ESPHome) to the configuration file for the ESP board and the configuration under “Home Assistant Configurarion into the configuration.yaml file.
(c) The stepper motor and the dish washer
So opening a dishwasher requires quit much force.
Since the stepper motor I used was so weak, I had to complicate things a bit. It was obvious that I could never open the dish washer with the motor plus gears alone.
But I created gears first. One small on the motor + one big gear next to it is the way to go. It’s quite simple, if you take something moving at a certain speed with a certain torque, you will get higher torque if you decrease the speed which you do with a small gear driving a bigger gear.
On the bigger gear, I put a over layer that is oval. If the bigger gear is close to the door of the dishwasher, it will push it open when turning a full circle.
I only used parts I had laying around at home for this one, and since I don’t have a 3D printer, I built the gears in wood with a template I created at:
https://woodgears.ca/
(d) Calibrating the force needed to open the dishwasher, so that it can be open even by a really weak stepper motor
So since my stepper is really weak I needed to ensure that the hatch could be opened with a weak push. There are two ways to do this. (1) Either you find something that with great precision leans on the hatch, so that the stepper can do the rest. Or (2) you take something that is too strong for the hatch and balance it out.
I had to go with 2. I took an air spring (or whatever it’s called in English) that all station wagons and suvs have to help open the trunk. They are real cheap, like 10-15 bucks. This air spring will surely be too strong for the hatch on the dishwasher and push it open by itself. Mine was at least by quite a wide margin. So I cleared the refrigerator from magnets and integrated them into a list that I put over the dishwasher while just attaching metal to the inside of the hatch. I added one magnet at the time. 5 did the trick.
Here is the finished product before it was placed and hooked up to the electrics:
The magnets:
(e) How to trigger it when the washing is done
I have the dishwasher connected through a Tuya plug with electricity metering. I’ve not had time to set up the automation, but the plan is to trigger it when the electricity consumption dips, or like 2:30 after it starts.
Some thoughts on improvements
-Any tips on stronger stepper motors than I used would be appreciated! I won’t use those weak ones again.
-I am not sure that my Tuya plug is built for a dishwasher (it surely isn’t)… It works, but it could be broken by the quit heavy (inductive) load of a dishwasher.
-Instead of using the gear with an overlay approach it might be possible to use — what i think is called in english — “ball screw” (be careful when you Google for different type of screws in English because some very strange pictures can show up). I.e to get a straight line push in and out.