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.

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

Mode Base

Refrigeratore And TCC Mode

Laundry Washer Mode

Dish Washer Mode

Rvc Run And Rvc Clean Mode

Energy Evse Mode

Microwave Oven Mode

Device Energy Management Mode

9.1.2 Energy Evse Cluster

Delegate Class

Reference Implementation

Energy Evse

Energy Evse Delegate

9.1.3 Operational State Cluster

Delegate Class

Reference Implementation

Operational State

Operational State Delegate

9.1.4 Microwave Oven Control Cluster

Delegate Class

Reference Implementation

Microwave Oven Control

Microwave Oven Control Delegate

9.1.5 Fan Control Cluster

Delegate Class

Reference Implementation

Fan Control

Fan Control Delegate

9.1.6 Resource Monitoring Cluster

Delegate Class

Reference Implementation

Resource Monitoring

Resource Monitoring Delegate

9.1.7 Laundry Dryer Controls Cluster

Delegate Class

Reference Implementation

Laundry Dryer Controls

Laundry Dryer Controls Delegate

9.1.8 Valve Configuration And Control Cluster

Delegate Class

Reference Implementation

Valve Configuration And Control

Valve Configuration And Control Delegate

9.1.9 Device Energy Management Cluster

Delegate Class

Reference Implementation

Device Energy Management

Device Energy Management Delegate

9.1.10 Door Lock Cluster

Delegate Class

Reference Implementation

Door Lock

None

9.1.11 Boolean State Configuration Cluster

Delegate Class

Reference Implementation

Boolean State Configuration

None

9.1.12 Time Synchronization Cluster

Delegate Class

Reference Implementation

Time Synchronization

Time Synchronization Delegate

9.1.13 Application Basic Cluster

Delegate Class

Reference Implementation

Application Basic

None

9.1.14 Power Topology Cluster

Delegate Class

Reference Implementation

Power Topology

Power Topology Delegate

9.1.15 Electrical Power Measurement Cluster

Delegate Class

Reference Implementation

Electrical Power Measurement

Electrical Power Measurement Delegate

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);