NEWS
Mqtt zum Victron Cerbo GX ?
-
@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.
-
@mickym schon klar wie es sein soll, ich hinke da an der Umsetzung wieder, dh welche nodes, wie einlesen, wie den String zusammenbauen usw. um den fertigen dann als payload anzuhängen, sowie es gefordert ist
-
@humidor Ja nochmal - gehe halt mal Schritt für Schritt vor. Dieses Teil hier woher hast Du das - das kannst Du doch schon mal in den Kontext kippen.
Remove die Pfeile - - wie es in der Anleitung steht - dann hast Du doch schon ein fertiges Objekt
-
@mickym woher, vom Battery Node nehme ich an, was bedeutet in den Kontext kippen?
diesen würde ich nehmen zum auslesen der aktuellen Batterie Informationen:
diese file als Vorlage kann ich schon nehmen, aber wie kriege ich die Werte verändert?
-
@humidor Wie gesagt kopiere Dir das Teil da unten in einen Texteditor entferne die Pfeile und packe es in eine Inject Node - dann schreibst Du es in den Kontext und wir sehen weiter.
Steht doch in dem Bild - ich habe es grün markiert - machen!!!
-
@mickym ja ja schon verstanden, bin ja schon dabei, hab mir den notepad++ geholt, ändere jetzt
-
@humidor sagte in Mqtt zum Victron Cerbo GX ?:
@mickym ja ja schon verstanden, bin ja schon dabei, hab mir den notepad++ geholt, ändere jetzt
und wenn Du das Ganze dann noch in CodeTags hier postest mach ich mit ...
-
{ "Dc": { "Power": 321.6, "Voltage": 52.7, "Current": 6.10, "Temperature": 23 }, "InstalledCapacity": 200.0, "ConsumedAmphours": 74.5, "Capacity": 125.5, "Soc": 63, "TimeToGo": 43967, "Balancing": 0, "SystemSwitch": 0, "Alarms": { "LowVoltage": 0, "HighVoltage": 0, "LowSoc": 0, "HighChargeCurrent": 0, "HighDischargeCurrent": 0, "HighCurrent": 0, "CellImbalance": 0, "HighChargeTemperature": 0, "LowChargeTemperature": 0, "LowCellVoltage": 0, "LowTemperature": 0, "HighTemperature": 0, "FuseBlown": 0 }, "Info": { "ChargeRequest": 0, "MaxChargeVoltage": 55.2, "MaxChargeCurrent": 80.0, "MaxDischargeCurrent": 120.0 }, "History": { "ChargeCycles": 5, "MinimumVoltage": 40.8, "MaximumVoltage": 58.4, "TotalAhDrawn": 1057.3 }, "System": { "MinVoltageCellId": "C3", "MinCellVoltage": 3.392, "MaxVoltageCellId": "C15", "MaxCellVoltage": 3.417, "MinTemperatureCellId": "C2", "MinCellTemperature": 22.5, "MaxTemperatureCellId": "C9", "MaxCellTemperature": 23.5, "MOSTemperature": 23.5, "NrOfModulesOnline": 0, "NrOfModulesOffline": 0, "NrOfModulesBlockingCharge": 0, "NrOfModulesBlockingDischarge": 0 }, "Voltages": { "Cell1": 3.201, "Cell2": 3.202, "Cell3": 3.203, "Cell4": 3.204, "Cell5": 3.205, "Cell6": 3.206, "Cell7": 3.207, "Cell8": 3.208, "Cell9": 3.209, "Cell10": 3.210, "Cell11": 3.211, "Cell12": 3.212, "Cell13": 3.213, "Cell14": 3.214, "Cell15": 3.215, "Cell16": 3.216, "Cell17": 3.217, "Cell18": 3.218, "Cell19": 3.219, "Cell20": 3.220, "Cell21": 3.221, "Cell22": 3.222, "Cell23": 3.223, "Cell24": 3.224 }, "Balances": { "Cell1": 0, "Cell2": 0, "Cell3": 0, "Cell4": 0, "Cell5": 0, "Cell6": 0, "Cell7": 0, "Cell8": 0, "Cell9": 0, "Cell10": 0, "Cell11": 0, "Cell12": 0, "Cell13": 0, "Cell14": 0, "Cell15": 0, "Cell16": 0, "Cell17": 0, "Cell18": 0, "Cell19": 0, "Cell20": 0, "Cell21": 0, "Cell22": 0, "Cell23": 0, "Cell24": 0 }, "Io": { "AllowToCharge": 0, "AllowToDischarge": 0, "AllowToBalance": 0, "ExternalRelay": 0 } }
ich entferne jetzt noch alle Werte oder ?
-
@humidor NEIN - wir machen jetzt ein paar Übungen - OK?
-
@mickym Ja bitte!