Hallo Ulfberht,
Ulfberht hat geschrieben: ↑Mi 22. Mai 2019, 00:18
Ansonsten hatte ich an dem Script zunächst nichts geändert. Die Variablen wurden nicht gefüllt. Ich habe ohne Erfolg verschiedene Möglichkeiten für posStart und posEnd eingegeben. Als ich vor der Änderung noch den Abruf per xml machte und deinen Vorschlag einfügte, wurde die Variable "blades" auch nicht befüllt.
Wo könnte denn wohl noch ein Fehler sein?
Entschuldige bitte, aber Fehlersuche in dem Skript kann ich nicht leisten. Das müsste dann vielleicht jemand machen der dies auch einsetzt.
Als Ansatz für Dich als xml:
Code: Alles auswählen
WriteLine("Hallo Welt!");
string stdout = "";
string stderr = "";
string url = 'http://192.168.188.43/xml?user=xxxx&pass=xxxx1234&cmd=status';
integer pos;
string posStart;
string posEnd;
string substring;
dom.GetObject("CUxD.CUX2801001:7.CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801001:7.CMD_QUERY_RET").State(1);
stdout = dom.GetObject("CUxD.CUX2801001:7.CMD_RETS").State();
WriteLine("Antwort xml: " # stdout);
pos = 0;
posStart = ' quality ';
posEnd = ' /quality ';
pos = stdout.Find(posStart) + posStart.Length();
if (stdout.Find(posStart) > 0) {
substring = stdout.Substr(pos, 15).StrValueByIndex(posEnd, 0);
dom.GetObject('M_blades').State(substring);
} else {
dom.GetObject('M_blades').State(' ');
}
WriteLine("M_blades: " # substring);
und als json:
Code: Alles auswählen
WriteLine("Hallo Welt!");
string stdout = "";
string stderr = "";
string url = 'http://192.168.188.43/json?user=xxxx&pass=xxxx1234&cmd=status';
integer pos;
string posStart;
string posEnd;
string substring;
dom.GetObject("CUxD.CUX2801001:7.CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801001:7.CMD_QUERY_RET").State(1);
stdout = dom.GetObject("CUxD.CUX2801001:7.CMD_RETS").State();
WriteLine("Antwort json: " # stdout);
pos = 0;
posStart = 'quality": ';
posEnd = ',';
pos = stdout.Find(posStart) + posStart.Length();
if (stdout.Find(posStart) > 0) {
substring = stdout.Substr(pos, 10).StrValueByIndex(posEnd, 0);
dom.GetObject('M_blades').State(substring);
} else {
dom.GetObject('M_blades').State(' ');
}
WriteLine("M_blades: " # substring);
Ulfberht hat geschrieben: ↑Mi 22. Mai 2019, 00:49
Bei der Datei 2 löschte ich das "!", damit die Variablen automatisch angelegt werden. Das hat nicht funktioniert, die Variablen wurden nicht angelegt.
ich gehe davon aus, dass Du dieses meinst
Code: Alles auswählen
! Entkommentieren der folgenden Zeilen und einmaliges starten schreibt die Werteliste in die Variablen
! anschließend wieder auskommentieren
Da steht nichts von automatisch angelegt.
Wie weiter oben im Skript aufgeführt handelt es sich um Variablen vom Typ Werteliste. Die Variablen müssen alle von Hand angelegt werden. Durch entkommentieren werden lediglich in die schon vorhandenen Variablen die entsprechenden Werte als Liste eingetragen.
Ulfberht hat geschrieben: ↑Mi 22. Mai 2019, 00:49
Das Script 3 funktioniert nicht, weil dort die Variablen nicht angelegt werden?
Das 3. Skript ist nur eine Kopie von dem 2. Es ist nur der unnötige Ballast zum Testen entfernt um es vernünftiger in ein Programm einfügen zu können.
Wenn Du dieses Skript nutzen möchtest, kannst Du entweder die Variablen anlegen oder das Skript dahingehend ändern, dass Du schon vorhandene Variablen weiternutzt. Achte dabei aber bitte darauf den Variablentyp auch entsprechend zu übernehmen. Ferner ist am Ende eine Variable verwendet, die von thomas.flaechsig angefügt wurde und oben nicht beschrieben ist.
Gruß
Lampi