Announcing the "ST_Anything" Arduino/ThingShield Project

Good morning,

If there is anyone willing to sell a Smartthings Arduino shield, please let me know



@ogiewon thak u for this i can give it a go but i think only u can actualy make it.
Please give it a go as soon as you can…
I cannot find EX_DimmerSwitch could u point me to the right place pls?

It is in the ST_Anything Arduino library folder. You’ll find a .h and .cpp file for it. If you’re not a C++ programmer, you may find it a bit challenging.

1 Like

@ogiewon thank u for coming back. I don’t suppose you could perhaps provide a bit more detail guidance ? Is there a way for me to just add some basic code to EX_Dimmer to drive a WS2812b LED strip to display a simple colour say white and where would be the best place(s) in EX_Dimmer to insert the code piece? I have not coded since college… i did C++ back then, that’s like 20years ago… but i could try borrow other peoples code and copy paste it in the right place of EX_Dimmer if you could provide a bit more detail to support me  Basically what is needed for a basic colour display like blue or white (without any fancy patterns) is to define only one pin on the NodeMCU for the signalling of the WS2812b LED strip and feed the signalling with the right small bit of code. Then we would need a basic LED strip on and off control DH with an ON OFF tile.
(Edit) BTW i cannot find EX_Dimmer in your git hub repository inside ST_Anything in the libraries. But found 2 files called EX_Switch_Dim.h and .cpp but have no clue what to do exactly.

I wish that u made it though at least to trigger the basic colours of a WS2812d led strip like blue, white, red and green and dimming them. The fancy patterns in those vids come from libraries like fastLED and Neopixel etc.

Still using mine … been swamped with other stuff so I haven’t migrated yet over to the new architecture

Hi Ken, Thanks for the update, let me know when you are ready


Sorry for the confusion on the file name for the dimmer… It is EX_Switch_Dim.h and .cpp

In the void EX_Switch_Dim::writeStateToPin() function you could change the code to call whatever LED library you want. You could also change the void EX_Switch_Dim::writeLevelToPin() function to interpret the dim levels into requests for specific LED sequences, however this routine only gets called once for each time the dim level changes.

You’d want to use these two files as a starting point for a new C++ device class. I’ll keep this on my todo list, but no promises of a timeline.

Here is a link to the .cpp file.

1 Like

I know some folks still frequent this thread instead of the new one… I’ll just leave this here in case you have interest in using the ESP32 with ST_Anything.

1 Like

Hi All…

It’s me again… like a broken record …( Old School )

If anyone has an Arduino ThingShield available for sale, please let me know
still looking for a couple units.

Thanks again


Hi Dan
I have 3 dth11 in my house one of those is on the dealing, can I substrat 2 degre from it on the readout?

Thank you


If you’re running my latest version of Parent + Child Device Type Handlers, you now have the option to adjust the temperature offset by going into the temperature child device and adjusting its settings (gear icon).

This is the old thread. You may want to check out the newer one which is being kept up to date.

Hi all… trying to update my UNO and Thingshield to include new devices. While compiling the new code, I am getting an error (same error happens when I compile the example code).

ST_anything:170: error: ‘pinRX’ was not declared in this scope

 st::Everything::SmartThing = new st::SmartThingsThingShield(pinRX, pinTX, st::receiveSmartString);      //Use Software Serial

I’ve added the Smartthings and ST_Anything libraries…so not sure why I am getting the error. Anyone have any ideas?


Sorry for the issue. I have just uploaded a revised version of the ST_Anything_Multiples_Thingshield.ino sketch to my GitHub repository. This version will compile without the error for the missing #defines for pinTX and pinRX.

However, this example obviously is designed for an Arduino MEGA, not an UNO, due to the large number of devices it exemplifies. You will need to remove many of the device definitions from the example to reduce the memory footprint of the compiled sketch. Otherwise, you will receive a “sketch is too big” error when compiling for the UNO.

Thank you for the feedback, and again I am sorry you ran into this issue.


That worked. Thanks for the quick reply and fix, Dan!

1 Like

I’m interested in using ST_Anything to connect to a commercial alarm system via serial and parse received commands via rs232 to update SmartThings. Would it be possible and where should I start? Any serial examples?

I would suggest google your “alarm system and arduino” some one may done the code for it. Then you may able to modify the code to work with stanything. I have a esp8266 monitoring the keypad bus of by alarm system.

I’ve done a lot of googling. In fact that is how I found ST_Anything. I’m trying to connect to a Interlogix NX-6 via a NX-587E NetworX Virtual Keypad Module. Sounds similar to what you are doing. But I haven’t been able to find anyone that has integrated that hardware to SmartThings.

@ogiewon I talked about adding OTA support months ago and I finally got around to doing a pull request for it. I did it the easy way though meaning a lot of code will need to be added to any sketch that wants to use it. The better way would be modifying the library files to keep the code mobile.

1 Like

Thanks! I’ll take a look at your PR when I can find some free time. It is a very busy travel week.

If your handy writing custom code, you may want to simply use one of the “SmartThings” Arduino libraries in the ST_Anything GitHub repository. This permits you to write your own SERIAL to SmartThings Bridge device and have total control. The ST_Anything library uses the SmartThings library to perform all network communications between the microcontroller and the ST Hub/Cloud. Sometimes, it is easier to bypass ST_Anything and just use the SmartThings library since you’re not really interfacing with traditional Arduino sensors.

Another ST user wrote a similar bridge to integrate his old lighting system with Smarthings via an RS232 Serial interface. He kept the Arduino code very simple, and just used it to pass Serial Strings back and forth between a ST DeviceHandler/SmartApp and the physical controller device. The true brains of his system was in his SmartApp. If you want to take a look, I believe you’ll find his old code in the following repo. Be forewarned, he no longer is an active ST community member. So I would not expect too much assistance from him. His example uses the old ThingShield, which is no longer sold by ST. My “SmartThings” libraries support a variety of micrcontrollers/networking options, in addition to the old ThingShield.

© 2019 SmartThings, Inc. All Rights Reserved. Terms of Use | Privacy Policy

SmartThings; SmartApps®; Physical Graph; Hello, Home; and Hello, Smart Home are all trademarks of the SmartThings, Inc.