Keine Werte von Clever Tanken

Begonnen von juniorfux94, 25 April 2019, 10:21:58

Vorheriges Thema - Nächstes Thema

Frank_Huber

Zitat von: RappaSan am 26 April 2019, 09:55:19
Danke :)
Think i have to improve my regex knowing...
Ich hab das auch mal nur irgendwo "geklaut"
Wenn man es "richtig" machen wollte müsste man den Suffix auch von der Webseite extrahieren.
<div class="price-field">
                                        <span id="current-price-1">1.30</span>
                                        <sup id="suffix-price-1">9</sup>

Da es aber idR eh immer die 9 hinten ist reicht mir der einfache Weg das einfach zu addieren.

stromer-12

Hier gibt es auch eine Tankstelle mit x.xx8 beim Preis.
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

stromer-12

Hier meine Regex für Preis mit Zehntel Cent.

attr Tankstelle_X reading01Name Diesel
attr Tankstelle_X reading01Regex "price-type-name">Diesel</div>[\d\D]{700,900}"current-price-.">([0-9\.]+[^0-9]+suffix-price-.">[0-9])
attr Tankstelle_X reading02Name SuperE10
attr Tankstelle_X reading02Regex "price-type-name">Super E10</div>[\d\D]{700,900}"current-price-.">([0-9\.]+[^0-9]+suffix-price-.">[0-9])
attr Tankstelle_X reading03Name SuperE5
attr Tankstelle_X reading03Regex "price-type-name">Super E5</div>[\d\D]{700,900}"current-price-.">([0-9\.]+[^0-9]+suffix-price-.">[0-9])
attr Tankstelle_X readingOExpr $val =~ s/<[\d\D]+>//;;$val
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

PeMue

ich lese mit, 24.04.2019, 08:57 war das letzte reading.

Gruß Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

RadioJames

#19
die Zuordnung zu "current-price-x" mag funktionieren, ich wollte aber eine eindeutige, an die Benzinsorte ("price-type-name") gekoppelte Abfrage.

Am Beispiel von Super E10 verwende ich folgenden regulären Ausdruck:

<div class="price-type-name">Super E10</div>[\S\s\r\n]*?<span id="current-price-\d+">(\d.\d{2})</span>


Gesucht wir zunächst die Sorte Super E10

"price-type-name">Super E10</div>


Dann werden mehrere Zeilen (nicht gierig -> "?") übersprungen. Die Zeilenendeabfrage wurde so gewählt, dass sie für Unix und Windows HTML-files funktioniert:

([\S\s\r\n]*?)


Schließlich kommt der Preis, dieser Teil der Abfrage ist für alle Sorten gleich:

<span id="current-price-\d+">(\d.\d{2})</span>


Grüße
James



There are 10 kind of people. Those who understand binary and those who don't.

Gisbert

Hallo stromer-12,

braucht man dieses Atrribut zwingend, wenn man Zehntel Centbeträge anzeigen will?
attr Tankstelle_X readingOExpr $val =~ s/<[\d\D]+>//;;$val


Hallo James,

zeigt deine Variante Zehntel Centbeträge ohne das o.g. Atrribut an?

Was mich schon wieder verwirrt, ist der Umstand, dass es 2 Lösungen für ein Problem gibt. Welche Abfrage geht schneller und ist resourcenschonender?

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

stromer-12

Hallo Gisbert,
Zitat von: Gisbert am 27 April 2019, 10:14:01zeigt deine Variante Zehntel Centbeträge ohne das o.g. Atrribut an?
Mit dem Attribut lösche ich die Textpassage zwischen den Cent und ZehntelCent Betrag.

Zitat von: Gisbert am 27 April 2019, 10:14:01
Was mich schon wieder verwirrt, ist der Umstand, dass es 2 Lösungen für ein Problem gibt. Welche Abfrage geht schneller und ist resourcenschonender?
Ich hatte erstmal nach einer schnellen Lösung gesucht, ohne Optimierung.

Gruß
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

RadioJames

Hallo Gisbert,

Zitatzeigt deine Variante Zehntel Centbeträge ohne das o.g. Atrribut an?
Meine Lösung bezieht sich nicht auf die Anzeige von Zehntel-Cent Beträgen, sondern ist vielmehr ein Verbesserungsvorschlag zur generellen Lösung im Wiki nach dem die clever-tanken Seitenstruktur am 24.4.19 geändert wurden.

Die Lösung, die du suchst, hat dir stromer-12 schon geboten.
Er verfolgt prinzipiell einen ähnlichen Ansatz wie ich, nur filtert er die Zeilen zwischen Spritsorte und Preis anders
[\d\D]{700,900}
... interessant ...
und sucht zusätzlich nach den Zehntel-Cent.

Grüße
James

There are 10 kind of people. Those who understand binary and those who don't.

DefanC

Danke Dan!  :)

Ich habe die Lösung aus Antwort #3 bei mir angewendet, die "attr" Zeile:
attr HEM reading01Regex "current-price-3">(\d.\d{2})
entsprechend angepaßt. Was auf der Site:
https://www.clever-tanken.de/tankstelle_details/"Stationsnummer?"
bei den von mir abgefragten Tankstellen immer die gleiche Sortierreihenfolge ist. Also keine großen Änderungen erforderlich macht.
Funktioniert, die Readings werden wieder aktualisiert, alles gut/tut.  :)

Stege

Danke Dan!  :)

