From 82ea273c0d5af1a1ffa5424c495ec750d0def831 Mon Sep 17 00:00:00 2001 From: Senad Uka Date: Sun, 28 Jul 2019 11:48:50 +0200 Subject: [PATCH] Sensor labels support --- app/client/alarm.html | 12 +++++++++++- app/client/alarm.js | 6 ++++-- app/client/alarm_settings.html | 5 +++++ app/client/alarm_settings.js | 17 +++++++++++++++-- app/client/app.less | 21 +++++++++++++++++++++ app/server/api.js | 1 + app/server/methods.js | 5 +++-- 7 files changed, 60 insertions(+), 7 deletions(-) diff --git a/app/client/alarm.html b/app/client/alarm.html index 590d792..4cb2e70 100644 --- a/app/client/alarm.html +++ b/app/client/alarm.html @@ -18,7 +18,17 @@ {{/if}} {{/with}} {{#with last_reading}} -
{{ all_temperatures }}
+
+ + {{#each temperature in all_temperatures }} + + + + + {{/each}} +
{{temperature.name}}: {{temperature.value}}
+ +
{{pretty_time created_at}}
{{/with}} diff --git a/app/client/alarm.js b/app/client/alarm.js index a7d897c..ce3e2aa 100644 --- a/app/client/alarm.js +++ b/app/client/alarm.js @@ -9,13 +9,15 @@ Template.alarm.helpers({ return moment(time).format("DD.MM.YYYY, HH:mm") }, all_temperatures: function() { - var result = ""; + var result = []; + var names = Meteor.zoblak.client.controller_state().config['sensorNames'] || {}; var temperatures = Meteor.zoblak.client.last_sensor_reading().temperatures; for (var i in temperatures) { var temperature = parseFloat(temperatures[i]).toFixed(1); var temperatureLabel = (Meteor.zoblak.shared.valid_temperature(temperature)) ? temperature : "XX.X"; - result += '' + temperatureLabel + ' °C '; + var name = names[i] || "Senzor " + i.toString(); + result.push({ name: name, value: temperatureLabel + ' °C ' }); } return result; }, diff --git a/app/client/alarm_settings.html b/app/client/alarm_settings.html index 8b7471e..8ab1f21 100644 --- a/app/client/alarm_settings.html +++ b/app/client/alarm_settings.html @@ -87,6 +87,11 @@
+ + + {{/each}} diff --git a/app/client/alarm_settings.js b/app/client/alarm_settings.js index ce0ac58..4342124 100644 --- a/app/client/alarm_settings.js +++ b/app/client/alarm_settings.js @@ -36,13 +36,16 @@ Template.alarm_settings.helpers({ sensors: function() { var temperatures = Meteor.zoblak.client.last_sensor_reading().temperatures; var enabled = config()['sensorsEnabled'] || {}; + var sensorNames = config()['sensorNames'] || {}; var sensors = []; for (var index in temperatures) { var is_on = (index in enabled) ? enabled[index] : true; // on by default + var name = (index in sensorNames) ? sensorNames[index] : null; // no name by default var value = parseFloat(temperatures[index]) sensors.push({ value: value, - on: is_on + on: is_on, + name: name }) } return sensors; @@ -72,6 +75,16 @@ Template.alarm_settings.events({ console.log("Enabled: ", enabled); - Meteor.call('saveAlarmSettings', controller_id, minTemperature, maxTemperature, timeoutBox, timeoutPhone, [sms1, sms2, sms3, sms4] ,enabled); + var names = {}; + + var sensorNames = instance.$('.sensor_name'); + + sensorNames.each( function(index,element) { + names[index] = instance.$(element).val(); + } ); + + console.log("Names ", names); + + Meteor.call('saveAlarmSettings', controller_id, minTemperature, maxTemperature, timeoutBox, timeoutPhone, [sms1, sms2, sms3, sms4] ,enabled, names); } }); diff --git a/app/client/app.less b/app/client/app.less index 1acbd3e..f120f35 100644 --- a/app/client/app.less +++ b/app/client/app.less @@ -18,6 +18,27 @@ font-size: 2.5em; } +.bigger_text { + font-size: 1.8em; +} + +div.centeredtable +{ + text-align: center; +} + +div.centeredtable table +{ + border-collapse: separate; + margin: 0 auto; + text-align: left; + border-spacing: 10px; +} + +div.centeredtable table, div.centeredtable td{ + border: 1px solid #eeeeee; +} + @media all and (orientation: portrait) { #bucket_image { width: 90%; diff --git a/app/server/api.js b/app/server/api.js index 1590181..794d6e7 100644 --- a/app/server/api.js +++ b/app/server/api.js @@ -9,6 +9,7 @@ Api.addRoute('sensorData', { authRequired: false }, { post: function() { + console.log("Sensordata ", this.bodyParams); reactToSensorData(this.bodyParams); var sensorObject = { temperatureValue: parseFloat(this.bodyParams.temperatureValue), diff --git a/app/server/methods.js b/app/server/methods.js index 1d19ddd..c403cfd 100644 --- a/app/server/methods.js +++ b/app/server/methods.js @@ -143,7 +143,7 @@ function saveControllerConfig(controller_id, time, days, manualInflow) { }); } -function saveAlarmSettings(controller_id, minTemperature, maxTemperature, timeoutBox, timeoutPhone, smsNumbers, sensorsEnabled) { +function saveAlarmSettings(controller_id, minTemperature, maxTemperature, timeoutBox, timeoutPhone, smsNumbers, sensorsEnabled, sensorNames) { var state = Meteor.zoblak.server.controller_state(controller_id); ControllerState.update(state._id, { '$set': { @@ -156,7 +156,8 @@ function saveAlarmSettings(controller_id, minTemperature, maxTemperature, timeou 'config.sms2': smsNumbers[1], 'config.sms3': smsNumbers[2], 'config.sms4': smsNumbers[3], - 'config.sensorsEnabled': sensorsEnabled + 'config.sensorsEnabled': sensorsEnabled, + 'config.sensorNames': sensorNames } });