FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Kusselin am 12 Mai 2020, 08:21:17

Titel: Spritpreise cleverTanken stimmen nicht
Beitrag von: Kusselin am 12 Mai 2020, 08:21:17
Hallo Zusammen,

Ich habe meine RegEx mal aktualisiert um mir die Spritpreise wieder richtig anzeigen zu lassen über CleverTanken.de - leider wird nicht korrekt aktualisiert. Habe mal ein list beigefügt. Normal müsste jetzt 1,08 angezeigt werden anstatt 1.17€.

Ev. Fällt euch da was auf?

Gruss

Internals:
   BUSY       0
   DEF        https://www.clever-tanken.de/tankstelle_details/56817 600
   FUUID      5c437804-f33f-a264-d9fb-9c5ceeb51e7f1604
   Interval   600
   LASTSEND   1589264075.38223
   MainURL    https://www.clever-tanken.de/tankstelle_details/56817
   ModuleVersion 3.5.22 - 7.2.2020
   NAME       bft_Saase
   NOTIFYDEV  global
   NR         67
   NTFY_ORDER 50-bft_Saase
   STATE      Preis: 1.17 €
   TRIGGERTIME 1589264675.38083
   TRIGGERTIME_FMT 2020-05-12 05:24:35
   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/56817
   header     
   host       www.clever-tanken.de
   httpheader HTTP/1.1 200 OK
Date: Tue, 12 May 2020 06:14:35 GMT
Server: Apache/2.4.18 (Ubuntu)
Vary: Cookie,Accept-Encoding
Content-Encoding: gzip
Content-Length: 23483
Content-Type: text/html; charset=utf-8
Set-Cookie: csrftoken=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; expires=Tue, 11-May-2021 06:14:35 GMT; Max-Age=31449600; Path=/
Connection: close
   httpversion 1.0
   hu_blocking 0
   hu_filecount 171
   hu_port    443
   hu_portSfx
   ignoreredirects 0
   loglevel   4
   path       /tankstelle_details/56817
   protocol   https
   redirects  0
   timeout    2
   url        https://www.clever-tanken.de/tankstelle_details/56817
   value      0
   CompiledRegexes:
   QUEUE:
   READINGS:
     2020-05-12 05:14:35   SuperE10        1.17
   REQUEST:
     data       
     header     
     ignoreredirects 0
     retryCount 0
     type       update
     url        https://www.clever-tanken.de/tankstelle_details/56817
     value      0
   defptr:
     readingBase:
       SuperE10   reading
     readingNum:
       SuperE10   01
     readingOutdated:
     requestReadings:
       update:
         SuperE10   reading 01
   sslargs:
Attributes:
   alias      bft_Saase
   enableControlSet 1
   group      Spritpreise
   icon       tanken
   reading01Name SuperE10
   reading01Regex <span id="current-price-2">([0-9.]+)
   stateFormat Preis: SuperE10 €
   userattr   reading01Name reading01Regex
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: Gisbert am 12 Mai 2020, 08:35:09
Hallo Kusselin,

die Anfrage war um 5:17, vielleicht war die Tankstelle zu diesem Zeitpunkt zu, und der Wert damit faktisch falsch oder irrelevant.

Was bekommst du denn auf der clever tanken Hompage für deine Tankstelle angezeigt und was wird in Fhem dargestellt?

Viele​ Grüße​ Gisbert​
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: Kusselin am 12 Mai 2020, 09:00:59
Hi Gisbert,

danke für die prompte Info. O.K. das mit der Anfrage kann sein...ich habe den Standardwert damals beim einrichten genommen...glaub das waren 600

wenn ich auf die cleverTanken app oder webseite gehe dann steht da 1.08 €

Habe auch mal "reread" gemacht...aktualisiert sich nicht..

Frage: So sieht das aber gut aus oder? auch mit dem https:// usw...?

Gruss
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: Frank_Huber am 12 Mai 2020, 09:04:56
Auf der webseite sehe ich 1,079
Kann es sein dass es hier nur die Rundung ist?
Die, 009 lassen sich auch addieren.

attr Tankstelle_BFT_Blankenloch reading01OExpr $val + 0.009

Gesendet von meinem S68Pro mit Tapatalk
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: Kusselin am 12 Mai 2020, 09:19:30
Hää...du schreibst 1.09 und bei mir wird 1.17€ ausgelesen...sorry was hat das mit Rundung zu tun??
Bitte meinen ersten Post lesen.
Gruss
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: Frank_Huber am 12 Mai 2020, 09:22:38
Vorhin geschaut, da hatte dein List 1,17
Auf der webseite waren es 1,179.

Daher.
Hab mich beim posten dann nur vertippt oder vom neuen Preis verleiten lassen.

