@codeworkx vielen Dank für den Node-red flow. Ich benutzen ihn schon sehr lange und er läuft sehr gut.
mir is ein Punkt aufgefallen:
In der Node calculate solar excess / energy deficit berechnest du die remaining_energy.
verstehe ich es richtig das du ausrechnen möchtest wie viel Energie kWh noch zur Verfügung stehen?
Wenn ja müsste davon der SOC_min abgezogen werden und der Code von
(BAT_CAPACITY - (BAT_CAPACITY / 100 * SOC_MIN)) * BAT_SOC / 100; // kWh
in
(BAT_CAPACITY / 100) * (BAT_SOC - SOC_MIN); // kWh
geändert werden.
Rechnung: ein 28,8kwh Akku hat beim SOC 35% noch 10,08kwh - SOC_min 20% (5,76kwh) = 15% = 4,32 kWh verfügbar.
bei deiner Formel kommen bei den gleichen Werten 8,064 kwh raus.
oder mache ich da einen Denkfehler.
eine Frage in die Runde. Der Flow schaltet die Multiplusse ja nachts ab, um Strom zu sparen. Das ist ja ganz vernünftig, aber leider bei mir nicht komplett sinnvoll. Gerade Morgens wo Tibber ordentlich teure Preise aufruft, ist das System inaktiv. Kann man da etwas anpassen? Vielleicht eine “Mein Tag startet um xx:xx” Abfrage.
Heute Nacht wurde ja die Uhr eine Stunde verstellt und ich finde die Stelle nicht um das anzupassen - wahrscheinlich ruckelt sich das morgen automatisch ein, aber aktuell stimmen die Tibber Preise, aber die Entladung ist 1 Stunde zu spät. Ich habe nachgeschaut, der CerboGX und die VM auf der Node-RED läuft haben beide die richtige Zeit. Irgendeine Idee?
Wirklich cool, funktioniert super. Ich bin gerade dabei meine Wallbox noch sinnvoll zu integrieren um mit Überschuss zu laden und ein Laden aus dem Akku zu verhindern. Blöd, ist dass der Verbrauch im VRM Portal berücksichtig wird und auch den Forecast durcheinander bringt. Hat jemand eine Idee?
Hallo, ich versuche mich gerade in den Flow einzuarbeiten. Ich konnte erstmal alles in Betrieb nehmen (Kontakt zur VRM, Verbrauchs/Erzeugungsprognose, Preisabfrage bei Tibber), allerdings zeigt das Dashboard keinen vernünftigen Plan. Er will “sofort entladen”
In den global Settings sollte das meiste Standard sein. folgende wesentliche Anpassungen:
90 kWh speicher
avg_charging_power 22 KW
meine 3 MPPTs sind noch nicht korrekt im Flow konfiguriert.
Hat da jemand zufällig einen Tip was da schief geht? Die Version ist V1.3.6. Getestet auf 2 verschiedenen Anlagen, beide zeigen das gleiche. 2 verschiedene Cerboversionen was ja aber keinen Unterschied machen sollte.
Ich antworte mir mal selber nachdem ich im Code herumgestochert habe:
es wird nur der Zeitplan bis Mitternacht ausgegeben. Im Bild vom 2.Feb 2024 war das scheinbar noch anderst: Dort sieht man auch den nächsten Tag.
Der Flow implementiert den “Green Mode” des DESS. Nicht den Trade-Mode (PV-Direkt-Vermarktung = Einspeisung zum variablen Börsenstrompreis). Mit Entladen ist immer gemeint das der Eigenverbrauch sichergestellt wird - ich hatte stets interpretiert das ins Netz entladen wird.
Meine Anlage ist in der Direktvermarktung. Wenn ich Überschüsse zum einspeisen habe, soll das zum Höchstpreis passieren. Da das Victron-DESS im Winter im Trade-Mode viel zu aggressiv verkauft, werde ich versuchen den Flow von codeworkx für meine Zwecke zu erweitern.
Der Flow ist dafür die perfekte Basis, da der Großteil der für mich nötigen Funktionen schon in Vollendung umgesetzt sind.
Der Flow kann dir Statusnachrichten zusenden, sobald ein “Steuerbefehl” ausgegeben wird, damit du im Blick hast was gerade passiert. Hierfür kann man z.B. Pushbullet, Ntfy, E-Mail, Telegram oder andere Dienste nutzen.
Wird benötigt um entscheiden zu können, wann ein Entladen Sinn macht. Wenn du für 25 ct/kWh aus dem Netz lädst, willst du nicht beim Preis von 26 ct/kWh schon wieder entladen, da dir sonst die Umwandlungsverluste einen monetären Verlust bescheren würden.
Ich versuche zu verstehen, warum auf meinem Dashboard der discharge immer bei 24 Uhr endet. Wennich den Flow V1.3.6 importiere, wird im function node “calculate discharge schedule” der Verbrauchsprogrnose und die Solarprognose verarbeitet. Beide sind konfiguriert, das sie von “Start= Now” bis “End=end of day” Daten liefern. In der Folge werden im schedule discharge auch nur für diese Slots die Daten verarbeitet (Das Verhalten ist also korrekt)
Ich dachte…. hmm vieleicht ein Fehler, und habe versucht “Start=Beginning of day” für 48h die Verbrauchs und PV-PrognoseDaten abgeholt, dann kommt es aber zu anderen Fehlern (“current_slot == getSlotFromDate(entry.start)” scheint nur für 24 stunden geeignet zu sein.
Kurzum:
mache ich irgendeinen Anfängerfehler?
funktioniert der Import nicht fehlerfrei?
Ich sehe in allen andern Beispielbildern, das der “discharge” immer bis zum Ende des Diagramm geht, während bei mir immer am Tagesende Schluß ist.Wie ist das bei euch?
Wo liegt mein Problem ?!?
Ich habe 2 Cerbos und mehrere Sites. Überall das gleiche Problem.
Ich könnte im code herumwursteln, aber irgendwas stimmt doch bei mir nicht….
Du hast kein Problem. Discharge wird immer für den aktuellen Tag berechnet und auch bei jedem Trigger neu angeoasst, je nachdem was der Akkustand und die Prognosen hergeben.
Brauche eure Hilfe, hat jemand eine Idee, wie ich an diese Werte hier komme? Und wie würdet ihr sicherstellen, dass wenn das Auto am Laden ist, dass die Batterie nicht entladen wird? Ich würde den SOC jetzt einfach auf 99% stellen damit das sichergestellt ist.
Hi stippelt, ich mache das mit Node red. Wenn Auto eingesteckt und geladen wird, dann MP2 auf 0W entlade limit setzen , wenn nicht dann auf 4500W.
Die Zustände greife ich bei MQTT über meinen Go-Echarger ab. Musst du bitte schauen was dein Charger rausgibt.
Wenn du es über den SOC regeln möchtest geht das auch. Du muss dann den SOC auf den aktuellen SOC stellen. Wenn du auf 99% stellst und der SOC gerade bei 68% dann wird die Batterie auf 99% aufgeladen.
Cool, das könnte auch funktionieren, ich meinte natürlich den Minimum SOC zu ändern um ein entladen zu verhindern. Kannst du den Flow mal exportieren und posten, das wäre mega. Danke Dir.
das ist nur ein Ausschnitt aus einem großen Flow, daher ist export schlecht machbar. Einfach schauen wo du den Zustand der Ladesäule herbekommst, bei mir über MQTT und dann das script “Inverter 0 or 4500”
var chargemode = global.get("ChargeMode");
var chargestatus = global.get("ChargeStatus");
var chargestat = global.get("ChargeStat");
if (chargemode === 0 && chargestatus === 1 && chargestat === 1 ) {
// Gewünschte Konstellation
msg.payload = 0;
return msg;
} else {
// Andere Konstellation
msg.payload = 4000;
return msg;
}
und dann direkt max discharge power auf dem MP2 setzen.
Ich habe mal wieder in deinem Code gewühlt und habe eine Frage zu den Werten:
"charge_after" und "charge_before"
in den global Settings habe ich derzeit konfiguriert:
flow.set("charge_after", 3); //Es wird immer erst nach dieser Stunde begonnen zu laden.
flow.set("charge_before", 23); //Es wird immer versucht bis zu dieser Stunde fertig zu sein.
Ich verstehe was die Werte bewirken sollen, verstehe aber nicht wofür das gut sein soll. Soll nicht immer geladen werden wenn es billig ist und die PV-Prognose den Speicher nicht füllen kann?!?
Es scheint bei mir zu einem Fehler zu kommen. Oder gibt es Werte die hier nicht konfiguriert werden dürfen? Ich kann nicht 100% ausschließen das der Fehler an Änderungen von mir liegt glaube es aber nicht.
Das folgende Bild zeigt, das für charge_after_idx -1 herauskommt. Mein Eindruck: Wenn es zum Fehler kommt, scheint das Laden nicht gestartet zu werden, auch wenn die Preise ein Laden rechtfertigen würden?
Ich kann auch nochmal drüber brüten, aber vieleicht weist du sofort was das Problem ist.
Das Laden darf nur in diesem Zeitfenster geschehen.
Charge after 20, Charge before 8. Lade Nachts zwischen 20 und 8 Uhr.
Müsste ich mir im Detail ansehen, bei mir hat es jedoch bisher funktioniert. Bin aktuell nicht mehr bei Tibber. Habe einen Fixtarif mit 26 ct/kWh. Da lohnt sich der ganze Spass nicht mehr.