MQTT Daten eines Themas nach dem . kürzen
-
Hallo Community, ich habe erst vor kurzem mit dem M5 angefangen.
Mit Blockly möchte ich mir eine Anzeige zu den Einzelzuständen von VenusOS (Victron) bauen. Das klappt soweit auch schon ganz gut. Allerdings habe ich bei einem Thema das Problem dass hier teilweise eine sehr lange Zahl zurückkommt. Vier stellen vor dem Punkt und dann bis zu 14 Stellen nach dem Punkt. Es kommen auch noch andere Zeichen mit, welche ich schon entfernen konnte. Aber mit den Zahlen nach dem Punkt komme ich nicht klar und das sprengt mir natürlich die Anzeige auf dem kleinen Display vom M5Core.
Hier mal ein Beispiel der Daten, welche ich über MQTT zu dem einem Thema erhalte: {"value":3190.0000047534704}
Die geschweiften Klammern und das "value" habe ja ich bereits entfernen können. Nur die Zahlenkette nach dem . noch nicht. Egal was ich probiere ich komme einfach nicht weiter.
Aktuell sieht die Abfrage für den spezifischen Wert so aus:
Mit "Reduce x to 0 decimal places" habe ich auch schon herum probiert, aber da komme ich auch nicht klar bzw. passiert erst gar nichts. Oder es würde sogar funktionieren und ich bin nur zu blöd es korrekt einzuflechten.
Ich hoffe dass mir jemand helfen kann...
Danke und Grüße
Uli -
@stacky4home said in MQTT Daten eines Themas nach dem . kürzen:
Mit "Reduce x to 0 decimal places" habe ich auch schon herum probiert, aber da komme ich auch nicht klar bzw. passiert erst gar nichts. Oder es würde sogar funktionieren und ich bin nur zu blöd es korrekt einzuflechten.
Ich hoffe dass mir jemand helfen kann...
Danke und Grüße
Uliwürde „in int konvertieren“ helfen?
would "convert to int" help?
-
Also wenn ich es so probiere:
Dann werden auf dem Display überhaupt keine Werte mehr angezeigt. Auch für die anderen 4 Themen die bisher schon funktioniert haben. Es kommt aber auch kein Fehler oder ähnliches.
Das wäre der Python Code dazu:
# code block def fun_N_b827ebc61afb_pvinverter_20_Ac_Power_(topic_data): # global params print('') pv0.setText(str('PV Watt')) pv1.setText(str("%.0f"%float(topic_data))) pass
Und mit "int" klappt es leider auch nicht. Wobei ich hier leider nicht genau weiß ob ich das so richtig gemacht habe.
-
@stacky4home said in MQTT Daten eines Themas nach dem . kürzen:
Dann werden auf dem Display überhaupt keine Werte mehr angezeigt. Auch für die anderen 4 Themen die bisher schon funktioniert haben. Es kommt aber auch kein Fehler oder ähnliches.
Das wäre der Python Code dazu:Würden Sie darüber nachdenken, Themenwerte in Variablen einzugeben und vielleicht Berechnungen anhand von Variablen durchzuführen?
Would you consider to put topic values in to variables and do calculation on variables maybe?
-
Jetzt ist mir aufgefallen dass bei höheren Werten in der Abfrage für die PV Leistung die Zahl passend angezeigt wird. Und das ohne jegliche Umwandlung!? Also wie in Grafik 1 konfiguriert. Wenn der Wert unter 3kW bzw. 3000 Watt sinkt, werden die vielen Nachkommastellen wieder angezeigt.
Jetzt frage ich noch die Spannung in V ab und hier kommt es auch zu diesen vielen Nachkommastellen. Siehe die Beispielfotos.
-
@robski said in MQTT Daten eines Themas nach dem . kürzen:
@stacky4home said in MQTT Daten eines Themas nach dem . kürzen:
Dann werden auf dem Display überhaupt keine Werte mehr angezeigt. Auch für die anderen 4 Themen die bisher schon funktioniert haben. Es kommt aber auch kein Fehler oder ähnliches.
Das wäre der Python Code dazu:Würden Sie darüber nachdenken, Themenwerte in Variablen einzugeben und vielleicht Berechnungen anhand von Variablen durchzuführen?
Would you consider to put topic values in to variables and do calculation on variables maybe?
Das verstehe ich so leider nicht. Da bräuchte ich wohl mal ein Beispiel dazu. Entschuldigung, aber ich bewege mich da vom Wissen her nur an der Oberfläche.
-
@stacky4home said in MQTT Daten eines Themas nach dem . kürzen:
Jetzt ist mir aufgefallen dass bei höheren Werten in der Abfrage für die PV Leistung die Zahl passend angezeigt wird. Und das ohne jegliche Umwandlung!? Also wie in Grafik 1 konfiguriert. Wenn der Wert unter 3kW bzw. 3000 Watt sinkt, werden die vielen Nachkommastellen wieder angezeigt.
Jetzt frage ich noch die Spannung in V ab und hier kommt es auch zu diesen vielen Nachkommastellen. Siehe die Beispielfotos.Sie erstellen eine Variable für jedes Thema/jeden Sensorwert, setzen (verschieben) diesen Wert dann in eine Variable und können von dort aus mit Variablen arbeiten/rechnen, nicht mit rohen Themen/Sensorwerten
You create variable for every topic/sensor value, you then set (move) this value in to variable and from there you can operate/calculate on variable not on raw topic/sensor value
example:
-
Entschuldigung für meine doofen Fragen, aber ich komme auch da leider nicht ganz mit...
Ich habe es jetzt bis hier hin nachgebaut und komme an den leeren Stellen bzw. bei denen mit den ??? nicht weiter. Wo bekomme ich fehlenden Dinge her?
Ich kann mich nur noch mal dafür entschuldigen wie wenig ich über das Thema weiß und deshalb so blöde Fragen stelle. Sorry!
-
try to set variable in mqtt subscribe then use it in function
Versuchen Sie, eine Variable in mqtt subscribe zu setzen und sie dann in der Funktion zu verwenden
Eigentlich gibt es keinen Grund, sich zu entschuldigen, es ist eine Lernkurve, in Uiflow2 können Sie zur „Projektzone“ gehen und Beispielprojekte importieren ...
-
Danke für deine Geduld! :-)
Leider klemmt es immer noch. Ich denke meine Variablen sind nicht funktionsfähig. Ich konnte viele Felder anhand deiner Vorlage leider nicht füllen, da ich gar nicht weiß wo ich die fehlenden Infos herbekomme.
An der Anzeige auf dem M5Stack hat sich erst mal nichts weiter verändert. Die Ausgabe für Volt hat nach wie vor noch 14 Nachkommastellen. Ist aber denke ich auch klar, da ich ja die Variablen nicht korrekt zusammen habe.
Daher wäre ich für jeden Hinweis dankbar, wie ich diese 14 Nachkommastellen weg bekomme.
Danke und Grüße