NEWS
Parser - Wert wird nicht ausgelesen
-
Hallo zusammen,
beschäftige mich jetzt seit neuestem mit IOBroker und hänge leider im Parser fest.
Ich will folgende Website auslesen:
<title>Fröling p4</title> <nav class="fixed-menu1"> [](main.php) [](chart.php) [](chart2.php) [](schemadsp.php) [](menu.php) [](error.php) [](login.php) </nav> Betriebsbereit Montag 14\. Jan. 2019 10:53:40 Betriebsmodus:Automatik <a href/onclick="javascript:showHide('divP4dState'); return false">![](img/type/heating-p4.png)</a> Fröling p4 ONLINE Läuft seit: 13 Stunden 20 Minuten Messungen heute: 17820 Letzte Messung: 10:55:19 Nächste Messung: 10:56:19 Version (p4d / webif): 0.2.27-GIT78ae588 / CPU-Last: 0.23 0.20 0.14 <center>Messwerte vom 14\. Januar 2019 10:55</center> [Kesseltemperatur](#) 68.00 [Heizungsstatus](#) 19.00 [Abgastemperatur](#) 65.00 [Betriebsmodus](#) 2.00 [Boardtemperatur](#) 38.00 [Datum Uhrzeit der Heizung](#) Montag, 14\. Jan. 2019 10:53:30 [Restsauerstoffgehalt](#) 2.00 [Außentemperatur](#) 2.50 [Saugzugdrehzahl](#) 0.00 U/min [Fühler in der STB Hülse](#) 76.00 [Luftgeschwindigkeit in der Ansaugöffnung](#) 4.54 [Kesselstellgröße](#) 57.00 [Vorlauf-Isttemperatur](#) 35.00 [Vorlauf-Solltemperatur](#) 36.00 [Ansauglufttemperatur](#) 22.50 [Stromaufnahme der Austragschnecke](#) 0.01 [Füllstand im Pelletsbehälter](#) 100.00 [Einschub](#) 0.00 [Sauerstoffregler](#) 42.00 [Puffertemperatur oben](#) 76.00 [Puffertemperatur Mitte](#) 75.00 [Puffertemperatur unten](#) 40.50 [Pufferpumpen Ansteuerung](#) 0.00 [Stromaufnahme 24 VDC Pelletsmodul](#) 0.16 [Breitbandsonde Heizstrom](#) 0.45 [Breitbandsonde Heizungs Spannung](#) 1.80 [Breitbandsonde Innenwiderstand](#) 2.00 <form name="navigation" method="get"> Zeitraum der Charts <select name="sday"><option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7" selected="">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> <option value="13">13</option> <option value="14">14</option> <option value="15">15</option> <option value="16">16</option> <option value="17">17</option> <option value="18">18</option> <option value="19">19</option> <option value="20">20</option> <option value="21">21</option> <option value="22">22</option> <option value="23">23</option> <option value="24">24</option> <option value="25">25</option> <option value="26">26</option> <option value="27">27</option> <option value="28">28</option> <option value="29">29</option> <option value="30">30</option> <option value="31">31</option></select> <select name="smonth"><option value="1" selected="">Januar</option> <option value="2">Februar</option> <option value="3">März</option> <option value="4">April</option> <option value="5">Mai</option> <option value="6">Juni</option> <option value="7">Juli</option> <option value="8">August</option> <option value="9">September</option> <option value="10">Oktober</option> <option value="11">November</option> <option value="12">Dezember</option></select> <select name="syear"><option value="2009">2009</option> <option value="2010">2010</option> <option value="2011">2011</option> <option value="2012">2012</option> <option value="2013">2013</option> <option value="2014">2014</option> <option value="2015">2015</option> <option value="2016">2016</option> <option value="2017">2017</option> <option value="2018">2018</option> <option value="2019" selected="">2019</option> <option value="2020">2020</option></select> <select name="srange"><option value="1">Tag</option> <option value="7" selected="">Woche</option> <option value="31">Monat</option></select> </form>
Als RegEx hab ich folgendes von einem User aus dem Forum gefunden:
/Außentemperatur....[^\d]*([0-9.,]+)/g
Der Wert wird zwar im Parser markiert aber kein Ergebnis angezeigt.
Laut regex101.com passt der Code bzw. wird richtig als Gruppe zurück gegeben.Ist der Code für den IOBroker Parser "falsch"?
Und könnte mir hier jmd. weiterhelfen?
PS:
Die anderen Werte will ich auch noch auslesen aber die kann ich dann über den Namen im Code anpassen.
MFG
Seeandfeel
-
Richtig. http://regex101.com liefert hier die richtige Gruppe zurück.
Sofern du auch einmal negative Zahlen erhalten willst (Außentemperatur), klappt es mit dem AUsdruck aber nicht.
Du schneidest bis zur ersten Ziffer alles weg. Übrig bleibt nur noch die Zahl.
Damit solltest du also mindestens den Ausdruck erweitern
Außentemperatur....[^\d^-]*(\-*\d*[.|,]\d*)
Das liefert dann auch negative Zahlen.
-
An negative Zahlen hatte ich aktuell gar nicht gedacht. Regex eingefügt, funktioniert dieses mal auf anhieb.
Super, VIELEN DANK Karl_999!!
Zu meinen Problem das die Werte nicht ausgelesen wurden:
Ich hab noch einen Beitrag von Bluefox gefunden wo ein anderer User ein ähnliches Problem hatte (Zahlen werden zwar markiert aber nicht ausgelesen). Da hatte Bluefox dann eine andere Abfrage empfohlen. Also scheint es wohl noch ein paar kleine Bugs mit vereinzelten Regex zu geben.
Die Abfrage von gestern hatte jedenfalls doch funktioniert. Hab ich nur spät Abends erst gesehen das der Eintrag erfolgt ist.