ich habe keinen Primio deswegen hatte ich das nicht getestet.
Aber wenn ich mir die Ausgabe der API ansehe kommt dort nur ein P_Grid und kein P_Sum
Warum wird nicht einfach geprüft ob P_Grid oder P_Sum zurückkommt.
müsste mich erst wieder etwas in python einlesen...
Aber wenn mir response["Body"]["Data"]["Site"]["P_Grid"] keinen wert liefert kann er es ja mit response["Body"]["Data"]["PowerReal_P_Sum"] versuchen, alternativ einen Fehler ausgeben wenn nicht von beiden etwas liefert.
Code: Alles auswählen
{
"Body" : {
"Data" : {
"Inverters" : {
"1" : {
"DT" : 123,
"E_Day" : 30779,
"E_Total" : 42624800,
"E_Year" : 5922748,
"P" : 528
}
},
"Site" : {
"E_Day" : 30779,
"E_Total" : 42624800,
"E_Year" : 5922748,
"Meter_Location" : "load",
"Mode" : "vague-meter",
"P_Akku" : null,
"P_Grid" : -198.76497539403641,
"P_Load" : -329.23502460596359,
"P_PV" : 528,
"rel_Autonomy" : 100,
"rel_SelfConsumption" : 62.35511829658401
},
"Version" : "12"
}
},
"Head" : {
"RequestArguments" : {},
"Status" : {
"Code" : 0,
"Reason" : "",
"UserMessage" : ""
},
"Timestamp" : "2021-08-21T19:04:47+02:00"
}
}
Code: Alles auswählen
try:
if primo == str(1):
wattbezug=int(response["Body"]["Data"]["Site"]["P_Grid"])
else:
wattbezug=int(response["Body"]["Data"]["PowerReal_P_Sum"])
except:
traceback.print_exc()