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. How do I get multiple different mock barometers?

How do I get multiple different mock barometers?

Scheduled Pinned Locked Moved Development
53 Posts 6 Posters 8.0k 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.
  • mfalkviddM Offline
    mfalkviddM Offline
    mfalkvidd
    Mod
    wrote on last edited by
    #16

    Child id is also described at https://www.mysensors.org/download/sensor_api_20#presentation

    NeverDieN 1 Reply Last reply
    1
    • mfalkviddM mfalkvidd

      Child id is also described at https://www.mysensors.org/download/sensor_api_20#presentation

      NeverDieN Offline
      NeverDieN Offline
      NeverDie
      Hero Member
      wrote on last edited by
      #17

      @mfalkvidd said in How do I get multiple different mock barometers?:

      Child id is also described at https://www.mysensors.org/download/sensor_api_20#presentation

      Thanks for that link. It certainly helps. It's funny, though, that in the simple example NODE_ID appears to be completely undefined. I assume it's missing this line?

      #define NODE_ID 0
      
      mfalkviddM 1 Reply Last reply
      0
      • NeverDieN NeverDie

        @mfalkvidd said in How do I get multiple different mock barometers?:

        Child id is also described at https://www.mysensors.org/download/sensor_api_20#presentation

        Thanks for that link. It certainly helps. It's funny, though, that in the simple example NODE_ID appears to be completely undefined. I assume it's missing this line?

        #define NODE_ID 0
        
        mfalkviddM Offline
        mfalkviddM Offline
        mfalkvidd
        Mod
        wrote on last edited by mfalkvidd
        #18

        @NeverDie if NODE_ID is not defined in the sketch, the controller will(/needs to) provide the next available node id.
        https://www.mysensors.org/download/sensor_api_20#received-node-id

        Node id 0 is reserved for the gateway.

        NeverDieN 1 Reply Last reply
        0
        • korttomaK Offline
          korttomaK Offline
          korttoma
          Hero Member
          wrote on last edited by korttoma
          #19

          The correct line for API 2.x is actually:

          #define MY_NODE_ID 1
          
          • Tomas
          1 Reply Last reply
          1
          • mfalkviddM mfalkvidd

            @NeverDie if NODE_ID is not defined in the sketch, the controller will(/needs to) provide the next available node id.
            https://www.mysensors.org/download/sensor_api_20#received-node-id

            Node id 0 is reserved for the gateway.

            NeverDieN Offline
            NeverDieN Offline
            NeverDie
            Hero Member
            wrote on last edited by NeverDie
            #20

            @mfalkvidd said in How do I get multiple different mock barometers?:

            Node id 0 is reserved for the gateway.

            The text of the wiki says:

            child-sensor-id This is where you specify the child sensor that's reporting the data. In the example we only have one child sensor so we pick 0.

            So, based on @mfalkvidd and @korttoma remarks, that is wrong and we should avoid naming child sensor id's as zero? Or, is this confusing the node-id with the child-id?

            Regarding the node-id, doesn't the gateway provide the actual node-id, not the programmer?

            mfalkviddM 1 Reply Last reply
            0
            • NeverDieN NeverDie

              @mfalkvidd said in How do I get multiple different mock barometers?:

              Node id 0 is reserved for the gateway.

              The text of the wiki says:

              child-sensor-id This is where you specify the child sensor that's reporting the data. In the example we only have one child sensor so we pick 0.

              So, based on @mfalkvidd and @korttoma remarks, that is wrong and we should avoid naming child sensor id's as zero? Or, is this confusing the node-id with the child-id?

              Regarding the node-id, doesn't the gateway provide the actual node-id, not the programmer?

              mfalkviddM Offline
              mfalkviddM Offline
              mfalkvidd
              Mod
              wrote on last edited by mfalkvidd
              #21

              @NeverDie child sensor id and sensor node id are different things.

              A sensor node (usually arduino + radio) has a node id. Node id 0 is reserved for the gateway. A sensor node can have many child sensors (two bme280 for example). There is no reservation for child sensor id (except maybe 255, I think that is used by some controllers for special data)

              1 Reply Last reply
              2
              • NeverDieN Offline
                NeverDieN Offline
                NeverDie
                Hero Member
                wrote on last edited by
                #22

                I have it working now, but why are:

                #define LONG_WAIT 500
                #define SHORT_WAIT 50
                
                

                needed?

                rmtuckerR gohanG 2 Replies Last reply
                0
                • NeverDieN NeverDie

                  I have it working now, but why are:

                  #define LONG_WAIT 500
                  #define SHORT_WAIT 50
                  
                  

                  needed?

                  rmtuckerR Offline
                  rmtuckerR Offline
                  rmtucker
                  wrote on last edited by
                  #23

                  @NeverDie
                  Why barometer instead of voltage and multimeter?

                  NeverDieN 1 Reply Last reply
                  0
                  • rmtuckerR rmtucker

                    @NeverDie
                    Why barometer instead of voltage and multimeter?

                    NeverDieN Offline
                    NeverDieN Offline
                    NeverDie
                    Hero Member
                    wrote on last edited by
                    #24

                    @rmtucker said in How do I get multiple different mock barometers?:

                    @NeverDie
                    Why barometer instead of voltage and multimeter?

                    No real reason anymore. If you rewind the tape to the beginning, though, it was because barometer compiled and volt meter didn't.

                    rmtuckerR 1 Reply Last reply
                    0
                    • NeverDieN NeverDie

                      I have it working now, but why are:

                      #define LONG_WAIT 500
                      #define SHORT_WAIT 50
                      
                      

                      needed?

                      gohanG Offline
                      gohanG Offline
                      gohan
                      Mod
                      wrote on last edited by
                      #25

                      @NeverDie said in How do I get multiple different mock barometers?:

                      I have it working now, but why are:

                      #define LONG_WAIT 500
                      #define SHORT_WAIT 50
                      
                      

                      needed?

                      I think those are used in the code to delay the sending of mock values

                      NeverDieN 1 Reply Last reply
                      0
                      • NeverDieN NeverDie

                        @rmtucker said in How do I get multiple different mock barometers?:

                        @NeverDie
                        Why barometer instead of voltage and multimeter?

                        No real reason anymore. If you rewind the tape to the beginning, though, it was because barometer compiled and volt meter didn't.

                        rmtuckerR Offline
                        rmtuckerR Offline
                        rmtucker
                        wrote on last edited by
                        #26

                        @NeverDie

                        Here is a little sketch that compiles on the NRF5.

                        // Enable debug prints to serial monitor
                        //#define MY_DEBUG
                        
                        // Enable and select radio type attached
                        #define MY_RADIO_NRF5_ESB
                        
                        /**
                           @def MY_NRF5_ESB_PA_LEVEL
                           @brief Default nRF5 PA level. Override in sketch if needed.
                        
                           - NRF5_PA_MIN = -40dBm
                           - NRF5_PA_LOW = -16dBm
                           - NRF5_PA_HIGH = 0dBm
                           - NRF5_PA_MAX = 4dBm
                        */
                        #define MY_NRF5_ESB_PA_LEVEL (NRF5_PA_MAX)
                        
                        #define MY_NRF5_ESB_CHANNEL (76)
                        
                        #define MY_NRF5_ESB_MODE (NRF5_250KBPS)
                        
                        #define MY_NODE_ID 10
                        #define VOLTAGE     0
                        #include <MySensors.h>
                        
                        float vcc = (hwCPUVoltage() / 1000.0);
                        
                        MyMessage VoltageMsg(VOLTAGE, V_VOLTAGE);
                        
                        void presentation()
                        {
                          sendSketchInfo("General sensor", "1.0");
                          present(VOLTAGE, S_MULTIMETER);
                        }
                        
                        
                        void setup() {
                        //  Serial.begin(115200);
                        //  while (!Serial) ; // wait for Arduino Serial Monitor
                        }
                        
                        void loop() {
                          send(VoltageMsg.set(vcc, 3));
                        //  Serial.print(F("Voltage = "));
                        //  Serial.print(vcc, 3);
                        //  Serial.println(F("v"));
                          sleep(60000);
                        }
                        
                        
                        NeverDieN 1 Reply Last reply
                        1
                        • gohanG gohan

                          @NeverDie said in How do I get multiple different mock barometers?:

                          I have it working now, but why are:

                          #define LONG_WAIT 500
                          #define SHORT_WAIT 50
                          
                          

                          needed?

                          I think those are used in the code to delay the sending of mock values

                          NeverDieN Offline
                          NeverDieN Offline
                          NeverDie
                          Hero Member
                          wrote on last edited by NeverDie
                          #27

                          @gohan said in How do I get multiple different mock barometers?:

                          @NeverDie said in How do I get multiple different mock barometers?:

                          I have it working now, but why are:

                          #define LONG_WAIT 500
                          #define SHORT_WAIT 50
                          
                          

                          needed?

                          I think those are used in the code to delay the sending of mock values

                          Yes, but why? Is it to give the serial gateway time to process it?

                          I'd like to know the motivation for it because I'm using an ESP8266 as my serial gateway (the Easy-Peasy), and it's considerably faster than, say, an Arduino UNO. For instance, maybe it doesn't need these delays on the sending side to keep up.

                          1 Reply Last reply
                          0
                          • gohanG Offline
                            gohanG Offline
                            gohan
                            Mod
                            wrote on last edited by
                            #28

                            I think it's more related to allow enough time for people to read the log without flooding it

                            NeverDieN 2 Replies Last reply
                            0
                            • gohanG gohan

                              I think it's more related to allow enough time for people to read the log without flooding it

                              NeverDieN Offline
                              NeverDieN Offline
                              NeverDie
                              Hero Member
                              wrote on last edited by
                              #29

                              @gohan said in How do I get multiple different mock barometers?:

                              I think it's more related to allow enough time for people to read the log without flooding it

                              LOL. Glad I asked!

                              1 Reply Last reply
                              0
                              • gohanG gohan

                                I think it's more related to allow enough time for people to read the log without flooding it

                                NeverDieN Offline
                                NeverDieN Offline
                                NeverDie
                                Hero Member
                                wrote on last edited by NeverDie
                                #30

                                @gohan said in How do I get multiple different mock barometers?:

                                I think it's more related to allow enough time for people to read the log without flooding it

                                No, there's more going on than just that apparently. If I reduce their value to zero, it bombs. Reducing short-wait to zero causes the mote to get stuck in a loop somewhere, and reducing long-wait to zero causes the gateway to miss receiving some packets.

                                If these examples are meant to teach, it sure would be nice if it was documented code!

                                mfalkviddM 1 Reply Last reply
                                0
                                • gohanG Offline
                                  gohanG Offline
                                  gohan
                                  Mod
                                  wrote on last edited by
                                  #31

                                  It is always good practice not to flood the gateway anyway :)

                                  1 Reply Last reply
                                  0
                                  • rejoe2R Offline
                                    rejoe2R Offline
                                    rejoe2
                                    wrote on last edited by rejoe2
                                    #32

                                    This wait() can also help to avoid packet losses due to insufficient power supply when using nRF24.

                                    Controller: FHEM; MySensors: 2.3.1, RS485,nRF24,RFM69, serial Gateways

                                    NeverDieN 1 Reply Last reply
                                    1
                                    • NeverDieN NeverDie

                                      @gohan said in How do I get multiple different mock barometers?:

                                      I think it's more related to allow enough time for people to read the log without flooding it

                                      No, there's more going on than just that apparently. If I reduce their value to zero, it bombs. Reducing short-wait to zero causes the mote to get stuck in a loop somewhere, and reducing long-wait to zero causes the gateway to miss receiving some packets.

                                      If these examples are meant to teach, it sure would be nice if it was documented code!

                                      mfalkviddM Offline
                                      mfalkviddM Offline
                                      mfalkvidd
                                      Mod
                                      wrote on last edited by mfalkvidd
                                      #33

                                      @NeverDie I am not sure, but I think the mock sketch is meant only for validating new builds of MySensors (by the Jenkins build system connected to Github). It is not included on the build page and as you said it is not documented so I don't think it is meant to teach.

                                      I may be wrong though, I didn't know that sketch existed before you mentioned it.

                                      At almost 1,500 lines it is 10x bigger than most of the build examples, which seems like a very bad idea if the intention is to teach.

                                      1 Reply Last reply
                                      0
                                      • gohanG Offline
                                        gohanG Offline
                                        gohan
                                        Mod
                                        wrote on last edited by
                                        #34

                                        It's big because it has all the code to simulate almost all sensors 😀

                                        mfalkviddM 1 Reply Last reply
                                        0
                                        • gohanG gohan

                                          It's big because it has all the code to simulate almost all sensors 😀

                                          mfalkviddM Offline
                                          mfalkviddM Offline
                                          mfalkvidd
                                          Mod
                                          wrote on last edited by
                                          #35

                                          @gohan yes. And that is a terrible way to teach.

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


                                          14

                                          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