Schnittstelle der openDTU (JSON)
{"inverters":[{"serial":"114181811894","name":"Balkonkraftwerk","data_age":36,"reachable":true,"producing":true,"limit_relative":100,"limit_absolute":800,"AC":{"0":{"Power":{"v":67.80000305,"u":"W","d":1},"Voltage":{"v":226.1000061,"u":"V","d":1},"Current":{"v":0.300000012,"u":"A","d":2},"Power DC":{"v":71.19999695,"u":"W","d":1},"YieldDay":{"v":58,"u":"Wh","d":0},"YieldTotal":{"v":37.31099701,"u":"kWh","d":3},"Frequency":{"v":50.00999832,"u":"Hz","d":2},"PowerFactor":{"v":1,"u":"","d":3},"ReactivePower":{"v":0,"u":"var","d":1},"Efficiency":{"v":95.22472382,"u":"%","d":3}}},"DC":{"0":{"name":{"u":"Modul_Rechts"},"Power":{"v":48.40000153,"u":"W","d":1},"Voltage":{"v":34,"u":"V","d":1},"Current":{"v":1.419999957,"u":"A","d":2},"YieldDay":{"v":34,"u":"Wh","d":0},"YieldTotal":{"v":17.22299957,"u":"kWh","d":3},"Irradiation":{"v":11.95061779,"u":"%","d":3}},"1":{"name":{"u":"Modul_Links"},"Power":{"v":22.79999924,"u":"W","d":1},"Voltage":{"v":35.79999924,"u":"V","d":1},"Current":{"v":0.639999986,"u":"A","d":2},"YieldDay":{"v":24,"u":"Wh","d":0},"YieldTotal":{"v":20.08799934,"u":"kWh","d":3},"Irradiation":{"v":5.629629135,"u":"%","d":3}}},"INV":{"0":{"Temperature":{"v":8,"u":"°C","d":1}}},"events":1}],"total":{"Power":{"v":67.80000305,"u":"W","d":1},"YieldDay":{"v":58,"u":"Wh","d":0},"YieldTotal":{"v":37.31099701,"u":"kWh","d":2}},"hints":{"time_sync":false,"radio_problem":false,"default_password":false}}
Umwandlung der JSON-Daten in ein Array
Array
(
[inverters] => Array
(
[0] => Array
(
[serial] => 114181811894
[name] => Balkonkraftwerk
[data_age] => 36
[reachable] => 1
[producing] => 1
[limit_relative] => 100
[limit_absolute] => 800
[AC] => Array
(
[0] => Array
(
[Power] => Array
(
[v] => 67.80000305
[u] => W
[d] => 1
)
[Voltage] => Array
(
[v] => 226.1000061
[u] => V
[d] => 1
)
[Current] => Array
(
[v] => 0.300000012
[u] => A
[d] => 2
)
[Power DC] => Array
(
[v] => 71.19999695
[u] => W
[d] => 1
)
[YieldDay] => Array
(
[v] => 58
[u] => Wh
[d] => 0
)
[YieldTotal] => Array
(
[v] => 37.31099701
[u] => kWh
[d] => 3
)
[Frequency] => Array
(
[v] => 50.00999832
[u] => Hz
[d] => 2
)
[PowerFactor] => Array
(
[v] => 1
[u] =>
[d] => 3
)
[ReactivePower] => Array
(
[v] => 0
[u] => var
[d] => 1
)
[Efficiency] => Array
(
[v] => 95.22472382
[u] => %
[d] => 3
)
)
)
[DC] => Array
(
[0] => Array
(
[name] => Array
(
[u] => Modul_Rechts
)
[Power] => Array
(
[v] => 48.40000153
[u] => W
[d] => 1
)
[Voltage] => Array
(
[v] => 34
[u] => V
[d] => 1
)
[Current] => Array
(
[v] => 1.419999957
[u] => A
[d] => 2
)
[YieldDay] => Array
(
[v] => 34
[u] => Wh
[d] => 0
)
[YieldTotal] => Array
(
[v] => 17.22299957
[u] => kWh
[d] => 3
)
[Irradiation] => Array
(
[v] => 11.95061779
[u] => %
[d] => 3
)
)
[1] => Array
(
[name] => Array
(
[u] => Modul_Links
)
[Power] => Array
(
[v] => 22.79999924
[u] => W
[d] => 1
)
[Voltage] => Array
(
[v] => 35.79999924
[u] => V
[d] => 1
)
[Current] => Array
(
[v] => 0.639999986
[u] => A
[d] => 2
)
[YieldDay] => Array
(
[v] => 24
[u] => Wh
[d] => 0
)
[YieldTotal] => Array
(
[v] => 20.08799934
[u] => kWh
[d] => 3
)
[Irradiation] => Array
(
[v] => 5.629629135
[u] => %
[d] => 3
)
)
)
[INV] => Array
(
[0] => Array
(
[Temperature] => Array
(
[v] => 8
[u] => °C
[d] => 1
)
)
)
[events] => 1
)
)
[total] => Array
(
[Power] => Array
(
[v] => 67.80000305
[u] => W
[d] => 1
)
[YieldDay] => Array
(
[v] => 58
[u] => Wh
[d] => 0
)
[YieldTotal] => Array
(
[v] => 37.31099701
[u] => kWh
[d] => 2
)
)
[hints] => Array
(
[time_sync] =>
[radio_problem] =>
[default_password] =>
)
)
Auslesen von einzelnen Daten zur Speicherung
Tagesertrag Inverter 0 [AC Wh]: 58
Tagesertrag Inverter 0 Platte 1 [DC Wh]: 34
Tagesertrag Inverter 0 Platte 2 [DC Wh]: 24
Letzter Fehler: No error
Cloud zur Datenspeicherung der Hoymiles Wechselrichter
PHP Beispiel:
<?php
header("Content-Type: text/html; charset=utf-8");
// ##################### //
//$url="DIE-IP-DER-DTU/api/livedata/status";
//oder
$url="http://DYNDNS-Service:FreigegebenerPortImRouter/api/livedata/status";
$curl_session = curl_init();
curl_setopt($curl_session ,CURLOPT_URL, $url);
curl_setopt($curl_session, CURLOPT_HEADER, 0);
curl_setopt($curl_session, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl_session);
curl_close($curl_session);
echo "<hr><b>Schnittstelle der openDTU (JSON)</b><br>".$result."";
$json_array = json_decode($result, true);
echo "<hr><b>Umwandlung der JSON-Daten in ein Array</b><br>";
print_r($json_array);
echo "<hr><b>Auslesen von einzelnen Daten zur Speicherung</b>";
//echo $json_array['inverters']['0']['name'];
echo "<hr>";
echo "Tagesertrag Inverter 0 [AC Wh]: ";
echo $json_array['inverters']['0']['AC']['0']['YieldDay']['v'];
echo "<br>Tagesertrag Inverter 0 Platte 1 [DC Wh]: ";
echo $json_array['inverters']['0']['DC']['0']['YieldDay']['v'];
echo "<br>Tagesertrag Inverter 0 Platte 2 [DC Wh]: ";
echo $json_array['inverters']['0']['DC']['1']['YieldDay']['v'];
echo "<hr>";
echo "Letzter Fehler: " ,json_last_error_msg();
?>
Cloud zur Datenspeicherung der Hoymiles Wechselrichter