Hab ich mir gestern selber gebaut 
Für jede Variable im Diagramm hab ich eine eigene angelegt.
<?php
$archiv_id=46307;
$server_id=17619;
$waschtrockner_id=51712;
$waschmaschine_id=52719;
$kuehlschrank_stueberl_id=12590;
$gefrierschrank_keller_id=14093;
$kuehlschrank_kueche_id=53664;
$geschirrspueler_id=47291;
$pelletofen_id=21530;
$fernseher_wohnzimmer_id=10977;
$drucker_id=12017;
$buero_id=41718;
$pool_id=54913;
$whirlpool_id=29352;
$kaffeemaschine_id=14631;
$ladenetzteil_id=22578;
$infrarotpaneel_id=36436;
$wallbox_id=47234;
$rest_id=56563;
$bezug_id=20948;
$pv_verbraucht_id=44514;
$datum_von_id=45888;
$datum_bis_id=26976;
function summe_ermitteln($var_id,$von,$bis)
{
$archiv_id=46307;
$start = new DateTime();
$start->setTimestamp($von);
$start->setTime(0, 0, 0);
$ende = new DateTime();
$ende->setTimestamp($bis);
$ende->setTime(0, 0, 0);
// Enddatum inklusiv machen
$ende->modify('+1 day');
$periode = new DatePeriod(
$start,
new DateInterval('P1D'),
$ende
);
$kwh=0;
foreach ($periode as $tag) {
$tagBeginn = clone $tag;
$tagBeginn->setTime(0, 0, 0);
$tagEnde = clone $tag;
$tagEnde->setTime(23, 59, 59);
$werte = AC_GetAggregatedValues($archiv_id,$var_id, 1, $tagBeginn->getTimestamp(), $tagEnde->getTimestamp(), 0);
if (!empty($werte) && isset($werte[0]["Avg"])) $kwh = $kwh + $werte[0]["Avg"];
}
return $kwh;
}
$von=GetValue($datum_von_id);
$bis=GetValue($datum_bis_id);
//Bezug
setvalue($bezug_id,summe_ermitteln(50740, $von, $bis));
//PV Verbraucht
setvalue($pv_verbraucht_id,summe_ermitteln(28779, $von, $bis));
//Server
setvalue($server_id,summe_ermitteln(12653, $von, $bis));
//Waschtrockner
setvalue($waschtrockner_id,summe_ermitteln(52137, $von, $bis));
//Waschmaschine
setvalue($waschmaschine_id,summe_ermitteln(20351, $von, $bis));
//Kühlschrank Stüberl
setvalue($kuehlschrank_stueberl_id,summe_ermitteln(17287, $von, $bis));
//Gefrierschrank Keller
setvalue($gefrierschrank_keller_id,summe_ermitteln(40570, $von, $bis));
//Kühlschrank Küche
setvalue($kuehlschrank_kueche_id,summe_ermitteln(14761, $von, $bis));
//Geschirrspüler
setvalue($geschirrspueler_id,summe_ermitteln(30510, $von, $bis));
//Pelletofen
setvalue($pelletofen_id,summe_ermitteln(10675, $von, $bis));
//Fernseher Wohnzimmer
setvalue($fernseher_wohnzimmer_id,summe_ermitteln(41146, $von, $bis));
//Drucker
setvalue($drucker_id,summe_ermitteln(28762, $von, $bis));
//Büro
setvalue($buero_id,summe_ermitteln(45910, $von, $bis));
//Pool
setvalue($pool_id,summe_ermitteln(26809, $von, $bis));
//Whirlpool
setvalue($whirlpool_id,summe_ermitteln(54501, $von, $bis));
//Kaffeemaschine
setvalue($kaffeemaschine_id,summe_ermitteln(17921, $von, $bis));
//Ladenetzteil
setvalue($ladenetzteil_id,summe_ermitteln(33246, $von, $bis));
//Infrarotpaneel
setvalue($infrarotpaneel_id,summe_ermitteln(25229, $von, $bis));
//Wallbox
setvalue($wallbox_id,summe_ermitteln(52211, $von, $bis));
//Rest berechnen
SetValue($rest_id,
getvalue($bezug_id)+getvalue($pv_verbraucht_id)-
getvalue($server_id)-
getvalue($waschtrockner_id)-
getvalue($waschmaschine_id)-
getvalue($kuehlschrank_stueberl_id)-
getvalue($gefrierschrank_keller_id)-
getvalue($kuehlschrank_kueche_id)-
getvalue($geschirrspueler_id)-
getvalue($pelletofen_id)-
getvalue($fernseher_wohnzimmer_id)-
getvalue($drucker_id)-
getvalue($buero_id)-
getvalue($pool_id)-
getvalue($whirlpool_id)-
getvalue($kaffeemaschine_id)-
getvalue($ladenetzteil_id)-
getvalue($infrarotpaneel_id)-
getvalue($wallbox_id)
);
Ich habe es aber auf Tageswerte beschränkt. Feiner bringt meiner Meinung nach nichts.
Datum von/bis sind Variablen, die ich in der Visu wählen kann. Das Skript wird bei Änderung vom Datum aufgerufen.