Ik heb sinds kort een slimme meter in huis en wil graag de gegevens daarvan middels grafieken inzichtelijk maken.
Na enig stoeiwerk is het gelukt om de gegevens in een MySQL-database op te slaan.
Nu is de volgende stap uiteraard om deze gegevens middels PHP weer uit te lezen en deze wil ik graag omzetten naar Google Charts grafieken.
Ik heb een script gevonden waarmee ik de data op kan halen en in een tabel / array kan stoppen.
Dit geeft als resultaat het volgende:
[{"Day":"12","TotaalAfgenomen":"1,196"},{"Day":"13","TotaalAfgenomen":"18,233"},{"Day":"14","TotaalAfgenomen":"12,746"},{"Day":"15","TotaalAfgenomen":"9,962"},{"Day":"16","TotaalAfgenomen":"11,337"},{"Day":"17","TotaalAfgenomen":"15,528"},{"Day":"18","TotaalAfgenomen":"14,950"},{"Day":"19","TotaalAfgenomen":"10,415"},{"Day":"20","TotaalAfgenomen":"10,534"},{"Day":"21","TotaalAfgenomen":"9,503"},{"Day":"22","TotaalAfgenomen":"11,034"},{"Day":"23","TotaalAfgenomen":"10,114"},{"Day":"24","TotaalAfgenomen":"7,322"}]
Vervolgens wil ik deze data aan aan onderstaande html-code voeren, echter daar gaat het mis (denk ik tenminste).
Ik heb zelf al verschillende websites met voorbeelden geprobeerd, echter ik krijg het niet voor elkaar om de data in het juiste formaat aan te leveren zodat er een mooie grafiek van gemaakt kan worden.
Iemand hier die me in de juiste richting kan sturen?
Na enig stoeiwerk is het gelukt om de gegevens in een MySQL-database op te slaan.
Nu is de volgende stap uiteraard om deze gegevens middels PHP weer uit te lezen en deze wil ik graag omzetten naar Google Charts grafieken.
Ik heb een script gevonden waarmee ik de data op kan halen en in een tabel / array kan stoppen.
PHP:
1
2
3
4
5
6
7
8
| <?php $pdo=new PDO("mysql:dbname=P1db;host=192.168.2.127","p1db","dbp1"); $statement=$pdo->prepare("SELECT Day(DateTime) AS Day, FORMAT(((MAX(AfgenomenT1) - MIN(AfgenomenT1)) + (MAX(AfgenomenT2) - Min(AfgenomenT2))),3, 'nl_NL') as TotaalAfgenomen FROM P1db.P1uitlezen GROUP BY Day ORDER BY DateTime ASC LIMIT 31"); $statement->execute(); $results=$statement->fetchAll(PDO::FETCH_ASSOC); $json=json_encode($results); echo json_encode($results); ?> |
Dit geeft als resultaat het volgende:
[{"Day":"12","TotaalAfgenomen":"1,196"},{"Day":"13","TotaalAfgenomen":"18,233"},{"Day":"14","TotaalAfgenomen":"12,746"},{"Day":"15","TotaalAfgenomen":"9,962"},{"Day":"16","TotaalAfgenomen":"11,337"},{"Day":"17","TotaalAfgenomen":"15,528"},{"Day":"18","TotaalAfgenomen":"14,950"},{"Day":"19","TotaalAfgenomen":"10,415"},{"Day":"20","TotaalAfgenomen":"10,534"},{"Day":"21","TotaalAfgenomen":"9,503"},{"Day":"22","TotaalAfgenomen":"11,034"},{"Day":"23","TotaalAfgenomen":"10,114"},{"Day":"24","TotaalAfgenomen":"7,322"}]
Vervolgens wil ik deze data aan aan onderstaande html-code voeren, echter daar gaat het mis (denk ik tenminste).
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| <html> <head> <!--Load the AJAX API--> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script type="text/javascript"> // Load the Visualization API and the piechart package. google.charts.load('current', {'packages':['corechart']}); // Set a callback to run when the Google Visualization API is loaded. google.charts.setOnLoadCallback(drawChart); function drawChart() { var jsonData = $.ajax({ url: "http://192.168.2.127/includes/DagelijksVerbruikLaatsteMaand.php", dataType: "json", async: true }).responseText; // Create our data table out of JSON data loaded from server. var data = new google.visualization.DataTable(jsonData); // Instantiate and draw our chart, passing in some options. var chart = new google.visualization.ColumnChart(document.getElementById('chart_div')); chart.draw(data, {width: 600, height: 400}); } </script> </head> <body> <!--Div that will hold the pie chart--> <div id="chart_div"></div> </body> </html> |
Ik heb zelf al verschillende websites met voorbeelden geprobeerd, echter ik krijg het niet voor elkaar om de data in het juiste formaat aan te leveren zodat er een mooie grafiek van gemaakt kan worden.
Iemand hier die me in de juiste richting kan sturen?