Add cooling to delay
This commit is contained in:
@@ -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();
|
||||||
|
|
||||||
|
|||||||
53
delay.php
53
delay.php
@@ -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);
|
||||||
|
switch ($now['systemSwitchPosition']){
|
||||||
|
case 1:
|
||||||
|
// heating
|
||||||
|
$setPoint = 'heatSetPoint';
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
// cooling
|
||||||
|
$setPoint = 'coolSetPoint';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
//AUTOCOOL: 5, AUTOHEAT: 4, EMHEAT: 0, OFF: 2, SOUTHERN_AWAY: 6, UNKNOWN: 7
|
||||||
|
$setPoint = NULL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if($setPoint){
|
||||||
if($startTime == -1){
|
if($startTime == -1){
|
||||||
// echo "no start <br/>";
|
if($now[$setPoint] <> $last[$setPoint]){
|
||||||
if($now['heatSetPoint'] <> $last['heatSetPoint']){
|
if($setPoint == 'heatSetPoint' && $now[$setPoint] > $now['dispTemperature'] ||
|
||||||
//Down!
|
$setPoint == 'coolSetPoint' && $now[$setPoint] < $now['dispTemperature']){
|
||||||
// echo "down<br/>";
|
// print "Temperature started to change and is different!";
|
||||||
$startTime = $now['date'];
|
$startTime = $now['date'];
|
||||||
$startTemp = $now['dispTemperature'];
|
$startTemp = $now['dispTemperature'];
|
||||||
$startSetPoint = $last['heatSetPoint'];
|
$startSetPoint = $last[$setPoint];
|
||||||
$targetSetPoint = $now['heatSetPoint'];
|
$targetSetPoint = $now[$setPoint];
|
||||||
if($now['heatSetPoint'] > $last['heatSetPoint']){
|
if($now[$setPoint] > $last[$setPoint]){
|
||||||
$type = "up";
|
$type = "up";
|
||||||
} else {
|
} else {
|
||||||
$type = "down";
|
$type = "down";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} else{
|
} else{
|
||||||
//looking for end
|
//looking for end
|
||||||
// echo "yes start <br/>";
|
if($now['dispTemperature'] == $targetSetPoint || $now[$setPoint] <> $targetSetPoint){
|
||||||
if($now['dispTemperature'] == $targetSetPoint || $now['heatSetPoint'] <> $targetSetPoint){
|
|
||||||
$changeTime = ($now['date']-$startTime)/60;
|
$changeTime = ($now['date']-$startTime)/60;
|
||||||
$changeTemp = abs($startTemp - $now['dispTemperature']);
|
$changeTemp = abs($startTemp - $now['dispTemperature']);
|
||||||
$outside = $now['weatherTemperature'];
|
$outside = $now['weatherTemperature'];
|
||||||
$minperdeg = $changeTime/$changeTemp;
|
$minperdeg = $changeTime/$changeTemp;
|
||||||
|
if(!$minperdeg){
|
||||||
|
$minperdeg = 0;
|
||||||
|
}
|
||||||
|
if($setPoint == 'heatSetPoint'){
|
||||||
if($type == "up"){
|
if($type == "up"){
|
||||||
$heat_up[] = [$minperdeg,intval($outside)];
|
$heat_up[] = [$minperdeg,intval($outside)];
|
||||||
} else{
|
} else{
|
||||||
$heat_down[] = [$minperdeg,intval($outside)];
|
$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;
|
$startTime = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$return = [$heat_up, $heat_down];
|
$return = [$heat_up, $heat_down, $cool_up, $cool_down];
|
||||||
|
|
||||||
print json_encode($return);
|
print json_encode($return);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user