NEWS
UNSOLVED Funktion formatValue in Beschriftung
- 
					
					
					
					
 Systemdata Bitte Ausfüllen Hardwaresystem: Pi4 Arbeitsspeicher: 8GB Festplattenart: SD-Karte Betriebssystem: Ubuntu/Windows/Mac Node-Version: 12.20.0 Nodejs-Version: 12.20.0 NPM-Version: 6.14.8 Installationsart: Skript/Manuell Image genutzt: Nein Ort/Name der Imagedatei: Link Hallo 
 Ich versuche den Temperaturwert mit einer permanenten Nachkommastelle in einem Beschriftungsstring zu formatieren. Kein Erfolg so weit. Andere Funktionen wie min(30) oder *(2) gehen problemlos.Hier der Beschriftungsstring: 
 {hm-rpc.0.KEQ0579377.4.ACTUAL_TEMPERATURE;formatValue('#.0');} °CEine Idee warum das nicht klappt oder ist es ein Bug? Gruß 
 Tom
- 
					
					
					
					
 @BitCoder sagte: mit einer permanenten Nachkommastelle in einem Beschriftungsstring val.toFixed(1) // Zahl in String mit einer Nachkommastelle
- 
					
					
					
					
 @paul53 
 Danke für die rasche Antwort. Ich bin zu blöd und verstehe deine Lösung nicht. Wie muss ich den String in der Beschriftung anpassen, dass es funktioniert?
 Im Moment sieht der Beschrifungsstring so aus:{hm-rpc.0.KEQ0579377.4.ACTUAL_TEMPERATURE} °C  wo kommt nun das val.toFixed(0) hin? Gruss 
 Tom
- 
					
					
					
					
 
- 
					
					
					
					
 habe es mit einem html widget probiert {vart:controll-own.0.AAATEST.TestString1; vart=Number(Math.round(vart*100)/100)} rundet einen teststring auf 2 stellen nach dem komma 
- 
					
					
					
					
 @liv-in-sky sagte in Funktion formatValue in Beschriftung: {vart:controll-own.0.AAATEST.TestString1; vart=Number(Math.round(vart*10)/10)} -> modifiziert dies hatte ich bereits in einem anderen Bezug versucht, die Ausgabe ist jedoch bei mehreren Nachkommastellen von vartx.x was funktioniert. Istvartaber eine Zahl ohne Komastelle (z.b. 6), kommt als Ergebnis 6 statt 6.0 raus.@BitCoder möchte jedoch (...) einer permanenten Nachkommastelle (...) 
- 
					
					
					
					
 @ice987 sagte: Zahl ohne Komastelle (z.b. 6), kommt als Ergebnis 6 statt 6.0 raus. Das ist generell bei Zahlen so. Eine permanente Nachkommastelle kann nur ein String darstellen. In Javascript gibt es dafür zahl.toFixed(1): 
- 
					
					
					
					
 das funktioniert bei mir mit 6 =6.00 
 oder 6.4445 = 6.45{v:controll-own.0.AAATEST.TestString1;(v/1).toFixed(2)}
- 
					
					
					
					
 das funktioniert! v= 6: ergibt Ausgabe: 6.0
 v= 6.123: ergibt Ausgabe: 6.1Vielen Dank! 
- 
					
					
					
					
 
- 
					
					
					
					
 @liv-in-sky 
 Damit es klarer ist, würde ich es so verwenden:{val:hm-rpc.0.KEQ0579377.4.ACTUAL_TEMPERATURE;Number(val).toFixed(1)} °CDass die Division durch 1 in eine Zahl wandelt, ist nicht für jeden gleich ersichtlich. 
 Anstelle von Number() kann auch parseFloat() verwendet werden.
- 
					
					
					
					
 Jetzt bin ich überwältigt, wie viele sich beteiligt haben, sich der Sache anzunehmen. 
 Die Variante von paul53 gefällt mir persönlich am besten. Das mit der Division war mir nicht klar, bis du das mit dem Cast erklärt hast.
 Besten Dank. Es funktioniert jetzt so, wie ich mir das vorgestellt habe.Trotzdem ist die Geschichte mit der Funktion formatValue(decimals) nicht gelöst. So wie es in der Dokumentation beschrieben ist, funktioniert es meines Erachtens nicht. Gruss an alle Helfer 
 Tom
 
		
	 
		
	 
			
		 
			
		