Hallo, ich möchte den 24 Std Forcast der Strompreise (Tarif awattar hourly) darstellen … habe mir dazu mal was gebastelt, bin aber mit dem Ergebnis noch nicht zufrieden. Aussehen soll es später ähnlich wie:
Mit folgendem Code hole ich mir per API die Daten der nächsten 24 Stunden und füge die einzelnen Werte ins Archiv einer Variablen ein (leider um 24 Stunden rückversetzt da man keine Timestamps der Zukunft eingeben kann):
<?php
//Start writing your code here
$Grundpreis = 19.48;
$arr = array('object' => 'list', 'data' => array('0' => array('start_timestamp'=> '17','end_timestamp'=>'18','marketprice'=>'19'),'1' => array('start_timestamp'=> '20','end_timestamp'=>'21','marketprice'=>'22')));
#print_r($arr);
#echo $arr['data'][0]['start_timestamp']."\n";
#echo $arr['data'][1]['start_timestamp']."\n";
$out = "https://api.awattar.de/v1/marketdata";
$ch = curl_init($out);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$ergebnis = curl_exec($ch);
$fehler = curl_error($ch);
curl_close($ch);
$awattar = json_decode($ergebnis,true);
$n=0;
do {
$awattar_hourly[date("H",$awattar['data'][$n]['start_timestamp']/1000)] = (floatval($awattar['data'][$n]['marketprice'])*1.19/10)+$Grundpreis;
AC_AddLoggedValues(10096, 43550, [['TimeStamp' => time()-(24-$n)*60*60,'Value' => $awattar_hourly[date('H',time()+$n*60*60)]/100],]);
$n=$n+1;
} while ($n<24);
print_r($awattar_hourly);
echo $fehler;
Das Ergebins im Webfront hat den Nachteil, dass ich nicht die 24 STd auf einen Blick sehe:
Darstellen möchte ich es allerdings im IPS Studio …da sieht es noch unbefriedigender aus, die Anzeige der Tage stimmt nicht mit den Werten überein:
und bei Stunden sieht es so aus:
Idee wie man das Ganze eleganter erledigen kann?
Gruß, Michael