Uhrzeit aus Readings von Spritpreis Monitor

Begonnen von B.Stromberg, 04 Januar 2023, 03:57:28

Vorheriges Thema - Nächstes Thema

B.Stromberg

Moin!
Ich mal wieder :(

Da ich ja grade meine Tablet UI etwas schicker und frauenfreundlicher gestalten möchte, bleib ich wieder hängen dabei, eine vernünftige Formatierung hinzubekommen.

Es geht einfach nur um die Uhrzeit der Preisänderung vom Super E5

Hier mal das RAW der Tankstelle:

defmod TankstelleAralHX HTTPMOD http://www.clever-tanken.de/tankstelle_details/10884 600
attr TankstelleAralHX alias AralHX
attr TankstelleAralHX enableControlSet 1
attr TankstelleAralHX event-on-change-reading .*
attr TankstelleAralHX group Benzinpreis
attr TankstelleAralHX icon gasoline
attr TankstelleAralHX reading01Name SuperE5
attr TankstelleAralHX reading01Regex "current-price-3">(\d.\d{2})
attr TankstelleAralHX reading02Name SuperPlus
attr TankstelleAralHX reading02Regex "current-price-4">(\d.\d{2})
attr TankstelleAralHX readingsName_aktZeit aktZeit
attr TankstelleAralHX readingsRegex_aktZeit Letzte Aktualisierung: ((31|30|[012]\d|\d)\.(0\d|1[012]|\d)\.(\d{1,6}) ([01]?\d|2[0-3]):([0-5]?\d))
attr TankstelleAralHX room Spritpreise
attr TankstelleAralHX stateFormat {sprintf("SuperE5: %.2f € - SuperPlus: %.2f €",ReadingsVal("TankstelleAralHX","SuperE5",0),ReadingsVal("TankstelleAralHX","SuperPlus",0))}
attr TankstelleAralHX timeout 5

setstate TankstelleAralHX SuperE5: 1.87 € - SuperPlus: 2.07 €
setstate TankstelleAralHX 2020-12-03 05:16:56 Diesel 1.189
setstate TankstelleAralHX 2020-12-03 05:16:56 SuperE10 1.339
setstate TankstelleAralHX 2023-01-04 03:43:15 SuperE5 1.87
setstate TankstelleAralHX 2023-01-04 03:43:15 SuperPlus 2.07
setstate TankstelleAralHX 2023-01-04 03:43:15 aktZeit-1 04.01.2023 03:03
setstate TankstelleAralHX 2023-01-04 03:43:15 aktZeit-2 04
setstate TankstelleAralHX 2023-01-04 03:43:15 aktZeit-3 01
setstate TankstelleAralHX 2023-01-04 03:43:15 aktZeit-4 2023
setstate TankstelleAralHX 2023-01-04 03:43:15 aktZeit-5 03
setstate TankstelleAralHX 2023-01-04 03:43:15 aktZeit-6 03
setstate TankstelleAralHX 2020-12-03 04:57:54 attrTemplateVersion 20201129
setstate TankstelleAralHX 2023-01-04 03:13:14 statSuperE5Day Min: 1.870 Avg: 1.870 Max: 1.870
setstate TankstelleAralHX 2023-01-03 23:59:55 statSuperE5DayLast Min: 1.750 Avg: 1.823 Max: 1.950
setstate TankstelleAralHX 2023-01-04 03:13:14 statSuperE5Hour Min: 1.870 Avg: 1.870 Max: 1.870
setstate TankstelleAralHX 2023-01-04 02:59:55 statSuperE5HourLast Min: 1.870 Avg: 1.870 Max: 1.870
setstate TankstelleAralHX 2023-01-04 03:13:14 statSuperE5Month Min: 1.710 Avg: 1.811 Max: 1.950
setstate TankstelleAralHX 2022-12-31 23:59:55 statSuperE5MonthLast Min: 1.630 Avg: 1.761 Max: 1.950
setstate TankstelleAralHX 2023-01-04 03:13:14 statSuperE5Year Min: 1.710 Avg: 1.811 Max: 1.950
setstate TankstelleAralHX 2022-12-31 23:59:55 statSuperE5YearLast Min: 1.610 Avg: 1.931 Max: 2.330
setstate TankstelleAralHX 2023-01-04 03:13:14 statSuperPlusDay Min: 2.07 Avg: 2.07 Max: 2.07
setstate TankstelleAralHX 2023-01-03 23:59:55 statSuperPlusDayLast Min: 1.95 Avg: 2.02 Max: 2.15
setstate TankstelleAralHX 2023-01-04 03:13:14 statSuperPlusHour Min: 2.07 Avg: 2.07 Max: 2.07
setstate TankstelleAralHX 2023-01-04 02:59:55 statSuperPlusHourLast Min: 2.07 Avg: 2.07 Max: 2.07
setstate TankstelleAralHX 2023-01-04 03:13:14 statSuperPlusMonth Min: 1.91 Avg: 2.01 Max: 2.15
setstate TankstelleAralHX 2022-12-31 23:59:55 statSuperPlusMonthLast Min: 1.83 Avg: 1.96 Max: 2.15
setstate TankstelleAralHX 2023-01-04 03:13:14 statSuperPlusYear Min: 1.91 Avg: 2.01 Max: 2.15
setstate TankstelleAralHX 2022-12-31 23:59:55 statSuperPlusYearLast Min: 1.81 Avg: 2.13 Max: 2.53


Und hier noch das List vom Device:

Internals:
   BUSY       0
   DEF        http://www.clever-tanken.de/tankstelle_details/10884 600
   FUUID      5fc86a53-f33f-4afb-82ac-a2f47aea23311be5
   Interval   600
   MainURL    http://www.clever-tanken.de/tankstelle_details/10884
   ModuleVersion 4.1.14 - 19.8.2022
   NAME       TankstelleAralHX
   NOTIFYDEV  global
   NR         163
   NTFY_ORDER 50-TankstelleAralHX
   STATE      SuperE5: 1.87 € - SuperPlus: 2.07 €
   TYPE       HTTPMOD
   eventCount 1
   value     
   CompiledRegexes:
   HTTPCookieHash:
     csrftoken;:
       Name       csrftoken
       Options    expires=Wed, 03 Jan 2024 02:53:14 GMT; Max-Age=31449600; Path=/; SameSite=Lax
       Path       
       Value      kJ3sUkggXYKq40HcQcy2mCbl9plpKTAoucpvHXez6IcCEbZCvjp8vxMwl88lQ4CF
   HttpUtils:
     NAME       
     addr       https://www.clever-tanken.de:443
     auth       0
     code       200
     compress   1
     conn       
     data       
     displayurl https://www.clever-tanken.de/tankstelle_details/10884
     header     Cookie: csrftoken=kJ3sUkggXYKq40HcQcy2mCbl9plpKTAoucpvHXez6IcCEbZCvjp8vxMwl88lQ4CF
     host       www.clever-tanken.de
     httpheader HTTP/1.1 200 OK
Date: Wed, 04 Jan 2023 02:53:14 GMT
Server: Apache/2.4.29 (Ubuntu)
Vary: Cookie,Accept-Encoding
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Set-Cookie: csrftoken=kJ3sUkggXYKq40HcQcy2mCbl9plpKTAoucpvHXez6IcCEbZCvjp8vxMwl88lQ4CF; expires=Wed, 03 Jan 2024 02:53:14 GMT; Max-Age=31449600; Path=/; SameSite=Lax
Connection: close
     httpversion 1.0
     hu_blocking 0
     hu_filecount 1
     hu_port    443
     hu_portSfx
     ignoreredirects 1
     loglevel   4
     path       /tankstelle_details/10884
     protocol   https
     redirects  0
     timeout    5
     url        https://www.clever-tanken.de/tankstelle_details/10884
     sslargs:
   QUEUE:
   READINGS:
     2020-12-03 05:16:56   Diesel          1.189
     2020-12-03 05:16:56   SuperE10        1.339
     2023-01-04 03:53:15   SuperE5         1.87
     2023-01-04 03:53:15   SuperPlus       2.07
     2023-01-04 03:53:15   aktZeit-1       04.01.2023 03:03
     2023-01-04 03:53:15   aktZeit-2       04
     2023-01-04 03:53:15   aktZeit-3       01
     2023-01-04 03:53:15   aktZeit-4       2023
     2023-01-04 03:53:15   aktZeit-5       03
     2023-01-04 03:53:15   aktZeit-6       03
     2020-12-03 04:57:54   attrTemplateVersion 20201129
     2023-01-04 03:13:14   statSuperE5Day  Min: 1.870 Avg: 1.870 Max: 1.870
     2023-01-03 23:59:55   statSuperE5DayLast Min: 1.750 Avg: 1.823 Max: 1.950
     2023-01-04 03:13:14   statSuperE5Hour Min: 1.870 Avg: 1.870 Max: 1.870
     2023-01-04 02:59:55   statSuperE5HourLast Min: 1.870 Avg: 1.870 Max: 1.870
     2023-01-04 03:13:14   statSuperE5Month Min: 1.710 Avg: 1.811 Max: 1.950
     2022-12-31 23:59:55   statSuperE5MonthLast Min: 1.630 Avg: 1.761 Max: 1.950
     2023-01-04 03:13:14   statSuperE5Year Min: 1.710 Avg: 1.811 Max: 1.950
     2022-12-31 23:59:55   statSuperE5YearLast Min: 1.610 Avg: 1.931 Max: 2.330
     2023-01-04 03:13:14   statSuperPlusDay Min: 2.07 Avg: 2.07 Max: 2.07
     2023-01-03 23:59:55   statSuperPlusDayLast Min: 1.95 Avg: 2.02 Max: 2.15
     2023-01-04 03:13:14   statSuperPlusHour Min: 2.07 Avg: 2.07 Max: 2.07
     2023-01-04 02:59:55   statSuperPlusHourLast Min: 2.07 Avg: 2.07 Max: 2.07
     2023-01-04 03:13:14   statSuperPlusMonth Min: 1.91 Avg: 2.01 Max: 2.15
     2022-12-31 23:59:55   statSuperPlusMonthLast Min: 1.83 Avg: 1.96 Max: 2.15
     2023-01-04 03:13:14   statSuperPlusYear Min: 1.91 Avg: 2.01 Max: 2.15
     2022-12-31 23:59:55   statSuperPlusYearLast Min: 1.81 Avg: 2.13 Max: 2.53
   REQUEST:
     context    reading
     data       
     header     
     ignoreredirects 0
     num        unknown
     priority   1
     retryCount 0
     type       update
     url        https://www.clever-tanken.de/tankstelle_details/10884
   defptr:
     readingBase:
       SuperE5    reading
       SuperPlus  reading
       aktZeit-1  reading
       aktZeit-2  reading
       aktZeit-3  reading
       aktZeit-4  reading
       aktZeit-5  reading
       aktZeit-6  reading
     readingNum:
       SuperE5    01
       SuperPlus  02
       aktZeit-1  _aktZeit
       aktZeit-2  _aktZeit
       aktZeit-3  _aktZeit
       aktZeit-4  _aktZeit
       aktZeit-5  _aktZeit
       aktZeit-6  _aktZeit
     readingOutdated:
     readingSubNum:
       aktZeit-1  -1
       aktZeit-2  -2
       aktZeit-3  -3
       aktZeit-4  -4
       aktZeit-5  -5
       aktZeit-6  -6
     requestReadings:
       update:
         SuperE5    reading 01
         SuperPlus  reading 02
         aktZeit-1  reading _aktZeit-1
         aktZeit-2  reading _aktZeit-2
         aktZeit-3  reading _aktZeit-3
         aktZeit-4  reading _aktZeit-4
         aktZeit-5  reading _aktZeit-5
         aktZeit-6  reading _aktZeit-6
   helper:
     _98_statistics SpritpreiseStatistik
Attributes:
   alias      AralHX
   enableControlSet 1
   event-on-change-reading .*
   group      Benzinpreis
   icon       gasoline
   reading01Name SuperE5
   reading01Regex "current-price-3">(\d.\d{2})
   reading02Name SuperPlus
   reading02Regex "current-price-4">(\d.\d{2})
   readingsName_aktZeit aktZeit
   readingsRegex_aktZeit Letzte Aktualisierung: ((31|30|[012]\d|\d)\.(0\d|1[012]|\d)\.(\d{1,6}) ([01]?\d|2[0-3]):([0-5]?\d))
   room       Spritpreise
   stateFormat {sprintf("SuperE5: %.2f € - SuperPlus: %.2f €",ReadingsVal("TankstelleAralHX","SuperE5",0),ReadingsVal("TankstelleAralHX","SuperPlus",0))}
   timeout    5


So, ich möchte jetzt einfach nur die Uhrzeit in einer Reihe haben.
Leider wird das Datum samt Zeit komplett angezeigt (Reading aktZeit-1).

Nun breche ich mir einen dabei ab, mit einem simplen Userreading (reicht vollkommen) das aktZeit-1 Reading auf die reine Uhrzeit zu kürzen....

Könnte mir dabei bitte wieder jemand helfen?
Danke!



Nobbynews

Zitat von: B.Stromberg am 04 Januar 2023, 03:57:28
Internals:
   NAME       TankstelleAralHX
     2023-01-04 03:53:15   aktZeit-1       04.01.2023 03:03


So, ich möchte jetzt einfach nur die Uhrzeit in einer Reihe haben.
Vielleicht mal als Anregung in der Richtung:
my $reading = ReadingsVal("TankstelleAralHX,"aktZeit-1","01.01.0001 00:00")
my $uhrzeit = substr ($reading,11,5)

bzw. vom Ende des Strings her betrachtet:
my $reading = ReadingsVal("TankstelleAralHX,"aktZeit-1","01.01.0001 00:00")
my $uhrzeit = substr ($reading,-5)

Oder über split am Leerzeichen in zwei Teile ausfteilen.

OdfFhem

Zitat von: B.Stromberg am 04 Januar 2023, 03:57:28
So, ich möchte jetzt einfach nur die Uhrzeit in einer Reihe haben.

Ich vermute mal, dass es ausschließlich um die Anzeige in FTUI geht, oder ?

Wenn ja, bräuchtest Du eigentlich kein userReading ...
Hilfreich wäre, wenn Du noch den passenden HTML-Block zeigen würdest ...

betateilchen

Kann man das nicht einfach in HTTPMOD mit readingxxOExpr lösen?
Das ist doch genau dafür gedacht, die ermittelten Ergebnisse zu modifizieren.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

OdfFhem

Zitat von: betateilchen am 04 Januar 2023, 09:33:00
Kann man das nicht einfach in HTTPMOD mit readingxxOExpr lösen?
Das ist doch genau dafür gedacht, die ermittelten Ergebnisse zu modifizieren.

Wenn einem das Datum grundsätzlich egal wäre, könnte man auch das angesprochene Attribut nutzen oder legt unter mehrmaligen Einsatz des Attributes direkt Reading aktDatum-X (nur Datum) bzw. AktZeit-X (nur Zeit) an.

Wenn es nur in FTUI egal wäre, dann gäbe es dort das notwendige Attribut zum "Ausschneiden".

B.Stromberg

Moin Jungs!
Danke für die Antworten schon mal:

Ja, es geht eigentlich "nur" um die FTUI.

Code für eine Tankstelle sieht dann so aus:

<tr>
      <td><div data-type="label" data-device="TankstelleQ1Polle" data-get="SuperE5" data-pre-text="Q1 Polle (" data-post-text=" €)" class="big inline left"></div></td>
      <td><div data-type="label" data-device="TankstelleQ1Polle" data-get="Uhrzeit" data-unit=" Uhr" class="big inline right"></div></td>
</tr>


Denke aber, es geht auch mit dem RegEx in der fhem.cfg? Steige da nur nicht durch.


attr TankstelleQ1Polle readingsName_aktZeit aktZeit
attr TankstelleQ1Polle readingsRegex_aktZeit Letzte Aktualisierung: ((31|30|[012]\d|\d)\.(0\d|1[012]|\d)\.(\d{1,6}) ([01]?\d|2[0-3]):([0-5]?\d))


Die RegEx holt ja von der Clever Tanken Seite die Daten:

define TankstelleQ1Polle HTTPMOD http://www.clever-tanken.de/tankstelle_details/24806 600

Es gab auch mal eine Seite, wo man das testen konnte, finde die aber nicht mehr.
Komme mir langsam auch etwas "blöd" vor, schon wegen so etwas wahrscheinlich einfachem hier zu fragen...

Naja, sind ja im Anfänger Forum :)

Sany

Hi,

Zitatattr TankstelleAralHX readingsRegex_aktZeit Letzte Aktualisierung: ((31|30|[012]\d|\d)\.(0\d|1[012]|\d)\.(\d{1,6}) ([01]?\d|2[0-3]):([0-5]?\d))
liefert doch
Zitat2023-01-04 03:53:15   aktZeit-1       04.01.2023 03:03
     2023-01-04 03:53:15   aktZeit-2       04
     2023-01-04 03:53:15   aktZeit-3       01
     2023-01-04 03:53:15   aktZeit-4       2023
     2023-01-04 03:53:15   aktZeit-5       03
     2023-01-04 03:53:15   aktZeit-6       03
(der Smily  :( kommt vom Doppelpunkt....)

Bin zwar nicht so tief in httpmod drin, denke aber durch ändern der Klammern bekommst Du Dein Ergebnis:
aktZeit-1 scheint die Klammer () um alles zu sein, dann folgen innerhalb die aktZeit-2 für Tag, aktZeit-3 für Monat etc.

Probier doch mal das hier:
Zitatattr TankstelleAralHX readingsRegex_aktZeit Letzte Aktualisierung: ((31|30|[012]\d|\d)\.(0\d|1[012]|\d)\.(\d{1,6}) ([01]?\d|2[0-3]:[0-5]?\d))
Da sind einfach die Klammern um die komplette Uhrzeit statt um Stunde und Minute einzeln.

Vermutlich geht auch das:
Zitatattr TankstelleAralHX readingsRegex_aktZeit Letzte Aktualisierung: 31|30|[012]\d|\d\.0\d|1[012]|\d\.\d{1,6} ([01]?\d|2[0-3]:[0-5]?\d)
dann sollte nur noch die Uhrzeit in vermutlich aktZeit-1 stehen.
Nicht verwirren lassen: evtl werden Readings nicht mehr neu geschrieben, die bleiben dann aber im Device stehen. Du kannst die ja vorher alle löschen und dann eine Abfrage machen, dann stehen nur die neuen da:
Zitatdeletereading TankstelleAralHX aktZeit.*


Versuch mach kluch ;)


Gruß


Sany
fhem als LXC auf Proxmox auf einem minix Z100 , weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....

B.Stromberg

Zitat von: Sany am 04 Januar 2023, 13:16:25

Versuch mach kluch ;)


Beide Versuche bringen bei mir das Gleiche Ergebnis in den Readings:

https://ibb.co/PMcsVK9

Hatte mit der Klammerei da auch schon rumgespielt, mit wenig Erfolg...
Mist, es gab mal eine Seite, wo man genau das anhand einer URL testen konnte, dann müsste ich euch hier nicht auf den Geist gehen.

Zitat von: OdfFhem am 04 Januar 2023, 09:47:28
Wenn einem das Datum grundsätzlich egal wäre, könnte man auch das angesprochene Attribut nutzen oder legt unter mehrmaligen Einsatz des Attributes direkt Reading aktDatum-X (nur Datum) bzw. AktZeit-X (nur Zeit) an.

Wenn es nur in FTUI egal wäre, dann gäbe es dort das notwendige Attribut zum "Ausschneiden".

Darf ich dir vielleicht damit auch noch Mal auf die Socken gehen? *liebguck.
"Einfach" kürzen wäre schön wenn ich wüsste wie....

OdfFhem

Einige Beispiele für Zugriff auf Teile des Readings "aktZeit-1" in FTUI:

*** Variante #1 mit data-part und Nummer der "Spalte":
       data-get="aktZeit-1" data-part="2"
*** Variante #2 mit data-part und regulärem Ausdruck:
      data-get="aktZeit-1" data-part=".*\s(.*)"
*** Variante #3 mit data-substitution und regulärem Ausdruck:
       data-get="aktZeit-1" data-substitution="s/^(.*\s)//g"

Sany

#9
Hi,

versuch mal
((31|30|[012]\d|\d)\.(0\d|1[012]|\d)\.(\d{1,6}) (([01]?\d|2[0-3]):([0-5]?\d)))

Das gibt die Zeit zwar auch einzeln, aber eben auch zusammen.

Warum die erste Version am Doppelpunkt abschneidet kann ich nicht sagen, ich hätte vermutet dass das so klappt.

Die Seite die Du suchst könnte diese sein:
https://regex101.com/


und damit rumgespielt:

(?:(?:31|30|[012]\d|\d)\.(?:0\d|1[012]|\d)\.(?:\d{1,6}) ((?:[01]?\d|2[0-3]):(?:[0-5]?\d)))
bringt dann nur noch die Zeit.
ein ?: am Anfang einer Capture-group bedeutet, dass diese nichts ausgibt (aber wohl zum gelingen der Regex beiträgt.)

Gruß


Sany


die Smilies sind wieder vom Doppelpunkt gefolgt von "Klammer zu". Geht wohl nicht beim zitieren. In Code-Tags gehts, nur nicht farbig....
fhem als LXC auf Proxmox auf einem minix Z100 , weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....

OdfFhem

Zwei Beispiele für den (Nur-)Zugriff auf die Uhrzeit der letzten Aktualisierung:

  attr TankstelleAralHX readingsName_aktZeit aktZeit
  attr TankstelleAralHX readingsRegex_aktZeit Letzte Aktualisierung: \d\d\.\d\d\.\d\d\d\d (\d\d:\d\d)

  attr TankstelleAralHX readingsName_aktZeit2 aktZeit2
  attr TankstelleAralHX readingsRegex_aktZeit2 Letzte Aktualisierung: \d{2}\.\d{2}\.\d{4} (\d{2}:\d{2})


setstate TankstelleAralHX 2023-01-04 17:23:28 aktZeit 17:22
setstate TankstelleAralHX 2023-01-04 17:23:28 aktZeit2 17:22

B.Stromberg

Zitat von: OdfFhem am 04 Januar 2023, 16:43:57
Einige Beispiele für Zugriff auf Teile des Readings "aktZeit-1" in FTUI:

*** Variante #1 mit data-part und Nummer der "Spalte":
       data-get="aktZeit-1" data-part="2"
*** Variante #2 mit data-part und regulärem Ausdruck:
      data-get="aktZeit-1" data-part=".*\s(.*)"
*** Variante #3 mit data-substitution und regulärem Ausdruck:
       data-get="aktZeit-1" data-substitution="s/^(.*\s)//g"


Vielen, vielen Dank erneut!

Variante 1 hat schon vollkommen gereicht. Wenn man es sieht, sieht es so simpel aus. Nur wenn man nicht weiß wo, wie und vor allem nach was man suchen muss...

Eine Frage noch ;)

