question

4711austria avatar image
4711austria asked

Mqtt - Beschreibung aller Datenpunkte?

Hallo,

gibt es eine Doku zu den Parametern die gepublished werden? ich kann nichts finden.

Danke

MQTT
7 comments
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

d-ferdi avatar image d-ferdi commented ·
hallo,

normalerweise enthaelt der name alle informationen, die du brauchst.

lediglich bei einigen werten waeren weiteres informationen sinnvoll, vor allem wenn es sich um einstellungen handelt, die man ueber die remoteconsole aendern kann. aber auch das kann man herrausfinden.

also ich hatte keine probleme, die benoetigten werte zu finden.

tschuess

0 Likes 0 ·
4711austria avatar image 4711austria d-ferdi commented ·
so einfach empfinde ich es nicht, die Namen sagen mir teils gar nix und dann steht eine Zahl dahinter, was soll die bedeuten?


Bps. ich suche den Parameter den MP2 von Aus auf nur Battladen und umgekehrt zu stellen, kA wo sich der im Baum versteckt, wie der Pararmeter heißt und welche Werte ich dazu setzen muss.

0 Likes 0 ·
d-ferdi avatar image d-ferdi 4711austria commented ·

hallo,

das ist das topic: /vebus/276/Mode

tschuess

0 Likes 0 ·
4711austria avatar image 4711austria d-ferdi commented ·
OK, danke, der Wert 4 steht bei mir dann für Aus oder nur Ladegerät...

das ist noch unbefriedigend, ich brauche eine Beschreibung

0 Likes 0 ·
Show more comments
1 Answer
4711austria avatar image
4711austria answered ·

vebus/276/mode ist der Mode vom MP2

unter Node Red am Cerbo wird er so angefragt bzw. auch verändert und es funktioniert:

bildschirmfoto-2024-02-08-um-083347.png

bildschirmfoto-2024-02-08-um-082742.png

.

.

wenn ich über Mqtt (aus ioBroker) diesen verändern möchte, wie muss ich im Node-Red am ioBroker den Befehl dazu absetzen ?

Ich schreibe direkt zum Cerbo Mqtt Master auf R/vebus/276/mode eine Zahl? W/... sollte es eigentlich sein, aber klappt auch nicht.

bildschirmfoto-2024-02-08-um-083225.png

bildschirmfoto-2024-02-08-um-083259.png

bildschirmfoto-2024-02-08-um-083305.png


10 comments
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

d-ferdi avatar image d-ferdi commented ·

hallo,

probier es mal mit dem button (du wirst die payload falsch uebergeben):

[

{

"id": "501ef42e70e037c4",

"type": "ui_button",

"z": "ef68b54de0061aed",

"name": "",

"group": "2c0795883fb08098",

"order": 15,

"width": 0,

"height": 0,

"passthru": false,

"label": "button",

"tooltip": "",

"color": "",

"bgcolor": "",

"className": "",

"icon": "",

"payload": "{\"value\":3}",

"payloadType": "json",

"topic": "topic",

"topicType": "msg",

"x": 530,

"y": 60,

"wires": [

[

"b23dd651ea30287e"

]

]

}

]

0 Likes 0 ·
4711austria avatar image 4711austria d-ferdi commented ·

habe deinen Code importiert

er fragt mich nach einer Gruppe - damit ich da nix falsch mache, frage ich dich

bildschirmfoto-2024-02-08-um-093058.png


hab jetzt einfach mal durchgedrückt

wie kann ich den Button mit meiner ioBroker Variable verbinden, oder wird das dazwischen eingehängt?

bildschirmfoto-2024-02-08-um-093908.png



das ist mein ioBroker Node

bildschirmfoto-2024-02-08-um-094844.png



habe aus dem ioBroker den Wert auf 4 gesetzt

bildschirmfoto-2024-02-08-um-095152.png


das wäre eine einfacher Trigger, wie soll der payload zusammengesetzt werden?

bildschirmfoto-2024-02-08-um-095526.png

0 Likes 0 ·
d-ferdi avatar image d-ferdi 4711austria commented ·
hallo,

ich habe ihn dir nur als beispiel hier hinterlegt, damit du weisst, in welchem format du die daten an den mqtt-server uebergeben musst.

du kannst auch einfach ein function-node mit diesem inhalt als erste zeile benutzen:

msg.payload = { "value" : msg.payload };

wichtig ist nur, dass der mqtt-server ein object mit diesem aufbau braucht:

{ "value" : wert }

ansonsten wird das einfach ignoriert.

wenn du einmal ein mqtt-topic mit node-red abrufst, bekommst du das auch in diesem format und auch da kann man sich mit einem function-node helfen, um an den wert zu kommen:

msg.payload = msg.payload.value;

fuer die uebergabe an den mqtt-server kannst du das auch so aufbereiten:

var MQTT = {};

MQTT.value=wert;

msg.payload = MQTT;

return msg;

wichtig ist eben nur, der mqtt-server liefert immer ein object zurueck und erwartet ein object, um einen wert zu setzen.

tschuess

0 Likes 0 ·
d-ferdi avatar image d-ferdi 4711austria commented ·
hallo,

ich habe ihn dir nur als beispiel hier hinterlegt, damit du weisst, in welchem format du die daten an den mqtt-server uebergeben musst.

