You can move this esp32 device close to your dryer now and plug it in.
Do you install the ESP32 on a breadboard or into some other container?
Does the esp32 device need to be connected physically to Home Assistant (installed to rpi)?
Or it is powered via a 5v USB electrical connection allowing wifi sta to transmit all the necessary data?
First, thank you to everyone who worked on this. I had zero experience with Esphome and flashing esp32dev boards. It took me a bit to figure it out, but it’s working really well so far. I do have one question…
When I add the above code to my configuration.yaml, I get this config error:
Invalid config for [sensor.template]: [delay_on] is an invalid option for [sensor.template]. Check: sensor.template->sensors->dryer_on->delay_on. (See ?, line ?).
I checked in Studio Code Server and it’s showing an error message indicating that “delay_on” and “delay_off” are invalid properties.
I’m hoping for that too. I tried connecting the device to a couple of computers directly through the USB plug to see if it would be detected: nope. I’m guessing the USB connection serves for power delivery only.
(I posted some pics of the two parts of the SmartDry board with the esp32-wroom-32 module here )
I’m the OP for this thread. When I originally posted about the SmartDry back in November, 2019, I was hopeful for a device that we could integrate into Home Assistant.
I also recently marked @bryangerlach as the solution to the thread, he took a mountain of information gathered from many people in this thread and provided concise directions on how to establish local control over a SmartDry sensor and continue to operate it.
I just wanted to say “Thank You”. The fact that we found a device to solve a problem, then reverse engineered the API to make it work within Home Assistant, and then when the Cloud service died, were able to further reverse engineer it to create a permanent, locally controlled, sensor out of it; is just remarkable.
Yes, I recently purchased a second unit off of eBay and it appears they re-made the hub in the later versions into a pass-through AC plug. Pretty genius, but effectively the same.
Thanks for your initial work aswell @pickerin, you did a lot of the legwork back in 2019!
Though I think that the sentiment around here has been the same for a while, reply #3 in this thread was literally saying a cloud solution relies on the company not going bust.
@bryangerlach I had a quick question since I’ve been running this through a few dryer loads now.
I think the Battery sensor is incorrect. I have notes for Battery Level stating:
Battery Level: 1960 “New”
Battery Level: 130 “Idle”
Battery (vBat) drops to 130 when idle
I’m now seeing this behavior, as my “Low Battery Indicator” is coming on when the unit is idle, but then when I’m drying a load, it’s suddenly not “low” anymore…
Not sure what the right way to handle this is, but I don’t believe it’s a simple output level.
This worked like a charm! I got it setup and working this weekend. Still experimenting with the sensor settings to successfully indicate a dry load, but otherwise, thanks for sharing this!
Thank you to those way more technical than me that figured out how to reverse engineer this helpful little gadget so we could implement it locally. @bryangerlach – Thank you so much for your write up! I’ve never worked with ESPHome and your write-up made the whole process go very smooth.
Now a question.
Did anyone ever get the temperature and battery sensors working correctly? I previously implemented smartDry into HA by looking at the AWS details, and had two additional automations than what’s been discussed. One (which worked) told me when the battery was low and needed replaced. Another (which I couldn’t get to work at the time) told me if the temperature exceeded some max safety threshold. It would be really helpful to get both of these working with the local option.
Battery always reports a “130” when idle. That seems to get interpreted weirdly depending on what you’re looking at/using to find “low” batteries.
You could build an automation that reports the battery level only when “active”, and something like 100% when idle (or unavailable would be more correct).