NodeManager: plugin for a rapid development of battery-powered sensors
-
I've added a rain gauge out-out-the-box sensor for the latest dev release called 1.5-dev5 (https://github.com/mysensors/NodeManager/tree/126812a9d01311640416222be8225fdcca1e7266). This is intended to be the last enhancement for the upcoming v1.5 version but of course I'll wait for some additional days to collect (and fix) any issue all the new sensors might have.
The implementation of the rain gauge sensor has to be different than the one from the build section for a good number of reasons and limitations. All the details here: https://github.com/mysensors/NodeManager/issues/90.
-
@gohan
User2694 say:"Setup MySensorsSince NodeManager has to communicate with the MySensors gateway on your behalf, it has to know how to do it. Place on top of the config.h file all the MySensors typical directives you are used to set on top of your sketch so both your sketch AND NodeManager will be able to share the same configuration. For example:"
link text -
@mar.conte said in NodeManager: plugin for a rapid development of battery-powered sensors:
Should the gateway have the right nodemamager sketch?
Just to confirm what already discussed: a node/sensor with NodeManager running does not require a gateway with NodeManager on it. Generally speaking, there are two situations in which you may want use NodeManager on a gateway as well (available starting from v1.5):
- It as to run on a Sonoff device which requires to be configured as a gateway
- The gateway has sensors attached to it so you may want to use NodeManager's capabilities to configure your sensors in an easy way
There is also a third situation: you are just lazy and have NodeManager already open in the arduino IDE so you just configure the gateway's settings in config.h and upload the sketch :P
-
@mar.conte said in NodeManager: plugin for a rapid development of battery-powered sensors:
Should the gateway have the right nodemamager sketch?
Just to confirm what already discussed: a node/sensor with NodeManager running does not require a gateway with NodeManager on it. Generally speaking, there are two situations in which you may want use NodeManager on a gateway as well (available starting from v1.5):
- It as to run on a Sonoff device which requires to be configured as a gateway
- The gateway has sensors attached to it so you may want to use NodeManager's capabilities to configure your sensors in an easy way
There is also a third situation: you are just lazy and have NodeManager already open in the arduino IDE so you just configure the gateway's settings in config.h and upload the sketch :P
-
Last chance guys to report any issue for those who had tested the dev version of v1.5 :-)
The final version will be out in a day or two otherwise.Thanks!
-
@gohan LCD unfortunately has to wait for the another release (https://github.com/mysensors/NodeManager/issues/95), I would like to find a way to provide the info on the LCD without the need for the user to configure it for every sensor but this would require investigating on the best generic approach and will take some time :-)
-
If you could provide a method to retrieve sensor data from main loop(), it is quite easy for everyone to print it to LCD
@gohan I wonder if something can be done even right now based on what you're saying. In the main sketch, after invoking nodeManager.loop(), you can actually retrieve the instance of each sensor and do something. The last "value", depending on the type of the sensor, is stored in a variable (e.g. _value_int) BUT it is private. I'll add a getValue() function so you can get out this value. Not ideal but I think it can be a workaround I can easily add before releasing 1.5 (https://github.com/mysensors/NodeManager/issues/104)
-
@gohan I mean if you declare a global int to store the child id, then you can save it when calling registersensor() (which returns the id of the sensor) in before() so eventually in loop() you can call getSensor() and then retrieve the value or do whatever else. Something like:
NodeManager nodeManager; int sensor_id; void before() { Serial.begin(MY_BAUD_RATE); sensor_id = nodeManager.registerSensor(SENSOR_THERMISTOR,A1); nodeManager.before(); } void loop() { nodeManager.loop(); float value = ((SensorThermistor*)nodeManager.getSensor(sensor_id))->getValueFloat(); }Just the getValueFloat() is missing. Not ideal but a starting point. Don't you think? Thanks!