From 2156651cb2d6bb6de3af38729f8166229019139a Mon Sep 17 00:00:00 2001 From: Senad Uka Date: Sun, 14 Feb 2016 12:08:36 +0100 Subject: [PATCH 1/3] controller id is now sent with sensor data --- app/client/log.js | 3 ++- app/server/api.js | 1 + controller/sensors.py | 15 +++++++-------- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/app/client/log.js b/app/client/log.js index ae000b7..add5112 100644 --- a/app/client/log.js +++ b/app/client/log.js @@ -1,6 +1,7 @@ Template.log.helpers({ sensorDataCollection: function() { - return SensorData.find({}, { + var controllerId = Session.get('controller_id'); + return SensorData.find({ controllerId: controllerId }, { sort: { created_at: -1 } diff --git a/app/server/api.js b/app/server/api.js index b2dfa1b..815fc02 100644 --- a/app/server/api.js +++ b/app/server/api.js @@ -13,6 +13,7 @@ Api.addRoute('sensorData', { humidityValue: parseFloat(this.bodyParams.humidityValue), tankFull: this.bodyParams.tankFull, owner: this.bodyParams.owner, + controllerId: this.bodyParams.controllerId, created_at: new Date() }); return []; diff --git a/controller/sensors.py b/controller/sensors.py index 7c937ee..87c0766 100644 --- a/controller/sensors.py +++ b/controller/sensors.py @@ -3,7 +3,6 @@ import sys import requests import Adafruit_DHT import config -import config import RPi.GPIO as GPIO # Try to read the state of GPIO_PIN_TANKFULL @@ -15,13 +14,11 @@ print 'Bacva puna: {}'.format(tankFull) # Go on to DHT SENSOR_TYPE = Adafruit_DHT.DHT11 - -if len(sys.argv) == 3: - owner = sys.argv[1] - controller_id = sys.argv[2] +controller_id = config.CONTROLLER_ID +owner = "Controller: %s" % controller_id else: - print 'usage: sudo ./controller.py [OWNER] [CONTROLLER_ID]#' - print 'example: sudo ./controller.py Senad 225 - Send temperature as Senad for controller 225' + print 'usage: sudo ./sensors.py ' + print 'example: sudo ./sensors.py Send temperature for controller in config' sys.exit(1) # Try to grab a sensor reading. Use the read_retry method which will retry up @@ -36,7 +33,9 @@ humidity, temperature = Adafruit_DHT.read_retry(SENSOR_TYPE, config.GPIO_PIN_DHT # guarantee the timing of calls to read the sensor). # If this happens try again! if temperature is not None and humidity is not None: - response = requests.post(config.SENSORDATA_URL, json={"owner": owner, "temperatureValue": temperature, "humidityValue":humidity, "tankFull":tankFull}) + response = requests.post(config.SENSORDATA_URL, json={"owner": owner, "temperatureValue": temperature, "humidityValue":humidity, "tankFull":tankFull, + "controllerId": controller_id + }) print 'Temp={0:0.1f}*C'.format(temperature) print 'Humidity={0:0.1f}%'.format(humidity) if response.status_code != 200: -- 2.47.3 From e985699645681cb942117d20ac9910444561909b Mon Sep 17 00:00:00 2001 From: Senad Uka Date: Sun, 14 Feb 2016 12:10:39 +0100 Subject: [PATCH 2/3] controller id is now sent with sensor data --- controller/sensors.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/controller/sensors.py b/controller/sensors.py index 87c0766..bf43949 100644 --- a/controller/sensors.py +++ b/controller/sensors.py @@ -16,10 +16,6 @@ print 'Bacva puna: {}'.format(tankFull) SENSOR_TYPE = Adafruit_DHT.DHT11 controller_id = config.CONTROLLER_ID owner = "Controller: %s" % controller_id -else: - print 'usage: sudo ./sensors.py ' - print 'example: sudo ./sensors.py Send temperature for controller in config' - sys.exit(1) # Try to grab a sensor reading. Use the read_retry method which will retry up # to 15 times to get a sensor reading (waiting 2 seconds between each retry). -- 2.47.3 From a43099adf39d5142c635f1e48647ff3b11a594e7 Mon Sep 17 00:00:00 2001 From: Senad Uka Date: Sun, 14 Feb 2016 16:34:11 +0100 Subject: [PATCH 3/3] fixed api problems --- app/server/api.js | 2 ++ controller/config/__init__.py | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/server/api.js b/app/server/api.js index 815fc02..2c0cf3d 100644 --- a/app/server/api.js +++ b/app/server/api.js @@ -1,5 +1,6 @@ // Global API configuration var Api = new Restivus({ + version: 'v1.0', useDefaultAuth: true, prettyJson: true }); @@ -8,6 +9,7 @@ Api.addRoute('sensorData', { authRequired: false }, { post: function() { + console.log("Body params", this.bodyParams); SensorData.insert({ temperatureValue: parseFloat(this.bodyParams.temperatureValue), humidityValue: parseFloat(this.bodyParams.humidityValue), diff --git a/controller/config/__init__.py b/controller/config/__init__.py index 68d0971..6a6c197 100644 --- a/controller/config/__init__.py +++ b/controller/config/__init__.py @@ -1,9 +1,9 @@ GPIO_PIN_DHT = 4 # BCM -SENSORDATA_URL = 'http://tfm.meteor.com/api/sensorData' +SENSORDATA_URL = 'http://tfm.meteor.com/api/v1.0/sensorData' GPIO_PIN_TANKFULL = 20 # BCM GPIO_PIN_VALVE = 21 # BCM -API_BASE_URL = 'http://tfm.meteor.com/api' +API_BASE_URL = 'http://tfm.meteor.com/api/v1.0' CONTROLLER_ID = '120' # every controller must have a different one STATE_FILE = '/var/run/controller_state' -- 2.47.3