du kannst auch einfach ein function-node mit diesem inhalt als erste zeile benutzen:

msg.payload = { "value" : msg.payload };

wichtig ist nur, dass der mqtt-server ein object mit diesem aufbau braucht:

{ "value" : wert }

ansonsten wird das einfach ignoriert.

wenn du einmal ein mqtt-topic mit node-red abrufst, bekommst du das auch in diesem format und auch da kann man sich mit einem function-node helfen, um an den wert zu kommen:

msg.payload = msg.payload.value;

fuer die uebergabe an den mqtt-server kannst du das auch so aufbereiten:

var MQTT = {};

MQTT.value=wert;

msg.payload = MQTT;

return msg;

wichtig ist eben nur, der mqtt-server liefert immer ein object zurueck und erwartet ein object, um einen wert zu setzen.

tschuess

0 Likes 0 ·
4711austria avatar image 4711austria d-ferdi commented ·
ich habe noch nicht verstanden, wohin man seinen payload schreibt,

welche Adresse muss ich dazu beschreiben?

0 Likes 0 ·
4711austria avatar image 4711austria d-ferdi commented ·

OK, aber an der payload wird es anscheinend nicht liegen.

ich kann auf W/.... schreiben, der Wert kommt an, ich kann den W/... auslesen und dann auf den Victron setzen, das funktioniert bereits, dennoch denke ich, dass ich hier mit dem Kreuz um die Kirche rumgehe.... ist das der Weg??

schreibe den Mode ganz normal als Zahl:bildschirmfoto-2024-02-08-um-103444.png

er kommt als Zahl an:

bildschirmfoto-2024-02-08-um-103231.png


und es wird gemacht.

das ist aber ein händisches rüberschieben, sollte doch in den Parametern vom Mqtt Broker möglich sein.


0 Likes 0 ·
d-ferdi avatar image d-ferdi 4711austria commented ·

hallo,

das topic ist:

W/sysid/vebus/276/Mode

wenn du das lesen willst, musst du N/sysid benutzen oder eventuell auch R/sysid.

das W bedeutet schreiben.

ich habe es zwar selbst noch nicht probiert, den wechselrichter ueber mqtt zu steuern, ausser werte zu setzen, bei denen das anders nicht moeglich ist.

warum benutzt du nicht node-red auf dem cerbo, um ueber das vebus-control den status zu aendern. du kannst dir ja die vorgabe ueber mqtt vom iobrocker holen.

ich ziehe es jedenfalls vor, die victron-geraete, wenn moeglich, lokal auf dem cerbo zu steuern und mir die vorgabewerte aus einer mysql-datenbank zu holen.

das hat auch den vorteil, dass ich eine sicherheitsroutine einbauen kann, fuer den fall dass die verbindung zur datenbank unterbrochen ist.

selbst mein steuerungsprogramm fuer die vedirect-geraete und multis enthaelt nur funktionen zum abrufen und setzen der werte, aber keinerlei regelungsfunktion. das uebernimmt ein weiteres programm, das ausschliesslich auf die datenbank zugreift.

dadurch kann ich das regelungsprogramm auch aendern oder neu starten, ohne die datenerfassung zu stoeren.

tschuess

0 Likes 0 ·
4711austria avatar image 4711austria d-ferdi commented ·
vom Cerbo die ioBroker Variable einlesen, die müsste dann vorher von einem Mqtt gepublished werden, das ist im Prinzip was ich ja mache, auf W/... schreiben, das hat aber keinerlei Funktion - so scheints - im Cerbo Mqtt Broker. Ich kann dann wie oben beschrieben, dieses W/... wieder manuell auslesen und dem Victron übergeben. Das W/... scheint nicht zu funktionieren.


Das mit der Datenbank ist schön, wenn man weiß wie das funktioniert, sicher gut, ich habe leider kA wie das geht.

auch ich muss noch einen Failsafe einbauen, wenn die Battiedaten nicht mehr gepostet werden, dann fällt die Mqtt Batterie aus dem Cerbo BAT raus, wird inaktiv, da sollte was möglich sein über das ESS dann die Ladung zu stoppen meine ich, ist dir da was bekannt?

0 Likes 0 ·
d-ferdi avatar image d-ferdi 4711austria commented ·
hallo,

wenn du den wert ueber mqtt ausliest und direkt an das vebus-node schickst, bekommst du immer eine fehlermeldung, weil das vebus-node eine zahl als eingabe erwaertet, vom mqtt-server aber ein object geschickt wird.

und wie ich schon mehrmals geschrieben habe, duerfte das auch der grund sein, warum es ueber mqtt nicht funktioniert!!!

es ist ein grosser unterschied, ob du den wert so uebertragst:

3

oder so:

{ "Value" : 3 }

die erste variante braucht das vebus-node, die 2. das mqtt-node!

tschuess

0 Likes 0 ·
d-ferdi avatar image d-ferdi 4711austria commented ·
hallo,

du kannst ein zahl an das vebus-node uebergeben, aber nicht an das mqtt-node.

wenn du da den wert 3 schreiben willst, sieht das so aus:

{ "value" : 3 }

alles andere wird nicht akzeptiert oder verarbeitet.

dazu brauchst du z.B. beim button nur eintragen, dass er ein object abschicken soll anstatt einen zahlenwert!

tschuess

0 Likes 0 ·

Related Resources