NEWS
[gelöst] Datenpunkt mit Tausender-Trennzeichen formatieren ?
-
Hallo zusammen,
ich möchte einen selbst erzeugten Datenpunkt, der bereits im Format "number" ohne Dezimalpunkt vorliegt, mit einem Dezimalpunkt in iQontrol anzeigen.
Weder in iQontrol noch in ioBroker habe ich den Weg gefunden, das zu realisieren.
Was kann ich tun ?
Besten Dank für eure Hilfe
-
Hallo zusammen,
ich möchte einen selbst erzeugten Datenpunkt, der bereits im Format "number" ohne Dezimalpunkt vorliegt, mit einem Dezimalpunkt in iQontrol anzeigen.
Weder in iQontrol noch in ioBroker habe ich den Weg gefunden, das zu realisieren.
Was kann ich tun ?
Besten Dank für eure Hilfe
@schweiger2
Wo kommt denn der Wert für den DP her? Aus einem Script?
Dann könntest Du den DP auf "string" umstellen und im Script formatieren.
Solange der nur für die Anzeige verwendet wird, wäre das sogar halbwegs legitim.Ansonsten bist Du hier im falschen Unterforum, dann das hat ja nix mit "ioBroker Allgemein" sondern mit "iQontrol" - also "Visualisierung" zu tun.
-
Hallo zusammen,
ich möchte einen selbst erzeugten Datenpunkt, der bereits im Format "number" ohne Dezimalpunkt vorliegt, mit einem Dezimalpunkt in iQontrol anzeigen.
Weder in iQontrol noch in ioBroker habe ich den Weg gefunden, das zu realisieren.
Was kann ich tun ?
Besten Dank für eure Hilfe
@schweiger2 Einfach den Wert durch xx teilen. Also 2425/100=24.25?
-
@schweiger2 Einfach den Wert durch xx teilen. Also 2425/100=24.25?
@mickym
Ich vermute eher, er möchte "2425" als "2425,0" angezeigt bekommen.
Kann mich aber auch täuschen. -
@mickym
Ich vermute eher, er möchte "2425" als "2425,0" angezeigt bekommen.
Kann mich aber auch täuschen.nee, es geht um den Dezimalpunkt, also 2425 anzuzeigen als 2.425.
Der Datenpunkt kommt aus einem Blockly, was wiederum einen Wert aus Tasmota ausliest.
-
nee, es geht um den Dezimalpunkt, also 2425 anzuzeigen als 2.425.
Der Datenpunkt kommt aus einem Blockly, was wiederum einen Wert aus Tasmota ausliest.
@schweiger2
Du meinst ein Tausender-Trennzeichen? -
nee, es geht um den Dezimalpunkt, also 2425 anzuzeigen als 2.425.
Der Datenpunkt kommt aus einem Blockly, was wiederum einen Wert aus Tasmota ausliest.
@schweiger2 Na wie gesagt dann teil halt den Wert in Deinem Blockly durch 1000 bevor den Datenpunkt schreibst.
-
nee, es geht um den Dezimalpunkt, also 2425 anzuzeigen als 2.425.
Der Datenpunkt kommt aus einem Blockly, was wiederum einen Wert aus Tasmota ausliest.
@schweiger2
Meine Glaskugel sagt, Du willst W in kW umrechnen ... dann so wie @mickym schreibt.
Das ist aber dann umrechnen und nicht formatieren. -
@schweiger2
Meine Glaskugel sagt, Du willst W in kW umrechnen ... dann so wie @mickym schreibt.
Das ist aber dann umrechnen und nicht formatieren.@codierknecht Man kann auch JSONATA nehmen. ;)
-
@codierknecht Man kann auch JSONATA nehmen. ;)
@mickym
Man könnte auch direkt in einem Alias umrechnen statt da per Script ranzugehen ;-) -
@schweiger2
Meine Glaskugel sagt, Du willst W in kW umrechnen ... dann so wie @mickym schreibt.
Das ist aber dann umrechnen und nicht formatieren.Ich bin wirklich sparsam mit meinen Auskünften gewesen.
Der Verbrauch wird als 6123 bzw. 39523 angezeigt, sowohl im DP als auch in iQontrol, was aber üblicherweise übernimmt, was es bekommt. Deswegen war mein Grundgedanke, den DP passend zu formatieren.
Mir geht es nicht um die Umrechnung, sondern wirklich nur um die Darstellung als 6.123 bzw. 39.523 W.
-
@mickym
Man könnte auch direkt in einem Alias umrechnen statt da per Script ranzugehen ;-)@codierknecht sagte in Wie Datenpunkt mit Dezimalpunkt formatieren ?:
@mickym
Man könnte auch direkt in einem Alias umrechnen statt da per Script ranzugehen ;-)Nun nachdem er aber eh schon den Datenpunkt mit Blockly schreibt, ist das dann aber auch kein Vorteil. ;)
-
Ich bin wirklich sparsam mit meinen Auskünften gewesen.
Der Verbrauch wird als 6123 bzw. 39523 angezeigt, sowohl im DP als auch in iQontrol, was aber üblicherweise übernimmt, was es bekommt. Deswegen war mein Grundgedanke, den DP passend zu formatieren.
Mir geht es nicht um die Umrechnung, sondern wirklich nur um die Darstellung als 6.123 bzw. 39.523 W.
@schweiger2
Dann wie gesagt auf string umstellen und im Script formatieren.Oder im iQontrol formatieren, aber da kann ich Dir nicht helfen.
-
@codierknecht sagte in Wie Datenpunkt mit Dezimalpunkt formatieren ?:
@mickym
Man könnte auch direkt in einem Alias umrechnen statt da per Script ranzugehen ;-)Nun nachdem er aber eh schon den Datenpunkt mit Blockly schreibt, ist das dann aber auch kein Vorteil. ;)
@mickym sagte in Wie Datenpunkt mit Dezimalpunkt formatieren ?:
Nun nachdem er aber eh schon den Datenpunkt mit Blockly schreibt, ist das dann aber auch kein Vorteil. ;)
Doch - spart Script ;-)
Und wenn der Alias als string angelegt ist, kann er auch gleich formatierenval.toFixed(1) -
Ich bin wirklich sparsam mit meinen Auskünften gewesen.
Der Verbrauch wird als 6123 bzw. 39523 angezeigt, sowohl im DP als auch in iQontrol, was aber üblicherweise übernimmt, was es bekommt. Deswegen war mein Grundgedanke, den DP passend zu formatieren.
Mir geht es nicht um die Umrechnung, sondern wirklich nur um die Darstellung als 6.123 bzw. 39.523 W.
@schweiger2 sagte in Wie Datenpunkt mit Dezimalpunkt formatieren ?:
Ich bin wirklich sparsam mit meinen Auskünften gewesen.
Der Verbrauch wird als 6123 bzw. 39523 angezeigt, sowohl im DP als auch in iQontrol, was aber üblicherweise übernimmt, was es bekommt. Deswegen war mein Grundgedanke, den DP passend zu formatieren.
Mir geht es nicht um die Umrechnung, sondern wirklich nur um die Darstellung als 6.123 bzw. 39.523 W.

