Creating a profile for air conditioner device [Edge]

  1. Yes, this seems like the simplest solution. I see no real disadvantage to hiding the unused enums.

  2. If you want something more visually appealing, you can hide the stock capability and mimic using another. You would then need to manipulate the 2 capabilities with device:emit_event. Concerning changing stock values, see #3 for a working example.

  3. Here is an example. Note that I was using multiple component names. That is not required unless you want 2 of the same capability.

Concerning custom capabilities, you’ll find the mechanics very basic. Many stock capabilities have magical properties that cannot be replicated. As you’ve noted, you also won’t have proper integration with Google/Alexa unless you manipulate hidden stock capabilities.

Most people stick with stock capabilities because they want the default Z-Wave/Zigbee behaviors. Those drivers become almost trivial. If you’re targeting LAN devices, then you’ve got to write all the code yourself anyway.