NEWS
MQTT - Victron Cerbo Werte in Datenpunkt ohne "value"
-
Hallo zusammen!
Ich bin recht neu in der ioBroker-Welt und habe so ziemlich als erstes meinen Victron-Cerbo per MQTT eingebunden. Werte kommen rein.
Leider habe ich in den Datenpunkten mehr als ich haben möchte wie z.B.
{"value": 61.20000076293945} oder {"value": "Akku"}Ich möchte aber nur den reinen Wert.
Hab ich hier ein Fehler in der Adapterconfig oder wie bekomme ich es hin?Kann mir hierzu jemand helfen?
Danke -
@odie sagte in MQTT - Victron Cerbo Werte in Datenpunkt ohne "value":
Hab ich hier ein Fehler in der Adapterconfig
Eigentlich nicht!
wenn der Cerbo das so als JSON sendet musst du es selber zerlegen.
Oder kannst du es vielleicht am Cerbo konfigurieren?
-
@odie Du kannst einen Alias erstellen und den Wert extrahieren, wenn Du den Wert einzeln haben willst. Ansonsten wenn Du NodeRed als Logikmaschine nutzt habe ich auch einen Subflow, der Dir Objekte in einzelne Datenpunkte zerlegt.
-
@homoran Hi!
Ich hab im Menü des Cerbos nichts gefunden. Victron-Doku und Google gaben auch nichts her. Ist scheinbar fix. -
@odie ich nutze modbus tcp und kein MQTT bei Cerbo. kann dir dann nicht weiterhelfen.
-
@mickym D.h.? Ich muss mir nun User-Datenpunkte bauen und die Werte mit Scripten und RegEx zusammenbauen und in meinen User-Datenpunkten zu speichern?
Ne oder?Schön wäre sowas am MQTT-Adapter einstellen zu können, bevor die Datenpunkte gefüllt werden
Gut ist nicht.
Mit NodeRed habe ich (noch) keine Erfahrung.
Wäre es damit schneller/besser umzusetzen? -
@odie JSON Objekte sind ein super Mittel, um Daten zu übertragen (man kann dann nämlich mehrere zusammengehörige Werte gleichzeitig übertragen) und man braucht auch nicht immer eigene Datenpunkte. Es ist auch nicht immer von Vorteil einzelne Datenpunkte zu haben, zum Beispiel wenn man mit diesen Werten was rechnen oder prüfen muss). Einen Alias Datenpunkt legst du unter alias.0 und verlinkst ihn mit dem originalen Datenpunkt im Mqtt.
Im Alias Datenpunkt hast du eine Konvertierungs Funktion zum Lesen.
Im Fall von {"value": 61.20000076293945} gibst du einfach ein:
JSON.parse(val).value
-
-
@mickym Ah, cool. Versuche ich gleich mal und informiere. Danke schön
-
@mickym
Funktioniert; supi
Nun ist es Fleißarbeit die (gefühlt) 300 Punkte als Alias anzulegen. Bin noch nicht im Klaren welche genau ich benötige.Vielleicht wäre diese Möglichkeit mit "JSON.parse(val).value" doch eine gute Erweiterung für den Adapter, dann
hätte man einiges manuelles Doing mit einem Alias weniger.
Kann man Verbesserungsvorschläge irgendwo einkippen?@paul53
Danke für den Tipp. Zur Zeit berechne ich einiges per Script was ich jetzt auch über den Alias mal versuche.
Macht es ggf. nicht übersichtlicher aber die Systemlast wird bestimmt weniger.Danke an euch
-
@homoran
Habe ich auch eingerichtet aber leider zickt´s.
Die Empfehlung von Victron ist auch MQTT zu nutzen. Außerdem hat man einiges mehr an Daten.
Ob man die Daten braucht steht auf einem anderen BlattAber danke für den Hinweis; evtl. hilft es ja auch anderen die in diesen Post lesen.
-
@odie Nochmal - es ist manchmal sinnvoll die Werte in einem Objekt zu halten. Alles in einzelne Datenpunkte zu zerlegen ist Käse und auch wenn Du Dich vielleicht nicht mit Node Red beschäftigen möchtest - manche nutzen auch nur meinen Subflow: https://forum.iobroker.net/topic/43856/json-oder-javascript-objekt-in-iobroker-datenpunkte-zerlegen
Mit dem Flow kannst du auch ganze mqtt-Bäume in Einzelpunkte zerlegen - auch wenn ich nicht glaube, dass das sinnvoll ist - aber wer eben einzelne Datenpunkte bevorzugt, dann ist es halt so.
-
Ich bin ja offen für Neues drum bin ich bei ioBroker gelandet
Die Seite habe ich mir durchgelesen und ohne es jetzt umgesetzt und getestet zu haben aber vom Lesen her würde ich sagen
"Das ist ja einfach". Geh ich mal an.Bin halt noch neu in der ioBroker-Welt und kenne nur wenige von den vielen Möglichkeiten.
Aber dank euch hab ich schon wieder einiges an Wissen mehr.1000 Dank dafür
-
@odie sagte in MQTT - Victron Cerbo Werte in Datenpunkt ohne "value":
aber leider zickt´s.
bei mir nicht.
helfe dir in einem andeten Thread gerne.