[
"method" => "GET",
"header" =>
"Content-Type: application/json\r\n" .
"Authorization: Bearer ".$key."\r\n"
]
];
$ctx = stream_context_create($opts);
$data = @file_get_contents($url.'api/states/'.$id, false, $ctx);
if(!$data) return false;
$data = json_decode($data);
if(!$data) return false;
if(!isset($data->state)) return false;
return [$data->state, $data->last_updated];
}
function getHAH($id) { //history 1 today
$key = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiI4YmYwMWM5MGY1NzQ0OWUzYTZlMDk0NGJlOTk4M2JlMyIsImlhdCI6MTczMTc3NzQyOCwiZXhwIjoyMDQ3MTM3NDI4fQ.nRfPxnU8ydiTzbLtnXSC2zTsBl4biNcjovUzRvwvrdk';
$url = 'https://ha.granara.org/';
$opts = [
"http" => [
"method" => "GET",
"header" =>
"Content-Type: application/json\r\n" .
"Authorization: Bearer ".$key."\r\n"
]
];
$ctx = stream_context_create($opts);
$day=date("Y-m-d");
$urls=$url.'api/history/period/'.$day."T00:00:00?end_time=".$day."T00:00:30&filter_entity_id=".$id."&minimal_response";
$data = @file_get_contents($urls, false, $ctx);
if(!$data) return false;
$data = json_decode($data);
if(!$data) return false;
$inizio=$data[0][0]->state;
$ora=date("H:i:s");
$ora1=date("H:i:s", strtotime("-30 seconds"));
$urls=$url.'api/history/period/'.$day."T".$ora1."?end_time=".$day."T".$ora."&filter_entity_id=".$id."&minimal_response";
$data = @file_get_contents($urls, false, $ctx);
if(!$data) return false;
$data = json_decode($data);
if(!$data) return false;
$last=count($data[0])-1;
$fine=$data[0][$last]->state;
return [$inizio, $fine];
}
$data = getHA('sensor.totale_produzione');
$produzione= intval($data[0]);
$data = getHA('sensor.totale_consumo');
$consumo=intval($data[0]);
$data = getHA('sensor.totale_prelievo');
$prelievo=intval($data[0]);
if ($prelievo>0){ $immissione=0;}
else{$prelievo=0; $immissione=-$prelievo;}
$data = getHAH('sensor.totale_produzione_integrale');
$tproduzione= number_format(($data[1]-$data[0])/1000,1);
$data = getHAH('sensor.totale_a_rete_positivo_integrale');
$timmissione=number_format(($data[1]-$data[0])/1000,1);
$data = getHAH('sensor.totale_da_rete_positivo_integrale');
$tprelievo=number_format(($data[1]-$data[0])/1000,1);
$tbilancio=$timmissione-$tprelievo;
$tconsumo=$tproduzione+$tprelievo-$timmissione;
?>
Potenza Ora ()
Solare+batterie
W
↓
← W
→ W
Rete
→ W
Villaggio
Energia Oggi
Solare
kWh
↓
← kWh
→ kWh
Rete
Bilancio:
kWh
→ kWh
Villaggio