diff --git a/components/esp_matter/esp_matter_cluster.cpp b/components/esp_matter/esp_matter_cluster.cpp index 7f33023ea..f665713cf 100644 --- a/components/esp_matter/esp_matter_cluster.cpp +++ b/components/esp_matter/esp_matter_cluster.cpp @@ -18,6 +18,7 @@ #include #include #include +#include #include #include @@ -128,11 +129,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } return cluster; @@ -158,19 +155,13 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ - global::attribute::create_cluster_revision(cluster, 1); global::attribute::create_feature_map(cluster, 0); attribute::create_action_list(cluster, NULL, 0, 0); attribute::create_endpoint_lists(cluster, NULL, 0, 0); - /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } - + /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); } event::create_action_failed(cluster); @@ -209,12 +200,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } - + global::attribute::create_cluster_revision(cluster, cluster_revision); } event::create_access_control_entry_changed(cluster); @@ -260,8 +246,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) attribute::create_max_paths_per_invoke(cluster, 0); /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); attribute::create_node_label(cluster, config->node_label, strlen(config->node_label)); } else { ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); @@ -302,11 +288,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) attribute::create_binding(cluster, NULL, 0, 0); /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } return cluster; @@ -337,11 +319,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } /* Commands */ @@ -380,8 +358,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) attribute::create_default_ota_providers(cluster, NULL, 0, 0); /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); attribute::create_update_possible(cluster, config->update_possible); attribute::create_update_state(cluster, config->update_state); attribute::create_update_state_progress(cluster, config->update_state_progress); @@ -429,8 +407,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) attribute::create_supports_concurrent_connection(cluster, 0); /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); attribute::create_breadcrumb(cluster, config->breadcrumb); } else { ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); @@ -488,11 +466,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } /* Commands */ @@ -538,11 +512,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } event::create_boot_reason(cluster); @@ -582,11 +552,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ attribute::create_admin_vendor_id(cluster, 0); /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } /* Features */ @@ -632,11 +598,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) attribute::create_current_fabric_index(cluster, 0); /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } /* Commands */ @@ -727,11 +689,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) attribute::create_rssi(cluster, nullable()); /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } return cluster; @@ -779,11 +737,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) attribute::create_active_network_faults(cluster, NULL, 0, 0); /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } return cluster; @@ -811,11 +765,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } /* Commands */ @@ -853,11 +803,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } event::create_time_failure(cluster); @@ -888,11 +834,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } /* Features */ @@ -927,8 +869,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); attribute::create_reachable(cluster, config->reachable); } else { ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); @@ -961,8 +903,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ global::attribute::create_feature_map(cluster, 0); /** Attributes not managed internally **/ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); attribute::create_status(cluster, config->status); attribute::create_order(cluster, config->order, 0x00, 0xFF); attribute::create_description(cluster, config->description, strlen(config->description)); @@ -1018,11 +960,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ attribute::create_active_mode_threshold(cluster, CONFIG_ICD_ACTIVE_MODE_THRESHOLD_MS); /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } #if defined(CHIP_CONFIG_ENABLE_ICD_CIP) && CHIP_CONFIG_ENABLE_ICD_CIP @@ -1067,11 +1005,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) attribute::create_label_list(cluster, NULL, 0, 0); /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } return cluster; @@ -1103,11 +1037,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) attribute::create_label_list(cluster, NULL, 0, 0); /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } return cluster; @@ -1145,8 +1075,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); attribute::create_identify_time(cluster, config->identify_time, 0x0, 0xFFFE); attribute::create_identify_type(cluster, config->identify_type); } else { @@ -1187,8 +1117,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); attribute::create_group_name_support(cluster, config->group_name_support); } else { ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); @@ -1238,8 +1168,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); attribute::create_scene_table_size(cluster, config->scene_table_size); attribute::create_fabric_scene_info(cluster, NULL, 0, 0); } else { @@ -1293,8 +1223,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); attribute::create_on_off(cluster, config->on_off); } else { ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); @@ -1352,8 +1282,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); attribute::create_current_level(cluster, config->current_level); attribute::create_on_level(cluster, config->on_level); attribute::create_options(cluster, config->options, 0x0, 0x3); @@ -1411,8 +1341,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); attribute::create_color_mode(cluster, config->color_mode); attribute::create_color_control_options(cluster, config->color_control_options); attribute::create_enhanced_color_mode(cluster, config->enhanced_color_mode, 0, 3); @@ -1491,8 +1421,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); attribute::create_fan_mode(cluster, config->fan_mode, 0, 6); attribute::create_fan_mode_sequence(cluster, config->fan_mode_sequence, 0, 5); attribute::create_percent_setting(cluster, config->percent_setting, 0, 100); @@ -1536,8 +1466,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); attribute::create_local_temperature(cluster, config->local_temperature); attribute::create_control_sequence_of_operation(cluster, config->control_sequence_of_operation, 0x0, 0x5); attribute::create_system_mode(cluster, config->system_mode, 0x0, 0x7); @@ -1604,8 +1534,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); attribute::create_temperature_display_mode(cluster, config->temperature_display_mode); attribute::create_keypad_lockout(cluster, config->keypad_lockout); } else { @@ -1643,11 +1573,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) attribute::create_air_quality(cluster, 0); /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } return cluster; @@ -1684,11 +1610,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) attribute::create_change_indication(cluster, 0); /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } return cluster; @@ -1725,11 +1647,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) attribute::create_change_indication(cluster, 0); /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } return cluster; @@ -1762,11 +1680,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) attribute::create_measurement_medium(cluster, config->measurement_medium); /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } return cluster; @@ -1800,11 +1714,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) attribute::create_measurement_medium(cluster, config->measurement_medium); /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } return cluster; @@ -1838,11 +1748,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) attribute::create_measurement_medium(cluster, config->measurement_medium); /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } return cluster; @@ -1876,11 +1782,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) attribute::create_measurement_medium(cluster, config->measurement_medium); /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } return cluster; @@ -1914,11 +1816,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) attribute::create_measurement_medium(cluster, config->measurement_medium); /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } return cluster; @@ -1952,11 +1850,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) attribute::create_measurement_medium(cluster, config->measurement_medium); /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } return cluster; @@ -1990,11 +1884,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) attribute::create_measurement_medium(cluster, config->measurement_medium); /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } return cluster; @@ -2028,11 +1918,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) attribute::create_measurement_medium(cluster, config->measurement_medium); /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } return cluster; @@ -2066,11 +1952,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) attribute::create_measurement_medium(cluster, config->measurement_medium); /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } return cluster; @@ -2104,11 +1986,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) attribute::create_measurement_medium(cluster, config->measurement_medium); /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } return cluster; @@ -2150,11 +2028,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) attribute::create_operational_error(cluster, 0); /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } event::create_operational_error(cluster); @@ -2192,8 +2066,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); mode_base::attribute::create_current_mode(cluster, config->current_mode); } else { ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); @@ -2235,11 +2109,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) global::attribute::create_feature_map(cluster, 0); /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } return cluster; @@ -2278,8 +2148,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) attribute::create_supported_dryness_levels(cluster, NULL, 0, 0); /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); attribute::create_selected_dryness_level(cluster, config->selected_dryness_level); } else { ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); @@ -2319,8 +2189,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); mode_base::attribute::create_current_mode(cluster, config->current_mode); } else { ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); @@ -2359,11 +2229,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) global::attribute::create_feature_map(cluster, 0); /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } return cluster; @@ -2400,11 +2266,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) attribute::create_end_of_service_alert(cluster, 0); /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } event::create_low_battery(cluster); @@ -2457,8 +2319,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); attribute::create_lock_state(cluster, config->lock_state); attribute::create_lock_type(cluster, config->lock_type); attribute::create_actuator_enabled(cluster, config->actuator_enabled); @@ -2514,8 +2376,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); attribute::create_type(cluster, config->type); attribute::create_config_status(cluster, config->config_status); attribute::create_operational_status(cluster, config->operational_status); @@ -2567,8 +2429,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); attribute::create_number_of_positions(cluster, config->number_of_positions); attribute::create_current_position(cluster, config->current_position); } else { @@ -2607,8 +2469,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); attribute::create_temperature_measured_value(cluster, config->measured_value); attribute::create_temperature_min_measured_value(cluster, config->min_measured_value); attribute::create_temperature_max_measured_value(cluster, config->max_measured_value); @@ -2648,8 +2510,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); attribute::create_relative_humidity_measured_value(cluster, config->measured_value); attribute::create_relative_humidity_min_measured_value(cluster, config->min_measured_value); attribute::create_relative_humidity_max_measured_value(cluster, config->max_measured_value); @@ -2691,8 +2553,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); attribute::create_occupancy(cluster, config->occupancy); attribute::create_occupancy_sensor_type(cluster, config->occupancy_sensor_type); attribute::create_occupancy_sensor_type_bitmap(cluster, config->occupancy_sensor_type_bitmap); @@ -2732,8 +2594,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); attribute::create_state_value(cluster, config->state_value); } else { ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); @@ -2775,11 +2637,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } @@ -2825,9 +2683,9 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) global::attribute::create_feature_map(cluster, 0); + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { /* Attributes not managed internally */ - global::attribute::create_cluster_revision(cluster, config->cluster_revision); attribute::create_active_locale(cluster, config->active_locale, strlen(config->active_locale)); /* Attributes managed internally */ @@ -2869,7 +2727,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ if (config) { /* Attributes not managed internally */ - global::attribute::create_cluster_revision(cluster, config->cluster_revision); + global::attribute::create_cluster_revision(cluster, cluster_revision); /* Attributes managed internally */ attribute::create_hour_format(cluster, config->hour_format); @@ -2912,8 +2770,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) global::attribute::create_feature_map(cluster, 0); /** Attributes not managed internally **/ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); attribute::create_illuminance_measured_value(cluster, config->illuminance_measured_value, 0x0000, 0xFFFF); attribute::create_illuminance_min_measured_value(cluster, config->illuminance_min_measured_value, 0x0001, 0xFFFD); @@ -2953,8 +2811,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) global::attribute::create_feature_map(cluster, 0); /** Attributes not managed internally **/ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); attribute::create_pressure_measured_value(cluster, config->pressure_measured_value); attribute::create_pressure_min_measured_value(cluster, config->pressure_min_measured_value); attribute::create_pressure_max_measured_value(cluster, config->pressure_max_measured_value); @@ -2992,8 +2850,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) global::attribute::create_feature_map(cluster, 0); /** Attributes not managed internally **/ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); attribute::create_flow_measured_value(cluster, config->flow_measured_value); attribute::create_flow_min_measured_value(cluster, config->flow_min_measured_value); attribute::create_flow_max_measured_value(cluster, config->flow_max_measured_value); @@ -3037,8 +2895,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /** Attributes not managed internally **/ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); attribute::create_max_pressure(cluster, config->max_pressure); attribute::create_max_speed(cluster, config->max_speed); attribute::create_max_flow(cluster, config->max_flow); @@ -3078,8 +2936,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ attribute::create_supported_modes(cluster, NULL, 0, 0); /** Attributes not managed internally **/ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); attribute::create_mode_select_description(cluster, config->mode_select_description, strlen(config->mode_select_description)); attribute::create_standard_namespace(cluster, config->standard_namespace); attribute::create_current_mode(cluster, config->current_mode); @@ -3125,11 +2983,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } /* commands */ @@ -3163,11 +3017,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } /* Features */ if (features & feature::watermarks::get_id()) { @@ -3200,11 +3050,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } /* Commands */ @@ -3247,8 +3093,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); attribute::create_mask(cluster, config->mask); attribute::create_state(cluster, config->state); attribute::create_supported(cluster, config->supported); @@ -3286,8 +3132,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) mode_base::attribute::create_supported_modes(cluster, NULL, 0, 0); /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); mode_base::attribute::create_current_mode(cluster, config->current_mode); } else { ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); @@ -3326,8 +3172,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) mode_base::attribute::create_supported_modes(cluster, NULL, 0, 0); /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); mode_base::attribute::create_current_mode(cluster, config->current_mode); } else { ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); @@ -3365,8 +3211,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) mode_base::attribute::create_supported_modes(cluster, NULL, 0, 0); /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); mode_base::attribute::create_current_mode(cluster, config->current_mode); } else { ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); @@ -3404,8 +3250,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) mode_base::attribute::create_supported_modes(cluster, NULL, 0, 0); /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); mode_base::attribute::create_current_mode(cluster, config->current_mode); } else { ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); @@ -3441,11 +3287,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ microwave_oven_control::attribute::create_max_cook_time(cluster, 0); /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } /* Commands */ @@ -3490,11 +3332,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } return cluster; @@ -3529,11 +3367,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } /* Commands */ @@ -3570,11 +3404,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } /* Features */ @@ -3624,11 +3454,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ attribute::create_accuracy(cluster, NULL, 0, 0); attribute::create_active_power(cluster, 0); /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } /* Features */ @@ -3682,11 +3508,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ attribute::create_accuracy(cluster, NULL, 0, 0); /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } /* Features */ @@ -3742,8 +3564,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) mode_base::attribute::create_supported_modes(cluster, NULL, 0, 0); /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); mode_base::attribute::create_current_mode(cluster, config->current_mode); } else { ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); @@ -3790,11 +3612,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ attribute::create_session_energy_charged(cluster, 0); /* Attributes not managed internally */ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } /* Features */ @@ -3853,8 +3671,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ /** Attributes not managed internally **/ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); attribute::create_open_duration(cluster, config->open_duration); attribute::create_default_open_duration(cluster, config->default_open_duration); attribute::create_current_state(cluster, config->current_state); @@ -3916,11 +3734,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ attribute::create_abs_min_power(cluster, 0); attribute::create_abs_max_power(cluster, 0); /** Attributes not managed internally **/ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } /* Features */ @@ -3978,8 +3792,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) mode_base::attribute::create_supported_modes(cluster, NULL, 0, 0); /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); mode_base::attribute::create_current_mode(cluster, config->current_mode); } else { ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); @@ -4029,11 +3843,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ attribute::create_application_version(cluster, NULL, 0); attribute::create_allowed_vendor_list(cluster, NULL, 0 , 0); /** Attributes not managed internally **/ - if (config) { - global::attribute::create_cluster_revision(cluster, config->cluster_revision); - } else { - ESP_LOGE(TAG, "Config is NULL. Cannot add some attributes."); - } + global::attribute::create_cluster_revision(cluster, cluster_revision); } return cluster; } diff --git a/components/esp_matter/esp_matter_cluster.h b/components/esp_matter/esp_matter_cluster.h index d014ad52f..38d712806 100644 --- a/components/esp_matter/esp_matter_cluster.h +++ b/components/esp_matter/esp_matter_cluster.h @@ -47,68 +47,54 @@ void delegate_init_callback_common(); * If a custom cluster needs to be created, the low level esp_matter::cluster::create() API can be used. */ -namespace descriptor { +namespace common { + typedef struct config { - uint16_t cluster_revision; - config() : cluster_revision(1) {} + // Empty config for API consistency } config_t; +} /* common */ + +namespace descriptor { +using config_t = common::config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); } /* descriptor */ namespace actions { -typedef struct config { - uint16_t cluster_revision; - config() : cluster_revision(1) {} -} config_t; - +using config_t = common::config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); } /* actions */ namespace access_control { -typedef struct config { - uint16_t cluster_revision; - config() : cluster_revision(1) {} -} config_t; - +using config_t = common::config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); } /* access_control */ namespace basic_information { typedef struct config { - uint16_t cluster_revision; char node_label[k_max_node_label_length + 1]; - config() : cluster_revision(3), node_label{0} {} + config() : node_label{0} {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); } /* basic_information */ namespace binding { -typedef struct config { - uint16_t cluster_revision; - config() : cluster_revision(1) {} -} config_t; - +using config_t = common::config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); } /* binding */ namespace ota_provider { -typedef struct config { - uint16_t cluster_revision; - config() : cluster_revision(1) {} -} config_t; - +using config_t = common::config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); } /* ota_provider */ namespace ota_requestor { typedef struct config { - uint16_t cluster_revision; bool update_possible; uint8_t update_state; nullable update_state_progress; - config() : cluster_revision(1), update_possible(true), update_state(0), update_state_progress() {} + config() : update_possible(true), update_state(0), update_state_progress() {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -116,109 +102,67 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace general_commissioning { typedef struct config { - uint16_t cluster_revision; uint64_t breadcrumb; - config() : cluster_revision(1), breadcrumb(0) {} + config() : breadcrumb(0) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); } /* general_commissioning */ namespace network_commissioning { -typedef struct config { - uint16_t cluster_revision; - config() : cluster_revision(2) {} -} config_t; - +using config_t = common::config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); } /* network_commissioning */ namespace diagnostic_logs { -typedef struct config { - uint16_t cluster_revision; - config() : cluster_revision(1) {} -} config_t; - +using config_t = common::config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); } /* diagnostic_logs */ namespace general_diagnostics { -typedef struct config { - uint16_t cluster_revision; - config() : cluster_revision(2) {} -} config_t; - +using config_t = common::config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); } /* general_diagnostics */ namespace software_diagnostics { -typedef struct config { - uint16_t cluster_revision; - config() : cluster_revision(1) {} -} config_t; - +using config_t = common::config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_t features); } /* software_diagnostics */ namespace administrator_commissioning { -typedef struct config { - uint16_t cluster_revision; - config() : cluster_revision(1) {} -} config_t; - +using config_t = common::config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_t features); } /* administrator_commissioning */ namespace operational_credentials { -typedef struct config { - uint16_t cluster_revision; - config() : cluster_revision(1) {} -} config_t; - +using config_t = common::config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); } /* operational_credentials */ namespace group_key_management { -typedef struct config { - uint16_t cluster_revision; - config() : cluster_revision(2) {} -} config_t; - +using config_t = common::config_t; cluster_t *create(endpoint_t *endpoint, uint8_t flags); } /* group_key_management */ namespace wifi_network_diagnotics { -typedef struct config { - uint16_t cluster_revision; - config() : cluster_revision(1) {} -} config_t; - +using config_t = common::config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); } /* wifi_network_diagnotics */ namespace thread_network_diagnostics { -typedef struct config { - uint16_t cluster_revision; - config() : cluster_revision(2) {} -} config_t; - +using config_t = common::config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); } /* thread_network_diagnostics */ namespace ethernet_network_diagnostics { -typedef struct config { - uint16_t cluster_revision; - config() : cluster_revision(1) {} -} config_t; - +using config_t = common::config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); } /* ethernet_network_diagnostics */ namespace time_synchronization { typedef struct config { - uint16_t cluster_revision; void *delegate; - config() : cluster_revision(2), delegate(nullptr) {} + config() : delegate(nullptr) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -226,9 +170,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace unit_localization { typedef struct config { - uint16_t cluster_revision; feature::temperature_unit::config_t temperature_unit; - config() : cluster_revision(1) {} + // Empty config for API consistency } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_t features); @@ -236,9 +179,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ namespace bridged_device_basic_information { typedef struct config { - uint16_t cluster_revision; bool reachable; - config() : cluster_revision(2), reachable(true) {} + config() : reachable(true) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -246,7 +188,6 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace power_source { typedef struct config { - uint16_t cluster_revision; uint8_t status; uint8_t order; char description[k_max_description_length + 1]; @@ -254,7 +195,7 @@ typedef struct config { feature::battery::config_t battery; feature::rechargeable::config_t rechargeable; feature::replaceable::config_t replaceable; - config() : cluster_revision(2), status(0), order(0), description{0} {} + config() : status(0), order(0), description{0} {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_t features); @@ -262,38 +203,28 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ namespace icd_management { typedef struct config { - uint16_t cluster_revision; feature::user_active_mode_trigger::config_t user_active_mode_trigger; - config() : cluster_revision(2) {} + // Empty config for API consistency } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_t features); } /* icd_management */ namespace user_label { -typedef struct config { - uint16_t cluster_revision; - config() : cluster_revision(1) {} -} config_t; - +using config_t = common::config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); } /* user_label */ namespace fixed_label { -typedef struct config { - uint16_t cluster_revision; - config() : cluster_revision(1) {} -} config_t; - +using config_t = common::config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); } /* fixed_label */ namespace identify { typedef struct config { - uint16_t cluster_revision; uint16_t identify_time; uint8_t identify_type; - config() : cluster_revision(4), identify_time(0), identify_type(0) {} + config() : identify_time(0), identify_type(0) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -301,9 +232,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace groups { typedef struct config { - uint16_t cluster_revision; uint8_t group_name_support; - config() : cluster_revision(4), group_name_support(0) {} + config() : group_name_support(0) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -311,9 +241,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace scenes_management { typedef struct config { - uint16_t cluster_revision; uint16_t scene_table_size; - config() : cluster_revision(1), scene_table_size(16) {} + config() : scene_table_size(16) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -321,10 +250,9 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace on_off { typedef struct config { - uint16_t cluster_revision; bool on_off; feature::lighting::config_t lighting; - config() : cluster_revision(6), on_off(false) {} + config() : on_off(false) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_t features); @@ -332,12 +260,11 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ namespace level_control { typedef struct config { - uint16_t cluster_revision; nullable current_level; nullable on_level; uint8_t options; feature::lighting::config_t lighting; - config() : cluster_revision(5), current_level(), on_level(), options(0) {} + config() : current_level(), on_level(), options(0) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_t features); @@ -345,7 +272,6 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ namespace color_control { typedef struct config { - uint16_t cluster_revision; uint8_t color_mode; uint8_t color_control_options; uint8_t enhanced_color_mode; @@ -356,7 +282,7 @@ typedef struct config { feature::xy::config_t xy; feature::enhanced_hue::config_t enhanced_hue; feature::color_loop::config_t color_loop; - config() : cluster_revision(6), color_mode(1), color_control_options(0), enhanced_color_mode(1), + config() : color_mode(1), color_control_options(0), enhanced_color_mode(1), color_capabilities(0), number_of_primaries(0) {} } config_t; @@ -365,13 +291,12 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ namespace fan_control { typedef struct config { - uint16_t cluster_revision; uint8_t fan_mode; uint8_t fan_mode_sequence; nullable percent_setting; uint8_t percent_current; void *delegate; - config() : cluster_revision(4), fan_mode(0), fan_mode_sequence(2), percent_setting(0), percent_current(0), delegate(nullptr) {} + config() : fan_mode(0), fan_mode_sequence(2), percent_setting(0), percent_current(0), delegate(nullptr) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -379,7 +304,6 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace thermostat { typedef struct config { - uint16_t cluster_revision; nullable local_temperature; uint8_t control_sequence_of_operation; uint8_t system_mode; @@ -390,7 +314,7 @@ typedef struct config { feature::schedule_configuration::config_t schedule_configuration; feature::auto_mode::config_t auto_mode; feature::local_temperature_not_exposed::config_t local_temperature_not_exposed; - config() : cluster_revision(6), local_temperature(), control_sequence_of_operation(4), system_mode(1) {} + config() : local_temperature(), control_sequence_of_operation(4), system_mode(1) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_t features); @@ -398,29 +322,23 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ namespace thermostat_user_interface_configuration { typedef struct config { - uint16_t cluster_revision; uint8_t temperature_display_mode; uint8_t keypad_lockout; - config() : cluster_revision(2), temperature_display_mode(0), keypad_lockout(0) {} + config() : temperature_display_mode(0), keypad_lockout(0) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); } /* thermostat_user_interface_configuration */ namespace air_quality { -typedef struct config { - uint16_t cluster_revision; - config() : cluster_revision(1) {} -} config_t; - +using config_t = common::config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); } /* air_quality */ namespace hepa_filter_monitoring { typedef struct config { - uint16_t cluster_revision; void *delegate; - config() : cluster_revision(1), delegate(nullptr) {} + config() : delegate(nullptr) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -428,9 +346,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace activated_carbon_filter_monitoring { typedef struct config { - uint16_t cluster_revision; void *delegate; - config() : cluster_revision(1), delegate(nullptr) {} + config() : delegate(nullptr) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -438,9 +355,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace carbon_monoxide_concentration_measurement { typedef struct config { - uint16_t cluster_revision; uint8_t measurement_medium; - config() : cluster_revision(3), measurement_medium(0) {} + config() : measurement_medium(0) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -448,9 +364,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace carbon_dioxide_concentration_measurement { typedef struct config { - uint16_t cluster_revision; uint8_t measurement_medium; - config() : cluster_revision(3), measurement_medium(0) {} + config() : measurement_medium(0) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -458,9 +373,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace nitrogen_dioxide_concentration_measurement { typedef struct config { - uint16_t cluster_revision; uint8_t measurement_medium; - config() : cluster_revision(3), measurement_medium(0) {} + config() : measurement_medium(0) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -468,9 +382,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace ozone_concentration_measurement { typedef struct config { - uint16_t cluster_revision; uint8_t measurement_medium; - config() : cluster_revision(3), measurement_medium(0) {} + config() : measurement_medium(0) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -478,9 +391,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace formaldehyde_concentration_measurement { typedef struct config { - uint16_t cluster_revision; uint8_t measurement_medium; - config() : cluster_revision(3), measurement_medium(0) {} + config() : measurement_medium(0) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -488,9 +400,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace pm1_concentration_measurement { typedef struct config { - uint16_t cluster_revision; uint8_t measurement_medium; - config() : cluster_revision(3), measurement_medium(0) {} + config() : measurement_medium(0) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -498,9 +409,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace pm25_concentration_measurement { typedef struct config { - uint16_t cluster_revision; uint8_t measurement_medium; - config() : cluster_revision(3), measurement_medium(0) {} + config() : measurement_medium(0) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -508,9 +418,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace pm10_concentration_measurement { typedef struct config { - uint16_t cluster_revision; uint8_t measurement_medium; - config() : cluster_revision(3), measurement_medium(0) {} + config() : measurement_medium(0) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -518,9 +427,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace radon_concentration_measurement { typedef struct config { - uint16_t cluster_revision; uint8_t measurement_medium; - config() : cluster_revision(3), measurement_medium(0) {} + config() : measurement_medium(0) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -528,9 +436,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace total_volatile_organic_compounds_concentration_measurement { typedef struct config { - uint16_t cluster_revision; uint8_t measurement_medium; - config() : cluster_revision(3), measurement_medium(0) {} + config() : measurement_medium(0) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -538,9 +445,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace operational_state { typedef struct config { - uint16_t cluster_revision; void *delegate; - config() : cluster_revision(2), delegate(nullptr) {} + config() : delegate(nullptr) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -548,10 +454,9 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace laundry_washer_mode { typedef struct config { - uint16_t cluster_revision; uint8_t current_mode; void *delegate; - config() : cluster_revision(1), current_mode(0), delegate(nullptr) {} + config() : current_mode(0), delegate(nullptr) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -559,9 +464,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace laundry_washer_controls { typedef struct config { - uint16_t cluster_revision; void *delegate; - config() : cluster_revision(1), delegate(nullptr) {} + config() : delegate(nullptr) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -569,10 +473,9 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace laundry_dryer_controls { typedef struct config { - uint16_t cluster_revision; nullable selected_dryness_level; void *delegate; - config() : cluster_revision(1), selected_dryness_level(0), delegate(nullptr) {} + config() : selected_dryness_level(0), delegate(nullptr) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -580,10 +483,9 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace dish_washer_mode { typedef struct config { - uint16_t cluster_revision; uint8_t current_mode; void *delegate; - config() : cluster_revision(1), current_mode(0), delegate(nullptr) {} + config() : current_mode(0), delegate(nullptr) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -591,33 +493,27 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace dish_washer_alarm { typedef struct config { - uint16_t cluster_revision; void *delegate; - config() : cluster_revision(1), delegate(nullptr) {} + config() : delegate(nullptr) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); } /* dish_washer_alarm */ namespace smoke_co_alarm { -typedef struct config { - uint16_t cluster_revision; - config() : cluster_revision(1) {} -} config_t; - +using config_t = common::config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); } /* smoke_co_alarm */ namespace door_lock { typedef struct config { - uint16_t cluster_revision; nullable lock_state; uint8_t lock_type; bool actuator_enabled; uint8_t operating_mode; uint16_t supported_operating_modes; void *delegate; - config() : cluster_revision(7), lock_state(0), lock_type(0), actuator_enabled(0), operating_mode(0), supported_operating_modes(0xFFF6), delegate(nullptr) {} + config() : lock_state(0), lock_type(0), actuator_enabled(0), operating_mode(0), supported_operating_modes(0xFFF6), delegate(nullptr) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -625,7 +521,6 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace window_covering { typedef struct config { - uint16_t cluster_revision; uint8_t type; uint8_t config_status; uint8_t operational_status; @@ -633,7 +528,7 @@ typedef struct config { uint8_t mode; feature::lift::config_t lift; void *delegate; - config(uint8_t end_product_type = 0) : cluster_revision(5), type(0), config_status(0), operational_status(0), end_product_type(end_product_type), mode(0), delegate(nullptr) {} + config(uint8_t end_product_type = 0) : type(0), config_status(0), operational_status(0), end_product_type(end_product_type), mode(0), delegate(nullptr) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_t features); @@ -641,10 +536,9 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ namespace switch_cluster { typedef struct config { - uint16_t cluster_revision; uint8_t number_of_positions; uint8_t current_position; - config() : cluster_revision(1), number_of_positions(2), current_position(0) {} + config() : number_of_positions(2), current_position(0) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -652,11 +546,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace temperature_measurement { typedef struct config { - uint16_t cluster_revision; nullable measured_value; nullable min_measured_value; nullable max_measured_value; - config() : cluster_revision(4), measured_value(), min_measured_value(), max_measured_value() {} + config() : measured_value(), min_measured_value(), max_measured_value() {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -664,11 +557,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace relative_humidity_measurement { typedef struct config { - uint16_t cluster_revision; nullable measured_value; nullable min_measured_value; nullable max_measured_value; - config() : cluster_revision(3), measured_value(), min_measured_value(), max_measured_value() {} + config() : measured_value(), min_measured_value(), max_measured_value() {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -676,11 +568,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace occupancy_sensing { typedef struct config { - uint16_t cluster_revision; uint8_t occupancy; uint8_t occupancy_sensor_type; uint8_t occupancy_sensor_type_bitmap; - config() : cluster_revision(4), occupancy(0), occupancy_sensor_type(0), + config() : occupancy(0), occupancy_sensor_type(0), occupancy_sensor_type_bitmap(0) {} } config_t; @@ -689,9 +580,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace boolean_state { typedef struct config { - uint16_t cluster_revision; bool state_value; - config() : cluster_revision(1), state_value(0) {} + config() : state_value(0) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -699,13 +589,12 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace boolean_state_configuration { typedef struct config { - uint16_t cluster_revision; feature::visual::config_t visual; feature::audible::config_t audible; feature::alarm_suppress::config_t alarm_suppress; feature::sensitivity_level::config_t sensitivity_level; void *delegate; - config() : cluster_revision(1), delegate(nullptr) {} + config() : delegate(nullptr) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_t features); @@ -713,9 +602,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ namespace localization_configuration { typedef struct config { - uint16_t cluster_revision; char active_locale[k_max_active_locale_length + 1]; - config() : cluster_revision(4), active_locale{0} {} + config() : active_locale{0} {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -723,10 +611,9 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace time_format_localization { typedef struct config { - uint16_t cluster_revision; uint8_t hour_format; feature::calendar_format::config_t calendar_format; - config() : cluster_revision(4), hour_format(0) {} + config() : hour_format(0) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_t features); @@ -734,11 +621,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ namespace illuminance_measurement { typedef struct config { - uint16_t cluster_revision; nullable illuminance_measured_value; nullable illuminance_min_measured_value; nullable illuminance_max_measured_value; - config() : cluster_revision(3), illuminance_measured_value(0), illuminance_min_measured_value(), illuminance_max_measured_value() {} + config() : illuminance_measured_value(0), illuminance_min_measured_value(), illuminance_max_measured_value() {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -746,11 +632,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace pressure_measurement { typedef struct config { - uint16_t cluster_revision; nullable pressure_measured_value; nullable pressure_min_measured_value; nullable pressure_max_measured_value; - config() : cluster_revision(3), pressure_measured_value(), pressure_min_measured_value(), pressure_max_measured_value() {} + config() : pressure_measured_value(), pressure_min_measured_value(), pressure_max_measured_value() {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -758,11 +643,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace flow_measurement { typedef struct config { - uint16_t cluster_revision; nullable flow_measured_value; nullable flow_min_measured_value; nullable flow_max_measured_value; - config() : cluster_revision(3), flow_measured_value(), flow_min_measured_value(), flow_max_measured_value() {} + config() : flow_measured_value(), flow_min_measured_value(), flow_max_measured_value() {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -770,7 +654,6 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace pump_configuration_and_control { typedef struct config { - uint16_t cluster_revision; // Pump Information Attributes const nullable max_pressure; const nullable max_speed; @@ -785,7 +668,7 @@ typedef struct config { nullable max_pressure = nullable(), nullable max_speed = nullable(), nullable max_flow = nullable() - ) : cluster_revision(3), max_pressure(max_pressure), max_speed(max_speed), max_flow(max_flow), + ) : max_pressure(max_pressure), max_speed(max_speed), max_flow(max_flow), effective_operation_mode(0), effective_control_mode(0), capacity(), operation_mode(0) {} } config_t; @@ -794,12 +677,11 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace mode_select { typedef struct config { - uint16_t cluster_revision; char mode_select_description[k_max_mode_select_description_length + 1]; const nullable standard_namespace; uint8_t current_mode; feature::on_off::config_t on_off; - config() : cluster_revision(2), mode_select_description{0}, standard_namespace(), current_mode(0) {} + config() : mode_select_description{0}, standard_namespace(), current_mode(0) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_t features); @@ -807,11 +689,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ namespace temperature_control { typedef struct config { - uint16_t cluster_revision; feature::temperature_number::config_t temperature_number; feature::temperature_level::config_t temperature_level; feature::temperature_step::config_t temperature_step; - config() : cluster_revision(1) {} + // Empty config for API consistency } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_t features); @@ -819,11 +700,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ namespace refrigerator_alarm { typedef struct config { - uint16_t cluster_revision; uint32_t mask; uint32_t state; uint32_t supported; - config() : cluster_revision(1), mask(1), state(0), supported(1) {} + config() : mask(1), state(0), supported(1) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -831,10 +711,9 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace refrigerator_and_tcc_mode { typedef struct config { - uint16_t cluster_revision; uint8_t current_mode; void *delegate; - config() : cluster_revision(1), current_mode(0), delegate(nullptr) {} + config() : current_mode(0), delegate(nullptr) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -842,10 +721,9 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace rvc_run_mode { typedef struct config { - uint16_t cluster_revision; uint8_t current_mode; void *delegate; - config() : cluster_revision(1), current_mode(0), delegate(nullptr) {} + config() : current_mode(0), delegate(nullptr) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -853,10 +731,9 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace rvc_clean_mode { typedef struct config { - uint16_t cluster_revision; uint8_t current_mode; void *delegate; - config() : cluster_revision(1), current_mode(0), delegate(nullptr) {} + config() : current_mode(0), delegate(nullptr) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -864,10 +741,9 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace microwave_oven_mode { typedef struct config { - uint16_t cluster_revision; uint8_t current_mode; void *delegate; - config() : cluster_revision(1), current_mode(0), delegate(nullptr) {} + config() : current_mode(0), delegate(nullptr) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -875,28 +751,22 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace microwave_oven_control { typedef struct config { - uint16_t cluster_revision; void *delegate; - config() : cluster_revision(1), delegate(nullptr) {} + config() : delegate(nullptr) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_t features); } /* microwave_oven_control */ namespace rvc_operational_state { -typedef struct config { - uint16_t cluster_revision; - config() : cluster_revision(1) {} -} config_t; - +using config_t = common::config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); } /* rvc_operational_state */ namespace keypad_input { typedef struct config { - uint16_t cluster_revision; void *delegate; - config() : cluster_revision(1), delegate(nullptr) {} + config() : delegate(nullptr) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -904,9 +774,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace power_topology { typedef struct config { - uint16_t cluster_revision; void *delegate; - config() : cluster_revision(1), delegate(nullptr) {} + config() : delegate(nullptr) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_t features); @@ -914,9 +783,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ namespace electrical_power_measurement { typedef struct config { - uint16_t cluster_revision; void *delegate; - config() : cluster_revision(1), delegate(nullptr) {} + config() : delegate(nullptr) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_t features); @@ -924,9 +792,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ namespace electrical_energy_measurement { typedef struct config { - uint16_t cluster_revision; void *delegate; - config() : cluster_revision(1), delegate(nullptr) {} + config() : delegate(nullptr) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_t features); @@ -934,10 +801,9 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ namespace energy_evse_mode { typedef struct config { - uint16_t cluster_revision; uint8_t current_mode; void *delegate; - config() : cluster_revision(1), current_mode(0), delegate(nullptr) {} + config() : current_mode(0), delegate(nullptr) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -945,9 +811,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace energy_evse { typedef struct config { - uint16_t cluster_revision; void *delegate; - config() : cluster_revision(1), delegate(nullptr) {} + config() : delegate(nullptr) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_t features); @@ -955,7 +820,6 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ namespace valve_configuration_and_control { typedef struct config { - uint16_t cluster_revision; nullable open_duration; nullable default_open_duration; nullable current_state; @@ -963,7 +827,7 @@ typedef struct config { feature::time_sync::config_t time_sync; feature::level::config_t level; void *delegate; - config() : cluster_revision(1), open_duration(), default_open_duration(), current_state(), target_state(), delegate(nullptr) {} + config() : open_duration(), default_open_duration(), current_state(), target_state(), delegate(nullptr) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_t features); @@ -971,9 +835,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ namespace device_energy_management { typedef struct config { - uint16_t cluster_revision; void *delegate; - config() : cluster_revision(4), delegate(nullptr) {} + config() : delegate(nullptr) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_t features); @@ -981,10 +844,9 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ namespace device_energy_management_mode { typedef struct config { - uint16_t cluster_revision; uint8_t current_mode; void *delegate; - config() : cluster_revision(1), current_mode(0), delegate(nullptr) {} + config() : current_mode(0), delegate(nullptr) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); @@ -992,9 +854,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); namespace application_basic { typedef struct config { - uint16_t cluster_revision; void *delegate; - config() : cluster_revision(1), delegate(nullptr) {} + config() : delegate(nullptr) {} } config_t; cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags); diff --git a/components/esp_matter/private/esp_matter_cluster_revisions.h b/components/esp_matter/private/esp_matter_cluster_revisions.h new file mode 100644 index 000000000..52414564b --- /dev/null +++ b/components/esp_matter/private/esp_matter_cluster_revisions.h @@ -0,0 +1,372 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once + +#include + +namespace esp_matter { +namespace cluster { + +namespace descriptor { +constexpr uint16_t cluster_revision = 2; +} // namespace descriptor + +namespace actions { +constexpr uint16_t cluster_revision = 1; +} // namespace actions + +namespace access_control { +constexpr uint16_t cluster_revision = 1; +} // namespace access_control + +namespace basic_information { +constexpr uint16_t cluster_revision = 3; +} // namespace basic_information + +namespace binding { +constexpr uint16_t cluster_revision = 1; +} // namespace binding + +namespace ota_provider { +constexpr uint16_t cluster_revision = 1; +} // namespace ota_provider + +namespace ota_requestor { +constexpr uint16_t cluster_revision = 1; +} // namespace ota_requestor + +namespace general_commissioning { +constexpr uint16_t cluster_revision = 1; +} // namespace general_commissioning + +namespace network_commissioning { +constexpr uint16_t cluster_revision = 2; +} // namespace network_commissioning + +namespace diagnostic_logs { +constexpr uint16_t cluster_revision = 1; +} // namespace diagnostic_logs + +namespace general_diagnostics { +constexpr uint16_t cluster_revision = 2; +} // namespace general_diagnostics + +namespace software_diagnostics { +constexpr uint16_t cluster_revision = 1; +} // namespace software_diagnostics + +namespace administrator_commissioning { +constexpr uint16_t cluster_revision = 1; +} // namespace administrator_commissioning + +namespace operational_credentials { +constexpr uint16_t cluster_revision = 1; +} // namespace operational_credentials + +namespace group_key_management { +constexpr uint16_t cluster_revision = 2; +} // namespace group_key_management + +namespace wifi_network_diagnotics { +constexpr uint16_t cluster_revision = 1; +} // namespace wifi_network_diagnotics + +namespace thread_network_diagnostics { +constexpr uint16_t cluster_revision = 2; +} // namespace thread_network_diagnostics + +namespace ethernet_network_diagnostics { +constexpr uint16_t cluster_revision = 1; +} // namespace ethernet_network_diagnostics + +namespace time_synchronization { +constexpr uint16_t cluster_revision = 2; +} // namespace time_synchronization + +namespace unit_localization { +constexpr uint16_t cluster_revision = 1; +} // namespace unit_localization + +namespace bridged_device_basic_information { +constexpr uint16_t cluster_revision = 2; +} // namespace bridged_device_basic_information + +namespace power_source { +constexpr uint16_t cluster_revision = 2; +} // namespace power_source + +namespace icd_management { +constexpr uint16_t cluster_revision = 2; +} // namespace icd_management + +namespace user_label { +constexpr uint16_t cluster_revision = 1; +} // namespace user_label + +namespace fixed_label { +constexpr uint16_t cluster_revision = 1; +} // namespace fixed_label + +namespace identify { +constexpr uint16_t cluster_revision = 4; +} // namespace identify + +namespace groups { +constexpr uint16_t cluster_revision = 4; +} // namespace groups + +namespace scenes_management { +constexpr uint16_t cluster_revision = 1; +} // namespace scenes_management + +namespace on_off { +constexpr uint16_t cluster_revision = 6; +} // namespace on_off + +namespace level_control { +constexpr uint16_t cluster_revision = 5; +} // namespace level_control + +namespace color_control { +constexpr uint16_t cluster_revision = 6; +} // namespace color_control + +namespace fan_control { +constexpr uint16_t cluster_revision = 4; +} // namespace fan_control + +namespace thermostat { +constexpr uint16_t cluster_revision = 6; +} // namespace thermostat + +namespace thermostat_user_interface_configuration { +constexpr uint16_t cluster_revision = 2; +} // namespace thermostat_user_interface_configuration + +namespace air_quality { +constexpr uint16_t cluster_revision = 1; +} // namespace air_quality + +namespace hepa_filter_monitoring { +constexpr uint16_t cluster_revision = 1; +} // namespace hepa_filter_monitoring + +namespace activated_carbon_filter_monitoring { +constexpr uint16_t cluster_revision = 1; +} // namespace activated_carbon_filter_monitoring + +namespace carbon_monoxide_concentration_measurement { +constexpr uint16_t cluster_revision = 3; +} // namespace carbon_monoxide_concentration_measurement + +namespace carbon_dioxide_concentration_measurement { +constexpr uint16_t cluster_revision = 3; +} // namespace carbon_dioxide_concentration_measurement + +namespace nitrogen_dioxide_concentration_measurement { +constexpr uint16_t cluster_revision = 3; +} // namespace nitrogen_dioxide_concentration_measurement + +namespace ozone_concentration_measurement { +constexpr uint16_t cluster_revision = 3; +} // namespace ozone_concentration_measurement + +namespace formaldehyde_concentration_measurement { +constexpr uint16_t cluster_revision = 3; +} // namespace formaldehyde_concentration_measurement + +namespace pm1_concentration_measurement { +constexpr uint16_t cluster_revision = 3; +} // namespace pm1_concentration_measurement + +namespace pm25_concentration_measurement { +constexpr uint16_t cluster_revision = 3; +} // namespace pm25_concentration_measurement + +namespace pm10_concentration_measurement { +constexpr uint16_t cluster_revision = 3; +} // namespace pm10_concentration_measurement + +namespace radon_concentration_measurement { +constexpr uint16_t cluster_revision = 3; +} // namespace radon_concentration_measurement + +namespace total_volatile_organic_compounds_concentration_measurement { +constexpr uint16_t cluster_revision = 3; +} // namespace total_volatile_organic_compounds_concentration_measurement + +namespace operational_state { +constexpr uint16_t cluster_revision = 2; +} // namespace operational_state + +namespace laundry_washer_mode { +constexpr uint16_t cluster_revision = 1; +} // namespace laundry_washer_mode + +namespace laundry_washer_controls { +constexpr uint16_t cluster_revision = 1; +} // namespace laundry_washer_controls + +namespace laundry_dryer_controls { +constexpr uint16_t cluster_revision = 1; +} // namespace laundry_dryer_controls + +namespace dish_washer_mode { +constexpr uint16_t cluster_revision = 1; +} // namespace dish_washer_mode + +namespace dish_washer_alarm { +constexpr uint16_t cluster_revision = 1; +} // namespace dish_washer_alarm + +namespace smoke_co_alarm { +constexpr uint16_t cluster_revision = 1; +} // namespace smoke_co_alarm + +namespace door_lock { +constexpr uint16_t cluster_revision = 7; +} // namespace door_lock + +namespace window_covering { +constexpr uint16_t cluster_revision = 5; +} // namespace window_covering + +namespace switch_cluster { +constexpr uint16_t cluster_revision = 1; +} // namespace switch_cluster + +namespace temperature_measurement { +constexpr uint16_t cluster_revision = 4; +} // namespace temperature_measurement + +namespace relative_humidity_measurement { +constexpr uint16_t cluster_revision = 3; +} // namespace relative_humidity_measurement + +namespace occupancy_sensing { +constexpr uint16_t cluster_revision = 4; +} // namespace occupancy_sensing + +namespace boolean_state { +constexpr uint16_t cluster_revision = 1; +} // namespace boolean_state + +namespace boolean_state_configuration { +constexpr uint16_t cluster_revision = 1; +} // namespace boolean_state_configuration + +namespace localization_configuration { +constexpr uint16_t cluster_revision = 4; +} // namespace localization_configuration + +namespace time_format_localization { +constexpr uint16_t cluster_revision = 4; +} // namespace time_format_localization + +namespace illuminance_measurement { +constexpr uint16_t cluster_revision = 3; +} // namespace illuminance_measurement + +namespace pressure_measurement { +constexpr uint16_t cluster_revision = 3; +} // namespace pressure_measurement + +namespace flow_measurement { +constexpr uint16_t cluster_revision = 3; +} // namespace flow_measurement + +namespace pump_configuration_and_control { +constexpr uint16_t cluster_revision = 3; +} // namespace pump_configuration_and_control + +namespace mode_select { +constexpr uint16_t cluster_revision = 2; +} // namespace mode_select + +namespace temperature_control { +constexpr uint16_t cluster_revision = 1; +} // namespace temperature_control + +namespace refrigerator_alarm { +constexpr uint16_t cluster_revision = 1; +} // namespace refrigerator_alarm + +namespace refrigerator_and_tcc_mode { +constexpr uint16_t cluster_revision = 1; +} // namespace refrigerator_and_tcc_mode + +namespace rvc_run_mode { +constexpr uint16_t cluster_revision = 1; +} // namespace rvc_run_mode + +namespace rvc_clean_mode { +constexpr uint16_t cluster_revision = 1; +} // namespace rvc_clean_mode + +namespace microwave_oven_mode { +constexpr uint16_t cluster_revision = 1; +} // namespace microwave_oven_mode + +namespace microwave_oven_control { +constexpr uint16_t cluster_revision = 1; +} // namespace microwave_oven_control + +namespace rvc_operational_state { +constexpr uint16_t cluster_revision = 1; +} // namespace rvc_operational_state + +namespace keypad_input { +constexpr uint16_t cluster_revision = 1; +} // namespace keypad_input + +namespace power_topology { +constexpr uint16_t cluster_revision = 1; +} // namespace power_topology + +namespace electrical_power_measurement { +constexpr uint16_t cluster_revision = 1; +} // namespace electrical_power_measurement + +namespace electrical_energy_measurement { +constexpr uint16_t cluster_revision = 1; +} // namespace electrical_energy_measurement + +namespace energy_evse_mode { +constexpr uint16_t cluster_revision = 1; +} // namespace energy_evse_mode + +namespace energy_evse { +constexpr uint16_t cluster_revision = 1; +} // namespace energy_evse + +namespace valve_configuration_and_control { +constexpr uint16_t cluster_revision = 1; +} // namespace valve_configuration_and_control + +namespace device_energy_management { +constexpr uint16_t cluster_revision = 4; +} // namespace device_energy_management + +namespace device_energy_management_mode { +constexpr uint16_t cluster_revision = 1; +} // namespace device_energy_management_mode + +namespace application_basic { +constexpr uint16_t cluster_revision = 1; +} // namespace application_basic + +} // namespace cluster +} // namespace esp_matter +