Override default capability attributes

Hopefully this doesn't seem like a silly question, but I have never tried to develop a driver before on HE or ST. I am trying to add some functionality to an existing community driver which is using the Thermostat capability. That capability has an attribute
thermostatFanMode - ENUM ["on", "circulate", "auto"]

Is it possible to override these default values or append to them. My T-stat has a fan mode called "Follow Schedule" that I would like to add as a value in the attribute. Do I then need to create custom commands as well to match that new value?

none of the enum values that are part of our schema are constrained, meaning we don't validate them.
You can use whatever value you want, the purpose of defining values is so that any applications that might use that capability have an understanding of what to expect. Unless applications are specifically written to advantage custom attribute values, unknown values are generally ignored, but can possibly cause errors if the app isn't written to protect against them.

2 Likes

Total n00b dev question here. So if I get the default capabilities from the schema, what do I put in the code to override it or simply append another options. If I am looking at the device using the driver and it shows Set Thermostat Fan Mode with only those 3 default options and I am looking for it to simply have the forth one to line up with a capability of my thermostat.

this:
command "setThermostatFanMode", [[name:"Fan mode*",type:"ENUM", description:"Fan mode to set", constraints:["on", "circulate", "auto", "face melter"]]]

@mike.maxwell thank you for your continued help.

So I implemented this command set and its working as intended, however I still have duplicate buttons. Anything I can do about the duplicate button in the device screen that has the original attribute list?