Device Attribute.Value Syntax for subscribe()

When you use subscribe(device, “capability.attribute”, “handler”), how do you handle attributes with multiple words. Example: subscribe(device, “sleeping.not sleeping”, “handler”) (this doesn’t seem to work)

Don’t use spaces in your attribute names?

Maybe I’m wrong with how the subscribe(device, attribute, handler) works…

From what I understand, you are listening to the device for the attribute. When that attribute changes, it calls the handler. For the attribute, you can add a specific value with the dot notation. (Now that I have written that out, my question should have stated attribute.specificValue rather than capability.attribute)

The specific value comes from the existing capabilities documentation. I’m not sure it can be changed like you suggest. I tried several variations, and they don’t seem to be working.

I found a SmartApp “Notify Me When” which uses this Syntax… didn’t test it; but it shows use of space in the Attribute Value

subscribe(departurePresence, "presence.not present", sendMessage)

OK… So I just tested it with another app that was just a subscribe and listener and with the space does work. It must be something else in my code that isn’t allowing it to call the method.

1 Like