[gelösst] Nachkommastellen im userReadings beschränken

Begonnen von Larusso, 09 Juli 2019, 12:36:17

Vorheriges Thema - Nächstes Thema

Larusso

Hallo zusammen,

ich habe mir aus dem Netz ein Schnippsel zusammengestellt was mir meinen Stromverbrauch als reading anzeigt, das funktioniert auch alles super. Ich bekomme es aber einfach von der syntax nicht hin meine Readings mit nur zwei Nachkommastellen anzeigen zu lassen. Könnte mir hier jemand unter die Arme greifen, danke.

hier das userReadings:
PulsZeit:Time.* {ReadingsVal("$name", "Time", 0)/1000 },StromverbauchAktuell:Time.* { my $zeit = ReadingsVal("$name", "Time", 0); if($zeit > 0){sprintf("%.2f",3600/ReadingsVal("$name", "PulsZeit", 0));} else {sprintf("0");}},TagesVerbrauch:Time.* { ReadingsVal("$name", "Total", 0)/150 },ZaehlerStand:Time.* monotonic { ReadingsVal("$name", "Total", 0)/150}



und mein device:
Internals:
   .AttrList  IODev Interval adjustValue colorpicker:RGB,HSV,HSVp deepsleep:0,1 disable:1,0 disableRiskyCmds disabledForIntervals displayTextEncode:1,0 displayTextWidth do_not_notify:0,1 event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading mapLightCmds:lights,nfx maxCmdDuration:slider,0,0.25,15,1 parseCmdResponse pollGPIOs presenceCheck:1,0 readingPrefixGPIO readingSuffixGPIOState readingSwitchText:1,0,2 rgbGPIOs setState:0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,25,50,100 useSetExtensions:0,1 userSetCmds:textField-long wwcwGPIOs
   CFGFN     
   DEF        192.168.178.157 80 espBridge Stromzaehler_Impulsgeber
   ESP_BUILD  20103
   ESP_BUILD_GIT mega-20190607
   ESP_BUILD_NOTES  - Mega
   ESP_NODE_TYPE_ID ESP Easy Mega
   ESP_SLEEP  0
   ESP_UNIT   0
   ESP_VERSION 2
   FUUID      5d233e32-f33f-7f1e-a839-0e6336f38e8f1669
   HOST       192.168.178.157
   IDENT      Stromzaehler_Impulsgeber
   INTERVAL   300
   IODev      espBridge
   LASTInputDev espBridge
   MAX_CMD_DURATION 1
   MSGCNT     1292
   NAME       ESPEasy_Stromzaehler_Impulsgeber
   NOTIFYDEV  global
   NR         3194
   NTFY_ORDER 50-ESPEasy_Stromzaehler_Impulsgeber
   PORT       80
   STATE      Count: 2 Time: 3819 Total: 2298
   SUBTYPE    device
   TYPE       ESPEasy
   VERSION    2.18
   espBridge_MSGCNT 1292
   espBridge_TIME 2019-07-09 12:34:53
   .attraggr:
   .attrminint:
   .userReadings:
     HASH(0x5b23338)
     HASH(0x5b3a130)
     HASH(0x62ef7c0)
     HASH(0x62bb840)
   OLDREADINGS:
   READINGS:
     2019-07-09 12:34:53   Count           2
     2019-07-09 12:34:53   PulsZeit        3.819
     2019-07-09 12:34:53   StromverbauchAktuell 942.66
     2019-07-09 12:34:53   TagesVerbrauch  15.32
     2019-07-09 12:34:53   Time            3819
     2019-07-09 12:34:53   Total           2298
     2019-07-09 12:34:53   ZaehlerStand    34080.7533333333
     2019-07-09 12:31:05   presence        present
     2019-07-09 12:34:53   state           Count: 2 Time: 3819 Total: 2298
   helper:
     fpc        1562590771
     pm:
       Encode     1
       JSON       1
     received:
       Count      1562668493
       Time       1562668493
       Total      1562668493
   sec:
     admpwd     
