NEWS
Mqtt zum Victron Cerbo GX ?
-
Hallo Gemeinde!
finde den Start nicht, bitte um Hilfe, ist der Cerbo ein Mosquito Server? wie müssen die Einstellungen im Adapter sein?
Besten Dank!hab mal den Adapter auf Client gestellt, im Objektbaum taucht schon was auf
ist das richtig? -
@humidor sagte in Mqtt zum Victron Cerbo GX ?:
ist der Cerbo ein Mosquito Server?
Im Standard läuft da ein MQTT-Broker, ja. Das war bisher Mosquitto, wird aber gerade durch FlashMQ abgelöst.
Sieht doch gut aus - was brauchst Du noch?
Alternativ kannst Du auch mit Node-RED auf dem Cerbo die Nodes von Victron nutzen, um Daten aus dem System an Deinen MQTT-Broker weiterzugeben.
-
@haus-automatisierung gibt es eine Möglichkeit mehr Infos autom. am Objektbaum zu bekommen
als Master ausgelesen, kann ich Nodes lesen und an Mqtt weiterleiten, das ist aber alles sehr aufwändig
-
@humidor sagte in Mqtt zum Victron Cerbo GX ?:
das ist aber alles sehr aufwändig
Ist der einzige Weg den ich kenne. Du musst ja nicht alles weitergeben. Nur das, was Dich im ioBroker auch interessiert...
-
@haus-automatisierung ok, schade, hoffte auf die autom. Erstellung eines Baumes
ich möchte mit mqtt die Batteriedaten (ausgelesen vom Gobel BMS) aus dem Cerbo in den ioBroker bringen und dann diese Daten in einen anderen Cerbo schieben.
Alles was der MP von der Batterie braucht. -
als Client wird ein Baum angelegt, allerdings nicht das was meine Konfiguration betrifft und alle Werte sind (null)
irgend was fehlt mir noch... ?? -
wichtige schritte sind:
-
zuerst im Cerbo MQTT aktivieren unter Einstellungen - Dienste
-
Mqtt Adapter im IoBroker Installieren und Client Einstellen (IP,Port,Topic)
-
Danach sollte in den Objekten unter Mqtt der Reiter "R" Auftauchen
dort muss dann beim wert keepalive ein leerer String alle 30 sec gesendet werden um den Mqtt Server aufrecht zu erhalten
-
Alle werte befinden sich danach im Reiter "N"
-
-
@adcrafter27 super, danke dir, leider wird mir der Reiter R nicht angezeigt, ich sehe N u Info
in N sehe ich jetzt vebus, keine Batterie
ich muss diesen 30s poll erstellen, kA wie ich das machen soll, Node-Red?
unter N hat er ein keep alive, denke nicht, das das der gesuchte ist
-
Ich mache das Über Node Red im IoBroker da es seit neueren ein Problem mit Mqtt gibt beim senden von zuständen an den cerbo
Zuerst musst du die Mqtt Out Node verwenden
Dort musst du dich mit den Mqtt server von Cerbo verbinden (ja du hast dich dann 2 mal verbunden, einmal Über den Mqtt Adapter und einmal über Node Red)In mqtt Node musst du nun das topic einstellen R/deine-cerbo-id/keepalive
zum schluss noch unten die 30 sec intervall einstellen und nicht vergessen alles speichern und rechts oben dann Übernahme klicken
-
@adcrafter27 besten Dank!! aber es fkt. noch nicht ganz, ich erhalte nichts vom Cerbo
hab gehört auf R gibt es Zugriffsbeschränkungen (permissions) ?
tja, davon habe ich noch nichts gefunden??hier noch meine Settings vom Mqtt
der Explorer zeigt auch nichts an
zeigt aber, dass der keepalive läuft
-
@humidor so es läuft! super !!
von der Gobel Batterie kommenn keine einzelnen Zellspannungen, das mus sich dann anders lösen.
kann man eigentlich auf all diese Werte auch schreiben?
Worum geht's, ich werde ein 2. Cerbo und einen 2. MP5 haben, das mir von einer ext. Quelle auch in die Batterie laden wird. Das Problem die Gobel Batterie BMS kann nur an ein Cerbo angeschlossen werden, dh ich möchte von einem zum anderen Cerbo die Batterieinfos übertragen, damit der MP2 über die Batterie bescheid weiß.
Hättet ihr dazu einen Ansatz bzw. Indee? Besten Dank!! -
@humidor
Das ist gut das es nun bei dir klappt.
Nein du kannst die nicht "alle" beschreiben besonders nicht die für die Batterie.
Du hättest in diesen fall ja schon das Problem das dein 2. cerbo keine Batterie angeschlossen hat und somit auch keine in MQTT bereitstellen kann.Wie ich dir schon in einen anderen Thema geschrieben habe musst du eine "virtuelle" Batterie am 2. cerbo erstellen und diese kannst du dann über MQTT mit daten füttern, bzw das Script welches am 2. Cebo die "virtuelle" Batterie erstellt verbindet sich mit einem MQTT Server welchen du im IoBroker bereitstellen musst
Zusammengefasst:
- Der IoBroker (Client) liest über MQTT den 1. cerbo aus
- Der IoBroker stellt einen weiteren MQTT Server zur Verfügung (Server)
- Mittels einem zbs. node Red Script leitest du die Daten die für den 2. Cerbo wichtig sind (Batteriedaten) vom MQTT Client an den MQTT Server weiter
- Das Script (MQTT to Dbus) am 2. Cerbo verbindet sich mit deinen IoBroker MQTT Server und liest dort deine Daten aus die du zur Verfügung gestellt hast für die "virtuelle" Batterie am 2. Cerbo
erst dann besitzt der 2. Cerbo eine "Virtuelle" Batterie die den MP2 Steuert
ob es bessere Wege gibt kann sein aber so sollte es auch klappen.
nicht vergessen viele Wege führen nach Rom, in so einen fall gibt es meist kein Richtig oder Falsch -
@adcrafter27 besten dank, ich vermute aktuell habe ich 20% Wissen das umzusetzen, aber allein schon, dass du eine Vorgangsweise darstellst, mach mich zuversichtlich.
- Daten vom Cerbo in den ioBroker per Mqtt bekommen - erledigt
- Mqtt Cliente übergibt die Daten an Mqtt Server - ich starte einen neuen Mqtt Server
kann ich aus Node-Red den ganzen Baum an den Server übergeben?
das wäre mein Ansatz jetzt, denke nicht das er funktioniert, aber ev. ein Ansatz.
-
@humidor
Nein so einfach geht das natürlich nichtDu musst nur die daten übergeben die das "virtuelle Batterie" script auch benötigt. Diese müssen dann auch das richtige Format und im richtigen Pfad liegen
https://github.com/victronenergy/venus/wiki/dbus#battery
Da musst du dann selbst weiter testen was alles genau benötigt wird, eine Batterie habe ich selbst noch nicht hinzugefügthttps://github.com/mr-manuel/venus-os_dbus-mqtt-battery/tree/master
das script muss auf den 2. cerbo und natürlich die daten zum MQTT Server von IoBroker eingeben. Dort musst du dann die passenden werte in den passenden pfaden bereitstellen als reine zahl -
@adcrafter27 Ja, am Ende! wird alles bereinigt auf das Nötigste, erstmal versuche ich den Weg zu finden. Darum mal der Ansatz "alles" zum Mqtt Master zu übergeben. Was die virtuelle Batterie jetzt braucht, weiß ich noch nicht.
OK, ev. ist der richtige Weg, das Pferd von hinten aufzäumen und die virtuelle Batterie mal erzeugen. Ich habe noch keinen 2. Cerbo, kann ich das alles mal auf einem Cerbo austesten, oder muss ich mir die 2. Umgebung mit bsp. eines Raspi schaffen? In der Beschreibung der virutellen Batterie sehe ich nur Linux Befehle zum einrichten, wie macht man das am Cerbo? kann ich mich per ssh auf den Cerbo verbinden und das System verändern?
Die Frage stellt sich gerade, soll ich hier überhaupt über einen 2. Cerbo gehen? Mein Gedanke ist es, die MP2 usw. besser ins VRM zu bringen und zu konnecten, aber das ist ja nur das Venus OS und wo es läuft doch egal? können die MP2 direkt ans Netzwerk gehängt werden, der Raspi hat ja nur ein Lan... lauter fragen.mit den Vids von Jörg habe ich einen Raspi4 mit Large Venus OS bespielt, läuft. dh das wäre eine vorhandene Testumgebung, werde dann schauen ob ich das virtuelle Batt Protokoll drauf bringe.
-
@humidor
Um alles zu testen sollte erstmals eine Test Umgebung vorhanden sein, sprich 2x cerbo oder raspberry.
den MP vom 2. cerbo brauchst du noch nicht du müsstest erstmal die batterie erstellen und die daten zwischen den cerbos austauschen das du auf beiden cerbos die Batterie hast. Erst danach würde ich weitere schritte machenob du einen cerbo und einen Raspberry zum testen nimmst ist egal. Nein der MP kann nicht direkt am Netzwerk von Raspberry angeschlossen werden dazu benötigst du noch ein MK3 zu USB Modul (aber nur beim raspberry)
Der cerbo ist auch nichts anderes als ein linux System da kannst du dich mit ssh verbinden (einfach mal Googlen wie du das freischaltest) und dort kannst du alles machen was du auch auf einen Raspberry machen kannst, soweit ich gelesen habe ist sogar im cerbo so eine art Raspberry verbaut
-
@adcrafter27 ich habe auf dem Raspi die virtuelle battery eingepflegt, denke ich mal, der service läuft, mit den Settings bin ich noch unschlüssig.
Verständnisfrage: VenusOS hat einen Mqtt Server, der läuft unter IP:1883
läuft die virtuelle Batterie unter einem anderen Server? in den Settings sind dazu einstellungen, da weiß ich nicht was ich wirklich einstellen kann:
[MQTT]
; IP addess or FQDN from MQTT server
broker_address = 192.168.0.191; Port of the MQTT server
; default plaintext: 1883
; default TLS port: 8883
broker_port = 1883der Mqtt ist verbunden, aber ich glaube das passt noch nicht
was heißt diese IP_adresse_or_FQDN ?
sollte hier die Adresse vom VenusOS Mqtt, also die IP vom Raspi
oder die Adresse von der ich abfrage, also ioBroker ?
eigentlich sollte die Mqtt Batterie auch am Cerbo auftauchen, tut sie nicht
ev. müssen da auch erst Daten gefüttert werden, dass sie auftaucht?
ich habe mal den ioBroker eingetragen IP:1886
am ioBroker einen Mqtt Server gestartet - verbunden
dh diese virtuelle Battery (Script) macht eine eigene Verbindung via Mqtt ?
aber das bringt alles noch nichts, der Faden fehlt
schaut mir danach aus, dass er 60s auf Daten wartet und dann abschaltet
denke es dreht sich alles darum, das man korrekt die Parameter beschreibt
und genau das weiß ich nicht
-
das braucht jetzt einen neuen Eintrag hier:
es hat sich was getan:
die Mqtt Batterie ist erschienen
der payload auf den enphase/battery hat es bewirkt mM
dh der ioBroker Master schreibt auf den Mqtt Battery Mqtt Slave ? -
nachdem das ja funktioniert hat, habe ich mein Cerbo angeworfen, dort im NodeRed den Mqtt Server veranlasst, auf den Mqtt Clienten des Venus OS virtual Batterie die Daten zu senden
am VenusOS virtual Batterie die Settings für den Server eingetragen
im Cerbo Node Red auf den eigenen Server die Daten übergeben auf die virtuelle Batterie
payload
und es funktioniert
dh die Aufgabe jetzt ist alle relevanten Batteriedaten in den payload zu packen
dazu benötige ich bitte Hilfe wie ich das im Node-Red zusammendrösel kann -
@humidor sagte in Mqtt zum Victron Cerbo GX ?:
dazu benötige ich bitte Hilfe wie ich das im Node-Red zusammendrösel kann
Am besten du schreibst alles in ein Kontext (Flow oder Global) und schickst dann das ganze Objekt über mqtt weg. Irgendwo musst Du Deinen Daten ja hernehmen oder festlegen.