Code: Alles auswählen
!-------- Hier die eigenen Daten Eintragen------------------
string username = "xxxxxxxxxxxxxxxxxxxxxxxxxx";
string password = "xxxxxxxxxxxxxxxxx";
string poweropti_serial = "xxxxxxxxxxxxxxxxxxx";
!-----------------------------------------------------------
string usernameEnc = username.UriEncode();
string passwordEnc = password.UriEncode();
string JSON_All;
string stemp;
integer StrLen;
integer pos;
real AktuelleLeistung;
real VerbrauchSumme;
real EinspeiseSumme;
var v_Leistung;
var v_Summe;
! diese Systemvariablen als Fließkomma anlegen!
string strLeistung = "HM138_watt";
string strSumme = "HM138_kwh";
! string strLeistung = "StromAktLeistung";
! string strSumme = "StromSummeVerbrauch";
! string strSumme = "Strom_Zaehlerstand_aktuell";
! Username, Password ausgeben um Strings selbst zu basteln
! WriteLine(usernameEnc);
! WriteLine(passwordEnc);
! Abfrage der Serial im Browser:
! https://%usernameEnc%:%passwordEnc%@backend.powerfox.energy/api/2.0/my/all/devices
string cmd = "curl -X GET \"https://" + usernameEnc + ":" + passwordEnc + "@backend.powerfox.energy/api/2.0/my/" + poweropti_serial + "/current\"";
!Daten der Geräte abrufen
dom.GetObject("CUxD.CUX2801002:1.CMD_SETS").State(cmd);
dom.GetObject("CUxD.CUX2801002:1.CMD_QUERY_RET").State(1);
JSON_All = dom.GetObject("CUxD.CUX2801002:1.CMD_RETS").State().ToLatin();
StrLen = JSON_All.Length();
! WriteLine( JSON_All );
! Leistung Lesen
pos = JSON_All.Find( "\"Watt\":" ) + 7;
JSON_All = JSON_All.Substr( pos, JSON_All.Length() - pos );
pos = JSON_All.Find( "," );
stemp = JSON_All.Substr( 0, pos );
! WriteLine( stemp );
AktuelleLeistung = stemp.ToFloat();
! WriteLine( AktuelleLeistung );
! Verbrauch lesen
pos = JSON_All.Find( "\"A_Plus\":" ) + 9;
JSON_All = JSON_All.Substr( pos, JSON_All.Length() - pos );
pos = JSON_All.Find( "," );
stemp = JSON_All.Substr( 0, pos );
! WriteLine( stemp );
VerbrauchSumme = stemp.ToFloat();
VerbrauchSumme = VerbrauchSumme / 1000;
!---------------------------------------------------------------------------------------------------------
! Einspeisung lesen
pos = JSON_All.Find( "\"A_Minus\":" ) + 10;
JSON_All = JSON_All.Substr( pos, JSON_All.Length() - pos );
pos = JSON_All.Find( "," );
stemp = JSON_All.Substr( 0, pos );
WriteLine( stemp );
EinspeiseSumme = stemp.ToFloat();
EinspeiseSumme = EinspeiseSumme / 1000;
!---------------------------------------------------------------------------------------------------------
! dom.GetObject("Strom_Zaehlerstand_aktuell").State(VerbrauchSumme);
! WriteLine( VerbrauchSumme );
! Variablen setzen
v_Leistung = dom.GetObject( strLeistung );
v_Leistung.State( AktuelleLeistung );
v_Summe = dom.GetObject( strSumme );
v_Summe.State( VerbrauchSumme );
dom.GetObject("SolarEinspeisung").State(EinspeiseSumme);
!WriteLine(EinspeiseSumme);