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?

Parents
  • Hi, 

    This is expected. Light Switch needs the IPv6 address of the Light Bulb, which is stored in the SRP Server. When the Thread Border Router is down, binding will not work. Another option would be to have an SRP server on some embedded device, though this is not usual practice.

    Regards,
    Amanda H.

  • Could you explain how to deploy an SRP server on an embedded device? Regarding Thread networks, aren't they supposed to enable network communication without relying on Border Routers? Are there any workarounds?

  • Thank you for your previous response. I attempted to implement your suggested solution by enabling these two options in the prj.conf file:
    CONFIG_OPENTHREAD_SRP_SERVER=y
    CONFIG_OPENTHREAD_SOURCES=y
    However, the build fails with compilation errors. How should I resolve this issue?

  • Could you provide the build log for the error?

  • 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.

Reply
  • 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.

Children
No Data
Related