NodeManager: plugin for a rapid development of battery-powered sensors


  • Contest Winner

    @jsiddall thanks, fixed in the development branch right now. Adding a compatibility table between NodeManager and the MySensors library version sounds like a good idea, I've added https://github.com/mysensors/NodeManager/issues/261 for this. Thanks again



  • GHi, the rfm95 is compatible with nodemanager?
    And the esp32 also?


  • Contest Winner

    @mar-conte everything supported by the core MySensors library is supported by NodeManager since using the same code behind the scene but I'll add some default defines in the main sketch to make this configuration easier (https://github.com/mysensors/NodeManager/issues/262). Thanks

    user2684 created this issue in mysensors/NodeManager

    closed Add support for RFM95 #262



  • @user2684
    Ok Tanks



  • I need help!!!
    I have e mcp23017 Matrix espander i/o in esp nodemecu board, the mcp receive state sensor from my system wired alarm(pir, sismic etc) ; this signal received i want send to my domoticz controller, is the sensor custom the solution? Can i present 16 input sensors from my node to my controller?
    Tanks


  • Contest Winner

    @mar-conte if using NodeManager, this is still not possible since mcp23017 is not supported by NodeManager yet. Thanks!



  • @user2684
    For example using text send if i receive state?


  • Contest Winner

    Hi, for anybody interested in giving the upcoming NodeManager v1.7 a try or share a feedback, please have a look at https://forum.mysensors.org/topic/9085/nodemanager-v1-7-beta-feedback-needed. Thanks!


  • Contest Winner

    Hi, the new version of NodeManager (v1.7) is now available! For those interested in having a look at the new features, supported sensors and capabilities, I've opened a dedicated thread on the forum here https://forum.mysensors.org/topic/9165/nodemanager-v1-7-now-available
    Thanks



  • @user2684 this project is awesome! Thank you for your work and efforts. Just one question: what exactly is needed for "built-in battery reporting" hardware-wise? is it really "built-in" or do i need additional wiring and resistors for battery reporting? (I'll want to power up my 3.3V Arduino Pro mini with 2 AA cells)


  • Mod

    since you are using 2AA batteries it can report voltage directly, in case you had any voltage regulator or booster it would require external resistors



  • Thank you very much. BTW: Is it possible to use Nodemanager with two, three or even four door sensors on a single ESP8266 (as Gateway without NRF radio)? Any help very appreciated!


  • Contest Winner

    @grau the current door sensor implementation (SensorDoor class) leverages attachInterrupt(); not sure how many interrupt pins are there on a ESP8266 but if there are enough it should work



  • @user2684 Hello all of You,
    this topic is quite old, but hopefully someone is reading this.
    I could not figure out, what to do if the NRF24 is wired to different pins.
    I have a board with nrf24 on board, but this are connected like:
    // Enable and select radio type attached
    #define MY_RADIO_NRF24
    #define MY_RF24_CE_PIN 7
    #define MY_RF24_CS_PIN 10
    #define MY_SOFT_SPI_SCK_PIN 11
    #define MY_SOFT_SPI_MOSI_PIN 12
    #define MY_SOFT_SPI_MISO_PIN 13
    How can this be inplemented in the nodemanager?


  • Contest Winner

    @rpunkt just use those directives in your sketch, no differences with NodeManager, those will be seen by the MySensors library and applied. Thanks



  • @user2684 Thanks a lot. I should have tried this, before to post a question, but sometimes the brain is sticky.



  • Hello all of You,
    if have a flight time sensor VL53L0X, that is running so far.
    It should measure the water level in a rain tank.
    But now i want to customize my sensornode in that way, that two other values will be transmitted.
    It should be
    V_level, that represents the percentage of my water tank
    and
    V_volume, that represents the available volume of water
    V_level and V_volume could be calculated from the sensor value of the distance sensor (VL53L0X).
    But somehow I could not manage to to get this running. I don't know where to insert what.
    Cant someone point me to the right direction, help appreciated

    /*
    * 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 8
    
    // NRF24 radio settings
    #define MY_RADIO_NRF24
    #define MY_RF24_CE_PIN 7
    #define MY_RF24_CS_PIN 10
    #define MY_SOFT_SPI_SCK_PIN 11
    #define MY_SOFT_SPI_MOSI_PIN 12
    #define MY_SOFT_SPI_MISO_PIN 13
    
    // Advanced settings
    #define MY_BAUD_RATE 9600
    #define MY_SPLASH_SCREEN_DISABLED
    
    /**********************************
     * MySensors gateway configuration
     */
     
    // Common gateway settings
    //#define MY_REPEATER_FEATURE
    
    /***********************************
     * NodeManager configuration
     */
    
    #define NODEMANAGER_DEBUG ON
    #define NODEMANAGER_INTERRUPTS ON
    #define NODEMANAGER_SLEEP ON
    #define NODEMANAGER_RECEIVE OFF
    #define NODEMANAGER_DEBUG_VERBOSE OFF
    #define NODEMANAGER_POWER_MANAGER ON
    #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/SensorVL53L0X.h>
    SensorVL53L0X vl53l0x(9);
    
    /***********************************
     * Main Sketch
     */
    
    // before
    void before() {
    	
      /***********************************
       * Configure your sensors
       */
      // 
      // EXAMPLES:
      // report measures of every attached sensors every 10 seconds
      nodeManager.setReportIntervalSeconds(10);
      void setADCOff();
      nodeManager.setSleepSeconds(10);
      // 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```

  • Contest Winner

    @rpunkt my recommendation would be to create a custom sensor in NodeManager which is implementing the logic you like. Feel free to copy from https://github.com/mysensors/NodeManager/blob/master/sensors/SensorVL53L0X.h and create your own or make your own class by inheriting directly from SensorVL53L0X.



  • @user2684 Seems to be to difficult for a rookie 😭
    On the conventional MySensors library it is possible with my abilities, but then the power management is a issue.
    For me the NodeManager was the choice, because it saves so much battery energy.
    Other way of solution:
    A friend of mine, convinced me off doing all the calculations in the home- automation (in my case FHEM).
    Now I only use the node transmitting the distance and calculating the "volume of water" and "percentage of water" as a "user reading".


 

257
Online

8.6k
Users

9.4k
Topics

99.1k
Posts