Example #1
0
function hourGraphEnergy($timeScale)
{
    include 'config.php';
    include 'general.php';
    // Get all the appliances to retrieve data for
    $applianceChannels = getDeviceChannels();
    $applianceArray = array();
    $count = 0;
    // Array to store the number channels each appliance has
    //$applianceChannelCount = countChannelsPerAppliance($applianceChannels);
    // Loop through results again to build data to be returned
    while ($row = mysql_fetch_array($applianceChannels)) {
        $where = getHourSqlWhereClause($row[$CHANNEL_ID_PK_FIELD_NAME], $timeScale);
        $group = getHourSqlGroupByClause();
        $query = "SELECT HOUR(" . $DATE_TIME_FIELD_NAME . "), AVG(" . $DATA_FIELD_NAME . "), " . $UNIT_FIELD_NAME . " " . "FROM " . $DATA_TABLE_FIELD_NAME . " " . $where . $group;
        $result = executeQuery($query);
        $seriesArray = array("chId" => $row[$CHANNEL_ID_PK_FIELD_NAME], "label" => $row[$APPLIANCE_DISPLAY_NAME_FIELD_NAME], "color" => $count, "data" => convertResultToArray($result));
        array_push($applianceArray, $seriesArray);
        $count++;
        // Ensure 1 is always the temperature colour because it's blue
        if ($count == 1) {
            $count++;
        }
    }
    return $applianceArray;
}
Example #2
0
function updateTimeGraphTemperatureOverlay($range, $timeScale, $lastDataPoint)
{
    include 'config.php';
    include 'constants.php';
    $where = "";
    $group = getTimeSqlGroupClause($timeScale);
    $order = getTimeSqlOrderClause();
    $hourDiff = 0;
    if ($timeScale == "Hour") {
        $where = "WHERE (UNIX_TIMESTAMP(" . $DATE_TIME_FIELD_NAME . ") * 1000) >= (" . $lastDataPoint . " - (" . $SECONDS_IN_HOUR . " * " . $range . ")) AND " . $DATE_TIME_FIELD_NAME . " < ADDDATE(NOW(), INTERVAL -" . $range . " HOUR)";
        $hourDiff = $SECONDS_IN_HOUR * (int) $range;
    } elseif ($timeScale == "Day") {
        $where = "WHERE (UNIX_TIMESTAMP(" . $DATE_TIME_FIELD_NAME . ") * 1000) >= (" . $lastDataPoint . " - (" . $SECONDS_IN_DAY . " * " . $range . ")) AND " . $DATE_TIME_FIELD_NAME . " < ADDDATE(NOW(), INTERVAL -" . $range . " Day) ";
        $hourDiff = $SECONDS_IN_DAY * (int) $range;
    } elseif ($timeScale == "Week") {
        $where = "WHERE (UNIX_TIMESTAMP(" . $DATE_TIME_FIELD_NAME . ") * 1000) >= (" . $lastDataPoint . " - (" . $SECONDS_IN_WEEK . " * " . $range . ")) AND " . $DATE_TIME_FIELD_NAME . " < ADDDATE(NOW(), INTERVAL -" . $range . " Week) ";
        $hourDiff = $SECONDS_IN_WEEK * (int) $range;
    } elseif ($timeScale == "Month") {
        $where = "WHERE (UNIX_TIMESTAMP(" . $DATE_TIME_FIELD_NAME . ") * 1000) >= (" . $lastDataPoint . " - (" . $SECONDS_IN_MONTH . " * " . $range . ")) AND " . $DATE_TIME_FIELD_NAME . " < ADDDATE(NOW(), INTERVAL -" . $range . " Month)";
        $hourDiff = $SECONDS_IN_MONTH * (int) $range;
    } elseif ($timeScale == "Year") {
        $where = "WHERE (UNIX_TIMESTAMP(" . $DATE_TIME_FIELD_NAME . ") * 1000) >= (" . $lastDataPoint . " - (" . $SECONDS_IN_YEAR . " * " . $range . ")) AND " . $DATE_TIME_FIELD_NAME . " < ADDDATE(NOW(), INTERVAL -" . $range . " Year) ";
        $hourDiff = $SECONDS_IN_YEAR * (int) $range;
    } else {
        echo "";
        return;
    }
    // execute query
    $query = "SELECT (UNIX_TIMESTAMP(" . $DATE_TIME_FIELD_NAME . ") * 1000) + " . $hourDiff . ", ";
    if ($timeScale != "Hour") {
        $query .= "AVG(" . $TEMPERATURE_FIELD_NAME . ") ";
    } else {
        $query .= $TEMPERATURE_FIELD_NAME . " ";
    }
    $query .= "FROM " . $DATA_TABLE_FIELD_NAME . " " . $where . $group . $order;
    $result = executeQuery($query);
    $seriesArray = array("appId" => "ot", "label" => 'Temperature Overlay', "data" => convertResultToArray($result));
    return $seriesArray;
}