$(document).ready(function () { var chart24hLabel = []; var chart24hData = []; var chart24hColor = []; var chart24hColorRoom = []; var chart24hDataRoom = []; var chartLabel = []; var chartData = []; var chartColor = []; var chartColorRoom = []; var chartDataRoom = []; var arr24h = []; var arr = []; var entrylist = []; function unixToFormatted(unixdate, type) { var date = new Date((unixdate- 3600) * 1000 ); var months = ['Jan','Feb','Mär','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Dez']; var day = date.getDate(); var month = date.getMonth(); if(month=="12"){ month="1"; } else { month=parseInt(month)+parseInt("1");} var year = date.getFullYear(); var hours = date.getHours(); var minutes = "0" + date.getMinutes(); var formattedTime = hours + ':' + minutes.substr(-2); //var formattedDate = day + ' ' + month + ' ' + year var formattedDate = day + "." + month + "." + year; var formattedDate2 = day + "." + month + "."; if (type == "time") return formattedTime; if (type == "date") return formattedDate; if (type == "date2") return formattedDate2; } $.ajax({ type: 'GET', crossDomain: true, dataType: 'json', url: 'https://brauereiapi.truenoobs.de/', success: function(jsondata){ jQuery.each(jsondata, function() { entrylist.push(this["time"]); }) entrylist.sort(); var latestTimestamp = entrylist[entrylist.length-1]; jQuery.each(entrylist, function() { if(this > latestTimestamp-86400) { chart24hLabel.push(unixToFormatted(this, "time")); chart24hColor.push("rgba(223, 63, 63, 1)"); chart24hColorRoom.push("rgba(102, 178, 255, 1)"); chart24hData.push(jsondata[this]["temp"]); chart24hDataRoom.push(jsondata[this]["temproom"]); } chartLabel.push(unixToFormatted(this, "date2")); chartColor.push("rgba(223, 63, 63, 1)"); chartColorRoom.push("rgba(102, 178, 255, 1)"); chartData.push(jsondata[this]["temp"]); chartDataRoom.push(jsondata[this]["temproom"]); }); /*jQuery.each(entrylist, function() { var date = new Date(this * 1000); var day = date.getDate(); var month = date.getMonth(); var year = date.getFullYear(); var hours = date.getHours(); var minutes = date.getMinutes(); if(this > latestTimestamp-86400) { if(!(year in arr24h)){arr24h[year]=[]}; if(!(month in arr24h[year])){arr24h[year][month]=[]}; if(!(day in arr24h[year][month])){arr24h[year][month][day]=[]}; if(!(hours in arr24h[year][month][day])){arr24h[year][month][day][hours]=[]}; arr24h[year][month][day][hours][minutes]=[]; arr24h[year][month][day][hours][minutes].push(jsondata[this]["time"]); arr24h[year][month][day][hours][minutes].push(unixToFormatted(jsondata[this]["time"], "date")); arr24h[year][month][day][hours][minutes].push(unixToFormatted(jsondata[this]["time"], "time")); arr24h[year][month][day][hours][minutes].push(jsondata[this]["temproom"]); arr24h[year][month][day][hours][minutes].push(jsondata[this]["temp"]); arr24h[year][month][day][hours][minutes].push(jsondata[this]["bubbles"]); } }); for(var i=0;i ${jsondata[this]["time"]} ${unixToFormatted(jsondata[this]["time"], "date")} ${unixToFormatted(jsondata[this]["time"], "time")} ${jsondata[this]["temproom"]} ${jsondata[this]["temp"]} ${jsondata[this]["bubbles"]} ` ); }); jQuery.each(entrylist, function() { if(this > latestTimestamp-86400) { $("#table24h").append( ` ${jsondata[this]["time"]} ${unixToFormatted(jsondata[this]["time"], "date")} ${unixToFormatted(jsondata[this]["time"], "time")} ${jsondata[this]["temproom"]} ${jsondata[this]["temp"]} ${jsondata[this]["bubbles"]} ` ); } }); var ctx = document.getElementById('myChart24h'); var myChart24h = new Chart(ctx, { type: 'line', data: { labels: chart24hLabel, datasets: [{ label: 'Biertemperatur', data: chart24hData, backgroundColor: [ 'rgba(223, 63, 63, 0.1)' ], borderColor: chart24hColor, borderWidth: 3, pointRadius: 1 }, { label: 'Raumtemperatur', data: chart24hDataRoom, backgroundColor: [ 'rgba(102, 178, 255, 0.1)' ], borderColor: chart24hColorRoom, borderWidth: 3, pointRadius: 1 }] }, options: { scales: { yAxes: [{ stacked: false }] } } }); var ctx = document.getElementById('myChart'); var myChart = new Chart(ctx, { type: 'line', yAxisID: "25", data: { labels: chartLabel, datasets: [{ label: 'Biertemperatur', data: chartData, backgroundColor: [ 'rgba(223, 63, 63, 0.1)' ], borderColor: chartColor, borderWidth: 3, pointRadius: 1, }, { label: 'Raumtemperatur', data: chartDataRoom, backgroundColor: [ 'rgba(102, 178, 255, 0.1)' ], borderColor: chartColorRoom, borderWidth: 3, pointRadius: 1 }] }, options: { scales: { yAxes: [{ ticks: { suggestedMin: 0, suggestedMax: 30 } }] } } }); $("#import").click(function(){ var xhr = new XMLHttpRequest(); var url = "https://brauereiapi.truenoobs.de/import"; xhr.open("POST", url, true); xhr.setRequestHeader("Content-Type", "application/json"); xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { var json = JSON.parse(xhr.responseText); } }; var data = JSON.stringify(jsondata); xhr.send(data); }); } }); $.prototype.kb_table_csv = function() { var kb_tidy_content = function(text){ text = text.replace(/"/g, '""'); return '"'+text+'"'; }; $(this).each(function(){ var table = $(this); var caption = $(this).find('caption').text(); var title = []; var rows = []; $(this).find('tr').each(function(){ var data = []; $(this).find('td').each(function(){ var text = kb_tidy_content($(this).text()); if(!text.includes(" ") && !text.includes(":")) { data.push(text); } }); data = data.join(","); if(data!=""){ rows.push(data); } }); title = title.join(","); rows = rows.join("\n"); var csv = title + rows; var uri = 'data:text/csv;charset=utf-8,' + encodeURIComponent(csv); var download_link = document.createElement('a'); download_link.href = uri; var ts = new Date().getTime(); if(caption==""){ download_link.download = ts+".csv"; } else { download_link.download = caption+"-"+ts+".csv"; } document.body.appendChild(download_link); download_link.click(); document.body.removeChild(download_link); }); }; $("#export").click(function(){ $("table").kb_table_csv(); }); });