temperature errors

This commit is contained in:
Senad Uka
2017-01-06 18:36:57 +01:00
parent 070a1071c9
commit a06a22857d
3 changed files with 17 additions and 6 deletions

View File

@@ -36,7 +36,9 @@ Template.alarm.helpers({
var temperatures = last_sensor_reading().temperatures;
for (var i in temperatures) {
result += '' + parseFloat(temperatures[i]).toFixed(1) + ' °C ';
var temperature = parseFloat(temperatures[i]).toFixed(1);
var temperatureLabel = (Meteor.zoblak.shared.valid_temperature(temperature)) ? temperature : "XX.X";
result += '' + temperatureLabel + ' °C ';
}
return result;
},

View File

@@ -27,6 +27,12 @@ Meteor.zoblak.client = {
}
}
Meteor.zoblak.shared = {
valid_temperature: function(value) {
return (parseFloat(value) > -40 && parseFloat(value) < 50);
}
}
Meteor.zoblak.server = {
controller_state: function(controller_id) {
var result = {}

View File

@@ -158,7 +158,7 @@ function saveAlarmSettings(controller_id, minTemperature, maxTemperature, timeou
'config.sms4': smsNumbers[3]
}
});
var jobName = "automatic_alarm_" + controller_id;
SyncedCron.remove(jobName);
@@ -186,6 +186,7 @@ reactToAlarmData = function(controller_id) {
var state = Meteor.zoblak.server.controller_state(controller_id);
var config = state.config;
var minTemperature = function(temperatures) {
// if it gets a lot colder than absolute zero
// we will have more problems than the bug in this code
@@ -197,7 +198,7 @@ reactToAlarmData = function(controller_id) {
}
}
return minimal;
}
};
var maxTemperature = function(temperatures) {
// obviously - hell is not supported in this version
@@ -209,11 +210,13 @@ reactToAlarmData = function(controller_id) {
}
}
return maximal;
}
};
var tooCold = config.minTemperature && (minTemperature(reading.temperatures) < config.minTemperature);
var temperatures = (reading.temperatures || []).filter(Meteor.zoblak.shared.valid_temperature);
var tooHot = config.maxTemperature && (maxTemperature(reading.temperatures) > config.maxTemperature);
var tooCold = config.minTemperature && (minTemperature(temperatures) < config.minTemperature);
var tooHot = config.maxTemperature && (maxTemperature(temperatures) > config.maxTemperature);
var minutesSinceLastBoxContact = reading.lastBoxContact ? moment(new Date()).diff(moment(reading.lastBoxContact), 'minutes') : -1;
var boxSilent = config.timeoutBox && minutesSinceLastBoxContact > config.timeoutBox;