Nur halt mal nutzen. ;)
-
@mickym sagte in Wie Datenpunkt mit Dezimalpunkt formatieren ?:
Nun nachdem er aber eh schon den Datenpunkt mit Blockly schreibt, ist das dann aber auch kein Vorteil. ;)
Doch - spart Script ;-)
Und wenn der Alias als string angelegt ist, kann er auch gleich formatierenval.toFixed(1)@codierknecht Na wenn ich obigen Befehl noch in den aktualisiere Block eingebe - machte den Kohl nicht fett.

Da ist ja dann der Alias nun wirklich keine Ersparnis. ;)- Zudem der originale Wert wahrscheinlich dann eh im sonoff - Adapter liegt und dieses Blockly vielleicht nur für die Ausgabe gemacht wurde.
Aber ich gebe Dir natürlich Recht, wenn er das Blockly nur wegen der Anzeige gemacht hat, dann kann er auch ein Alias mit Konvertierfunktion nutzen. ;)
-
@codierknecht Na wenn ich obigen Befehl noch in den aktualisiere Block eingebe - machte den Kohl nicht fett.

Da ist ja dann der Alias nun wirklich keine Ersparnis. ;)- Zudem der originale Wert wahrscheinlich dann eh im sonoff - Adapter liegt und dieses Blockly vielleicht nur für die Ausgabe gemacht wurde.
Aber ich gebe Dir natürlich Recht, wenn er das Blockly nur wegen der Anzeige gemacht hat, dann kann er auch ein Alias mit Konvertierfunktion nutzen. ;)
@mickym
Wenn das Script noch mehr berechnet und eh existiert, hast Du sicher Recht.Wenn es aber nur den Wert aus Tasmota nimmt und woanders hinschreibt, kann man es auch direkt im Alias machen.
Auch JSON auseinandernehmen (z.B. bei MQTT) ist mit den Konvertierungsfunktionen kein Problem.
Dann stehen die Ergebnispunkte hat inalias.0und nicht in0_userdata.0.
Da haben sich mein POST und Dein EDIT gerade überholt

