Sensor labels support
This commit is contained in:
@@ -18,7 +18,17 @@
|
|||||||
{{/if}}
|
{{/if}}
|
||||||
{{/with}}
|
{{/with}}
|
||||||
{{#with last_reading}}
|
{{#with last_reading}}
|
||||||
<div class="huge_text"> {{ all_temperatures }}</div>
|
<div class="bigger_text centeredtable">
|
||||||
|
<table>
|
||||||
|
{{#each temperature in all_temperatures }}
|
||||||
|
<tr>
|
||||||
|
<td>{{temperature.name}}:</td>
|
||||||
|
<td> {{temperature.value}}</td>
|
||||||
|
</tr>
|
||||||
|
{{/each}}
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
<div>{{pretty_time created_at}}</div>
|
<div>{{pretty_time created_at}}</div>
|
||||||
{{/with}}
|
{{/with}}
|
||||||
<button id="run_alarm_settings" class="btn btn-default"> <i class="fa fa-wrench"></i> Podešavanje </button>
|
<button id="run_alarm_settings" class="btn btn-default"> <i class="fa fa-wrench"></i> Podešavanje </button>
|
||||||
|
|||||||
@@ -9,13 +9,15 @@ Template.alarm.helpers({
|
|||||||
return moment(time).format("DD.MM.YYYY, HH:mm")
|
return moment(time).format("DD.MM.YYYY, HH:mm")
|
||||||
},
|
},
|
||||||
all_temperatures: function() {
|
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;
|
var temperatures = Meteor.zoblak.client.last_sensor_reading().temperatures;
|
||||||
|
|
||||||
for (var i in temperatures) {
|
for (var i in temperatures) {
|
||||||
var temperature = parseFloat(temperatures[i]).toFixed(1);
|
var temperature = parseFloat(temperatures[i]).toFixed(1);
|
||||||
var temperatureLabel = (Meteor.zoblak.shared.valid_temperature(temperature)) ? temperature : "XX.X";
|
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;
|
return result;
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -87,6 +87,11 @@
|
|||||||
<div class="slider round"></div>
|
<div class="slider round"></div>
|
||||||
</label>
|
</label>
|
||||||
</td>
|
</td>
|
||||||
|
<td>
|
||||||
|
<label>
|
||||||
|
<input type="text" placeholder="prostorija" value={{sensor.name}} class="sensor_name" maxlength="7" />
|
||||||
|
</label>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
@@ -36,13 +36,16 @@ Template.alarm_settings.helpers({
|
|||||||
sensors: function() {
|
sensors: function() {
|
||||||
var temperatures = Meteor.zoblak.client.last_sensor_reading().temperatures;
|
var temperatures = Meteor.zoblak.client.last_sensor_reading().temperatures;
|
||||||
var enabled = config()['sensorsEnabled'] || {};
|
var enabled = config()['sensorsEnabled'] || {};
|
||||||
|
var sensorNames = config()['sensorNames'] || {};
|
||||||
var sensors = [];
|
var sensors = [];
|
||||||
for (var index in temperatures) {
|
for (var index in temperatures) {
|
||||||
var is_on = (index in enabled) ? enabled[index] : true; // on by default
|
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])
|
var value = parseFloat(temperatures[index])
|
||||||
sensors.push({
|
sensors.push({
|
||||||
value: value,
|
value: value,
|
||||||
on: is_on
|
on: is_on,
|
||||||
|
name: name
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
return sensors;
|
return sensors;
|
||||||
@@ -72,6 +75,16 @@ Template.alarm_settings.events({
|
|||||||
|
|
||||||
console.log("Enabled: ", enabled);
|
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);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -18,6 +18,27 @@
|
|||||||
font-size: 2.5em;
|
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) {
|
@media all and (orientation: portrait) {
|
||||||
#bucket_image {
|
#bucket_image {
|
||||||
width: 90%;
|
width: 90%;
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ Api.addRoute('sensorData', {
|
|||||||
authRequired: false
|
authRequired: false
|
||||||
}, {
|
}, {
|
||||||
post: function() {
|
post: function() {
|
||||||
|
console.log("Sensordata ", this.bodyParams);
|
||||||
reactToSensorData(this.bodyParams);
|
reactToSensorData(this.bodyParams);
|
||||||
var sensorObject = {
|
var sensorObject = {
|
||||||
temperatureValue: parseFloat(this.bodyParams.temperatureValue),
|
temperatureValue: parseFloat(this.bodyParams.temperatureValue),
|
||||||
|
|||||||
@@ -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);
|
var state = Meteor.zoblak.server.controller_state(controller_id);
|
||||||
ControllerState.update(state._id, {
|
ControllerState.update(state._id, {
|
||||||
'$set': {
|
'$set': {
|
||||||
@@ -156,7 +156,8 @@ function saveAlarmSettings(controller_id, minTemperature, maxTemperature, timeou
|
|||||||
'config.sms2': smsNumbers[1],
|
'config.sms2': smsNumbers[1],
|
||||||
'config.sms3': smsNumbers[2],
|
'config.sms3': smsNumbers[2],
|
||||||
'config.sms4': smsNumbers[3],
|
'config.sms4': smsNumbers[3],
|
||||||
'config.sensorsEnabled': sensorsEnabled
|
'config.sensorsEnabled': sensorsEnabled,
|
||||||
|
'config.sensorNames': sensorNames
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user