Skip to content

extended_color_light does not display the color palette on Apple devices (CON-1940) #1669

@ethan-jy

Description

@ethan-jy

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):
Image
  • 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");
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions