Application User Guide
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:
Account Login Cluster.
Actions Cluster.
Application Basic Cluster.
Application Launcher Cluster.
Audio Output Cluster.
Boolean State Configuration Cluster.
Camera AV Settings User Level Management Cluster.
Channel Cluster.
Closure Control Cluster.
Closure Dimension Cluster.
Commissioner Control Cluster.
Content App Observer Cluster.
Content Control Cluster.
Content Launcher Cluster.
Device Energy Management Cluster.
Dishwasher Alarm Cluster.
Door Lock Cluster.
Electrical Power Measurement Cluster.
Energy EVSE Cluster.
Energy Preference Cluster.
Fan Control Cluster.
Keypad Input Cluster.
Laundry Dryer Controls Cluster.
Laundry Washer Controls Cluster.
Low Power Cluster.
Media Input Cluster.
Media Playback Cluster.
Messages Cluster.
Microwave Oven Control Cluster.
Mode Base Cluster (all derived types of clusters).
Mode Select Cluster.
Operational State Cluster.
Power Topology Cluster.
Resource Monitoring Cluster.
Service Area Cluster.
Target Navigator Cluster.
Thermostat Cluster.
Time Synchronization Cluster.
Valve Configuration And Control Cluster.
Wake On Lan Cluster.
Water Heater Management Cluster.
WebRTC Transport Provider Cluster.
Window Covering Cluster.
Below is the list of clusters with delegate and their reference implementation header files:
1.1 Account Login Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.2 Actions Cluster
Delegate Class |
Reference Implementation |
|---|---|
None |
1.3 Application Basic Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.4 Application Launcher Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.5 Audio Output Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.6 Boolean State Configuration Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.7 Camera AV Settings User Level Management Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.8 Channel Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.9 Closure Control Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.10 Closure Dimension Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.11 Commissioner Control Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.12 Content App Observer Cluster
Delegate Class |
Reference Implementation |
|---|---|
None |
1.13 Content Control Cluster
Delegate Class |
Reference Implementation |
|---|---|
None |
1.14 Content Launcher Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.15 Device Energy Management Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.16 Dishwasher Alarm Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.17 Door Lock Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.18 Electrical Power Measurement Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.19 Energy Evse Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.20 Energy Preference Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.21 Fan Control Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.22 Keypad Input Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.23 Laundry Dryer Controls Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.24 Laundry Washer Controls Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.25 Low Power Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.26 Media Input Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.27 Media Playback Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.28 Messages Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.29 Microwave Oven Control Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.30 Mode Base Cluster
It is a base cluster for ModeEVSE, ModeOven, ModeRVSRun, ModeRVSClean, ModeDishwasher, ModeWaterHeater, ModeRefrigerator, ModeLaundryWasher and ModeMicrowaveOven.
Delegate Class |
Reference Implementation |
|---|---|
1.31 Mode Select Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.32 Operational State Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.33 Power Topology Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.34 Resource Monitoring Cluster
Delegate Class |
Reference Implementation |
|---|---|
Water Tank Level Monitoring Delegate |
1.35 Service Area Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.37 Thermostat Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.38 Time Synchronization Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.39 Valve Configuration And Control Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.40 Wake On LAN Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.41 Water Heater Management Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.42 WebRTC Transport Provider Cluster
Delegate Class |
Reference Implementation |
|---|---|
1.43 Window Covering 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);