Skip to content
  • 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
  • Getting Started
  • Controller
  • Build
  • Hardware
  • Download/API
  • Forum
  • Store

💬 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.
  • S strangeoptics

    Hi, I would like to have smartSleep for my nodes. I read that NodeManager can do that. But I couldn't find an explanation how it is doing it. I use OpenHAB as the controller and MQTT to communicate to the MySensors-Gateway. Is smartSleep working for this scenario? Did you extend the Gateway?

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

    @strangeoptics NodeManager does use smart sleep by default. The way it works (with or without node manager) is pretty simple: when the node tells the gw/controller is about to go to sleep, it actually wait (by default 500ms I think) for new messages before powering off the radio and going to sleep. Useful if you have a sleeping node and want to communicate with it. Im not familiar with those controllers but I'm sure others are but generally speaking the way it works is the controller usually queue your messages and when the node checks in release the queue.

    S 1 Reply Last reply
    0
    • U user2684

      @strangeoptics NodeManager does use smart sleep by default. The way it works (with or without node manager) is pretty simple: when the node tells the gw/controller is about to go to sleep, it actually wait (by default 500ms I think) for new messages before powering off the radio and going to sleep. Useful if you have a sleeping node and want to communicate with it. Im not familiar with those controllers but I'm sure others are but generally speaking the way it works is the controller usually queue your messages and when the node checks in release the queue.

      S Offline
      S Offline
      strangeoptics
      wrote on last edited by
      #64

      @user2684 If I understand it correct, NodeManager is basically using the smartSleep method of the MySensors library and extended it with a default delay of 500ms after the heart beat message.
      The logic for queuing the messages inbetween the wakeup periods is not implementet from NodeManager and has to come from the controller. In my case OpenHAB hasn't got the logic and smartSleep wouldn't work :(

      U 1 Reply Last reply
      0
      • S strangeoptics

        @user2684 If I understand it correct, NodeManager is basically using the smartSleep method of the MySensors library and extended it with a default delay of 500ms after the heart beat message.
        The logic for queuing the messages inbetween the wakeup periods is not implementet from NodeManager and has to come from the controller. In my case OpenHAB hasn't got the logic and smartSleep wouldn't work :(

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

        @strangeoptics not really, node manager is not extending smart sleep at all, smart sleep from the core MySensors library by itself is implemented with this delay :)

        S 1 Reply Last reply
        0
        • U user2684

          @strangeoptics not really, node manager is not extending smart sleep at all, smart sleep from the core MySensors library by itself is implemented with this delay :)

          S Offline
          S Offline
          strangeoptics
          wrote on last edited by
          #66

          @user2684 so which controler are you using?

          U 1 Reply Last reply
          0
          • S strangeoptics

            @user2684 so which controler are you using?

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

            https://www.mysensors.org/controller/myhouse but since I wrote it, my opinion would be biased :P

            1 Reply Last reply
            1
            • stefaanvS Offline
              stefaanvS Offline
              stefaanv
              wrote on last edited by
              #68

              The configuration service is a good ideaal.
              Even better would be if it would allow setting and reading user parameters.

              1 Reply Last reply
              0
              • mar.conteM Offline
                mar.conteM Offline
                mar.conte
                wrote on last edited by
                #69

                Hi
                I have a led ir emitter can i send to my air contiotioner a code like x0284828 by digital output in nodemanager(with irremote library is simple)

                M.C.

                U 1 Reply Last reply
                0
                • mar.conteM mar.conte

                  Hi
                  I have a led ir emitter can i send to my air contiotioner a code like x0284828 by digital output in nodemanager(with irremote library is simple)

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

                  @mar.conte mmm not sure I got the use case. I think we need some sort of "IR" specific output. Btw if you prefer, feel free to open a new thread on https://forum.mysensors.org/category/43/nodemanager

                  1 Reply Last reply
                  0
                  • D Dencan

                    Hi, nice work!
                    I have changed the code for REBOOT so there is no need for a reboot-pin.
                    like this...

                    else if (strcmp(message, "REBOOT") == 0) {
                    #if DEBUG == 1
                    Serial.println(F("REBOOT"));
                    #endif
                    // Software reboot with watchdog timer
                    // Enter Watchdog Configuration mode:
                    WDTCSR |= (1<<WDCE) | (1<<WDE);
                    // Reset enable
                    WDTCSR= (1<<WDE);
                    // Infinite loop until watchdog reset after 16 ms
                    while(true){}
                    }

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

                    Hi @Dencan @core_c I'm having trouble with both the solutions you recommended. When the reboot code is triggered, I have my pro mini 3.3v board freezing with the power led blinking continuously (https://github.com/mysensors/NodeManager/issues/133). Do you guys know what the issue could be? Thanks!

                    D 1 Reply Last reply
                    0
                    • U user2684

                      Hi @Dencan @core_c I'm having trouble with both the solutions you recommended. When the reboot code is triggered, I have my pro mini 3.3v board freezing with the power led blinking continuously (https://github.com/mysensors/NodeManager/issues/133). Do you guys know what the issue could be? Thanks!

                      D Offline
                      D Offline
                      Dencan
                      wrote on last edited by
                      #72

                      @user2684 It appears that this problem is caused by a bug in bootloaders used in some Arduino boards.

                      The solution suggested is to flash optiboot bootloader to the Arduino Pro Mini. Or not using a bootloader.

                      I use mostly barebone atmega328's with optiboot bootloader, working perfectly with reboot function, so I haven't been aware of the problem until now when I used a pro mini.

                      Please read this article which explains the cause of the problem and suggested fix.
                      https://andreasrohner.at/posts/Electronics/How-to-make-the-Watchdog-Timer-work-on-an-Arduino-Pro-Mini-by-replacing-the-bootloader/

                      I will try it on a pro mini when I have time.

                      U 1 Reply Last reply
                      0
                      • D Dencan

                        @user2684 It appears that this problem is caused by a bug in bootloaders used in some Arduino boards.

                        The solution suggested is to flash optiboot bootloader to the Arduino Pro Mini. Or not using a bootloader.

                        I use mostly barebone atmega328's with optiboot bootloader, working perfectly with reboot function, so I haven't been aware of the problem until now when I used a pro mini.

                        Please read this article which explains the cause of the problem and suggested fix.
                        https://andreasrohner.at/posts/Electronics/How-to-make-the-Watchdog-Timer-work-on-an-Arduino-Pro-Mini-by-replacing-the-bootloader/

                        I will try it on a pro mini when I have time.

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

                        @Dencan thanks, very good information. Based on what you are saying, I'd probably re-introduce the reboot pin as a backup solution just in case somebody doesn't want or can move away from the default bootloader. In this way both the approaches will be available. Thanks!

                        1 Reply Last reply
                        0
                        • ronnyandreR Offline
                          ronnyandreR Offline
                          ronnyandre
                          wrote on last edited by
                          #74

                          I have a hard time figuring out one simple thing... Is the NodeManager code supposed to be on the sensors? Or is it supposed to be on the Gateway? Or both??

                          Newbie with RPi and Domoticz, trying to automate my home.

                          Sergio RiusS 1 Reply Last reply
                          0
                          • ronnyandreR ronnyandre

                            I have a hard time figuring out one simple thing... Is the NodeManager code supposed to be on the sensors? Or is it supposed to be on the Gateway? Or both??

                            Sergio RiusS Offline
                            Sergio RiusS Offline
                            Sergio Rius
                            wrote on last edited by
                            #75

                            @ronnyandre With NodeManager you can build sensors but also configure a gateway. :+1:

                            ronnyandreR 1 Reply Last reply
                            0
                            • Sergio RiusS Sergio Rius

                              @ronnyandre With NodeManager you can build sensors but also configure a gateway. :+1:

                              ronnyandreR Offline
                              ronnyandreR Offline
                              ronnyandre
                              wrote on last edited by
                              #76

                              @Sergio-Rius I think I understood it correctly. Code goes on the sensors, not on the gateway itself? That means, the MySensors Serial Gateway I use is only a carrier of the messages that NodeManager receives on the sensors I implement the code?

                              Newbie with RPi and Domoticz, trying to automate my home.

                              Sergio RiusS 1 Reply Last reply
                              0
                              • U user2684

                                @Ivan-Z if you mean an example with DHT22, you need first of all to enable the DHT module in config.h with:

                                #define MODULE_DHT 1
                                

                                Then just register the sensor in before() with:

                                nodeManager.registerSensor(SENSOR_DHT22,6);
                                

                                Where 6 is the pin where the sensor is attached to. NodeManager will then create automatically two child ids, one for temperature and the other for humidity.
                                As written in the documentation you need the DHT library from https://github.com/adafruit/DHT-sensor-library (or install it by using the arduino IDE). For some unknown (to me) reasons I had issues in using the library from the mysensors example.

                                What do you mean by optimization flag?
                                As for avoid sending the same value, this is already available, have a look at setTackLastValue() from the documentation. When set to true, the value will not be send if the same as the previous (default is of course false). I also implemented setForceUpdate(), to force to send an update after the configured number of cycles, as many examples here are using this approach.

                                D Offline
                                D Offline
                                dakipro
                                wrote on last edited by
                                #77

                                @user2684 Hi, i am trying to get started with NodeManager, and I have a question about dht configuration?
                                I would like to set it to not update values if temperature is not changed, something like ((SensorLatchingRelay*)nodeManager.getSensor(1))->setTackLastValue(true);
                                But how do I select both sensors, are they numbers 1 and 2 (both temp and humidity)?
                                I would also like to add these settings to them.
                                ((SensorLatchingRelay*)nodeManager.getSensor(1))->setForceUpdate(4);
                                ((SensorLatchingRelay*)nodeManager.getSensor(1))->setFloatPrecision(1);

                                Thanks!

                                C: OpenHAB2 with node-red on linux laptop
                                GW: Arduino Nano - W5100 Ethernet, Nrf24l01+ 2,4Ghz mqtt
                                GW: Arduino Mega, RFLink 433Mhz

                                Sergio RiusS U 2 Replies Last reply
                                0
                                • ronnyandreR ronnyandre

                                  @Sergio-Rius I think I understood it correctly. Code goes on the sensors, not on the gateway itself? That means, the MySensors Serial Gateway I use is only a carrier of the messages that NodeManager receives on the sensors I implement the code?

                                  Sergio RiusS Offline
                                  Sergio RiusS Offline
                                  Sergio Rius
                                  wrote on last edited by
                                  #78

                                  @ronnyandre NodeManager is a code wrapper. It's a collection of libraries, that has been join with a configuration script that automatically picks and does what is needed for your like.
                                  You can make a common temperature sensor, but if you look at the documentation and the NodeManager.h code or the ino template itself, you have options for gateway configuration.
                                  So you should be able to configure a gateway sketch and burn into your hardware.

                                  I hope this gives some light before the dinner ;)

                                  ronnyandreR U 2 Replies Last reply
                                  0
                                  • D dakipro

                                    @user2684 Hi, i am trying to get started with NodeManager, and I have a question about dht configuration?
                                    I would like to set it to not update values if temperature is not changed, something like ((SensorLatchingRelay*)nodeManager.getSensor(1))->setTackLastValue(true);
                                    But how do I select both sensors, are they numbers 1 and 2 (both temp and humidity)?
                                    I would also like to add these settings to them.
                                    ((SensorLatchingRelay*)nodeManager.getSensor(1))->setForceUpdate(4);
                                    ((SensorLatchingRelay*)nodeManager.getSensor(1))->setFloatPrecision(1);

                                    Thanks!

                                    Sergio RiusS Offline
                                    Sergio RiusS Offline
                                    Sergio Rius
                                    wrote on last edited by Sergio Rius
                                    #79

                                    @dakipro said in 💬 NodeManager:

                                    ((SensorLatchingRelay*)nodeManager.getSensor(1))->setForceUpdate(4);
                                    ((SensorLatchingRelay*)nodeManager.getSensor(1))->setFloatPrecision(1);

                                    SensorLatchingRelay is wrong here.
                                    Try:

                                      int sensorDHT_Id = nodeManager.registerSensor(SENSOR_DHT22, PIN_DHT);
                                      SensorDHT* sensorDHT = (SensorDHT*)nodeManager.getSensor(sensorDHT_Id);
                                      sensorDHT->setSamples(5);
                                      sensorDHT->setSamplesInterval(2001);
                                      sensorDHT->setTackLastValue(true);
                                      sensorDHT->setForceUpdate(3);
                                    

                                    Those options refer to the whole device, should be applied also to humidity. There was a bug on this but I think it was already corrected. If not, try with development version.

                                    1 Reply Last reply
                                    0
                                    • D Offline
                                      D Offline
                                      dakipro
                                      wrote on last edited by
                                      #80

                                      Thanks, right after posting the question, I have found a example on the topic itself (search function on the forum does not search current topic anymore, I had to scroll down to be able to "find in page").
                                      I am now using this
                                      int sensorDHT_Id = nodeManager.registerSensor(SENSOR_DHT22,4);
                                      SensorDHT* sensorDHT = (SensorDHT*)nodeManager.getSensor(sensorDHT_Id);

                                      Will see how it goes :)

                                      C: OpenHAB2 with node-red on linux laptop
                                      GW: Arduino Nano - W5100 Ethernet, Nrf24l01+ 2,4Ghz mqtt
                                      GW: Arduino Mega, RFLink 433Mhz

                                      1 Reply Last reply
                                      0
                                      • Sergio RiusS Sergio Rius

                                        @ronnyandre NodeManager is a code wrapper. It's a collection of libraries, that has been join with a configuration script that automatically picks and does what is needed for your like.
                                        You can make a common temperature sensor, but if you look at the documentation and the NodeManager.h code or the ino template itself, you have options for gateway configuration.
                                        So you should be able to configure a gateway sketch and burn into your hardware.

                                        I hope this gives some light before the dinner ;)

                                        ronnyandreR Offline
                                        ronnyandreR Offline
                                        ronnyandre
                                        wrote on last edited by
                                        #81

                                        @Sergio-Rius Thanks man! I will definitely take a closer look. I just one silly last question....

                                        Trying to use a simple DS18B20 temperature sensor, and I get the following error:

                                        error: 'SENSOR_DS18B20' was not declared in this scope
                                        nodeManager.registerSensor(SENSOR_DS18B20,3);

                                        Seems like it doesn't like me declaring it. I have installed Dallas Temperature and One Wire through Arduino libraries.

                                        Newbie with RPi and Domoticz, trying to automate my home.

                                        U 1 Reply Last reply
                                        0
                                        • M Offline
                                          M Offline
                                          mickecarlsson
                                          wrote on last edited by
                                          #82

                                          @ronnyandre you need to uninstall those libraries and install those mentioned in the heading: Installing the dependencies: NodeManager

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


                                          11

                                          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
                                          • OpenHardware.io
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular