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. Discover network topology?

Discover network topology?

Scheduled Pinned Locked Moved Development
13 Posts 5 Posters 3.0k Views 4 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.
  • hekH Offline
    hekH Offline
    hek
    Admin
    wrote on last edited by
    #4

    @darkhorse

    The parent node number comes from the payload in the I_CONFIG request that the node sends at startup (or when you send I_PRESENT request to the node).

    darkhorseD 1 Reply Last reply
    1
    • sundberg84S sundberg84

      Hi! @darkhorse
      For documentation about the api check the website: https://www.mysensors.org/download/serial_api_20
      About the topology I dont think you can get more than the last node from the log messages. I know I have seen some discussion about it in the forum but cant find it now - try to make some searches.

      darkhorseD Offline
      darkhorseD Offline
      darkhorse
      wrote on last edited by
      #5

      @sundberg84 Thanks! Unfortunately, the API does not tell me anything about the contents of the payload of internal messages like

      Init complete, id=0, parent=0, distance=0, registration=1
      TSP:MSG:READ 3-3-0 s=1,c=1,t=1,pt=7,l=5,sg=0:62.00
      TSP:SANCHK:OK
      
      

      I can guess what some of these things mean, but I would really like to read some documentation to make sure that my interpretations are correct.

      sundberg84S 1 Reply Last reply
      0
      • mfalkviddM mfalkvidd

        https://forum.mysensors.org/topic/2680/data-stored-in-the-eeprom/1 has some example code how to extract the routing information (from EEPROM on a node)

        darkhorseD Offline
        darkhorseD Offline
        darkhorse
        wrote on last edited by
        #6

        @mfalkvidd Thanks. It might be the case that I can find each node's parent in the EEPROM, but I would like to be able to read the topology "run time". I.e., while the system is in production.

        @hek This might be what I was looking for, thanks, I'll try it out!

        1 Reply Last reply
        0
        • darkhorseD darkhorse

          @sundberg84 Thanks! Unfortunately, the API does not tell me anything about the contents of the payload of internal messages like

          Init complete, id=0, parent=0, distance=0, registration=1
          TSP:MSG:READ 3-3-0 s=1,c=1,t=1,pt=7,l=5,sg=0:62.00
          TSP:SANCHK:OK
          
          

          I can guess what some of these things mean, but I would really like to read some documentation to make sure that my interpretations are correct.

          sundberg84S Offline
          sundberg84S Offline
          sundberg84
          Hardware Contributor
          wrote on last edited by
          #7

          @darkhorse - check this then: https://forum.mysensors.org/topic/2579/about-serial-api-1-5/2

          Controller: Proxmox VM - Home Assistant
          MySensors GW: Arduino Uno - W5100 Ethernet, Gw Shield Nrf24l01+ 2,4Ghz
          MySensors GW: Arduino Uno - Gw Shield RFM69, 433mhz
          RFLink GW - Arduino Mega + RFLink Shield, 433mhz

          darkhorseD 1 Reply Last reply
          1
          • sundberg84S sundberg84

            @darkhorse - check this then: https://forum.mysensors.org/topic/2579/about-serial-api-1-5/2

            darkhorseD Offline
            darkhorseD Offline
            darkhorse
            wrote on last edited by
            #8

            @sundberg84 Great, thanks!

            (pity that there is no official doc, however, but this should suffice for now)

            sundberg84S 1 Reply Last reply
            0
            • darkhorseD darkhorse

              @sundberg84 Great, thanks!

              (pity that there is no official doc, however, but this should suffice for now)

              sundberg84S Offline
              sundberg84S Offline
              sundberg84
              Hardware Contributor
              wrote on last edited by
              #9

              @darkhorse - check debug/faq/how to ask for help in the forum, its kind of official and you find it there as well.

              Controller: Proxmox VM - Home Assistant
              MySensors GW: Arduino Uno - W5100 Ethernet, Gw Shield Nrf24l01+ 2,4Ghz
              MySensors GW: Arduino Uno - Gw Shield RFM69, 433mhz
              RFLink GW - Arduino Mega + RFLink Shield, 433mhz

              1 Reply Last reply
              0
              • hekH hek

                @darkhorse

                The parent node number comes from the payload in the I_CONFIG request that the node sends at startup (or when you send I_PRESENT request to the node).

                darkhorseD Offline
                darkhorseD Offline
                darkhorse
                wrote on last edited by
                #10

                @hek After a week, I've found some time to test your advice and tried to send the I_PRESENT-message to some of my nodes. The reply that I get unfortunately is not totally clear to me. Can you help me out some more? I've tried sending the message to nodes 1 (being closest to the gateway) and 4 (being far from the gateway and with some nodes in between). I got the following response:

                Sent to module 1:

                1;255;3;1;19;
                

                Received from module 1 (duplicate lines removed):

                1;255;0;0;18;2.0.0
                1;255;3;0;6;0
                1;255;3;0;6;M
                1;0;0;0;6;
                1;1;0;0;7;
                1;2;0;0;1;
                

                Sent to module 4:

                4;255;3;1;19;
                

                Received from module 4 (duplicate lines removed):

                4;255;3;0;6;3
                4;255;3;0;6;M
                4;255;0;0;18;2.0.0
                4;255;3;0;6;3
                4;2;0;0;3;
                

                If I had to guess, I'd say that the lines '1;255;3;0;6;0' and '4;255;3;0;6;3' are the ones that I am looking for. They seem to tell me that

                • the parent of node 1 is node 0 (the gateway) and
                • the parent of node 4 is node 3 (a node that is physically somewhere in between the gateway and node 4).

                Before I draw conclusions, however, I'd really like to know if I'm correct. Can you confirm this? And if so, can I safely assume that any I_CONFIG-message received not containing an 'M' or 'I' in the payload tells me the parent-node?

                Thank you very much!

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

                  Yes, you are right..

                  It's a little weird that you receive a message with the payload "M"... Are you sure that it isn't the outgoing reply we're seeing here? Node should not send in anything else with the config request.

                  darkhorseD 1 Reply Last reply
                  1
                  • hekH hek

                    Yes, you are right..

                    It's a little weird that you receive a message with the payload "M"... Are you sure that it isn't the outgoing reply we're seeing here? Node should not send in anything else with the config request.

                    darkhorseD Offline
                    darkhorseD Offline
                    darkhorse
                    wrote on last edited by
                    #12

                    @hek You are right, I forgot that I configured my controller to respond to a I_CONFIG request by sending an 'M'. Apparently, a config request and an answer to I_PRESENT are the same message, so my controller does not differentiate its behaviour.

                    Anyway, thanks for your fast reply, this really helps me out!

                    Y 1 Reply Last reply
                    1
                    • darkhorseD darkhorse

                      @hek You are right, I forgot that I configured my controller to respond to a I_CONFIG request by sending an 'M'. Apparently, a config request and an answer to I_PRESENT are the same message, so my controller does not differentiate its behaviour.

                      Anyway, thanks for your fast reply, this really helps me out!

                      Y Offline
                      Y Offline
                      ykhokhlov
                      wrote on last edited by
                      #13

                      @darkhorse Hi!
                      Did you eventually created a controller that draws a network topology? If yes, could you share it?

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


                      10

                      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