NEWS
Pegel der Donau per Parser auslesen
-
hab ich doch schon längst
dennoch ist aller Anfang schwer , wenn ich es mal gesehen habe , kapier ich es sofort
-
@MyzerAT
jetzt suchst Du per RegEx "Aktueller Wert" und danach 1 bis 3 Zahlen die anschließend kommen können. Das Ergenbis gehört in den Parser-Datenpunkt. -
@BBTown sagte in Pegel der Donau per Parser auslesen:
Aktueller Wert
ist RegEx auch ein Adapter? sorry aber das ist hie wie Rätselraten für mich ^^
Ich habe in der Instanz folgendes eingegebene
-
@MyzerAT hast du diesen Adapter getestet?
https://github.com/larsdecker/ioBroker.pegelonline -
@MyzerAT sagte in Pegel der Donau per Parser auslesen:
@BBTown sagte in Pegel der Donau per Parser auslesen:
Aktueller Wert
ist RegEx auch ein Adapter? sorry aber das ist hie wie Rätselraten für mich ^^
Ich habe in der Instanz folgendes eingegebene
Das reicht nicht. Du musst
r Wert[^"]*"value">(\d+)
Eintragen.
Das ist der RegEx
Außerdem den Typ auf number (nicht Boolean) umstellen
Für Tendenz:
enz[^"]*"value">(\w+)
Und Zeichenkette als Typ
Wofür brauchst du das Datum?
-
naja Datum nicht unbedingt, aber ob steigen oder fallend wäre nicht schlecht
-
-
@Homoran sagte in Pegel der Donau per Parser auslesen:
nkt[^"]"value">([^<])
super es klappt, ich verstehe aber nicht wirklich wie ihr auf diese "zeichenfolgen kommt" habe mir ein Video angesehen und muss das erst mal kapieren! Soviel weiß ich jetzt man benötigt zum testen --> https://regex101.com/
eventuell hat ja jemand mal lust mir das per TS und Teamviewer zu erklären, dann kapier ich es sicher!
DANKE euch
-
@Homoran sagte in Pegel der Donau per Parser auslesen:
@MyzerAT
Dann liesmalFalls Datum
nkt[^"]*"value">([^<]*)
als Text
bist du so nett "bitte" und machst mir die zeichenfolge inkl, Uhrzeit
dann habe ich zum Adapter noch eine Frage:
Der poll-intervall steht auf 5000 , heisst alle 5 Sekunden werden die Werte abgefragt, wenn in der jeweiligen Regel kein Wert bei Intervall eingetragen ist?!
Ich denke es müsste reichen alle 15 Minuten abzufragen!
-
@MyzerAT
ja regex ist ein harte Nuss, auch ich muss mich da immer durchbeissen.
regex101.com ist super zum testen und Beispielcode erzeugen (Code Generator)Als kleine Verbesserung würde ich nur die folgende Zeichenkette in all deinen Regeln verwenden
und je nachdem was für ein Wert du zurück bekommen möchtest, den Num Wert anpassen.
Der nachfolgende Ausdruck findet alle Werte, die in einem <td class="value"> feld sind (also insgesamt 4.
Über den Num-Wert in der Maske kannst du dann auswäheln, gut ist, das das Ergebnis in der Maske auch gleich angezeigt wird. Achtung beim selektieren wird einb Leerzheichen hinter der letzten Klammer mitselektiert. Das darf nicht mit eingegeben werden, da dies dann zum Selektionsmuster dazugezält wird."value">([^<]*)
Zur Erklärung für die Zeichenkette (steht auf englisch etwas kryptisch auch in regex101 oben rechts.
"value">
sucht genau nach dieser zeichenfolge
(
alles was in Klammern steht wird als Parameter zurüggegeben, also da gehört dann auch das schliesende ) dazu
[^<]
identifiziert alle Zeichen bis auf <
*
Der Stern ist ein Multiplikator, der angibt, wie oft ein Zeichen gefunden werden soll
Viel Spaß mit regex
wenn du öfters in Texten intelligent mal was suchen sollst, dann lohnt sich das durchbeißen wirklich. -
So die wichtigsten Sachen für VIS was die Wasserpegel betrifft habe ich nun , jetzt muss ich noch ein Script machen was mich ab einem kritischen Wert informiert --> THX euch allen!
#Edit#
so script ist nun auch fertig -
@MyzerAT sagte in Pegel der Donau per Parser auslesen:
machst mir die zeichenfolge inkl, Uhrzeit
Das steht doch in diesem Post
-
das Datum, aber nicht die Zeit!
wobei ich jetzt folgende Meldung bekomme
host.RDJL_Home 2019-11-27 22:05:00.550 error instance system.adapter.parser.0 terminated with code 156 ()
ohne das ich was geändert hätte genau alle Minuten!
#Edit#
Ursache gefunden, hatte einen cron eingerichtet und das hat den Fehler verursacht
hab ihn wieder rausgelöscht, habe ich deshalb gemacht weil irgend wie die Intervalle nicht gehen:hatte bei den Regeln jeweils 900000 eingestellt und er aktualisiert nicht die werte, 5000 finde ich doch ein wenig nieder, gibt es da was zu beachten ?!
-
@MyzerAT sagte in Pegel der Donau per Parser auslesen:
das Datum, aber nicht die Zeit!
Die zeit hätte mit drin sein sollen, mache ich dir morgen wenn ich wieder am PC sitze.
-
@MyzerAT auf keinen Fall 5000, das kann die Website lahmlegen.
Viele Webseiten haben in den Nutzungsbedingungen sowieso drin stehen, dass maschinelles Auslesen verboten ist.Warum klappt den 900000 nicht?
Dein "cron" ist für einen Neustart der Instanz
-
ich hatte eingestellt alle 15 Minuten, normal würde auch einmal die Stunde reichen, da die Werte auch auf der Webseite nur alle 60minuten aktualisiert werden. Da die 900000 nicht geklappt hatten, dachte ich mir, was soll's ich starte eben die Instanz alle 60 Minuten durch und das hat dann diesen Fehler ausgeworfen, warum auch immer!
-
@MyzerAT sagte in Pegel der Donau per Parser auslesen:
Da die 900000 nicht geklappt hatten,
Nochmal:
Warum hat das nicht geklappt? -
weil auf der Seite die Werte sich geändert haben, zur vollen Stunde und in den Datenpunkten nicht und das über mehrere Stunden!
-
@MyzerAT sagte in Pegel der Donau per Parser auslesen:
und in den Datenpunkten nicht und das über mehrere Stunden!
Hat sich der zeitstempel geändert?
-
nein hat er nicht , auf das schau ich ja immer im Datenpunkt !