[RELEASE] ST_Anything - Arduino/ESP8266/ESP32

Most likely, yes. Someone would have to completely rewrite the integration to either work with whatever ST replaces Hub-Connected LAN DTHs with, or as a direct-connected device to the ST cloud.

Fortunately, ST_Anything does work with Hubitat, so you’ll have that as a potential option should the need arise.


Hello, can I install ST_Anything on a Nano Pi Neo - https://www.friendlyarm.com/index.php?route=product/product&product_id=132


No. ST_Anything only runs on microcontrollers that compatible with the Arduino IDE, not full blown computers that rely on full operating systems.

A NodeMCU ESP8266 or NodeMCU ESP32 are both very low cost and effective microcontrollers that ST_Anything can be run on.

Is there a reason you want to use the Nano Pi Neo?

Just that I have it spare. Thanks for confirming. I’ll get some NodeMCU’s ordered.
Any Zigbee devices to cut the wifi traffic down?
Thanks again.

SmartThings used to sell an Arduino shield called the ThingShield. It was Zigbee based and is what prompted my son and I to write ST_Anything. It is very hard to find used ThingShields these days, and I am guessing that their days are numbered… Once the Groovy IDE gets shut down in sometime in 2021, I am not sure if there will be a way for them to still function properly. (Note: I do have the ThingShield working on Hubitat! :wink: )

In addition to the old Zigbee ThingShield, there are two other Zigbee devices that community members have created and offer to the community. The first is @iharyadi’s Environment Sensor EX and the second is @drandyhaas’s Mona Lisa. Both work very well, however I do wonder what will come of them once the ST Groovy IDE is shut down next year. Hopefully creating custom drivers for whatever replaces the current Groovy ST IDE for hub-connected devices will not be too hard.

1 Like

Hello ogiewon,
I see today that you made changes to the ST_Anything DTHs to make them work properly with the New SmartThings Mobile App. I have some ST-Anything devices that are not displaying the values in the New ST App.
I understand that I need to update to the latest device handles.
I am not sure how to do this, can someone provide the steps to this process?
It would be greatly appreciated.

If you’re using the GitHub integration in the ST Groovy IDE, it should be pretty easy to UPDATE and PUBLISH all of the ST_Anything DTHs. Just be sure to click the PUBLISH checkbox before updating all of the DTHs.

Thanks ogiewon,
That was easy.
However, it did not change anything in the NEW app.
My child temperature sensors still display as no connection (a cloud with a slash thru it).
My child pressure measurements still display as “CONNECTED”. No values.
My Child Water Sensor still display as no connection (a cloud with a slash thru it).

These all work fine on the Classic App.
Any ideas?

It may just be a matter of time, as the New ST App caches data about the devices for quite a while. If you don’t see improved results after 12 hours…you will probably need to delete all of the child devices (NOT the DTHs) and allow them to be recreated automatically.

Please see the following post from @vseven for details.

Well it has been more that 12 hours now and still nothing has changed in the NEW app.

Can you offer a little more help please?
Before I delete the child devices I would like to better understand what may happen.
When you and @vseven refer to doing a “REFRESH” on the controller, exactly what do you mean?

The Classsic App has a “REFRESH” button on the parent device, but this does not exist on the NEW app.

Or does REFRESH the controller mean to cycle power on the ESP8266 controller?

Or will the child devices just automatically recreate?

Thanks again for all your guidance.

Each ST_Anything device can be manually issued a REFRESH command from within the CLASSIC APP. Or, you can just wait ~5 minutes when the automatic REFRESH occurs. Or, you can simply power cycle the ST_Anything microcontroller which also causes a REFRESH to occur.

As a test, you can simply delete just one child device and then hit REFRESH in the Classic App (or power cycle the microcontroller.) You should then see the child device be recreated and hopefully it will behave as expected in the New ST App.

I’ve updated all the DTHs, but New App is definitely not happy, all sensors act offline. When I pull down to refresh I get “a network or server error occurred”. I cannot activate any of the switches in New App device page, I have to use a Scene to activate. And I can’t read the state in New App, although Webcore seems happily able to get the state.

How can we get this fixed in the next 6 days before we’re locked out of Classic?

After updating the DTHs, ST seems to think there is a presence sensor on the parent DTH…??? Don’t get it…

@glenmm - I just went through this with my 2 ST anything enabled devices and I had similar issue so I can share what worked for me:

The first one I removed both the parent and child devices. I re-added the parent and filled in the settings in the IDE. I too noticed that the parent device showed up as a Presence sensor but ultimately this didn’t impact anything and I don’t use the parent. My child device was successfully created but I was getting a similar “network or server error”. I tried the refresh while looking at the live logging and saw that there was a java exception in the DTH. It turns out that the default settings in the child device were somehow causing an exception (almost like they were blank). Once I filled values for each setting (different than the default), the exception went away and I was able to successfully use the device in the new app.

The second one I just deleted the children based on the earlier recommendations. I rebooted my device and waited but no children were created. I left it overnight and tried a refresh with no success. I opened the parent device in new smartthings app and tried to fill in the settings, but it wouldn’t let me save a value in the timeout field. I then opened the parent device in the IDE and checked the settings. I noticed that the timeout value was blank so I filled in the suggested 900 value and saved the settings. I then went to the live logging to see if I had a similar issue as the first device and saw all the children getting created. Everything now looks to be ok.

Long story short - I’d start by making sure all setting are filled in on the parent in the IDE and then go into any children and make sure they have values filled in for their settings.

@ogiewon - I know this platform is not your priority anymore but thank you soo much for making the updates so that ST_anything works in the new app

Thanks so much for that detail.

When I went into Edit for the parent Device, I noticed that the driver version was showing “Published” – which doesn’t make any sense since this is not an ST DH. So, I changed it to Self-Published. Is that the right setting?

Mine are set to self-published. I believe that is what the st_anything instructions in Git also indicate.

Appreciate the help! I am using Child Relay Switch and Child Contact Sensor only – I am not seeing any settings at all for these child devices, in New App, Classic, or IDE. Live Logging shows no exception when i toggle these.

I am afraid to delete the devices and try again, because I have them in Webcore automations, doubt they come back with the same IDs?

That’s normal and to be expected. The presence capability was added a while back to indicate whether or not the microcontroller is connected and sending data to the hub. If the parent does not see any data for 900sec (15min) by default, the presence of the parent device will change from ‘present’ to ‘not present’. You can then use this as a trigger to notify you that there is a problem.

Hello ogiewon,
I have made some progress.
My ST_Anything device has a total of 5 cheidl devices, 2 temperature sensors, 2 pressure measurements and 1 water sensor child device.
I deleted the child devices and they all automatically recreated in less than 5 minutes.
The 2 temperature sensors now display the temperature in the NEW app.
However, the 2 pressure measurements only display “CONNECTED”.
Also, the Water Sensor displays as no connection (a cloud with a slash thru it).

Any ideas what the problem is now?

You’re going to have to delete all of your child devices (not the groovy code!) It’s the only way I know to get things working correctly. One of the changes is in how the parent creates child devices. This change allows the child devices to work properly in the ‘New’ ST App.

Published or Self-Published both work, IIRC.