NEWS
Canvas gauges Radial für Stromverbrauch Maxwert berechnen
-
Ich hätte da mal eine Frage.
Ich habe mit Tasmota geflashte Steckdosen im Einsatz und möchte gerne den Current Power Wert in einem Canvas gauges Radial Widget darstellen lassen.Soweit habe ich das auch hinbekommen, allerdings auf Umwegen und mit teilweise nicht zufrieden stellendem Ergebnis.
Das hier wäre so ein Beispiel:
Da ich gerne einen Maxwert hätte, der nicht tausende Watt vom aktuellen Wert entfernt ist, nutze ich eine Berechnung im Widget.
{value:sonoff.0.Steckdose_Medien_54E7AB.ENERGY_Power;value*3}
Nun scheint aber der Wert aus dem Datenpunkt einige Nachkommastellen zu beinhalten, so dass teilweise obiges Beispiel rauskommt.
Ebenfalls würde ich auch gerne "value" nur mit einem Wert von X addieren.
Hier wird aber nicht addiert, sondern einfach verkettet.
Wenn ich also value + 120 eingebe, dann sind es bei aktuellen 37 Watt nicht 157 Watt als Maxwert, sondern 37120 Watt.{value:sonoff.0.Steckdose_Medien_54E7AB.ENERGY_Power;value+120}
Kann hier nicht addiert werden, oder gibt es dafür eine andere Syntax?
Das aber nur nebenher. Mit der Multiplikation geht es auch.Nur muss ich den Wert irgendwie runden können. Geht das direkt im Widget, oder brauche ich dafür immer ein Skript. Momentan mache ich es so und fülle allerdings zwei Datenpunkte. Einmal den eigentlichen "gerundeten" Wert und einmal meinen gewünschten "Maxwert".
Viel einfacher wäre es aber, wenn ich den originalen Wert aus dem Sonoff Adapter bereits gerundet, oder nach dem Komma abgeschnitten schon an das Widget schon übergeben könnte.
Leider finde ich hier keinen Ansatz. Auch in den Einstellungen von Tasmota nicht.Kann mir hier jemand helfen?
-
Habs jetzt selbst gelöst.
Der Ursprung dieser ewig langen Kommazahlen im Widget kommt nicht aus dem Datenpunkt, sondern aus der Anzahl majorTicks.Ich hatte 6 majorTicks und somit einen Teiler von 5, da ich mit 0 beginne.
In dem obigen Beispiel rechne ich 36 Watt * 3 = 108 Watt Maxwert.
Dies sind bei 5 Teilern 21,6.
Warum dann allerdings regelmäßig der 4 Tick solche komischen Zahlen liefert, weiß ich nicht. Vielleicht ein Bug.Ich habe es jetzt so gelöst, dass ich den aktuellen Verbrauch auf gerade oder ungerade abfrage und dann jeweils bei gerade mit 2 multipliziere und bei ungerade noch 1 drauf rechne. Das Widget habe ich jetzt auf 9 majorTicks erhöht und habe somit immer einen Teiler von 8, der sich maximal auf ,0 und ,5 berechnet. Damit hat auch das Widget keine Schwierigkeiten.
Und da nun der Zeiger bei jeder Wattzahl quasi an der gleichen Stelle hängen würde, da der Maxwert immer das gleiche Verhältnis zum aktuellen Wert hat, habe ich das Widget im Animationsziel auf die plate gelegt.
Sieht jetzt so aus:
Und die Datenpunkte werden im Blockly so gefüllt:
Wobei ich glaube, dass ich das zweite IF weglassen kann. Wenn der Wert nicht gerade ist, dann muss er ja ungerade sein. Das "sonst Falls" nehme ich dann später noch raus und setze nur ein "sonst". Verschlankt dann auch den Code.
Aber vielleicht hat da noch jemand eine andere Lösung parat, dann bin ich offen für Neues.