NEWS
Adapter - Parser (regEx)
-
hmmm komisch…
wenn ich das bei regex101 eingebe bekomme ich auch kein match angezeigt...
(?:Autogas[^]*)(?=[^]*) ```` `
Ich meinte NUR meinen Ausdruck, so komme ich auf den gewünschten Wert.
-
also beide liefern mir des richtige Erbenis allerdings auch````
[0-9.]{4}mein Problem ist ja, das zuerst nach "Autogas" und dann nach " Hintergrund ist es gibt mehrere kraftstoffe und ich möchte mit einem 2\. Parser auch noch die 3\. Nachkommastellen auslesen... [http://www.clever-tanken.de/tankstelle_details/5249](http://www.clever-tanken.de/tankstelle_details/5249) Edit: jetzt bin ich vollends verwirrt: warum verschuckt regex jetzt die "0."? ![](https://i.imgur.com/xvecdao.jpg)~~![](</s><URL url=)https://i.imgur.com/xvecdao.jpg" /> und noch eins… online bekomme ich ein Ergebniss [https://regex101.com/r/wl1hmQ/1](https://regex101.com/r/wl1hmQ/1) im regex-Adapter aber nicht ![](https://i.imgur.com/8N3IkjV.jpg)~~![](</s><URL url=)https://i.imgur.com/8N3IkjV.jpg" />~~~~
-
Warum immer scheibchenweise die Info?
nimm mein Regex und stelle bei "num" auf 5
Übrigens:
@[url=http://www.clever-tanken.de/agb:~~AGB §6.3"]~~Insbesondere ist es nicht gestattet, eigene Robots, Webcrawler oder sonstige Automatismen zu programmieren und die Inhalte von clever-tanken.de systematisch … für sonstige Zwecke zu extrahieren und zu verarbeiten. `
Gruß
Rainer
-
Ja, sorry… funktioniert jetzt.
Ich habe immer nicht verstanden warum der alte regex auf der Seite funktioniert aber im Adapter nicht...
Wie auch immer, ich bekomme jetzt die richtigen Werte...
Gesendet von iPhone mit Tapatalk Pro
-
Regex Hilfe!
Hallo zusammen,
ich würde den Parser Adapter gerne nutzen um Aktienkurse auszulesen.
https://www.finanzen.net/etf/ishares_co … _ucits_etf
Jeweils den aktuellen Stand, die Entwicklung und die Prozentuale Entwicklung
Welcher Regex Guru kann mich retten?
-
Bevor ich mich da reinstürze hier noch ein kleiner Hinweis:
@[url=https://www.finanzen.net/nutzungsbedingungen:Nutzungsbedingungen 6.3"](3) Insbesondere ist eine automatisierte Abfrage der von finanzen.net bereitgestellten Inhalte ohne ausdrückliche Genehmigung in jeglicher Form nicht zulässig. `Gruß
Rainer
-
Hallo,
ich hätte da auch eine Frage zum Parser. Ist es möglich mit dem Parser ein Gerät zu überwachen ob es da ist oder nicht.
Das heisst, ich habe ein iButton am gpio hängen, den sehe ich dann auch unter den Geräten. (/sys/bus/w1/devices/)
Hat jemand eine Idee wie ich den Button jetzt im ioBroker abfragen kann ob er da ist oder nicht?
Gruss Oli
-
Leider muss ich mich nochmal melden.
Mit der ganzen Aktion wollte ich den Status meines Wechselrichters loggen, weil es anscheinend zu Störungen kam. Dies war heute morgen wieder der Fall, da stand dann in dem Datenpunkt nur "St" :shock:
In der WebUI stand dann wo hier Einspeisen MPP steht Störung Isolationsfehler.
WR_WebUI.jpg
Dies wollte ich loggen.
Parser_WR_States.jpg
Aber auch dort steht nur "St" und sonst nichts.
Ich nehme an, dass der Umlaut ö das Problem erzeugt.
Leider habe ich von dem Zeitpunkt keinen Seitenquelltext, sondern nur von gerade eben:
! ````
! <title>PV Webserver</title>
! <form method="post" action="">
! | |
! | |PIKO 5.5
! Helios (255)
|
|
! |! * * *
! |
! | |
! |AC-Leistung |
|Energie |
! | |
! |aktuell |
1278 |
W |Gesamtenergie |
27319 |
kWh |
|! | |
! ||
|
|Tagesenergie |
13.98 |
kWh |
|! | |
! |Status |
Einspeisen MPP |
|! | |
! |
! |! * * *
! |
! | |
! |
! |PV-Generator |
|Ausgangsleistung |
|
|! | |
! |<u>String 1</u> |
|
|<u>L1</u> |
|
|
|! |
Spannung |
324 |
V |Spannung |
230 |
V |
|! | |
! |Strom |
1.97 |
A |Leistung |
428 |
W |
|! | |
! |<u>String 2</u> |
|
|<u>L2</u> |
|
|
|! |
Spannung |
347 |
V |Spannung |
230 |
V |
|! | |
! |Strom |
2.14 |
A |Leistung |
427 |
W |
|! | |
! |<u>String 3</u> |
|
|<u>L3</u> |
|
|
|! |
Spannung |
0 |
V |Spannung |
224 |
V |
|! | |
! |Strom |
0.00 |
A |Leistung |
423 |
W |
|! | |
! |
! | |! * * *
! |
! | |
! |
! | |
RS485 Kommunikation |
! | |
! | |
Wechselrichter |
| |
! * * *
! | |
! | |Einstellungen ! </form>
! ````im Parser Adapter lese ich den Status aus mit
((?:\s+\w+)+)
Das klappte mit den Standard zuständen beim online regex-tester problemlos.
EDIT: Habe gerade bei regex101.com manuell "Einspeiden MPP" gegen "Störung Isolationsfehler" ausgetauscht, da ergibt der RegEx auch nur "St"
Kann mir da bitte noch einmal jemand unter die Arme greifen?
EDIT2: Nach einigem googeln klappt es jetzt hoffentlich mit
(?:\s+([a-zA-Z äöüÄÖÜ]+))
Gruß
Rainer `
Hallo,
ich habe auch einen PIKO Wechselrichter 4.2 Ver. 3.7
Wie auch Rainer das gemacht hat, hab ich soweit verstanden, also den Status auslesen.
Hat auch soweit auf anhieb funktioniert.
Aber wie werden alle anderen Daten ausgelesen? Aktuelle Leistung, Gesamtenergie usw.?
Ich muss zugeben, ich bin absolut kein RegEx Profi, und scheitere an den eingaben…
Kann mir hier vielleicht jemand helfen?
Danke schonmal!
! ````
! <title>PV Webserver</title>
! <form method="post" action="">
! | |
! | |PIKO 4.2
>! ! * * *
! |
! | |
! |AC-Leistung |
|Energie |
! | |
! |aktuell |
138 |
W |Gesamtenergie |
31349 |
kWh |
|! | |
! ||
|
|Tagesenergie |
0.03 |
kWh |
|! | |
! |Status |
Einspeisen MPP |
|! | |
! |
! |! * * *
! |
! | |
! |
! |PV-Generator |
|Ausgangsleistung |
|
|! | |
! |<u>String 1</u> |
|
|<u>L1</u> |
|
|
|! |
Spannung |
677 |
V |Spannung |
221 |
V |
|! | |
! |Strom |
0.25 |
A |Leistung |
138 |
W |
|! | |
! |<u>String 2</u> |
|
|<u>L2</u> |
|
|
|! |
Spannung |
0 |
V |Spannung |
226 |
V |
|! | |
! |Strom |
0.00 |
A |Leistung |
0 |
W |
|! | |
! |<u>L3</u> >! | | |
Spannung |
228 |
V |
|! | |
! || |
|
Leistung |
0 |
W |
|! | |
! |
! | |! * * *
! |
! | |
! |
! | |
RS485 Kommunikation |
! | |
! | |
Wechselrichter |
| |! |
! * * *
! |
! | |
! PV-Generatornt>
! Einstellungen </form>
! ```` -
Wie auch Rainer das gemacht hat, hab ich soweit verstanden ….
...
Aber wie werden alle anderen Daten ausgelesen? Aktuelle Leistung, Gesamtenergie usw.?
Ich muss zugeben, ich bin absolut kein RegEx Profi, und scheitere an den eingaben... ` für mich klingt das irgendwie nach einem Wiedeerspruch 8-)
Schau doch mal hier vorbei https://danielfett.de/de/tutorials/tuto … ausdrucke/
Das ist eine Klasse Erläuterung von RegEx.
Zusammen mit Rainers Beispiel solltest Du zum Ziel kommen können.
-
würde mich anschliessen bei dem Kostal Problem:
Gesamtenergie.*\n.*\n*\s*\s(\d*)
Bringt das richtige Ergebnis, jedoch wird es nicht in das Objekt geschrieben.
-
Wie sieht denn eure Zeile im Parser-Adapter aus?
gebt ihr bei der IP-Adresse die credentials mit?
wie oft ruft der Parser die Seite auf?
Gruß
Rainer
-
Bringt das richtige Ergebnis, jedoch wird es nicht in das Objekt geschrieben.
https://regex101.com/r/4ctx9q/1 ` Was ist denn wenn du die "Rolle" von Datenpunkt "Gesamtenergie" von "state" auf "value" änderst?
Hat der Datenpunkt als Art/Type "Zahl" oder "Logikwert"?
-
Ich denke eher dass die settings im Parser-Adapter für diesen Regex falsch sind. (u.a. Rolle und Typ)
Gruß
Rainer
-
Im Parser wäre Rolle „Wert“- Typ „Number“
Ich hab schon alle Rollen usw. durchgetestet. Aber was nebenbei- wenn das Ergebnis im Parser stimmt,
Ist das regex richtig? Also liegt es nur noch an der Verarbeitung in Iobroker?
Ich hab jetzt alle Rollen und Typen durchgetestet. Er schreibt keinen Wert:
Device Error wenn ich mit der Maus auf dem Wert bleibe, in dem kleinen Fenster was da kommt(Objekte Reiter) mehr nicht.
Der Status wird einwandfrei ausgelesen. (Gleiche URL)
URL ist:http://pvserver:passwort@192.168.2.250/index.fhtml
An der falschen URL kann es nicht liegen. Da der Status ja auch über die gleiche URL ausgelesen wird.
So langsam bin ich am Ende mit meinen Ideen
€: das ist das webinterface: @homoran- ich habe es von deinem Post (gleiches Thema Seite 4) übernommen, da es das gleiche ist, und genauso aussieht. Langsam habe ich den Verdacht, dass es an den Kästchen liegt, wo der Wert von der PV reingeschrieben wird. Der Status steht nämlich so „einfach“ ohne solch ein wertekästchen.. aber du hattest ja mal gesagt, dass du deinen auslesen konntest.
Trotzdem alles kurios, da das Ergebnis im parser richtig angezeigt wird. Als String, Json, number- bekomme ich das richtige Ergebnis.
1744_32f62f67-9792-4af8-9af8-ffe8ff2c39f5.jpeg -
aber du hattest ja mal gesagt, dass du deinen auslesen konntest. `
Ich hatte über den parser nur den Status, die anderen Werte hatte ich über ein shell script in die CCU als SysVar und über hm-Rega in ioBrokerBitte klicke bei dem State in den Objekten mal rechts den Bleistift an, wähle dann den Reiter RAW (nur Experten) und poste den Inhalt.
Gruß
Rainer
-
RAW von Gesamtenergie im Spoiler:
! ````
{
"from": "system.adapter.admin.0",
"ts": 1519326754876,
"common": {
"name": "Gesamtenergie",
"unit": "",
"type": "number",
"role": "value",
"write": false,
"read": true
},
"native": {
"link": "http://pvserver:mondeo@192.168.2.250/index.fhtml",
"regex": "Gesamtenergie.\n.\s*\s([0-9]*)",
"interval": "",
"substitute": "",
"factor": 1,
"offset": 0,
"item": 0,
"substituteOld": false,
"comma": false
},
"acl": {
"object": 1636,
"owner": "system.user.admin",
"ownerGroup": "system.group.administrator",
"state": 1636
},
"_id": "parser.0.Gesamtenergie",
"type": "state"
} -
Du hast "write" auf false … da wird es schwer etwas in den Datenpunkt reinzuschreiben
-
Das macht der Adapter automatisch. Ich hab da nichts umgestellt, Moment ich ändere und berichte.
€: bringt nix- parser fährt nicht mehr hoch danach. Außerdem steht Einspeisen MPP auch nur auf lesen true und es funktioniert. Wenn ihr euch eure parser Objekte anschaut stehen die bestimmt auch nur auf lesen true.
Also weiter gehts.
-
Ich hätte auch auf das write = false getippt, aber tatsächlich, bei mir steht da auch false: Das bedeutet nur, dass du unter Objekte nicht manuell ändern kannst.
Aber postet doch bitte, bitte endlich mal eure Parser Adaptereinstellungen!
Gruß
Rainer
-
Update:
Ich habe es geschafft die aktuelle Leistung über regex getestet über #FFFFF auszulesen. Da aber viele Werte mit FFFFF auslesbar sind muss ich es hinterher über nen NUM im parser Parlamentarierin.
Sprich aktuell ist NUM0 - aktuelle Leistung.
Gehe ich aber auf NUM1 - Gibt er mir Anfangs die Gesamtenergie aus.
Was auch soweit richtig ist. Ich habe zum Test ein 5sek Polling eingestellt.
Sie da: aktuelle Leistung ändert sich prima alle 5 sek. Aber: die gesamtenergie springt immer ein FFFFF wert weiter aus der html.