-
Notifications
You must be signed in to change notification settings - Fork 210
Open
Description
I am attempting to add a Dishwasher Device Type as a Bridged Node.
Are the delegates for OperationalState and DishwasherMode fully supported?
If I define a Dishwasher endpoint like this
node::config_t node_config;
node_t *node = node::create(&node_config, app_attribute_update_cb, app_identification_cb);
ABORT_APP_ON_FAILURE(node != nullptr, ESP_LOGE(TAG, "Failed to create Matter node"));
static OperationalStateDelegate operational_state_delegate;
dish_washer::config_t dish_washer_config;
dish_washer_config.operational_state.delegate = &operational_state_delegate;
endpoint_t *ep = dish_washer::create(node, &dish_washer_config, ENDPOINT_FLAG_NONE, NULL);
esp_matter::cluster_t *operational_state_cluster = esp_matter::cluster::get(ep, chip::app::Clusters::OperationalState::Id);
esp_matter::cluster::operational_state::attribute::create_countdown_time(operational_state_cluster, 0);
esp_matter::cluster::operational_state::command::create_start(operational_state_cluster);
esp_matter::cluster::operational_state::command::create_stop(operational_state_cluster);
esp_matter::cluster::operational_state::command::create_pause(operational_state_cluster);
esp_matter::cluster::operational_state::command::create_resume(operational_state_cluster);
static DishwasherModeDelegate dishwasher_mode_delegate;
esp_matter::cluster::dish_washer_mode::config_t dish_washer_mode_config;
dish_washer_mode_config.delegate = &dishwasher_mode_delegate;
dish_washer_mode_config.current_mode = ModeNormal;
esp_matter::cluster_t *dishwasher_mode_cluster = esp_matter::cluster::dish_washer_mode::create(ep, &dish_washer_mode_config, CLUSTER_FLAG_SERVER);
esp_matter::cluster::mode_base::attribute::create_supported_modes(dishwasher_mode_cluster, NULL, 0, 0);
esp_matter::cluster::mode_base::command::create_change_to_mode(dishwasher_mode_cluster);
It works perfectly and I can see the device in Home Assistant
If set up a bridge
node::config_t node_config;
node_t *node = node::create(&node_config, app_attribute_update_cb, app_identification_cb);
ABORT_APP_ON_FAILURE(node != nullptr, ESP_LOGE(TAG, "Failed to create Matter node"));
aggregator::config_t aggregator_config;
endpoint_t *aggregator = endpoint::aggregator::create(node, &aggregator_config, ENDPOINT_FLAG_NONE, NULL);
ABORT_APP_ON_FAILURE(aggregator != nullptr, ESP_LOGE(TAG, "Failed to create aggregator endpoint"));
err = app_bridge_initialize(node, create_bridge_devices);
ABORT_APP_ON_FAILURE(err == ESP_OK, ESP_LOGE(TAG, "Failed to resume the bridged endpoints: %d", err));
app_bridge_create_bridged_device(node::get(), aggregator_endpoint_id, ESP_MATTER_DISH_WASHER_DEVICE_TYPE_ID, NULL);
The create_bridge_devices callback uses the same dishwasher code as before, using dish_washer::add instead of dish_washer::create.
I get lots of errors about the OperationalStatus and DishwashMode clusters:
E (6028) data_model: get_val_internal(927): Attribute is not managed by esp matter data model
E (6028) chip[DMG]: Fail to retrieve data, roll back and encode status on clusterId: 0x0000_0060, attributeId: 0x0000_0000err = 501
E (6038) data_model: get_val_internal(927): Attribute is not managed by esp matter data model
E (6048) chip[DMG]: Fail to retrieve data, roll back and encode status on clusterId: 0x0000_0060, attributeId: 0x0000_0001err = 501
E (6058) data_model: get_val_internal(927): Attribute is not managed by esp matter data model
E (6068) chip[DMG]: Fail to retrieve data, roll back and encode status on clusterId: 0x0000_0060, attributeId: 0x0000_0003err = 501
E (6078) data_model: get_val_internal(927): Attribute is not managed by esp matter data model
E (6088) chip[DMG]: Fail to retrieve data, roll back and encode status on clusterId: 0x0000_0060, attributeId: 0x0000_0004err = 501
E (6098) data_model: get_val_internal(927): Attribute is not managed by esp matter data model
E (6108) chip[DMG]: Fail to retrieve data, roll back and encode status on clusterId: 0x0000_0060, attributeId: 0x0000_0005err = 501
E (6118) data_model: get_val_internal(927): Attribute is not managed by esp matter data model
E (6128) chip[DMG]: Fail to retrieve data, roll back and encode status on clusterId: 0x0000_0060, attributeId: 0x0000_0002err = 501
E (6138) data_model: get_val_internal(927): Attribute is not managed by esp matter data model
E (6148) chip[DMG]: Fail to retrieve data, roll back and encode status on clusterId: 0x0000_0059, attributeId: 0x0000_0001err = 501
E (6158) data_model: get_val_internal(927): Attribute is not managed by esp matter data model
E (6168) chip[DMG]: Fail to retrieve data, roll back and encode status on clusterId: 0x0000_0059, attributeId: 0x0000_0000err = 501
Any ideas?
This feels related to the Delegates for both of these attributes, but I can't see what the problem is.
Metadata
Metadata
Assignees
Labels
No labels