NEWS
Mqtt zum Victron Cerbo GX ?
-
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!
-
@humidor Als erstes kopierstes Du dieses Objekt nun in eine payload - in eine Inject Node und gibst es im Debug Fenster aus.
Wenn das geklappt hat - melden. Das debug Fenster ist das mit dem Bug (Wanze)
-
@mickym hab ich
-
@humidor Gut so könntest Du also das ganze Objekt wieder mit mqtt schreiben. OK?
Nun willst Du einen Wert in dem Objekt zum Beispiel ändern. Such Dir mal einen aus.
-
@mickym wie der Inject Node oben, der schickt alle 15s die erste 3 Werte, soweit denke ich ist es klar
ändern wir diese ersten 3 Werte mit den aktuellen von der Batterie
aber die stehen da gar nicht drin??
-
@humidor Ganz langsam.
Du meinst also diese 3 gelb markierten?
-
@mickym ja, ich musste im Debug fenster noch auf object drücken, jetzt sind sie da
ja genau. -
@humidor Gut dann siehst Du (grün markiert) das ganze ist die payload - und mit den Pfeilen kannst Du weitere Objekte expandieren oder zusammenfassen (einklappen). Jeder dieser Eigenschaften hat einen Pfad - den bekommst Du wenn du im Debugfenster auf das Pfad Icon klickst und dann ist dieser in der Zwischenablage.
Wir machen das erst mal nur mit Power.
-
@mickym dieser
-
@humidor Genau:
Wenn du das geklickt hast, dann hast Du nun in der Zwischenablage folgendes stehen:
payload.Dc.Power
Das ist der Pfad oder die Adresse dieser Eigenschaft im payload Objekt. Um das nun zu ÄNDERN werden wir eine CHANGE Node verwenden und uns das Ergebnis wieder ausgeben lassen - OK?