Attributes:
   IODev      espBridge
   Interval   300
   alias      Stromzähler ESP Device
   group      Energiekosten
   icon       measure_power_meter
   presenceCheck 1
   readingSwitchText 1
   room       00.Schneider,ESPEasy
   setState   50
   userReadings PulsZeit:Time.* {ReadingsVal("$name", "Time", 0)/1000 },StromverbauchAktuell:Time.* { my $zeit = ReadingsVal("$name", "Time", 0); if($zeit > 0){sprintf("%.2f",3600/ReadingsVal("$name", "PulsZeit", 0));} else {sprintf("0");}},TagesVerbrauch:Time.* { ReadingsVal("$name", "Total", 0)/150 },ZaehlerStand:Time.* monotonic { ReadingsVal("$name", "Total", 0)/150}


unten ist mal ein Bild mit den Nachkommastellen die ich meine
nanoCul434MHz, nanoCul868MHz, HueBridge, shellyRolladenaktoren, Nuki, Homematic, RPI3, Homebridge, Sonoffbridge, Xiaomi Saugrobotter,

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

t1me2die

Moin, bei deinem Reading "StromverbauchAktuell" benutzt du doch schon erfolgreich sprintf mit zwei Nachkommastellen :)
Wenn du nun "TagesVerbrauch" und "ZaehlerStand" auch nur mit zwei Nachkommastellen haben möchtest, dann mach es genauso wie beim "StromverrbrauchAktuell"  :)

Oder wo hapert es nun genau?

Gruß
Mathze

Larusso

danke für die schnelle Antwort. Wie muss ich sprintf"%.2f" (steht ja für zwei Nachkommastellen) mit einbinden damit es sich auf reading TagesVerbrauch und Zaehlerstand auswirkt? Den Zusammenhang blicke ich noch nicht wirklich?
nanoCul434MHz, nanoCul868MHz, HueBridge, shellyRolladenaktoren, Nuki, Homematic, RPI3, Homebridge, Sonoffbridge, Xiaomi Saugrobotter,

t1me2die

Ohne getestet zu haben, so oder so ähnlich könnte es ausschauen:


TagesVerbrauch:Time.* { sprintf('%.2f', ReadingsNum("$name", "Total", 0)/150)) }
ZaehlerStand:Time.* monotonic { sprintf('%.2f', ReadingsNum("$name", "Total", 0)/150)) }


Gruß
Mathze

Larusso

hab das ganze mal ein bisschen entzerrt und denke das es so funktionieren könnte......

PulsZeit:Time.* {ReadingsVal("$name", "Time", 0)/1000 },
StromverbauchAktuell:Time.* { my $zeit = ReadingsVal("$name", "Time", 0); if($zeit > 0){sprintf("%.2f",3600/ReadingsVal("$name", "PulsZeit", 0));}
else
{sprintf("0");}},
TagesVerbrauch:Time.* {sprintf("%.2f",ReadingsVal("$name", "Total", 0))/150 },
ZaehlerStand:Time.* monotonic {sprintf("%.2f",ReadingsVal("$name", "Total", 0))/150}
nanoCul434MHz, nanoCul868MHz, HueBridge, shellyRolladenaktoren, Nuki, Homematic, RPI3, Homebridge, Sonoffbridge, Xiaomi Saugrobotter,

Larusso

Hallo t1me2die

warum setzt du '%.2f'

anstelle von ""

??
nanoCul434MHz, nanoCul868MHz, HueBridge, shellyRolladenaktoren, Nuki, Homematic, RPI3, Homebridge, Sonoffbridge, Xiaomi Saugrobotter,

t1me2die

Moin, das Ergebnis wird in deinem Fall dasselbe sein.
Stichwort: Zeichenketten und Variableninterpolation
Zitat
...
Der Unterschied zwischen einfachen und doppelten Anführungszeichen besteht in der sogenannten Variableninterpolation
...

Paar Basic's zum nachlesen:
https://de.wikibooks.org/wiki/Perl-Programmierung:_Variablen

PS.: Ist das Ergebnis nun wie gewünscht?

Gruß
Mathze

Meck

Zitat von: Larusso am 09 Juli 2019, 13:02:29
Hallo t1me2die

warum setzt du '%.2f'

anstelle von ""

??

Hallo Larusso,

die Frage habe ich mir auch am Anfang gestellt daher empfehle ich dir folgendes Buch:
https://upload.wikimedia.org/wikibooks/de/4/45/Perl.pdf

