BLE Mesh can't control same address at short time

Hi all, 

I follow example (serial) to build and run, i already run successfully, but i meet some question.
when i use generic_on_off to control light at short time(2s), the light can't work ( ON -> OFF , OFF -> ON )
but i use generic_on_off and generic_level to control light at short time(2s), the light can work ( ON->OFF, OFF -> LEVEL)

I try many time, the result always is same.

Do I need to modify the configuration file to run, or is this a limitation of Mesh?


Parents
  • Hi,

    In general it should be possible to turn the light off and on again within 2 seconds, using the generic on/off model.

    There are some situations where you will not be able to send new messages, including:

    • One restriction is a maximum of 100 messages during a sliding window of 10 seconds. This is not for relaying, but for messages originating at the node. If you have sent 100 messages within the last 10 seconds, you must wait until one of those messages were sent more than 10 seconds ago, before you can send another message.
    • If you are already sending a SAR acknowledged message, and you have not gotten any acknowledge, you cannot send another SAR acknowledged message until you either get the ACK or the message times out.

    There might also be other reasons for what you see. It may depend on configuration, packet loss, or other things. I would need a more detailed description of your setup in order to suggest what might be the issue in this particular case. (Which boards, with what examples on them, how do you provision the nodes, what are the node configurations, how do you send the messages and from what device, both when the light switches and when it does not. How it fails. What the behaviour is when it works. Any other detail about the setup and about the issue.)

    Regards,
    Terje

  • Hi,


    According to my operate, I never send over 100 message at short time,but I want to know where define restriction value ?

    I use unacknowledged-OnOff opcode(0x8203) and unacknowledged-Level(0x8207) to send on-off packet, I don't know if it has anything to do with this.

    I never modify configuration.

    Will it be discarded packet directly based on the same address and opcode at short time?


    Board: nrf52832
    Example: serial-example

    Nasin

  • Hi,

    I am sorry for the delay which is in part due to the recent Easter vacation. If you have already solved the issue then please let me know.

    The 100 messages per 10 second sliding window is mandated by the Bluetooth mesh specification, and part of the stack. There is no reason to believe this is the issue (unless you actually send  more than 100 messages in a row.)

    Messages of the same opcode to the same address is not discarded. The only way to discard such messages is if the sequence number is the same. The sequence number is a unique and increasing number, that is assigned to each new message, in order to uniquely identify the message. What is the code that you use, for sending the messages?

    Regards,
    Terje

Reply
  • Hi,

    I am sorry for the delay which is in part due to the recent Easter vacation. If you have already solved the issue then please let me know.

    The 100 messages per 10 second sliding window is mandated by the Bluetooth mesh specification, and part of the stack. There is no reason to believe this is the issue (unless you actually send  more than 100 messages in a row.)

    Messages of the same opcode to the same address is not discarded. The only way to discard such messages is if the sequence number is the same. The sequence number is a unique and increasing number, that is assigned to each new message, in order to uniquely identify the message. What is the code that you use, for sending the messages?

    Regards,
    Terje

Children
No Data
Related