9. Application User Guide
9.1. Delegate Implementation
As per the implementation in the connectedhomeip repository, some of the clusters require an application defined delegate to consume specific data and actions. In order to provide this flexibity to the application, esp-matter facilitates delegate initilization callbacks in the cluster create API. It is expected that application will define it’s data and actions in the form of delegate-impl class and set the delegate while creating cluster/device type.
- List of clusters with delegate:
Mode Base Cluster (all derived types of clusters).
Content Launch Cluster.
Fan Control Cluster.
Audio Output Cluster.
Energy EVSE Cluster.
Device Energy Management Cluster.
Microwave Oven Control Cluster.
Door Lock Cluster.
Messages Cluster.
Operational State Cluster.
Electrical Power Measurement Cluster.
Media Playback Cluster.
Power Topology Cluster.
Content App Observer Cluster.
Channel Cluster.
Resource Monitoring Cluster.
Application Basic Cluster.
Dishwasher Alarm Cluster.
Boolean State Configuration Cluster.
Laundry Dryer Controls Cluster.
Media Input Cluster.
Application Launcher Cluster.
Laundry Washer Controls Cluster.
Valve Configuration And Control Cluster.
Window Covering Cluster.
Content Control Cluster.
Time Synchronization Cluster.
Low Power Cluster.
Keypad Input Cluster.
Account Login Cluster.
Wake On Lan Cluster.
Target Navigator Cluster.
Mode Select Cluster.
9.1.1 Mode Base Cluster
It is a base cluster for ModeEVSE, ModeOven, ModeRVSRun, ModeRVSClean, ModeDishwasher, ModeWaterHeater, ModeRefrigerator, ModeLaundryWasher and ModeMicrowaveOven.
Delegate Class |
Reference Implementation |
---|---|
9.1.2 Energy Evse Cluster
Delegate Class |
Reference Implementation |
---|---|
9.1.3 Operational State Cluster
Delegate Class |
Reference Implementation |
---|---|
9.1.4 Microwave Oven Control Cluster
Delegate Class |
Reference Implementation |
---|---|
9.1.5 Fan Control Cluster
Delegate Class |
Reference Implementation |
---|---|
9.1.6 Resource Monitoring Cluster
Delegate Class |
Reference Implementation |
---|---|
9.1.7 Laundry Dryer Controls Cluster
Delegate Class |
Reference Implementation |
---|---|
9.1.8 Valve Configuration And Control Cluster
Delegate Class |
Reference Implementation |
---|---|
9.1.9 Device Energy Management Cluster
Delegate Class |
Reference Implementation |
---|---|
9.1.10 Door Lock Cluster
Delegate Class |
Reference Implementation |
---|---|
None |
9.1.11 Boolean State Configuration Cluster
Delegate Class |
Reference Implementation |
---|---|
None |
9.1.12 Time Synchronization Cluster
Delegate Class |
Reference Implementation |
---|---|
9.1.13 Application Basic Cluster
Delegate Class |
Reference Implementation |
---|---|
None |
9.1.14 Power Topology Cluster
Delegate Class |
Reference Implementation |
---|---|
9.1.15 Electrical Power Measurement Cluster
Delegate Class |
Reference Implementation |
---|---|
9.1.16 Laundry Washer Controls Cluster
Delegate Class |
Reference Implementation |
---|---|
9.1.17 Window Covering Cluster
Delegate Class |
Reference Implementation |
---|---|
9.1.18 Dishwasher Alarm Cluster
Delegate Class |
Reference Implementation |
---|---|
9.1.19 Keypad Input Cluster
Delegate Class |
Reference Implementation |
---|---|
9.1.20 Mode Select Cluster
Delegate Class |
Reference Implementation |
---|---|
Note
Make sure that after implementing delegate class, you set the delegate class pointer at the time of creating cluster.
robotic_vacuum_cleaner::config_t rvc_config;
rvc_config.rvc_run_mode.delegate = object_of_delegate_class;
endpoint_t *endpoint = robotic_vacuum_cleaner::create(node, & rvc_config, ENDPOINT_FLAG_NONE);