MQTT Werte ohne "value" in Virtual Device

Hallo zusammen,

ich habe mir eine kleine Solaranlage gebaut und versuche gerade die Victron GX Werte über MQTT abzufragen. Ich bekomme diese auch aber leider schreibt der Victron die Werte immer so in den MQTT Broker: {“value”: 27.450000762939453}

Somit kann ich diese nicht einfach in einem Virtual Device anzeigen lassen. Gibt es einen Trick wie ich die Angabe in eine reine Zahl umwandeln kann? Leider kann ich an der Ausgabe vom Victron nichts ändern. Ich würde die 5-6 Werte die ich brauche einfach mit einer Regel oder einem Script umwandeln… das übersteigt aber meine aktuellen Fähigkeiten

Ich bin um jede Hilfe dankbar!

Hast du AdvancedFlow? Wenn ja. dann hast du im Logik-Bereich Aktionskarten zum Lesen eines Feldes aus einem JSON-String.
Dein Inhalt {…} ist dabbei der JSON String. “value” ist der Feldname.

Beispiel kann ich später zeigen, am Handy kann ich das nicht zeigen :smile:

Bei dieser rechnung rundest du auf ganze zahlen. Wenn Sie beispielsweise ,0 in ,2 umwandeln, wird auf 2 Dezimalstellen gerundet

{{round([tag_from_mqtt] ,0)}}

Hier das AdvancedFlow Beispiel. Mit normalem Flow get das nicht, weil man dafür mehrere Aktionen “verketten” muss…

Ich nehme an, den Wert hast du bereits mit dem MQTT-Client vom Broker gelesen, oder?

Dann nimmst du anschließend diese Karte:

grafik

Als erstes Tag fügst du das Ergebnis des MQTT-Client-Events ein. Das enthält den JSON-String.
Als Pfad gibst du “value” an.
Die Karte liefert ein Ergebnis-Tag, das du in ein virtuelles Gerät übernehmen kannst.

Danke Ronny,

es hat funktioniert und war so einfach :sweat_smile: Zum Glück habe ich nicht 5h versucht es selber hinzubekommen… schicke mir privat deine PayPal Adresse, für die Hilfe bekommst du eine Kiste Bier bezahlt :+1:

Danke, aber nicht dafür :slight_smile:
Dafür ist das Forum doch da.

Kann mir nochmal @RonnyW oder jemand anderes helfen.

Wie bekomme ich aus dem MQTT Jason der Wert power vereinzelt für einen virtuellen Sensor?

{“sn”:{“Time”:“2023-04-18T20:24:21”,“Main”:{“power”:11616,“counter”:26420.040}},“ver”:1}

Danke Euch!

Probier mal als Pfad “sn.Main.power”
Das heißt übrigens JSON (JavaScript Objekt Notation).