Auf Seite 19 udn20 steht deine Antwort.
Hier kannst du auch eine Codeschnipsel testen:
https://www.tutorialspoint.com/execute_perl_online.php


Gruß

Meck

Larusso

ja musste nur die dritte Klammer bei deiner Vorgabe entfernen, vielen dank.
nanoCul434MHz, nanoCul868MHz, HueBridge, shellyRolladenaktoren, Nuki, Homematic, RPI3, Homebridge, Sonoffbridge, Xiaomi Saugrobotter,

en-trust

Ich habe folgendes Reading erstellt, bekomme aber dennoch keine Nachkommastelle.


ram_used {if (sprintf("%.2f",ReadingsVal("$name","ram",0) =~ m/Used:\s(\d+)/)) {return $1;;;;}}


Und wie füge ich die Kürzel Mb noch dran?

Danke.

SouzA

Zitat von: en-trust am 27 November 2020, 20:22:40Ich habe folgendes Reading erstellt, bekomme aber dennoch keine Nachkommastelle.

ram_used {if (sprintf("%.2f",ReadingsVal("$name","ram",0) =~ m/Used:\s(\d+)/)) {return $1;;;;}}

Und wie füge ich die Kürzel Mb noch dran?

Danke.

Hi,
ein "Kürzel" hab ich z.B. so angefügt:
total_consumption_kwh_Einheit {sprintf("%.2f" ,ReadingsVal("Stromzaehler","total_consumption",0)/1000 )." kWh"}Da wird kWh dann angezeigt.

Bis denn
SouzA
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

SouzA

#12
Hallo liebe fhem-Liebhaber,

ich habe da auch ein Problem mit den Nachkommastellen.
Nämlich wird bei einem meiner Userreadings auch das "%.2f" nicht beachtet.
Allerdings hat dies bei der ersten Erstellung des Readings noch funktioniert.
Ab einem bestimmten Zeitpunkt funktionierte es nicht mehr:
2023-06-13_07:09:35 224.77
2023-06-13_19:10:05 224.78
2023-06-14_09:46:09 224.79
2023-06-15_08:10:59 224.8
.
.
.
2023-10-12_06:08:18 256.49
2023-10-12_06:13:10 256.5
2023-10-12_06:17:18 256.51
2023-10-12_06:22:27 256.52
2023-10-12_06:27:10 256.53
2023-10-12_06:31:15 256.54
2023-10-12_06:35:41 256.549999999999
2023-10-12_06:37:24 256.559999999999
2023-10-12_06:40:11 256.569999999999
2023-10-12_06:43:35 256.579999999999
2023-10-12_06:45:15 256.589999999999
2023-10-12_06:50:20 256.599999999999
2023-10-12_06:54:37 256.609999999999
.
.
.
2023-11-01_09:54:53 285.839999999973
2023-11-01_10:18:22 285.849999999973
#%:%total_consumption_PV_EUR:::

Es handelt sich um das nachfolgende Userreading:
total_consumption_PV_EUR monotonic {sprintf('%.2f' ,((ReadingsNum("Stromzaehler","total_consumption",0)/1000) - 5836.03) *(ReadingsNum("Stromzaehler","Energiekosten_bezug",0)))},
Ich habe die Schreibweisen '%.2f' und "%.2f" erfolglos versucht.
Sowie ReadingsNum und ReadingsVal getestet.
Klammersetzung auch variiert...

