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>
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden