www/getispindellog.php

Wed, 23 Aug 2023 10:30:09 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Wed, 23 Aug 2023 10:30:09 +0200
changeset 848
542bdc7f6522
parent 837
b5e2ff72cc73
permissions
-rw-r--r--

Backported battery capacity calculation and temperature compensation for iSpindel.

<?php

require_once('config.php');

if (isset($_GET["code"]))
	$code = $_GET["code"];
else
	$code = "CB0111";

$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" );

function HydroCorrection($mg, $tr, $tc)
{
    $trf = $tr * 1.8 + 32;
    $tcf = $tc * 1.8 + 32;

    return $mg * ((1.00130346 - 1.34722124E-4 * $trf + 2.04052596E-6 * $trf * $trf - 2.32820948E-9 * $trf * $trf * $trf) /
                  (1.00130346 - 1.34722124E-4 * $tcf + 2.04052596E-6 * $tcf * $tcf - 2.32820948E-9 * $tcf * $tcf * $tcf));
}

$query = "SELECT * FROM log_ispindel 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)) {

    $SG = HydroCorrection($row['sg'], $row['temperature'], 20.0);
    $logs[] = array(
	'date' => substr($row['datetime'],0,16),
	'temperature' => $row['temperature'],
	'plato' => $row['plato'],
	'sg' => $SG,
	'battery' => $row['battery']
    );
}
header("Content-type: application/json");
echo json_encode($logs);

mercurial