Update app.js

pull/2957/head
inhof009 2023-08-08 09:52:50 -04:00 committed by GitHub
parent f8af4bcbc9
commit 90db121cc9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 35 additions and 42 deletions

View File

@ -1,74 +1,67 @@
var loc = '03272100'; // Configurable location
var keys = ['Gage', 'Discharge', 'Temperature']; // Configurable values
var shortenedName = {"Gage":"Ga","Discharge":"Dis","Temperature":"Temp"};
var dataStreams = {}; // Will hold directions to Datastreams and units, with above keys var dataStreams = {}; // Will hold directions to Datastreams and units, with above keys
//var http = require("http"); var FILE = "usgs.json";
// Load settings
var settings = Object.assign({
loc: '03272100',
keys: {'Gage height': true, 'Discharge': true, 'Temperature, water': true},
shortenedName: {"Gage height":"Ga","Discharge":"Dis","Temperature, water":"Temp"},
tempUnitF: true,
}, require('Storage').readJSON(FILE, true) || {});
function fetchStartup() { function fetchStartup() {
/*http.get( uri = "https://labs.waterdata.usgs.gov/sta/v1.1/Things('USGS-" +
"https://labs.waterdata.usgs.gov/sta/v1.1/Things('USGS-" + settings.loc +
loc + "')/Datastreams?$expand=Observations($orderby=phenomenonTime%20desc;$top=1;$select=result)&$select=unitOfMeasurement,description";
"')/Datastreams?$expand=Observations($orderby=phenomenonTime%20desc;$top=1;$select=result)&$select=unitOfMeasurement,description" if (Bangle.http) {
).then(d => handleStartup(d.json().value)); Bangle.http(uri, {timeout:10000}).then(d => handleStartup(JSON.parse(d.resp).value));
*/ }
handleStartup(JSON.parse(`{"value":[{"unitOfMeasurement":{"name":"V","symbol":"V","definition":""},"description":"DCP battery voltage / USGS-03272100-1964fee2501b43c5b7b807b687319588","Observations":[{"result":"13.4"}],"Observations@iot.nextLink":"https://labs.waterdata.usgs.gov/sta/v1.1/Datastreams('1964fee2501b43c5b7b807b687319588')/Observations?$top=1&$skip=1&$select=result&$orderby=phenomenonTime+desc,%40iot.id+asc"},{"unitOfMeasurement":{"name":"Cubic Feet per Second","symbol":"ft^3/s","definition":""},"description":"Discharge / USGS-03272100-1db72201226e4f50a94d0b65abc8e7a5","Observations":[{"result":"665"}],"Observations@iot.nextLink":"https://labs.waterdata.usgs.gov/sta/v1.1/Datastreams('1db72201226e4f50a94d0b65abc8e7a5')/Observations?$top=1&$skip=1&$select=result&$orderby=phenomenonTime+desc,%40iot.id+asc"},{"unitOfMeasurement":{"name":"Feet","symbol":"ft","definition":""},"description":"Gage height / USGS-03272100-56a7245f4b47438cb79c40f0d00605ba","Observations":[{"result":"1.92"}],"Observations@iot.nextLink":"https://labs.waterdata.usgs.gov/sta/v1.1/Datastreams('56a7245f4b47438cb79c40f0d00605ba')/Observations?$top=1&$skip=1&$select=result&$orderby=phenomenonTime+desc,%40iot.id+asc"},{"unitOfMeasurement":{"name":"Degrees Centigrade","symbol":"degC","definition":""},"description":"Temperature, water / USGS-03272100-f8e8a724a5c3498ca11bf1a31be5a537","Observations":[{"result":"26.1"}],"Observations@iot.nextLink":"https://labs.waterdata.usgs.gov/sta/v1.1/Datastreams('f8e8a724a5c3498ca11bf1a31be5a537')/Observations?$top=1&$skip=1&$select=result&$orderby=phenomenonTime+desc,%40iot.id+asc"}]}`).value);
} }
function handleStartup(data) { function handleStartup(data) {
for (var key1 in data) { for (var key1 in data) {
desc = data[key1].description; desc = data[key1].description.split(" / ")[0];
for (var key2 in keys) { if (settings.keys[desc]) {
if (desc.indexOf(keys[key2]) != -1) { if (data[key1].unitOfMeasurement.symbol === "degC" && settings.tempUnitF) {
if (data[key1].unitOfMeasurement.symbol === "degC") { symbol = "F";
symbol = "F"; result = (data[key1].Observations[0].result * 9 / 5) + 32;
result = (data[key1].Observations[0].result * 9 / 5) + 32; } else {
} else { symbol = data[key1].unitOfMeasurement.symbol;
symbol = data[key1].unitOfMeasurement.symbol; result = data[key1].Observations[0].result;
result = data[key1].Observations[0].result; }
} dataStreams[desc] = JSON.parse(
dataStreams[keys[key2]] = JSON.parse(
'{"unit":"' + '{"unit":"' +
symbol + symbol +
'","value":"' + '","value":"' +
result + result +
'"}' '"}'
); );
}
} }
} }
console.log(dataStreams); displayData(dataStreams);
} }
function displayData() { function displayData(dataStreams) {
g.clear(); g.clear();
g.setFont("Vector",20); g.setFont("Vector",20);
g.setFontAlign(0,0); g.setFontAlign(0,0);
string = ""; string = "";
for (var key in keys) { for (var key in dataStreams) {
unit = dataStreams[keys[key]].unit; unit = dataStreams[key].unit;
value = dataStreams[keys[key]].value; value = dataStreams[key].value;
if (shortenedName[keys[key]]) { if (settings.shortenedName[key]) {
name = shortenedName[keys[key]]; name = settings.shortenedName[key];
} else { } else {
name = keys[key]; name = key;
} }
string += name+": "+value+" "+unit+"\n"; string += name+": "+value+" "+unit+"\n";
} }
var date = new Date(); var date = new Date();
var hours = date.getHours(); var hours = date.getHours();
var minutes = date.getMinutes(); var minutes = date.getMinutes();
var seconds = date.getSeconds();
// Format the time as a string // Format the time as a string
var timeString = hours.toString().padStart(2, "0") + ":" + var timeString = hours.toString().padStart(2, "0") + ":" +
minutes.toString().padStart(2, "0"); minutes.toString().padStart(2, "0") + ":" +
seconds.toString().padStart(2,"0");
E.showMessage(string,timeString); E.showMessage(string,timeString);
} }
fetchStartup(); fetchStartup();
displayData();
setWatch(() => {
console.log("button");
fetchStartup();
displayData();
}, BTN1, {repeat:true});