Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Development
  3. Answering request command

Answering request command

Scheduled Pinned Locked Moved Development
15 Posts 2 Posters 2.7k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • B Offline
    B Offline
    bilbolodz
    wrote on last edited by
    #1

    I'd like to build sensor which answers for "request command" with value for particular sensor. I can catch these message in
    void receive(const MyMessage &message) function but questions are:

    1. Should I answer for these message in any "special way" or just send a message with sensor value to questioning node using bool send(MyMessage &msg, bool ack) function?
    2. Is it save to use send function inside receive function or should I set flag "message to answer" and serve it "in usual way" in loop()?
    3. Could someone please clarify a bit meaning of ack parameter? Sometimes I've problems with radio connectivity and I have to find the way to inform controller (Domoticz) that "set command" send to relay was accepted and executed by sensor. Does ack solve my problems?
    Boots33B 1 Reply Last reply
    1
    • B bilbolodz

      I'd like to build sensor which answers for "request command" with value for particular sensor. I can catch these message in
      void receive(const MyMessage &message) function but questions are:

      1. Should I answer for these message in any "special way" or just send a message with sensor value to questioning node using bool send(MyMessage &msg, bool ack) function?
      2. Is it save to use send function inside receive function or should I set flag "message to answer" and serve it "in usual way" in loop()?
      3. Could someone please clarify a bit meaning of ack parameter? Sometimes I've problems with radio connectivity and I have to find the way to inform controller (Domoticz) that "set command" send to relay was accepted and executed by sensor. Does ack solve my problems?
      Boots33B Offline
      Boots33B Offline
      Boots33
      Hero Member
      wrote on last edited by
      #2

      @bilbolodz Have a look here for some info on request

      B 1 Reply Last reply
      0
      • Boots33B Boots33

        @bilbolodz Have a look here for some info on request

        B Offline
        B Offline
        bilbolodz
        wrote on last edited by
        #3

        @Boots33 Thanks but actually these post doesn't contain answer for any from my questions.

        Boots33B 1 Reply Last reply
        0
        • B bilbolodz

          @Boots33 Thanks but actually these post doesn't contain answer for any from my questions.

          Boots33B Offline
          Boots33B Offline
          Boots33
          Hero Member
          wrote on last edited by
          #4

          @bilbolodz Sorry should have looked a bit closer

          1 it may depend on what you are doing but i have just used a simple node to node message to return in the past

          2 yes you can send a message from inside the receive function. if that is what you are asking

          3 Not totally sure what you are asking here. You can set the ack flag in domoticz for each sensor so domoticz will ask for an ack so it will know if the node has received the message.

          B 1 Reply Last reply
          0
          • Boots33B Boots33

            @bilbolodz Sorry should have looked a bit closer

            1 it may depend on what you are doing but i have just used a simple node to node message to return in the past

            2 yes you can send a message from inside the receive function. if that is what you are asking

            3 Not totally sure what you are asking here. You can set the ack flag in domoticz for each sensor so domoticz will ask for an ack so it will know if the node has received the message.

            B Offline
            B Offline
            bilbolodz
            wrote on last edited by
            #5

            @Boots33
            About 3:
            I will tell a little more. I've sensor with relays and hardware signing. For some reasons sometimes "set message" from Domoticz (via Mysensors RPI GPIO GW) doesn't reach sensor or get "signing fail" status (probably RF issues). In that case relay stays in "previous state" but Domoticz claims that's in "new state".

            How to force Domoticz to NOT change displayed "state of switch" (at dashboard) when sensors fails to change state of relay?

            I've set "ack for relays" at Setup->Hardware->MySensors GW (Setup)->Node->Child. Should I also enable ack in sketch during presentation for sensor (void present(uint8_t childSensorId, uint8_t sensorType, const char *description, bool ack);)?

            Boots33B 1 Reply Last reply
            0
            • B bilbolodz

              @Boots33
              About 3:
              I will tell a little more. I've sensor with relays and hardware signing. For some reasons sometimes "set message" from Domoticz (via Mysensors RPI GPIO GW) doesn't reach sensor or get "signing fail" status (probably RF issues). In that case relay stays in "previous state" but Domoticz claims that's in "new state".

              How to force Domoticz to NOT change displayed "state of switch" (at dashboard) when sensors fails to change state of relay?

              I've set "ack for relays" at Setup->Hardware->MySensors GW (Setup)->Node->Child. Should I also enable ack in sketch during presentation for sensor (void present(uint8_t childSensorId, uint8_t sensorType, const char *description, bool ack);)?

              Boots33B Offline
              Boots33B Offline
              Boots33
              Hero Member
              wrote on last edited by
              #6

              @bilbolodz Yes that is the flag i use. with that set if i try and change a switch and it cannot connect to the node domoticz throws up an error and the switch does not change. But not for you apparently. I haven't enabled anything extra in the presentation.

              Boots33B B 4 Replies Last reply
              0
              • Boots33B Boots33

                @bilbolodz Yes that is the flag i use. with that set if i try and change a switch and it cannot connect to the node domoticz throws up an error and the switch does not change. But not for you apparently. I haven't enabled anything extra in the presentation.

                Boots33B Offline
                Boots33B Offline
                Boots33
                Hero Member
                wrote on last edited by
                #7

                @Boots33 I am not using signing though

                1 Reply Last reply
                0
                • Boots33B Offline
                  Boots33B Offline
                  Boots33
                  Hero Member
                  wrote on last edited by
                  #8

                  can you connect the serial monitor to the node and see if the ack request is getting through

                  B 2 Replies Last reply
                  0
                  • Boots33B Boots33

                    can you connect the serial monitor to the node and see if the ack request is getting through

                    B Offline
                    B Offline
                    bilbolodz
                    wrote on last edited by
                    #9

                    @Boots33 I will play with these more at home.

                    1 Reply Last reply
                    0
                    • Boots33B Boots33

                      @bilbolodz Yes that is the flag i use. with that set if i try and change a switch and it cannot connect to the node domoticz throws up an error and the switch does not change. But not for you apparently. I haven't enabled anything extra in the presentation.

                      B Offline
                      B Offline
                      bilbolodz
                      wrote on last edited by
                      #10

                      @Boots33 What's you value for "Ack timeout"? I've 1200 (second????) so it looks for huge value! 1200 it's default.

                      B 1 Reply Last reply
                      0
                      • Boots33B Boots33

                        @bilbolodz Yes that is the flag i use. with that set if i try and change a switch and it cannot connect to the node domoticz throws up an error and the switch does not change. But not for you apparently. I haven't enabled anything extra in the presentation.

                        B Offline
                        B Offline
                        bilbolodz
                        wrote on last edited by
                        #11

                        @Boots33 One more question:

                        In case of function:

                        void present(uint8_t childSensorId, uint8_t sensorType, const char *description, bool ack);

                        in documentation (https://www.mysensors.org/download/sensor_api_20) I've found explanation:

                        "ack - Set this to true if you want destination node to send ack back to this node. Default is not to request any ack"

                        Does it mean "ask Domoticz to confirm that received my presentation message"?

                        Boots33B 1 Reply Last reply
                        0
                        • B bilbolodz

                          @Boots33 What's you value for "Ack timeout"? I've 1200 (second????) so it looks for huge value! 1200 it's default.

                          B Offline
                          B Offline
                          bilbolodz
                          wrote on last edited by
                          #12

                          @bilbolodz It's 1200ms so not very long

                          1 Reply Last reply
                          0
                          • Boots33B Boots33

                            can you connect the serial monitor to the node and see if the ack request is getting through

                            B Offline
                            B Offline
                            bilbolodz
                            wrote on last edited by
                            #13

                            @Boots33 Sensor is physically offline (no power). I've tried to "turn on" relay. On Domoticz WWW I can see that it's "on". On Mysensors GW logs I can see:

                            Turn ON:
                            mysgw: Client 1: 1;6;1;0;2;1
                            mysgw: !TSF:MSG:SEND,0-0-1-1,s=6,c=3,t=16,pt=0,l=0,sg=1,ft=0,st=NACK:
                            mysgw: !TSF:MSG:SIGN FAIL

                            Turn OFF:
                            mysgw: Client 1: 1;6;1;0;2;0
                            mysgw: !TSF:MSG:SEND,0-0-1-1,s=6,c=3,t=16,pt=0,l=0,sg=1,ft=0,st=NACK:
                            mysgw: !TSF:MSG:SIGN FAIL

                            1 Reply Last reply
                            0
                            • Boots33B Boots33

                              @bilbolodz Yes that is the flag i use. with that set if i try and change a switch and it cannot connect to the node domoticz throws up an error and the switch does not change. But not for you apparently. I haven't enabled anything extra in the presentation.

                              B Offline
                              B Offline
                              bilbolodz
                              wrote on last edited by
                              #14

                              @Boots33 I've probably found a bug in Domoticz (beta version). In Setup page I can see that Ack in ON and timeout is 1200ms but it's NOT working (values added from default during device presentation). When I turn off and the on ACK (and save) or change timeout for any other value (and save) "ack detection" start to work (I've got an error without sensor present). Thank you for your help.

                              1 Reply Last reply
                              1
                              • B bilbolodz

                                @Boots33 One more question:

                                In case of function:

                                void present(uint8_t childSensorId, uint8_t sensorType, const char *description, bool ack);

                                in documentation (https://www.mysensors.org/download/sensor_api_20) I've found explanation:

                                "ack - Set this to true if you want destination node to send ack back to this node. Default is not to request any ack"

                                Does it mean "ask Domoticz to confirm that received my presentation message"?

                                Boots33B Offline
                                Boots33B Offline
                                Boots33
                                Hero Member
                                wrote on last edited by
                                #15

                                @bilbolodz said in Answering request command:

                                "ack - Set this to true if you want destination node to send ack back to this node. Default is not to request any ack"

                                Does it mean "ask Domoticz to confirm that received my presentation message"?

                                I have not used an ack in presentation but yes i think you are correct. Not sure if the ack would be from domoticz or just from the gateway though.

                                Great that you also found the problem for the ack flag in domoticz

                                1 Reply Last reply
                                0
                                Reply
                                • Reply as topic
                                Log in to reply
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes


                                18

                                Online

                                11.7k

                                Users

                                11.2k

                                Topics

                                113.0k

                                Posts


                                Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                                • Login

                                • Don't have an account? Register

                                • Login or register to search.
                                • First post
                                  Last post
                                0
                                • MySensors
                                • OpenHardware.io
                                • Categories
                                • Recent
                                • Tags
                                • Popular