[DEPRECATED] ST_Anything - Arduino/ESP8266/ESP32

Hi @ogiewon I found my ESP32 locked up this morning, not responding to inputs or to commands from ST. The logs for the parent device show that its presence went not-present at 3:04AM. I can ping its IP address. I have been running a modified version of ST_Anything running on an Hiletgo ESP32 with OLED display and shows every refresh and the state of any input when it changes, and the display is frozen.

I am thinking this could have something to do with the DST switch-back at 2AM, potentially?

Is there any debugging you think I should do while it’s in this state before I press RESET?

Are there any firmware resources that I should be searching to see if there are known issues with the firmware on this ESP32? I have never updated/figured out how to update the OS/BIOS on this device


I would just reset it and move on. I can’t think of any reason why it would lock up. Others have been using these devices for years with no issues reported.

Solar flare?
Power blip?
Buggy code?
SmartThings being SmartThings?
Power supply going bad?
ESP32 board going bad?
WiFi network glitch?

Well the latter one, definitely not. It’s WiFi interface is up. Is there any way to telnet into it or something to get status of the running firmware/application? Found this debug library via Wifi https://github.com/JoaoLopesF/RemoteDebug have you tried it?

No, I have not.

Since you’ve added custom code to the sketch, you may want to closely examine it to see if there are any issue that pop out to you.

Also, make sure you’re running the most up to date versions of all of the ST_Anything libraries, DTHs, Arduino IDE, ESP32 Board Manager, etc


However, if this has run for years without issues for you, I would just reboot it and be done with it unless it occurs again. But that’s just me. Everyone has to determine where to draw that line for themselves.

I got the pressure sensor working in the NEW ST App.
Your suggestion to try the voltage measurement did the trick.
Thanks for the help.

The Water Sensor is still a mystery.
I too am using iOS.

1 Like

Understood. Is there ever a reason to update to the latest ESP32 firmware, in case there is any kind of DST bug in the OS? Do you have any links on how to do this?

Not sure about the possibility of a DST bug, as I don’t think these microcontrollers even know the current date and time
at least stock ST_Anywhere sketches do not try to keep track of DTTM.

You can ask @vseven about ESP32 specific questions as I believe he uses them. I have no ESP32 boards running.

I have a couple ESP32’s and I don’t know of any reason they would need to know the time at all, at least for ST_Anything. With that said I usually run the most up to date firmware. You can get pre-compiled builds at https://www.espressif.com/en/support/download/all , select the ESP32 checkbox and find the bin file for your model/type. Then to flash the board use NodeMCU PyFlasher which you can get at https://github.com/marcelstoer/nodemcu-pyflasher/releases . Personally I click the option to erase all data when flashing new firmware then reload my sketch afterward. So far no issues doing so.

So I got my pressure sensor to display in the NEW ST App as a voltage measurement.
This certainly solves my problem with the new app not displaying any value for pressure.
Now it would be nice if i could change the word “voltage” to “pressure” and at least display the correct units (PSIG).

I tried editing the Device handler as shown here:

But this change had no effect.

Is there a way to modify the Child Voltage Sensor" device handler so the it will display the correct units and measurement type (pressure)?

Thanks for any help.

SmartThings doesn’t understand what pressure is as there is no “standard” capability for it. You’d have to create your own custom capability and modify the DTH for it but it’s a lot of work if it works at all. See Custom Capability and CLI Developer Preview for more info.

1 Like

I am pretty sure the entire “TILES” section is now completely irrelevant in the “New” SmartThings App.

Looks like it’s going to be too difficult and time consuming to get my pressure monitor to display anything that resembles what i was able to get from the Classic ST App. Smartthings is making it more and more difficult to workout custom views. It looks like it might be time to consider switching to Hubitat and HubDuino.

1 Like

Finally was forced to use a new app ( :face_vomiting:)
After that, all my ST_Anything devices stopped working.
Here is what I have done so far without any success.
Updated in IDE “My device handlers” and “My Smartapps”.
Reflashed one device with a new set of libraries from github.com/DanielOgorchock,
Forced stopped a new app, cleared cache and data, change the device type in IDE (per @vseven suggestion Here)
Here is a strange thing - all devices stuck in the “Checking status” stage, therefore cannot be controlled/viewed.
I went back to the old, classic app to see if the device still visible there, and before the classic app kicks me out I was able to see contacts status and was able to toggle a switch, so I was able to confirm the device working properly but cannot communicate with a new app.

What am I missing? :thinking:

Now that you’ve updated all of the DTH’s (and hopefully published them as well!), you’ll need to now delete all of the child devices, it the Parent. Then simply restart your microcontroller and the child devices will be recreated and should work with the New ST App.

DAN, You are a lifesaver, like always! Thanks a lot!
Once I deleted the child devices, they recreated and seems to be working now.
The status is not updating right away, it takes 10-20 seconds, I guess it is the new app issue.
Do you think the "migration procedure should be documented in the post’s top?

1 Like

First off, I would like to thank Dan for developing this, and for spending so much of his time supporting it.

I was able to get it working on an ESP8266 (WeMos D1 R2), and am using it to read a contact, and control a 4 channel relay board. I ran into some obstacles along the way, mainly slow response and timeouts. I was able to overcome those by scanning through this thread, and the solution was to reboot my V2 hub, which I would not have thought to do.

My question is about the ultrasonic sensor capability. Looking at the code, it looks like it was meant to measure the volume of a liquid remaining in a cylindrical tank?

My intended use is to measure the amount of salt in my water softener, so it probably would not require me to modify much to get that functionality (the tank is rectangular rather than cylindrical). I have no experience with Groovy or the ST API, but it doesn’t look too difficult as long as I’m starting with something that already works as an example.

Thanks again!

1 Like

Correct, the Groover Driver code was actually written by a ST Community Member years ago. As with all of ST_Anything, please feel free to tweak it as you see fit for your specific use-case. As you mention, the math is pretty simple in that driver and should be fairly straightforward to change.

Thanks for the reply. It was fairly straightforward to get it working. It is now online and sending its current capacity % to SmartThings.

If I click on the child sensor in the app however, nothing shows up (no values, graphics, etc.). Digging around I get the feeling that the “Tile” functionality in those drivers is no longer applicable in the new app? I can see that it sending data across in the live log via some debug statements I added.

In any case, I can live with how it is working if need be. I can still use the capacity it sends across to trigger notifications when the salt gets low. It would just be nice to look at it and see a nice graphic displaying the % capacity.

Thanks again for your help!

1 Like

Yep, this makes sense as that DTH currently uses a custom capability. I have no plans to implement custom capabilities in the new ST App.

You could further modify your copy of the DTH to implement a standard capability, like Humidity. Since you’re sending a percentage anyway, using the Humidity Capability would at least match the correct units.

1 Like

Thanks! That is a good idea. I will probably give it a shot and see what happens.

I looked into the custom capability and it looks far more complicated than it needs to be. Maybe some day I’ll dig into it.