[DEPRECATED] ST_Anything - Arduino/ESP8266/ESP32

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.

Pressure Measurement is not a standard capability within the SmartThings world. Thus, it is not supported in the New ST App. There is a way we could try to make it work as a Voltage Measurement device… :thinking:, however that type only displays a value when you open up the device in the New ST App.

I would try deleting this one child device again to see if it comes back better. I have tested the water sensor successfully.

Correct, they will not come back the same as before. You could create some virtual devices to swap into their place in your webCoRE pistons, then delete the child devices. Once they come back, swap them back into the pistons and delete the virtual devices.

This is a very good suggestion and is exactly how I tested everything recently.

You’re welcome!

Tried deleting the water sensor a few times.
No change. Still no connection.

Wow. That was way painful. I had 6 contacts and 4 relay switches on 1 ESP32. What I did was go into the IDE and copy down all the Webcore routines connected to each one. Because multiple ST Anything devices were in several Webcore apps, if I deleted everything at once, I’d be chasing my tail trying to remember which statement referenced which device, so I deleted each of them one at a time, refreshed the Parent by saving the timeout value to create the deleted device, renamed it in the IDE, re-added it to Webcore, and then edited the pistons. Then I re-created my scenes in NewApp. Some of these contacts are security/STHM related, and they are now working there as well (previously STHM ignored them).

:cold_sweat: but in the end, I can see everything now working in New App.

Thanks for the help. Painful, but good also to have everything where it is supposed to be.

2 Likes