Here is some more info what exactly I do.
I added this event which triggers every 10 minutes
weatherStationPoll: {
label:'Netatmo : temperature/rain Poll',
icon:'fa-heartbeat',
descr:'Poll temperature/rain from Netatmo outdoor module',
nextSchedule: function(nodeAtScheduleTime) { return 10*60*1000; }, //runs every 10 min
scheduledExecute: function(nodeAtScheduleTime) {
db.findOne({ _id : nodeAtScheduleTime._id }, function (err, nodeRightNow) {
if (nodeRightNow)
{
var netatmo = require('netatmo');
var auth = {
"client_id": "removed",
"client_secret": "removed",
"username": "removed",
"password": "removed",
};
var api = new netatmo(auth);
// Get Stations Data
// See docs: https://dev.netatmo.com/dev/resources/technical/reference/weatherstation/getstationsdata
api.getStationsData(function(err, devices) {
var fakeSerialMsg = '['+nodeRightNow._id+']'+' C:'+devices[0].modules[0].dashboard_data.Temperature;
processSerialData(fakeSerialMsg);
//rain data
fakeSerialMsg = '['+nodeRightNow._id+']'+' R:'+devices[0].modules[1].dashboard_data.Rain;
processSerialData(fakeSerialMsg);
});
}
});
},
},
and this additional metrics for Rain data:
exports.metrics = {
R : { name:'Rain', regexp:/\R:([\d\.]+)\b/i, pin:1, graph:1},
}
I've checked the console logs and if you check the first line, there is correct temperature "C:3.4", but in the second line with the rain data, there is also temperature data, but with old value "4.4"
[04-04-21_23:21:39.710] [INFO] [201] DB-Updated: processSerialData('[201] C:3.4',undefined):entry={"_id":201,"updated":1617571299679,"type":"WeatherMote","label":"Temperatura/dež dvorišče","descr":"Netatmo zunanji senzor","metrics":{"C":{"label":"C","value":3.4,"unit":"°","updated":1617571299679,"pin":1610044205214,"graph":1}},"events":{"weatherStationPoll":{"enabled":1,"executeDateTime":"2021-04-04T21:31:28.113Z"},"messageAirTempToDMD":{"enabled":1},"messageToOOK1":{"enabled":1}}}
[04-04-21_23:21:39.769] [INFO] [201] DB-Updated: processSerialData('[201] R:0',undefined) :entry={"_id":201,"updated":1617571299691,"type":"WeatherMote","label":"Temperatura/dež dvorišče","descr":"Netatmo zunanji senzor","metrics":{"C":{"label":"C","value":4.4,"unit":"°","updated":1617568735368,"pin":1610044205214,"graph":1},"Rain":{"label":"Rain","value":0,"updated":1617571299691,"pin":1,"graph":1}},"events":{"weatherStationPoll":{"enabled":1,"executeDateTime":"2021-04-04T21:31:28.113Z"},"messageAirTempToDMD":{"enabled":1},"messageToOOK1":{"enabled":1}}}
And here is the example contents from API Response, "modules" array:
[
{
_id: 'removed',
type: 'NAModule1',
module_name: 'Dvorišče',
last_setup: 1573229405,
data_type: [ 'Temperature', 'Humidity' ],
battery_percent: 64,
reachable: true,
firmware: 50,
last_message: 1617637983,
last_seen: 1617637971,
rf_status: 62,
battery_vp: 5348,
dashboard_data: {
time_utc: 1617637971,
Temperature: 12.8,
Humidity: 48,
min_temp: -0.5,
max_temp: 15.1,
date_max_temp: 1617628896,
date_min_temp: 1617598391,
temp_trend: 'down'
}
},
{
_id: 'removed',
type: 'NAModule3',
module_name: 'Smart Rain Gauge',
last_setup: 1617370670,
data_type: [ 'Rain' ],
battery_percent: 100,
reachable: true,
firmware: 12,
last_message: 1617637984,
last_seen: 1617637984,
rf_status: 83,
battery_vp: 6278,
dashboard_data: {
time_utc: 1617637984,
Rain: 0.101,
sum_rain_1: 0.202,
sum_rain_24: 0.2
}
}
]
Am I doing something wrong in that weatherStationPoll event?