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. Announcements
  3. MySensors 1.4 Released

MySensors 1.4 Released

Scheduled Pinned Locked Moved Announcements
72 Posts 19 Posters 35.9k 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.
  • Y Offline
    Y Offline
    Yveaux
    Mod
    wrote on last edited by
    #45

    @hek When MySensors has no parent, or fails to contact parent for a number of times, the findParentNode() method is entered.
    This sends a broadcast (ignoring the result) and then waits at most 2 seconds for a response.
    When this response doesn't come, the sensor just carries on as if the parent has been found, sending messages until again a number of times it failed to contact the parent.

    Shouldn't findParentNode() either block until the parent has been found (maybe not desirable for battery based nodes) or only reset the failedTransmissions counter when a succesful response from the parent has been received?

    http://yveaux.blogspot.nl

    H 1 Reply Last reply
    0
    • Y Yveaux

      @hek When MySensors has no parent, or fails to contact parent for a number of times, the findParentNode() method is entered.
      This sends a broadcast (ignoring the result) and then waits at most 2 seconds for a response.
      When this response doesn't come, the sensor just carries on as if the parent has been found, sending messages until again a number of times it failed to contact the parent.

      Shouldn't findParentNode() either block until the parent has been found (maybe not desirable for battery based nodes) or only reset the failedTransmissions counter when a succesful response from the parent has been received?

      H Offline
      H Offline
      hek
      Admin
      wrote on last edited by
      #46

      @Yveaux said:

      Shouldn't findParentNode() either block until the parent has been found (maybe not desirable for battery based nodes) or only reset the failedTransmissions counter when a succesful response from the parent has been received?

      Blocking is as you say a bad idea for battery sensors (1.3 had this problem resulting in drained batteries).

      How would it help to reset failedTransmissions?

      Y 1 Reply Last reply
      0
      • H Offline
        H Offline
        hek
        Admin
        wrote on last edited by
        #47

        @Yveaux

        BTW. Do you have any idea why this happens?

        http://forum.mysensors.org/topic/347/1-4-error-compiling-with-pinchangeint-h-library-file/5

        I can't explain why linker includes things from MyGateway.cpp when compiling sensor examples.

        Y 1 Reply Last reply
        0
        • H hek

          @Yveaux said:

          Shouldn't findParentNode() either block until the parent has been found (maybe not desirable for battery based nodes) or only reset the failedTransmissions counter when a succesful response from the parent has been received?

          Blocking is as you say a bad idea for battery sensors (1.3 had this problem resulting in drained batteries).

          How would it help to reset failedTransmissions?

          Y Offline
          Y Offline
          Yveaux
          Mod
          wrote on last edited by
          #48

          @hek said:

          How would it help to reset failedTransmissions?

          Just thinking out aloud:

          • Don't reset failedTransmissions in findParentNode()
          • Reset failedTransmissions only when a new parent has been found
          • In sendRoute() first perform findParentNode() when failedTransmissions > SEARCH_FAILURES
          • When succesful (failedTransmissions == 0) perform sendWrite()

          This will always first try to find a parent when none has been found yet, before trying to send the message.
          If it fails, the send of the message will fail and the (battery powered) sensor will just carry on as if the message has been send, and sleep the sensor as usual.
          Just sending to a known-bad parent node should be avoided at all times.

          http://yveaux.blogspot.nl

          H 1 Reply Last reply
          0
          • Y Yveaux

            @hek said:

            How would it help to reset failedTransmissions?

            Just thinking out aloud:

            • Don't reset failedTransmissions in findParentNode()
            • Reset failedTransmissions only when a new parent has been found
            • In sendRoute() first perform findParentNode() when failedTransmissions > SEARCH_FAILURES
            • When succesful (failedTransmissions == 0) perform sendWrite()

            This will always first try to find a parent when none has been found yet, before trying to send the message.
            If it fails, the send of the message will fail and the (battery powered) sensor will just carry on as if the message has been send, and sleep the sensor as usual.
            Just sending to a known-bad parent node should be avoided at all times.

            H Offline
            H Offline
            hek
            Admin
            wrote on last edited by
            #49

            @Yveaux

            Sounds good. Go for it!

            Y 2 Replies Last reply
            0
            • H hek

              @Yveaux

              Sounds good. Go for it!

              Y Offline
              Y Offline
              Yveaux
              Mod
              wrote on last edited by
              #50

              @hek ;-)

              http://yveaux.blogspot.nl

              1 Reply Last reply
              0
              • H hek

                @Yveaux

                BTW. Do you have any idea why this happens?

                http://forum.mysensors.org/topic/347/1-4-error-compiling-with-pinchangeint-h-library-file/5

                I can't explain why linker includes things from MyGateway.cpp when compiling sensor examples.

                Y Offline
                Y Offline
                Yveaux
                Mod
                wrote on last edited by
                #51

                @hek said:

                I can't explain why linker includes things from MyGateway.cpp when compiling sensor examples.

                Compiler & linker seem to be configured correctly in 1.5.7 (see hardware\arduino\avr\patform.txt)
                Did you have a look at the map-file? What exactly is included from the MyGateway.cpp file?

                http://yveaux.blogspot.nl

                H 1 Reply Last reply
                0
                • H hek

                  @Yveaux

                  Sounds good. Go for it!

                  Y Offline
                  Y Offline
                  Yveaux
                  Mod
                  wrote on last edited by Yveaux
                  #52

                  @hek I'm also a bit puzzled by the RF24::enableAckPayload() and RF24::writeAckPayload() calls in the library, just like @Zeph .
                  If I disable them the findParentNode() call only seems to emit a single message (which I can understand, as auto-ack is disabled for broadcasts), while 16 will be emit when the calls are enabled.
                  Looks like auto-ack doesn't get disabled for broadcasts in this case.

                  A sending nRF24 will immediately & automatically **switch to listen to the destination node's ID **after it has sent its message. Reason for this is that the nRF24 packet format only contains a destination node address and no source. The receiving node has no idea where the message came from and does not know who to send the ack to. Therefore it just sends the ack to its own node address, which the transmitting node happens to listen to.

                  I tested only with a single sensor sending to a non-existent parent, but I can imagine that when auto-acks are enabled for broadcasts the s**t will definately hit the fan when there are many nodes within close proximity!

                  http://yveaux.blogspot.nl

                  H 1 Reply Last reply
                  0
                  • Y Yveaux

                    @hek said:

                    I can't explain why linker includes things from MyGateway.cpp when compiling sensor examples.

                    Compiler & linker seem to be configured correctly in 1.5.7 (see hardware\arduino\avr\patform.txt)
                    Did you have a look at the map-file? What exactly is included from the MyGateway.cpp file?

                    H Offline
                    H Offline
                    hek
                    Admin
                    wrote on last edited by
                    #53

                    @Yveaux

                    Ok, I'll download 1.5.7 and test again. Can't find any map-file anywhere in the build directory.

                    Y 1 Reply Last reply
                    0
                    • H hek

                      @Yveaux

                      Ok, I'll download 1.5.7 and test again. Can't find any map-file anywhere in the build directory.

                      Y Offline
                      Y Offline
                      Yveaux
                      Mod
                      wrote on last edited by
                      #54

                      @hek said:

                      Can't find any map-file anywhere in the build directory.

                      I think Arduino does not enable it by default. You either have to add generation to the build-parameters in platform.txt, or generate it afterwards .

                      http://yveaux.blogspot.nl

                      1 Reply Last reply
                      0
                      • Y Yveaux

                        @hek I'm also a bit puzzled by the RF24::enableAckPayload() and RF24::writeAckPayload() calls in the library, just like @Zeph .
                        If I disable them the findParentNode() call only seems to emit a single message (which I can understand, as auto-ack is disabled for broadcasts), while 16 will be emit when the calls are enabled.
                        Looks like auto-ack doesn't get disabled for broadcasts in this case.

                        A sending nRF24 will immediately & automatically **switch to listen to the destination node's ID **after it has sent its message. Reason for this is that the nRF24 packet format only contains a destination node address and no source. The receiving node has no idea where the message came from and does not know who to send the ack to. Therefore it just sends the ack to its own node address, which the transmitting node happens to listen to.

                        I tested only with a single sensor sending to a non-existent parent, but I can imagine that when auto-acks are enabled for broadcasts the s**t will definately hit the fan when there are many nodes within close proximity!

                        H Offline
                        H Offline
                        hek
                        Admin
                        wrote on last edited by
                        #55

                        @Yveaux said:

                        If I disable them the findParentNode() call only seems to emit a single message (which I can understand, as auto-ack is disabled for broadcasts), while 16 will be emit when the calls are enabled.
                        Looks like auto-ack doesn't get disabled for broadcasts in this case.

                        Ok, 16! Hmm..not good.
                        Could you perhaps do some more verifications with removed ackPayload/writeAckPayload while sniffing to see that everything works as expected with the whole findParent?
                        Would be a nice addition to get this removed while you refactor findParent.

                        Y 1 Reply Last reply
                        0
                        • H hek

                          @Yveaux said:

                          If I disable them the findParentNode() call only seems to emit a single message (which I can understand, as auto-ack is disabled for broadcasts), while 16 will be emit when the calls are enabled.
                          Looks like auto-ack doesn't get disabled for broadcasts in this case.

                          Ok, 16! Hmm..not good.
                          Could you perhaps do some more verifications with removed ackPayload/writeAckPayload while sniffing to see that everything works as expected with the whole findParent?
                          Would be a nice addition to get this removed while you refactor findParent.

                          Y Offline
                          Y Offline
                          Yveaux
                          Mod
                          wrote on last edited by
                          #56

                          @hek first need to rebuild the mysensors setup. Everything is Radiohead now....

                          http://yveaux.blogspot.nl

                          H 1 Reply Last reply
                          0
                          • Y Yveaux

                            @hek first need to rebuild the mysensors setup. Everything is Radiohead now....

                            H Offline
                            H Offline
                            hek
                            Admin
                            wrote on last edited by
                            #57

                            @Yveaux said:

                            Everything is Radiohead now

                            :O

                            You sniffing is really helpful finding bugs and quirks in the radios bwt!

                            Y 1 Reply Last reply
                            0
                            • H hek

                              @Yveaux said:

                              Everything is Radiohead now

                              :O

                              You sniffing is really helpful finding bugs and quirks in the radios bwt!

                              Y Offline
                              Y Offline
                              Yveaux
                              Mod
                              wrote on last edited by
                              #58

                              @hek yeah I know. I can't think of developing any networking stack without knowing what's really going on...
                              Why don't you build one yourself ? ;-)

                              http://yveaux.blogspot.nl

                              H 1 Reply Last reply
                              0
                              • Y Yveaux

                                @hek yeah I know. I can't think of developing any networking stack without knowing what's really going on...
                                Why don't you build one yourself ? ;-)

                                H Offline
                                H Offline
                                hek
                                Admin
                                wrote on last edited by
                                #59

                                @Yveaux

                                I would really love to, but unfortunately I don't have any computer to lobotomize with windos.

                                Y 1 Reply Last reply
                                0
                                • H hek

                                  @Yveaux

                                  I would really love to, but unfortunately I don't have any computer to lobotomize with windos.

                                  Y Offline
                                  Y Offline
                                  Yveaux
                                  Mod
                                  wrote on last edited by
                                  #60

                                  @hek maybe run it in a virtual machine?
                                  I should have written the serial-wireshark bridge in a more portable way...

                                  http://yveaux.blogspot.nl

                                  1 Reply Last reply
                                  0
                                  • H hek

                                    @ServiceXp
                                    Think I found the config problem. No wonder it didn't work. Please download and try again.

                                    @mikeones
                                    You should now be able to omit carriage return now.
                                    The fail you're seeing is for the inter-node-ack.
                                    Just verified requesting time from controller and it seems to work fine here (using the example sketch).

                                    R Offline
                                    R Offline
                                    RJ_Make
                                    Hero Member
                                    wrote on last edited by
                                    #61

                                    @hek said:> @ServiceXp

                                    Think I found the config problem. No wonder it didn't work. Please download and try again.

                                    Updated, and now it works! Thanks!!

                                    RJ_Make

                                    1 Reply Last reply
                                    0
                                    • R Offline
                                      R Offline
                                      RJ_Make
                                      Hero Member
                                      wrote on last edited by
                                      #62

                                      I spoke too soon...

                                      I'm going crazy trying to find out why my sensors with DS18B20 keep locking up.... Today I had to clear and re-upload a sketch to a locked up sensor and it would not convert to F.. Severals hours later, still would not convert..

                                      RJ_Make

                                      H 1 Reply Last reply
                                      0
                                      • R RJ_Make

                                        I spoke too soon...

                                        I'm going crazy trying to find out why my sensors with DS18B20 keep locking up.... Today I had to clear and re-upload a sketch to a locked up sensor and it would not convert to F.. Severals hours later, still would not convert..

                                        H Offline
                                        H Offline
                                        hek
                                        Admin
                                        wrote on last edited by
                                        #63

                                        @ServiceXp

                                        You could test some other ds18b20 library and add a capacitor on the powerline to the temp-sensors.

                                        R 1 Reply Last reply
                                        0
                                        • H hek

                                          @ServiceXp

                                          You could test some other ds18b20 library and add a capacitor on the powerline to the temp-sensors.

                                          R Offline
                                          R Offline
                                          RJ_Make
                                          Hero Member
                                          wrote on last edited by
                                          #64

                                          @hek said:> @ServiceXp

                                          You could test some other ds18b20 library and add a capacitor on the powerline to the temp-sensors.

                                          I now believe it's related to the DS18D20 sensor. The same sensor locked up again when I got home, and interestingly enough they locked up @ -7.0 F. both times.

                                          1. I power cycled sensor, (Still Locked Up)
                                          2. Pushed sensor reset button. (Still Locked Up)
                                          3. I removed from freezer, warmed sensor; power cycled sensor again (Still Locked Up)
                                          4. Disconnected the DS18D20 from sensor and what do you know I was able to get it to recover.

                                          So either this is just a freak of coincidence or the DS18D20 is some how locking up the Arduino in my environment. I installed a .47uF cap between the sensors VCC and GND wires, so we shall see.

                                          Here is the serial output of the sensor:

                                          2014-09-09_19-45-13.png

                                          RJ_Make

                                          1 Reply Last reply
                                          0

                                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                          With your input, this post could be even better 💗

                                          Register Login
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          11

                                          Online

                                          12.0k

                                          Users

                                          11.2k

                                          Topics

                                          113.4k

                                          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