Liebe Foren Mitglieder,
Hat vielleicht jemand einen solchen Wechselrichter am laufen und oder mit IPS verbunden?
mit besten grüßen
Peter
Liebe Foren Mitglieder,
Hat vielleicht jemand einen solchen Wechselrichter am laufen und oder mit IPS verbunden?
mit besten grüßen
Peter
Hallo Peter
Habe einen Multilplus II vor 4 Wochen installiert als ESS System mit einem Color Control GX.
Über das Color Control GX lese ich die Daten des Multiplus mit Modbus TCP aus.
Hallo aglutz,
hast du die Notstrom Leitung auch belegt?
Im Prinzip will ich auch ein ESS aufbauen, nur wollte ich ggf eine ganze Phase an den Notstrom hängen.
mich würde mal interessieren wie das ganze angeschlossen aussieht.
Das gerät hat ja einen netz ein und einen netz Ausgang. könntest du da mal ein Bild senden wie das aussieht?
mit besten grüßen
Peter
Hallo Peter
Ich verwende die Notstrom-Funktion nicht, daher erübrigt sich ein Bild davon.
Ich empfehle dir für die Notstrom-Funktion einen Elektriker beizuziehen, denn auch der Notstromausgang muss entsprechend abgesichert werden auf Brand- und Personenschutz und der Verteiler muss umverdrahtet und dokumentiert werden.
Mit freundlichem Gruss
Adrian
Bei mir läuft seit einigen Wochen nun auch ein Multiplus II.
Da mir die Ladeleistung mit 2000W mit steigender Akkuzahl aber nun nicht mehr reicht, suche ich gerade „Verstärkung“.
Ich hatte hier an Meanwell RSP Netzteile gedacht, die kosten aber in der Leistung auch schon etwas mehr.
Ich hatte dann den Sofar ME3000 PV gefunden, der recht interessant schien und mir vom Hersteller mal das Modbus Protokoll/Register schicken lassen.
Hat diese Laderegler/WR Kombination ggf. jemand schon bei sich laufen und kann etwas davon berichten?
Mit 3000W Lade/WR Leistung bei ca. €800.- könnte das eine Alternative sein?
Viele Grüße,
Doc
Hallo,
ich habe aktuell 3 Multis rennen mit ESS und Backupfuntion, da ich Elektriker bin war das Ganze nicht kompliziert und läuft extrem stabil.
Ich würde dir abraten irgend ein Netzteil ein zu bauen, häng einfach einen zusätzlichen Multiplus rein der hat genug Leistung und spricht mit den Anderen.
Aktuell schalte ich im Backupbetrieb Verbraucher ab wenn die Batterie zu schwach wird. Das Einbinden in die Visu hab ich noch nicht getestet. Es ist aber möglich alle Werte aus zu lesen.
Leider kann ich nicht Progrmmieren…
Also wer Technisch was braucht ich helfe gerne, vl gibt es ja jemanden der mir dann beim Einbinden hilf.
Lg Matthias
Hallo Matthias
Ich bin auch gelernter Elektriker und gerade dabei mich in die Dokumentation der Victron-Gerätefamilie einzulesen. Allenfalls werde ich mir dann dann auch eine Batterie gönnen, welche eben diese Gerätschaften einsetzt. Victron hat alles sehr gut und vorbildlich dokumentiert. Das Einbinden der Daten in die Visu ist daher nicht allzu schwierig. Zumal man es auch ohne eigene Geräte anhand des Demo-Users vorgängig testen kann …
Und da ich heute mehr programmiere als elektrische Installationen erstelle, habe ich da kurz mal was gebastelt:
<?php
/*
Erstellt von Letraz
Abfrage des Victron VRM
V1 18.12.2021 Initiale Version (Test mit Demo-User)
Victron API - Dokumentation: https://docs.victronenergy.com/vrmapi/overview.html#login
*/
//Definitionen
//Demo-Token kann angefordert werden via Link: https://vrmapi.victronenergy.com/v2/auth/loginAsDemo
$token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjlhMDFhZDBjMmY2N2I0OGUwYmRlOGFkYzQ3MjgwNzlhIn0.eyJ1aWQiOiIyMiIsInRva2VuX3R5cGUiOiJkZWZhdWx0IiwiaXNzIjoidnJtYXBpLnZpY3Ryb25lbmVyZ3kuY29tIiwiYXVkIjoiaHR0cHM6XC9cL3ZybWFwaS52aWN0cm9uZW5lcmd5LmNvbVwvIiwiaWF0IjoxNjM5OTEwNTI0LCJleHAiOjE2Mzk5OTY5MjQsImp0aSI6IjlhMDFhZDBjMmY2N2I0OGUwYmRlOGFkYzQ3MjgwNzlhIn0.A-VJthQAE8RrmgE57Q3D1M7D2rSf_zFo7NuhZ9GTXL2r6OafRyJFaMW3xj40lS9hBU-wkNZwf3qLeej3dfYL4HrZjan9GXElhWApsuWpgkEkhur2oWsPJBKtQfgaaiX8EAGCu8Efe6HRPBTFS41I6o_q8Nq3gAHVT28Yy5pneMR88_u1gP5yN-soGrnYCqzIbz7XoRHk0zlmXy8cml9GrvmLPDKstWyFFjOsnjSwluDfiBRsXD6-gLc9Ooeo1EfLZdBZ8VznGUKtoY1slQ_xLbSVHGCAaZkAfGasX_vRBxIZb9YB65W-WqHOsrwvTYXVqXA3dMv4zVQcPHJYDpK3zw";
$userid = 22;
$url = "https://vrmapi.victronenergy.com/v2/users/".$userid."/installations?extended=1";
//Beginn Datenabfrage
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$headers = array(
"X-Authorization: Bearer ".$token,
"Connection: keep-alive",
"Pragma: no-cache",
"Cache-Control: no-cache",
"Accept: application/json, text/plain, */*",
"DNT: 1",
"Content-Type: application/json"
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($curl);
curl_close($curl);
//Daten decodieren
$data = json_decode($response, true);
if (!empty($data)) //Prüfung ob Daten vorhanden sind, ansonsten abbruch
{
print_r($data);
}
Der Token läuft sporadisch ab und unter dem angegebenen Link kann man sich jederzeit einen neuen generieren.
Wenn man aber eigene Geräte hat welche die Daten in die VRM (Victron Onlineportal) einspeisen, kann man (angeblich) einen dauerhaften Token generieren. Nebst dem Token wird dann aber auch noch die Userid verwendet. Beim Demo-User lautet sie „22“, bei einem eigenen Account natürlich etwas anders. Wo man diese UserID findet ist mir aus Mangel an eigenem Account derzeit nicht bekannt.
Ersetz doch mal den Token mit einem von dir generierten und die Userid ebenfalls mit deiner eigenen. Dann solltest du mit dem Script alle Daten deiner Installation rauskriegen. Das Ergebnis kannst du so noch nicht in die Visu einbinden, aber wenn du dann weisst welche Werte du haben willst, kann man diese gezielt in Variablen speichern und visualisieren.
Der Script gibt bereits mit dem Demo-User sehr viele Daten aus, daher ist das Ergebnis in der angehängten Datei zu sehen.
Datenabfrage_VRM.txt (64,2 KB)
Im Gegenzug habe ich ein paar Fragen an dich zur elektrischen Installation:
Gruss Letraz
Vielleicht ist dieser Thread für euch auch noch interessant.
Die Victrons kannst du sehr leicht über Modbus auslesen oder steuern, wenn du ein Venux Device extern oder ggf. im Multiplus verbaut hast.
VG Doc
Hallo,
ich steige mal hier ein, da mich das Thema Modbus TCP auch sehr interessiert.
Ich möchte meine vorhandene PV Anlage erweitern um einen Batteriespeicher.
Ich habe derzeit 3 Möglichkeiten:
1.) ich bleibe im Gerätepark von SMA und Update / Upgrade div. Teile (relativ teuer)
2.) ich liebäugele mit dem Multiplus II GX + Pylontech oder BYD
3.) sonstige Lösungen (Umbau auf Hybrid-Wechselrichter
Jetzt habe ich schon viele gelesen (vielleicht auch zuviel, was manchmal mehr verwirrt) über Modbus und Victron Energy.
Meine Wissensstand derzeit:
Multiplus II GX spricht Modbus TCP und ich kann dadurch mir das „EnergyMeter“ EM24 o.ä. sparen. (Ich habe bereits ein ModbusTCP-fähigen 2-Richtungsstromzäherl (EMU MBS Allrounder)
Kann man nun in der GX-Software(?) beim Konfigurieren diesen Stromzähler angeben ? Es wird in allen Dokumenten, Leitfäden und Youtube Videos immer eine ID mit angegeben.
Ich habe aber bei meinem Stromzähler nur eine IP-Adresse und das jeweilige Register. IP-Symcon liest das problemlos aus. Da kann ich als Unit-ID eintragen was ich möchte.
Welche Informationen werden vom Stromzähler überhaupt benötigt ?
Die Lieferung/Bezug mit Vorzeichen ? (1 Register)
Oder getrennt Bezug und Lierferung (2 unterschiedliche Register)
Daher meine Frage: Kann mir jemand ein wenig Licht ins Dunkel bringen ?
Weitere Frage:
Wenn ich den Multiplus II GX habe, benötige ich dann auch das MK3-USB Ding zum konfigurieren ?
Grüße
Björn
Ja, damit stellst du z.B. ein, wie der Wechselrichter sich am Netz verhalten soll oder welchen Akkutyp du angeschlossen hast.
Das GX Device dient zum eigentlichen steuern des Wechselrichters, entweder von einem Modbus-Zähler, einer ggf. schon installierten PV (erkennt das GX selber) oder wie bei mir ganz aus IPS heraus.
Dann ist es egel welchen Zähler du hast, du sagt dem WR über Modbus einfach, was er tun soll.
Hey, @Doctor_Snuggles,
deine Antwort hat mich sehr neugierig gemacht
Ich habe eine PV Anlage eine Strom/Spannungs/Leistungsmessung (enerserve) einen Heizstab (für Warmwasser) und in Zukunft möchte ich mir auch einen Speicher (voraussichtlich Multiplus II mit Pylontech Akkus) zulegen.
den exakten Verbrauch oder Überschuss erfasse ich 1x pro Sekunde und erhalte die Werte per MQTT in IP Symcon. - Das klappt perfekt und da ich für den Überschuss kaum Geld vom Netzbetreiber erhalte habe ich auch einen Heizstab welche ich mitteld DMX von 0 - 2050W dimme um so zumindest Warmwasser zu produzieren.
Da es aber immer noch Überschuss gibt und ich mir einen Speicher zulegen möchte, wollte ich dich fragen, ob du mir bei der Konfiguration helfen kannst.
Du schreibst ja, dass du per IPS den Wechselrichter komplett steuerst. Ohne GX Device.
Dann ist es egel welchen Zähler du hast, du sagt dem WR über Modbus einfach, was er tun soll.
Benötige ich dann nur den „Victron Multiplus-II“ + „Pylontech LiFePO4“ OHNE " VenusGX" OHNE " Color Control GX" ?
Wie sieht denn die Verkabelung die Converter aus?
Wie sprichtst du mit dem Wechselrichter?
Ich würde das exakt so machen wollen wie du das beschreibst. Die Intelligenz soll bei IPS liegen und ich sage dem WR 1x Sekunde was er machen soll,… 200W in die Akkus laden / 1800W aus den Akkus entnehmen, wie hoch ist die Temperatur?, wie ist der SoC,…
Kann man das so realisieren? Ich wäre super Dankbar für eine Antwort und deine Hilfe.
Strommessung + Heizstab in „%“:
Infoscreen:
Touchscreen:
Du brauchst auf jeden Fall ein GX Device, sei es im MPII selber, als Venux GX oder mit Display oder was es noch da gibt.
Das stellt dir alle Daten und Möglichkeiten vom Wechselrichter zur Verfügung, biete zusätzliche Relais, kommuniziert mit der PV wenn gewünscht und vor allem später mit IPS.
Der WR selber kommuniziert per CAN mit dem Pylontech und mit dem GX Device.
Du brauchst halt den MultiplusII, die Pylontech’s je nach Kapazität und ein GX Device.
Ggf. noch den MK3 USB Adapter (nur einmalig) um den MPII ans deutsche Netz anzupassen.
„Sprechen“ mit dem GX Device über ModBus, du sagst halt wie du es vor hattest was du gerne aus dem Akku auf’s Netz haben möchtest oder aus dem Netz an den Akku geben kannst.
Normalerweise macht dies das GX Device selbstständig über einen extra Modbuszähler in der Verteilung, aber mit IPS brauchst du das nicht.
Heizstab habe ich übrigens auch im WW Speicher, allerdings von IPS gesteuert schalte ich die 3 Phasen einzeln zu. Mit Dimmer war mir das zu aufwendig.
Das geht auch in meine Berechnungen in IPS mit ein, damit der Speicher immer Vorrang zum Laden hat.
VG,
Doc
Vielen Dank für Deine rasche und super hilfreiche Antwort.
Nun steht fest, dass ich das Projekt definitiv umsetzen werde.
es wird der MPII GX mit Pylontech’s (weiß noch nicht genau wieviele) werden.
Wie schnell kann der MPII denn umschalten bzw. regeln? Kann ich 1x oder 2x pro Sekunde per Modbus die zu entnehmende oder zu ladende Leistung festlegen und das wird dann „sofort“ umgesetzt? Oder hab ich ein Problem wenn eine Wolke über die PV zieht? Wie träge oder schnell ist das System denn?
Kannst du mir bitte noch Beispiele nennen wie du z.B. den SoC per Symcon und Modbus TCP abfragt, bzw. wie du die Leistung (Laden/Entladen) einstellen kannst?
Du hilft mir dadurch sicher seeehr weiter.
Vielen vielen Dank!
LG,
Martin
Du kannst deinen „Stellwert“ ruhig sekündlich senden, der MPII braucht aber systembedingt 1-2 Sekunden um sich auf diesen Wert einzuregeln.
Der Victron schaltet den Lader und Inverter selber je nach Bedarf zu, beim ersten wechsel kann es aber bis zu 5 Sekunden dauern, danach bleiben Lader und Inverter eingeschaltet um auch gut um den Nullpunkt regeln zu können.
Das klappt eigentlich ohne Probleme.
ok, Danke!
Hast du vielleicht noch ein paar Screenshots wie du den ausliest bzw. dem Wechselrichter mitteilst wieviel Watt er ins Netz oder Batterie schieben soll?
Das würde mir viel Nerven sparen, da du das schon gelöst hast.
ModBus ist noch Neuland und ich bin mir bei der Configuration / Einbindung in Symcon komplett unsicher 😵💫
Eilt nicht. Es würde nur mir und vielleicht ein paar anderen Usern helfen. Danke!
Du musst dich generell etwas mit Modbus in IPS beschäftigen um zu verstehen, wie einfach das geht
Schau mal, das du erstmal die HW bekommst und installierst, das andere ergibt sich dann schon.
Du brauchst eigentlich nur die Modbus Adressen aus der Excel Liste vom Inverter zu nehmen und die Daten abzufragen oder zusetzen.
Mein Script ist aber so individuell, das du verm. damit so nichts anfangen kannst.
Vielleicht hilft es dir ja, um eins für deine Bedürfnisse zu erstellen.
// ---------- Konfiguration ----------
$IDArchiveHandler = 10204;
$ID_Gesamtleistung = 42236;
$ID_Leistung_Mittelwert = 29827; // Werte zur Berechnung des möglichen Leistungsdurchschnitt
$ID_Sekunden = 27931; // ID Sekundenzähler für Netzteil zum Einschalten
$ID_Instanz_ESS_SOLL = 21696;
$ID_ESS_SOLL = 12332;
$ID_Instanz_Relais1 = 16100;
$ID_Status_Relais1 = 52086;
$ID_Instanz_Steckdose = 32438; // Steckdose Heizungsraum für Netzteil (Treppenlicht 15min.)
$ID_Steckdose_Status = 52398;
$ID_Instanz_Enable_Charger = 13532; // Modbus Instanz Charger
$ID_Instanz_Enable_Inverter = 43112; // Modbus Instanz Inverter
$Status_Charger = GetValue(21531); // aktueller Status Lader (aus = 0, ein = 100)
$Status_Inverter = GetValue(37530); // aktueller Status Inverter (aus = 0, ein = 100)
$SoC = GetValue(12410); // aktueller SoC Pylontech (Victron)
$ID_SoC_dyn = 16223; // ID des dynamischen SoC
$ID_SoC_100 = 34342; // ID des 0-100% SoC
$Laden_Offset = 100; // Vorgabe Offset zur Nullausregelung in W
$Entladen_Offset = -20;
$Laden_Max = 2200; // Ladeleistung Victron maximal in W
$Einspeisen_Max = -2400; // Einspeisleistung Victron maximal in W (max. 2400W)
$SoC_min = GetValue(47773); // minimum SoC bis abschalten des Inverters
$SoC_max = 95; // maximaler SoC beim Laden (Victron)
$Soc_max_Netzteil = 88; // maximaler SoC fürs Laden mit dem Netzteil
$SoC_Offset = 5; // Inverter wiedereinschalt SoC über min. SoC
$Sekunden_Offset = 60; // Offsetzeit zum Zuschalten des Netzteils
$Sonnenstunden_morgen = GetValue(30733); // Sonnenstunden von morgen
$BatteryLife = GetValue(52279); // BatteryLife Status abfragen
$Leistung_Netzteil = 1420; // max. Leistung in W des zus. Ladenetzteils (aktiviert über Relais1)
$Leistung_Heizstab = GetValue(53870); // aktuelle Leistung der Heizstäbe
$Bezug = round(GetValue(36301),0); // aktueller Bezug vom eHz in W
$Leistungssteller_aktuell = GetValueInteger(35077); // aktueller Wert vom ESS in W
// ===================================================================================================================================
// Steuerung Einspeisleistung nach Batteriestatus (SoC)
if ($SoC < 20) {$Einspeisen_Max = -1000;} // Einspeisleistung bei niedriegen SoC begrenzen
if ($SoC < 15) {$Einspeisen_Max = -500;}
// ---------- BatteryLife - Steuerung dynamischer SoC_min (mit Sonnenstunden des nächsten Tages um 13:05) ----------
// einmal tägl. prüfen (13:05)
if (($_IPS['SENDER'] == "TimerEvent") and ($BatteryLife == true)) {
if ($_IPS['EVENT'] == 40077) {
$SoC_min = 10;
if ($Sonnenstunden_morgen <= 5) {$SoC_min = 20;}
if ($Sonnenstunden_morgen <= 4) {$SoC_min = 25;}
if ($Sonnenstunden_morgen <= 2) {$SoC_min = 40;}
if ($Sonnenstunden_morgen <= 1) {$SoC_min = 60;}
SetValue(47773, $SoC_min);
return;
}
}
// beim Umschalten prüfen
if ($_IPS['SENDER'] == "Variable") {
if ($_IPS['VARIABLE'] == 52279) {
if ($BatteryLife == false) {
$SoC_min = 10;
} else {
$SoC_min = 10;
if ($Sonnenstunden_morgen <= 5) {$SoC_min = 20;}
if ($Sonnenstunden_morgen <= 4) {$SoC_min = 25;}
if ($Sonnenstunden_morgen <= 2) {$SoC_min = 40;}
if ($Sonnenstunden_morgen <= 1) {$SoC_min = 60;}
}
SetValue(47773, $SoC_min);
return;
}
}
// ---------------- Berechnung des dynamischen SoC ----------------------------
$SoC_dyn = ($SoC - $SoC_min) * 100 / ($SoC_max - $SoC_min); // Berechnung dynamischer Soc (zur Anzeige von 0-100% der verfügbaren Kapazität)
if (($SoC_dyn < 0) or ($Status_Inverter == 0)) {$SoC_dyn = 0;}
if ($SoC_dyn > 100) {$SoC_dyn = 100;}
SetValueInteger($ID_SoC_dyn, $SoC_dyn);
// ---------------- Berechnung des 0-100% SoC (10-95%)----------------------------
$min_SoC = 10;
$SoC_100 = ($SoC - $min_SoC) * 100 / ($SoC_max - $min_SoC); // Berechnung 0-100% Soc (zur Anzeige von 0-100% der Gesamt-Kapazität)
if ($SoC_100 < 0) {$SoC_100 = 0;}
if ($SoC_100 > 100) {$SoC_100 = 100;}
SetValueInteger($ID_SoC_100, $SoC_100);
// ---------- Steuerung des Inverters (ein/aus) ----------
if ($SoC <= $SoC_min) { // Wenn SoC < SoC_min Inverter ausschalten
if ($Status_Inverter > 0) {
ModBus_WriteRegisterShort($ID_Instanz_Enable_Inverter, 0);
}
}
if ($SoC >= ($SoC_min + $SoC_Offset)) { // Wenn SoC über (SoC_min. + Offset) Inverter einschalten
if ($Status_Inverter < 100) {
ModBus_WriteRegisterShort($ID_Instanz_Enable_Inverter, 100);
}
}
// ---------- Steuerung des zusätzlichen Netzteils zum Laden (über Relais 1 Venus GX) ----------
if ($_IPS['SENDER'] == "Variable") {
if ($_IPS['VARIABLE'] == 36301) {
$Netzteil_aktuell = GetValue($ID_Status_Relais1) * $Leistung_Netzteil; // aktuelle Leistung Netzteil
$Power_gesamt = $Leistungssteller_aktuell + $Netzteil_aktuell + ($Bezug * -1); // Gesamtleistung ermitteln
SetValue($ID_Gesamtleistung, $Power_gesamt); // mögliche Gesamtleistung in Variable schreiben
$Mittelwert = getMean ($IDArchiveHandler,$ID_Gesamtleistung,120,0); // Mittelwert mögliche Gesamtleistung über 2 min.
SetValue($ID_Leistung_Mittelwert, $Mittelwert);
// *** Sekundenzähler für Freigabe des Netzteils ***
if (($Power_gesamt + $Leistung_Heizstab) >= 2000) {
$Restzeit = (GetValue($ID_Sekunden) - (time() - (IPS_GetVariable($ID_Sekunden)['VariableUpdated'])));
if ($Restzeit < 0) {
$Restzeit = 0;
}
SetValue($ID_Sekunden, $Restzeit);
}
if (($Power_gesamt + $Leistung_Heizstab) < 2000) SetValue($ID_Sekunden, $Sekunden_Offset); // Sekundenzähler für Freigabe NT hochzählen oder löschen
// *** Netzteil zuschalten ***
if (($Power_gesamt > 2000) and ($SoC <= $Soc_max_Netzteil)) {
KNX_WriteDPT1($ID_Instanz_Steckdose, true); // Steckdose Heizungsraum ein (15 min. Treppenlicht)
}
// *** Netzteilausgang einschalten ***
if (($Power_gesamt > 2500) and (GetValue($ID_Sekunden) <= 0) and ($SoC <= $Soc_max_Netzteil)) { // Bedingungen für Netzteil einschalten (5 min.)
if (GetValue($ID_Status_Relais1) == 0){ // wenn Netzteil aus war, Netzteileinschaltzähler hochzählen
SetValueInteger(54069, (GetValueInteger(54069) + 1));
}
ModBus_WriteRegisterShort($ID_Instanz_Relais1, 1); // NT ein (Relais 1) wenn > 2500W und SoC < max.
SetValueBoolean(37354, true);
}
// *** Netzteil ausschalten ***
if ((($Power_gesamt + $Leistung_Heizstab) < 1500) or ($SoC > $Soc_max_Netzteil)) { // NT aus (Relais 1) wenn < 1500W oder SoC > max.
ModBus_WriteRegisterShort($ID_Instanz_Relais1, 0);
SetValueBoolean(37354, false); // Netzteil-Variable schalten
}
// *** Leistungen schreiben ***
SetValue(47589, $Netzteil_aktuell); // testweise Leistung Netzteil in Variable schreiben
SetValue(19925, ($Netzteil_aktuell + $Leistungssteller_aktuell)); // Gesamt ESS-Leistung in Variable schreiben
}
}
// --------------- Steuerung des ESS Sollwertes (Victron GX) -------------------
if ($_IPS['SENDER'] == "Variable") {
if ($_IPS['VARIABLE'] == 36301) {
$Power = $Leistungssteller_aktuell + ($Bezug * -1); // Leistung ESS festlegen
if (($Power > $Entladen_Offset) and ($Power < $Laden_Offset)) { $Power = 0;} // Offset zum Laden/Entladen
if ($Power > $Laden_Max) {$Power = $Laden_Max;} // Ladeleistung begrenzen
if ($Power < $Einspeisen_Max) {$Power = $Einspeisen_Max;} // WR Leistung begrenzen
if (($Power > 0) and ($SoC >= $SoC_max)) {$Power = 0;} // Laden abschalten wenn SoC über Soc max.
// ModBus_WriteRegisterShort($ID_Instanz_ESS_SOLL, $Power); // neuen Wert in Soll Instanz schreiben (ESS_Soll)
SetValueInteger($ID_ESS_SOLL, $Power); // neuen Wert in Soll Variable schreiben
// return;
}
}
// ------------------ Status Inverter / Lader / Netzteil in Variable (für MDT GT2) ------------------
if ((GetValue(47589) + $Leistungssteller_aktuell) > 100) { // bei laden > 100W Variable setzen
SetValue(23656, true);
} else {
SetValue(23656, false);
}
if ((GetValue(47589) + $Leistungssteller_aktuell) < -100) { // bei entladen < -100W Variable setzen
SetValue(16828, true);
} else {
SetValue(16828, false);
}
if ($Bezug > 100) { // Bezug > 100W Variable setzen
SetValue(13025, true);
} else {
SetValue(13025, false);
}
if ($Bezug < -100) { // Bezug < -100W Variable setzen
SetValue(12883, true);
} else {
SetValue(12883, false);
}
// ---------------------------- Funktionen --------------------------------------------
function getMean ($IDArchivehandler,$varId,$log_interval,$default) {
$logData = AC_GetLoggedValues ($IDArchivehandler, $varId, time()- $log_interval,time(),-1);
if (count($logData) <1) return $default;
foreach ($logData as $key => $data)
{
$value[$key] = $data['Value'];
}
return array_sum($value)/count($value);
}
function getMedian ($IDArchivehandler,$varId,$log_interval,$default) {
$logData = AC_GetLoggedValues ($IDArchivehandler, $varId, time()-$log_interval,time(),-1);
if (count($logData) <1) return $default;
foreach ($logData as $key => $data)
{
$value[$key] = $data['Value'];
}
asort($value);
return $value[count($value)/2];
}
du hast schon recht, wenn die Hardware da ist, ist vieles einfacher.
Ich wollte nur sicherstellen, ob ich alles richtig verstanden habe?!?
Mit deiner Info hast du mir sehr geholfen! - Vielen Dank dafür!
Hardware ist bestellt.
Sonnige Grüße und nochmal Danke!
Martin
Hi Doctor_Snuggles,
wie ermittelst Du die Sonnenscheinstunden für morgen?
Den Ansatz finde ich gut.
MFG
MCS-51
Das Thema zu den Sonnenstunden findest du hier.
Da steht eigentlich alles, was du dafür benötigst.
VG,
Doc