diff --git a/html/format.htm b/html/format.htm index b241383..f75e6f7 100644 --- a/html/format.htm +++ b/html/format.htm @@ -147,38 +147,71 @@ // Test the calibration $("#test-btn").click(function(e) { - var doc = $("#format").val(); - doc = doc.replaceAll("${mdns}", "testing"); - doc = doc.replaceAll("${id}", "e4a344"); - doc = doc.replaceAll("${sleep-interval}", "300"); - doc = doc.replaceAll("${temp}", "21.1"); - doc = doc.replaceAll("${token}", "a-token"); - doc = doc.replaceAll("${temp-c}", "21.1"); - doc = doc.replaceAll("${temp-f}", "51.3"); - doc = doc.replaceAll("${temp-unit}", "C"); - doc = doc.replaceAll("${battery}", "3.86"); - doc = doc.replaceAll("${rssi}", "-76"); - doc = doc.replaceAll("${run-time}", "4.32"); - doc = doc.replaceAll("${gravity}", "1.044"); - doc = doc.replaceAll("${gravity-sg}", "1.044"); - doc = doc.replaceAll("${gravity-plato}", "9.5"); - doc = doc.replaceAll("${gravity-unit}", "G"); - doc = doc.replaceAll("${corr-gravity}", "1.044"); - doc = doc.replaceAll("${corr-gravity-sg}", "1.044"); - doc = doc.replaceAll("${corr-gravity-plato}", "9.5"); - doc = doc.replaceAll("${angle}", "54.5"); - doc = doc.replaceAll("${tilt}", "54.5"); + var url = "/api/status"; + //var url = "/test/status.json"; + $('#spinner').show(); + $.getJSON(url, function (cfg) { + console.log( cfg ); - // Format in a readable json string. - try { - var json = JSON.parse(doc); - doc = JSON.stringify(json, null, 2); - } catch(e) { - console.log("Not a javascript object!") - } + var doc = $("#format").val(); - $("#preview").text(doc); + if (cfg["temp-format"]=="C") + doc = doc.replaceAll("${temp}", cfg["temp-c"]); + else + doc = doc.replaceAll("${temp}", cfg["temp-f"]); + + if (cfg["gravity-format"]=="G") { + var sg = cfg["gravity"]; + doc = doc.replaceAll("${gravity-sg}", sg); + doc = doc.replaceAll("${corr-gravity-sg}", sg); + var plato = 259 - (259 - sg); + doc = doc.replaceAll("${gravity-plato}", plato); + doc = doc.replaceAll("${corr-gravity-plato}", plato); + } + else { + var plato = cfg["gravity"]; + doc = doc.replaceAll("${gravity-plato}", plato); + doc = doc.replaceAll("${corr-gravity-plato}", plato); + var sg = 259 / (259 - plato); + doc = doc.replaceAll("${gravity-sg}", sg); + doc = doc.replaceAll("${corr-gravity-sg}", sg); + } + + doc = doc.replaceAll("${mdns}", cfg["mdns"]); + doc = doc.replaceAll("${id}", cfg["id"]); + doc = doc.replaceAll("${sleep-interval}", cfg["sleep-interval"]); + doc = doc.replaceAll("${token}", cfg["token"]); + doc = doc.replaceAll("${temp-c}", cfg["temp-c"]); + doc = doc.replaceAll("${temp-f}", cfg["temp-f"]); + doc = doc.replaceAll("${temp-unit}", cfg["temp-format"]); + doc = doc.replaceAll("${battery}", cfg["battery"]); + doc = doc.replaceAll("${rssi}", cfg["rssi"]); + doc = doc.replaceAll("${run-time}", cfg["runtime-average"]); + doc = doc.replaceAll("${gravity}", cfg["gravity"]); + doc = doc.replaceAll("${gravity-unit}", cfg["gravity-format"]); + doc = doc.replaceAll("${corr-gravity}", cfg["gravity"]); + doc = doc.replaceAll("${angle}", cfg["angle"]); + doc = doc.replaceAll("${tilt}", cfg["angle"]); + + // Format in a readable json string. + try { + var json = JSON.parse(doc); + doc = JSON.stringify(json, null, 2); + } catch(e) { + console.log("Not a javascript object!") + } + + $("#preview").text(doc); + + }) + .fail(function () { + showError('Unable to get data from the device.'); + }) + .always(function() { + $('#spinner').hide(); + }); }); + function setButtonDisabled( b ) { $("#format-btn").prop("disabled", b); diff --git a/html/format.min.htm b/html/format.min.htm index 82f5d97..fd846f4 100644 --- a/html/format.min.htm +++ b/html/format.min.htm @@ -1,2 +1,2 @@ Beer Gravity Monitor


(C) Copyright 2021-22 Magnus Persson
\ No newline at end of file +

(C) Copyright 2021-22 Magnus Persson
\ No newline at end of file diff --git a/src/webserver.cpp b/src/webserver.cpp index 1f941dd..da17ca4 100644 --- a/src/webserver.cpp +++ b/src/webserver.cpp @@ -283,6 +283,8 @@ void WebServerHandler::webHandleStatus() { doc[PARAM_GRAVITY_FORMAT] = String(myConfig.getGravityFormat()); doc[PARAM_SLEEP_MODE] = sleepModeAlwaysSkip; doc[PARAM_RSSI] = WiFi.RSSI(); + doc[PARAM_SLEEP_INTERVAL] = myConfig.getSleepInterval(); + doc[PARAM_TOKEN] = myConfig.getToken(); doc[PARAM_APP_VER] = CFG_APPVER; doc[PARAM_MDNS] = myConfig.getMDNS(); diff --git a/src_docs/source/api.rst b/src_docs/source/api.rst index 1271a6e..187bc70 100644 --- a/src_docs/source/api.rst +++ b/src_docs/source/api.rst @@ -102,9 +102,11 @@ Other parameters are the same as in the configuration guide. "battery": 0, "temp-format": "C", "sleep-mode": false, + "token": "token", "rssi": -56, "app-ver": "0.0.0", "mdns": "gravmon", + "sleep-interval": 30, "platform": "esp8266", "runtime-average": 3.12 } diff --git a/src_docs/source/releases.rst b/src_docs/source/releases.rst index dd2b065..a86fafa 100644 --- a/src_docs/source/releases.rst +++ b/src_docs/source/releases.rst @@ -8,6 +8,7 @@ v0.9.0 * Added function to test push targets from configuration page. It will send data and show the return code as a first step. * Merged index and device pages into one so that all the needed information is available on the index page. * Removed api for device (/api/device), it's now merged into the /api/status api. +* Test function in format editor now uses real data and not fake. * Updated WifiManager and DoubleReset libraries * Experimental release of firmware using an esp32 instead of esp8266 * Updated esp32 target with littlefs support @@ -15,6 +16,8 @@ v0.9.0 * Corrected PIN for voltage read on ESP32 * Mounted esp32 d1 mini mounted to a iSpindle PCB 4.0 (CherryPhilip) which worked fine. +* BUG: If using plato and not gravity formula was defined the value was set to null. + v0.8.0 ------