Das Device sieht wie folgt aus:
define Stromzaehler OBIS /dev/serial/by-id/usb-FTDI_FT230X_Basic_UART_D30A13JC-if00-port0@9600
attr Stromzaehler DbLogInclude total_feed,total_feed_EUR,total_feed_kwh,total_consumption,total_consumption_kwh,total_consumption_PV_EUR,total_consumption_PV_kwh,total_summery_EUR,total_summery_kwh,power_kw,current_L1,current_L2,current_L3,voltage_L1,voltage_L2,voltage_L3
attr Stromzaehler alias Elt.-Energie
attr Stromzaehler channels {"1.0.14.7.0.255"=>"frequenz"}
attr Stromzaehler comment !!!Das _PV_ in den Userreadings bedeutet, dass dies die Werte ab dem 13.01.2023 sind.!!!!\
Diese wurden (mit Zählerstand zum 13.01.2023) bereinigt.
attr Stromzaehler event-on-change-reading .*
attr Stromzaehler group Zähler
attr Stromzaehler icon measure_power_meter
attr Stromzaehler interval 5
attr Stromzaehler pollingMode on
attr Stromzaehler room Energieverbrauch
attr Stromzaehler stateFormat {\
 my $pkw              = ReadingsVal("$name","power_kw", "")." kW";;\
 my $eday              = ReadingsVal("$name","statTotal_consumption_PV_kwhDay", "")." kWh";;\
 my $edaylast          = ReadingsVal("$name","statTotal_consumption_PV_kwhDayLast", "")." kWh";;\
 my $emonth          = ReadingsVal("$name","statTotal_consumption_PV_kwhMonth", "")." kWh";;\
 my $emonthlast    = ReadingsVal("$name","statTotal_consumption_PV_kwhMonthLast", "")." kWh";;\
 my $eyear          = ReadingsVal("$name","statTotal_consumption_PV_kwhYear", "")." kWh";;\
 my $eyearlast      = ReadingsVal("$name","statTotal_consumption_PV_kwhYearLast", "")." kWh";;\
 my $edayeur          = ReadingsVal("$name","statTotal_consumption_PV_EURDay", "")." €";;\
 my $edayeurlast    = ReadingsVal("$name","statTotal_consumption_PV_EURDayLast", "")." €";;\
 my $emontheur      = ReadingsVal("$name","statTotal_consumption_PV_EURMonth", "")." €";;\
 my $emontheurlast  = ReadingsVal("$name","statTotal_consumption_PV_EURMonthLast", "")." €";;\
 my $eyeareur          = ReadingsVal("$name","statTotal_consumption_PV_EURYear", "")." €";;\
 my $eyeareurlast    = ReadingsVal("$name","statTotal_consumption_PV_EURYearLast", "")." €";;\
 my $fday              = ReadingsVal("$name","statTotal_feed_kwhDay", "")." kWh";;\
 my $fdaylast          = ReadingsVal("$name","statTotal_feed_kwhDayLast", "")." kWh";;\
 my $fmonth          = ReadingsVal("$name","statTotal_feed_kwhMonth", "")." kWh";;\
 my $fmonthlast    = ReadingsVal("$name","statTotal_feed_kwhMonthLast", "")." kWh";;\
 my $fyear          = ReadingsVal("$name","statTotal_feed_kwhYear", "")." kWh";;\
 my $fyearlast      = ReadingsVal("$name","statTotal_feed_kwhYearLast", "")." kWh";;\
 my $fdayeur          = ReadingsVal("$name","statTotal_feed_EURDay", "")." €";;\
 my $fdayeurlast    = ReadingsVal("$name","statTotal_feed_EURDayLast", "")." €";;\
 my $fmontheur      = ReadingsVal("$name","statTotal_feed_EURMonth", "")." €";;\
 my $fmontheurlast    = ReadingsVal("$name","statTotal_feed_EURMonthLast", "")." €";;\
 my $fyeareur          = ReadingsVal("$name","statTotal_feed_EURYear", "")." €";;\
 my $fyeareurlast    = ReadingsVal("$name","statTotal_feed_EURYearLast", "")." €";;\
"<html><table border=2 bordercolor='grey' cellspacing=0>\
<tr>\
<td style='padding-right:5px;;padding-left:5px;;font-weight:bold'></td>\
<td style='padding-right:5px;;padding-left:5px;;font-weight:bold'>aktueller Wert</td>\
<td style='padding-right:5px;;padding-left:5px;;font-weight:bold'>Heute</td>\
<td style='padding-right:5px;;padding-left:5px;;font-weight:bold'>Gestern</td>\
<td style='padding-right:5px;;padding-left:5px;;font-weight:bold'>dieser Monat</td>\
<td style='padding-right:5px;;padding-left:5px;;font-weight:bold'>letzter Monat</td>\
<td style='padding-right:5px;;padding-left:5px;;font-weight:bold'>dieses Jahr</td>\
<td style='padding-right:5px;;padding-left:5px;;font-weight:bold'>letztes Jahr</td>\
</tr>\
<tr>\
<td style='padding-right:5px;;padding-left:5px;;text-align:left;;font-weight:bold'>Verbrauch</td>\
<td style='padding-right:5px;;padding-left:5px'>".$pkw."</td>\
<td style='padding-right:5px;;padding-left:5px'>".$eday."</td>\
<td style='padding-right:5px;;padding-left:5px'>".$edaylast."</td>\
<td style='padding-right:5px;;padding-left:5px'>".$emonth."</td>\
<td style='padding-right:5px;;padding-left:5px'>".$emonthlast."</td>\
<td style='padding-right:5px;;padding-left:5px'>".$eyear."</td>\
<td style='padding-right:5px;;padding-left:5px'>".$eyearlast."</td>\
</tr>\
<tr>\
<td style='padding-right:5px;;padding-left:5px;;text-align:left;;font-weight:bold'>Kosten</td>\
<td style='padding-right:5px;;padding-left:5px'></td>\
<td style='padding-right:5px;;padding-left:5px'>".$edayeur."</td>\
<td style='padding-right:5px;;padding-left:5px'>".$edayeurlast."</td>\
<td style='padding-right:5px;;padding-left:5px'>".$emontheur."</td>\
<td style='padding-right:5px;;padding-left:5px'>".$emontheurlast."</td>\
<td style='padding-right:5px;;padding-left:5px'>".$eyeareur."</td>\
<td style='padding-right:5px;;padding-left:5px'>".$eyeareurlast."</td>\
</tr>\
<tr>\
<td style='padding-right:5px;;padding-left:5px;;text-align:left;;font-weight:bold'>Einspeisung</td>\
<td style='padding-right:5px;;padding-left:5px'>"."</td>\
<td style='padding-right:5px;;padding-left:5px'>".$fday."</td>\
<td style='padding-right:5px;;padding-left:5px'>".$fdaylast."</td>\
<td style='padding-right:5px;;padding-left:5px'>".$fmonth."</td>\
<td style='padding-right:5px;;padding-left:5px'>".$fmonthlast."</td>\
<td style='padding-right:5px;;padding-left:5px'>".$fyear."</td>\
<td style='padding-right:5px;;padding-left:5px'>".$fyearlast."</td>\
</tr>\
<tr>\
<td style='padding-right:5px;;padding-left:5px;;text-align:left;;font-weight:bold'>Vergütung</td>\
<td style='padding-right:5px;;padding-left:5px'></td>\
<td style='padding-right:5px;;padding-left:5px'>".$fdayeur."</td>\
<td style='padding-right:5px;;padding-left:5px'>".$fdayeurlast."</td>\
<td style='padding-right:5px;;padding-left:5px'>".$fmontheur."</td>\
<td style='padding-right:5px;;padding-left:5px'>".$fmontheurlast."</td>\
<td style='padding-right:5px;;padding-left:5px'>".$fyeareur."</td>\
<td style='padding-right:5px;;padding-left:5px'>".$fyeareurlast."</td>\
</tr>\
</table>\
</html>"\
}
attr Stromzaehler unitReadings off
attr Stromzaehler userReadings feed { if ((ReadingsVal("Stromzaehler","power",0)) < 0) {return (ReadingsVal("Stromzaehler","power",0)) * (-1)} else {return 0}},\
consumption { if ((ReadingsVal("Stromzaehler","power",0)) > 0) {return (ReadingsVal("Stromzaehler","power",0))} else {return 0}},\
\
power_kw {sprintf("%.2f" ,ReadingsVal("Stromzaehler","power",0)/1000 )},\
feed_kw {sprintf("%.2f" ,ReadingsVal("Stromzaehler","feed",0)/1000 )},\
total_consumption_kwh {sprintf("%.2f" ,ReadingsVal("Stromzaehler","total_consumption",0)/1000 )},\
total_consumption_PV_kwh {sprintf("%.2f" ,(ReadingsVal("Stromzaehler","total_consumption",0)/1000) - 5836.03 )},\
total_consumption_kwh_Einheit {sprintf("%.2f" ,ReadingsVal("Stromzaehler","total_consumption",0)/1000 )." kWh"},\
total_feed_kwh {sprintf("%.2f" ,ReadingsVal("Stromzaehler","total_feed",0)/1000 )},\
\
total_consumption_PV_EUR monotonic {sprintf('%.2f' ,((ReadingsNum("Stromzaehler","total_consumption",0)/1000) - 5836.03) *(ReadingsNum("Stromzaehler","Energiekosten_bezug",0)))},\
\
total_feed_EUR {sprintf("%.2f" , ReadingsNum("Stromzaehler","total_feed_kwh",0)* 0.082 )},\
\
total_summery_kwh {sprintf("%.2f" ,( (ReadingsNum("Stromzaehler","total_consumption",0)/1000) - 5836.03 ) - (ReadingsNum("Stromzaehler","total_feed",0)/1000 ));;;;},\
\
total_summery_EUR {sprintf("%.2f" ,ReadingsNum("Stromzaehler","total_consumption_PV_EUR",0) - ReadingsNum("Stromzaehler","total_feed_EUR",0));;;;},\
total_summery_EURDay {sprintf("%.2f" ,ReadingsNum("Stromzaehler","statTotal_consumption_PV_EURDay",0) - ReadingsNum("Stromzaehler","statTotal_feed_EURDay",0));;;;},\
total_summery_EURDayLast {sprintf("%.2f" ,ReadingsNum("Stromzaehler","statTotal_consumption_PV_EURDayLast",0) - ReadingsNum("Stromzaehler","statTotal_feed_EURDayLast",0));;;;},\
total_summery_EURMonth {sprintf("%.2f" ,ReadingsNum("Stromzaehler","statTotal_consumption_PV_EURMonth",0) - ReadingsNum("Stromzaehler","statTotal_feed_EURMonth",0));;;;},\
total_summery_EURMonthLast {sprintf("%.2f" ,ReadingsNum("Stromzaehler","statTotal_consumption_PV_EURMonthLast",0) - ReadingsNum("Stromzaehler","statTotal_feed_EURMonthLast",0));;;;},\
total_summery_EURYear {sprintf("%.2f" ,ReadingsNum("Stromzaehler","statTotal_consumption_PV_EURYear",0) - ReadingsNum("Stromzaehler","statTotal_feed_EURYear",0));;;;},\
total_summery_EURYearLast {sprintf("%.2f" ,ReadingsNum("Stromzaehler","statTotal_consumption_PV_EURYearLast",0) - ReadingsNum("Stromzaehler","statTotal_feed_EURYearLast",0));;;;},
attr Stromzaehler verbose 0

