Hallo..
Ich brauche mal Hilfe und zwar habe ich einen Wert (z.b 18650) den ich gerne nur auf 4 Stellen schreiben möchte. Habe ein Userreading auf gemacht das so aussieht
druckineu {sprintf("%4.0f",(ReadingsVal("druckmesser_log","drucki","?")))}
Ich bekomme das sprintf einfach nicht hin damit der Wert 1865 raus kommt. Kann mir da bitte mal jemand helfen ?
Danke
Hi,
sprintf formatiert die Ausgabe, es dividiert nicht :)
https://perldoc.perl.org/functions/sprintf.html
{sprintf("%4.0f",("18650")/10)}
Gruß Otto
Sehr aufschlußreiches list, das du da geliefert hast...
Ansonsten ist nicht klar, ob du immer nur die vorderen 4 Ziffern haben willst (egal, ob das 4,5 oder 6-stellig ist...), oder einfach nur den ganzzahligen Anteil des Ergebnisses, wenn man durch 10 teilt.
Wenn letzteres, wäre es vielleicht zielführend, diese mathematische Anweisung auch dem userreadings nicht vorzuenthalten, wie Otto das grade vorgeschlagen hat. Und damit das userreading "druckineu"nur berechnet wird, wenn sich "drucki" ändert, solltest du vielleicht den Trigger einschränken ;) :
druckineu:drucki.*
Ja danke... ::)
Entweder hat die Nachtschicht heute mein Hirn etwas aufweichen lassen das ich nicht auf die einfache Lösung gekommen bin. Sieht jetzt so aus und geht
druckineu {sprintf("%.0f",(ReadingsVal("druckmesser_log","drucki","?")/10))}