# HG changeset patch # User Michiel Broek # Date 1692779409 -7200 # Node ID 542bdc7f65222df2d31d9ea53fabbae498a09de4 # Parent dc9281501ca6407c69c76aac48795ee5d1319dcc Backported battery capacity calculation and temperature compensation for iSpindel. diff -r dc9281501ca6 -r 542bdc7f6522 www/getispindellog.php --- a/www/getispindellog.php Sat Aug 19 15:11:35 2023 +0200 +++ b/www/getispindellog.php Wed Aug 23 10:30:09 2023 +0200 @@ -13,15 +13,25 @@ } 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' => $row['sg'], + 'sg' => $SG, 'battery' => $row['battery'] ); } diff -r dc9281501ca6 -r 542bdc7f6522 www/js/global.js --- a/www/js/global.js Sat Aug 19 15:11:35 2023 +0200 +++ b/www/js/global.js Wed Aug 23 10:30:09 2023 +0200 @@ -1240,4 +1240,3 @@ return total_alkalinity - (calcium / 1.4 + magnesium / 1.7); } - diff -r dc9281501ca6 -r 542bdc7f6522 www/js/mon_ispindel.js --- a/www/js/mon_ispindel.js Sat Aug 19 15:11:35 2023 +0200 +++ b/www/js/mon_ispindel.js Wed Aug 23 10:30:09 2023 +0200 @@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2019-2020 + * Copyright (C) 2019-2023 * * Michiel Broek * @@ -173,10 +173,11 @@ $('#vg_abv').html(''); } - var batt = record.battery - 3.064; // 0% voltage. + var battery_max = 4.13; + var battery_min = 3.43; + var batt = Math.round(((record.battery - battery_min) / (battery_max - battery_min)) * 1000) / 10; if (batt < 0) batt = 0; - batt = Math.round(batt / 1.17875 * 100); // 100% range if (batt > 100) batt = 100; $('#vg_batt').html(batt + '%');