Custom or virtual DTHs causing app slowness?

HI all,

I’ve been a complainer about the speed and functionality of the iOS app since it changed in June. It takes forever for devices to update and to be controllable. The web interface is amazingly fast, as is device control through an app called Home Assistant.

I’ve been working with support for a while now on the topic. They are still investigating but came back to me today with a report that many of my custom or virtual DTHs are creating a significant amount of errors in the logs.

For example, I have a virtual presence sensor that is updated by Webcore based on actual presence so I can have a tile in the app that shows presence for each of my users. SImilarly, I have a custom z-wave water sensor based upon a Monoprice contact sensor that uses a DTH from 2014. Both of these devices are creating errors I’m told.

I’m not convinced that these errors have anything to do with my issue since the web and Home Assistant interfaces are super fast.

But, if I wanted to try to improve upon these custom and virtual DTHs, where would I start? I don’t know that I’ve seen or know how to read the logs I’ve submitted, let alone know how I’d fix any of the code at issue. Is it possible to find stock DTHs for many of the custom use cases I’ve developed over the years?

Thanks in advance.

Probably not worth the effort to try and improve on any current GROOVY custom device handlers or GROOVY Smartapps. Groovy is going to cease at some point in the near future. You may want to keep an eye of the current Beta release for Edge.

You should definitely start looking to the end of webcore and what impact that will have for your pistons. When groovy ends so will webcore. So plan your path now and explore Automations/scenes or Rules API as a means to replace your webcore pistons. SharpTools is also an option with their Rule Engine. Also check out Samsung Automation Studio

I just finished moving all the functions in a webcore piston to handle modes and presence over to automations this week. While I enjoyed the ease of one piston, it required multiple automations to accomplish the same functions.

As for the app slowness, I believe things will improve when the transition from groovy is finished. That is my hope.


I am shocked that you say this casually. Do you know of a ST-automation that can sum 2 powers (KW or watts) and push the value into a virtual device that can be displayed within ST? It did not seem possible.

Sorry, i do not know the answer. I have not purchased any outlets that report energy/power. Perhaps one of these days.

I was not trying to undermine the change away from webcore. I have a couple remaining that can not currently be ported to Automations. I am about to embark on Rules API and Samsung Automation Studio to see what is possible.

Again, you can create a piston to perform many tasks but trying to port to Automations can be tricky and require many to do the same task.

Luckily, I am not anywhere near 200 automations yet!

1 Like

Thanks. I’ve tried to move over as much as I can. The built-in Automations can’t do some of the things I do with Webcore, and I have a number of unique devices that I can’t necessarily assign a standard DTH to:

  • I use a dimmer-type device to display the analog humidity % from a thermostat, set via Webcore. I wanted to be able to see humidity directly on a tile.
  • I use a virtual presence sensor that is set using Webcore to the actual presence of members of my household. Again, I wanted to be able to visualize presence on a tile and access its history quickly through the interface.
  • I use a number of Monoprice contact sensors with external contacts for unique purposes: one tied in to my smoke detector relay, another tied in to the electric heat on my heat pump, two as leak detectors. These have old DTHs that have always worked for my purposes. I’ve tried to convert them over to standard DTHs, but none work properly.

These are just a few examples of unique DTHs I have. If there are any suggestions about how to move them to something newer or something standard, I would appreciate them.

1 Like

my suggestion is to not count on an ST solution, and implement a redundant, separate system.

It does seem like a more flexible automation to pull an unconstrained value from 1 or more virtual or actual device, and use some arithmetic operations, and push a translated value to a virtual or actual device, would fill a lot of deficits in the existing automations, for my purposes. It is irritating that it seems simple and yet I cannot do it. Maybe if I spend a couple weeks learning lua, but I assume that is not rolled out yet, and I’m not actually looking for a new time sink anyway.

Things that were simple, are becoming improbable.

Good luck to us.