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. OpenHardware.io
  3. 💬 NodeManager

💬 NodeManager

Scheduled Pinned Locked Moved OpenHardware.io
contest2017arduinonewbiemysensorsbattery sensor
196 Posts 42 Posters 67.4k Views 41 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.
  • U user2684

    @mvader thanks for the feedback, I've added this issue on Github so to fix this in the next dev release https://github.com/mysensors/NodeManager/issues/344

    M Offline
    M Offline
    mvader
    wrote on last edited by mvader
    #156

    @user2684 said in 💬 NodeManager:

    @mvader thanks for the feedback, I've added this issue on Github so to fix this in the next dev release https://github.com/mysensors/NodeManager/issues/344

    Thanks!! here is the setup and loop part from the sketch

    setup
    pinMode(7, OUTPUT); // “power pin” for Light Sensor
    digitalWrite(7, LOW); // switch power off
    
    loop
      digitalWrite(7, HIGH); // switch power on to LDR
      sendLight(forceTransmit);
      digitalWrite(7, LOW); // switch power off to LDR
    
    and the function
    /*
     * Sends Ambient Light Sensor information
     * 
     * Parameters
     * - force : Forces transmission of a value
     */
    
    void sendLight(bool force) // Get light level
    {
      if (force) lastLightLevel = -1;
      int rlightLevel =  analogRead(LIGHT_PIN);
      int lightLevel =  (analogRead(LIGHT_PIN) / 10.23) ;
      if (lightLevel != lastLightLevel) {
       gw.send(msgLight.set(lightLevel));
        lastLightLevel = lightLevel;
      }
    
    1 Reply Last reply
    0
    • C Offline
      C Offline
      cpl_ir
      wrote on last edited by
      #157

      Hi, I am starting with MySensors and I read about the NodeManager. But I have a problem with starting with the nodemanager. I tried to make a node with a BMP280 sensor and a NRF24. Every time I tried I got the following error message
      when compiling (nodemanager actual version, arduino IDE1.8.5). Even no other sensor works.

      What is the reason, can anyone help me?

      Arduino: 1.8.5 (Windows 10), Board: "Arduino Nano, ATmega328P"
      
      ....
      ....
      "C:\Users\Radfedfdf\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2/bin/avr-gcc-ar" rcs  "C:\Users\RADFE~1\AppData\Local\Temp\arduino_build_123539\core\core.a" "C:\Users\RADFE~1\AppData\Local\Temp\arduino_build_123539\core\main.cpp.o"
      "C:\Users\Radfedfdf\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2/bin/avr-gcc-ar" rcs  "C:\Users\RADFE~1\AppData\Local\Temp\arduino_build_123539\core\core.a" "C:\Users\RADFE~1\AppData\Local\Temp\arduino_build_123539\core\new.cpp.o"
      Archiving built core (caching) in: C:\Users\RADFE~1\AppData\Local\Temp\arduino_cache_196944\core\core_arduino_avr_nano_cpu_atmega328_2c22347d3c992515700a8fa0ae8526cf.a
      Linking everything together...
      "C:\Users\Radfedfdf\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2/bin/avr-gcc" -w -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega328p  -o "C:\Users\RADFE~1\AppData\Local\Temp\arduino_build_123539/NodeManager.ino.elf" "C:\Users\RADFE~1\AppData\Local\Temp\arduino_build_123539\sketch\NodeManager.ino.cpp.o" "C:\Users\RADFE~1\AppData\Local\Temp\arduino_build_123539\libraries\SPI\SPI.cpp.o" "C:\Users\RADFE~1\AppData\Local\Temp\arduino_build_123539\libraries\Wire\Wire.cpp.o" "C:\Users\RADFE~1\AppData\Local\Temp\arduino_build_123539\libraries\Wire\utility\twi.c.o" "C:\Users\RADFE~1\AppData\Local\Temp\arduino_build_123539\libraries\Adafruit_BMP280_Library-master\Adafruit_BMP280.cpp.o" "C:\Users\RADFE~1\AppData\Local\Temp\arduino_build_123539/core\core.a" "-LC:\Users\RADFE~1\AppData\Local\Temp\arduino_build_123539" -lm
      C:\Users\RADFE~1\AppData\Local\Temp\cc796L4N.ltrans1.ltrans.o: In function `receive(MyMessage const&)':
      
      C:\Users\RADFE~1\AppData\Local\Temp\arduino_modified_sketch_106015/NodeManager.ino:433: undefined reference to `NodeManager::receive(MyMessage const&)'
      
      C:\Users\RADFE~1\AppData\Local\Temp\cc796L4N.ltrans1.ltrans.o: In function `loop':
      
      C:\Users\RADFE~1\AppData\Local\Temp\arduino_modified_sketch_106015/NodeManager.ino:426: undefined reference to `NodeManager::loop()'
      
      C:\Users\RADFE~1\AppData\Local\Temp\cc796L4N.ltrans1.ltrans.o: In function `setup':
      
      C:\Users\RADFE~1\AppData\Local\Temp\arduino_modified_sketch_106015/NodeManager.ino:420: undefined reference to `NodeManager::setup()'
      
      C:\Users\RADFE~1\AppData\Local\Temp\cc796L4N.ltrans1.ltrans.o: In function `presentation()':
      
      C:\Users\RADFE~1\AppData\Local\Temp\arduino_modified_sketch_106015/NodeManager.ino:414: undefined reference to `NodeManager::presentation()'
      
      C:\Users\RADFE~1\AppData\Local\Temp\cc796L4N.ltrans1.ltrans.o: In function `before()':
      
      C:\Users\RADFE~1\AppData\Local\Temp\arduino_modified_sketch_106015/NodeManager.ino:408: undefined reference to `NodeManager::before()'
      
      C:\Users\RADFE~1\AppData\Local\Temp\cc796L4N.ltrans1.ltrans.o: In function `__static_initialization_and_destruction_0':
      
      C:\Users\RADFE~1\AppData\Local\Temp\arduino_modified_sketch_106015/NodeManager.ino:313: undefined reference to `NodeManager::NodeManager(int)'
      
      C:\Users\RADFE~1\AppData\Local\Temp\arduino_modified_sketch_106015/NodeManager.ino:351: undefined reference to `SensorBMP280::SensorBMP280(NodeManager&, int)'
      
      C:\Users\RADFE~1\AppData\Local\Temp\cc796L4N.ltrans1.ltrans.o: In function `_GLOBAL__sub_D__Z6hwInitv':
      
      C:\Users\Radfedfdf\Documents\Arduino\libraries\NodeManager_Library/NodeManagerLibrary.h:564: undefined reference to `vtable for Sensor'
      
      C:\Users\Radfedfdf\Documents\Arduino\libraries\NodeManager_Library/NodeManagerLibrary.h:564: undefined reference to `vtable for Sensor'
      
      collect2.exe: error: ld returned 1 exit status
      
      Mehrere Bibliotheken wurden für "Adafruit_BMP280.h" gefunden
       Benutzt: C:\Users\Radfedfdf\Documents\Arduino\libraries\Adafruit_BMP280_Library-master
       Nicht benutzt: C:\Users\Radfedfdf\Documents\Arduino\libraries\Adafruit_BMP280_Library
      Bibliothek NodeManager_Library im Ordner: C:\Users\Radfedfdf\Documents\Arduino\libraries\NodeManager_Library (legacy) wird verwendet
      Bibliothek MySensors in Version 2.2.0 im Ordner: C:\Users\Radfedfdf\Documents\Arduino\libraries\MySensors  wird verwendet
      Bibliothek SPI in Version 1.0 im Ordner: C:\Users\Radfedfdf\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.21\libraries\SPI  wird verwendet
      Bibliothek Wire in Version 1.0 im Ordner: C:\Users\Radfedfdf\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.21\libraries\Wire  wird verwendet
      Bibliothek Adafruit_Unified_Sensor in Version 1.0.2 im Ordner: C:\Users\Radfedfdf\Documents\Arduino\libraries\Adafruit_Unified_Sensor  wird verwendet
      Bibliothek Adafruit_BMP280_Library-master in Version 1.0.2 im Ordner: C:\Users\Radfedfdf\Documents\Arduino\libraries\Adafruit_BMP280_Library-master  wird verwendet
      Ungültige Bibliothek C:\Users\Radfedfdf\Documents\Arduino\libraries\NodeManager_mod in C:\Users\Radfedfdf\Documents\Arduino\libraries\NodeManager_mod gefunden
      exit status 1
      Fehler beim Kompilieren für das Board Arduino Nano.
      
      U 1 Reply Last reply
      0
      • C cpl_ir

        Hi, I am starting with MySensors and I read about the NodeManager. But I have a problem with starting with the nodemanager. I tried to make a node with a BMP280 sensor and a NRF24. Every time I tried I got the following error message
        when compiling (nodemanager actual version, arduino IDE1.8.5). Even no other sensor works.

        What is the reason, can anyone help me?

        Arduino: 1.8.5 (Windows 10), Board: "Arduino Nano, ATmega328P"
        
        ....
        ....
        "C:\Users\Radfedfdf\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2/bin/avr-gcc-ar" rcs  "C:\Users\RADFE~1\AppData\Local\Temp\arduino_build_123539\core\core.a" "C:\Users\RADFE~1\AppData\Local\Temp\arduino_build_123539\core\main.cpp.o"
        "C:\Users\Radfedfdf\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2/bin/avr-gcc-ar" rcs  "C:\Users\RADFE~1\AppData\Local\Temp\arduino_build_123539\core\core.a" "C:\Users\RADFE~1\AppData\Local\Temp\arduino_build_123539\core\new.cpp.o"
        Archiving built core (caching) in: C:\Users\RADFE~1\AppData\Local\Temp\arduino_cache_196944\core\core_arduino_avr_nano_cpu_atmega328_2c22347d3c992515700a8fa0ae8526cf.a
        Linking everything together...
        "C:\Users\Radfedfdf\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2/bin/avr-gcc" -w -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega328p  -o "C:\Users\RADFE~1\AppData\Local\Temp\arduino_build_123539/NodeManager.ino.elf" "C:\Users\RADFE~1\AppData\Local\Temp\arduino_build_123539\sketch\NodeManager.ino.cpp.o" "C:\Users\RADFE~1\AppData\Local\Temp\arduino_build_123539\libraries\SPI\SPI.cpp.o" "C:\Users\RADFE~1\AppData\Local\Temp\arduino_build_123539\libraries\Wire\Wire.cpp.o" "C:\Users\RADFE~1\AppData\Local\Temp\arduino_build_123539\libraries\Wire\utility\twi.c.o" "C:\Users\RADFE~1\AppData\Local\Temp\arduino_build_123539\libraries\Adafruit_BMP280_Library-master\Adafruit_BMP280.cpp.o" "C:\Users\RADFE~1\AppData\Local\Temp\arduino_build_123539/core\core.a" "-LC:\Users\RADFE~1\AppData\Local\Temp\arduino_build_123539" -lm
        C:\Users\RADFE~1\AppData\Local\Temp\cc796L4N.ltrans1.ltrans.o: In function `receive(MyMessage const&)':
        
        C:\Users\RADFE~1\AppData\Local\Temp\arduino_modified_sketch_106015/NodeManager.ino:433: undefined reference to `NodeManager::receive(MyMessage const&)'
        
        C:\Users\RADFE~1\AppData\Local\Temp\cc796L4N.ltrans1.ltrans.o: In function `loop':
        
        C:\Users\RADFE~1\AppData\Local\Temp\arduino_modified_sketch_106015/NodeManager.ino:426: undefined reference to `NodeManager::loop()'
        
        C:\Users\RADFE~1\AppData\Local\Temp\cc796L4N.ltrans1.ltrans.o: In function `setup':
        
        C:\Users\RADFE~1\AppData\Local\Temp\arduino_modified_sketch_106015/NodeManager.ino:420: undefined reference to `NodeManager::setup()'
        
        C:\Users\RADFE~1\AppData\Local\Temp\cc796L4N.ltrans1.ltrans.o: In function `presentation()':
        
        C:\Users\RADFE~1\AppData\Local\Temp\arduino_modified_sketch_106015/NodeManager.ino:414: undefined reference to `NodeManager::presentation()'
        
        C:\Users\RADFE~1\AppData\Local\Temp\cc796L4N.ltrans1.ltrans.o: In function `before()':
        
        C:\Users\RADFE~1\AppData\Local\Temp\arduino_modified_sketch_106015/NodeManager.ino:408: undefined reference to `NodeManager::before()'
        
        C:\Users\RADFE~1\AppData\Local\Temp\cc796L4N.ltrans1.ltrans.o: In function `__static_initialization_and_destruction_0':
        
        C:\Users\RADFE~1\AppData\Local\Temp\arduino_modified_sketch_106015/NodeManager.ino:313: undefined reference to `NodeManager::NodeManager(int)'
        
        C:\Users\RADFE~1\AppData\Local\Temp\arduino_modified_sketch_106015/NodeManager.ino:351: undefined reference to `SensorBMP280::SensorBMP280(NodeManager&, int)'
        
        C:\Users\RADFE~1\AppData\Local\Temp\cc796L4N.ltrans1.ltrans.o: In function `_GLOBAL__sub_D__Z6hwInitv':
        
        C:\Users\Radfedfdf\Documents\Arduino\libraries\NodeManager_Library/NodeManagerLibrary.h:564: undefined reference to `vtable for Sensor'
        
        C:\Users\Radfedfdf\Documents\Arduino\libraries\NodeManager_Library/NodeManagerLibrary.h:564: undefined reference to `vtable for Sensor'
        
        collect2.exe: error: ld returned 1 exit status
        
        Mehrere Bibliotheken wurden für "Adafruit_BMP280.h" gefunden
         Benutzt: C:\Users\Radfedfdf\Documents\Arduino\libraries\Adafruit_BMP280_Library-master
         Nicht benutzt: C:\Users\Radfedfdf\Documents\Arduino\libraries\Adafruit_BMP280_Library
        Bibliothek NodeManager_Library im Ordner: C:\Users\Radfedfdf\Documents\Arduino\libraries\NodeManager_Library (legacy) wird verwendet
        Bibliothek MySensors in Version 2.2.0 im Ordner: C:\Users\Radfedfdf\Documents\Arduino\libraries\MySensors  wird verwendet
        Bibliothek SPI in Version 1.0 im Ordner: C:\Users\Radfedfdf\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.21\libraries\SPI  wird verwendet
        Bibliothek Wire in Version 1.0 im Ordner: C:\Users\Radfedfdf\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.21\libraries\Wire  wird verwendet
        Bibliothek Adafruit_Unified_Sensor in Version 1.0.2 im Ordner: C:\Users\Radfedfdf\Documents\Arduino\libraries\Adafruit_Unified_Sensor  wird verwendet
        Bibliothek Adafruit_BMP280_Library-master in Version 1.0.2 im Ordner: C:\Users\Radfedfdf\Documents\Arduino\libraries\Adafruit_BMP280_Library-master  wird verwendet
        Ungültige Bibliothek C:\Users\Radfedfdf\Documents\Arduino\libraries\NodeManager_mod in C:\Users\Radfedfdf\Documents\Arduino\libraries\NodeManager_mod gefunden
        exit status 1
        Fehler beim Kompilieren für das Board Arduino Nano.
        
        U Offline
        U Offline
        user2684
        Contest Winner
        wrote on last edited by
        #158

        @cpl_ir super weird, looks like the linker cannot find NodeManager's object file. Are you sure all NodeManager's files are within the same directory? NodeManager cannot be installed as a standard Arduino's library but all the files need to be in the same directory of your main sketch. Thanks!

        1 Reply Last reply
        0
        • ArthurDentedA Offline
          ArthurDentedA Offline
          ArthurDented
          wrote on last edited by
          #159

          Hello, I have been experimenting with the door sensor example and have configured to wake up every hour to send a battery voltage (V_VOLTAGE)
          It will also wake whenever the interrupt state on the switch pin changes. I noticed that when the node wakes up with an interrupt it seems to send three events:
          I_POST_SLEEP_NOTIFICATION
          V_TRIPPED (this is the important one)
          I_PRE_SLEEP_NOTIFICATION
          this is all good, however for my application it would be useful if it were to also send a V_VOLTAGE battery measurement along with the V_TRIPPED event.
          I'm not yet completely familiar with how the nodemanager sketch links together, but is it possible for the sensor readings for all sensors to be sent on an interrupt from any other sensor so I can make use of the radio as much as possible?

          U 1 Reply Last reply
          0
          • ArthurDentedA ArthurDented

            Hello, I have been experimenting with the door sensor example and have configured to wake up every hour to send a battery voltage (V_VOLTAGE)
            It will also wake whenever the interrupt state on the switch pin changes. I noticed that when the node wakes up with an interrupt it seems to send three events:
            I_POST_SLEEP_NOTIFICATION
            V_TRIPPED (this is the important one)
            I_PRE_SLEEP_NOTIFICATION
            this is all good, however for my application it would be useful if it were to also send a V_VOLTAGE battery measurement along with the V_TRIPPED event.
            I'm not yet completely familiar with how the nodemanager sketch links together, but is it possible for the sensor readings for all sensors to be sent on an interrupt from any other sensor so I can make use of the radio as much as possible?

            U Offline
            U Offline
            user2684
            Contest Winner
            wrote on last edited by
            #160

            @arthurdented the I_POST_SLEEP_NOTIFICATION and I_PRE_SLEEP_NOTIFICATION are due to smart sleep which is on by default. Regarding the V_VOLTAGE I think what it comes closer to your need would be a SensorBattery configured with a very short reporting interval but regardless, when an interrupt occurs, no sensors other than the one associated with the interrupt would execute their main function. For your specific use case you can try changing or tweaking the condition at this line to make it working in the way you need: https://github.com/mysensors/NodeManager/blob/master/NodeManagerLibrary.ino#L4700

            1 Reply Last reply
            0
            • Felix HaverkampF Offline
              Felix HaverkampF Offline
              Felix Haverkamp
              wrote on last edited by Felix Haverkamp
              #161

              can anyone explain me the signal node? i get this values with setReportIntervalSeconds(1);

              271860 TSF:MSG:SEND,1-1-0-0,s=202,c=1,t=37,pt=5,l=4,sg=0,ft=0,st=OK:4294967260
              272947 TSF:MSG:SEND,1-1-0-0,s=202,c=1,t=37,pt=5,l=4,sg=0,ft=0,st=OK:4294967260
              274033 TSF:MSG:SEND,1-1-0-0,s=202,c=1,t=37,pt=5,l=4,sg=0,ft=0,st=OK:4294967260
              275120 TSF:MSG:SEND,1-1-0-0,s=202,c=1,t=37,pt=5,l=4,sg=0,ft=0,st=OK:4294967260
              276206 TSF:MSG:SEND,1-1-0-0,s=202,c=1,t=37,pt=5,l=4,sg=0,ft=0,st=OK:4294967260
              277293 TSF:MSG:SEND,1-1-0-0,s=202,c=1,t=37,pt=5,l=4,sg=0,ft=0,st=OK:4294967260
              278378 TSF:MSG:SEND,1-1-0-0,s=202,c=1,t=37,pt=5,l=4,sg=0,ft=0,st=OK:4294967260
              279468 TSF:MSG:SEND,1-1-0-0,s=202,c=1,t=37,pt=5,l=4,sg=0,ft=0,st=OK:4294967260
              280554 TSF:MSG:SEND,1-1-0-0,s=202,c=1,t=37,pt=5,l=4,sg=0,ft=0,st=OK:4294967259
              281641 TSF:MSG:SEND,1-1-0-0,s=202,c=1,t=37,pt=5,l=4,sg=0,ft=0,st=OK:4294967259
              282728 TSF:MSG:SEND,1-1-0-0,s=202,c=1,t=37,pt=5,l=4,sg=0,ft=0,st=OK:4294967259
              283812 TSF:MSG:SEND,1-1-0-0,s=202,c=1,t=37,pt=5,l=4,sg=0,ft=0,st=OK:4294967259
              284898 TSF:MSG:SEND,1-1-0-0,s=202,c=1,t=37,pt=5,l=4,sg=0,ft=0,st=OK:4294967260
              
              U 1 Reply Last reply
              0
              • Felix HaverkampF Offline
                Felix HaverkampF Offline
                Felix Haverkamp
                wrote on last edited by
                #162

                is there a possibilty to only send values if the value has changed?

                1 Reply Last reply
                0
                • Felix HaverkampF Felix Haverkamp

                  can anyone explain me the signal node? i get this values with setReportIntervalSeconds(1);

                  271860 TSF:MSG:SEND,1-1-0-0,s=202,c=1,t=37,pt=5,l=4,sg=0,ft=0,st=OK:4294967260
                  272947 TSF:MSG:SEND,1-1-0-0,s=202,c=1,t=37,pt=5,l=4,sg=0,ft=0,st=OK:4294967260
                  274033 TSF:MSG:SEND,1-1-0-0,s=202,c=1,t=37,pt=5,l=4,sg=0,ft=0,st=OK:4294967260
                  275120 TSF:MSG:SEND,1-1-0-0,s=202,c=1,t=37,pt=5,l=4,sg=0,ft=0,st=OK:4294967260
                  276206 TSF:MSG:SEND,1-1-0-0,s=202,c=1,t=37,pt=5,l=4,sg=0,ft=0,st=OK:4294967260
                  277293 TSF:MSG:SEND,1-1-0-0,s=202,c=1,t=37,pt=5,l=4,sg=0,ft=0,st=OK:4294967260
                  278378 TSF:MSG:SEND,1-1-0-0,s=202,c=1,t=37,pt=5,l=4,sg=0,ft=0,st=OK:4294967260
                  279468 TSF:MSG:SEND,1-1-0-0,s=202,c=1,t=37,pt=5,l=4,sg=0,ft=0,st=OK:4294967260
                  280554 TSF:MSG:SEND,1-1-0-0,s=202,c=1,t=37,pt=5,l=4,sg=0,ft=0,st=OK:4294967259
                  281641 TSF:MSG:SEND,1-1-0-0,s=202,c=1,t=37,pt=5,l=4,sg=0,ft=0,st=OK:4294967259
                  282728 TSF:MSG:SEND,1-1-0-0,s=202,c=1,t=37,pt=5,l=4,sg=0,ft=0,st=OK:4294967259
                  283812 TSF:MSG:SEND,1-1-0-0,s=202,c=1,t=37,pt=5,l=4,sg=0,ft=0,st=OK:4294967259
                  284898 TSF:MSG:SEND,1-1-0-0,s=202,c=1,t=37,pt=5,l=4,sg=0,ft=0,st=OK:4294967260
                  
                  U Offline
                  U Offline
                  user2684
                  Contest Winner
                  wrote on last edited by
                  #163

                  @felix-haverkamp the signal node is supposed to send the RSSI when the radio supports it. What you are looking at is a v1.7 bug, fixed in the dev branch of v1.8. If you want an easy fix without the need to upgrade, just remove the uint32_t cast at line 5017 of NodeManagerLibrary.ino (https://github.com/mysensors/NodeManager/blob/master/NodeManagerLibrary.ino#L5017).
                  To send the values only if the value has changed, you need first of all to turn FEATURE_CONDITIONAL_REPORT on, then you can use setValueDelta() and setForceUpdateMinutes() of the Child class to achieve what you are looking for

                  Felix HaverkampF 1 Reply Last reply
                  0
                  • U user2684

                    @felix-haverkamp the signal node is supposed to send the RSSI when the radio supports it. What you are looking at is a v1.7 bug, fixed in the dev branch of v1.8. If you want an easy fix without the need to upgrade, just remove the uint32_t cast at line 5017 of NodeManagerLibrary.ino (https://github.com/mysensors/NodeManager/blob/master/NodeManagerLibrary.ino#L5017).
                    To send the values only if the value has changed, you need first of all to turn FEATURE_CONDITIONAL_REPORT on, then you can use setValueDelta() and setForceUpdateMinutes() of the Child class to achieve what you are looking for

                    Felix HaverkampF Offline
                    Felix HaverkampF Offline
                    Felix Haverkamp
                    wrote on last edited by Felix Haverkamp
                    #164

                    @user2684
                    thx, that is what was what i am looking for.

                    1 Reply Last reply
                    0
                    • Felix HaverkampF Offline
                      Felix HaverkampF Offline
                      Felix Haverkamp
                      wrote on last edited by
                      #165

                      @user2684
                      FEATURE_CONDITIONAL_REPORT & setValueDelta()

                      would be nice for other users to document this function. With this i am able to only send values to the gateway when its changed. Using it for a Light Sensor and dont need the value every 10 seconds and not every 10 Minutes....
                      Just when it changes (1 second) and only when it changes.

                      U 1 Reply Last reply
                      0
                      • Felix HaverkampF Felix Haverkamp

                        @user2684
                        FEATURE_CONDITIONAL_REPORT & setValueDelta()

                        would be nice for other users to document this function. With this i am able to only send values to the gateway when its changed. Using it for a Light Sensor and dont need the value every 10 seconds and not every 10 Minutes....
                        Just when it changes (1 second) and only when it changes.

                        U Offline
                        U Offline
                        user2684
                        Contest Winner
                        wrote on last edited by
                        #166

                        @felix-haverkamp if you set setValueDelta() to e.g. 0.1 or 0.01, then the sensor will not report if the value has not changed, if I have understood correctly your point. setValueDelta() will set the minimum difference (+ or -) that the new value should have in order to be reported. Let me know I've misunderstood something. Thanks

                        1 Reply Last reply
                        0
                        • Felix HaverkampF Offline
                          Felix HaverkampF Offline
                          Felix Haverkamp
                          wrote on last edited by
                          #167

                          @user2684 i just mean, we have to put this is the documentation.

                          currently i have a strange problem:

                          the Motion Sensors doesnt reset. I checked with my old Motion sketch and everything is fine.
                          Only sends the Value "1".

                          11132 TSF:MSG:SEND,1-1-0-0,s=2,c=1,t=16,pt=5,l=4,sg=0,ft=0,st=OK:1
                          16513 TSF:MSG:SEND,1-1-0-0,s=2,c=1,t=16,pt=5,l=4,sg=0,ft=0,st=OK:1
                          26243 TSF:MSG:SEND,1-1-0-0,s=2,c=1,t=16,pt=5,l=4,sg=0,ft=0,st=OK:1

                          U 1 Reply Last reply
                          0
                          • Felix HaverkampF Felix Haverkamp

                            @user2684 i just mean, we have to put this is the documentation.

                            currently i have a strange problem:

                            the Motion Sensors doesnt reset. I checked with my old Motion sketch and everything is fine.
                            Only sends the Value "1".

                            11132 TSF:MSG:SEND,1-1-0-0,s=2,c=1,t=16,pt=5,l=4,sg=0,ft=0,st=OK:1
                            16513 TSF:MSG:SEND,1-1-0-0,s=2,c=1,t=16,pt=5,l=4,sg=0,ft=0,st=OK:1
                            26243 TSF:MSG:SEND,1-1-0-0,s=2,c=1,t=16,pt=5,l=4,sg=0,ft=0,st=OK:1

                            U Offline
                            U Offline
                            user2684
                            Contest Winner
                            wrote on last edited by
                            #168

                            @felix-haverkamp got it, thanks, I've opened this issue https://github.com/mysensors/NodeManager/issues/366.

                            Regarding the sensor motion, weird, by default should attach to CHANGE interrupt so to intercept both. Any chance to share NodeManager's debug log as well? Thanks

                            Felix HaverkampF 1 Reply Last reply
                            0
                            • U user2684

                              @felix-haverkamp got it, thanks, I've opened this issue https://github.com/mysensors/NodeManager/issues/366.

                              Regarding the sensor motion, weird, by default should attach to CHANGE interrupt so to intercept both. Any chance to share NodeManager's debug log as well? Thanks

                              Felix HaverkampF Offline
                              Felix HaverkampF Offline
                              Felix Haverkamp
                              wrote on last edited by
                              #169

                              @user2684
                              i think conditional report is the problem:

                              #define FEATURE_CONDITIONAL_REPORT ON

                              without it works fine.

                              1 Reply Last reply
                              0
                              • U Offline
                                U Offline
                                user2684
                                Contest Winner
                                wrote on last edited by
                                #170

                                Every new version of NodeManager, I try to review and hopefully improve its architecture. This time looked like a simple and quick task but eventually ended up in a complete and deep review of the code. Many many many things have changed with the main objective to better integrate with the MySensors library and simplify the life of users willing to contribute or to add support for new sensors.

                                The new file structure (with a dedicated file for each supported sensor) and the way the package is delivered (as an arduino library now) go into this direction. There are also included a good amount of new features but still in most of the cases, resulting a smaller code.

                                All the details are available at https://github.com/mysensors/NodeManager/pull/391 which will be merged into the development branch shortly.

                                Due to the many changes, if anybody would be willing to give it a try and report any bug, would be really great. Thanks!

                                1 Reply Last reply
                                4
                                • alowhumA Offline
                                  alowhumA Offline
                                  alowhum
                                  Plugin Developer
                                  wrote on last edited by
                                  #171

                                  Just wanted to say that NodeManager is awesome. I can't believe I only now really had a better look at what it is. I always thought it was some kind of software you had to install, and that it was used by professionals to manage complicated sensor nets.

                                  For the last few months I've been thinking "wouldn't it be useful if there was some kind of beginner friendly web interface where you could select which devices you want, and then it creates the code for you". This is so close to that. Thank you for this incredible work!

                                  U 1 Reply Last reply
                                  1
                                  • alowhumA alowhum

                                    Just wanted to say that NodeManager is awesome. I can't believe I only now really had a better look at what it is. I always thought it was some kind of software you had to install, and that it was used by professionals to manage complicated sensor nets.

                                    For the last few months I've been thinking "wouldn't it be useful if there was some kind of beginner friendly web interface where you could select which devices you want, and then it creates the code for you". This is so close to that. Thank you for this incredible work!

                                    U Offline
                                    U Offline
                                    user2684
                                    Contest Winner
                                    wrote on last edited by
                                    #172

                                    @alowhum many thanks for the feedback, really appreciated!

                                    1 Reply Last reply
                                    2
                                    • J Offline
                                      J Offline
                                      Jiri Hron
                                      wrote on last edited by
                                      #173

                                      Is it possible to "force" send SensorDoor value regularly?

                                      I am using magnetic sensor together with interrupt feature but when sensor status is change too fast before main loop is finished, sensor value remains in wrong state until magnetic sensor value is physically changed again.

                                      So I would like to set that SensorDoor value will be set regularly like e.g. temperature sensors values. I tried to add:

                                      door.setReportIntervalMinutes(5);
                                      

                                      But it does not work in this case. Value is not reported based on this interval. Only way how to get SensorDoor value back to right state is physically change its value (open/close magnetic sensors).

                                      Btw Nodemanager is really awsome. Great work!

                                      U 1 Reply Last reply
                                      0
                                      • faustiF Offline
                                        faustiF Offline
                                        fausti
                                        wrote on last edited by fausti
                                        #174

                                        Hi, I need some advice for my following problem..:

                                        Situation: Arduino ist connected to an raspberry gateway with openhab -> works just fine.
                                        To the arduino I have connected a PIR on 3 and a photoresistor (LDR) with an 10k resistor on A0 -> works just fine.
                                        On first boot (after connecting etc.) the arduino sends motion status + LDR value. But after that first msg. only the motion (tripped) is send.
                                        What I want: I want that the arduino sleeps until there is an interrupt comming from the PIR and then sends the motion status+light value (LDR) and then sleeps again 4ever until the next interrupt.
                                        Problem: As I said, it only sends the light value only once.. and then never again. On the arduino debug I can see, that only motion is send:
                                        NodeManager v1.7
                                        LIB V=2.3.0 R=N E=X T=N A=A S=S B=-
                                        LDR I=1 P=16 T=23
                                        MOTION I=2 P=1 T=16
                                        RADIO...OK
                                        PRES I=1 T=16 D=LDR
                                        PRES I=2 T=1 D=MOTION
                                        READY

                                        MY I=5 M=255
                                        INT P=3, V=0
                                        INT P=3 M=1
                                        INT P=2 M=255
                                        MOTION I=2 P=3 V=0
                                        SEND D=0 I=2 C=0 T=16 S= I=0 F=0.00
                                        LDR I=1 V=352 %=34 <-- first an last time LDR sends it's value
                                        SEND D=0 I=1 C=0 T=23 S= I=0 F=0.00
                                        INT P=3, V=1
                                        MOTION I=2 P=3 V=1
                                        SEND D=0 I=2 C=0 T=16 S= I=0 F=0.00
                                        INT P=3, V=0
                                        MOTION I=2 P=3 V=0
                                        SEND D=0 I=2 C=0 T=16 S= I=0 F=0.00
                                        ...
                                        Hope you can help me :grimacing: many thanks in advance :-)

                                        // General settings
                                        #define SKETCH_NAME "Test2"
                                        #define SKETCH_VERSION "1.0"
                                        //#define MY_DEBUG
                                        
                                        // NRF24 radio settings
                                        #define MY_RADIO_NRF24
                                        #define MY_SIGNING_SIMPLE_PASSWD "xxx"
                                        #define MY_ENCRYPTION_SIMPLE_PASSWD "xxx" 
                                        #define MY_RF24_PA_LEVEL RF24_PA_HIGH
                                        #define MY_RF24_CHANNEL (124)
                                        
                                        // Advanced settings
                                        #define MY_BAUD_RATE 9600
                                        //#define MY_SMART_SLEEP_WAIT_DURATION_MS 500
                                        #define MY_SPLASH_SCREEN_DISABLED
                                        
                                        /***********************************
                                         * NodeManager modules for supported sensors
                                         */
                                        #define USE_ANALOG_INPUT
                                        #define USE_INTERRUPT
                                        /***********************************
                                         * NodeManager built-in features
                                         */
                                        
                                        // Enable/disable NodeManager's features
                                        #define FEATURE_DEBUG ON
                                        #define FEATURE_POWER_MANAGER OFF
                                        #define FEATURE_INTERRUPTS ON
                                        #define FEATURE_CONDITIONAL_REPORT OFF
                                        #define FEATURE_EEPROM OFF
                                        #define FEATURE_SLEEP ON
                                        #define FEATURE_RECEIVE OFF
                                        #define FEATURE_TIME OFF
                                        #define FEATURE_RTC OFF
                                        #define FEATURE_SD OFF
                                        #define FEATURE_HOOKING OFF
                                        
                                        /***********************************
                                         * Load NodeManager Library
                                         */
                                        #include "NodeManagerLibrary.h"
                                        NodeManager node;
                                        /***********************************
                                         * Add your sensors below
                                         */
                                        // Attached sensors
                                        SensorLDR ldr(node,A0);
                                        //SensorInterrupt interrupt(node,3);
                                        SensorMotion motion(node,3);
                                        /***********************************
                                         * Main Sketch
                                         */
                                        
                                        // before
                                        void before() {
                                          // setup the serial port baud rate
                                          Serial.begin(MY_BAUD_RATE);
                                          /*
                                          * Configure your sensors below
                                          */
                                          node.setReportIntervalSeconds(10);
                                          node.setSleepSeconds(60);
                                          /*
                                          * Configure your sensors above
                                          */
                                          node.before();
                                        }
                                        
                                        // presentation
                                        void presentation() {
                                          // call NodeManager presentation routine
                                          node.presentation();
                                        }
                                        
                                        // setup
                                        void setup() {
                                          // call NodeManager setup routine
                                          node.setup();
                                        }
                                        
                                        // loop
                                        void loop() {
                                          // call NodeManager loop routine
                                          node.loop();
                                        }
                                        
                                        #if FEATURE_RECEIVE == ON
                                        // receive
                                        void receive(const MyMessage &message) {
                                          // call NodeManager receive routine
                                          node.receive(message);
                                        }
                                        #endif
                                        
                                        #if FEATURE_TIME == ON
                                        // receiveTime
                                        void receiveTime(unsigned long ts) {
                                          // call NodeManager receiveTime routine
                                          node.receiveTime(ts);
                                        }
                                        #endif
                                        
                                        faustiF 1 Reply Last reply
                                        0
                                        • faustiF fausti

                                          Hi, I need some advice for my following problem..:

                                          Situation: Arduino ist connected to an raspberry gateway with openhab -> works just fine.
                                          To the arduino I have connected a PIR on 3 and a photoresistor (LDR) with an 10k resistor on A0 -> works just fine.
                                          On first boot (after connecting etc.) the arduino sends motion status + LDR value. But after that first msg. only the motion (tripped) is send.
                                          What I want: I want that the arduino sleeps until there is an interrupt comming from the PIR and then sends the motion status+light value (LDR) and then sleeps again 4ever until the next interrupt.
                                          Problem: As I said, it only sends the light value only once.. and then never again. On the arduino debug I can see, that only motion is send:
                                          NodeManager v1.7
                                          LIB V=2.3.0 R=N E=X T=N A=A S=S B=-
                                          LDR I=1 P=16 T=23
                                          MOTION I=2 P=1 T=16
                                          RADIO...OK
                                          PRES I=1 T=16 D=LDR
                                          PRES I=2 T=1 D=MOTION
                                          READY

                                          MY I=5 M=255
                                          INT P=3, V=0
                                          INT P=3 M=1
                                          INT P=2 M=255
                                          MOTION I=2 P=3 V=0
                                          SEND D=0 I=2 C=0 T=16 S= I=0 F=0.00
                                          LDR I=1 V=352 %=34 <-- first an last time LDR sends it's value
                                          SEND D=0 I=1 C=0 T=23 S= I=0 F=0.00
                                          INT P=3, V=1
                                          MOTION I=2 P=3 V=1
                                          SEND D=0 I=2 C=0 T=16 S= I=0 F=0.00
                                          INT P=3, V=0
                                          MOTION I=2 P=3 V=0
                                          SEND D=0 I=2 C=0 T=16 S= I=0 F=0.00
                                          ...
                                          Hope you can help me :grimacing: many thanks in advance :-)

                                          // General settings
                                          #define SKETCH_NAME "Test2"
                                          #define SKETCH_VERSION "1.0"
                                          //#define MY_DEBUG
                                          
                                          // NRF24 radio settings
                                          #define MY_RADIO_NRF24
                                          #define MY_SIGNING_SIMPLE_PASSWD "xxx"
                                          #define MY_ENCRYPTION_SIMPLE_PASSWD "xxx" 
                                          #define MY_RF24_PA_LEVEL RF24_PA_HIGH
                                          #define MY_RF24_CHANNEL (124)
                                          
                                          // Advanced settings
                                          #define MY_BAUD_RATE 9600
                                          //#define MY_SMART_SLEEP_WAIT_DURATION_MS 500
                                          #define MY_SPLASH_SCREEN_DISABLED
                                          
                                          /***********************************
                                           * NodeManager modules for supported sensors
                                           */
                                          #define USE_ANALOG_INPUT
                                          #define USE_INTERRUPT
                                          /***********************************
                                           * NodeManager built-in features
                                           */
                                          
                                          // Enable/disable NodeManager's features
                                          #define FEATURE_DEBUG ON
                                          #define FEATURE_POWER_MANAGER OFF
                                          #define FEATURE_INTERRUPTS ON
                                          #define FEATURE_CONDITIONAL_REPORT OFF
                                          #define FEATURE_EEPROM OFF
                                          #define FEATURE_SLEEP ON
                                          #define FEATURE_RECEIVE OFF
                                          #define FEATURE_TIME OFF
                                          #define FEATURE_RTC OFF
                                          #define FEATURE_SD OFF
                                          #define FEATURE_HOOKING OFF
                                          
                                          /***********************************
                                           * Load NodeManager Library
                                           */
                                          #include "NodeManagerLibrary.h"
                                          NodeManager node;
                                          /***********************************
                                           * Add your sensors below
                                           */
                                          // Attached sensors
                                          SensorLDR ldr(node,A0);
                                          //SensorInterrupt interrupt(node,3);
                                          SensorMotion motion(node,3);
                                          /***********************************
                                           * Main Sketch
                                           */
                                          
                                          // before
                                          void before() {
                                            // setup the serial port baud rate
                                            Serial.begin(MY_BAUD_RATE);
                                            /*
                                            * Configure your sensors below
                                            */
                                            node.setReportIntervalSeconds(10);
                                            node.setSleepSeconds(60);
                                            /*
                                            * Configure your sensors above
                                            */
                                            node.before();
                                          }
                                          
                                          // presentation
                                          void presentation() {
                                            // call NodeManager presentation routine
                                            node.presentation();
                                          }
                                          
                                          // setup
                                          void setup() {
                                            // call NodeManager setup routine
                                            node.setup();
                                          }
                                          
                                          // loop
                                          void loop() {
                                            // call NodeManager loop routine
                                            node.loop();
                                          }
                                          
                                          #if FEATURE_RECEIVE == ON
                                          // receive
                                          void receive(const MyMessage &message) {
                                            // call NodeManager receive routine
                                            node.receive(message);
                                          }
                                          #endif
                                          
                                          #if FEATURE_TIME == ON
                                          // receiveTime
                                          void receiveTime(unsigned long ts) {
                                            // call NodeManager receiveTime routine
                                            node.receiveTime(ts);
                                          }
                                          #endif
                                          
                                          faustiF Offline
                                          faustiF Offline
                                          fausti
                                          wrote on last edited by fausti
                                          #175

                                          @fausti
                                          ok, I have solved it myself - the PIR made all that trouble.
                                          I did connect the PIR on 3.3V (similar to https://forum.mysensors.org/uploads/upload-4bdca27e-3c36-4c68-9e54-947b9f4717b4.jpg).

                                          Problem was, that when arduino wakes up the radio, the power drop would kinda restart the PIR, which causes an interrupt. Think a similar problem was discussed here:
                                          https://forum.mysensors.org/topic/6511/hc-sr501-3-3v-randomly-sends-tripped-when-radio-is-on

                                          Anyways - you surly would have helped, if i would not have found it. Great forum! :-)

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


                                          19

                                          Online

                                          11.7k

                                          Users

                                          11.2k

                                          Topics

                                          113.0k

                                          Posts


                                          Copyright 2019 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