".mysqli_error($mysql)."
"; } $obj = (object)[]; // Cast empty array to object $obj->labels = []; $obj->datasets = []; $i = 0; $filled = 0; if ($simRes->num_rows > 1) { $dataset = (object)[]; $row1 = $simRes->fetch_assoc(); $dataset->borderColor = $linecolors["Vorhersage"]; $dataset->backgroundColor = $linecolors["Vorhersage"]."55"; $dataset->borderWidth=1.5; $dataset->pointRadius= 0; $dataset->pointHoverRadius= 5; $dataset->tension=0.2; $dataset->stack = "sim"; $dataset->fill = "none"; $dataset->yAxisID = 'y'; $dataset->label = "Vorhersage"; /*$pt = (object)[]; $pt->x = $row1["time"]*1000; $pt->y = $row1["Vorhersage"]; $dataset->data[] = clone $pt; while ($row1 = $simRes->fetch_assoc()) { $pt = (object)[]; $pt->x = $row1["time"]*1000 + 30*60*1000; $pt->y = $row1["Vorhersage"]; $dataset->data[] = clone $pt; }*/ $obj->datasets[] = clone $dataset; $rownext = $simRes->fetch_assoc(); $nextSimTimestamp = $rownext["time"]*1000 + 30*60*1000; } if ($result->num_rows > 1) { $ii = 1; $row = $result->fetch_assoc(); foreach ($row as $name => $value) { $dataset = (object)[]; if ($name != "time") { $dataset->borderColor = $linecolors[$name]; $dataset->backgroundColor = $linecolors[$name]."55"; $dataset->borderWidth=1; $dataset->pointRadius= 0; $dataset->pointHoverRadius= 5; $dataset->tension=0.2; if ($name == "Solarleistung") { $dataset->stack = "SolarPwr"; $dataset->fill = "none"; $dataset->yAxisID = 'y'; } else if ($name == "Ladestand") { $dataset->stack = "Charge"; $dataset->fill = "none"; $dataset->yAxisID = 'y1'; } else { $dataset->stack = "Consumers"; if ($filled == 0) { $filled = 1; $dataset->fill = "origin"; } else { $dataset->fill = "-1"; } $dataset->yAxisID = 'y'; } $dataset->label = $name; $dataset->data[] = $value; $obj->datasets[] = clone $dataset; $ii++; } else { $obj->labels[] = $value * 1000; } } while ($row = $result->fetch_assoc()) { $ii = 1; foreach ($row as $name => $value) { if ($name != "time") { $obj->datasets[$ii]->data[] = $value; $ii++; } else { if(($value * 1000) < $nextSimTimestamp){ $obj->datasets[0]->data[] = $row1["Vorhersage"]; }else{ $row1 = $rownext; $rownext = $simRes->fetch_assoc(); $nextSimTimestamp = $rownext["time"]*1000 + 30*60*1000; $obj->datasets[0]->data[] = $row1["Vorhersage"]; } $obj->labels[] = $value * 1000; } } } } $obj->labels[] = $nextSimTimestamp; //Draw future forecast $obj->datasets[0]->data[] = $rownext["Vorhersage"]; while($rownext = $simRes->fetch_assoc()){ $obj->labels[] = $rownext["time"]*1000 + 30*60*1000; $obj->datasets[0]->data[] = $rownext["Vorhersage"]; } } //header('Content-Type: application/json'); echo json_encode($obj); //echo '{"labels":[1761322682000,1761322782000,1761322882000,1761322982000,1761323082000,1761323182000,1761323282000],"datasets":[{"stack": "Stack 0","cubicInterpolationMode":"monotone","fill":"origin","label":"Acquisitions by year","data":[10,20,50,20,10,5,70]},{"fill": "false","stack": "Stack 1","cubicInterpolationMode": "monotone","label": "Acquisitions by year","data": [10,20,50,20,10,5,70]}]}'; ?>