NEWS
Mqtt zum Victron Cerbo GX ?
-
@humidor Gut - Du siehst am Anfang ist es bissi schwer - aber mit der Zeit wird das schon. Das mit der Inject Node ist halt ein tolles Feature weil du so mit fiktiven Daten arbeiten kannst und später dann durch reale Daten ersetzen kannst.
So nun veränderst Du mit der ChangeNode noch die übrigen 2 Werte.
Setze mal Voltage auf 60.9 und Current auf 10.1. Du kannst in der Change Node einfach weitere Regeln hinzufügen, in dem du das + drückst.
-
@mickym so?
-
@humidor Ja aber mit dem richtigen Pfad und den richtigen Datentypen
-
@mickym klar, gemacht, funktioniert
-
@humidor Gut nun weißt Du also prinzipiell was ein Objekt ist und wie man auf einzelne Eigenschaften in einem Objekt zugreifen kann. Das werden wir alles noch verfeinern. Nun speichern wir dieses Objekt erst mal in einer Variablen, damit wir das jederzeit wiederholen können. Das entspricht also dem Blockly
Wir werden also mal dieses Objekt in einer Variable "batterie" speichern. Es gibt Variablen die haben Gültigkeit in einem Flow und welche die haben globale (also in allen Flows Gültigkeit).
Um das zu machen speichern wir die payload Eigenschaft das Nachrichtenobjekts mit einer weiteren Change Node in einer Flowvariablen batterie.
Und natürlich immer Inject drücken, wenn Du fertig bist.
-
@mickym warum behalten wir das erste Change mit den 3 fixen Werten?
habs gemacht -
@humidor Das sind alles Beispiele - später kannst du das alles mit realen Werten nutzen, wir könnten es auch wegschmeissen. Aber Du musst doch lernen, wie man Werte ändert auf Objekte zugreift. Das kann ein Puzzle-Fan nicht, da dort Blöcke und JSON via Text zusammengeschustert werden. -
Gut zurück zum Thema - wenn Du das gemacht hast, dann kannst Du dir den Inhalt der Variablen jederzeit im Kontextmenü anschauen musst, aber immer die Refresh Taste drücken, das aktualisiert sich nicht selbst.
Das Kontextmenü erreichst Du wenn du auf den Pfeil klickst.
Im Flow-Kontext siehst Du dass Deine payload-Eigenschaft in der Flow Variable batterie gespeichert wurde.
-
@mickym kannst schon einen Zahn bei mir zulegen
wo ist das Kontextmenü? - wollte ich grad fragen, aber den Pfeil finde ich nicht?
ahh rechts aktualiseren, ja jetzt is es da -
@humidor sagte in Mqtt zum Victron Cerbo GX ?:
@mickym kannst schon einen Zahn bei mir zulegen
Na scheint mir nicht so - der Pfeil ist rechts oben neben der Wanze
-
-
@humidor sagte in Mqtt zum Victron Cerbo GX ?:
@mickym kannst schon einen Zahn bei mir zulegen
wo ist das Kontextmenü? - wollte ich grad fragen, aber den Pfeil finde ich nicht?
ahh rechts aktualiseren, ja jetzt is es daGut in einer Variable kannst Du also direkt die Werte ändern und müssen nicht im Nachrichtenobjekt vorhanden sein - das ist quasi der Zustand deiner virtuellen Batterie.
-
@mickym Was Du vorher am payload Objekt gemacht hast, machen wir nun direkt an Deiner Variable Batterie.
Dazu erstellst Du mal 3 Inject Nodes - eine für Power, Voltage und Current.
Ich empfehle Dir das Topic mit zu nutzen, da Du nun gleich siehst, welchen Wert die Inject Node enthält.
Sollte dann so aussehen.
-
@mickym ok
-
@humidor Auch im Kontext kannst Du den Pfad kopieren:
Dc.Power
Du bekommst dann aber nur den Pfad innerhalb der Variablen. Du musst also batterie noch vorne dran setzen.
batterie.Dc.Power
Du beschreibst also nun mit der payload der Inject Nodes direkt die Werte in der Variablen batterie.
Das machst Du mit allen 3 Inject Nodes - und überprüfst dann immer im Kontext, ob Du die Variablen richtig geändert hast.
-
-
@humidor Ja und nun noch so verbinden, wie ich in meinem Screenshot gezeigt habe,
-
-
@humidor Genau - und wenn Du jede Inject Node einzeln betätigst, solltest Du nun den Inhalt der flow Variable entsprechend ändern. Funktioniert das?
Wenn Du später mal verschiedene Werte nur kurz testen willst brauchst Du nicht jedesmal die Inject Node die payload ändern und deployen - sondern kannst einfach einen neuen Wert rein schreiben und innerhalb der Inject node auf Inject Node drücken.
-
@mickym ja, ich muss nur immer aktualisieren drücken und dann wieder den baum öffnen um es zu sehen
-
@humidor Ja - aber das tut ja der Funktionalität keinen Abbruch. Wenn das also funktioniert, kannst Du parallel zur Inject Node nun reale Werte in die batterie Variable schreiben.
Wenn Du soweit bist dann sag woher Du "reale" Werte her nimmst?