Gesendet von meinem S68Pro mit Tapatalk

Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: Kusselin am 12 Mai 2020, 09:24:26
o.k....aber das list passt soweit bei mir...oder?
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: Frank_Huber am 12 Mai 2020, 09:36:51
Zitat von: Kusselin am 12 Mai 2020, 09:24:26
o.k....aber das list passt soweit bei mir...oder?
Ja, im List 1,17 auf der Webseite 1,179.
Das sieht korrekt aus.

Gesendet von meinem S68Pro mit Tapatalk

Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: yersinia am 12 Mai 2020, 10:07:37
Es gibt doch dazu einen Thread (https://forum.fhem.de/index.php/topic,99939.0.html), auch mit einer Lösung zu den neuen RegEx (https://forum.fhem.de/index.php/topic,99939.msg933304.html#msg933304).
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: mahowi am 12 Mai 2020, 10:12:03
Zitat von: Frank_Huber am 12 Mai 2020, 09:36:51
Ja, im List 1,17 auf der Webseite 1,179.
Das sieht korrekt aus.
Im Quelltext der Seite steht der Preis auch ohne die 0,9 Cent:
<span id="current-price-2">1.09</span>

Die werden nur an den Preis angehängt:
<sup id="suffix-price-2">9</sup>
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: Kusselin am 12 Mai 2020, 11:05:23
das Attribut habe ich doch geändert neu in:
reading01Regex <span id="current-price-2">([0-9.]+)

Das sollte doch passen so oder?

Meine Frage hier an das Board lt. meinem List:

Passt das so oder ist da ein Fehler noch drinn?
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag 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?
Zitat von: Kusselin am 15 August 2019, 22:49:22
Hi, ein List der Tanke sieht so aus:

Internals:
   BUSY       0
   DEF        https://www.clever-tanken.de/tankstelle_details/13669 600
   FUUID      5c437804-f33f-a264-2632-d66f4505987a34ea
   Interval   600
   LASTSEND   1565901825.12098
   MainURL    https://www.clever-tanken.de/tankstelle_details/13669
   ModuleVersion 3.5.9 - 13.2.2019
   NAME       ELAN_Saase
   NOTIFYDEV  global
   NR         71
   NTFY_ORDER 50-ELAN_Saase
   STATE      Preis: 1.45 €
   TRIGGERTIME 1565902425.1193
   TRIGGERTIME_FMT 2019-08-15 21:53:45
   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/13669
   header     
   host       www.clever-tanken.de
   httpheader HTTP/1.1 200 OK
Date: Thu, 15 Aug 2019 20:43:45 GMT
Server: Apache/2.4.18 (Ubuntu)
Vary: Cookie,Accept-Encoding
Content-Encoding: gzip
Content-Length: 29107
Content-Type: text/html; charset=utf-8
Set-Cookie: csrftoken=Zr910cIdva770SVOH43q90tPf6mBecuXHjbWCqRdju03MlFtaFvANrUGzxydwnXq; expires=Thu, 13-Aug-2020 20:43:45 GMT; Max-Age=31449600; Path=/
Connection: close
   httpversion 1.0
   hu_blocking 0
   hu_filecount 136
   hu_port    443
   hu_portSfx
   ignoreredirects 0
   loglevel   4
   path       /tankstelle_details/13669
   protocol   https
   redirects  0
   timeout    2
   url        https://www.clever-tanken.de/tankstelle_details/13669
   value      0
   QUEUE:
   READINGS:
     2019-04-24 08:46:04   SuperE10        1.45
     2019-08-15 21:43:45   reading02       1.34
   REQUEST:
     data       
     header     
     ignoreredirects 0
     retryCount 0
     type       update
     url        https://www.clever-tanken.de/tankstelle_details/13669
     value      0
   defptr:
     readingBase:
       reading02  reading
     readingNum:
       reading02  02
     readingOutdated:
     requestReadings:
       update:
         reading02  reading 02
   sslargs:
Attributes:
   alias      ELAN_Saase
   enableControlSet 1
   group      Spritpreise
   icon       tanken
   reading01Name SuperE10
   reading01Regex <span>Super E10</span>[^0-9]+([0-9\.]+)
   reading02Regex "current-price-2">(\d.\d{2})
   stateFormat Preis: SuperE10 €
   userattr   reading01Name reading01Regex reading02Regex


Muss ich jetzt nur hier von Seite eins in die comandozeile das hier eintragen und speichern??:

attr ELAN_Saase reading02Regex "current-price-2">(\d.\d{2})

Über ne Info vielen Dank

In dem Thread gibt es auch genug Lösungsansätze, zB die von Gisbert (https://forum.fhem.de/index.php/topic,99939.msg979341.html#msg979341).

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
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: Kusselin am 12 Mai 2020, 11:24:52
Danke,  ich komme so nicht weiter..
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: Frank_Huber am 12 Mai 2020, 11:25:54
Zitat von: Kusselin am 12 Mai 2020, 11:24:52
Danke,  ich komme so nicht weiter..
Wo drückt denn genau der Schuh?
Was geht nicht?

Gesendet von meinem S68Pro mit Tapatalk

Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: mahowi am 12 Mai 2020, 11:27:53
Zitat von: Kusselin am 12 Mai 2020, 11:05:23
das Attribut habe ich doch geändert neu in:
reading01Regex <span id="current-price-2">([0-9.]+)

Das sollte doch passen so oder?

Meine Frage hier an das Board lt. meinem List:

Passt das so oder ist da ein Fehler noch drinn?

Ja, eigentlich sollte Deine Regex passen. Evtl. liegt da ein anderes Problem vor.

Hast Du es mal mit reading02Regex "current-price-2">(\d.\d{2}) versucht?
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: Kusselin am 12 Mai 2020, 11:42:49
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
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: Frank_Huber am 12 Mai 2020, 12:13:46
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 (https://forum.fhem.de/index.php/topic,99939.msg979341.html#msg979341).

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
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: Kusselin am 12 Mai 2020, 12:29:01
Für mich muss ich dann Diesel ändern in E10 richtig?

auf welche Abrufzeit habt ihr das bei euch stehen?
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: Gisbert am 12 Mai 2020, 17:50:36
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
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: Kusselin am 12 Mai 2020, 19:52:22
Hallo Gisbert,

Wie sieht das grafisch aus? Hast du ev. tableui? Dann zeig mal bitte
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: Gisbert am 12 Mai 2020, 20:24:30
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​
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: Kusselin am 12 Mai 2020, 20:42:53
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
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: jkriegl am 12 Mai 2020, 20:56:04
Mit uiTable (DOIF) geht z.B. so etwas
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag 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


Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: jkriegl am 12 Mai 2020, 21:09:11
was verstehst Du unter grafisch? bunt?
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: Kusselin am 12 Mai 2020, 21:13:15
TabletUi zb
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: Damian am 12 Mai 2020, 21:18:04
Hier ist ein komplettes Beispiel zum Auslesen und Darstellen: https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg#Visualisierung:_aktueller_Spritpreis
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: Kusselin am 12 Mai 2020, 21:22:16
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
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: Gisbert am 12 Mai 2020, 21:48:48
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
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: Gisbert am 13 Mai 2020, 21:17:53
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
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: yersinia am 14 Mai 2020, 10:13:59
Coole Sache, Gisbert. Alternativ für stateFormat geht auch:
attr Star.Duennwald stateFormat { return "<div style=\"text-align: left;;\">Diesel: ".substr(ReadingsVal($name,'Dieselpreis',''),0,4)."<font style=\"vertical-align: super;;font-size: smaller;;\">".substr(ReadingsVal($name,'Dieselpreis',''),4,1)."</font> &euro;;/l</div>";; }
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: Kusselin am 14 Mai 2020, 10:43:58
Alles gut!!
Du bist aber ein Teufelskerl..kennst Dich ja in FHEM aus dem FF aus👍
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: Gisbert am 14 Mai 2020, 18:48:42
Zitat von: yersinia am 14 Mai 2020, 10:13:59
Coole Sache, Gisbert. Alternativ für stateFormat geht auch:
attr Star.Duennwald stateFormat { return "<div style=\"text-align: left;;\">Diesel: ".substr(ReadingsVal($name,'Dieselpreis',''),0,4)."<font style=\"vertical-align: super;;font-size: smaller;;\">".substr(ReadingsVal($name,'Dieselpreis',''),4,1)."</font> &euro;;/l</div>";; }

Hallo yersinia,

ich hab deine Definition probiert, ja sie funktioniert, nur verstehe ich von Perl zu wenig, um es nachvollziehen zu können.

Richtigerweise hast du den Preis pro Liter angegeben. Wenn wir dann auch noch SI-konform sein wollen, muss es €/L heißen, d.h. ein großes L. Milliliter wird demzufolge auch nicht mit ml sondern mit mL abgekürzt. Sieht komisch aus, ist aber richtig.

Viele​ Grüße​ Gisbert​
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: JoWiemann am 14 Mai 2020, 19:14:11
Dem möchte ich doch mal widersprechen:

Aus Wikipedia:

Grundsätzlich werden im Internationalen Einheitensystem (SI) die Einheitenzeichen kleingeschrieben, es sei denn, dass der Name der Einheit von dem Eigennamen einer Person abgeleitet wurde. In diesem Fall wird der erste Buchstabe des Zeichens großgeschrieben.[6][7] Demnach ist das Einheitenzeichen für den Liter ein kleines l, da der Einheitenname Liter nicht von einem Eigennamen abgeleitet wurde.[6][7][8]

Das große L wurde von der CGPM ausnahmsweise als alternatives Einheitenzeichen für den Liter zugelassen, um Verwechslungen des Buchstabens l mit der Ziffer 1, die bei manchen Schriftarten auftreten können, zu vermeiden,[6][7][8] und ist eher im englischen und französischen Sprachraum gebräuchlich. ISO und IEC verwenden ausschließlich das ursprüngliche Einheitenzeichen l.[7][8] IUPAC[9] und DIN 1301-1[10] lassen beide Schreibweisen zu.

Grüße Jörg


Gesendet von iPhone mit Tapatalk
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: yersinia am 15 Mai 2020, 09:33:47
Zitat von: Gisbert am 14 Mai 2020, 18:48:42ich hab deine Definition probiert, ja sie funktioniert, nur verstehe ich von Perl zu wenig, um es nachvollziehen zu können.
Der Code ist nur mMn perl- und HTML konformer: es wird ein String zurückgegeben und im HTML wird mehr mit CSS definiert. Aber viele Wege führen nach Rom - hauptsache das Ergebnis passt und funktioniert.
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: Kusselin am 15 Mai 2020, 09:53:23
Zitat von: Gisbert am 13 Mai 2020, 21:17:53
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
Hi Gisbert,

das ist ja die readingsGroup...poste mal bitte noch dein HTTMOD Code bitte
Danke
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: yersinia am 15 Mai 2020, 10:01:48
Das ist das HTTPMOD Device im RAW Format und keine ReadingsGroup.
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: Kusselin am 15 Mai 2020, 10:41:08
O.K. und anstatt "Diesel" trage ich weil ich benzin habe "E10" ein richtig?
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: yersinia am 15 Mai 2020, 11:42:28
Nicht ganz, da es Wahrscheinlich Super E10 (https://forum.fhem.de/index.php/topic,99939.msg967239.html#msg967239) sein wird - anstelle von Diesel fügst du Super.E10 ein:
attr bft_Saase reading01Regex "price-type-name">Super.E10</div>[\d\D]{700,900}"current-price-.">([0-9\.]+[^0-9]+suffix-price-.">[0-9])
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: Kusselin am 15 Mai 2020, 13:06:45
Danke Dir...jetzt hazs funktioniert mit dem httmod..

readingsgroup muss ich nochmal sacken lassen....
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: yersinia am 15 Mai 2020, 13:26:15
Bezüglich readingsGroup kannst du dich im Wiki (https://wiki.fhem.de/wiki/ReadingsGroup) oder in der commandref (https://fhem.de/commandref_DE.html#readingsGroup) belesen.
Ob dies das für dich Richtige ist, weiss ich nicht.

Wenn du die Preise von verschiedenen Tankstellen (HTTMOD Devices) anzeigen lassen willst, kannst du dies auch einfacher über das Attribut group machen - gib allen HTTMOD Tankstellen Devices die gleiche group und sie werden dann untereinander gelistet.
Zitatgroup
Gerätegruppen. FHEMWEB zeigt Geräte die in die gleiche Gruppe gehören auch in einer gemeinsamen Box an. Ein Gerät kann zu mehr als einer Gruppe gehören. In diesem Fall müssen die entsprechenden Gruppen durch Kommata getrennt eingetragen werden. Wenn dieses Attribut nicht gesetzt ist, wird der in der Gerätegruppe gesetzte Gerätetyp verwendet.
(commandref (https://fhem.de/commandref_DE.html#attributes))

Gisbert hat dies in seinem Beispiel (https://forum.fhem.de/index.php/topic,111124.msg1053795.html#msg1053795) ebenso:
attr Star.Duennwald group Dieselpreise
Titel: Antw:Spritpreise cleverTanken stimmen nicht
Beitrag von: Frank_Huber am 18 Mai 2020, 15:21:44
Hallo,

Der Code: attr Star.Duennwald reading01Regex "price-type-name">Diesel</div>[\d\D]{700,900}"current-price-.">([0-9\.]+[^0-9]+suffix-price-.">[0-9])
funktioniert perfekt zusammen mit dem reading01OExpr.

Er sieht aber im RAW def etwas eigenartig aus weil am Ende bei suffix-price ein " fehlt.

So schaut es auch in der RAW def perfekt aus und ändert nichts an der Funktion:
"price-type-name">Diesel</div>[\d\D]{700,900}"current-price-.">([0-9\.]+[^0-9]+"suffix-price-.">[0-9])