var urlParams = new URLSearchParams(window.location.search);
var deveui = urlParams.get('deveui');
var alias = urlParams.get('alias');
var start = urlParams.get('start');
var stop = urlParams.get('stop');
var lon = urlParams.get('lon');
var lat = urlParams.get('lat');
var map;
var last_slider_position;
var allmarkers = L.layerGroup();
if (start == null) {
var dstart = moment({hour: 0});
var start = dstart.utc().format('YYYY-MM-DDTHH:mm:ss[Z]');
}
if (stop == null) {
var dstop = moment();
var stop = dstop.utc().format('YYYY-MM-DDTHH:mm:ss[Z]');
}
var datapoints;
function vbat2icon(level) {
switch (level) {
case 1:
fa_battery_string = "fa-battery-empty";
icon_color = "has-text-danger";
break;
case 2:
fa_battery_string = "fa-battery-quarter";
icon_color = "has-text-warning";
break;
case 3:
fa_battery_string = "fa-battery-half";
icon_color = "has-text-info";
break;
case 4:
fa_battery_string = "fa-battery-three-quarters";
icon_color = "has-text-link";
break;
case 5:
fa_battery_string = "fa-battery-full";
icon_color = "has-text-success";
break;
default:
fa_battery_string = "fa-battery-slash";
icon_color = "has-text-danger";
}
return '';
}
function refreshDatapoints(deveui, start, stop) {
range = ""
range = range + "&start=" + start;
range = range + "&stop=" + stop;
$.getJSON('https://wo-bisch.ch/metrics?deveui=' + deveui + range, function(mydata) {
if ("msg" in mydata) {
if (mydata.msg.includes("expired")) {
$('#chart').html(`
Abo ist abgelaufen
`);
} else if (mydata.msg.includes("error:")) {
$('#myselectors').hide();
$('#chart').html(`
Fehler im Aufruf
`);
} else {
location.reload(true);
}
return;
}
datapoints = mydata['data'];
$('#datetimeslider').attr('max', datapoints.length - 1);
$('#datetimeslider').val(datapoints.length - 1);
last_slider_position = datapoints.length - 1;
var unix_timestamp = datapoints[datapoints.length - 1][0];
var date = new Date(unix_timestamp * 1000);
var myhtml = '
' + alias + '
' + moment(date).format('DD.MM.YYYY HH:mm') + '
' + vbat2icon(datapoints[datapoints.length - 1][4]) + '
';
marker.bindPopup(myhtml).openPopup();
// we create the layer group with all positions
var markers = [];
for (let i of datapoints) {
unix_timestamp = i[0];
date = new Date(unix_timestamp * 1000);
markers.push(L.marker([i[1], i[2]]).bindPopup(moment(date).format('DD.MM.YYYY HH:mm')));
}
allmarkers = L.layerGroup(markers);
var baseMaps = {
};
var overlayMaps = {
"alle Positionen": allmarkers
};
L.control.layers(baseMaps, overlayMaps).addTo(map);
console.log(map);
});
}
var myfeature;
var marker;
var woBischIcon = L.icon({
iconUrl: '/static/images/marker.png',
iconSize: [64, 64],
iconAnchor: [32, 64],
popupAnchor: [0, -64]
});
$(document).ready(function() {
map = new L.Map('map', {
crs: L.CRS.EPSG3857,
zoomControl: false,
});
var url = 'https://wmts20.geo.admin.ch/1.0.0/ch.swisstopo.pixelkarte-farbe/default/current/3857/{z}/{x}/{y}.jpeg';
var tilelayer = new L.tileLayer(url);
map.addLayer(tilelayer);
map.setView(L.latLng(lat, lon), 10);
var overlayMaps = {
"All": allmarkers
};
marker = L.marker([lat, lon],{icon: woBischIcon}).addTo(map);
$('#reportrange span').html(moment(start).locale('de').format('D. MMM YYYY') + ' - ' + moment(stop).locale('de').format('D. MMM YYYY'));
refreshDatapoints(deveui,start,stop);
console.log("End of document ready...");
});
$(function() {
var start = moment({hour: 0});
var end = moment();
var s_start = start.utc().format('YYYY-MM-DDTHH:mm:ss[Z]');
var s_end = end.utc().format('YYYY-MM-DDTHH:mm:ss[Z]');
function cb(start, end) {
$('#reportrange span').html(start.locale('de').format('D. MMM YYYY') + ' - ' + end.locale('de').format('D. MMM YYYY'));
console.log("A new date selection was made: " + start.format() + ' to ' + end.format());
s_start = start.utc().format('YYYY-MM-DDTHH:mm:ss[Z]');
s_end = end.utc().format('YYYY-MM-DDTHH:mm:ss[Z]');
console.log("Start: " + s_start + ' End: ' + s_end);
refreshDatapoints(deveui, s_start, s_end);
}
$('#reportrange').daterangepicker({
startDate: start.local(),
endDate: end.local(),
regional: [ "de" ],
"locale": {
format: 'DD.MM.YYYY',
"separator": " - ",
"applyLabel": "Anwenden",
"cancelLabel": "Abbrechen",
"fromLabel": "Von",
"toLabel": "Bis",
customRangeLabel: 'Benutzerdefiniert',
"weekLabel": "W",
"daysOfWeek": [
"So",
"Mo",
"Di",
"Mi",
"Do",
"Fr",
"Sa"
],
"monthNames": [
"Jan",
"Feb",
"Mär",
"Apr",
"Mai",
"Jun",
"Jul",
"Aug",
"Sep",
"Okt",
"Nov",
"Dez"
],
"firstDay": 1
},
ranges: {
'Heute': [moment(), moment()],
'Gestern': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
'Letzte 7 Tage': [moment().subtract(6, 'days'), moment()],
'Letzte 30 Tage': [moment().subtract(29, 'days'), moment()],
'Diesen Monat': [moment().startOf('month'), moment().endOf('month')],
'Letzten Monat': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
}
}, cb);
//cb(start, end);
});
function updateSliderTooltip(c)
{
if (datapoints == undefined || datapoints.length == 0) {
return
}
if (c.value == last_slider_position) {
// we don't do anything if slider position did not change...
return
}
last_slider_position = c.value;
console.log("Slider position changed...");
var unix_timestamp = datapoints[c.value][0];
var date = new Date(unix_timestamp * 1000);
var myhtml = '' + alias + '
' + moment(date).format('DD.MM.YYYY HH:mm') + '
' + vbat2icon(datapoints[c.value][4]) + '
';
marker.bindPopup(myhtml).openPopup();
console.log(myhtml);
var lat = datapoints[c.value][1];
var lng = datapoints[c.value][2];
var newLatLng = new L.LatLng(lat, lng);
console.log("Lat: "+lat+", Long: "+lng);
marker.setLatLng(newLatLng);
}