SonnenBatterie erweiterte Abfrage über API - Hilfe

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

Antworten
Andy1204
Beiträge: 22
Registriert: 31.07.2018, 07:01

SonnenBatterie erweiterte Abfrage über API - Hilfe

Beitrag von Andy1204 » 21.08.2018, 08:31

Kann mir jemand helfen wie ich aus folgendem Skript weiter Werte in eine Variable schreiben kann
z.b. BatteryCharing TRUE möchte ich weiter verarbeiten

Diese Skript verwende ich ; welches auch funktioniert mit den Werten
eine Variable mit BatteryCharging
BatteryDischarging

habe ich bereits angelegt

folgende Werte werden alle über die API abgefragt

{"BatteryCharging":true,"BatteryDischarging":false,"Consumption_W":123,"Fac":50,"FlowConsumptionBattery":false,"FlowConsumptionGrid":false,"FlowConsumptionProduction":true,"FlowGridBattery":false,"FlowProductionBattery":true,"FlowProductionGrid":true,"GridFeedIn_W":1,"IsSystemInstalled":1,"Pac_total_W":-230,"Production_W":354,"RSOC":43,"Timestamp":"2018-08-21 08:30:22","USOC":40,"Uac":237,"Ubat":53}


danke im vorraus

Code: Alles auswählen

[/!Abfrage Sonnenbatterie
var url="http://xxxxxxxxxx:8080/api/v1/status";
!hier ist die Abfrage mit CUxD
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string sonnenstatus_xml = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
WriteLine(sonnenstatus_xml);

!Daten finden und extrahieren - Consumption_W
string word0 = "Consumption_W";
string word1 = "Fac";
integer word_position0 = sonnenstatus_xml.Find(word0);
integer word_position1 = sonnenstatus_xml.Find(word1);
integer word0_laenge = word0.Length();
string daten = sonnenstatus_xml.Substr((word_position0 + word0_laenge+2), (word_position1 - word_position0 + word0_laenge + 4));
WriteLine(daten);
dom.GetObject("Sonnen_Consumption_W").State(daten.ToInteger());
WriteLine(daten.ToInteger());

!Daten finden und extrahieren -Gridfeedin
string word2 = "GridFeedIn_W";
string word3 = "IsSystemInstalled";
integer word_position2 = sonnenstatus_xml.Find(word2);
integer word_position3 = sonnenstatus_xml.Find(word3);
integer word2_laenge = word2.Length();
string daten = sonnenstatus_xml.Substr((word_position2 + word2_laenge+2), (word_position3 - word_position2 + word2_laenge + 4));
WriteLine(daten);
dom.GetObject("Sonnen_GridFeedIn_W").State(daten.ToInteger());
WriteLine(daten.ToInteger());

!Daten finden und extrahieren -Production_W
string word3 = "Production_W";
string word4 = "RSOC";
integer word_position3 = sonnenstatus_xml.Find(word3);
integer word_position4 = sonnenstatus_xml.Find(word4);
integer word3_laenge = word3.Length();
string daten = sonnenstatus_xml.Substr((word_position3 + word3_laenge+2), (word_position4 - word_position3 + word3_laenge + 4));
WriteLine(daten);
dom.GetObject("Sonnen_Production_W").State(daten.ToInteger());
WriteLine(daten.ToInteger());

!Daten finden und extrahieren -USOC
string word5 = "USOC";
string word6 = "Uac";
integer word_position5 = sonnenstatus_xml.Find(word5);
integer word_position6 = sonnenstatus_xml.Find(word6);
integer word5_laenge = word5.Length();
string daten = sonnenstatus_xml.Substr((word_position5 + word5_laenge + 2), (word_position6 - word_position5 + word5_laenge + 4));
WriteLine(daten);
dom.GetObject("Sonnen_USOC").State(daten.ToInteger());
WriteLine(daten.ToInteger());
WriteLine("Hallo Welt!");code]

Antworten

Zurück zu „RaspberryMatic“