NEWS
Victron CerboGX MQTT ioBroker
-
Hallo zusammen,
brauche mal euren Rat
Ich sende Daten an den ioBroker
Da ich es nicht im "root" sondern in Verzeichnissen haben möchte, muss ich mehrere "MQTTout" benutzen
Gibt es einen einfacheren Weg?
Ich habe es Versucht hier ein "tropic" einzutragen
z.B. "PV-Anlage/CerboGX/"
Dann wird jedoch nur ein Wert übertragenDanke für eure Unterstützung
Gruß
Jürgen -
@derauge Du könntest mit einer Function-Node einfach einen Prefix vor das Topic setzen.
msg.topic = `dein/prefix/${msg.topic}`; return msg;
(das klappt natürlich nur, wenn die VenusOS-Nodes etwas liefern, was man dort einsetzen könnte. Zeig gerne mal ein komplettes msg-Objekt was rein kommt).
-
@haus-automatisierung sagte in Victron CerboGX MQTT ioBroker:
msg.topic =
dein/prefix/${msg.topic}
; return msg;Super, das hat mir gefehlt
Das Ergebnis sieht nun so aus:
Hier wurde der Name (Node Lable) angepasst. (bei allen 3 Quellen)
Im "Function-Note" wird das Verzeichnis ergänzt
Dann geht es zum ioBroker
Dort wird es nun im Unterverzeichniss eingetragenDanke für deine Unterstützung
-
Das ganze sieht nun etwas aufgeräumter aus
-
@haus-automatisierung sagte in Victron CerboGX MQTT ioBroker:
@derauge Du könntest mit einer Function-Node einfach einen Prefix vor das Topic setzen.
msg.topic = `dein/prefix/${msg.topic}`; return msg;
(das klappt natürlich nur, wenn die VenusOS-Nodes etwas liefern, was man dort einsetzen könnte. Zeig gerne mal ein komplettes msg-Objekt was rein kommt).
Bekomme leider nun Fehlermeldungen
Invalid JSONata expression: The right side of the "+" operator must evaluate to a number
Was hat sich geändert, der Fehler war am Anfang nicht vorhanden.
Gruß
Jürgen -
vergiss diese function nodes. mach mit change nodes ein sauberes topic davor, nutze eine join node, um sauber ein objekt zu erstellen und dann bilde die summe mit jsonata. kannst wenn das topic nicht brauchst, aber ein unterschiedliches topic aus den blauen nodes kommt, kannst du das objekt auch direkt aufsummieren
-
@derauge sagte in Victron CerboGX MQTT ioBroker:
Invalid JSONata expression: The right side of the "+" operator must evaluate to a number
Und wenn so eine Fehlermeldung kommt, dann hat, halt eine Node nichts oder keine Zahl ausgespukt. Dann kannst Du das ggf. mit einer Switch Node rausfiltern.
-
@derauge Und aufgräumter, wenn man einen Flow in eine Function NOde packt, dann kann man sich eigentlich NodeRed sparen.
Da sieht man ja wahnsinnig viel, was der Flow macht.
-
So macht man das ohne function Nodes:
und ein Beispiel, wie man unerwünschte (Nicht-Zahlen) herausfiltert
Aber Du kannst das natürlich auch gerne wieder mit einer function Node codieren.