Bringing in Analog Sensors & Misc Items to SmartThings using ST_Anything - My Writeup

I just wanted to post a quick writeup of my finished project using the ST_Anything software ([RELEASE] ST_Anything v2.9.2 - Arduino/ESP8266/ESP32 to ST via ThingShield, Ethernet, or WiFi) @ogiewon created.

I had been looking for a way to pull in a high accuracy outdoor temperature and humidity sensor into my system for over a year and kept coming up on dead ends. In my part of the world our winters get down to -20 F and summers up to around 100 F. There is nothing out there that is native Z-Wave which works in this huge range and based on my occupation I have access to commercial/industrial sensors. The issue is 90%+ of commercial grade sensors output either a 4 - 20ma or 0 - 10v signal and nothing has Z-Wave.

The sensor I was trying to pull in was a Vaisala HMS82 (https://store.vaisala.com/us/hms82-outdoor-humidity-dew-point-wet-bulb-enthalpy-and-temperature-sensor-for-hvac-current-loop-3-accuracy/HMS82/dp) which not only has a range of -40 F - 140 F but is accurate to 0.1 degree. So when you do the math thats 1800 possible values to account for. It outputs 4 - 20ma but I have access to current -> voltage converters so I needed something that could do either. After lots of searching and coming up empty handed I posted a reply to a thread from someone else looking for the same thing (Looking for a device that reads 0 - 10v sensor output). And thats where the ST_Anything suggestion came up. Long story short (you can read that thread) I settled on the ESP32 board (https://www.amazon.com/gp/product/B0718T232Z/) and after lots of trial and error got it working reliably with my sensors to within 0.5 F and % across the range. Then once I got that working I decided to pull in a couple other things in the garage that made sense and make it a more permanent install.

Looking around my garage I really only had two things I wanted to monitor. The first was a electric garage heater and the second the temperature in the garage in general. If I didn’t have a MyQ enabled garage door opener running MyQ Lite already ([RELEASE] MyQ Lite Door and Lamp Control (for Liftmaster/Chamberlain)) I would have also added that in.

For the garage heater I found a cheap current sensor that you clamp around the hot lead to the heater and when its running it closes a set of contacts. This creates a simple dry contact that can be fed into the ESP32 as a digital input.

For the temperature I went with a DTH22 (https://www.amazon.com/gp/product/B01N9BA0O4/) which was supported by the ST_Anything library. Also for $7 how can you beat it…a lot cheaper then a Z-wave module doing the same thing. I also found that a standard 1 jack Ethernet wall plate, when scraped out ever so slightly, will fit the sensor and not look like crap. :slight_smile: Here is mine mounted on the wall next to the enclosure holding my board:

Once I got those two other components I decided to do it up right and solder the ESP32 to a PCB board and mount everything with screw terminals. Since my sensors are supplied with 24v DC I wanted to get something that can just use that instead of adding another adapter. So I bought some DC-DC converters (https://www.amazon.com/gp/product/B01MQGMOKI/) which had a adjustment screw. In retrospect this was a PITA because that screw/resistor is one full turn for 0.8v - 24v so dialing in 3.3v took a lot of testing. Closest I got was 3.332v and I left it alone. If I did this again I would get a DC-DC converter that had a option to hard set 3.3v (which they do make). I also picked up some Adafruit PCB boards (https://www.amazon.com/gp/product/B00SK8QR8S/) and simple screw terminals (https://www.amazon.com/gp/product/B06XKVLVK2/). Note on the screw terminals: The don’t play nice sitting next to each other…too much plastic on the sides. Again hindsight being 20/20 I would have gotten much bigger ones and just soldered ever ESP32 pin even though I wasn’t using them all.

So after some soldering, mounting, and wiring I have a operational ESP32 running ST_Anything pulling in Outdoor Air Temp & Humidity, Garage Temp & Humidity, and the status of my garage heater:

I also soldered in terminals for the SCL/SDA pins as I’m debating pulling in a Adafruit TCS34725 (https://www.adafruit.com/product/1334) so I can do what @Todd_Meyer is trying to do ([RELEASE] ST_Anything v2.9.2 - Arduino/ESP8266/ESP32 to ST via ThingShield, Ethernet, or WiFi).

And here is how they pull in:

(Note: I’m using a custom contact sensor DTH to change labels so I can do On/Off/Yes/No/Etc. Otherwise everything is stock ST_Anything)

Overall I didn’t think it was hard to do this especially with the documentation available with the ST_Anything project and I highly recommend it for anyone trying to get around the lack of Z-Wave devices for certain things (like the sensors I was using) to bring them into their system relatively cheap.

-Allan

6 Likes

Allan,

Very nice write up! Thanks for sharing.

Dan