Hallo, ich versuche ein Balkonkraftwerk als PV Inverter in der nenus os übersicht einzubinden.
bekomme es aber leider nicht hin.
Dazu benutze ich das Plugin venus-os_dbus-mqtt-pv von mr-mauel und die viedoanleitung Victron DIY Guide Teil 6 von meintechblog Victron DIY-Guide Teil 6 – PV-Inverter in Venus OS integrieren - meintechblog.de .
Zur Ausgangssituation
Ich bekomme die Werte über mqtt erstmal in meine Smarthomsteuerung ip symcon die auf einer raspi läuft. Auf Dieser läuft bereits ein eigener mqtt broker.
Die Daten greife ich nun mit node-red ab, das zusammen mit venus os auf einer anderen raspi läuft.
Über mqtt in und eine funktion von jörg bekomme ich über debug auch den korrekten wert ausgegeben. der Wert ist also schonmal in node-red drin.
über mqtt out wird der wert aber scheinbar nicht nach venus os geschickt.
Es wird einfach kein inverter angelegt.
Mein Weg entspicht also eigentlich dem 4 nur anstatt laxone benutze ich ip symcon.
ich habe alles wie ab min. 10:37 so installiert. bekomme die confic.ini datei angezeigt. Als IP habe ich dann die eingetragen auf dem das venus os samt node-red laufen. Smarthome MQQT Broker hat eine andere IP.
in node-red im mqtt out habe ich dann ebenfalls die locale ip von venus os eingetragen mit dem passenden topic. es wird auch als verbunden angezeigt.
Der wert wird aber in Venus os nicht angezeigt.
Was ich mich frage im Video wird unter diensten mqtt on Lan (ssl) angezeigt und wenn das eingeschaltet wird erscheint noch ein zweiter reiter mit mit mqtt on lan (plaintext) bei mir gibt es allerdings nur eine reiter mit mqtt-zugang der eingeschaltet ist.
Liegt es eventuell daran?
Habe ich doch noch vergessen etwas zu instalieren?
z.B. einen weiteren mqtt Broker auf der venus os raspi?
Laut firmware ist venus os die version 3.54.
wäre super wenn mir da geholfen werden könnte.
Hallo Empty genau die datei wird im video von jörg erklärt.
Das problem konnte ich jetzt soweit eingrenzen.
Es liegt wohl daran das der Wert in ip Symvon als Float vorliegt.
Damit der Wert aber erkannt werden kann in json {“pv”: { “power”: 0.0 } } anliegen muss.
In node red bin ich aber noch komplett bluttiger Anfänger.
ich bekomme also über mqtt in eine float zahl.
gehe über eine funktion note mit der Programmierung:
// Den gewünschten Topic aus dem Namen der Funktion festlegen
var desiredTopic = node.name;
// Überprüfen, ob der Topic übereinstimmt
if (msg.topic === desiredTopic) {
// Wenn der Topic übereinstimmt, die Nachricht zurückgeben
node.status({ fill: “blue”, shape: “ring”, text: msg.payload + “W” });
return msg;
} else {
// Wenn der Topic nicht übereinstimmt, keine Nachricht zurückgeben
return null;
}
im nachgeschgalteten debug bekomme ich auch den wert als number angezeigt.
über mqtt out bekomme ich diesen wert auch in des entsprechnede topic geschrieben.
Über den mqtt exlorer sehe ich die werte in dem entsprechenden topic.
Die kette dürfte demnach also erstmal eigentlich korrekt sein.
Wie bekomme ich dann jetzt die float zahl in das json format umgewandelt?
Bitte für einen absoluten vollanfänger erklärt.
Es gibt wohl ein json node der das macht laut google gemini.
Aber was genau muss da noch eingestellt werden?
Ich habe so einen node jetzt zwischen mqtt out und der funktionnode.
Aktion ist Kovertierung JSON String <=> JS-Objekt
Eigenschaten msg.payload
dann kann man noch einen hacken für JSON_Zeichenfolge formatieren machen.
Im debug bekomme ich so den wert jetzt als string anstatt nummer angezeigt.
Aber immer noch keine PV Inverter anzeige ich Venus OS
Hallo Dieter danke für deine Hilfe.
aber da ich auf der Plattform noch komplett Ahnungslos bin, wäre super wenn du das etwas ausführlichere Erklärung könntest.
Ich möchte es ja auch verstehen was ich da eintrage und wieso.
Wo genau müsste das eingetragen werden?
Mit viel zusammenreihmen hat mir chat gpt dann doch noch helfen können.
Nach dem Funktionnode wo ich mir den Wert der über mqtt in reinkommt mit W anzeigenlasse habe ich noch ein Funktionnode mit folgender Funktion:
// Wandelt eine Float Zahl ind das JSON FORMAT { “pv”: { “power”: 0.0}} um
msg.payload = {“pv”: { “power”:
parseFloat(msg.payload) }}
return msg;
Damit bekomme ich mein Balkonkraftwerk nun auch endlich in Venus OS angezeigt.
hallo,
bei youtube gibt es sehr viele videos ueber node-red. ich habe mir da auch zuerst eines angesehen, bevor ich mich damit beschaeftigt habe. das hat mir als einstieg gereicht, du wirst dir wohl mehrere videos ansehen muessen. die sind auch fuer absolute anfaenger geeignet. es gibt sie auf verschiedenen kanaelen.
json ist ein datenformat, kein zahlenformat und ob du jetzt integer oder float an den mqtt-server oder ein victron-node schickst, ist dem egal, solange es eine zahl und kein string ist.
an den wert aus dem mqtt kommst du ganz einfach:
wert = msg.payload.value;
bei deinem beispiel waere das dann msg,payload.pv.power!
wenn du irgendwelche geraete integrieren willst, die von victron nicht unterstuetzt werden, geht das nur ueber zusatzprogramme auf dem gx! man kann die nicht einfach ueber mqtt einbinden. jedenfalls ist mir noch keine moeglichkeit bekannt. wenn ein geraet allerdings existiert, kann man es ueber mqtt mit daten fuellen.