Wie kann man die Größe von data-post-text ändern?

Als Beispiel mal dieses aus der FTUI:

<tr>
      <td><div data-type="label" data-device="Tripower10" data-get="Tagesertrag" data-pre-text="PV (" data-post-text=" kW/h)" class="big inline left"></div></td>
      <td><div data-type="label" data-device="Tripower10" data-get="state" data-unit=" w" class="big inline right"></div></td>
</tr>


Hätte nun gern kW/h sowie W in klein, also exakt so wie es data-unit="xyz" anzeigen würde.
Beim 2. Teil funktioniert das mit data-unit="w".
Nur im ersten Teil bei (" data-post-text=" kW/h)" bekomme ich kW/h nicht klein.

data-post-text-small wäre nun auch wieder zu einfach, oder? ;)


OdfFhem

In einem label-Widget geht es nicht, da pre und post mit dem eigentlichen Text verschmolzen werden. Aber ...

  <div data-type="label" class="big inline">PV (</div>
  <div data-type="label" data-device="ftuitest" data-get="irgendeinReading" data-unit=" kW/h" class="big inline"></div>
  <div data-type="label" class="big inline">)</div>

  <div data-type="label" data-device="ftuitest" data-get="irgendeinReading" data-unit=" w" class="big"></div>

... s. Screenshot

B.Stromberg

Zitat von: OdfFhem am 04 Januar 2023, 18:51:18
In einem label-Widget geht es nicht, da pre und post mit dem eigentlichen Text verschmolzen werden. Aber ...

Soweit nicht schlecht!

Jetzt müsste nur noch die 0w bei PV in der rechten Ecke stehen. class inline right hilft da leider nicht....

<tr>
<td><div data-type="label" class="big inline left">PV (</div><div data-type="label" data-device="Tripower10" data-get="Tagesertrag" data-unit=" kW/h" class="big inline left"></div><div data-type="label" class="big inline left">)</div><div data-type="label" data-device="Tripower10" data-get="state" data-unit=" w" class="big inline right"></div>
</tr>



OdfFhem

0w steht schon in der rechten Ecke, aber von Spalte #1.
Verlagert man es in die 2.Spalte, steht es ganz rechts.

<tr>
<td><div data-type="label" class="big inline left">PV (</div><div data-type="label" data-device="Tripower10" data-get="Tagesertrag" data-unit=" kW/h" class="big inline left"></div><div data-type="label" class="big inline left">)</div></td>
<td><div data-type="label" data-device="Tripower10" data-get="state" data-unit=" w" class="big inline right"></div></td>
</tr>