This raises a question: How should developers handle cases where a device requires measurement values for which no predefined capability exists?
For example, my device needs to measure about 6–8 values, including current, voltage, power factor, heat, CO, and VOC. While I found tvocMeasurement, which is somewhat similar to VOC, I could not find an existing capability for power factor.
In such cases, is WWST certification not possible?
Should developers use only approximate existing capabilities, even if they are not an exact match?
How have other companies obtained WWST for devices requiring capabilities that do not exist yet?
So, just to confirm, you’re only missing two capabilities, right? Here’s a table comparing the measurement you mentioned with the name of the capability in SmartThings:
For the case of “power factor”, do you need a special unit like kVAh? Because energyMeter has it, if not, what would you need in a capability to display this measurement for the user?
VOC vs TVOC
We can replace VOC with TVOC, but there is a difference between the two:
VOC (Volatile Organic Compounds): This term refers to individual volatile organic compounds, such as toluene, benzene, xylene, or formaldehyde. These substances easily evaporate at room temperature and may have harmful health effects.
TVOC (Total Volatile Organic Compounds): This represents the total concentration of all VOCs in the air, expressed as a combined value. In other words, TVOC gives an overall indicator of air pollution by summing up multiple VOCs.
Simply put, VOC refers to each individual compound, while TVOC refers to the total amount of all VOCs combined.
Power Factor
It would be great if support for this measurement could be added, since it is an important concept in electricity and energy efficiency.
Power Factor is a measure of how efficiently an electrical system uses power. It is expressed as a value between 0 and 1, where 1 means highly efficient and values closer to 0 indicate poor efficiency.
To explain it simply, many use the “beer glass” analogy:
Apparent Power (VA): The total contents of the glass (beer + foam), i.e., the total supplied power.
Real Power (W): The actual beer in the glass, which does useful work such as lighting or running a motor.
Reactive Power (Var): The foam in the glass, which doesn’t perform work but is necessary for equipment operation.
Power Factor: The ratio of Real Power to Apparent Power — in other words, how much of the glass is real beer.
Why Power Factor matters:
Cost savings: Low power factor requires drawing more apparent power, which increases losses. Some utilities even charge penalties for low PF.
System efficiency: Low PF stresses wires, transformers, and equipment, causing overheating or damage. Improving PF increases equipment lifespan and efficiency.
This is especially important in factories or large buildings with inductive loads like motors or transformers, where capacitors are often added to improve power factor.
I have reviewed the image you shared, and it was helpful to see that PowerFactor is indeed shown there.
However, I have a follow-up question regarding its official status. Is PowerFactor an officially supported SmartThings capability? I’ve checked the developer documentation, specifically the 146 Production Capabilities and 116 Proposed Capabilities, but I couldn’t seem to find PowerFactor listed in either.
If this is the case, does it mean that PowerFactor would need to be created as a custom capability? The documentation mentions that devices using custom capabilities cannot be certified under WWST, which is a key point for me.
Could you please provide some clarification on this? I appreciate your help.
It is not, there are many standard attributes or commands in Zigbee or Matter that are impossible to use in SmartThings except with custom capabilities. A fun example is the “Identify” command, even stock drivers had to resort to a capability meant to play sounds instead of creating a capability for it, suggesting creating capabilities is something extremely difficult for them (not from the technical point of view but getting the approval).
By the way, sometimes WWST devices use “official custom capabilities” (I’m sure they have a internal name for that) which are not production or proposed but allowed into stock drivers, like this capability for the Aqara Cube which is made specifically for that device. So nothing is set in stone.
Thank you for sharing the information requested over DM.
I’m sharing this here for future references:
We’ll create two requests for capabilities: powerFactor and VOC
Just to confirm, for VOC, you mentioned some individual compounds. So, those are the ones you would like displayed? I read there’s a variety of compounds, so I just want to make sure we’ll share the appropriate information with the engineering team for the creation of this capability
Although we’ll create this request, it will take a while for this to become fully available in the platform
So, if you want to certify your device and be available in SmartThings soon, you would need to go through the process without these capabilities, and once they become available, submit a certification by similarity to add them.
Regarding the points you mentioned above, especially the request for clarification on whether individual compounds (e.g., toluene, benzene, etc.) should be displayed for VOC, I will reach out to our product development team to confirm this and provide feedback accordingly.
I contacted our product development team regarding the VoC inquiry.
They confirmed that we can simply use the existing SmartThings TVoC capability, and that defining individual VoC items is unnecessary.
We’re working with the request for the PowerFactor capability. An engineer helped me to create this proposal for the capability definition, and we need your help to confirm that it would help you:
name: Power Factor
id: powerFactor
version: 1
attributes:
powerFactor:
schema:
type: object
properties:
value:
type: number
minimum: -1
maximum: 1
additionalProperties: false
required:
- value
This means it’s a single attribute that can have a value between -1 and 1 and has no unit defined.
You are right. Our product returns values in the range of 0 to 1, but if we define it as -1 to 1 it will align with the attributes of the Electrical Power Measurement Cluster in the Matter 1.4.2 specs. So, it makes sense to proceed as you suggested.
@nayelyz
Regarding the capability I previously shared, I agree that we should move forward with the definition you proposed:
name: Power Factor
id: powerFactor
version: 1
attributes:
powerFactor:
schema:
type: object
properties:
value:
type: number
minimum: -1
maximum: 1
additionalProperties: false
required:
- value
Note: Just to clarify, this doesn’t mean the capability will be available soon, having it in the Production environment involves several work from different teams and also will depend on an App release once the backend work is finished. Once we have more information, we’ll let you know.