1 line
9.5 KiB
HTML
1 line
9.5 KiB
HTML
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name="description" content=""><title>Beer Gravity Monitor</title><link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous"><style>.row-margin-10{margin-top:1em}</style></head><body class="py-4"><script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script><script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script><nav class="navbar navbar-expand-lg navbar-dark bg-primary"><div class="container"><a class="navbar-brand" href="/index.htm">Beer Gravity Monitor</a> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span></button><div class="collapse navbar-collapse" id="navbarNav"><ul class="navbar-nav"><li class="nav-item"><a class="nav-link active" href="#">Home</a></li><li class="nav-item dropdown"><a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">Configuration</a><ul class="dropdown-menu"><li><a class="dropdown-item" href="/config.htm">Configuration</a></li><li><a class="dropdown-item" href="/format.htm">Format editor</a></li><li><a class="dropdown-item" href="/test.htm">Test push</a></li><li><a class="dropdown-item" href="/firmware.htm">Upload firmware</a></li></ul></li><li class="nav-item"><a class="nav-link" href="/calibration.htm">Calibration</a></li><li class="nav-item"><a class="nav-link" href="/about.htm">About</a></li></ul></div><div class="spinner-border text-light" id="spinner" role="status"></div></div></nav><!-- START MAIN INDEX --><div class="container row-margin-10"><div class="alert alert-success alert-dismissible hide fade d-none" role="alert"><div id="alert"></div><button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button></div><script type="text/javascript">function showError(s){console.log("Error:"+s),$(".alert").removeClass("alert-success").addClass("alert-danger").removeClass("hide").addClass("show").removeClass("d-none"),$("#alert").text(s)}function showSuccess(s){console.log("Success:"+s),$(".alert").addClass("alert-success").removeClass("alert-danger").removeClass("hide").addClass("show").removeClass("d-none"),$("#alert").text(s)}$("#alert-btn").click(function(s){console.log("Disable"),$(".alert").addClass("hide").removeClass("show").addClass("d-none")})</script><div class="accordion" id="accordion"><h2 class="accordion-header" id="headingData"><button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseData" aria-expanded="true" aria-controls="collapseData"><b>Measurement</b></button></h2><div id="collapseData" class="accordion-collapse collapse show" aria-labelledby="headingData" data-bs-parent="#accordion"><div class="accordion-body"><div class="row mb-3"><div class="col-md-4 bg-light">Gravity:</div><div class="col-md-4 bg-light" id="gravity">Loading...</div></div><div class="row mb-3"><div class="col-md-4 bg-light">Temperature:</div><div class="col-md-4 bg-light" id="temp">Loading...</div></div><div class="row mb-3"><div class="col-md-4 bg-light">Angle/Tilt:</div><div class="col-md-4 bg-light" id="angle">Loading...</div></div><div class="row mb-3"><div class="col-md-4 bg-light">Battery:</div><div class="col-md-4 bg-light" id="battery">Loading...</div></div><div class="row mb-3"><div class="col-md-4 bg-light">Average runtime:</div><div class="col-md-4 bg-light" id="runtime">Loading...</div></div><div class="row mb-3"><div class="col-md-8 bg-light custom-control custom-checkbox"><input type="checkbox" class="custom-control-input" name="sleep-mode" id="sleep-mode" disabled> <label class="custom-control-label" for="sleep-mode">Do not enter sleep mode when floating (check this if you are collecting angles/tilt for calibration).</label></div></div></div></div><div class="accordion-item"><h2 class="accordion-header" id="headingSoftware"><button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseSoftware" aria-expanded="true" aria-controls="collapseSoftware"><b>Device</b></button></h2><div id="collapseSoftware" class="accordion-collapse collapse show" aria-labelledby="headingSoftware" data-bs-parent="#accordion"><div class="accordion-body"><div class="row mb-3"><div class="col-md-4 bg-light">Current version:</div><div class="col-md-4 bg-light" id="app-ver">Loading...</div></div><div class="row mb-3" id="h-app-ver-new" hidden><div class="col-md-4 bg-light">New version:</div><div class="col-md-4 bg-light" id="app-ver-new">Loading...</div></div><div class="row mb-3"><div class="col-md-4 bg-light">Host name:</div><div class="col-md-4 bg-light" id="mdns">Loading...</div></div><div class="row mb-3"><div class="col-md-4 bg-light">Device ID:</div><div class="col-md-4 bg-light" id="id">Loading...</div></div><div class="row mb-3"><div class="col-md-4 bg-light">Platform:</div><div class="col-md-4 bg-light" id="platform">Loading...</div></div><div class="row mb-3"><div class="col-md-4 bg-light">SSID:</div><div class="col-md-4 bg-light" id="wifi-ssid">Loading...</div></div><script>function loadLog(){$("#logContent").load("/log")}$("#log-btn").click(function(o){loadLog()}),setInterval(function(){loadLog()},5e3)</script><button class="btn btn-primary btn-sm" type="button" data-bs-toggle="collapse" data-bs-target="#collapseLog" aria-expanded="false" aria-controls="collapseLog" data-bs-toggle="tooltip" title="Load and show the last 10 errors that has occured on the device">View error log</button> <button class="btn btn-secondary btn-sm" type="button" data-bs-toggle="tooltip" name="github-btn" id="github-btn" title="Go to github and place a issue">Submit a issue on github</button> <button class="btn btn-secondary btn-sm" type="button" data-bs-toggle="collapse" data-bs-target="#collapseSupport" aria-expanded="false" aria-controls="collapseSupport" data-bs-toggle="tooltip" name="support-btn" id="support-btn" title="Collect data relevant for a support case">Gather support information</button><div class="collapse row-margin-10" id="collapseLog"><div class="card card-body"><pre><code class="card-text" id="logContent"></code></pre></div></div><div class="collapse row-margin-10" id="collapseSupport"><div class="card card-body"><pre><code class="card-text" id="supportContent"></code></pre></div></div></div></div></div></div></div><script type="text/javascript">function getStatus(){var e="/api/status";$("#spinner").show(),$.getJSON(e,function(e){console.log(e),$("#app-ver").text(e["app-ver"]+" ("+e["app-build"]+")"),$("#mdns").text(e.mdns),$("#id").text(e.id),$("#platform").text(e.platform),$("#wifi-ssid").text(e["wifi-ssid"]),$("#runtime").text(e["runtime-average"]+" seconds");var t=e.angle;0==t?($("#angle").text("Gyro moving"),$("#gravity").text("Gyro moving")):($("#angle").text(e.angle),"G"==e["gravity-format"]?$("#gravity").text(e.gravity+" SG"):$("#gravity").text(e.gravity+" °P"));var a=e.battery,i=0;4.15<a?i=100:4.05<a?i=90:3.97<a?i=80:3.91<a?i=70:3.86<a?i=60:3.81<a?i=50:3.78<a?i=40:3.76<a?i=30:3.73<a?i=20:3.67<a?i=10:3.44<a&&(i=5),$("#battery").text(a+" V ("+i+"%)"),"C"==e["temp-format"]?$("#temp").text(e["temp-c"]+" C"):$("#temp").text(e["temp-f"]+" F"),e["sleep-mode"]?$("#sleep-mode").attr("checked",!0):$("#sleep-mode").attr("checked",!1),$("#sleep-mode").removeAttr("disabled")}).fail(function(){showError("Unable to get data from the device.")}).always(function(){$("#spinner").hide()})}function start(){setInterval(getStatus,3e3)}var debug={};window.onload=start,$("#github-btn").click(function(e){window.location.href="https://github.com/mp-se/gravitymon/issues"}),$("#support-btn").click(function(e){$("#spinner").show();var t="/api/config";$.getJSON(t,function(e){debug={},debug.mdns=e.mdns,debug.id=e.id,debug["sleep-interval"]=e["sleep-interval"],debug["temp-format"]=e["temp-format"],debug["gravity-format"]=e["gravity-format"],debug["gravity-temp-adjustment"]=e["gravity-temp-adjustment"],debug["voltage-factor"]=e["voltage-factor"],debug.platform=e.platform,debug.ble=e.ble,debug["gyro-temp"]=e["gyro-temp"],debug["gyro-calibration-data"]=e["gyro-calibration-data"],debug["temp-adjustment-value"]=e["temp-adjustment-value"];var t="/api/status";$.getJSON(t,function(e){debug["runtime-average"]=e["runtime-average"],debug.rssi=e.rssi,debug["app-ver"]=e["app-ver"],debug["app-build"]=e["app-build"]});t="/api/config/format";$.getJSON(t,function(e){debug.formats=e;var t="/api/config/advanced";$.getJSON(t,function(e){debug.advanced=e;var t="/api/upload";$.getJSON(t,function(e){debug.files=e;var t="/log";$.ajax({url:t,method:"get",success:function(e){debug.log=e.split("\n");var t=JSON.stringify(debug,null,2);$("#supportContent").text(t),$("#spinner").hide()}})})})})})}),$("#sleep-mode").click(function(e){console.log("Blocking sleep mode = "+$("#sleep-mode").is(":checked")),$.ajax({type:"POST",url:"/api/status/sleepmode",data:{id:$("#id").text(),"sleep-mode":$("#sleep-mode").is(":checked")},success:function(e){},error:function(e){showError("Could not update sleep mode for device.")}})})</script><!-- START FOOTER --><div class="container themed-container bg-primary text-light row-margin-10">(C) Copyright 2021-22 Magnus Persson</div></body></html> |