+12
Discuss & Vote

WebCoRE "Value Tiles"

Ryan C 6 years ago in Things & Capabilities / CoRE and webCoRE updated by 37KDeep 5 years ago 24

Any plan to integrate support for the WebCore Value Tiles to display the information they contain?

http://community.webcore.co/t/release-value-tiles-dth-for-displaying-webcore-variables-stats-in-a-thing/4725

Discuss & Vote

Hi Ryan,


We don't publish any long-term plans, and WebCoRE remains out of scope in the short-term. There are workaround for some types of WebCoRE integration, but we do not have any sort of "arbitrary value tiles" as a Feature yet ... though it is an existing Feature Request.


So I think these linked Topics are additionally worth your VOTES:


Thank-you for your request and votes...

...Terry.

Hi Terry,

This DTH that was created brings the values from WebCORE into the ST thing as seen in the screenshots from Ryans link. I can add this "thing" into AT, however the value doesn't appear to come through, we just get a generic switch. The info is already in ST, we just want to bring it into AT.

The problem remains, Brian, that there is no Capability "arbitrary value", right?


SmartThings has informed all developers that they are taking a hard-right move away from ad hoc / custom Attributes and Commands. All DTH properties must be come from within a standard Capability specification.

https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Capabilities 

In other words, SmartThings has informed developers that they are deprecating or eliminating this form of metadata and related constructs:

  

Discuss & Vote

I see, well that stinks then. Thanks for the explanation. Is there any other way I could get this type of information into AT? With our without SmartThings.

  1. Currently you can use Virtual Device(s) that claim any of our supported Capabilities. Some of these have Numeric Attributes which you can pretty much write any number to. I don't think anything has a Text Attribute. Compatible SmartThings Capabilities (Device Type abstractions)
  2. We will undoubtedly, someday, create some sort of API / channel for writing values to Tiles; either through an officially published SmartThings Virtual device type (if we and/or other developers like WebCoRE can get a new Capability published?) and/or via a direct API into the ActionTiles Cloud. The latter option will open a lot of powerful doors, but presents various risks: security, performance (rate limiting), data type handling, and so on. These are not insurmountable, but since this feature is not likely to be used by the majority of Customers, it's still difficult to bump up in priority.

At the moment there are two sets of capabilities that have been published. The best you can say is that they overlap.

https://docs.smartthings.com/en/latest/capabilities-reference.html is described as for the Classic app and https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html as for the new app. I find the references to the apps curious as it is more the Classic environment v the new environment. If you are developing in Groovy in the Classic environment it is the capabilities in the first reference that you are working with, which is handy as the 'Estimated Time Of Arrival' and 'Speech Recognition' capabiliites are particularly ripe for (ab)use.

Are you favouring one over the other when it comes to deciding which capabiities ActionTiles will support?

Yes - We are favouring the new API Capabilities. These aren't specific to the new App; they are the Capabilities for the new SmartThings Cloud API. The current Groovy API is deprecated / legacy status only.


The documentation for the new API is incomplete in many areas, so it can be assumed the Capability list is subject to change. But - it is what it is.

I have an idea that I think could work, but I'm not sure the best way to implement this. Essentially I am looking to get a tile that shows my wife how long her commute to work will be. So far, I have gotten the tile to show the number of minutes that it will take her using the value tiles DTH that I customized to add a CO2 sensor which is awesome. What I'm looking to do now is to have the tile change color based on how many more minutes than usual it will take. I can use WebCORE to figure out all that part, and I was thinking I could send that value to ST/AT as the battery level.

My questions:

1.What does AT need to view a battery level? I have looked at a few other DTH's that have battery options in them, but I'm still trying to learn groovy and I don't quite get what needs to be done to get this result. I just need to set a variable somewhere, I don't think I need to go through the whole battery map thing (or do I?)

2. Less important, but would be cool if it worked. Is there a way I could change the footer text to display something instead of the battery %? In the below panel, I would like it to say "minutes" at the bottom. 

Panel I have so far...

