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. Changing Node ID at run time

Changing Node ID at run time

Scheduled Pinned Locked Moved Development
5 Posts 2 Posters 2.3k Views 5 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.
  • L Offline
    L Offline
    lafleur
    wrote on last edited by
    #1

    Is it possible to change the node ID at run time in Setup???

    ie: MY_NODE_ID

    The way it looks now, it needs to be set prior to Setup or Loop being invoked using a:

    #define MY_NODE_ID 10

    I'm using an MQTT GW and would like each device to get its ID from a jumper on the board...

    Thanks

    1 Reply Last reply
    0
    • hekH Offline
      hekH Offline
      hek
      Admin
      wrote on last edited by
      #2

      Yes, it should be possible with something like this...

      int8_t myNodeId;
      
      #define MY_NODE_ID myNodeId
      
      void before () { 
            // read pins and set myNodeId    
      }
      
      
      1 Reply Last reply
      0
      • L Offline
        L Offline
        lafleur
        wrote on last edited by
        #3

        Good idea, but it did not worked...

        The node was at 10, so I set the myNodeId = 12 in before() function, node continued to use ID of 10, most likely from Flash.... before() might be running prior to initialization of all variables...

        L 1 Reply Last reply
        0
        • L lafleur

          Good idea, but it did not worked...

          The node was at 10, so I set the myNodeId = 12 in before() function, node continued to use ID of 10, most likely from Flash.... before() might be running prior to initialization of all variables...

          L Offline
          L Offline
          lafleur
          wrote on last edited by
          #4

          @lafleur

          See issue #675 in Github...

          https://github.com/mysensors/MySensors/issues/675

          1 Reply Last reply
          1
          • L Offline
            L Offline
            lafleur
            wrote on last edited by lafleur
            #5

            I have this working now, it was a setup issue on my part...

            #define MY_NODE_ID myNodeId
            
            
            int8_t myNodeId;
            
            #define MY_NODE_ID myNodeId
            
            void before () { 
                // read I/O pins and set myNodeId
                myNodeId = 32;
                Serial.println( myNodeId );
            }
            
            
            1 Reply Last reply
            1
            Reply
            • Reply as topic
            Log in to reply
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes


            12

            Online

            11.7k

            Users

            11.2k

            Topics

            113.1k

            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