Announcing the "ST_Anything" Arduino/ThingShield Project

That’s a great use case for a custom “thermostat” style device! Glad it is working for you!

Finally, I’m ready to try to get this pulse counting implemented since I have now the ESP8266 and your ST_anything_ESP and thus dont need the Thingshield and Arduino Mega. Does the .ino and .groovy need to be modified for ST_ESP and arduino - non-thing-shield.

Edit : I was referring to this post:




I just looked through my PS_PulseCounter class that I wrote back in 2015. This class is specific to the Arduino 2560 due to the need to implement Hardware Interrupts to properly count the pulses accurately.

Therefore, I really doubt it will work on the ESP8266 platform in its current configuration. When I have some time, I’ll see whether or not this code can be ported to run on the ESP8266 platform.

I still support the Arduino Mega with either the ThingShield (Zigbee) or an ESP-01 (Wifi) for network connectivity. However, I have not yet ported the old PulseCounter sketch and Device Handler example files to work with the newer Ethernet connectivity.


I would gladly donate an ESP07 module to the cause.

I already added support for using an ESP-01 module as a “WiFi shield” for the Arduino Mega. Check out my ST_Anything_WiFiESP.ino example sketch.

If you want to use any ESP8266 module as a standalone controller, try the ST_Anything_ESP8266WiFi.ino example sketch. I have run a stripped down version of this sketch on a ESP-01. I had to strip it down due to only having 2 GPIO pins.

Let me know if this meets your requirements.

For those of you who are only following this old thread, I am working on some new enhancements to the ST_Anything project. Still a work in process, but feel free to check it out if you’re so inclined…

1 Like

Hi all,

with all of the work that Dans has done … WOW …
does any one want to part with a couple of the original Smar Thing Arduino Shields?

I built a custom motherboard to hold the ThingShield, and now the MB’s and my project is useless.

I will pay top dollar, $60.00 each plus shipping for at least 2 units

Any assistance is appreciated


1 Like

Hey @BenB2016,
I may actually have two shields. I definitely have one never used spare Shield, and may have one that I used (very little) for prototyping/testing new device types. I will check tonight and send you a private message.

BTW: Giving up my precious Shields would not have been possible without all of Dan’s great work!

1 Like

Hi Garnet

Thank you


grateful for your work I am from Colombia and I have smartthings in my house and I am a DIY enthusiast, I have saved some Xbee WIFI S6B, I would like to know if these can be connected to smartthings

I have never used an Xbee module, but others have. Search the forums and you’ll find some examples, although they are pretty scarce. The old ST ThingShield (Zigbee) and Ethernet based connectivity are much more popular. These are the connectivity options I support in ST_Anything.

Dude… you rock!!! I just now noticed the whole cancellation deal with ThingShield and then read all the angry posts about it. Your solution is not only faster and more elegant, it is cheaper and more standard. If the ST folks were really on the ball they would have thought of this themselves. Anyway, thank you. You have made so many important contributions to the community. I ordered a few W150’s and a few ESP8266’s to try it out and I can’t wait. Now I just have to think of a fun project… maybe controlling my hot tub…

1 Like


Ken - Be sure to try using the latest and greatest code which eliminates the need for virtual devices altogether. My latest software uses the new Composite Device Handler (Parent/Child) to permit one device to have multiples of a single ST capability (like having 8 contact sensors on one arduino.) I haven’t updated the Github ReadMe yet, but I am working on it…

All, I have just released v2.5 of ST_Anything with support for the new Parent / Child Device Handlers. Check it out at

1 Like

I had a similar issue and wonder if it’s the 5V output of the Arduino going to the 3.3V ESP-01. I bought a 5.5V-3.3V voltage regulator to try, but changed my project to use the Arduino Ethernet Shield. Only one regulator would be needed as the 3.3V output of the ESP to the Arduino would be fine. I did find a couple post that indicated that the ESP should be 5V tolerant for some of the input ports, but not sure if this is completely correct.
Anyway, something to consider as the 5V input my eventually mess up the ESP. If you try it before me, please let us know your results.
Update: I do have a separate 3.3V supply input voltage for my ESP-01.


I agree with @Garnet. I too have seen some unstable behavior from the Arduino + ESP-01 combination.

Can you please share a wiring diagram of exactly how you have connected the ESP-01 to the Arduino? Are you trying to power the ESP-01 directly from the Arduino’s 3.3v pin? Or do you have a dedicated 3.3V power supply for the ESP-01?

Since I already have the system running and it has been running great under the old board does anyone know if you can set this up to openand close a damper and turn off and on a fan on a fresh air duct that I am going to through into my HVAC system. I would like to be able to open and close at a percentage based on voltage.

I have the same problem. After about a week it freezes but the networking is still responsive. I originally had the ESP-01 then tried it with the w5100 shield and same issue on both the new and old st_anything code versions. Sucks cause I really love this setup. In order to get it working I have to power cycle the board and then it repeats

I will try to look at this issue in more depth once I finish getting the ThingShield v2.5 code released.

If you leave a Serial Monitor window up and running, do you ever see the “Free Ram” get consumed? There is always a possibility that I have a memory leak in the v2.x LAN based connectivity software. Personally, I am still using a ThingShield on my primary deployment, running very old code.

It may be possible, but we’ll need a little more information…

Turning the fan on/off is easy. Just use one of my EX_Switch devices. Connect a relay to the digital output and then connect the fan to the relay dry contacts to turn power on/off. Obviously, the Arduino cannot supply enough power to run the fan at the correct voltage/current. That is what the relay is for.

As for adjusting the dampers, that depends greatly on what type of signal the damper expects? The Arduino does not have a true Analog Output which would vary voltage from say, 0 to 5 volts. The Arduino’s “AnalogOuput” routine is used to generate a PWM output signal. I am sure you could add a true analog output chip to the Arduino, but then you’re going to need to write some code to integrate it.

Sounds like an interesting project.

1 Like