Permalink
Browse files

Version 3

Multi-house data set capability, new water usage screen
  • Loading branch information...
Larry
Larry committed Jan 7, 2013
1 parent 4926e46 commit 82205490e774c15f19e38641442a6833255e871e
View
@@ -7,6 +7,13 @@ This app utilizes MySQL, PHP, jQuery, HighCharts and Javascript to view home ene
Working version posted at http://netplusdesign.com/home_performance/monthly.html
+Version 3
+Jan 7, 2013
+
+- Updates to data structure to enable multiple house data sets.
+- New Water usage screen. Calculates watts per gallon of hot water and watts per gallon water pumped (if you have a well and record well power usage.)
+- Other sql bug fixes.
+
Version 2
Dec 30, 2012
View
@@ -24,6 +24,7 @@ <h1><a href="..">NetPlusDesign</a> &gt; <a href="http://uphillhouse.wordpress.co
<option value="16">Generation</option>
<option value="17">Usage</option>
<option value="18">Heating Degree Days</option>
+ <option value="20">Water Usage</option>
<option value="19">Base Temp Analysis</option>
</optgroup>
<optgroup label="Daily">
@@ -59,7 +60,7 @@ <h1><a href="..">NetPlusDesign</a> &gt; <a href="http://uphillhouse.wordpress.co
<div id="chart">Building chart... </div>
<footer>
<p id="instructions">Turn device to toggle between calendar and chart view.</p>
- <p>&copy; netplusdesign 2012</p>
+ <p>&copy; netplusdesign 2012-2013</p>
</footer>
</div>
<script src="js/jquery-1.7.1.min.js"></script>
@@ -92,6 +93,7 @@ <h1><a href="..">NetPlusDesign</a> &gt; <a href="http://uphillhouse.wordpress.co
}(document));
// global variables
+ var houseId = 0;
var chart = null;
var today, setDay;
var validDateRanges = []; // for base data (0-1) and circuit data (2-3)
@@ -151,7 +153,7 @@ <h1><a href="..">NetPlusDesign</a> &gt; <a href="http://uphillhouse.wordpress.co
setupCalendar(); // integrate with redraw at some point in future
// get initializing variables
- $.get('get_daily_metadata.php', function(data)
+ $.get('get_daily_metadata.php?house='+houseId, function(data)
{
var lines = data.split('\n'); // splits the file into lines
$.each(lines, function(lineNo, line)
@@ -561,12 +563,12 @@ <h1><a href="..">NetPlusDesign</a> &gt; <a href="http://uphillhouse.wordpress.co
function getMonthFilename( d )
{
//return "data/" + formatAddZero( (d.getMonth()+1).toString() ) + "-" + d.getFullYear() + "-day-data.csv";
- return "get_daily_data.php?date=" + today.getFullYear() + "-" + formatAddZero( (today.getMonth()+1).toString() ) + "-" + formatAddZero( today.getDate().toString() );
+ return "get_daily_data.php?house=" + houseId + "&date=" + today.getFullYear() + "-" + formatAddZero( (today.getMonth()+1).toString() ) + "-" + formatAddZero( today.getDate().toString() );
}
function getDayFilename( d )
{
- return "get_hourly_data.php?date=" + today.getFullYear() + "-" + formatAddZero( (today.getMonth()+1).toString() ) + "-" + formatAddZero( today.getDate().toString() );
+ return "get_hourly_data.php?house=" + houseId + "&date=" + today.getFullYear() + "-" + formatAddZero( (today.getMonth()+1).toString() ) + "-" + formatAddZero( today.getDate().toString() );
}
function formatAddZero( d )
View
@@ -8,28 +8,31 @@
exit();
}
- if (isset($_GET['date']))
+ if ( (isset($_GET['date'])) && isset($_GET['house']) )
{
$date = get_post($link, 'date');
date_default_timezone_set('America/New_York');
+ $house = get_post($link, 'house');
/*
SELECT tu.date, e.adjusted_load, e.solar, e.used, tu.outdoor_deg_min, tu.outdoor_deg_max, th.hdd, e.water_heater, e.ashp, e.water_pump, e.dryer, e.washer, e.dishwasher, e.stove
- FROM (SELECT date, temperature_min AS 'outdoor_deg_min', temperature_max AS 'outdoor_deg_max' FROM temperature_daily WHERE device_id = 0) tu
- LEFT JOIN (SELECT date, hdd FROM hdd_daily) th ON (th.date = tu.date)
- LEFT JOIN energy_daily e ON (e.date = tu.date)
- WHERE YEAR(tu.date) = 2012
+ FROM (SELECT house_id, date, temperature_min AS 'outdoor_deg_min', temperature_max AS 'outdoor_deg_max' FROM temperature_daily WHERE device_id = 0) tu
+ LEFT JOIN (SELECT house_id, date, hdd FROM hdd_daily) th ON th.date = tu.date AND th.house_id = tu.house_id
+ LEFT JOIN energy_daily e ON e.date = tu.date AND e.house_id = tu.house_id
+ WHERE tu.house_id = 0
+ AND YEAR(tu.date) = 2012
AND MONTH(tu.date) = 3;
* */
$query = "SELECT tu.date, e.adjusted_load, e.solar, e.used, ";
$query .= "tu.outdoor_deg_min, tu.outdoor_deg_max, th.hdd, ";
$query .= "e.water_heater, e.ashp, e.water_pump, e.dryer, e.washer, e.dishwasher, e.stove, ";
$query .= "e.used-(e.water_heater+e.ashp+e.water_pump+e.dryer+e.washer+e.dishwasher+e.stove) AS 'All other circuits' ";
- $query .= "FROM (SELECT date, temperature_min AS 'outdoor_deg_min', temperature_max AS 'outdoor_deg_max' FROM temperature_daily WHERE device_id = 0) tu ";
- $query .= "LEFT JOIN (SELECT date, hdd FROM hdd_daily) th ON (th.date = tu.date) ";
- $query .= "LEFT JOIN energy_daily e ON (e.date = tu.date) ";
- $query .= "WHERE YEAR(tu.date) = " . date_format(date_create($date), 'Y') . " ";
+ $query .= "FROM (SELECT house_id, date, temperature_min AS 'outdoor_deg_min', temperature_max AS 'outdoor_deg_max' FROM temperature_daily WHERE device_id = 0) tu ";
+ $query .= "LEFT JOIN (SELECT house_id, date, hdd FROM hdd_daily) th ON th.date = tu.date AND th.house_id = tu.house_id ";
+ $query .= "LEFT JOIN energy_daily e ON e.date = tu.date AND e.house_id = tu.house_id ";
+ $query .= "WHERE tu.house_id = $house ";
+ $query .= "AND YEAR(tu.date) = " . date_format(date_create($date), 'Y') . " ";
$query .= "AND MONTH(tu.date) = " . date_format(date_create($date), 'm');
if ($result = mysqli_query($link, $query))
View
@@ -8,31 +8,65 @@
exit();
}
- $query = "SELECT MIN(e.date), MAX(e.date) FROM energy_daily e, temperature_daily t where e.date = t.date UNION SELECT MIN(e.date), MAX(e.date) FROM energy_daily e, temperature_daily t WHERE e.date = t.date AND water_heater IS NOT NULL;";
- $query .= "SELECT used_max, solar_min, outdoor_deg_min, outdoor_deg_max, hdd_max FROM limits_hourly;";
-
- if ($result = mysqli_multi_query($link, $query))
+ if ( isset($_GET['house'] ) )
{
- do
+ $house = get_post($link, 'house');
+
+ /*
+ SELECT MIN(e.date), MAX(e.date)
+ FROM energy_daily e, temperature_daily t
+ WHERE e.house_id = 0
+ AND e.date = t.date
+ UNION
+ SELECT MIN(e.date), MAX(e.date)
+ FROM energy_daily e, temperature_daily t
+ WHERE e.house_id = 0
+ AND e.date = t.date
+ AND water_heater IS NOT NULL;
+ * */
+ $query = "SELECT MIN(e.date), MAX(e.date) FROM energy_daily e, temperature_daily t WHERE e.house_id = $house AND e.date = t.date UNION SELECT MIN(e.date), MAX(e.date) FROM energy_daily e, temperature_daily t WHERE e.house_id = $house AND e.date = t.date AND water_heater IS NOT NULL;";
+
+ /*
+ SELECT used_max, solar_min, outdoor_deg_min, outdoor_deg_max, hdd_max
+ FROM limits_hourly
+ WHERE house_id = 0;
+ * */
+ $query .= "SELECT used_max, solar_min, outdoor_deg_min, outdoor_deg_max, hdd_max FROM limits_hourly WHERE house_id = $house;";
+
+ if ($result = mysqli_multi_query($link, $query))
{
- if ($result = mysqli_store_result($link))
+ do
{
- switch($j++)
+ if ($result = mysqli_store_result($link))
{
- case(0):
- $row = mysqli_fetch_row($result);
- echo $row[0] . "," . $row[1] . ",";
- $row = mysqli_fetch_row($result);
- echo $row[0] . "," . $row[1] . "\r\n";
- break;
- case(1):
- $row = mysqli_fetch_row($result);
- echo $row[0] . "," . $row[1] . "," . $row[2] . "," . $row[3] . "," . $row[4] . "\r\n";
+ switch($j++)
+ {
+ case(0):
+ $row = mysqli_fetch_row($result);
+ echo $row[0] . "," . $row[1] . ",";
+ $row = mysqli_fetch_row($result);
+ echo $row[0] . "," . $row[1] . "\r\n";
+ break;
+ case(1):
+ $row = mysqli_fetch_row($result);
+ echo $row[0] . "," . $row[1] . "," . $row[2] . "," . $row[3] . "," . $row[4] . "\r\n";
+ }
+ mysqli_free_result($result);
}
- mysqli_free_result($result);
- }
- } while (mysqli_next_result($link));
- }
+ } while (mysqli_next_result($link));
+ }
- mysqli_close($link);
+ mysqli_close($link);
+ }
+ else
+ {
+ echo "not";
+ }
+
+ function get_post($link, $var)
+ {
+ $temp = mysqli_real_escape_string($link, $_GET[$var]);
+ if ($temp == '') $temp = 'NULL';
+ return $temp;
+ }
?>
View
@@ -8,57 +8,69 @@
exit();
}
- if (isset($_GET['base']) && isset($_GET['period']))
+ if (isset($_GET['base']) && isset($_GET['period']) && isset($_GET['house']))
{
$base = get_post($link, 'base');
$period = get_post($link, 'period');
+ $house = get_post($link, 'house');
}
else
{
- // default
- $base = 65.0;
- $period = "hours";
+ echo "failed";
}
/*
- SELECT (54.0 - t.temperature) * 1 / 24 AS 'hdd', e.ashp/1000.0, e.date
- FROM energy_hourly e, (SELECT date, temperature FROM temperature_hourly WHERE device_id = 0) t
- WHERE e.date = t.date
+ SELECT (54.0 - t.temperature) * 1 / 24 AS 'hdd', e.ashp/1000.0, t.temperature, e.date
+ FROM energy_hourly e, (SELECT house_id, date, temperature FROM temperature_hourly WHERE device_id = 0) t
+ WHERE e.house_id = 0
+ AND e.house_id = t.house_id
+ AND e.date = t.date
AND t.temperature < 54
AND e.ashp > 0;
* */
// hourly
- $query['hours'] = "SELECT ($base - t.temperature) * (1 / 24) AS 'hdd', e.ashp/1000.0, e.date ";
- $query['hours'] .= "FROM energy_hourly e, (SELECT date, temperature FROM temperature_hourly WHERE device_id = 0) t ";
- $query['hours'] .= "WHERE e.date = t.date ";
+ $query['hours'] = "SELECT ($base - t.temperature) * (1 / 24) AS 'hdd', e.ashp/1000.0, t.temperature, e.date ";
+ $query['hours'] .= "FROM energy_hourly e, (SELECT house_id, date, temperature FROM temperature_hourly WHERE device_id = 0) t ";
+ $query['hours'] .= "WHERE e.house_id = $house ";
+ $query['hours'] .= "AND e.house_id = t.house_id ";
+ $query['hours'] .= "AND e.date = t.date ";
$query['hours'] .= "AND t.temperature < $base ";
$query['hours'] .= "AND e.ashp > 0";
-
/*
- SELECT e.date, SUM(e.ashp)/1000.0, SUM(t.hdd)
- FROM (SELECT date, IF(((68 - temperature) * 1 / 24) > 0, (68 - temperature) * 1 / 24, 0) AS 'hdd' FROM temperature_hourly WHERE device_id = 0) t, energy_hourly e
- WHERE t.date = e.date
+ SELECT SUM(t.hdd), SUM(e.ashp)/1000.0, t.temperature, e.date
+ FROM (SELECT house_id, date, temperature, IF(((68 - temperature) * 1 / 24) > 0, (68 - temperature) * 1 / 24, 0) AS 'hdd' FROM temperature_hourly WHERE device_id = 0) t, energy_hourly e
+ WHERE e.house_id = 0
+ AND t.house_id = e.house_id
+ AND t.date = e.date
AND CAST(e.date AS DATE) = ANY (SELECT e.date FROM energy_daily e, temperature_daily t WHERE t.device_id = 0 AND e.date = t.date AND t.temperature_min <= 68 AND e.ashp > 0)
GROUP BY CAST(t.date AS DATE);
* */
// daily
- $query['days'] = "SELECT SUM(t.hdd), SUM(e.ashp)/1000.0, e.date ";
- $query['days'] .= "FROM (SELECT date, IF((($base - temperature) * 1 / 24) > 0, ($base - temperature) * 1 / 24, 0) AS 'hdd' FROM temperature_hourly WHERE device_id = 0) t, energy_hourly e ";
- $query['days'] .= "WHERE t.date = e.date ";
+ $query['days'] = "SELECT SUM(t.hdd), SUM(e.ashp)/1000.0, t.temperature, e.date ";
+ $query['days'] .= "FROM (SELECT house_id, date, temperature, IF((($base - temperature) * 1 / 24) > 0, ($base - temperature) * 1 / 24, 0) AS 'hdd' FROM temperature_hourly WHERE device_id = 0) t, energy_hourly e ";
+ $query['days'] .= "WHERE e.house_id = $house ";
+ $query['days'] .= "AND t.house_id = e.house_id ";
+ $query['days'] .= "AND t.date = e.date ";
$query['days'] .= "AND CAST(e.date AS DATE) = ANY (SELECT e.date FROM energy_daily e, temperature_daily t WHERE t.device_id = 0 AND e.date = t.date AND t.temperature_min <= $base AND e.ashp > 0) ";
$query['days'] .= "GROUP BY CAST(t.date AS DATE)";
/*
- SELECT e.date, SUM(e.ashp)/1000.0, SUM(t.hdd)
- FROM (SELECT date, IF(((68 - temperature) * 1 / 24) > 0, (68 - temperature) * 1 / 24, 0) AS 'hdd' FROM temperature_hourly WHERE device_id = 0) t, energy_hourly e
- WHERE t.date = e.date
- AND e.date > DATE('2012-03-15') AND ( MONTH(e.date) < 6 OR MONTH(e.date) > 8 )
+ SELECT SUM(t.hdd), SUM(e.ashp)/1000.0, t.temperature, e.date
+ FROM (SELECT house_id, date, temperature, IF(((68 - temperature) * 1 / 24) > 0, (68 - temperature) * 1 / 24, 0) AS 'hdd' FROM temperature_hourly WHERE device_id = 0) t, energy_hourly e
+ WHERE e.house_id = 0
+ AND t.house_id = e.house_id
+ AND t.date = e.date
+ AND e.date > DATE('2012-03-15')
+ AND ( MONTH(e.date) < 6
+ OR MONTH(e.date) > 8 )
GROUP BY MONTH(t.date);
*/
// monthly
- $query['months'] = "SELECT SUM(t.hdd), SUM(e.ashp)/1000.0, e.date ";
- $query['months'] .= "FROM (SELECT date, IF((($base - temperature) * 1 / 24) > 0, ($base - temperature) * 1 / 24, 0) AS 'hdd' FROM temperature_hourly WHERE device_id = 0) t, energy_hourly e ";
- $query['months'] .= "WHERE t.date = e.date ";
+ $query['months'] = "SELECT SUM(t.hdd), SUM(e.ashp)/1000.0, t.temperature, e.date ";
+ $query['months'] .= "FROM (SELECT house_id, date, temperature, IF((($base - temperature) * 1 / 24) > 0, ($base - temperature) * 1 / 24, 0) AS 'hdd' FROM temperature_hourly WHERE device_id = 0) t, energy_hourly e ";
+ $query['months'] .= "WHERE e.house_id = $house ";
+ $query['months'] .= "AND t.house_id = e.house_id ";
+ $query['months'] .= "AND t.date = e.date ";
$query['months'] .= "AND e.date > DATE('2012-03-15') ";
$query['months'] .= "AND (MONTH(e.date) < 6 ";
$query['months'] .= "OR MONTH(e.date) > 8) ";
@@ -68,7 +80,7 @@
{
while ($row = mysqli_fetch_row($result))
{
- echo $row[0] . "," . $row[1] . "," . $row[2] . "\r\n";
+ echo $row[0] . "," . $row[1] . "," . $row[2] . "," . $row[3] . "\r\n";
}
mysqli_free_result($result);
}
View
@@ -7,30 +7,33 @@
exit();
}
- if (isset($_GET['date']))
+ if (isset($_GET['date']) && isset($_GET['house']))
{
$date = get_post($link, 'date');
date_default_timezone_set('America/New_York');
+ $house = get_post($link, 'house');
/*
- SELECT ti.date, e.adjusted_load, ti.indoor_deg, tu.outdoor_deg, th.hdd, e.water_heater, e.ashp, e.water_pump, e.dryer, e.washer, e.dishwasher, e.stove,
- e.used-(e.water_heater+e.ashp+e.water_pump+e.dryer+e.washer+e.dishwasher+e.stove) AS 'All other circuits'
- FROM (SELECT date, temperature AS 'indoor_deg' FROM temperature_hourly WHERE device_id = 1) ti
- LEFT JOIN (SELECT date, temperature AS 'outdoor_deg' FROM temperature_hourly WHERE device_id = 0) tu ON (tu.date = ti.date)
- LEFT JOIN (SELECT date, hdd FROM hdd_hourly) th ON (th.date = ti.date)
- LEFT JOIN energy_hourly e ON (e.date = ti.date)
- WHERE CAST(ti.date AS DATE) = DATE('2012-03-12');
+SELECT ti.date, e.adjusted_load, ti.indoor_deg, tu.outdoor_deg, th.hdd, e.water_heater, e.ashp, e.water_pump, e.dryer, e.washer, e.dishwasher, e.stove,
+ e.used-(e.water_heater+e.ashp+e.water_pump+e.dryer+e.washer+e.dishwasher+e.stove) AS 'All other circuits'
+FROM (SELECT house_id, date, temperature AS 'indoor_deg' FROM temperature_hourly WHERE device_id = 1) ti
+ LEFT JOIN (SELECT house_id, date, temperature AS 'outdoor_deg' FROM temperature_hourly WHERE device_id = 0) tu ON tu.date = ti.date AND tu.house_id = ti.house_id
+ LEFT JOIN (SELECT house_id, date, hdd FROM hdd_hourly) th ON th.date = ti.date AND th.house_id = ti.house_id
+ LEFT JOIN energy_hourly e ON e.date = ti.date AND e.house_id = ti.house_id
+WHERE CAST(ti.date AS DATE) = DATE('2012-03-12')
+ AND ti.house_id = 0;
* */
$query = "SELECT ti.date, e.adjusted_load, e.solar, e.used, ";
$query .= "ti.indoor_deg, tu.outdoor_deg, th.hdd, ";
$query .= "e.water_heater, e.ashp, e.water_pump, e.dryer, e.washer, e.dishwasher, e.stove, ";
$query .= "e.used-(e.water_heater+e.ashp+e.water_pump+e.dryer+e.washer+e.dishwasher+e.stove) AS 'All other' ";
- $query .= "FROM (SELECT date, temperature AS 'indoor_deg' FROM temperature_hourly WHERE device_id = 1) ti ";
- $query .= "LEFT JOIN (SELECT date, temperature AS 'outdoor_deg' FROM temperature_hourly WHERE device_id = 0) tu ON (tu.date = ti.date) ";
- $query .= "LEFT JOIN (SELECT date, hdd FROM hdd_hourly) th ON (th.date = ti.date) ";
- $query .= "LEFT JOIN energy_hourly e ON (e.date = ti.date) ";
- $query .= "WHERE CAST(ti.date AS DATE) = DATE('" . date_format(date_create($date), 'Y-m-d') . "')";
+ $query .= "FROM (SELECT house_id, date, temperature AS 'indoor_deg' FROM temperature_hourly WHERE device_id = 1) ti ";
+ $query .= "LEFT JOIN (SELECT house_id, date, temperature AS 'outdoor_deg' FROM temperature_hourly WHERE device_id = 0) tu ON tu.date = ti.date AND tu.house_id = ti.house_id ";
+ $query .= "LEFT JOIN (SELECT house_id, date, hdd FROM hdd_hourly) th ON th.date = ti.date AND th.house_id = ti.house_id ";
+ $query .= "LEFT JOIN energy_hourly e ON e.date = ti.date AND e.house_id = ti.house_id ";
+ $query .= "WHERE CAST(ti.date AS DATE) = DATE('" . date_format(date_create($date), 'Y-m-d') . "') ";
+ $query .= "AND ti.house_id = $house;";
if ($result = mysqli_query($link, $query))
{
View
@@ -10,39 +10,41 @@
}
date_default_timezone_set('America/New_York');
- if (isset($_GET['date']))
+ if (isset($_GET['date']) && isset($_GET['house']))
{
$date = get_post($link, 'date');
$year = date_format(date_create($date), 'Y');
+ $house = get_post($link, 'house');
}
else
{
- $year = '2012'; // default
+ echo "failed";
}
// 0) total generated
- $query .= "SELECT SUM(solar) FROM energy_monthly;";
+ $query .= "SELECT SUM(solar) FROM energy_monthly WHERE house_id = $house;";
// 1 and 2) max solar hour and day
- $query .= "SELECT solar, date FROM energy_hourly WHERE solar = (SELECT MIN(solar) FROM energy_hourly);";
- $query .= "SELECT solar, date FROM energy_daily WHERE solar = (SELECT MIN(solar) FROM energy_daily);";
+ $query .= "SELECT solar, date FROM energy_hourly WHERE solar = (SELECT MIN(solar) FROM energy_hourly) AND house_id = 0;";
+ $query .= "SELECT solar, date FROM energy_daily WHERE solar = (SELECT MIN(solar) FROM energy_daily) AND house_id = 0;";
// 3 and 4) list by month
/*
SELECT SUM(en.solar), SUM(es.solar)
FROM energy_monthly en
- LEFT JOIN estimated_monthly es ON en.date = es.date
- WHERE YEAR(en.date) = 2012
- ORDER BY en.date;
+ LEFT JOIN estimated_monthly es ON en.date = es.date AND en.house_id = es.house_id
+ WHERE en.house_id = 0
+ AND YEAR(en.date) = 2012;
* */
- $query .= "SELECT SUM(en.solar), SUM(es.solar) FROM energy_monthly en LEFT JOIN estimated_monthly es ON en.date = es.date WHERE YEAR(en.date) = $year ORDER BY en.date;";
+ $query .= "SELECT SUM(en.solar), SUM(es.solar) FROM energy_monthly en LEFT JOIN estimated_monthly es ON en.date = es.date AND en.house_id = es.house_id WHERE en.house_id = $house AND YEAR(en.date) = $year;";
/*
- SELECT en.date, SUM(en.solar), SUM(es.solar)
- FROM energy_monthly en
- LEFT JOIN estimated_monthly es ON en.date = es.date
- WHERE YEAR(en.date) = 2012
- GROUP BY MONTH(en.date)
- ORDER BY en.date;
+SELECT en.date, SUM(en.solar), SUM(es.solar)
+FROM energy_monthly en
+ LEFT JOIN estimated_monthly es ON en.date = es.date AND en.house_id = es.house_id
+WHERE en.house_id = 0
+ AND YEAR(en.date) = 2012
+GROUP BY MONTH(en.date)
+ORDER BY en.date;
* */
- $query .= "SELECT en.date, SUM(en.solar), SUM(es.solar) FROM energy_monthly en LEFT JOIN estimated_monthly es ON en.date = es.date WHERE YEAR(en.date) = $year GROUP BY MONTH(en.date) ORDER BY en.date";
+ $query .= "SELECT en.date, SUM(en.solar), SUM(es.solar) FROM energy_monthly en LEFT JOIN estimated_monthly es ON en.date = es.date AND en.house_id = es.house_id WHERE en.house_id = $house AND YEAR(en.date) = $year GROUP BY MONTH(en.date) ORDER BY en.date;";
$output = array(
"max_solar_hour" => array(),
Oops, something went wrong.

0 comments on commit 8220549

Please sign in to comment.