war schon unglücklich da ich die Preise auch über Telegram abfrage. Jetzt funktioniert wieder alles. :)

DeeSPe

#25
Ich habe anhand der Beitrage #17 und #19 das Wiki für die Spritpreise angepasst.
Ebenso habe ich noch eine weitere Tankstelle (Esso) dazu genommen und zu den Tankstellen die jeweiligen Spezial-Spritsorten (sowie Autogas, Erdgas und Wasserstoff).

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

heinzfo

Danke für das Update im Forum und Wiki :)

hugo.crank

DANKE! hab mich bis eben auch gewundert warum es nicht ging.

Müller

Hallo,

ich habe nun auch meine Benzinpreise aktualisiert mit

reading02Regex "price-type-name">Super E10</div>[\d\D]{700,900}"current-price-.">([0-9\.]+[^0-9]+suffix-price-.">[0-9])

reading03Regex"price-type-name">Super E5</div>[\d\D]{700,900}"current-price-.">([0-9\.]+[^0-9]+suffix-price-.">[0-9])

Nun werden die Preise wieder aktualisiert - Danke

ABER nun stehe ich vor zwei weiteren Problemen:

Das kleinere ist das "State"
unter stateformat habe ich
Super: SuperE5 € <br> E10: SuperE10 €
eingetragen. Nun wird die Schriftformatierung von Super (hochgestellte kleine 9) mit nach E10 verschleppt. Wie kann ich bei State eintragen, dass für E10 die Standardchrift benutzt wird?

Das zweite Problem. Ich bekomme die Zahlen nicht mehr im Plot angezeigt:
Die Daten werden nicht mehr im Logfile aufgezeichnet:

DEF ./log/Shell_Iggelheim_FileLog_2.log Shell_Iggelheim:SuperE5:..*..........................................*


Die Zeile habe ich ich neu aus dem Eventmap herauskopiert und ein logfile generiert, aber es wird im Logfile nicht aufgezeichnet.

Hat jemand seine Log File Definition schon entsprechend angepasst?



FHEM auf Raspberry, 433mHz & Zigbee für Rollläden, Gartenbewässerung, Beleuchtung, Fußbodenheizung

stromer-12

Hallo,

Zitat von: Müller am 19 Mai 2019, 11:14:53Das kleinere ist das "State"
unter stateformat habe ich
Super: SuperE5 € <br> E10: SuperE10 €
eingetragen. Nun wird die Schriftformatierung von Super (hochgestellte kleine 9) mit nach E10 verschleppt. Wie kann ich bei State eintragen, dass für E10 die Standardchrift benutzt wird?

hast du auch die Zeile bei dir drin:
readingOExpr $val =~ s/<[\d\D]+>//;;$val
Das löscht alle unötigen Zeichen zwsichen price-type-name und suffix-price.

Gruß
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL