[RELEASE] ST_Anything v2.9 - Arduino/ESP8266/ESP32 to ST via ThingShield, Ethernet, or WiFi


(Dan) #1

ST_Anything allows you to integrate a custom Arduino or ESP8266 device with SmartThings by editing only 1 Arduino sketch file! No groovy programming skills are required! You simply decide what devices are attached to each pin of your Arduino, ESP8266, ESP32 and ST_Anything handles the rest for you! Numerous example sketches are included to help get you started.

[UPDATE] Added ESP8266 Arduino OTA support. Update your SmartThingsESP8266WiFi library, compile your sketch, and load your ESP8266 via USB. Afterwards, you can update your ESP8266 Over The Air from the Arduino IDE. This is especially helpful for hard to reach devices.

I am happy to announce the release of ST_Anything v2.5, with added support for SmartThings new Composite Device Handlers (i.e. Parent / Child DHs)! No more messy/complicated SmartApps/Virtual Devices. In fact, you probably will never need to modify the groovy DH code for ST_Anything ever again!

V2.7 adds support for the Arduino W5500 shield and includes a new AlarmPanel ESP8266 example sketch.
V2.71 adds support for the Arduino WiFi101/Adafruit ATWINC1500 shield, the Arduino MKR1000, and fixes the performance and reliability issues found earlier when using the Arduino MEGA + ESP01.
V2.8 adds support for the ESP32
V2.9 adds ESP8266 Arduino OTA support plus much more (see ReadMe for more details)

V2.x was created in response to SmartThings recent decision to stop selling and supporting the original ThingShield. This version has support for the following tested hardware configurations:

  • Arduino UNO R3 or MEGA 2560 + ThingShield
  • Arduino UNO R3 or MEGA 2560 + W5100 wired Ethernet Shield
  • Arduino UNO R3 or MEGA 2560 + W5500 wired Ethernet Shield
  • Arduino MEGA 2560 + ESP-01 WiFi module (using “AT” firmware and WiFiEsp library - not very reliable!)
  • NodeMCU v1.0 ESP8266-12e WiFi (no Arduino needed!)
  • ESP8266-01 (ESP-01) WiFi (no Arduino needed!)
  • ESP32 board WiFi (no Arduino needed!)
  • Arduino MKR1000
  • Arduino MEGA 2560 + WiFi101 shield

As always, feedback is welcome. If any of you try to implement this, please feel free to improve the ReadMe files via a GitHub pull request. I welcome the assistance! I will continue to update this post/thread as I receive feedback from the community.

New ST_Anything v2.5+ Architecture Flow Chart

Please see the ST_Anything v2.9 ReadMe below for more details, as well as the new ReadMe I created for the new v2.x SmartThings library.

ST_Anything Library

SmartThings Library

