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.
  • 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
    • J Jiri Hron

      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 Offline
      U Offline
      user2684
      Contest Winner
      wrote on last edited by
      #176

      @jiri-hron I think you can achieve what you need by using FEATURE_TIME. In this way when woken up, NodeManager will go back to sleep only for the remainder time left. Not ideal but I couldn't find a better way to understand for how long the node has been sleeping before the interrupt.

      1 Reply Last reply
      0
      • I Offline
        I Offline
        iteafreely
        wrote on last edited by
        #177

        It looks like there is a limit of 1 type of each sensor. Is there a way to modify this?

        My use-case is a french sliding glass door. I would like to use a single node with 2 magnetic sensors (one on each end of the node) with the node mounted in the middle of the door, so that if either side is moved the interrupt is triggered.

        U zboblamontZ 2 Replies Last reply
        0
        • I iteafreely

          It looks like there is a limit of 1 type of each sensor. Is there a way to modify this?

          My use-case is a french sliding glass door. I would like to use a single node with 2 magnetic sensors (one on each end of the node) with the node mounted in the middle of the door, so that if either side is moved the interrupt is triggered.

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

          @iteafreely your understanding is correct. I see two options here: you can either create a new custom sensor inheriting from SensorDoor and adding an additional child and the extra logic you require or create two instances of SensorDoor and playing with hooking functions to make one checking on the other. In this latter case you probably need some additional variables to keep track of the status.

          1 Reply Last reply
          0
          • R Offline
            R Offline
            reinhold
            Hardware Contributor
            wrote on last edited by reinhold
            #179

            @iteafreely I don't think there is a limit of one sensor per type, not even for interrupts like door sensors. You just need to make sure you are using different pins and different child ids for the two magnetic sensors. I'm using 8 analog sensors (MQ-... gas sensors) on eight different pins on the same node and it works just fine.

            Of course, if you need some interdependence on what the two magnetic sensors report, then you must follow @user2684's suggestion of creating a custom sensor (a C++ class derived from an existing sensor class).
            But if you simply want two independent magnetic sensors (for each of the ends of your sliding door), then you can simply create two instances of SensorDoor on two different pins (here pins 3 and 4) and different hardcoded child_id (1 and 2 in this case):

            SensorDoor doorLeft(node,3,1);
            SensorDoor doorRight(node, 4,2);
            

            Unfortunately, both of them will report to the gateway with name "DOOR" (and there's no way to change it without subclassing SensorDoor), but they will have a different child_id 1 and 2 to distinguish the two values sent by the node.

            You can then use your smart home controller to handle the two door sensors like one.

            U 1 Reply Last reply
            0
            • I iteafreely

              It looks like there is a limit of 1 type of each sensor. Is there a way to modify this?

              My use-case is a french sliding glass door. I would like to use a single node with 2 magnetic sensors (one on each end of the node) with the node mounted in the middle of the door, so that if either side is moved the interrupt is triggered.

              zboblamontZ Offline
              zboblamontZ Offline
              zboblamont
              wrote on last edited by
              #180

              @iteafreely Not sure of software issues as I don't use NodeManager, but your use-case indicates you do not need to know which door is opened, only that one or both is/are.
              If by magnetic sensor you mean magnet/reed, would a single reed where both doors meet, or two reeds (one on each door end) wired in parallel, to a single interrupt pin not provide this?

              1 Reply Last reply
              0
              • R reinhold

                @iteafreely I don't think there is a limit of one sensor per type, not even for interrupts like door sensors. You just need to make sure you are using different pins and different child ids for the two magnetic sensors. I'm using 8 analog sensors (MQ-... gas sensors) on eight different pins on the same node and it works just fine.

                Of course, if you need some interdependence on what the two magnetic sensors report, then you must follow @user2684's suggestion of creating a custom sensor (a C++ class derived from an existing sensor class).
                But if you simply want two independent magnetic sensors (for each of the ends of your sliding door), then you can simply create two instances of SensorDoor on two different pins (here pins 3 and 4) and different hardcoded child_id (1 and 2 in this case):

                SensorDoor doorLeft(node,3,1);
                SensorDoor doorRight(node, 4,2);
                

                Unfortunately, both of them will report to the gateway with name "DOOR" (and there's no way to change it without subclassing SensorDoor), but they will have a different child_id 1 and 2 to distinguish the two values sent by the node.

                You can then use your smart home controller to handle the two door sensors like one.

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

                @reinhold just for completeness, that "DOOR" can be customized too by calling setDescription() of the (only) child of the SensorDoor instance. Thanks!

                1 Reply Last reply
                0
                • R Offline
                  R Offline
                  reinhold
                  Hardware Contributor
                  wrote on last edited by
                  #182

                  @user2684 Right, thanks for pointing this out. I mixed up the child name that was sent to the controller (which can be changed by e.g.

                  void before() {
                   ...
                    doorLeft.children.get(1)->setDescription("Door Left");
                    doorRight.children.get(1)->setDescription("Door Right");
                    node.before();
                  }
                  

                  ) and the sensor's _name field, which is printed to the debug output. That "DOOR" debug output cannot be changed without subclassing. But as this is just debug output, it's just a minor nuissance.

                  U 1 Reply Last reply
                  0
                  • R reinhold

                    @user2684 Right, thanks for pointing this out. I mixed up the child name that was sent to the controller (which can be changed by e.g.

                    void before() {
                     ...
                      doorLeft.children.get(1)->setDescription("Door Left");
                      doorRight.children.get(1)->setDescription("Door Right");
                      node.before();
                    }
                    

                    ) and the sensor's _name field, which is printed to the debug output. That "DOOR" debug output cannot be changed without subclassing. But as this is just debug output, it's just a minor nuissance.

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

                    @reinhold oh you're right I didn't even noticed that DOOR would show up in the debug output, thanks. Anyway with v1.8-dev this should have gone since debug output has been completely re-worked (and made compatible with https://www.mysensors.org/build/parser). Thanks

                    1 Reply Last reply
                    0
                    • M Offline
                      M Offline
                      MHofer
                      wrote on last edited by
                      #184

                      hello, I wanted to use the function for FEATURE_CONDITIONAL_REPORT for an LDR sensor but except a value when starting the arduino, no more values are transferred, must be configured for the function specifically something? Node manager 1.8dev

                      U 1 Reply Last reply
                      0
                      • M MHofer

                        hello, I wanted to use the function for FEATURE_CONDITIONAL_REPORT for an LDR sensor but except a value when starting the arduino, no more values are transferred, must be configured for the function specifically something? Node manager 1.8dev

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

                        @mhofer a few issues came out with conditional reporting during some recent tests, https://github.com/mysensors/NodeManager/pull/430 just merged into development should have solved them. Could you please give it a try? Thanks!

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

                          Hello all, NodeManager v1.8 is almost ready and likewise with the previous releases I like to give brave users a few weeks to test it out before actually releasing it. If you are one of those, download it from https://github.com/mysensors/NodeManager/tree/development; for a full list of changes, have a look at https://github.com/mysensors/NodeManager/projects/2.

                          Of course feel free to open a ticket on Github for any issue you could come across. Thanks!

                          1 Reply Last reply
                          0
                          • M Offline
                            M Offline
                            maddinthebrain
                            wrote on last edited by maddinthebrain
                            #187

                            Re: 💬 NodeManager

                            Hi @user2684,
                            Hi all,

                            First a great compliment for this work! This should make things just easy, but...
                            It doesn't work for me. I have Ethernet Gateway and a 1wire Tempsensor node. Both flashed with the sketches from tutorials found on the mysensors.org website. Those are working without any problem.

                            Now I have Tsl2561 Lux sensor. This is supported by nodemanager. Just downloaded the latest dev version uncommented two lines as expected, but it the node won't appear.

                            The sketch looks as followed

                            /*
                            * The MySensors Arduino library handles the wireless radio link and protocol
                            * between your home built sensors/actuators and HA controller of choice.
                            * The sensors forms a self healing radio network with optional repeaters. Each
                            * repeater and gateway builds a routing tables in EEPROM which keeps track of the
                            * network topology allowing messages to be routed to nodes.
                            *
                            * Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
                            * Copyright (C) 2013-2017 Sensnology AB
                            * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
                            *
                            * Documentation: http://www.mysensors.org
                            * Support Forum: http://forum.mysensors.org
                            *
                            * This program is free software; you can redistribute it and/or
                            * modify it under the terms of the GNU General Public License
                            * version 2 as published by the Free Software Foundation.
                            */
                            
                            /**************************
                            Template
                            
                            This sketch can be used as a template since containing the most relevant MySensors library configuration settings, 
                            NodeManager's settings, all its the supported sensors commented out and a sketch structure fully functional to operate with
                            NodeManager. Just uncomment the settings you need and the sensors you want to add and configure the sensors in before()
                            */
                            
                            /**********************************
                             * MySensors node configuration
                             */
                            
                            // General settings
                            #define SKETCH_NAME "NodeManager"
                            #define SKETCH_VERSION "1.0"
                            //#define MY_DEBUG
                            //#define MY_NODE_ID 99
                            
                            // NRF24 radio settings
                            #define MY_RADIO_NRF24
                            //#define MY_RF24_ENABLE_ENCRYPTION
                            //#define MY_RF24_CHANNEL 125
                            //#define MY_RF24_PA_LEVEL RF24_PA_HIGH
                            //#define MY_DEBUG_VERBOSE_RF24
                            //#define MY_RF24_DATARATE RF24_250KBPS
                            
                            // RFM69 radio settings
                            //#define MY_RADIO_RFM69
                            //#define MY_RFM69_FREQUENCY RFM69_433MHZ
                            //#define MY_IS_RFM69HW
                            //#define MY_RFM69_NEW_DRIVER
                            //#define MY_RFM69_ENABLE_ENCRYPTION
                            //#define MY_RFM69_NETWORKID 100
                            //#define MY_DEBUG_VERBOSE_RFM69
                            //#define MY_RF69_IRQ_PIN D1
                            //#define MY_RF69_IRQ_NUM MY_RF69_IRQ_PIN
                            //#define MY_RF69_SPI_CS D2
                            //#define MY_RFM69_ATC_MODE_DISABLED
                            
                            // RFM95 radio settings
                            //#define MY_RADIO_RFM95
                            //#define MY_RFM95_FREQUENCY (RFM95_868MHZ)
                            //#define MY_DEBUG_VERBOSE_RFM95
                            //#define MY_RFM95_MAX_POWER_LEVEL_DBM (20)
                            //#define MY_RFM95_IRQ_PIN D1
                            //#define MY_RFM95_IRQ_NUM MY_RFM95_IRQ_PIN
                            //#define MY_RFM95_CS_PIN D8
                            
                            // RS485 serial transport settings
                            //#define MY_RS485
                            //#define MY_RS485_BAUD_RATE 9600
                            //#define MY_RS485_DE_PIN 2
                            //#define MY_RS485_MAX_MESSAGE_LENGTH 40
                            //#define MY_RS485_HWSERIAL Serial1
                            
                            // Message signing settings
                            //#define MY_SIGNING_SOFT
                            //#define MY_SIGNING_SOFT_RANDOMSEED_PIN 7
                            //#define MY_SIGNING_REQUEST_SIGNATURES
                            //#define MY_SIGNING_ATSHA204
                            //#define MY_SIGNING_ATSHA204_PIN 4
                            //#define MY_SIGNING_REQUEST_SIGNATURES
                            
                            // OTA Firmware update settings
                            //#define MY_OTA_FIRMWARE_FEATURE
                            //#define OTA_WAIT_PERIOD 300
                            //#define FIRMWARE_MAX_REQUESTS 2
                            //#define MY_OTA_RETRY 2
                            
                            // OTA debug output
                            //#define MY_DEBUG_OTA (0)
                            //#define MY_OTA_LOG_SENDER_FEATURE
                            //#define MY_OTA_LOG_RECEIVER_FEATURE
                            //#define MY_DEBUG_OTA_DISABLE_ACK
                            
                            // Advanced settings
                            #define MY_BAUD_RATE 9600
                            //#define MY_SMART_SLEEP_WAIT_DURATION_MS 500
                            #define MY_SPLASH_SCREEN_DISABLED
                            //#define MY_DISABLE_RAM_ROUTING_TABLE_FEATURE
                            //#define MY_SIGNAL_REPORT_ENABLED
                            
                            // Optimizations when running on 2032 Coin Cell. Also set nodeManager.setSleepBetweenSend(500) and run the board at 1Mhz
                            //#define MY_TRANSPORT_UPLINK_CHECK_DISABLED
                            //#define MY_TRANSPORT_WAIT_READY_MS  5000
                            //#define MY_SLEEP_TRANSPORT_RECONNECT_TIMEOUT_MS 2000
                            //#define MY_PARENT_NODE_ID 0
                            //#define MY_PARENT_NODE_IS_STATIC
                            
                            /**********************************
                             * MySensors gateway configuration
                             */
                             
                            // Common gateway settings
                            //#define MY_REPEATER_FEATURE
                            
                            // Serial gateway settings
                            //#define MY_GATEWAY_SERIAL
                            
                            // Ethernet gateway settings
                            //#define MY_GATEWAY_W5100
                            
                            // ESP8266 gateway settings
                            //#define MY_GATEWAY_ESP8266
                            //#define MY_ESP8266_SSID ""
                            //#define MY_ESP8266_PASSWORD ""
                            
                            // Gateway networking settings
                            //#define MY_IP_ADDRESS 192,168,178,87
                            //#define MY_IP_GATEWAY_ADDRESS 192,168,178,1
                            //#define MY_IP_SUBNET_ADDRESS 255,255,255,0
                            //#define MY_PORT 5003
                            //#define MY_GATEWAY_MAX_CLIENTS 2
                            //#define MY_USE_UDP
                            
                            // Gateway MQTT settings
                            //#define MY_GATEWAY_MQTT_CLIENT
                            //#define MY_CONTROLLER_IP_ADDRESS 192, 168, 178, 68
                            //#define MY_PORT 1883
                            //#define MY_MQTT_USER "username"
                            //#define MY_MQTT_PASSWORD "password"
                            //#define MY_MQTT_CLIENT_ID "mysensors-1"
                            //#define MY_MQTT_PUBLISH_TOPIC_PREFIX "mygateway1-out"
                            //#define MY_MQTT_SUBSCRIBE_TOPIC_PREFIX "mygateway1-in"
                            
                            // Gateway inclusion mode
                            //#define MY_INCLUSION_MODE_FEATURE
                            //#define MY_INCLUSION_BUTTON_FEATURE
                            //#define MY_INCLUSION_MODE_DURATION 60
                            //#define MY_DEFAULT_LED_BLINK_PERIOD 300
                            
                            // Gateway Leds settings
                            //#define MY_DEFAULT_ERR_LED_PIN 4
                            //#define MY_DEFAULT_RX_LED_PIN  5
                            //#define MY_DEFAULT_TX_LED_PIN  6
                            
                            /***********************************
                             * NodeManager configuration
                             */
                            
                            #define NODEMANAGER_DEBUG ON
                            #define NODEMANAGER_INTERRUPTS ON
                            #define NODEMANAGER_SLEEP OFF
                            #define NODEMANAGER_RECEIVE OFF
                            #define NODEMANAGER_DEBUG_VERBOSE ON
                            #define NODEMANAGER_POWER_MANAGER OFF
                            #define NODEMANAGER_CONDITIONAL_REPORT OFF
                            #define NODEMANAGER_EEPROM OFF
                            #define NODEMANAGER_TIME OFF
                            #define NODEMANAGER_RTC OFF
                            #define NODEMANAGER_SD OFF
                            #define NODEMANAGER_HOOKING OFF
                            #define NODEMANAGER_OTA_CONFIGURATION OFF
                            #define NODEMANAGER_SERIAL_INPUT OFF
                            
                            // import NodeManager library (a nodeManager object will be then made available)
                            #include <MySensors_NodeManager.h>
                            
                            /***********************************
                             * Add your sensors
                             */
                            
                            //PowerManager power(5,6);
                             
                            //#include <sensors/SensorBattery.h>
                            //SensorBattery battery;
                            
                            //#include <sensors/SensorConfiguration.h>
                            //SensorConfiguration configuration;
                            
                            //#include <sensors/SensorSignal.h>
                            //SensorSignal signal;
                            
                            //#include <sensors/SensorAnalogInput.h>
                            //SensorAnalogInput analog(A0);
                            
                            //#include <sensors/SensorLDR.h>
                            //SensorLDR ldr(A0);
                            
                            //#include <sensors/SensorRain.h>
                            //SensorRain rain(A0);
                            
                            //#include <sensors/SensorSoilMoisture.h>
                            //SensorSoilMoisture soil(A0);
                            
                            //#include <sensors/SensorThermistor.h>
                            //SensorThermistor thermistor(A0);
                            
                            //#include <sensors/SensorML8511.h>
                            //SensorML8511 ml8511(A0);
                            
                            //#include <sensors/SensorACS712.h>
                            //SensorACS712 acs712(A0);
                            
                            //#include <sensors/SensorDigitalInput.h>
                            //SensorDigitalInput digitalIn(6);
                            
                            //#include <sensors/SensorDigitalOutput.h>
                            //SensorDigitalOutput digitalOut(6);
                            
                            //#include <sensors/SensorRelay.h>
                            //SensorRelay relay(6);
                            
                            //#include <sensors/SensorLatchingRelay1Pin.h>
                            //SensorLatchingRelay1Pin latching1pin(6);
                            
                            //#include <sensors/SensorLatchingRelay2Pins.h>
                            //SensorLatchingRelay2Pins latching2pins(6,7);
                            
                            //#include <sensors/SensorDHT11.h>
                            //SensorDHT11 dht11(6);
                            
                            //#include <sensors/SensorDHT22.h>
                            //SensorDHT22 dht22(6);
                            
                            //#include <sensors/SensorSHT21.h>
                            //SensorSHT21 sht21;
                            
                            //#include <sensors/SensorHTU21D.h>
                            //SensorHTU21D htu21;
                            
                            //#include <sensors/SensorInterrupt.h>
                            //SensorInterrupt interrupt(3);
                            
                            //#include <sensors/SensorDoor.h>
                            //SensorDoor door(3);
                            
                            //#include <sensors/SensorMotion.h>
                            //SensorMotion motion(3);
                            
                            //#include <sensors/SensorDs18b20.h>
                            //SensorDs18b20 ds18b20(6);
                            
                            //#include <sensors/SensorBH1750.h>
                            //SensorBH1750 bh1750;
                            
                            //#include <sensors/SensorMLX90614.h>
                            //SensorMLX90614 mlx90614;
                            
                            //#include <sensors/SensorBME280.h>
                            //SensorBME280 bme280;
                            
                            //#include <sensors/SensorBMP085.h>
                            //SensorBMP085 bmp085;
                            
                            //#include <sensors/SensorBMP180.h>
                            //SensorBMP180 bmp180;
                            
                            //#include <sensors/SensorBMP280.h>
                            //SensorBMP280 bmp280;
                            
                            //#include <sensors/SensorSonoff.h>
                            //SensorSonoff sonoff;
                            
                            //#include <sensors/SensorHCSR04.h>
                            //SensorHCSR04 hcsr04(6,7);
                            
                            //#include <sensors/SensorMCP9808.h>
                            //SensorMCP9808 mcp9808;
                            
                            //#include <sensors/SensorMQ.h>
                            //SensorMQ mq(A0);
                            
                            //#include <sensors/SensorMHZ19.h>
                            //SensorMHZ19 mhz19(6,7);
                            
                            //#include <sensors/SensorAM2320.h>
                            //SensorAM2320 am2320;
                            
                            #include <sensors/SensorTSL2561.h>
                            SensorTSL2561 tsl2561;
                            
                            //#include <sensors/SensorPT100.h>
                            //SensorPT100 pt100(6);
                            
                            //#include <sensors/SensorDimmer.h>
                            //SensorDimmer dimmer(3);
                            
                            //#include <sensors/SensorRainGauge.h>
                            //SensorRainGauge rainGauge(3);
                            
                            //#include <sensors/SensorPowerMeter.h>
                            //SensorPowerMeter powerMeter(3);
                            
                            //#include <sensors/SensorWaterMeter.h>
                            //SensorWaterMeter waterMeter(3);
                            
                            //#include <sensors/SensorPlantowerPMS.h>
                            //SensorPlantowerPMS pms(6,7);
                            
                            //#include <sensors/SensorVL53L0X.h>
                            //SensorVL53L0X vl53l0x(3);
                            
                            //#include <sensors/DisplaySSD1306.h>
                            //DisplaySSD1306 ssd1306;
                            
                            //#include <sensors/SensorSHT31.h>
                            //SensorSHT31 sht31;
                            
                            //#include <sensors/SensorSI7021.h>
                            //SensorSI7021 si7021;
                            
                            //#include <sensors/SensorChirp.h>
                            //SensorChirp chirp;
                            
                            //#include <sensors/DisplayHD44780.h>
                            //DisplayHD44780 hd44780;
                            
                            //#include <sensors/SensorTTP.h>
                            //SensorTTP ttp;
                            
                            //#include <sensors/SensorServo.h>
                            //SensorServo servo(6);
                            
                            //#include <sensors/SensorAPDS9960.h>
                            //SensorAPDS9960 apds9960(3);
                            
                            //#include <sensors/SensorNeopixel.h>
                            //SensorNeopixel neopixel(6);
                            
                            //#include <sensors/SensorSDS011.h>
                            //SensorSDS011 sds011(6,7);
                            
                            //#include <sensors/SensorFPM10A.h>
                            //SensorFPM10A fpm10a(4,5);
                            
                            //#include <sensors/SensorPH.h>
                            //SensorPH ph(A0);
                            
                            //#include <sensors/SensorPca9685W.h>
                            //SensorPca9685W pca9685W;
                            
                            //#include <sensors/SensorPca9685Rgb.h>
                            //SensorPca9685Rgb pca9685Rgb;
                            
                            //#include <sensors/SensorPca9685Rgbw.h>
                            //SensorPca9685Rgbw pca9685Rgbw;
                            
                            //#include <sensors/SensorDSM501A.h>
                            //SensorDSM501A DSM501A;
                            
                            //#include <sensors/SensorPN532.h>
                            //SensorPN532 pn532;
                            
                            //#include <sensors/SensorCCS811.h>
                            //SensorCCS811 ccs811;
                            
                            //#include <sensors/SensorGSM.h>
                            //SensorGSM gsm(6,7);
                            
                            /***********************************
                             * Main Sketch
                             */
                            
                            // before
                            void before() {
                            	
                              /***********************************
                               * Configure your sensors
                               */
                               
                              // report measures of every attached sensors every 10 seconds
                              nodeManager.setReportIntervalSeconds(10);
                              // report measures of every attached sensors every 10 minutes
                              //nodeManager.setReportIntervalMinutes(10);
                              // set the node to sleep in 30 seconds cycles
                              //nodeManager.setSleepSeconds(30);
                              // set the node to sleep in 5 minutes cycles
                              //nodeManager.setSleepMinutes(5);
                              // report battery level every 10 minutes
                              //battery.setReportIntervalMinutes(10);
                              // set an offset to -1 to a thermistor sensor
                              //thermistor.setOffset(-1);
                              // change the id of a the first child of a sht21 sensor
                              //sht21.children.get(1)->setChildId(5);
                              // report only when the analog value is above 40%
                              //analog.children.get(1)->setMinThreshold(40);
                              // power all the nodes through dedicated pins
                              //nodeManager.setPowerManager(power);
                            
                              // call NodeManager before routine
                              nodeManager.before();
                            }
                            
                            // presentation
                            void presentation() {
                              // call NodeManager presentation routine
                              nodeManager.presentation();
                            }
                            
                            // setup
                            void setup() {
                              // call NodeManager setup routine
                              nodeManager.setup();
                            }
                            
                            // loop
                            void loop() {
                              // call NodeManager loop routine
                              nodeManager.loop();
                            }
                            
                            #if NODEMANAGER_RECEIVE == ON
                            // receive
                            void receive(const MyMessage &message) {
                              // call NodeManager receive routine
                              nodeManager.receive(message);
                            }
                            #endif
                            
                            #if NODEMANAGER_TIME == ON
                            // receiveTime
                            void receiveTime(unsigned long ts) {
                              // call NodeManager receiveTime routine
                              nodeManager.receiveTime(ts);
                            }
                            #endif
                            

                            Now what's wrong, what's missing?

                            Help is highly appreciated! Thanks

                            Martin

                            U 1 Reply Last reply
                            0
                            • A Offline
                              A Offline
                              alfredosc8
                              wrote on last edited by alfredosc8
                              #188

                              Did same body the port on Intel Edison? Arduino IDE is not finding SerialPort.h ?

                              1 Reply Last reply
                              0
                              • M maddinthebrain

                                Re: 💬 NodeManager

                                Hi @user2684,
                                Hi all,

                                First a great compliment for this work! This should make things just easy, but...
                                It doesn't work for me. I have Ethernet Gateway and a 1wire Tempsensor node. Both flashed with the sketches from tutorials found on the mysensors.org website. Those are working without any problem.

                                Now I have Tsl2561 Lux sensor. This is supported by nodemanager. Just downloaded the latest dev version uncommented two lines as expected, but it the node won't appear.

                                The sketch looks as followed

                                /*
                                * The MySensors Arduino library handles the wireless radio link and protocol
                                * between your home built sensors/actuators and HA controller of choice.
                                * The sensors forms a self healing radio network with optional repeaters. Each
                                * repeater and gateway builds a routing tables in EEPROM which keeps track of the
                                * network topology allowing messages to be routed to nodes.
                                *
                                * Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
                                * Copyright (C) 2013-2017 Sensnology AB
                                * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
                                *
                                * Documentation: http://www.mysensors.org
                                * Support Forum: http://forum.mysensors.org
                                *
                                * This program is free software; you can redistribute it and/or
                                * modify it under the terms of the GNU General Public License
                                * version 2 as published by the Free Software Foundation.
                                */
                                
                                /**************************
                                Template
                                
                                This sketch can be used as a template since containing the most relevant MySensors library configuration settings, 
                                NodeManager's settings, all its the supported sensors commented out and a sketch structure fully functional to operate with
                                NodeManager. Just uncomment the settings you need and the sensors you want to add and configure the sensors in before()
                                */
                                
                                /**********************************
                                 * MySensors node configuration
                                 */
                                
                                // General settings
                                #define SKETCH_NAME "NodeManager"
                                #define SKETCH_VERSION "1.0"
                                //#define MY_DEBUG
                                //#define MY_NODE_ID 99
                                
                                // NRF24 radio settings
                                #define MY_RADIO_NRF24
                                //#define MY_RF24_ENABLE_ENCRYPTION
                                //#define MY_RF24_CHANNEL 125
                                //#define MY_RF24_PA_LEVEL RF24_PA_HIGH
                                //#define MY_DEBUG_VERBOSE_RF24
                                //#define MY_RF24_DATARATE RF24_250KBPS
                                
                                // RFM69 radio settings
                                //#define MY_RADIO_RFM69
                                //#define MY_RFM69_FREQUENCY RFM69_433MHZ
                                //#define MY_IS_RFM69HW
                                //#define MY_RFM69_NEW_DRIVER
                                //#define MY_RFM69_ENABLE_ENCRYPTION
                                //#define MY_RFM69_NETWORKID 100
                                //#define MY_DEBUG_VERBOSE_RFM69
                                //#define MY_RF69_IRQ_PIN D1
                                //#define MY_RF69_IRQ_NUM MY_RF69_IRQ_PIN
                                //#define MY_RF69_SPI_CS D2
                                //#define MY_RFM69_ATC_MODE_DISABLED
                                
                                // RFM95 radio settings
                                //#define MY_RADIO_RFM95
                                //#define MY_RFM95_FREQUENCY (RFM95_868MHZ)
                                //#define MY_DEBUG_VERBOSE_RFM95
                                //#define MY_RFM95_MAX_POWER_LEVEL_DBM (20)
                                //#define MY_RFM95_IRQ_PIN D1
                                //#define MY_RFM95_IRQ_NUM MY_RFM95_IRQ_PIN
                                //#define MY_RFM95_CS_PIN D8
                                
                                // RS485 serial transport settings
                                //#define MY_RS485
                                //#define MY_RS485_BAUD_RATE 9600
                                //#define MY_RS485_DE_PIN 2
                                //#define MY_RS485_MAX_MESSAGE_LENGTH 40
                                //#define MY_RS485_HWSERIAL Serial1
                                
                                // Message signing settings
                                //#define MY_SIGNING_SOFT
                                //#define MY_SIGNING_SOFT_RANDOMSEED_PIN 7
                                //#define MY_SIGNING_REQUEST_SIGNATURES
                                //#define MY_SIGNING_ATSHA204
                                //#define MY_SIGNING_ATSHA204_PIN 4
                                //#define MY_SIGNING_REQUEST_SIGNATURES
                                
                                // OTA Firmware update settings
                                //#define MY_OTA_FIRMWARE_FEATURE
                                //#define OTA_WAIT_PERIOD 300
                                //#define FIRMWARE_MAX_REQUESTS 2
                                //#define MY_OTA_RETRY 2
                                
                                // OTA debug output
                                //#define MY_DEBUG_OTA (0)
                                //#define MY_OTA_LOG_SENDER_FEATURE
                                //#define MY_OTA_LOG_RECEIVER_FEATURE
                                //#define MY_DEBUG_OTA_DISABLE_ACK
                                
                                // Advanced settings
                                #define MY_BAUD_RATE 9600
                                //#define MY_SMART_SLEEP_WAIT_DURATION_MS 500
                                #define MY_SPLASH_SCREEN_DISABLED
                                //#define MY_DISABLE_RAM_ROUTING_TABLE_FEATURE
                                //#define MY_SIGNAL_REPORT_ENABLED
                                
                                // Optimizations when running on 2032 Coin Cell. Also set nodeManager.setSleepBetweenSend(500) and run the board at 1Mhz
                                //#define MY_TRANSPORT_UPLINK_CHECK_DISABLED
                                //#define MY_TRANSPORT_WAIT_READY_MS  5000
                                //#define MY_SLEEP_TRANSPORT_RECONNECT_TIMEOUT_MS 2000
                                //#define MY_PARENT_NODE_ID 0
                                //#define MY_PARENT_NODE_IS_STATIC
                                
                                /**********************************
                                 * MySensors gateway configuration
                                 */
                                 
                                // Common gateway settings
                                //#define MY_REPEATER_FEATURE
                                
                                // Serial gateway settings
                                //#define MY_GATEWAY_SERIAL
                                
                                // Ethernet gateway settings
                                //#define MY_GATEWAY_W5100
                                
                                // ESP8266 gateway settings
                                //#define MY_GATEWAY_ESP8266
                                //#define MY_ESP8266_SSID ""
                                //#define MY_ESP8266_PASSWORD ""
                                
                                // Gateway networking settings
                                //#define MY_IP_ADDRESS 192,168,178,87
                                //#define MY_IP_GATEWAY_ADDRESS 192,168,178,1
                                //#define MY_IP_SUBNET_ADDRESS 255,255,255,0
                                //#define MY_PORT 5003
                                //#define MY_GATEWAY_MAX_CLIENTS 2
                                //#define MY_USE_UDP
                                
                                // Gateway MQTT settings
                                //#define MY_GATEWAY_MQTT_CLIENT
                                //#define MY_CONTROLLER_IP_ADDRESS 192, 168, 178, 68
                                //#define MY_PORT 1883
                                //#define MY_MQTT_USER "username"
                                //#define MY_MQTT_PASSWORD "password"
                                //#define MY_MQTT_CLIENT_ID "mysensors-1"
                                //#define MY_MQTT_PUBLISH_TOPIC_PREFIX "mygateway1-out"
                                //#define MY_MQTT_SUBSCRIBE_TOPIC_PREFIX "mygateway1-in"
                                
                                // Gateway inclusion mode
                                //#define MY_INCLUSION_MODE_FEATURE
                                //#define MY_INCLUSION_BUTTON_FEATURE
                                //#define MY_INCLUSION_MODE_DURATION 60
                                //#define MY_DEFAULT_LED_BLINK_PERIOD 300
                                
                                // Gateway Leds settings
                                //#define MY_DEFAULT_ERR_LED_PIN 4
                                //#define MY_DEFAULT_RX_LED_PIN  5
                                //#define MY_DEFAULT_TX_LED_PIN  6
                                
                                /***********************************
                                 * NodeManager configuration
                                 */
                                
                                #define NODEMANAGER_DEBUG ON
                                #define NODEMANAGER_INTERRUPTS ON
                                #define NODEMANAGER_SLEEP OFF
                                #define NODEMANAGER_RECEIVE OFF
                                #define NODEMANAGER_DEBUG_VERBOSE ON
                                #define NODEMANAGER_POWER_MANAGER OFF
                                #define NODEMANAGER_CONDITIONAL_REPORT OFF
                                #define NODEMANAGER_EEPROM OFF
                                #define NODEMANAGER_TIME OFF
                                #define NODEMANAGER_RTC OFF
                                #define NODEMANAGER_SD OFF
                                #define NODEMANAGER_HOOKING OFF
                                #define NODEMANAGER_OTA_CONFIGURATION OFF
                                #define NODEMANAGER_SERIAL_INPUT OFF
                                
                                // import NodeManager library (a nodeManager object will be then made available)
                                #include <MySensors_NodeManager.h>
                                
                                /***********************************
                                 * Add your sensors
                                 */
                                
                                //PowerManager power(5,6);
                                 
                                //#include <sensors/SensorBattery.h>
                                //SensorBattery battery;
                                
                                //#include <sensors/SensorConfiguration.h>
                                //SensorConfiguration configuration;
                                
                                //#include <sensors/SensorSignal.h>
                                //SensorSignal signal;
                                
                                //#include <sensors/SensorAnalogInput.h>
                                //SensorAnalogInput analog(A0);
                                
                                //#include <sensors/SensorLDR.h>
                                //SensorLDR ldr(A0);
                                
                                //#include <sensors/SensorRain.h>
                                //SensorRain rain(A0);
                                
                                //#include <sensors/SensorSoilMoisture.h>
                                //SensorSoilMoisture soil(A0);
                                
                                //#include <sensors/SensorThermistor.h>
                                //SensorThermistor thermistor(A0);
                                
                                //#include <sensors/SensorML8511.h>
                                //SensorML8511 ml8511(A0);
                                
                                //#include <sensors/SensorACS712.h>
                                //SensorACS712 acs712(A0);
                                
                                //#include <sensors/SensorDigitalInput.h>
                                //SensorDigitalInput digitalIn(6);
                                
                                //#include <sensors/SensorDigitalOutput.h>
                                //SensorDigitalOutput digitalOut(6);
                                
                                //#include <sensors/SensorRelay.h>
                                //SensorRelay relay(6);
                                
                                //#include <sensors/SensorLatchingRelay1Pin.h>
                                //SensorLatchingRelay1Pin latching1pin(6);
                                
                                //#include <sensors/SensorLatchingRelay2Pins.h>
                                //SensorLatchingRelay2Pins latching2pins(6,7);
                                
                                //#include <sensors/SensorDHT11.h>
                                //SensorDHT11 dht11(6);
                                
                                //#include <sensors/SensorDHT22.h>
                                //SensorDHT22 dht22(6);
                                
                                //#include <sensors/SensorSHT21.h>
                                //SensorSHT21 sht21;
                                
                                //#include <sensors/SensorHTU21D.h>
                                //SensorHTU21D htu21;
                                
                                //#include <sensors/SensorInterrupt.h>
                                //SensorInterrupt interrupt(3);
                                
                                //#include <sensors/SensorDoor.h>
                                //SensorDoor door(3);
                                
                                //#include <sensors/SensorMotion.h>
                                //SensorMotion motion(3);
                                
                                //#include <sensors/SensorDs18b20.h>
                                //SensorDs18b20 ds18b20(6);
                                
                                //#include <sensors/SensorBH1750.h>
                                //SensorBH1750 bh1750;
                                
                                //#include <sensors/SensorMLX90614.h>
                                //SensorMLX90614 mlx90614;
                                
                                //#include <sensors/SensorBME280.h>
                                //SensorBME280 bme280;
                                
                                //#include <sensors/SensorBMP085.h>
                                //SensorBMP085 bmp085;
                                
                                //#include <sensors/SensorBMP180.h>
                                //SensorBMP180 bmp180;
                                
                                //#include <sensors/SensorBMP280.h>
                                //SensorBMP280 bmp280;
                                
                                //#include <sensors/SensorSonoff.h>
                                //SensorSonoff sonoff;
                                
                                //#include <sensors/SensorHCSR04.h>
                                //SensorHCSR04 hcsr04(6,7);
                                
                                //#include <sensors/SensorMCP9808.h>
                                //SensorMCP9808 mcp9808;
                                
                                //#include <sensors/SensorMQ.h>
                                //SensorMQ mq(A0);
                                
                                //#include <sensors/SensorMHZ19.h>
                                //SensorMHZ19 mhz19(6,7);
                                
                                //#include <sensors/SensorAM2320.h>
                                //SensorAM2320 am2320;
                                
                                #include <sensors/SensorTSL2561.h>
                                SensorTSL2561 tsl2561;
                                
                                //#include <sensors/SensorPT100.h>
                                //SensorPT100 pt100(6);
                                
                                //#include <sensors/SensorDimmer.h>
                                //SensorDimmer dimmer(3);
                                
                                //#include <sensors/SensorRainGauge.h>
                                //SensorRainGauge rainGauge(3);
                                
                                //#include <sensors/SensorPowerMeter.h>
                                //SensorPowerMeter powerMeter(3);
                                
                                //#include <sensors/SensorWaterMeter.h>
                                //SensorWaterMeter waterMeter(3);
                                
                                //#include <sensors/SensorPlantowerPMS.h>
                                //SensorPlantowerPMS pms(6,7);
                                
                                //#include <sensors/SensorVL53L0X.h>
                                //SensorVL53L0X vl53l0x(3);
                                
                                //#include <sensors/DisplaySSD1306.h>
                                //DisplaySSD1306 ssd1306;
                                
                                //#include <sensors/SensorSHT31.h>
                                //SensorSHT31 sht31;
                                
                                //#include <sensors/SensorSI7021.h>
                                //SensorSI7021 si7021;
                                
                                //#include <sensors/SensorChirp.h>
                                //SensorChirp chirp;
                                
                                //#include <sensors/DisplayHD44780.h>
                                //DisplayHD44780 hd44780;
                                
                                //#include <sensors/SensorTTP.h>
                                //SensorTTP ttp;
                                
                                //#include <sensors/SensorServo.h>
                                //SensorServo servo(6);
                                
                                //#include <sensors/SensorAPDS9960.h>
                                //SensorAPDS9960 apds9960(3);
                                
                                //#include <sensors/SensorNeopixel.h>
                                //SensorNeopixel neopixel(6);
                                
                                //#include <sensors/SensorSDS011.h>
                                //SensorSDS011 sds011(6,7);
                                
                                //#include <sensors/SensorFPM10A.h>
                                //SensorFPM10A fpm10a(4,5);
                                
                                //#include <sensors/SensorPH.h>
                                //SensorPH ph(A0);
                                
                                //#include <sensors/SensorPca9685W.h>
                                //SensorPca9685W pca9685W;
                                
                                //#include <sensors/SensorPca9685Rgb.h>
                                //SensorPca9685Rgb pca9685Rgb;
                                
                                //#include <sensors/SensorPca9685Rgbw.h>
                                //SensorPca9685Rgbw pca9685Rgbw;
                                
                                //#include <sensors/SensorDSM501A.h>
                                //SensorDSM501A DSM501A;
                                
                                //#include <sensors/SensorPN532.h>
                                //SensorPN532 pn532;
                                
                                //#include <sensors/SensorCCS811.h>
                                //SensorCCS811 ccs811;
                                
                                //#include <sensors/SensorGSM.h>
                                //SensorGSM gsm(6,7);
                                
                                /***********************************
                                 * Main Sketch
                                 */
                                
                                // before
                                void before() {
                                	
                                  /***********************************
                                   * Configure your sensors
                                   */
                                   
                                  // report measures of every attached sensors every 10 seconds
                                  nodeManager.setReportIntervalSeconds(10);
                                  // report measures of every attached sensors every 10 minutes
                                  //nodeManager.setReportIntervalMinutes(10);
                                  // set the node to sleep in 30 seconds cycles
                                  //nodeManager.setSleepSeconds(30);
                                  // set the node to sleep in 5 minutes cycles
                                  //nodeManager.setSleepMinutes(5);
                                  // report battery level every 10 minutes
                                  //battery.setReportIntervalMinutes(10);
                                  // set an offset to -1 to a thermistor sensor
                                  //thermistor.setOffset(-1);
                                  // change the id of a the first child of a sht21 sensor
                                  //sht21.children.get(1)->setChildId(5);
                                  // report only when the analog value is above 40%
                                  //analog.children.get(1)->setMinThreshold(40);
                                  // power all the nodes through dedicated pins
                                  //nodeManager.setPowerManager(power);
                                
                                  // call NodeManager before routine
                                  nodeManager.before();
                                }
                                
                                // presentation
                                void presentation() {
                                  // call NodeManager presentation routine
                                  nodeManager.presentation();
                                }
                                
                                // setup
                                void setup() {
                                  // call NodeManager setup routine
                                  nodeManager.setup();
                                }
                                
                                // loop
                                void loop() {
                                  // call NodeManager loop routine
                                  nodeManager.loop();
                                }
                                
                                #if NODEMANAGER_RECEIVE == ON
                                // receive
                                void receive(const MyMessage &message) {
                                  // call NodeManager receive routine
                                  nodeManager.receive(message);
                                }
                                #endif
                                
                                #if NODEMANAGER_TIME == ON
                                // receiveTime
                                void receiveTime(unsigned long ts) {
                                  // call NodeManager receiveTime routine
                                  nodeManager.receiveTime(ts);
                                }
                                #endif
                                

                                Now what's wrong, what's missing?

                                Help is highly appreciated! Thanks

                                Martin

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

                                @maddinthebrain sorry for the huge delay...would you mind sharing the logs? Also feel free to open an issue on https://github.com/mysensors/NodeManager/issues with the logs. Thanks!

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

                                  Hello All, NodeManager v1.8 has just been released! I've opened up as usual a dedicated thread on the forum containing all the details of new release: https://forum.mysensors.org/topic/9944/nodemanager-v1-8-now-available

                                  1 Reply Last reply
                                  0
                                  • RPunktR Offline
                                    RPunktR Offline
                                    RPunkt
                                    wrote on last edited by RPunkt
                                    #191

                                    Question about PowerManger:
                                    I am a bit confused or I can't find the right information.
                                    I have an Ultrasonic sensor (SensorHCSR04) that needs to be only powered in case of measuring, due to power consumption.
                                    An the sensor needs to be switched on a time before the actual measuring starts.
                                    So my first approach was to switch the
                                    #define NODEMANAGER_POWER_MANAGER ON
                                    Then I set

                                     nodeManager.setPowerPins(5,6,500)
                                    

                                    Where I a a bit surprised, why I need two pins (for vcc and ground)?
                                    At what logic level are the when the PowerManager switches to ON or OFF?
                                    Do I need to connect both pins, or is the vcc- connection enough?
                                    Anyway, somehow it did not work with me. It seemed, that the pins are not switched in that way, that pin5 goes to ground and pin 6 goes to 3,3 volt.
                                    So I found that thing :

                                    // power all the nodes through dedicated pins
                                    nodeManager.setPowerManager(power);
                                    

                                    But here is no timing possible.
                                    Am I missing something?

                                    U 1 Reply Last reply
                                    0
                                    • RPunktR RPunkt

                                      Question about PowerManger:
                                      I am a bit confused or I can't find the right information.
                                      I have an Ultrasonic sensor (SensorHCSR04) that needs to be only powered in case of measuring, due to power consumption.
                                      An the sensor needs to be switched on a time before the actual measuring starts.
                                      So my first approach was to switch the
                                      #define NODEMANAGER_POWER_MANAGER ON
                                      Then I set

                                       nodeManager.setPowerPins(5,6,500)
                                      

                                      Where I a a bit surprised, why I need two pins (for vcc and ground)?
                                      At what logic level are the when the PowerManager switches to ON or OFF?
                                      Do I need to connect both pins, or is the vcc- connection enough?
                                      Anyway, somehow it did not work with me. It seemed, that the pins are not switched in that way, that pin5 goes to ground and pin 6 goes to 3,3 volt.
                                      So I found that thing :

                                      // power all the nodes through dedicated pins
                                      nodeManager.setPowerManager(power);
                                      

                                      But here is no timing possible.
                                      Am I missing something?

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

                                      @rpunkt you don't necessarily need to use an additional pin for ground, just set the value to -1 in case you don't need it (https://github.com/mysensors/NodeManager/blob/master/nodemanager/PowerManager.cpp#L34). The logic is when PowerManager is set, at the end of a sleep cycle, the virtual vcc pin is set to HIGH and all the sensors' loop are executed, then is set back to LOW and board goes back to sleep.
                                      To use it for all the sensors try just with:

                                      #define NODEMANAGER_POWER_MANAGER ON
                                      PowerManager power(5,6, 500);
                                      nodeManager.setPowerManager(power);
                                      

                                      Also ensure the sensor can work with the limited current the arduino's pin is able to provide. Thanks

                                      RPunktR 1 Reply Last reply
                                      1
                                      • U user2684

                                        @rpunkt you don't necessarily need to use an additional pin for ground, just set the value to -1 in case you don't need it (https://github.com/mysensors/NodeManager/blob/master/nodemanager/PowerManager.cpp#L34). The logic is when PowerManager is set, at the end of a sleep cycle, the virtual vcc pin is set to HIGH and all the sensors' loop are executed, then is set back to LOW and board goes back to sleep.
                                        To use it for all the sensors try just with:

                                        #define NODEMANAGER_POWER_MANAGER ON
                                        PowerManager power(5,6, 500);
                                        nodeManager.setPowerManager(power);
                                        

                                        Also ensure the sensor can work with the limited current the arduino's pin is able to provide. Thanks

                                        RPunktR Offline
                                        RPunktR Offline
                                        RPunkt
                                        wrote on last edited by
                                        #193

                                        @user2684 Thanks for the advice. Now I got it running.:yum::pray:

                                        1 Reply Last reply
                                        1
                                        • RPunktR Offline
                                          RPunktR Offline
                                          RPunkt
                                          wrote on last edited by
                                          #194

                                          @user2684
                                          Hello, it is me again. Going the next steps.
                                          Now I want to operate another sensor (SensorVL53L0X).
                                          this sensor should transmit the distance and the battery voltage every hour. in between it should sleep.
                                          The normal reporting interval of the battery is once every hour
                                          I set setReportIntervalHours(1); to report the sensor value.
                                          But how do I set the node to sleep in between?
                                          setSleepOrWait(True); and sleepBetweenSend(); ?
                                          or
                                          setSleepOrWait(True); and setSleepMinutes(60); ?
                                          And is the NodeManager so clever that all the transmits are at the same time,
                                          meaning once every hour the sensor value and the battery voltage is transmitted.

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


                                          24

                                          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