A question about matter over thread products

During the development of a Matter over Thread product, I encountered the following issue:

After adding two Matter over Thread devices (an OnOff Switch and an OnOff Light) through a Matter border router and binding the switch to the light, the switch can directly control the light's on/off state. However, when the border router is powered off, the switch retains control over the light for about the first minute but loses this capability thereafter. The project is based on modifications to the light_bulb reference implementation. The version of SDK is 3.0.1. What causes this behavior, and how can it be resolved?

  • The error log is as follows:

    In file included from D:/Nordic/ncs/v3.0.1/modules/lib/openthread/src/core/instance/instance.hpp:102,
    from D:/Nordic/ncs/v3.0.1/modules/lib/openthread/src/core/api/nat64_api.cpp:42:
    D:/Nordic/ncs/v3.0.1/modules/lib/openthread/src/core/net/srp_server.hpp:42:2: error: #error "OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE is required for OPENTHREAD_CONFIG_SRP_SERVER_ENABLE"
    42 | #error "OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE is required for OPENTHREAD_CONFIG_SRP_SERVER_ENABLE"
    | ^~~~~
    In file included from D:/Nordic/ncs/v3.0.1/modules/lib/openthread/src/core/net/srp_server.hpp:79:
    D:/Nordic/ncs/v3.0.1/modules/lib/openthread/src/core/thread/network_data_publisher.hpp:42:2: error: #error "OPENTHREAD_CONFIG_NETDATA_PUBLISHER_ENABLE requires either OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE" "or OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE"
    42 | #error "OPENTHREAD_CONFIG_NETDATA_PUBLISHER_ENABLE requires either OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE"\
    | ^~~~~
    [164/858] modules\openthread\build\CMakeFiles\print-ot-config-96e6445.bat 1a5b503f79090e00
    OPENTHREAD_CONFIG_RADIO_LINK_IEEE_802_15_4_ENABLE=1
    OPENTHREAD_CONFIG_TMF_ANYCAST_LOCATOR_ENABLE=0
    OPENTHREAD_CONFIG_ASSERT_ENABLE=1
    OPENTHREAD_CONFIG_BACKBONE_ROUTER_ENABLE=0
    OPENTHREAD_CONFIG_BACKBONE_ROUTER_DUA_NDPROXYING_ENABLE=0
    OPENTHREAD_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE=0
    OPENTHREAD_CONFIG_BLE_TCAT_ENABLE=0

  • Could we know what you want to achieve? Asking as in commercial ecosystems, binding is still not supported. You may implement a custom application to perform a binding operation. SRP Server and DNS-SD Server are usually implemented in the Thread Border Router to have enough capacity to store multiple of records. So I would say enabling SRP Server on embedded devices should work in some controlled/proprietary installations, but not as a generic solution. Currently, Matter devices rely on smart hubs that implement the Thread Border Router role.

Related