-
@mickym
Wenn das Script noch mehr berechnet und eh existiert, hast Du sicher Recht.Wenn es aber nur den Wert aus Tasmota nimmt und woanders hinschreibt, kann man es auch direkt im Alias machen.
Auch JSON auseinandernehmen (z.B. bei MQTT) ist mit den Konvertierungsfunktionen kein Problem.
Dann stehen die Ergebnispunkte hat inalias.0und nicht in0_userdata.0.
Da haben sich mein POST und Dein EDIT gerade überholt

@codierknecht Ja habe ich gerade ergänzt. Das muss der Mensch selbst wissen, sonst ist Alias sicher eine elegante Lösung.
-
@mickym sagte in Wie Datenpunkt mit Dezimalpunkt formatieren ?:
Nun nachdem er aber eh schon den Datenpunkt mit Blockly schreibt, ist das dann aber auch kein Vorteil. ;)
Doch - spart Script ;-)
Und wenn der Alias als string angelegt ist, kann er auch gleich formatierenval.toFixed(1)@codierknecht Ich hab gerade aber nochmal die Definition nachgeschaut. bei toFixed bekommst Du aber keine 1000der Trennzeichen hin, aber ich hab noch eine andere Funktion für den Alias gefunden: ;)

also hiermit:
val.toLocaleString("de-DE")wird eine Zahl in deutsches Format (String) konvertiert mit 1000der Punkt und Dezimalkomma.

Man kann sogar die Opitionen nutzen - also wenn man bei Ganzzahlen trotzdem eine Dezimalstelle haben will, dann schreibt man:
val.toLocaleString("de-DE",{"minimumFractionDigits":1})
Hier ein Verweis auf die Formatierungsmöglichkeiten: https://www.w3schools.com/jsref/jsref_tolocalestring_number.asp
-
@codierknecht Na wenn ich obigen Befehl noch in den aktualisiere Block eingebe - machte den Kohl nicht fett.

Da ist ja dann der Alias nun wirklich keine Ersparnis. ;)- Zudem der originale Wert wahrscheinlich dann eh im sonoff - Adapter liegt und dieses Blockly vielleicht nur für die Ausgabe gemacht wurde.
Aber ich gebe Dir natürlich Recht, wenn er das Blockly nur wegen der Anzeige gemacht hat, dann kann er auch ein Alias mit Konvertierfunktion nutzen. ;)
Ich habe mit dem gezeigten JSONata-Ausdruck die gewünschte Formatierung weitgehend realisieren können.
Nur die Ausgabe ohne Nachkommastellen und ohne Einheit "W" habe ich bei der 5-stelligen Zahl nicht hinbekommen trotz einiger Modifikationen im "#.##0,0 W".
Dennoch kann ich mit dem Erreichten leben.
Danke sehr.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden