NEWS
MQTT Topics als Datenpunkt statt als Variable empfangen
-
Hallo,
ich lese aktuell die Daten meines Cerbo (Victron) per MQTT aus.
Dabei erhalte ich meine gewünschten Werte über den MQTT Adapter als Client.Beispielsweise möchte ich SOC der Batterie auslesen, welcher einen Wert von 49% hat.
Als Ergebnis meiner MQTT Anfrage erhalte ich folgendes:Hier steht {"value":49} als Variable.
Ich hätte aber gerne einen Datenpunkt als number mit dem Wert 49.Das hätte ich mir so zusammengebaut und scheint auch zu funkioneren.
on({id: "mqtt.1.N.b827eb547105.battery.512.Soc", change: "ne"}, function (obj) { inhalt = JSON.parse(getState(id).val); setState("0_userdata.0.Pylontech_SOC_täglich_log", parseFloat(inhalt.SML.Total_in), true); });
Meine Frage wäre nun:
Welches wäre das beste Vorgehen um Daten per MQTT direkt als Zahl zu erhalten?
Muss ich ein Skript laufen lassen oder geht das irgendwie direkt?
Der Datenpunkte sollte sich ändern wenn sich tatsächlich der MQTT Wert ändert und nicht städig falls der gleiche Wert empfangen wird (um Resourcen zu sparen)Danke und Grüße
-
-
@paul53
Danke für die Rückmeldung.
Wenn ich auf Alias klicke kommt bei mir eine leere Seite!?!Könntest Du mir das Vorgehen bitte noch etwas genauer beschreiben?
Ich bekommen den Datenpunkt "mqtt.1.N.b827eb547105.battery.512.Soc" als String und möchte den Datenpunkt entweder direkt als Wert oder als Datenpunkt "0_userdata.0.Pylontech_SOC_täglich_log" als Wert.Aktuell verwende ich mehrere Blockly zur Weiterverarbeitung.
Mit Skripten habe ich bisher nicht gearbeitet. Wie und wo füge ich den Quellcode passend ein und
wann wird dieser ausgeführt? -
-
Hi,
Nur aus Interesse, warum nimmst du nicht dem Modbus Adapter. Da liegt, so wie du es willst direkt nur die Zahl im Datenpunkt. -
@linedancer
das hätte ich auch schon überlegt.
Damit kenne ich mich aber auch nicht gut aus.Für MODBUS TCP müsste ja eine Lan Anbindung reichen, oder?
Ich habe auch schon einige Threads dazu gefunden, aber was mir noch fehlt ist eine einfache Anleitung für die richtigen Parameter des Adapters.
Hätte folgendes eingtstellt, aber es kommt das orange Dreieck:Was müsste ich in welche Register hinzufügen um die Daten z.B. für SOC zu bekommen?
-
@haubada
Habe es mit modbus hin bekommen und der Liste auf: