-
Notifications
You must be signed in to change notification settings - Fork 215
Description
Describe the bug
My endpoint 1 is an Aggregator. When I create an extended_color_light in the Aggregator and control it using chip-tool, I can control it via xy and tc. However, after pairing with the Apple system, only ct can be set, but not colors. How should I handle this? Thank you.
The following is the initialization code.
Environment
- ESP-Matter Commit Id:v1.3
- ESP-IDF Commit Id:5.4.1
- SoC (eg: ESP32 or ESP32-C3):ESP32H2
- Device Logs (Please attach the log file):
-
Host Machine OS:
-
Host Machine Python version:
-
Commissioner app and versions if present:
-
Home hub app and versions if present:
-
Commissioner's logs if present:
Any additional details
case ESP_MATTER_EXTENDED_COLOR_LIGHT_DEVICE_TYPE_ID: {
extended_color_light::config_t extended_color_light_conf;
extended_color_light_conf.on_off.on_off = true;
extended_color_light_conf.on_off.lighting.start_up_on_off = true;
extended_color_light_conf.level_control.current_level = 254;
extended_color_light_conf.level_control.lighting.start_up_current_level = 254;
extended_color_light_conf.identify.identify_type =1; //light output of a lighting product
extended_color_light_conf.color_control.color_mode = (uint8_t)ColorControl::ColorMode::kCurrentXAndCurrentY;
extended_color_light_conf.color_control.enhanced_color_mode = (uint8_t)ColorControl::ColorMode::kCurrentXAndCurrentY;
extended_color_light_conf.color_control.color_temperature.startup_color_temperature_mireds = COLOR_TEMPERATURE_MIN_PHY_MIRE;
extended_color_light_conf.color_control.color_temperature.color_temp_physical_min_mireds = COLOR_TEMPERATURE_MIN_PHY_MIRE;
extended_color_light_conf.color_control.color_temperature.color_temp_physical_max_mireds = COLOR_TEMPERATURE_MAX_PHY_MIRE;
err = extended_color_light::add(ep, &extended_color_light_conf);
/* Mark deferred persistence for some attributes that might be changed rapidly */
cluster_t *level_control_cluster = cluster::get(ep, LevelControl::Id);
attribute_t *current_level_attribute = attribute::get(level_control_cluster, LevelControl::Attributes::CurrentLevel::Id);
attribute::set_deferred_persistence(current_level_attribute);
/*ColorControl::Attributes::ColorTemperatureMireds -- esp-matter\connectedhomeip\connectedhomeip\src*/
cluster_t *color_control_cluster = cluster::get(ep, ColorControl::Id);
attribute_t *current_x_attribute = attribute::get(color_control_cluster, ColorControl::Attributes::CurrentX::Id);
attribute::set_deferred_persistence(current_x_attribute);
attribute_t *current_y_attribute = attribute::get(color_control_cluster, ColorControl::Attributes::CurrentY::Id);
attribute::set_deferred_persistence(current_y_attribute);
attribute_t *color_temp_attribute = attribute::get(color_control_cluster, ColorControl::Attributes::ColorTemperatureMireds::Id);
attribute::set_deferred_persistence(color_temp_attribute);
cluster::level_control::attribute::create_on_off_transition_time(level_control_cluster, 0);
cluster::level_control::attribute::create_on_transition_time(level_control_cluster, NULL);
cluster::level_control::attribute::create_off_transition_time(level_control_cluster, NULL);
cluster::level_control::attribute::create_default_move_rate(level_control_cluster, 0);
ESP_LOGI(TAG, "create extend color light device");
err = extended_color_light::add(ep, &extended_color_light_conf);
break;
/////main:
/* Create a Matter node and add the mandatory Root Node device type on endpoint 0 */
node::config_t node_config;
node_t *node = node::create(&node_config, app_attribute_update_cb, app_identification_cb);
/*create endpoint 1 -- aggregator*/
aggregator::config_t aggregator_config;
endpoint_t *aggregator = endpoint::aggregator::create(node,&aggregator_config,ENDPOINT_FLAG_NONE,NULL);
/* These node and endpoint handles can be used to create/add other endpoints and clusters. */
if (!node || !aggregator) {
ESP_LOGE(TAG, "Matter/aggregator node creation failed");
}