New Things view Forces you to see what they want you to see in multi tile at top

I didn’t even try it on iOS. I have android. Once I confirmed its iOS and not android, I gave up for now.

Hopefully the new Android version this week that Alex said was coming will have a lot of these fixes in them.

@pstuart, No worries, I really do appreciate what you’ve done so far, thank you! I’m going to go ahead and work on my thermo and get the secondary control working like the Zen.

No problem, feel free to fork my code or just share what you come up with… I had it basically working if the things would have showed up.

It will be there eventually (I hope)

Fixed the Multi Sensor First Gen Smartthings one with 3 axis.

@pstuart, Once I understood how this works by studying your examples, here’s what I was able to come up with for my thermostat device type: (Evolve T-100r’s)

I’m nowhere near as capable as you and others in developing code, but I can do it if I set my mind to it! Here’s my code:

https://raw.githubusercontent.com/constjs/SmartThings-Devices/master/thermostat.device.groovy

2 Likes

Very cool. Love what you did with the wide buttons. Lots of new things with this release we have yet to discover.

1 Like

Thanks!

@Sticks18, here’s my version, and when the controls for android become available, I’ll get to working on the new controls. The code has just some placeholders for now:

Code:

https://github.com/constjs/SmartThings-Devices/blob/master/ge_fan_control_switch_v2.device.groovy

This has been confirmed by smartthings staff: if you use a custom device type, your device commands will not be eligible to run locally until that device type has been approved for local execution.

But then so far the only thing that has been confirmed to be eligible to run locally is smart lights and routines that use specific official device types. I’m sure there’s more than that, but we won’t know until people actually have V two.

Has anyone here figured out how to scale the fonts and controls? It’s really frustrating that the temperature and some of the text seems so small compared to this massive 6x4 tile. The thermostat example they show in the documentation looks great, but I can’t seem to emulate it.

Looks vastly different on iOS vs android. Especially on android devices with high dpi vs lower.

So the scaling seems to be hard coded and not an option in the code.

That’s more or less correct. The term “approved” is a little misleading and probably my bad for using it. We want as much possible able to run locally, including custom code. Due to the fact that these artifacts need to be delivered to the hub via firmware updates as Alex mentioned in another post, it’s just not possible at this moment to execute custom code locally without the app being delivered via SmartThings, but we want this to be more flexible. The docs around this simply state what the current situation is, but could probably use some softened language and forward looking info.

@Sticks18 - is there any documentation on VALUE_CONTROL, I’m trying to figure out how it works, the interface parameters etc? thanks

@Jim @unixbeast (and @tslagle13) - is there documentation around how to use VALUE_CONTROL or how Thermostat type device can use the VALUE_CONTROL?

Okay figured it out, to use VALUE_CONTROL this is the template:

You need to ensure the action calls a function that’s either a published command (explicitly) or an implicitly defined capability command (e.g. for if you’ve defined “Switch Level” capability, you can use setLevel)

 command "levelUpDown"

 tileAttribute ("device.level", key: "VALUE_CONTROL") {
			attributeState "level", action: "levelUpDown"
        }

def levelUpDown(value) {
    log.trace "levelUpDown called with value $value" // Values are 0 and 1
}
1 Like

BTW with the *new updated bugfixed release of the ST app, using VALUE_CONTROL will crash the app. Try it out.
Add this line:

tileAttribute ("device.level", key: "VALUE_CONTROL") {
		attributeState "level", action: "levelUpDown"
    }

and watch it crash!

@tslagle13 - Tim don’t know who to report this one to (sent it to support) but maybe you can pass it along to your internal team.

@Jim looping you in, don’t know if the syntax here changed or if it’s just a bug, if the syntax/usage or VALUE_CONTROL has changed can you please update the docs accordingly

Are you on Android or iOS? This still works for me (iOS) and my fan control. They’re custom commands/attributes, but the syntax is identical.

tileAttribute("device.speedLevel", key: "VALUE_CONTROL"){
                   attributeState "speedLevel", action: "setSpeed"
                 }

Both, it’s crashing on both.

Can you try this:

multiAttributeTile(name:"summary", type: "thermostat", width: 6, height: 4){
		tileAttribute ("device.temperature", key: "PRIMARY_CONTROL") {
            attributeState("temperature", label:'${currentValue}°',
                backgroundColors:[
                    [value: 31, color: "#153591"],
                    [value: 44, color: "#1e9cbb"],
                    [value: 59, color: "#90d2a7"],
                    [value: 74, color: "#44b621"],
                    [value: 84, color: "#f1d801"],
                    [value: 95, color: "#d04e00"],
                    [value: 96, color: "#bc2323"]
                ]
            )
        }
        tileAttribute ("device.level", key: "VALUE_CONTROL") {
			attributeState "level", action: "levelUpDown"
        }
    }

When combined with a PRIMARY_CONTROL it crashes (used to work fine earlier)

Interestingly without the PRIMARY_CONTROL it doesn’t even show up in the app (I changed the type to generic).
If you’re only using VALUE_CONTROL, can you share how you’ve set it up in the multiAttributeTile?

Here’s my setup for the fan. I wonder if it’s the “type” field. I remember there being an issue with Android and using any “type” other than lighting. I also don’t really understand what that “type” controls as the various control styles aren’t tied to specific types. Try using “lighting”.

       multiAttributeTile(name:"richSwitch", type: "lighting", width: 6, height: 4, canChangeIcon: true){
                 tileAttribute("device.switch", key: "PRIMARY_CONTROL"){
                   attributeState "on", label:'${name}', action:"switch.off", icon:"st.switches.switch.on", backgroundColor:"#79b821"
		   attributeState "off", label:'${name}', action:"switch.on", icon:"st.switches.switch.off", backgroundColor:"#ffffff"
                   attributeState "turningOn", label:'${name}', icon:"st.switches.switch.on", backgroundColor:"#79b821"
                   attributeState "turningOff", label:'${name}', icon:"st.switches.switch.off", backgroundColor:"#ffffff"
                 }
                 tileAttribute("device.currentSpeed", key: "SECONDARY_CONTROL"){
                   attributeState "currentSpeed", label:'${currentValue}'
                 }
                 tileAttribute("device.speedLevel", key: "VALUE_CONTROL"){
                   attributeState "speedLevel", action: "setSpeed"
                 }
        }