Announcing the "ST_Anything" Arduino/ThingShield Project
Smart Sprinkler System
Is SmartThings Shield for Arduino Available Anywhere?
Thingshield--tell support you want them still offered
Raspberry Pi Codesys Project
ESP8266 Smart Sprinkler System
Looking for a multi momentary switch module which will work with smartthings
Announcing the "ST_Anything" Arduino/ThingShield Project
How to turn anything with an on/off switch into a connected device?
Arduino or raspberry pi
Smartthings Cree PCM integrated Audio Volume Control
Arduino Integration?
ESP8266 Temperature Monitoring in Smartthings? (Where to start with a new device)
Wanted to Buy: ThingShield for SmartThings (Arduino)
Battery powered Z-wave momentary relay/contact options
Fibaro RGBW Controller (4x0-10V input)
Any alternative to SmartThings Shield for Arduino?
Addressable Led's
Announcing the "ST_Anything" Arduino/ThingShield Project
Zigbee Siren
Connect wired alarm system sensors to SmartThings with a NodeMCU ESP8266 [deprecated]
Internal contacts on ecolink door sensor (DWZWAVE2.5-ECO)
[RELEASE] Konnected Security 2.0 - Connect Wired Alarm System Sensors and Siren to SmartThings - big update and new name!
ST_Anything, No Child devices showing up, Parent Device is
ELI5 - Uses of running hassio + ST?
[RELEASE] Sonoff, Sonoff TH, S20, Dual, 4CH, POW, & Touch Device Handler & SmartApp ($5 & $10 Smart Switches)
CreeRelays Project (part Cree bulb, part Arduino)
Project: New Construction Home from bottom up. What do you recommend?
Bringing in Analog Sensors & Misc Items to SmartThings using ST_Anything - My Writeup
Device Handler Polling Other Contact Sensor State
Motion Sensor Suggestion Needed (Yes, I've done my research here)
Is Z-Uno supported by Smart Things? I need a water level sensor
Arduino Integration?
Home Water Management- What is best for Level and Pressure or Flow Monitoring- FortrezZ vs. EKM Metering?
Trying to Build My Own Z-Wave Garage Door Opener (Looking for a Relay Switch Suggestion)
Simplest Arduino (input output) like device supported by smartthings?
Looking for a device that reads 0 - 10v sensor output
SmartThings Integration With Home Security
Arduino Smartthing help
Acurite weather station question
Acurite weather station question
DIY HVAC system over pressure device
Amazon: Prota Microbot Starter Kit $199 for bridge and 3 push microbots
Nodemcu integrated with Bluetooth smoker
I need a Arduino Shield, help please
Help with ST_Anything scripts anyone, please?
Announcing the "ST_Anything" Arduino/ThingShield Project
Ping a local device
How can I receive LAN messages on the ST hub (when the messages can come at any point)?
WTB: Thingshield
Best Arduino Zigbee Solution
Is Z-Uno supported by Smart Things? I need a water level sensor
How to make arduino ethernet shield to send POST commands to hub
Arduino Integration?
Does any one know of a z-wave sensor to connect existing hardwired alarm system
Is SmartThings Shield for Arduino Available Anywhere?
Replacing the Arduino Thing Shield with an xBee in transparent mode
Wanted: ST Arduino Shield
Wanted: ST Arduino Shield
Digitizing Electronic Mattress Pad - Arduino project
Changing old manual dial humidifier setting to something smarter?
Connect wired alarm system sensors to SmartThings with a NodeMCU ESP8266 [deprecated]
Recommendations on any 2 in 1 window sensor?
Build a smart "Clapper" with SmartThings and Arduino
A way to read the state of an LED
ESP8266 Node MCU - Temp, Contact, Water Sensor
Best RPi OS for numerous smart home projects?
Two Sources connected to one temp probe?
[RELEASE: v6.7] ActionTiles (formerly called "SmartTiles V6")
ESP8266 Garage Door Opener
Trying to control older lighting system over RS-232 with simple ASCII commands?
Communication Protocol Boards / Controls for custom design work?
(David Forsthoffer) #2

Awesome…can’t wait to test it out!

12VDC Trigger
(Nate Newsome) #3

I’ve got it up and running on my old security system. With some modification I’ve got multiple doors and my motion sensor working perfectly. Is there a good way to label each door on the app? It’s not a big deal I just thought it’d be a nice touch.

Also, I see the siren portion of the code. Does this mean I can wire this to my existing alarm siren? Any documentation on how to do this?

(Dan) #4

You can add a label to each tile if desired in the Device Handler groovy code.

Here is an example (see code below.) Note the addition of the “CS1” text in the ‘label:’ fields below. You’ll have to play around with it a bit as the formatting of text is kind of hit or miss depending on whether you’re an Android or iOS user.

The second step after you get the Device Handler working is to create a Virtual Device for every Tile in the Arduino’s Device Handler. Then use the Multiplexer SmartApp (with mods as necessary for your specific use case) to glue the Virtual Devices to the individual tiles in the Arduino’s Device Handler. These virtual devices will then be used as individual devices, with unique names, for all of your other SmartApps to use.

I updated the ReadMe with some of these details near the bottom.

   standardTile("contact1", "device.contact1", width: 1, height: 1, canChangeIcon: true, canChangeBackground: true) {
		state("open", label:'CS1 ${name}', icon:"st.contact.contact.open", backgroundColor:"#ffa81e")
		state("closed", label:'CS1 ${name}', icon:"st.contact.contact.closed", backgroundColor:"#79b821")

(Dan) #5

Oh, and as for the siren, yes you can connect a relay to the digital output pin you assign on the microcontroller. Attach that relay’s output to the Siren and you should be good to go!

(Garnet) #6

This is great to see! I plan to start using this when I get finished with my current project - controlling some RGBW led strings with ST. Hope your using the Arudino IDE to program the ESP8266, but I guess that I will see.
Thanks again - Been using the original ThingShield to control my Garage Doors since the beginning. Now my GD open automatically when I return home from work.

(Joakim Olerius) #7

Will it be able to run both this and mysensors gateway on the same Arduino? In that way we could expand our systems both easy and cheap

(Dan) #8

Yes, everything is done via the Arduino IDE. I built everything using v1.8.1.

I have been wanting to add some RGB Lighting Support as I have a 5m strip of NeoPixels laying around. Should be a simple matter of adding another ST_Anything device sub-class, possibly of the EX_Switch class. Should be fun! I am hoping the ESP8266 is compatible with the NeoPixels. I know an Arduino UNO/MINI/MEGA works with them.

(Dan) #9

While I have looked at MySensors in the past, I have not looked at trying to combine ST_Anything with MySensors. Seems like trying to squeeze two Master Controllers into the same Arduino. Sounds complicated to me, but maybe it would be simpler than I am thinking.

(Garnet) #10

Thanks for the reply.
I believe that the ESP8266 can control the NeoPixels as it is a digital RGB that can be controlled by just 2 digital pins. (Info is located at: https://learn.adafruit.com/digital-led-strip where they use a Arduino.) I am controlling an Analog RGB, separate input for each color, using a SmartLife H801 controller which is ESP8266 based. (See [RELEASE] SmartLife (H801) RGBW LED Strip Wifi Controller & Bulb for reference.)
I wanted to buy a 1M RGBW but they are only available in digital, so I have been stuck. If you get NeoPixels working then this would add another option for the community, and of course fix my problem. Also, it would work out pretty well as the other project only works for Analog LED’s and your would work for the Digital ones.
First I gotta get my ESP working with your new Anything v2.

(Dan) #11

I have added support for using the inexpensive ESP-01 WiFi module in conjunction with an Arduino MEGA 2560 to the SmartThings v2.1 library.

I have also added a new example to ST_Anything that demonstrates the usage of this new hardware comnination. Please see the new ST_Anything_WiFiEsp.ino sketch.

Announcing the "ST_Anything" Arduino/ThingShield Project
(Dan) #12

I just added support for running ST_Anything directly on the tiny ESP-01 module. The ESP-01 is normally used to add WiFi capabilities to an Arduino. However, it is quite capable all by itself. It only has 2 GPIO digital pins, but often this is all that is necessary.

New ESP-01 standalone example sketches can be found in my github repository at

(JohnnyFRX) #13

WOW WOW WOW…and THANK YOU! This is beyond cool and worked like a charm on the first shot via your instrux and code. I loaded it onto an ESP826612E (NodeMCU V0.9 I have HUUUGE plans for using this goodness on all kinda ‘Things’. Once again, Thank you VERY MUCH and have a most wonderful weekend!

(Dan) #14

Glad to hear it’s working for you. Please let me know if you have any suggestions for improvements.

(Robert Mitchell) #15

Any chance for more of a how-to writeup? Like This is how you add the library, this is how you add the sketch, etc.
I have two ESP8266’s on order and I want to get ready… Already have the Mega 2560.
Thanks for your work on this!

Never mind - I just found your writeup. Looks comprehensive even enough for me!

(Dan) #16

Have you read the two ReadMe’s already in my Github Repository? They are linked in the first post. If not, that’s a good place to start. I detail the exact steps on what to copy where on your system.

Also, there are a multitude of guides already online on how to use the Arduino IDE, including the use of libraries.

Note: Use the “Manual Installation” instructions

And for using an ESP8266 with the Arduino IDE


(Robert Mitchell) #17

Thanks Dan!

Has anyone found an appropriate Arduino breadboard shield to use with the ESP8266?
A full size breadboard won’t fly…

(JohnnyFRX) #18

I ordered a few of these for my NodeMCU boards and they work quite nicely.

(Robert Mitchell) #19

Thanks - I ordered two. Adafruit also has an ESP8266 board. Ordered one of those.
At least these things are cheap enough to play with!

(Jack Browne) #20

Hi @ogiewon,

Complete noob here but I can see you’re a bit of a guru when in comes to ST anything. I’ve been getting my head around Smartthings a bit but when it comes to Arduino I know nothing. However, I’m a fast learner.

I’m working on a residential construction project so there is the potential for some paid consultation if you are interested.

There are 25 blinds in the house to be bought, these will more than likely be from China with 433Mhz multi channel remote controls (because they’re cheap). I’ve tested one with a Aeon micro motor controller and got it up and running on ST but we want to be able to control the blinds from the room without the use of the phone. Due to my limitations with coding etc I’m thinking of using the dry contacts on the motor controller to put an up down stop switch in each window. But by the time we buy 25 motor controllers and 25 switches that wont look out of place the cost is starting to add up.

What could you recommend for getting the up down and stop functions on ST so that we could use the original 433 remotes in each room? Bearing in mind my limitations and the fact that this is not my home and if something goes wrong the owner would need to get some sort of support.

I appreciate your help with this and I look forward to hearing from you.