NEWS
XML aus ALL3690 auslesen und Datenpunkte auslesen
-
Hallo,
ich bin absoluter Anfänger, konnte aber schon ein paar einfache DInge umsetzen.
Nun würde ich gern mein Allet 3690 einbinden.
XML Abfrage mit Praser bekomme ich hin:
<sensors>
<sensor>
<id>1</id>
<name>Phase L1</name>
<current>2.72</current>
<unit>A</unit>
<minmax>
<today>
<min>
<value>2.68</value>
<date>11.05.2021 06:04:35</date>
<timestamp>1620705875</timestamp>
</min>
.... usw.XML2JSON habe ich installiert.
Nun wäre ein Beispiel Skript Klasse.
Ich möchte die Daten abrufen und in die Datenbank schreiben um diese z.B. als Kurve auszugeben.Über Hilfe würde ich mich freuen.
Vg
-
@rvbrocken
Für xml2json gibt es doch auf der github /npm Seite ein Beispiel was brauchst du denn da noch genauer? -
Moin,
ich bin einen Schrittweiter. Der Allnet kann doch JSON.
Ich kann die Daten auslesen. aber mein Objekt wir nicht aktualisiert.
-
@rvbrocken
Also zum einen hast du keinn Trigger angelegt also etwas was dir züglich den Wert abholt. Somit wird es glaube ich nur einmal abgeholt und ich bin mir auch nicht sicher ob das Zahl nach stimmt. Kannst du das noch mal als JS zeigen? -
Danke für die Antwort.
Zahl steht drin, da sonst ein Fehler kommt.
You are assigning a object to the state "0_userdata.0.Test.TestValue" which expects a number. Please fix your code to use a number or change the state type to object. This warning might becomevar L1_Leistung;
try {
require("request")('http://192.168.170.74/xml/json.php?mode=all&id=103', async function (error, response, result) {
console.log(getAttr((function () { try {return JSON.parse(L1_Leistung);} catch(e) {return {};}})(), '0.value'));
setState("0_userdata.0.Test.TestValue"/0_userdata.0.Test.TestValue/, parseFloat(L1_Leistung), true);
}).on("error", function (e) {console.error(e);});
} catch (e) { console.error(e); }
console.log("request: " + 'http://192.168.170.74/xml/json.php?mode=all&id=103'); -
@rvbrocken
Was zeigt denn der consolen Log? Kommt da ein Wert? -
Hallo,
ich habe es gefunden. In der Variable steht immer der komplette Datensatz.
Es muß also immer die Abfrage mit Attribut verwendet werden.
Jetz kommt noch ein Trigger.
Danke.
-
@rvbrocken
Ja das macht Sinn. Sah auch so aus das etwas fehlt konnte aber nicht genau sagen was wenn es jetzt klappt um so besser