FHEM Forum

FHEM - Hausautomations-Systeme => SlowRF => Thema gestartet von: stgeran am 15 April 2024, 09:47:38

Titel: Kommastellen begrenzen
Beitrag von: stgeran am 15 April 2024, 09:47:38
Wie kann ich die Kommastellen begrenzen?
Verbrauch_korrigiert
0.215000000000146
Ich habe einen neuen Gaszähler mit 0,170m³ Anzeige
mein "Gas" zeigt
AW

CNT: 105 CUM: 508 5MIN: 4 TOP: 508

2024-04-15 09:43:03
Verbrauch_korrigiert

0.235000000000582

2024-04-15 09:43:03
basis

16014818

2024-04-14 06:49:33
cum_day

CUM_DAY: 1.895 CUM: 28452.455 COST: 0.00

2024-04-15 00:01:47
cum_month

CUM_MONTH: 254.765 CUM: 28397.170 COST: 0.00

2024-04-01 00:02:58
current

0.02

2024-04-15 09:43:03
current_cnt

4

2024-04-15 09:43:03
peak

0.0295275590551181

2024-04-15 09:43:03
peak_cnt

508

2024-04-15 09:43:03
seqno

105

2024-04-15 09:43:03
state

CNT: 105 CUM: 28453.630 5MIN: 0.020 TOP: 0.030

2024-04-15 09:43:03
total

28453.63

2024-04-15 09:43:03
total_cnt

508

2024-04-15 09:43:03
tsecs

1713166982

2024-04-15 09:43:03

Der "total"Wert stammt aus dem alten Zähler.
Dann habe ich als Tip vom Forum ein userreading eingeführt
userReadings

Verbrauch_korrigiert:total:.* {ReadingsNum($name, 'total',0) - 28453.395000000000146}
Das stimmt auch so weit, aber die vielen Kommastellen hätte ich gerne weg.

Oder wie kann ich generell bei "0" anfangen? also das alte reading "total" löschen?
Titel: Aw: Kommastellen begrenzen
Beitrag von: betateilchen am 15 April 2024, 10:15:03
Zitat von: stgeran am 15 April 2024, 09:47:38userReadings

Verbrauch_korrigiert:total:.* {ReadingsNum($name, 'total',0) - 28453.395000000000146}
Das stimmt auch so weit, aber die vielen Kommastellen hätte ich gerne weg.

Dann runde den Wert doch einfach?

Verbrauch_korrigiert:total:.* {round((ReadingsNum($name, 'total',0) - 28453.395000000000146),0)}
Zitat von: stgeran am 15 April 2024, 09:47:38Oder wie kann ich generell bei "0" anfangen? also das alte reading "total" löschen?

Entweder, das reading auf 0 setzen:

setreading <deviceName> total 0
oder das reading löschen, wenn es sonst nirgends benutzt wird:

deletereading <deviceName> total
Sowohl nach dem setreading als auch nach dem deletereading solltest Du ein "save config" ausführen, damit der neue Zustand persistiert wird.
Titel: Aw: Kommastellen begrenzen
Beitrag von: stgeran am 15 April 2024, 10:55:24
Danke
Titel: Aw: Kommastellen begrenzen
Beitrag von: juemuc am 15 April 2024, 13:38:24
Du kannst aber auch einfach das Attribut "stripnumber" verwenden, um die Anzahl der Nachkommastellen zu definieren.

Viele Grüße
Jürgen
Titel: Aw: Kommastellen begrenzen
Beitrag von: zap am 15 April 2024, 18:28:37
Zitat von: juemuc am 15 April 2024, 13:38:24Du kannst aber auch einfach das Attribut "stripnumber" verwenden, um die Anzahl der Nachkommastellen zu definieren.

Viele Grüße
Jürgen

Sofern er HMCCU verwendet. Das wird aus dem ersten Beitrag nicht klar.
Titel: Aw: Kommastellen begrenzen
Beitrag von: betateilchen am 15 April 2024, 18:32:15
Mir ist überhaupt nicht klar, was die Fragestellung mit Homematic zu tun hat.

War mir aber bei meiner Antwort auch völlig egal, das Runden und das Setzen/Löschen von readings funktioniert device-type-unabhängig  8)
Titel: Aw: Kommastellen begrenzen
Beitrag von: stgeran am 15 April 2024, 20:41:06
@betateilchen: Sorry, ich hätte es unter SlowRF posten sollen. Trotzdem danke nochmal für die Antwort.
Titel: Aw: Kommastellen begrenzen
Beitrag von: betateilchen am 16 April 2024, 21:18:53
Zitat von: stgeran am 15 April 2024, 20:41:06@betateilchen: Sorry, ich hätte es unter SlowRF posten sollen.

Den Button zum Verschieben in den richtigen Bereich findest Du unten links.