Wie ihr seht, sind im Device mehrere Userreadings mit zwei Nachkommastellen angelegt und nur bei dem einen Reading funktioniert es nicht.
Im Reading kommt folgendes an:
total_consumption_PV_EUR 285.849999999973
Was mache ich falsch?
Kann mir da jemand bitte helfen?

Vielen Dank!

Bis denn
SouzA
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

Torxgewinde

Das sollte dann vermutlich am "monotonic" (Dokumentation: https://fhem.de/commandref.html#readingFnAttributes --> <modifier> bei den userReadings) liegen.

  • Lass' monotonic mal weg, außer du erwartest dass die Werte durch einen Überlauf oder Reset auch mal kleiner werden.
  • Oder, alternativ erstelle dir ein zweites, gerundetes userReading: total_consumption_PV_EUR_rounded { sprintf('%.2f', ReadingsNum($name, "total_consumption_PV_EUR", 0) } Wenn du auch einen Trigger spezifizierst, hat FHEM das nur bei Updates des passenden Wertes zu berechnen:
    total_consumption_PV_EUR_rounded:total_consumption_PV_EUR:.* { sprintf('%.2f', ReadingsNum($name, "total_consumption_PV_EUR", 0) }
  • Oder, zur Not kann man monotonic auch "zu Fuß" programmieren und dann gezielter Einfluss nehmen. Probier' bitte erstmal die beiden anderen Punkte.

SouzA

Hallo Torxgewinde,

Vielen Dank für die Antwort!
Am Wochenende habe ich da jetzt keine Zeit zu.
Melde mich im Laufe der nächsten Woche dazu.

Wünsche ein schönes Wochenende und bis bald.
SouzA
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee