Archived
1
0

Add cooling to delay

This commit is contained in:
James Stuckey Weber
2016-02-06 08:47:57 -05:00
parent f9b7276cb6
commit fbb018dcb2
2 changed files with 70 additions and 36 deletions

View File

@@ -90,6 +90,15 @@ $(function () {
name: "Heat, down", name: "Heat, down",
data: data[1] data: data[1]
}; };
seriesOptions[2] = {
name: "Cool, Cooling",
data: data[2]
};
seriesOptions[3] = {
name: "Cool, up",
data: data[3]
};
createChart(); createChart();

View File

@@ -6,7 +6,7 @@ $conn = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if (!$conn) { if (!$conn) {
die("Connection failed: " . mysqli_connect_error()); die("Connection failed: " . mysqli_connect_error());
} }
$sql = 'SELECT UNIX_TIMESTAMP(date),dispTemperature,weatherTemperature,heatSetPoint,systemSwitchPosition from stat'; $sql = 'SELECT UNIX_TIMESTAMP(date),id,dispTemperature,weatherTemperature,heatSetPoint,coolSetPoint,systemSwitchPosition from stat';
$result = $conn->query($sql); $result = $conn->query($sql);
if (!$result) { if (!$result) {
@@ -31,48 +31,73 @@ $cool_up = NULL;
$cool_down = NULL; $cool_down = NULL;
$type = NULL; $type = NULL;
//Start at index 1 so index 0 is the prior one
for($i = 1; $i < count($rows); $i++){ for($i = 1; $i < count($rows); $i++){
$now = $rows[$i]; $now = $rows[$i];
$last= $rows[$i-1]; $last= $rows[$i-1];
// echo $startTime; // echo $startTime;
// print_r($now); // print_r($now);
if($startTime == -1){ switch ($now['systemSwitchPosition']){
// echo "no start <br/>"; case 1:
if($now['heatSetPoint'] <> $last['heatSetPoint']){ // heating
//Down! $setPoint = 'heatSetPoint';
// echo "down<br/>"; break;
$startTime = $now['date']; case 3:
$startTemp = $now['dispTemperature']; // cooling
$startSetPoint = $last['heatSetPoint']; $setPoint = 'coolSetPoint';
$targetSetPoint = $now['heatSetPoint']; break;
if($now['heatSetPoint'] > $last['heatSetPoint']){ default:
$type = "up"; //AUTOCOOL: 5, AUTOHEAT: 4, EMHEAT: 0, OFF: 2, SOUTHERN_AWAY: 6, UNKNOWN: 7
} else { $setPoint = NULL;
$type = "down"; break;
} }
} if($setPoint){
} else{ if($startTime == -1){
//looking for end if($now[$setPoint] <> $last[$setPoint]){
// echo "yes start <br/>"; if($setPoint == 'heatSetPoint' && $now[$setPoint] > $now['dispTemperature'] ||
if($now['dispTemperature'] == $targetSetPoint || $now['heatSetPoint'] <> $targetSetPoint){ $setPoint == 'coolSetPoint' && $now[$setPoint] < $now['dispTemperature']){
$changeTime = ($now['date']-$startTime)/60; // print "Temperature started to change and is different!";
$changeTemp = abs($startTemp - $now['dispTemperature']); $startTime = $now['date'];
$outside = $now['weatherTemperature']; $startTemp = $now['dispTemperature'];
$minperdeg = $changeTime/$changeTemp; $startSetPoint = $last[$setPoint];
$targetSetPoint = $now[$setPoint];
if($type == "up"){ if($now[$setPoint] > $last[$setPoint]){
$heat_up[] = [$minperdeg,intval($outside)]; $type = "up";
} else{ } else {
$heat_down[] = [$minperdeg,intval($outside)]; $type = "down";
} }
}
$startTime = -1; }
} } else{
//looking for end
if($now['dispTemperature'] == $targetSetPoint || $now[$setPoint] <> $targetSetPoint){
$changeTime = ($now['date']-$startTime)/60;
$changeTemp = abs($startTemp - $now['dispTemperature']);
$outside = $now['weatherTemperature'];
$minperdeg = $changeTime/$changeTemp;
if(!$minperdeg){
$minperdeg = 0;
}
if($setPoint == 'heatSetPoint'){
if($type == "up"){
$heat_up[] = [$minperdeg,intval($outside)];
} else{
$heat_down[] = [$minperdeg,intval($outside)];
}
} else if($setPoint == 'coolSetPoint'){
if($type == "up"){
$cool_up[] = [$minperdeg,intval($outside)];
} else{
$cool_down[] = [$minperdeg,intval($outside)];
}
}
$startTime = -1;
}
}
} }
} }
$return = [$heat_up, $heat_down]; $return = [$heat_up, $heat_down, $cool_up, $cool_down];
print json_encode($return); print json_encode($return);