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
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
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
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
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
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
o.k....aber das list passt soweit bei mir...oder?
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
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).
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>
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?
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
Danke, ich komme so nicht weiter..
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
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?
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
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
Für mich muss ich dann Diesel ändern in E10 richtig?
auf welche Abrufzeit habt ihr das bei euch stehen?
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
Hallo Gisbert,
Wie sieht das grafisch aus? Hast du ev. tableui? Dann zeig mal bitte
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
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
Mit uiTable (DOIF) geht z.B. so etwas
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
was verstehst Du unter grafisch? bunt?
TabletUi zb
Hier ist ein komplettes Beispiel zum Auslesen und Darstellen: https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg#Visualisierung:_aktueller_Spritpreis
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
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
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
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> €;/l</div>";; }
Alles gut!!
Du bist aber ein Teufelskerl..kennst Dich ja in FHEM aus dem FF aus👍
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> €;/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
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
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.
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
Das ist das HTTPMOD Device im RAW Format und keine ReadingsGroup.
O.K. und anstatt "Diesel" trage ich weil ich benzin habe "E10" ein richtig?
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])
Danke Dir...jetzt hazs funktioniert mit dem httmod..
readingsgroup muss ich nochmal sacken lassen....
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
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])