Spritpreise cleverTanken stimmen nicht

Begonnen von Kusselin, 12 Mai 2020, 08:21:17

Vorheriges Thema - Nächstes Thema

Kusselin

Shiiiii.........Jungs......man sollte halt schon auf der CleverTanken Seite von Diesel auf E10 umstellen (augenroll)

dann passt es wieder...

Mensch....Danke euch aber!!

Ne Frage noch....welchen Code muss ich setzen umd das es mir auch die Hochzahl anzeigt?? Also sieht es dann auch in der ReadingsGroup so aus das die Zahl am Schluss hochgestellt ist, wenn ich den Code dann so eingebe?

Gruss

Frank_Huber

Zitat von: yersinia am 12 Mai 2020, 11:19:21
Bekommst du damit Werte? wenn ja, passt es. Aber warum stellst du die Frage nicht in dem anderen Thread wo du schon mal gepostet hattest?
In dem Thread gibt es auch genug Lösungsansätze, zB die von Gisbert.

Ich nutze zB folgendes RegEx für Diesel:
attr Tanke reading01Name Dieselpreis
attr Tanke reading01OExpr $val =~ s/<[\d\D]+>//;;;;$val
attr Tanke reading01Regex "price-type-name">Diesel</div>[\d\D]{700,900}"current-price-.">([0-9\.]+[^0-9]+suffix-price-.">[0-9])

ergibt folgendes Reading:
2020-05-12 11:12:01   Dieselpreis     0.979
[emoji1787][emoji23][emoji1787][emoji23] Ja, sowas passiert.


Den Code von hier. Hat Yersinia vorhin gepostet

Gesendet von meinem S68Pro mit Tapatalk

Kusselin

Für mich muss ich dann Diesel ändern in E10 richtig?

auf welche Abrufzeit habt ihr das bei euch stehen?

Gisbert

Hallo Kusselin,

um noch etwas Verwirrung zu stiften, hefte ich meine funktionierende Definition an.
Man bemerke "current-price-." - dies hat zur Konsequenz, dass es egal ist, ob der Diesel an 1., 2. oder sonstiger Stelle steht, es wird der Wert des Diesels ausgelesen.
Meine Definition entält auch die 0.9 Cent, die nicht dazu gemoggelt werden, sondern von der Seite gelesen werden.

defmod Star.Duennwald HTTPMOD https://www.clever-tanken.de/tankstelle_details/15539 600
attr Star.Duennwald userattr reading01Name reading01OExpr reading01Regex stateFormat timeout
attr Star.Duennwald enableControlSet 1
attr Star.Duennwald reading01Name Dieselpreis
attr Star.Duennwald reading01OExpr $val =~ s/<[\d\D]+>//;;;;$val
attr Star.Duennwald reading01Regex "price-type-name">Diesel</div>[\d\D]{700,900}"current-price-.">([0-9\.]+[^0-9]+suffix-price-.">[0-9])
attr Star.Duennwald timeout 5


Ich lese alle 10 Minuten aus, aber nur, wenn ich nicht zuhause bin. Wenn ich zuhause bin, habe ich eher weniger Bedürfnis nach Diesel, mein Auto auch nicht.

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

Kusselin

#19
Hallo Gisbert,

Wie sieht das grafisch aus? Hast du ev. tableui? Dann zeig mal bitte

Gisbert

Hallo Kusselin,

ich hab kein Tablet UI, sondern nur Fhemweb, da gibt es ausser stateFormat nicht viel zu zeigen.

Hier ist gesamte Definition, in der Hoffnung, dass du damit etwas anstellen kannst.
defmod Star.Duennwald HTTPMOD https://www.clever-tanken.de/tankstelle_details/15539 600
attr Star.Duennwald userattr reading01Name reading01OExpr reading01Regex stateFormat timeout
attr Star.Duennwald alignTime 00:05:50
attr Star.Duennwald enableControlSet 1
attr Star.Duennwald group Dieselpreise
attr Star.Duennwald icon car
attr Star.Duennwald reading01Name Dieselpreis
attr Star.Duennwald reading01OExpr $val =~ s/<[\d\D]+>//;;;;$val
attr Star.Duennwald reading01Regex "price-type-name">Diesel</div>[\d\D]{700,900}"current-price-.">([0-9\.]+[^0-9]+suffix-price-.">[0-9])
attr Star.Duennwald room Traffic
attr Star.Duennwald stateFormat Diesel: Dieselpreis €
attr Star.Duennwald timeout 5
attr Star.Duennwald userReadings Zeitstempel {substr(ReadingsTimestamp($name,'STATE',''),0,16)}


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

Kusselin

#21
ich habe das mal jetzt von Dir kopiert und angefügt bei mir...nach reread sieht es so aus... lt. Homepage von CT müsste es aber 1.099 sein anstatt 1.089

Gruss
nternals:
   BUSY       0
   DEF        https://www.clever-tanken.de/tankstelle_details/6170 600
   FUUID      5c437804-f33f-a264-8f72-c20adc2c5e706f3d
   Interval   600
   LASTSEND   1589308782.45307
   MainURL    https://www.clever-tanken.de/tankstelle_details/6170
   ModuleVersion 3.5.22 - 7.2.2020
   NAME       ARAL_Schriese
   NOTIFYDEV  global
   NR         70
   NTFY_ORDER 50-ARAL_Schriese
   STATE      Preis: 1.08</span>
                                            <sup id="suffix-price-2">9 €
   TRIGGERTIME 1589309168.73299
   TRIGGERTIME_FMT 2020-05-12 17:46:08
   TYPE       HTTPMOD
   addr       https://www.clever-tanken.de:443
   auth       0
   buf       
   code       200
   compress   1
   conn       
   data       
   displayurl https://www.clever-tanken.de/tankstelle_details/6170
   header     
   host       www.clever-tanken.de
   httpheader HTTP/1.1 200 OK
Date: Tue, 12 May 2020 18:39:42 GMT
Server: Apache/2.4.18 (Ubuntu)
Vary: Cookie,Accept-Encoding
Content-Encoding: gzip
Content-Length: 24399
Content-Type: text/html; charset=utf-8
Set-Cookie: csrftoken=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; expires=Tue, 11-May-2021 18:39:42 GMT; Max-Age=31449600; Path=/
Connection: close
   httpversion 1.0
   hu_blocking 0
   hu_filecount 24
   hu_port    443
   hu_portSfx
   ignoreredirects 0
   loglevel   4
   path       /tankstelle_details/6170
   protocol   https
   redirects  0
   timeout    2
   url        https://www.clever-tanken.de/tankstelle_details/6170
   value      0
   CompiledRegexes:
   QUEUE:
   READINGS:
     2020-05-12 17:39:42   SuperE10        1.08</span>
                                            <sup id="suffix-price-2">9
   REQUEST:
     data       
     header     
     ignoreredirects 0
     retryCount 0
     type       update
     url        https://www.clever-tanken.de/tankstelle_details/6170
     value      0
   defptr:
     readingBase:
       SuperE10   reading
     readingNum:
       SuperE10   01
     readingOutdated:
     requestReadings:
       update:
         SuperE10   reading 01
   sslargs:
Attributes:
   alias      ARAL_Schriese
   enableControlSet 1
   group      Spritpreise
   icon       tanken
   reading01Name SuperE10
   reading01Regex <span id="current-price-2">([([0-9\.]+[^0-9]+suffix-price-.">[0-9])
   stateFormat Preis: SuperE10 €
   userattr   reading01Name reading01Regex readingsExpr_SuperE10

jkriegl

Mit uiTable (DOIF) geht z.B. so etwas
Rpi 3/4, buster, Fhem, Cul 868, HM-CC-RT-DN, HM-Sec-Sco, HM-ES-PMSw1-Pl, ebus (Vaillant), ECMD, Telegram, HTTPMOD, Xiaomi, Shelly

Kusselin

#23
nee, ich will die 9 hochgestellt wie in natura!!

irgendwas stimmt noch nicht ganz...Gisbert....gebe ich hier rot Diesel markiert E10 ein????

"price-type-name">[color=red][b]Diesel[/b][/color]</div>[\d\D]{700,900}"current-price-.">([0-9\.]+[^0-9]+suffix-price-.">[0-9])

nur die Frage bitte beantworten.....

passt ja schon soweit

Attributes:
   alias      ARAL_Schriese
   enableControlSet 1
   group      Spritpreise
   icon       tanken
   reading01Name SuperE10
   reading01Regex <span id="current-price-2">([([0-9\.]+[^0-9]+suffix-price-.">[0-9])
   readingsExpr.* $val =~ s/<[\d\D]+>//;;;;$val
   stateFormat Preis: SuperE10 €
   userattr   reading01Name reading01Regex readingsExpr_SuperE10



jkriegl

was verstehst Du unter grafisch? bunt?
Rpi 3/4, buster, Fhem, Cul 868, HM-CC-RT-DN, HM-Sec-Sco, HM-ES-PMSw1-Pl, ebus (Vaillant), ECMD, Telegram, HTTPMOD, Xiaomi, Shelly

Kusselin


Damian

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Kusselin

Zitat von: Kusselin am 12 Mai 2020, 21:01:59
nee, ich will die 9 hochgestellt wie in natura!!

irgendwas stimmt noch nicht ganz...Gisbert....gebe ich hier rot Diesel markiert E10 ein????

"price-type-name">[color=red][b]Diesel[/b][/color]</div>[\d\D]{700,900}"current-price-.">([0-9\.]+[^0-9]+suffix-price-.">[0-9])

nur die Frage bitte beantworten.....

passt ja schon soweit

Attributes:
   alias      ARAL_Schriese
   enableControlSet 1
   group      Spritpreise
   icon       tanken
   reading01Name SuperE10
   reading01Regex <span id="current-price-2">([([0-9\.]+[^0-9]+suffix-price-.">[0-9])
   readingsExpr.* $val =~ s/<[\d\D]+>//;;;;$val
   stateFormat Preis: SuperE10 €
   userattr   reading01Name reading01Regex readingsExpr_SuperE10




könnt ihr mir bitte nur bitte nur meine Frage von hier beantworten.....stimmen die attribute...mehr will ich gar nicht wissen!! danke

Gisbert

Zitatnee, ich will die 9 hochgestellt wie in natura!!
irgendwas stimmt noch nicht ganz...Gisbert....gebe ich hier rot Diesel markiert E10 ein????
könnt ihr mir bitte nur bitte nur meine Frage von hier beantworten.....stimmen die attribute...mehr will ich gar nicht wissen!! danke
Ruhig Brauner Kusselin,
das kriegen wir schon hin!
a) E10 statt Diesel - das ist der Suchbegriff
b) die hochgestellte 9 ist möglich, ich hab die für meinen Gaszähler realisiert, sieht echt gut aus - ist aber ein echtes Geknödel an Formatierungen. Vorausgesetzt du hast noch ein bißchen Geduld liefere ich dir das für den Spritpreis. Falls du in der Zwischenzeit selbst aktiv werden willst, ist hier die entsprechende Definition des stateFormat(s) bei meinem Gaszähler, die zum angehängten Bild führt.
{'today: '.round(ReadingsVal($name,'Temp.EG_Total_monotonic_EnergyDay',''),1).' kWh<br>
current power: '.round(ReadingsVal($name,'Temp.EG_Total_monotonic_PowerCurrent',''),1).' kW<br>
meter reading: '.int(ReadingsVal($name,'Temp.EG_Total_monotonic_Meter','')).'<span style="vertical-align: +6px; font-size: 75%;">'.substr(round(ReadingsVal($name,'Temp.EG_Total_monotonic_Meter','')-int(ReadingsVal($name,'Temp.EG_Total_monotonic_Meter','')),1),2,1).'</span> m³'}


Viele Grüße und wir schaffen das
Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

Gisbert

Hallo Kusselin,

hoffentlich bist du noch guter Dinge und kannst die gewünschte Änderung der hochgestellten 9 noch gebrauchen. Ich hänge die raw-Definition meines Device komplett an, damit nicht evtl. Infos verloren gehen. Im Attribut stateFormat wird die Formatierung vorgenommen. Wenn du noch Änderungen vornehmen möchtest, kann du es erst selbst mal versuchen, ansonsten melde dich, dann helfe ich gerne weiter.
In der ersten Hälfte des stateFormat werden mit substr() die ersten 4 Stellen beginnend bei der 1. Stelle, die Linux-typisch natürlich die nullte Stelle (oder Null) ist (Wer hat sich so was ausgedacht? Entweder zu viel oder schlechtes Kraut geraucht, oh Mann), und in der 2. Hälfte wird ab der 5. Stelle (also 4) eine Stelle extrahiert, also ...,4,1... Damit hat man die 9, die nun um +6px nach oben verschoben und in ihrer Größe auf 85% der anderen Zeichen formatiert wird.
Das Ganze ist Perlcode im stateFormat und vielleicht kannst du ja eine gewisse Systematik bei den Punkten <.> und den einfachen Anführungsstrichen <'> erkennen.

defmod Star.Duennwald HTTPMOD https://www.clever-tanken.de/tankstelle_details/15539 600
attr Star.Duennwald userattr reading01Name reading01OExpr reading01Regex stateFormat timeout
attr Star.Duennwald alignTime 00:05:50
attr Star.Duennwald enableControlSet 1
attr Star.Duennwald group Dieselpreise
attr Star.Duennwald icon car
attr Star.Duennwald reading01Name Dieselpreis
attr Star.Duennwald reading01OExpr $val =~ s/<[\d\D]+>//;;;;$val
attr Star.Duennwald reading01Regex "price-type-name">Diesel</div>[\d\D]{700,900}"current-price-.">([0-9\.]+[^0-9]+suffix-price-.">[0-9])
attr Star.Duennwald room Traffic
attr Star.Duennwald stateFormat {'Diesel: '.substr(ReadingsVal($name,'Dieselpreis',''),0,4).'<span style="vertical-align: +6px;; font-size: 85%;;">'.' '.substr(ReadingsVal($name,'Dieselpreis',''),4,1).'</span> €'}
attr Star.Duennwald timeout 5
attr Star.Duennwald userReadings Zeitstempel {substr(ReadingsTimestamp($name,'STATE',''),0,16)}


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