www/getfermentlog.php

changeset 836
409f8c497429
parent 601
112c278be803
--- a/www/getfermentlog.php	Wed Aug 10 14:32:58 2022 +0200
+++ b/www/getfermentlog.php	Wed Aug 10 15:21:06 2022 +0200
@@ -3,119 +3,33 @@
 require_once('config.php');
 
 if (isset($_GET["code"]))
-	$code = $_GET["code"] . ' ' . $_GET["name"];
+	$code = $_GET["code"];
 else
-	$code = "TB0015 Winterbier-2";
+	$code = "TB0015";
+
+$connect = mysqli_connect(DBASE_HOST, DBASE_USER, DBASE_PASS, DBASE_NAME);
+if (! $connect) {
+        die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error());
+}
+mysqli_set_charset($connect, "utf8" );
 
-$filename = 'log/fermentation/' . $code . '.log';
-if (! file_exists($filename)) {
-        header("Content-type: application/json");
-        echo '{}';
-        exit;
+$query = "SELECT * FROM log_fermenter WHERE code='".$code."' ORDER BY datetime;";
+$result = mysqli_query($connect, $query) or die("SQL Error 1: " . mysqli_error($connect));
+while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
+
+    $logs[] = array(
+        'date' => substr($row['datetime'],0,16),
+        'air' => $row['temp_air'],
+        'beer' => $row['temp_beer'],
+        'chiller' => $row['temp_chiller'],
+        'room' => $row['temp_room'],
+        'tlo' => $row['sp_low'],
+        'thi' => $row['sp_high'],
+        'heater' => $row['heater_power'],
+        'cooler' => $row['cooler_power'],
+        'event' => $row['event']
+    );
 }
 
-
-/*
- * From Stackoverflow, the fastest way to count the lines in a file.
- */
-$file = new \SplFileObject($filename, 'r');
-$file->seek(PHP_INT_MAX);
-
-define ('MAX_INTERVALS', 10);
-$GRAPH_INTERVAL = array ( 0, 1, 5, 15, 30, 60, 120, 240, 480, 720 );
-$GRAPH_DATALINES = array ( 0, 800, 3200, 12000, 24000, 48000, 96000, 192000, 384000, 768000 );
-
-
-for ($graphstep = 1; $graphstep <= MAX_INTERVALS; $graphstep++) {
-	if ($file->key() < $GRAPH_DATALINES[$graphstep])
-		break;
-}
-if ($graphstep > MAX_INTERVALS)
-	$graphstep = MAX_INTERVALS;
-
-/*
- * 2014-11-15 18:39,BEER,PRIMARY,20.312,19.750,-1.500,20.5,18.6,18.8,35,12345,0,67890,Whatsup
- *          |         |     |      |      |      |      |    |    |   |   |   |   |      |
- * datetime +         |     |      |      |      |      |    |    |   |   |   |   |      |
- * mode --------------+     |      |      |      |      |    |    |   |   |   |   |      |
- * stage -------------------+      |      |      |      |    |    |   |   |   |   |      |
- * temp air -----------------------+      |      |      |    |    |   |   |   |   |      |
- * temp beer -----------------------------+      |      |    |    |   |   |   |   |      |
- * temp chiller ---------------------------------+      |    |    |   |   |   |   |      |
- * temp room -------------------------------------------+    |    |   |   |   |   |      |
- * setpoint low ---------------------------------------------+    |   |   |   |   |      |
- * setpoint high -------------------------------------------------+   |   |   |   |      |
- * heater power ------------------------------------------------------+   |   |   |      |
- * heater usage ----------------------------------------------------------+   |   |      |
- * cooler power --------------------------------------------------------------+   |      |
- * cooler usage ------------------------------------------------------------------+      |
- * event --------------------------------------------------------------------------------+
- */
-
-$heater_l = 0;
-$cooler_l = 0;
-
-$handle = @fopen($filename, "r");
-if ($handle) {
-	$lines = 0;
-	while (($buffer = fgets($handle, 4096)) !== false) {
-
-		$buffer = preg_replace( "/\r|\n/", "", $buffer);
-		$row = explode(",", $buffer);
-		if ($row[1] != 'Mode') {
-
-			$hr = intval(substr($buffer, 11, 2));
-			if ((($graphstep == 1)) ||
-			    (($graphstep == 2) && ((substr($buffer, 15, 1) == '0') || (substr($buffer, 15, 1) == '5'))) ||
-			    (($graphstep == 3) && ((substr($buffer, 14, 2) == '00') || (substr($buffer, 14, 2) == '15') ||
-						   (substr($buffer, 14, 2) == '30') || (substr($buffer, 14, 2) == '45'))) ||
-			    (($graphstep == 4) && ((substr($buffer, 14, 2) == '00') || (substr($buffer, 14, 2) == '30'))) ||
-			    (($graphstep == 5) && (substr($buffer, 14, 2) == '00')) ||
-			    (($graphstep == 6) && (substr($buffer, 14, 2) == '00') && (($hr % 2) == 0)) ||
-			    (($graphstep == 7) && (substr($buffer, 14, 2) == '00') && (($hr % 4) == 0)) ||
-			    (($graphstep == 8) && (substr($buffer, 14, 2) == '00') && (($hr % 8) == 0)) ||
-			    (($graphstep == 9) && (substr($buffer, 14, 2) == '00') && (($hr % 12) == 0))) {
-//				echo $hr . ' ' . $row[1] . ' ' . $buffer;
-				$lines++;
-
-				$heat_used = $cool_used = 0;
-				if ($row[10] && ($row[10] != "NA") && ($heater_l > 0)) {
-					$heat_used = round((intval($row[10]) - $heater_l) * 100 / ($GRAPH_INTERVAL[$graphstep] * 60));
-				}
-				if ($row[12] && ($row[12] != "NA") && ($cooler_l > 0)) {
-					$cool_used = round((intval($row[12]) - $cooler_l) * 100 / ($GRAPH_INTERVAL[$graphstep] * 60));
-				}
-
-
-//				echo $GRAPH_INTERVAL[$graphstep] . ' ' . $heat_used . ' ' . $cool_used . PHP_EOL;
-
-				if (($heat_used <= 100) && ($cool_used <= 100)) {
-					$logs[] = array(
-						'date' => $row[0],
-						'air' => $row[3],
-						'beer' => $row[4],
-						'chiller' => $row[5],
-						'room' => $row[6],
-						'tlo' => $row[7],
-						'thi' => $row[8],
-						'heater' => $heat_used,
-						'cooler' => $cool_used,
-						'event' => $row[13]
-					);
-				}
-
-				if ($row[10] && ($row[10] != "NA"))
-					$heater_l = intval($row[10]);
-				if ($row[12] && ($row[12] != "NA"))
-					$cooler_l = intval($row[12]);
-			}
-		}
-
-	}
-	if (!feof($handle)) {
-		echo "Error: unexpected fgets() fail\n";
-	}
-	fclose($handle);
-}
 header("Content-type: application/json");
 echo json_encode($logs);

mercurial