Proper usage of input type "device.deviceTypeName"?


(Mitch Pond) #1

tagging @bridaus

Continuing the discussion from CentraLite Keypads:

[quote=“mitchp, post:242, topic:25473, full:true”]
Yet it works for some… inconsistent behavior to say the least. The last post in that thread seems to indicate that you can do this with devices outside of your own namespace.[/quote]

The documentation lists “device.deviceTypeName” as a possible input type in order to restrict devices to those of a specific type, but there isn’t any documentation (official, that I could find) concerning the proper usage and any possible constraints on using this input type.

It appears that – at least in the case of my CentraLite Keypad DTH and accompanying SmartApp – this is causing installation issues.

Can anyone from ST clarify what the correct usage is for this option? @Jim?


#2

@sticks18 and @johnr have both done a lot with Zigbee device types, they might know.


(Brian) #3

It’s worth noting that the Android app seems to either be less robust at handling “weirdness” thrown at it, or it doesn’t follow some ST specs in terms of handling data like the iOS app does…

I suggested beer in the previous posts, so I’ll repeat that here, because beer+team = beam? beat? bear? tear? :confused:

In all seriousness, the app teams could get together a little bit on the last couple of issues I’ve worked on, the AEON HEM device where tile labels are not processed correctly, and the issue in this post.


(Mike Maxwell) #4

about a month ago the following worked:

publish a device with name: definition (name: “coolDevice”…

in the app: input type : “device.coolDevice”…

And you would get a list of these to select from in the app.

This no longer works EDIT: this no longer works for me!
Works for some and not others?, even more screwed up.


(sidjohn1) #5

I am using the following

input “senors”, “device.PlantlinkDirectSensor”, title: “PlantLink-Direct…”, multiple: true, required: true, submitOnChange: true full code

With this device

definition (name: “PlantLink Direct Sensor”, namespace: “KristopherKubicki”, author: "kristopher@acm.org") full code

And I’ve never had a problem.


(Brian) #6

On mine I could select the device, but the object it was passing inside the smartapp did not satisfy calls to it including methods.

I think the app is killing the object, or not setting it properly.


(sidjohn1) #8

Are you seeing this on Android or iOS, i opened a case with support a few days ago, cause the android client is not setting properties correctly on dynamic pages. The same code worked perfectly on iOS. I never thought i’d have to test a smartapp on multiple clients to ensure it works every where… but i found out wrong.


(Brian) #9

Android. You shouldn’t have to, this is something ST needs to address. I’m surprised the clients do so much of the work. Clients should be lightweight by definition.

ST is architecture is brilliant at abstraction with devices, this should apply to the client software interface to the cloud as well.


(Endoplasmic) #10

Alright for those still lurking this thread, I’ve figured it out!

You need to use LOWERCASE to search for your custom device type to work (I also noticed that having a capital letter as the first character seems to also work).

So if your device type is called “MyCustomDevice” and you have this:

input "custom", "device.MyCustomDevice", title: "xxxxxx"

change it to:

input "custom", "device.mycustomdevice", title: "xxxxxx"

And like magic, it’ll work :slightly_smiling:


(Mike Maxwell) #11

seriously?, this has been driving me nuts, well forever…
I just tried that with a stock st device, no workie…


(Endoplasmic) #12

Bummer. I was wrestling with it for so long. I felt like the blind guy doing the rubix cube in UHF and when I got it the lights of heaven shone down on my face.

Sorry to hear that it’s not working for you though, I wonder what you have setup differently…


(Mike Maxwell) #13

I don’t know, for me this only works for st published device types… I’ve given up trying to use it.


(Tony - SmartThings Unpublished Contributor ) #14

I think you use all lower-case letters - except where device type name has 2+ words (such as “Hue Bulb”), then capitalize the first letter of each subsequent word. In the case of a device type of “Hue Bulb”, it would be “device.hueBulb”


(Stuart Buchanan) #15

Confirmed, i have also been having issues, it is correct you need to do as @infofiend has stated, however as per @Mike_Maxwell 's comment this is confirmed that works on the ST published Device Types i tried but i have found that for example it also works on the Hue Scene device types from the Hue Re-connect app. it then got me thinking it was maybe the namespace but that didn’t pan out. but then i had a thought maybe it is just the maximum length of the name

so the device type i have specifically been having issues with is

“Netatmo Basestation”

and i search for “device.netatmoBasestation” (finds it in the IDE but not the mobile apps)

So i did some testing changed the name to

“Netatmo Basestatio”

and searched for “device.netatmoBasestatio” (Finds it in the IDE & mobile apps)

so then i tried

“Netatmo Base Station”

and searched for “device.netatmoBaseStation” (Finds it in the IDE & mobile apps)

so was thinking maybe it was the length of an individual constituent word only working when 10 chars or less, so i tried

“Netatmooooo Base Station”

and searched for “device.NetatmoooooBaseStation” (Finds it in the IDE & mobile apps)

so then i tried

“Netatmooooo Basestation”

and searched for “device.NetatmoooooBasestation” (Finds it in the IDE & mobile apps)

but when changing back to

“Netatmo Basestation” it only finds in the IDE but not in the Apps again, i am using the same device type, just changeing the Names in the DH and amending the smartapp to match.

WTF!?!


(Stuart Buchanan) #16

ok a bit further testing. if i call any of my device types “Netatmo Basestation” they cannot be searched in this way. there’s something wrong with what i presume is regex used for searching device types.

i cant find a correlation in anyway, but if i change the name in any way, i have tried many the device type name changes they can be found in the IDE and mobile apps but named “Netatmo Basestation” can only be found in IDE and not the mobile apps.

@slagle @jody.albritton any way you can test this specific scenario ( i.e device handler name) and figure out why? FYI tested a number of them with IOS & Windows Phone & Android and was getting the same results on all three so i then tested the remainder only on IOS


(Tony - SmartThings Unpublished Contributor ) #17

Smartthings updated its documentation today, explaining that you need to add “mooooo” to every word of the device type name.


(Stuart Buchanan) #18

well if it works! :smile: