From c3dbcd1feadc4d5c32ad1a040b3de69f1bfcac47 Mon Sep 17 00:00:00 2001 From: ToSa27 Date: Sun, 28 Sep 2014 23:47:22 +0200 Subject: [PATCH] Accept Time Broadcasts NodeJsController sending Time broadcasts every few minutes. Sensor accepting not just Time messages addressed to the specific sensor. --- NodeJsController/NodeJsController.js | 3 +++ libraries/MySensors/MySensor.cpp | 10 +++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/NodeJsController/NodeJsController.js b/NodeJsController/NodeJsController.js index 8bb67da..2c40fb4 100644 --- a/NodeJsController/NodeJsController.js +++ b/NodeJsController/NodeJsController.js @@ -706,5 +706,8 @@ dbc.connect('mongodb://' + dbAddress + ':' + dbPort + '/' + dbName, function(err } else { throw new Error('unknown Gateway type'); } + setInterval(function() { + sendTime(BROADCAST_ADDRESS, NODE_SENSOR_ID, gw); + }, 5*60*1000); }); diff --git a/libraries/MySensors/MySensor.cpp b/libraries/MySensors/MySensor.cpp index de02ac0..e71e1e8 100755 --- a/libraries/MySensors/MySensor.cpp +++ b/libraries/MySensors/MySensor.cpp @@ -322,6 +322,11 @@ boolean MySensor::process() { delay(millis() & 0x3ff); sendWrite(sender, build(msg, nc.nodeId, sender, NODE_SENSOR_ID, C_INTERNAL, I_FIND_PARENT_RESPONSE, false).set(nc.distance)); return false; + } else if (command == C_INTERNAL && type == I_TIME) { + if (timeCallback != NULL) { + // Deliver time to callback + timeCallback(msg.getULong()); + } } else if (destination == nc.nodeId) { // Check if sender requests an ack back. if (mGetRequestAck(msg)) { @@ -397,11 +402,6 @@ boolean MySensor::process() { } sendRoute(build(msg, nc.nodeId, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_CHILDREN,false).set("")); } - } else if (type == I_TIME) { - if (timeCallback != NULL) { - // Deliver time to callback - timeCallback(msg.getULong()); - } } return false; }