NEWS
[gelöst] - Anzeige Kommastelle
-
Hallo zusammen,
kann mir jemand sagen was ich tun muss damit mir hier auch zusätzlich zwei Nachkommastellen angezeigt werden oder zumindest eine?
{val:easee.0.EH806570.status.totalPower;val<1000?Math.round(val):parseFloat(val*0.0001).toFixed(1)}
{val:easee.0.EH806570.status.totalPower;" kW"}So sieht der Datenpunkt aus.
Hier macht er es komischerweise
HTML sind aber identisch!Danke Euch!
-
der wert 1,9555... ist keine zahl, da komma - das sollte ein punkt sein
-
@uli977 die zweite zeile ist eigentlich kein binding - da kannst du einfach nur kW schreiben
{vali:0_userdata.0.CONTROL-OWN.AAATEST.Script_Total ; vali<1000 ? Math.round(val) : parseFloat(vali*0.0001).toFixed(1) }  kW
  ist ein leerzeichen im html-code
-
@uli977
mit dieser formel werden immer 2 nachkomma angezeigt - mit dem wert, in dem ein komma ist !{vali:0_userdata.0.CONTROL-OWN.AAATEST.TestString1 ; vali2 = parseFloat(vali.replace(',','.'));Math.round(vali2 * 100) / 100 }
hilft das ?
willst du nur eine nachkommastelle : ändere beide 100 in 10 am ende der formel
Math.round(vali2 * 10) / 10
-
Vielen Dank, Ihr habt mir sehr geholfen!
-
@uli977 haben WIR gerne gemacht
-
@liv-in-sky Du
-
@uli977 Hallo
Darf ich mal fragen wo du die Bilder her hast bzw. Wie du es umgesetzt hast das deine PV Anlage so angezeigt wird.
Danke schon mal...
Lg
-
Ich habe mir dieses Beitrag angesehen und mir das ZIP File vom Beitrag von ak1 vom 06.10.2020 heruntergeladen und die Files (Widget und Bilder) importiert und damit weitergearbeitet.
https://forum.iobroker.net/topic/16169/iobroker-anbindung-an-einen-kostal-plenticore/636
Nutze dafür den Easee Wallbox Adapter und den Kostal Plenticore Adapter, sowie ein Skript zur Steuerung für das Überschussladen.
Viele Grüße!
-
@liv-in-sky Kannst du mir nochmal helfen?
Ich muss hier noch den Wert eines zweiten Wechselrichters addieren, bekomme es aber nicht hin.
{val:plenticore.0.devices.local.Pv_P;val<1000?Math.round(val):parseFloat(val*0.001).toFixed(1)}
Danke dir!
-
@uli977 sagte in [gelöst] - Anzeige Kommastelle:
{val:plenticore.0.devices.local.Pv_P;val<1000?Math.round(val):parseFloat(val*0.001).toFixed(1)}
bei mir funktioniert es so, wenn der datenpunkt eine zahl ist - ist das wieder ein string oder etwas mit komma ?
{val:plenticore.0.devices.local.Pv_P; val<1000 ? Math.round(val) : (val*0.001).toFixed(1) } {val:plenticore.0.devices.local.Pv_P; val<1000 ? "W" : "kW"}
wenn das wieder so ein komma string ist, dann.
{val:plenticore.0.devices.local.Pv_P; val2=parseFloat(val.replace(',','.')); val2<1000 ? Math.round(val2 * 100) / 100 : Math.round(val2 * 0.001* 10) / 10 } {val:plenticore.0.devices.local.Pv_P; parseFloat(val.replace(',','.'))<1000 ? "W" : "kW"}
-
plenticore.0.devices.local.Pv_P
plenticore.1.devices.local.Pv_PDiese beiden Werte müsste ich addieren und es sind Zahlen.
Wie sähe es aus wenn es Komma string sind?
Ich bekomme es nicht hin... Sorry!
Kannst du mir nochmal helfen?
1000 Dank!
Viele Grüße aus Mettmann!
-
wenn es eine zahl ist und addiert werden soll
probiermal mal
{wert2:plenticore.0.devices.local.Pv_P; wert1:plenticore.1.devices.local.Pv_P; wertAll= Number(wert1) + Number(wert2); wertAll<1000 ? Math.round(wertAll) : (wertAll*0.001).toFixed(1) } {wert2:plenticore.0.devices.local.Pv_P; wert1:plenticore.1.devices.local.Pv_P; wertAll= Number(wert1) + Number(wert2); wertAll<1000 ? "W" : "kW"}
-
@liv-in-sky Das mit der Zahl hat schoinmal geklappt! Super, danke!
Und wenn es jetzt ein KommaString ist welcher addiert werden soll?
Ist es dann so korrekt?{val: plenticore.0.devices.local.Home_P; val2=plenticore.1.devices.local.Home_P (val.replace(',','.')); val2<1000 ? Math.round(val2 * 100) / 100 : Math.round(val2 * 0.001* 10) / 10 } {val: plenticore.0.devices.local.Home_P; plenticore.1.devices.local.Home_P (val.replace(',','.'))<1000 ? "W" : "kW"}
Der zweite Wert kann aber auch Null sein, funktioniert es dann auch?
-
leider nei - da muss:
parseFloat(vali.replace(',','.'));
raeplace ändert den string von komma zu punkt - das ganze wird dann mit parseFloat() in eine zahl verwandelt- erst dann kannst du nach größer kleier abfragen
das mit null wird bei mir nicht angezeigt - da ist ein fehler - muss mal überlegen, ob ich das abfangen kann - das null bedeutet, das der wert null ist oder das der wert nicht abrufbar ist ? evtl muss das über eine eigenes blockly abgefangen werden un in einen extra dp geschrieben werden
-
um das null mit benutzen zu können hilft die zwischenabfrage
{wert2:0_userdata.0.CONTROL-OWN.AAATEST.aObject; wert1:0_userdata.0.CONTROL-OWN.TestZahlNull; wert1==null ? 0 : wert1; wertAll= Number(wert1) + Number(wert2); wertAll<1000 ? Math.round(wertAll) : (wertAll*0.001).toFixed(1) }
speziell der teil:
wert1==null ? 0 : wert1;
wenn da wieder ein komma -string drinsteht mußt du
wert1==null ? "0" : wert1;
das muss direkt hinter die variable-definition
z.B.{val: plenticore.0.devices.local.Home_P; val2=plenticore.1.devices.local.Home_P; val2==null ? "0" : val2; valadd=parseFloat(val2.replace(',','.'))+val; valadd<1000 ? Math.round(valadd* 100) / 100 : Math.round(valadd* 0.001* 10) / 10 } {val: plenticore.0.devices.local.Home_P; val2: plenticore.1.devices.local.Home_P; val2==null ? "0" : val2; valadd=parseFloat(val2.replace(',','.'))+val; valadd<1000 ? "W" : "kW"}