Umschreiben von CuxD auf System.Exec

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

Antworten
Benutzeravatar
kopy
Beiträge: 121
Registriert: 28.12.2015, 14:35
Hat sich bedankt: 2 Mal
Danksagung erhalten: 8 Mal

Umschreiben von CuxD auf System.Exec

Beitrag von kopy » 10.02.2022, 11:38

Hallo, kann mir jemand helfen das Programm dahingehend zu änder, das nicht die Abfrage über CuxD sondern mit der System.Exec gemacht wird. Ich krieg es einfach nicht hin.

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);

Benutzeravatar
kopy
Beiträge: 121
Registriert: 28.12.2015, 14:35
Hat sich bedankt: 2 Mal
Danksagung erhalten: 8 Mal

Re: Umschreiben von CuxD auf System.Exec

Beitrag von kopy » 12.02.2022, 11:46

Hat sich erledigt........

Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“