NEWS
Parser - Temperatur aus XML Datei auslesen
-
Hallo,
versuche aus einer XML Datei von einem APC Netbotz 450 die Temperatur Daten mit der Hilfe von Regulären Ausdrücken auszulesen. Einlesen der Datei mit dem Parser von einem Synology NAS funktioniert.
Hat jemand eine Idee wie der Reguläre Ausdruck aussehen müsste, um Beispielsweise die Temperatur in der Werkstatt auslesen zu können?
Hier das XML für den Tempsensor der Werkstatt:
<variable varid="nbAlinkEnc_0_6_TEMP" guid="B930A30_nbAlinkEnc_0_6_TEMP" class="nbAlinkTempSensor" classpath="/nbSensor/nbNumSensor/nbTempSensor/nbAlinkTempSensor"><double-val>7,800000</double-val> <metadata slotid="nbLabel"><nls-string-val raw="Werkstatt">Werkstatt</nls-string-val></metadata> <metadata slotid="nbLocationData"><struct-val></struct-val></metadata> <metadata slotid="nbEncID"><varid-val>nbAlinkEnc_0</varid-val></metadata> <metadata slotid="nbUnitsID" isclassdef="yes"><varid-val>nbUnits_DegC</varid-val></metadata></variable>Habe etwas mit "https://regex101.com/" rumgespielt. Mit dem folgenden Regex bekomme ich die Temperatur von 7,8 Grad heraus. Ist aber Dirty und geht nur im dem Tester und nicht im ioBroker Parser.
/nbAlinkEnc_0_6_TEMP" guid="B930A30_nbAlinkEnc_0_6_TEMP" class="nbAlinkTempSensor" classpath="\/nbSensor\/nbNumSensor\/nbTempSensor\/nbAlinkTempSensor"> <double-val>(\d+,\d)</double-val>Match 1
Full match 17227-17393 `nbAlinkEnc_0_6_TEMP" guid="B930A30_nbAlinkEnc_0_6_TEMP" class="nbAlinkTempSensor" classpath="/nbSensor/nbNumSensor/nbTempSensor/nbAlinkTempSensor">
<double-val>7,8`
Group 1. 17390-17393
7,8Bin für jede Hilfe dankbar.
Poldi</double-val>
-
Hallo,
habe es mit dem folgenden Regulären Ausdruck hinbekommen:
<variable varid="nbAlinkEnc_0_6_TEMP" [^"]"[^="">]>\s\s\s\s<double-val>(\d+,\d)
Ergebnis:
Match 1
Full match 17211-17394
<variable varid="nbAlinkEnc_0_6_TEMP" guid="B930A30_nbAlinkEnc_0_6_TEMP" class="nbAlinkTempSensor" classpath="/nbSensor/nbNumSensor/nbTempSensor/nbAlinkTempSensor"><double-val>7,8Group 1. 17391-17394
7,8Viele Grüße
Poldi</double-val></variable></double-val></variable>