NEWS
Text mit PARSER Adapter auslesen
-
Hallo,
mit dem Parser-Adapter versuche ich die belegung unserer Ladesäulen zu dokumentierebn.
Wie kann ich nach der Ladesäulennummer den nächsten Text zwischen den "" ausgeben lassen ?
Mit Zahlen hab ich bisher das meiste hinbekommen ... aber hier bin ich nur soweit gekommen das der nächste Teil nach dem Suchbegriff angezeigt wird.Gibt es irgendwo eine Hilfe aus der man die Syntax erkennen kann ?
mit EMLP1;"\w+
liefert
EMLP1;"VersorgungDEcemEMLP1;"Versorgung läuft"
Das Versorgung läuft beräuchte ich ..
vielen Dank für die Tipps im Voraus
Quelltext:
Ostfalia_SZ;DEcemE740796004;"Versorgung läuft";-;Online;"Karl Scharfenberg";"2022-10-12 10:53:47";Salzgitter;;AC;RFID;1;;
Ostfalia_SZ;DEcemE740796003;"Versorgung läuft";-;Online;"Karl Scharfenberg";"2022-10-12 09:50:42";Salzgitter;;AC;RFID;1;;
Ostfalia_SZ;DEcemE740796002;"E-Auto zieht keine Energie";-;Online;"Karl Scharfenberg";"2022-10-11 17:19:09";Salzgitter;;AC;RFID;1;;
Ostfalia_SZ;DEcemE740796001;"E-Auto zieht keine Energie";-;Online;"Karl Scharfenberg";"2022-10-11 13:08:10";Salzgitter;;AC;RFID;1;;
Ostfalia_WF_H;DEcemESLP2;"E-Auto zieht keine Energie";-;Online;"Salzdahlumer Str.";"2022-10-12 11:33:27";Wolfenbüttel;;AC;RFID;1;;
Ostfalia_WF_H;DEcemESLP1;Verfügbar;-;Online;"Salzdahlumer Str.";"2022-10-12 12:41:51";Wolfenbüttel;;AC;RFID;1;;
Ostfalia_WF_H;DEcemEMLP2;"Versorgung läuft";-;Besetzt;"Salzdahlumer Str.";"2022-10-11 15:45:30";Wolfenbüttel;;AC;RFID;1;;
Ostfalia_WF_H;DEcemEMLP1;"Versorgung läuft";-;Besetzt;"Salzdahlumer Str.";"2022-10-12 11:39:19";Wolfenbüttel;;AC;RFID;1;; -
@man10to
DEcemE[^;]+;"([^"]+)
-
@homoran said in Text mit PARSER Adapter auslesen:
DEcemE[^;]+;"([^"]+)
Vielen Dank, das hat schon was gebracht.
Leider scheinen die * (Sterne) noch ein Problem zu sein.
Die wurden auch nicht in den Post übernommen wie ich grad gesehen habe da ich vergessen hatte das als Code zu deklaieren.... 'Deswegen hier nochmal der richtige Inhalt..
Gibt es irgend ein tutuorial in dem man das nachlesen kann ?
mfg
EgbertOstfalia_WF_H;DE*cem*ESLP2;"Versorgung läuft";-;Online;"Salzdahlumer Str.";"2022-10-12 11:33:27";Wolfenbüttel;;AC;RFID;1;; Ostfalia_WF_H;DE*cem*ESLP1;Verfügbar;-;Online;"Salzdahlumer Str.";"2022-10-12 12:41:51";Wolfenbüttel;;AC;RFID;1;; Ostfalia_WF_H;DE*cem*EMLP2;"Versorgung läuft";-;Besetzt;"Salzdahlumer Str.";"2022-10-11 15:45:30";Wolfenbüttel;;AC;RFID;1;; Ostfalia_WF_H;DE*cem*EMLP1;"Versorgung läuft";-;Besetzt;"Salzdahlumer Str.";"2022-10-12 11:39:19";Wolfenbüttel;;AC;RFID;1;;
-
@man10to sagte in Text mit PARSER Adapter auslesen:
Deswegen hier nochmal der richtige Inhalt..
bitte den vollständigen Quelltext!
der RegEx muss eindeutig sein. das kann man nur mit dem vollständigen Quelltext überprüfen.
-
@homoran
Ok,
der teil DEcemEMLP1 ist die eindeutige Ladepunktnummer auf mindestens isn Europa.
Aber hier der ganze Quelltext ..
Das ist ein csv Export aus dem Portal ...viele Grüße und vielen Dank aus dem Süden von Niedersachsen
mfg
egbertStandort;EVSE-ID;"Status des Ladepunkts";Parkplatz-Status;"Status des Steuergeräts";Straße;"Letzter abgeschlossener Ladevorgang";Ort;Lage;Phase;Zugriffsart;reservierbar;Sticker;"Whitelist Kundengruppen" WF_Ortseingang-TELEKOM;DE*CEM*EWFOEK20*991;Verfügbar;-;Online;"Lange Straße";;Wolfenbüttel;;AC;RFID;1;; WF_Ortseingang-TELEKOM;DE*CEM*EWFOEK20*881;Verfügbar;-;Online;"Lange Straße";;Wolfenbüttel;;AC;RFID;1;; WF_Ortseingang-TELEKOM;DE*CEM*EWFOEK20*771;Verfügbar;-;Online;"Lange Straße";"2022-10-12 07:53:24";Wolfenbüttel;;AC;RFID;1;; WF_Ortseingang-TELEKOM;DE*CEM*EWFOEK20*661;"E-Auto zieht keine Energie";-;Online;"Lange Straße";;Wolfenbüttel;;AC;RFID;1;; WF_Ortseingang-TELEKOM;DE*CEM*EWFOEK20*551;"E-Auto zieht keine Energie";-;Online;"Lange Straße";"2022-10-12 07:30:31";Wolfenbüttel;;AC;RFID;1;; WF_Ortseingang-TELEKOM;DE*CEM*EWFOEK20*442;Verfügbar;-;Online;"Lange Straße";"2022-10-07 16:28:13";Wolfenbüttel;4B;AC;RFID;1;; WF_Ortseingang-TELEKOM;DE*CEM*EWFOEK20*441;Verfügbar;-;Online;"Lange Straße";;Wolfenbüttel;4A;AC;RFID;1;; WF_Ortseingang-TELEKOM;DE*CEM*EWFOEK20*332;Verfügbar;-;Online;"Lange Straße";;Wolfenbüttel;3B;AC;RFID;1;; WF_Ortseingang-TELEKOM;DE*CEM*EWFOEK20*331;Verfügbar;-;Online;"Lange Straße";;Wolfenbüttel;3A;AC;RFID;1;; WF_Ortseingang-TELEKOM;DE*CEM*EWFOEK20*222;Verfügbar;-;Online;"Lange Straße";;Wolfenbüttel;2B;AC;RFID;1;; WF_Ortseingang-TELEKOM;DE*CEM*EWFOEK20*221;"E-Auto zieht keine Energie";-;Online;"Lange Straße";"2022-10-12 07:47:14";Wolfenbüttel;2A;AC;RFID;1;; WF_Ortseingang-TELEKOM;DE*CEM*EWFOEK20*112;Verfügbar;-;Online;"Lange Straße";;Wolfenbüttel;1B;AC;RFID;1;; WF_Ortseingang-TELEKOM;DE*CEM*EWFOEK20*111;Verfügbar;-;Online;"Lange Straße";;Wolfenbüttel;1A;AC;RFID;1;; "Ostfalia_WF_R_Parkplatz Recht Salzdahlumer Str. 46/48";DE*cem*E809189*002;Verfügbar;-;Online;"Salzdahlumer Str.";"2022-10-12 13:04:50";Wolfenbüttel;;AC;RFID;1;; "Ostfalia_WF_R_Parkplatz Recht Salzdahlumer Str. 46/48";DE*cem*E809189*001;Verfügbar;-;Online;"Salzdahlumer Str.";"2022-10-12 11:00:24";Wolfenbüttel;;AC;RFID;1;; Ostfalia_SZ;DE*cem*E740796*004;"Versorgung läuft";-;Online;"Karl Scharfenberg";"2022-10-12 10:53:47";Salzgitter;;AC;RFID;1;; Ostfalia_SZ;DE*cem*E740796*003;"E-Auto zieht keine Energie";-;Online;"Karl Scharfenberg";"2022-10-12 09:50:42";Salzgitter;;AC;RFID;1;; Ostfalia_SZ;DE*cem*E740796*002;"E-Auto zieht keine Energie";-;Online;"Karl Scharfenberg";"2022-10-11 17:19:09";Salzgitter;;AC;RFID;1;; Ostfalia_SZ;DE*cem*E740796*001;"E-Auto zieht keine Energie";-;Online;"Karl Scharfenberg";"2022-10-11 13:08:10";Salzgitter;;AC;RFID;1;; Ostfalia_WF_H;DE*cem*ESLP2;"Versorgung läuft";-;Online;"Salzdahlumer Str.";"2022-10-12 11:33:27";Wolfenbüttel;;AC;RFID;1;; Ostfalia_WF_H;DE*cem*ESLP1;Verfügbar;-;Online;"Salzdahlumer Str.";"2022-10-12 12:41:51";Wolfenbüttel;;AC;RFID;1;; Ostfalia_WF_H;DE*cem*EMLP2;"Versorgung läuft";-;Besetzt;"Salzdahlumer Str.";"2022-10-11 15:45:30";Wolfenbüttel;;AC;RFID;1;; Ostfalia_WF_H;DE*cem*EMLP1;"Versorgung läuft";-;Besetzt;"Salzdahlumer Str.";"2022-10-12 11:39:19";Wolfenbüttel;;AC;RFID;1;;
-
@man10to sagte in Text mit PARSER Adapter auslesen:
Leider scheinen die * (Sterne) noch ein Problem zu sein.
nein! es gibt tatsächlich Einträge, die anders aussehen und wo die Anführungszeichen fehlen.
erst recht ein Grund für vollständige Informationen
@man10to sagte in Text mit PARSER Adapter auslesen:da ich vergessen hatte das als Code zu deklaieren.... '
auch ein Beispiel warum code-tags so wichtig sind!
https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge/1Wenn jetzt keine weiteren Überraschungen kommen:
cem[^;]+;"?([^"]+)"
-
@man10to sagte in Text mit PARSER Adapter auslesen:
Das ist ein csv Export aus dem Portal ...
dann ist das kein Quelltext und wird nicht klappen, zumal hier anscheinend noch weitere Anführungszeichen geschlabbert werden
EDIT: Das scheint zu klappen
\*[^;]+;"?([^"]+)"
-
@homoran Ja du hast recht. Ich war zu schnell...
Aus dem Qelltext möchte ich dann für jede ladestation den Status auslesenDies sind die Stationskennungen, mal mit drei * mal mit zwei.
DE*CEM*EWFOEK20*991 DE*CEM*EWFOEK20*771 DE*cem*E740796*004 DE*cem*E809189*001 DE*cem*ESLP2
Und der Status kann dann sein:
Verfügbar "Versorgung läuft" "E-Auto zieht keine Energie" "ESDI liefert keine Energie"
Standort;EVSE-ID;"Status des Ladepunkts";Parkplatz-Status;"Status des Steuergeräts";Straße;"Letzter abgeschlossener Ladevorgang";Ort;Lage;Phase;Zugriffsart;reservierbar;Sticker;"Whitelist Kundengruppen" WF_Ortseingang-TELEKOM;DE*CEM*EWFOEK20*991;Verfügbar;-;Online;"Lange Straße";;Wolfenbüttel;;AC;RFID;1;; WF_Ortseingang-TELEKOM;DE*CEM*EWFOEK20*881;Verfügbar;-;Online;"Lange Straße";;Wolfenbüttel;;AC;RFID;1;; WF_Ortseingang-TELEKOM;DE*CEM*EWFOEK20*771;Verfügbar;-;Online;"Lange Straße";"2022-10-12 07:53:24";Wolfenbüttel;;AC;RFID;1;; WF_Ortseingang-TELEKOM;DE*CEM*EWFOEK20*661;"E-Auto zieht keine Energie";-;Online;"Lange Straße";;Wolfenbüttel;;AC;RFID;1;; WF_Ortseingang-TELEKOM;DE*CEM*EWFOEK20*551;"E-Auto zieht keine Energie";-;Online;"Lange Straße";"2022-10-12 07:30:31";Wolfenbüttel;;AC;RFID;1;; WF_Ortseingang-TELEKOM;DE*CEM*EWFOEK20*442;Verfügbar;-;Online;"Lange Straße";"2022-10-07 16:28:13";Wolfenbüttel;4B;AC;RFID;1;; WF_Ortseingang-TELEKOM;DE*CEM*EWFOEK20*441;Verfügbar;-;Online;"Lange Straße";;Wolfenbüttel;4A;AC;RFID;1;; WF_Ortseingang-TELEKOM;DE*CEM*EWFOEK20*332;Verfügbar;-;Online;"Lange Straße";;Wolfenbüttel;3B;AC;RFID;1;; WF_Ortseingang-TELEKOM;DE*CEM*EWFOEK20*331;Verfügbar;-;Online;"Lange Straße";;Wolfenbüttel;3A;AC;RFID;1;; WF_Ortseingang-TELEKOM;DE*CEM*EWFOEK20*222;Verfügbar;-;Online;"Lange Straße";;Wolfenbüttel;2B;AC;RFID;1;; WF_Ortseingang-TELEKOM;DE*CEM*EWFOEK20*221;"E-Auto zieht keine Energie";-;Online;"Lange Straße";"2022-10-12 07:47:14";Wolfenbüttel;2A;AC;RFID;1;; WF_Ortseingang-TELEKOM;DE*CEM*EWFOEK20*112;Verfügbar;-;Online;"Lange Straße";;Wolfenbüttel;1B;AC;RFID;1;; WF_Ortseingang-TELEKOM;DE*CEM*EWFOEK20*111;Verfügbar;-;Online;"Lange Straße";;Wolfenbüttel;1A;AC;RFID;1;; "Ostfalia_WF_R_Parkplatz Recht Salzdahlumer Str. 46/48";DE*cem*E809189*002;Verfügbar;-;Online;"Salzdahlumer Str.";"2022-10-12 13:04:50";Wolfenbüttel;;AC;RFID;1;; "Ostfalia_WF_R_Parkplatz Recht Salzdahlumer Str. 46/48";DE*cem*E809189*001;Verfügbar;-;Online;"Salzdahlumer Str.";"2022-10-12 11:00:24";Wolfenbüttel;;AC;RFID;1;; Ostfalia_SZ;DE*cem*E740796*004;"Versorgung läuft";-;Online;"Karl Scharfenberg";"2022-10-12 10:53:47";Salzgitter;;AC;RFID;1;; Ostfalia_SZ;DE*cem*E740796*003;"E-Auto zieht keine Energie";-;Online;"Karl Scharfenberg";"2022-10-12 09:50:42";Salzgitter;;AC;RFID;1;; Ostfalia_SZ;DE*cem*E740796*002;"E-Auto zieht keine Energie";-;Online;"Karl Scharfenberg";"2022-10-11 17:19:09";Salzgitter;;AC;RFID;1;; Ostfalia_SZ;DE*cem*E740796*001;"E-Auto zieht keine Energie";-;Online;"Karl Scharfenberg";"2022-10-11 13:08:10";Salzgitter;;AC;RFID;1;; Ostfalia_WF_H;DE*cem*ESLP2;"Versorgung läuft";-;Online;"Salzdahlumer Str.";"2022-10-12 11:33:27";Wolfenbüttel;;AC;RFID;1;; Ostfalia_WF_H;DE*cem*ESLP1;Verfügbar;-;Online;"Salzdahlumer Str.";"2022-10-12 12:41:51";Wolfenbüttel;;AC;RFID;1;; Ostfalia_WF_H;DE*cem*EMLP2;"Versorgung läuft";-;Besetzt;"Salzdahlumer Str.";"2022-10-11 15:45:30";Wolfenbüttel;;AC;RFID;1;; Ostfalia_WF_H;DE*cem*EMLP1;"Versorgung läuft";-;Besetzt;"Salzdahlumer Str.";"2022-10-12 11:39:19";Wolfenbüttel;;AC;RFID;1;;
-
@man10to sagte in Text mit PARSER Adapter auslesen:
Aus dem Qelltext möchte ich dann für jede ladestation den Status auslesen
da du mit dem Parser sowieso nur ein Ergebnis bekommst, ist es egal dass
@man10to sagte in Text mit PARSER Adapter auslesen:
die Stationskennungen, mal mit drei * mal mit zwei.
sind.
Dann kannst du den jeweiligen RegEx verwenden@man10to sagte in Text mit PARSER Adapter auslesen:
Und der Status kann dann sein:
das macht kein Problem.
passt der zuletzt per Edit geschriebene RegEx?
-
@man10to sagte in Text mit PARSER Adapter auslesen:
Gibt es irgend ein tutuorial in dem man das nachlesen kann ?
-
@homoran bisher konnte ich da nur tests machen. Aber ein Tutuorium konnte ich nicht finden.
Irgendwie hab ich noch nicht rausgefunden wie man auf das 2 oder 4 te vorkommen zugreifen kann.
beim Test wird ja alles gefunden aber wenn im Adapter bekomme ich immer nur die erste Fundstelle angezeigt.
Auch wenn ich bei num eine andere einstelleIch suche mit "numberOfInstallations": "(.*\d+)
in dem folgenden Code und möchte z.b. das dritte vorkommen haben
oder geht das anders ? Ich möchte halt die insallierten bio, public oder windkraftanlagen auslesen{ "regionCode": "03254", "timestamp": { "start": "1666177200", "end": "1666178100" }, "autarky": "27.933826145612795", "secondaryInFeed": "24584.262896638596", "consumptions": { "list": [ { "name": "domestic", "unit": "kWh", "usage": "8541.133629709944", "numberOfInstallations": "90296", "timestamp": "1666177200" }, { "name": "public", "unit": "kWh", "usage": "646.2639121908843", "numberOfInstallations": "1554", "timestamp": "1666177200" }, { "name": "industrial", "unit": "kWh", "usage": "24926.058996408185", "numberOfInstallations": "11532", "timestamp": "1666177200" } ], "total": "34113.456538309016" }, "feedIn": { "list": [ { "name": "bio", "unit": "kWh", "usage": "4590.596031211449", "numberOfInstallations": "46", "installedCapacity": "56246", "timestamp": "1666177200" }, { "name": "solar", "unit": "kWh", "usage": "3806.189983341895", "numberOfInstallations": "5026", "installedCapacity": "80239.61100000002", "timestamp": "1666177200" }, { "name": "water", "unit": "kWh", "usage": "332.00724527440605", "numberOfInstallations": "19", "installedCapacity": "3990", "timestamp": "1666177200" }, { "name": "others", "unit": "kWh", "usage": "189.2494276691446", "numberOfInstallations": "201", "installedCapacity": "27607.77", "timestamp": "1666177200" }, { "name": "wind", "unit": "kWh", "usage": "611.1509541735244", "numberOfInstallations": "68", "installedCapacity": "113850", "timestamp": "1666177200" } ], "total": "9529.193641670421" }, "energyMix": "27.79763095775404", "dailyCo2Savings": "87688.94558826505" }
MOD-EDIT: Code in code-tags gesetzt!
-
@man10to sagte in Text mit PARSER Adapter auslesen:
Irgendwie hab ich noch nicht rausgefunden wie man auf das 2 oder 4 te vorkommen zugreifen kann.
beim Test wird ja alles gefunden aber wenn im Adapter bekomme ich immer nur die erste Fundstelleindem du Num entsprechend anpasst
-
@man10to sagte in Text mit PARSER Adapter auslesen:
Das ist ein csv Export aus dem Portal
Wenn man mehrere Werte aus einem CSV auslesen möchte, wäre es dann nicht besser mit einem kleinen Skript zu arbeiten?
Das ist ja mühsam und fehleranfällig für jeden Datensatz und jedes Feld ein eigenes Regex zu erzeugen.
Mit der bibliothek https://www.npmjs.com/package/csv-parse
geht das wunderbar,kann man die csv aus dem portal online direkt abrufen?
und zum 2. Beispiel im gleichen thread??? besser wäre dazu ein neuen thread anzulegen
das ist doch direkt json, auch hier geht das mit einem skript wesentlich einfacher als den mit regex zu interpretieren.
wenn du vom 2. oder 3. redest. das kann bei einem anderen abruf schon wieder eine andere reihenfolge haben und dann ist es das 5.
und er hat den code/json schon wieder nicht in code-tags gepackt.wenn ihr euch nicht sicher seid ob das genau die richtige lösung ist, dann bitte ergebnisoffen fragen. sonst fallen wir (auch ich) immer wieder drauf rein, das das nicht die beste lösung ist und helfen (doktern) an lösungen herum die eigentlich keine guten sind und morgen schon wieder umfallen. =frust bei allen
-
@oliverio sagte in Text mit PARSER Adapter auslesen:
wäre es dann nicht besser mit einem kleinen Skript zu arbeiten?
ja!
-
@homoran das hab ich versucht, aber wenn ich etwas anderes als 0 einstelle wird nichts mehr angezeigt ...
-
@man10to sagte in Text mit PARSER Adapter auslesen:
@homoran das hab ich versucht, aber wenn ich etwas anderes als 0 einstelle wird nichts mehr angezeigt ...
zeigen
-
-
@man10to das ist doch nicht mein RegEx!
-
@homoran ok, wo gibt es deins ?
-
@man10to was ist hier eigentlich los?
Hier scheint es drunter und drüber zu gehen.geht es hier dauernd um verschiedene Quelltexte?
oder kommen "nur" dauernd neue Informationen?ich habe immer den gesamten Quelltext haben wollen, damit man wahlweise ein eindeutiges Ergebnis, oder ein mehrfach nutzbares ReEx erstellen kann. Mit Schnipseln geht das nicht. Und ein Einzeltreffer kann bei einem ungeeigneten RegEx nicht einfach per Num für andere Fundstellen genutzt werden.
für dein letztes JSON wäre es
berOfI[^\:]+\: \"(\d+)
da geht es auch mit NUM
aber mach es besser mit einem Skript