Displaying a numeric value by "masquerading" as any one of the Capabilities we support that have a numeric Attribute (Compatible SmartThings Capabilities (Device Type abstractions) is a feasible workaround for customers who understand how to use a Virtual Device for this purpose.

  1. It is beyond our scope to describe exactly how to write a Virtual DH for this; but we don't think it is particularly difficult. The resources of the SmartThings Community have excellent examples and developer peer-support. The webCoRE Community is also an excellent resource; as regardless of your exact DH, you are most likely to use a webCoRE Pison to set/update the Attribute Value of the DH.
  2. The ability to change units and/or other contents of the Tile Footer is an existing feature request; partly to accommodate this use case, actually. We are not sure that this use case alone is sufficient justification for adding a footer customization Feature - but we acknowledge this could be valued for other reasons too. In the meantime, the footer is the least of your concerns in your proof of concept.

But keep an open mind. Commute Time is used as an example for using the "shields.io" library to generate a Media Tile with the desired information (similar to our Media Tile Generate PHP scripts for weather and news). While this requires a personal or virtual server, it might give the most desirable results:  https://support.actiontiles.com/communities/12/topics/2707-live-traffic-travel-time-tile-image-from-query-text-using-shieldsio

thanks for the update. I’m not asking how to write the dh, I’m just asking which variable needs to be updated for AT to use it. I’ve tried updating device.battery on a device with the capability “Battery” but that did not do the trick, and after looking through some other dh’s I believe that should be it. 

I can get the dh to show battery levels in ST, that’s easy, but AT seems to be picky as to what it’s looking for.  

Hi Terry,

OK, so I got it 99% of the way there. The only thing I'm stuck on now is that Carbon Dioxide Measurement devices do not accent or warn if the battery gets too low. If you use the battery tile on it's own it does.

I'm assuming this would be a simple thing to add, what do you think the chances are of this happening any time soon?

My tile now.

Colors and/or accents based on numeric values in a Feature Request in the queue. It just happens to be hard-coded for Battery, 'cuz it is "obvious" what value range is an alert.

All of my physical stuff with batteries are at 99% or up so I can't really test, but is this how everything works? The tile won't change color unless you are using the standalone battery tile?

Correct: The Battery Tile is a special Tile type that is hard-coded to use the Normal Intention for values > 25%, then Active Intention for > 5%, and finally the Warning Intention for <= 5%.

but other tiles with the battery at the footer will not change color if their battery runs low correct?

If my motion sensor battery gets to 5% will the tile go into warning? If not I may need to go the shields.io route until this sort of functionality is there without using multiple tiles. 

No. The warning color related to battery level is only for the Battery Tile type, at this time. We have never planned otherwise. Battery level reporting is not particularly reliable, so it doesn't particularly make sense to perpetuate the intention ranges.

@BrianRoy How did you implement this? I have been trying to do something similar. Would you mind sharing your WebCore code (I assume you are using) and you DH?

+1

yea I'll share it if/when I get it all working. It's a WIP right now so I don't want to share it until it's finished. Basic gist of it, is I use the google maps API to get the info I need, then parse it out with webcore, and send that value to a SmartThings device. This device is set up with the CO2 measurement capability which you can display in AT. Working on getting it to show up red if it will take X number of minutes longer than usual.

@BrianRoy, I would love to use your panel in my AT. Currently I use an illumination tile to display days until a vacation. But the illumination descriptor "illum (lx)" is hard-coded....

Will your "Commute To Work" tile work for me in AT?

I think it would, try changing the device type to the CO2 measurement device type and it should do what you want.

@BrianRoy, Where can I get your DTH for the "Commute To Work" tile?

I'm not sure if this would do what you want, but here is how I hacked a (virtual) dimmer tile.  I use the % at bottom to count up every hour.  Once counter is over 8 hour I turn the switch on to indicate our pets need to be fed.  'Real' multi-purpose sensor on the dogfood container lid causes the counter to reset to 0 and turn the switch off.

https://community.webcore.co/t/feed-the-dog-reminder/9153