SmartESS dynamisch handelen voor Victron omvormers
Volgens mij zijn alle parameters ook beschikbaar en toegankelijk via Node Red.E63s schreef op dinsdag 26 maart 2024 @ 23:17:
Victron heeft toch heel wat verborgen parameters in VenusOS gestopt.
Bij de Victron Nodes staan onderaan "Custom Input" en "Custom Control".
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/GtTxjXEpv4PyI8oLaehJktEE.jpg?f=user_large)
Met de Custom Input kun je alle waardes lezen:
:strip_exif()/f/image/F9BL2xFpe1DXGIBOsSXL7oif.jpg?f=fotoalbum_large)
En met de Custom Control kun je de waardes instellen:
:strip_exif()/f/image/jz8APL697XBUU0LBgpbNdXx1.jpg?f=fotoalbum_large)
Helaas staat er geen uitleg bij.
Heb hem een beetje aangepast.HermanGast schreef op zaterdag 23 maart 2024 @ 12:31:
Tuurlijk: (Voor de M5STACK Core2)
code:
#include <M5Unified.h> #include <ArduinoJson.h> #include <WiFi.h> #include <PubSubClient.h> #include <ezTime.h> #include <HTTPClient.h> const char* ssid = "YOURSSID"; const char* password = "YOURPASSWORD"; const char* EToken = "YOURTOKEN"; // Op te halen bij website enever.nl const char* TodayUrl = "https://enever.nl/api/stroomprijs_vandaag.php?token="; double Prijzen[24]; double Sorted[24]; double prijsGemiddelde = 0.0; char buffer[20]; String LaatstOpgehaald; Timezone Woonplaats; void setup() { M5.begin(); Woonplaats.setPosix("CET-1:00"); M5.Lcd.setTextSize(2); M5.Lcd.fillScreen(BLACK); M5.Lcd.setCursor(0, 0); WiFi.begin(ssid, password); int Teller = 0; while (WiFi.status() != WL_CONNECTED && (Teller < 50)) delay(Teller++); delay(1000);// Nb. Teller zorgt ervoor dat we niet eindeloos blijven proberen. if(WiFi.status() != WL_CONNECTED) exit(0); // Als we echt geen WiFi hebben, dan maar opnieuw opstarten void updateNTP(); waitForSync(); } void loop() { int Nu = Woonplaats.dateTime("H").toInt(); String Vandaag = Woonplaats.dateTime("y-m-d"); String Antwoord; int TariefUur = 0; if(LaatstOpgehaald != Vandaag){ // Hebben we vandaag de prijzen nog niet?, dan even ophalen... double prijsTotaal = 0.0; HTTPClient http; String serverPath = TodayUrl + String(EToken); // Construct API URL http.begin(serverPath); int httpResponseCode = http.GET(); if (httpResponseCode == 200) { // Check for the http returning code Antwoord = http.getString(); } else { delay(15000); exit(0);} // Als het niet werkt, dan maar reset en opnieuw beginnen.... http.end(); DynamicJsonDocument doc(16384); // https://arduinojson.org/v6/assistant/ voor code en sizing :-) DeserializationError error = deserializeJson(doc, Antwoord); if (error) { M5.Lcd.println("deserializeJson() failed: "); M5.Lcd.println(error.c_str()); } else { LaatstOpgehaald = Vandaag; for (JsonObject data_item : doc["data"].as<JsonArray>()) { const char* data_item_datum = data_item["datum"]; //const char* data_item_prijs = data_item["prijs"]; // Energiemarkt //const char* data_item_prijs = data_item["prijsANWB"]; // ANWB const char* data_item_prijs = data_item["prijsTI"]; // Tibber prijsTotaal = prijsTotaal + atof(data_item_prijs); Sorted[TariefUur] = atof(data_item_prijs); Prijzen[TariefUur++] = atof(data_item_prijs); } prijsGemiddelde = prijsTotaal / 24; } } for (int i = 0; i < 23; i++) // Sorteren aflopend op prijs in array Sorted for (int j = 23; j > i; j--) if(Sorted[i] < Sorted[j]){double X = Sorted[j]; Sorted[j] = Sorted[i]; Sorted[i] = X;} for (int i = 0; i <= 23; i++) { // Visualisatie van de 24 prijzen M5.Lcd.setTextColor(WHITE, BLACK); if(Prijzen[i] < Sorted[16])M5.Lcd.setTextColor(YELLOW, BLACK); if(Prijzen[i] == Sorted[23])M5.Lcd.setTextColor(GREEN, BLACK); // Goedkoopste uur if(Prijzen[i] > Sorted[5]) M5.Lcd.setTextColor(ORANGE, BLACK); if(Prijzen[i] == Sorted[0]) M5.Lcd.setTextColor(RED, BLACK); // Duurste uur M5.Lcd.setCursor(0 , i * 18 ); if(i >= 12) M5.Lcd.setCursor(160 , i * 18 - 216 ); if(i == Nu)sprintf(buffer, "%2d->%.5f ", i, Prijzen[i]); else sprintf(buffer, "%2d: %.5f ", i, Prijzen[i]); M5.Lcd.print(buffer); } M5.Lcd.println(""); sprintf(buffer, "Avg:%.5f ", prijsGemiddelde); M5.Lcd.print(buffer); if(Prijzen[Nu] > prijsGemiddelde) M5.Lcd.print("HOOG"); else M5.Lcd.print("LAAG"); delay(5000); }
Aangepast als ‘code’
Nogmaals dankjewel.
:strip_exif()/f/image/bMaV1PKFU8hiT8VHhk4trgd7.jpg?f=fotoalbum_large) 
                    Wat me opvalt is dat het pijltje al achter de 20 staat, maar je tijd nog op 19:32 staat.
Gasloos, 14,99kWp, Ekrano, 70kWh Pylontech, 3xVictron MP8000, M5stack, MQTT
| 1
 | sprintf(buffer, "%02d:%02d", (hour() + 1) % 24, minute()); | 
https://www.elgris.nl/product/smart-meter/
en met name de wifi uitvoering
ben op zoek naar een min of meer plug en play oplossing ter vervanging van de mqtt meter die nu aan de niet zo slimme meter hangt . Heb dus de pech hier dat ik een 4 serie meter heb van landis en deze dus met 10 seconde de gegevens door zend . En er eigelijk niet mee valt te regelen .
uhm tja ik draai intel :) cel 1200 .gforce 2Ti
ik ben een hollander dus tja begint met de prijs.
en als je even naar een van de pdfjes kijkt met de mogelijkheden van de Elgris dan
lijkt het erop dat er toch een stuk meer mogelijk is, Al is het alleen al de ingebouwde webserver.
en de bewering
 Een, twee of driefasige metingen
 SMA Energy Meter / EMETER compatible
 Victron EM-24 en SDM-630 TCP etc compatible
De elgris SMART METER WiFi kan ook als alternatieve smart meter samen met een Victron Venus of
Cerbo GX unit.
De elgris SMART METER WiFi wordt via TCP verbonden en automatisch gevonden tijdens het scannen
naar Modbus TCP devices
op het eerste gezicht dus alles wat in mijn lijstje staat.
en vandaar ook de vraag of er iemand is met ervaring
uhm tja ik draai intel :) cel 1200 .gforce 2Ti
Peroonlijk zou ik dit bekabeld willen hebben. Verder ziet het er wel interresant uit.djazzy schreef op vrijdag 29 maart 2024 @ 10:26:
Even een vraagje van mijn kant zijn er op het forum personen bekend met de meters van
https://www.elgris.nl/product/smart-meter/
en met name de wifi uitvoering
ben op zoek naar een min of meer plug en play oplossing ter vervanging van de mqtt meter die nu aan de niet zo slimme meter hangt . Heb dus de pech hier dat ik een 4 serie meter heb van landis en deze dus met 10 seconde de gegevens door zend . En er eigelijk niet mee valt te regelen .
Tibber; 3-fase Victron ESS, 38,4 kWh opslag; gasloos sinds 2013; Nibe F1245-10PC; SAP; HomeSeer4; Proxmox 8
Dit, en behalve dat vind ik 150-200 euro voor een energiemeter bizar duur. Bij AliExpress koop je een monofase meter voor 100A voor 15 euro. Als daar belangstelling voor is, zal ik volgende week, als ik het ding ontvangen heb, laten weten wat ik er van vind.John245 schreef op vrijdag 29 maart 2024 @ 12:18:
[...]
Peroonlijk zou ik dit bekabeld willen hebben. Verder ziet het er wel interresant uit.
[ Voor 6% gewijzigd door M66B op 29-03-2024 16:31 ]
[ Voor 163% gewijzigd door zonnepaneelxl op 30-03-2024 23:15 ]
5740wp 30gr Noord | 4815wp 35gr Oost | 2140wp 10gr Oost | 4800wp 30gr Zuid | 3645wp 8gr Zuid | 5760wp 35gr West | 1215wp 5gr Zuid | Totaal 28115WP
Log even in via SSH en tik daar het commando dbus-spy in. Pijltje omlaag naar HUB4, dan pijltje naar rechts. Daar staat MaxDischargePower. Welk getal staat daar helemaal rechts?zonnepaneelxl schreef op vrijdag 29 maart 2024 @ 18:56:
Ik heb sinds vanmiddag circa 16:00 een probleem.
Multiplus blijft in bulk (INACTIEF) hangen en wil niet meer ontladen ( probeert accupakket op 100% te houden op dit moment)
Het ziet er namelijk naar uit dat het commando discharge maximaal niet meer aangestuurd word. ( heeft Victron toevallig wat veranderd vandaag?)
Maximaal omvormer begrenzing 11000W en in DVCC max laadstroom 210A
Ik heb de Ve.Bus al herstart en alles opnieuw opgestart.
Ik zou dit ook met nodered kunnen doen natuurlijk maar hier heb ik me nog te weinig in verdiept.
Dit is mijn dagelijkse ritueel op dit moment.
Handmatig om 8:00
Geoptimaliseerd zonder BatteryLife --> Relais 1 AAN---> maximaal ontladen op 11000W
Handmatig om 12:00
Houd accu's geladen ---> Relais 1 UIT ---> Maximaal opladen 210A
Handmatig om 16:00
Geoptimaliseerd zonder BatteryLife --> Relais 1 AAN ---> maximaal ontladen op 11000W
Handmatig om 24:00
Houd accu's geladen ---> Relais 1 UIT ---> Maximaal opladen 210A
Acculaad toestand staat op 0%
Met Relais 1 schakel ik tussen Grid 1 en Grid 2 (SAP/PAP)
Zo kan ik circa 135kwh laden en 105kwh ontladen op dit moment met circa 90kw aan accupakketten.
Is er een andere manier op toch op dit moment maximaal te kunnen ontladen?
Heb trouwens wel op 12-3-2024 een mail gehad van Victron Lv3 support
Zou dit hier mee te maken hebben?
Hello xxxxxx,
We’ve noticed that you are currently running Dynamic ESS in ‘Buy’ or ‘Sell’ mode on https://betavrm.victronen...allation/xxxxxx/dashboard.
With Dynamic ESS moving from beta VRM to regular VRM shortly, we will be removing these two modes.
As your system is on one of these two modes, we will switch the Dynamic ESS mode to ‘Off’ for your system in the next days.
We are removing these 2 modes because they are hardly used, so in order to keep it simple, we will limit to ‘Auto’ or ‘Off’ as modes. We prioritize working on improving other parts of Dynamic ESS first, before re-evaluating these modes.
Of course you are free to set it into Auto mode. Do notice that for best results you should run firmware version 3.30~14 or higher.
SmartESS dynamisch handelen voor Victron omvormers
M66B vergeet niet dan je met alleen 1 energie meter er nog niet bent . Ook zou je de comunicatie tussen de meter en bv een cerbo gx nog moeten makenM66B schreef op vrijdag 29 maart 2024 @ 16:29:
[...]
Dit, en behalve dat vind ik 150-200 euro voor een energiemeter bizar duur. Bij AliExpress koop je een monofase meter voor 100A voor 15 euro. Als daar belangstelling voor is, zal ik volgende week, als ik het ding ontvangen heb, laten weten wat ik er van vind.
en ja dat kan ook nog wel goedkoop
https://www.fruugo.nl/rs4...lug/p-218351894-465879494
Maar wil je materiaal van ?????? oorsprong in je meter kast .
uhm tja ik draai intel :) cel 1200 .gforce 2Ti
Als je wilt, dan deel ik ook de M5stack code om de Victron met MQTT te lezen en te besturen. Maar die moet ik dan nog wel eerst opschonen want na tal van experimentjes is de code een beetje vervuild/rommelig/onleesbaar geworden.N0EL schreef op woensdag 27 maart 2024 @ 20:53:
Oeps.... Klein foutje. Even aanpassen :-)
code:
Vooral handig als je geen Homey/NAS/HA of andere aanverwante apparatuur in de lucht wilt houden. En geen token nodig, werkt lokaal met alleen je WiFi SSID/password nodig.
M5Stack: the average power consumption during active mode is 78.32 mW.
[ Voor 20% gewijzigd door HermanGast op 29-03-2024 21:09 ]
Gasloos, 14,99kWp, Ekrano, 70kWh Pylontech, 3xVictron MP8000, M5stack, MQTT
Heb ik al gemaakt:djazzy schreef op vrijdag 29 maart 2024 @ 20:52:
[...]
M66B vergeet niet dan je met alleen 1 energie meter er nog niet bent . Ook zou je de comunicatie tussen de meter en bv een cerbo gx nog moeten maken
en ja dat kan ook nog wel goedkoop
https://github.com/M66B/sdm120pv
Dat is altijd een goede vraag, maar is het meeste sowieso geen Chinees spul. Waar komt bijvoorbeeld de veelgebruikte sdm120 vandaan?https://www.fruugo.nl/rs4...lug/p-218351894-465879494
Maar wil je materiaal van ?????? oorsprong in je meter kast .
Dat wil natuurlijk niet altijd zeggen dat het goed is.
En ja ik vind het ook best wel een groot prijs verschil .
daarom zocht ik dus naar 1 all in one oplossing die goedkoper is als de victron aanbevolen meters
uhm tja ik draai intel :) cel 1200 .gforce 2Ti
Lijkt mij heel leuk om wat mee te gaan testen.HermanGast schreef op vrijdag 29 maart 2024 @ 21:02:
[...]
Als je wilt, dan deel ik ook de M5stack code om de Victron met MQTT te lezen en te besturen. Maar die moet ik dan nog wel eerst opschonen want na tal van experimentjes is de code een beetje vervuild/rommelig/onleesbaar geworden.
Vooral handig als je geen Homey/NAS/HA of andere aanverwante apparatuur in de lucht wilt houden. En geen token nodig, werkt lokaal met alleen je WiFi SSID/password nodig.
M5Stack: the average power consumption during active mode is 78.32 mW.
Dus bij deze ja graag.
Wat is er mis met je huidige MQTT meter? Als die werkt gewoon die lekker houden.djazzy schreef op vrijdag 29 maart 2024 @ 21:55:
Laten we zeggen Azie.
En ja ik vind het ook best wel een groot prijs verschil .
daarom zocht ik dus naar 1 all in one oplossing die goedkoper is als de victron aanbevolen meters
Dat is nog goedkoper dan iets aanschaffen
6200 Wp | eGolf 32kWh | ESS Victron 18kWh
Heb je al geprobeerd om hetzelfde te doen met je grid setpoint?zonnepaneelxl schreef op vrijdag 29 maart 2024 @ 18:56:
Ik heb sinds vanmiddag circa 16:00 een probleem.
Multiplus blijft in bulk (INACTIEF) hangen en wil niet meer ontladen ( probeert accupakket op 100% te houden op dit moment)
Het ziet er namelijk naar uit dat het commando discharge maximaal niet meer aangestuurd word. ( heeft Victron toevallig wat veranderd vandaag?)
Maximaal omvormer begrenzing 11000W en in DVCC max laadstroom 210A
Ik heb de Ve.Bus al herstart en alles opnieuw opgestart.
Ik zou dit ook met nodered kunnen doen natuurlijk maar hier heb ik me nog te weinig in verdiept.
Dit is mijn dagelijkse ritueel op dit moment.
Handmatig om 8:00
Geoptimaliseerd zonder BatteryLife --> Relais 1 AAN---> maximaal ontladen op 11000W
Handmatig om 12:00
Houd accu's geladen ---> Relais 1 UIT ---> Maximaal opladen 210A
Handmatig om 16:00
Geoptimaliseerd zonder BatteryLife --> Relais 1 AAN ---> maximaal ontladen op 11000W
Handmatig om 24:00
Houd accu's geladen ---> Relais 1 UIT ---> Maximaal opladen 210A
Acculaad toestand staat op 0%
Met Relais 1 schakel ik tussen Grid 1 en Grid 2 (SAP/PAP)
Zo kan ik circa 135kwh laden en 105kwh ontladen op dit moment met circa 90kw aan accupakketten.
Is er een andere manier op toch op dit moment maximaal te kunnen ontladen?
Heb trouwens wel op 12-3-2024 een mail gehad van Victron Lv3 support
Zou dit hier mee te maken hebben?
Hello xxxxxx,
We’ve noticed that you are currently running Dynamic ESS in ‘Buy’ or ‘Sell’ mode on https://betavrm.victronen...allation/xxxxxx/dashboard.
With Dynamic ESS moving from beta VRM to regular VRM shortly, we will be removing these two modes.
As your system is on one of these two modes, we will switch the Dynamic ESS mode to ‘Off’ for your system in the next days.
We are removing these 2 modes because they are hardly used, so in order to keep it simple, we will limit to ‘Auto’ or ‘Off’ as modes. We prioritize working on improving other parts of Dynamic ESS first, before re-evaluating these modes.
Of course you are free to set it into Auto mode. Do notice that for best results you should run firmware version 3.30~14 or higher.
23 kWp, 80 kWh, 11 kW laden, 17 kW ontladen. Victron VRM
Dat mailtje lijkt mij nogal duidelijk. Wat jij nu doet heeft Victron uitgeschakeld.zonnepaneelxl schreef op vrijdag 29 maart 2024 @ 18:56:
Ik heb sinds vanmiddag circa 16:00 een probleem.
Multiplus blijft in bulk (INACTIEF) hangen en wil niet meer ontladen ( probeert accupakket op 100% te houden op dit moment)
Het ziet er namelijk naar uit dat het commando discharge maximaal niet meer aangestuurd word. ( heeft Victron toevallig wat veranderd vandaag?)
Maximaal omvormer begrenzing 11000W en in DVCC max laadstroom 210A
Ik heb de Ve.Bus al herstart en alles opnieuw opgestart.
Ik zou dit ook met nodered kunnen doen natuurlijk maar hier heb ik me nog te weinig in verdiept.
Dit is mijn dagelijkse ritueel op dit moment.
Handmatig om 8:00
Geoptimaliseerd zonder BatteryLife --> Relais 1 AAN---> maximaal ontladen op 11000W
Handmatig om 12:00
Houd accu's geladen ---> Relais 1 UIT ---> Maximaal opladen 210A
Handmatig om 16:00
Geoptimaliseerd zonder BatteryLife --> Relais 1 AAN ---> maximaal ontladen op 11000W
Handmatig om 24:00
Houd accu's geladen ---> Relais 1 UIT ---> Maximaal opladen 210A
Acculaad toestand staat op 0%
Met Relais 1 schakel ik tussen Grid 1 en Grid 2 (SAP/PAP)
Zo kan ik circa 135kwh laden en 105kwh ontladen op dit moment met circa 90kw aan accupakketten.
Is er een andere manier op toch op dit moment maximaal te kunnen ontladen?
Heb trouwens wel op 12-3-2024 een mail gehad van Victron Lv3 support
Zou dit hier mee te maken hebben?
Hello xxxxxx,
We’ve noticed that you are currently running Dynamic ESS in ‘Buy’ or ‘Sell’ mode on https://betavrm.victronen...allation/xxxxxx/dashboard.
With Dynamic ESS moving from beta VRM to regular VRM shortly, we will be removing these two modes.
As your system is on one of these two modes, we will switch the Dynamic ESS mode to ‘Off’ for your system in the next days.
We are removing these 2 modes because they are hardly used, so in order to keep it simple, we will limit to ‘Auto’ or ‘Off’ as modes. We prioritize working on improving other parts of Dynamic ESS first, before re-evaluating these modes.
Of course you are free to set it into Auto mode. Do notice that for best results you should run firmware version 3.30~14 or higher.
En omdat je handmatig zit te sturen, kun je net zo goed met alleen ESS werken.
Kia e-niro, smartEVSE, SolarEdge O/W 3/4 kW, Ferroli wpb 90 lt., Daikin 4kW monoblock, Victron MP2-5000 + 15 kWh, gasloos 2023
Ben er nu wel achter als ik nu naar remoteconsole > instellingen > Ess > dynamic Ess > modus stond op automatisch en nu veranderd naar verkopen en accu’s ontladen weer
5740wp 30gr Noord | 4815wp 35gr Oost | 2140wp 10gr Oost | 4800wp 30gr Zuid | 3645wp 8gr Zuid | 5760wp 35gr West | 1215wp 5gr Zuid | Totaal 28115WP
Hoe ssh aangezet kan worden, wordt hier uitgelegd:zonnepaneelxl schreef op zaterdag 30 maart 2024 @ 09:33:
De shh verbinding krijg ik niet werkend.
Ben er nu wel achter als ik nu naar remoteconsole > instellingen > Ess > dynamic Ess > modus stond op automatisch en nu veranderd naar verkopen en accu’s ontladen weer
https://www.victronenergy.com/live/ccgx:root_access
Heb putty geïnstalleerd.
Veranderd naar superuser en wachtwoord naar 123456 ( minimaal 6 karakters volgens handleiding Victron)
Echter krijg ik geen contact met ssh root@192.168.1.23 dit adres.
Ip adres ingevuld wat in de vrm staat krijg dan wel verbinding echter moet er een username ingevuld worden en deze heb ik blijkbaar niet.
Superuser / admin / root werkt allemaal niet.
Ik begreep iets over terminal gebruiken maar hier ben ik onbekend mee.
5740wp 30gr Noord | 4815wp 35gr Oost | 2140wp 10gr Oost | 4800wp 30gr Zuid | 3645wp 8gr Zuid | 5760wp 35gr West | 1215wp 5gr Zuid | Totaal 28115WP
192.168.1.23 is een voorbeeldadres. Je moet het lokale adres van jouw apparaat gebruiken (dat heb je zo te zien al geprobeerd/gedaan).zonnepaneelxl schreef op zaterdag 30 maart 2024 @ 09:45:
Heb deze stappen ondernomen.
Heb putty geïnstalleerd.
Veranderd naar superuser en wachtwoord naar 123456 ( minimaal 6 karakters volgens handleiding Victron)
Echter krijg ik geen contact met ssh root@192.168.1.23 dit adres.
Ip adres ingevuld wat in de vrm staat krijg dan wel verbinding echter moet er een username ingevuld worden en deze heb ik blijkbaar niet.
Superuser / admin / root werkt allemaal niet.
Ik begreep iets over terminal gebruiken maar hier ben ik onbekend mee.
De username is in ieder geval root.
Heb je dit gedaan?
https://www.victronenergy...ss#enable_sshd_and_log_in
10 sec per telegram is schijnbaar te traag om een mooi stabiel pendelgedrag te krijgen rond de 0Jazsie schreef op zaterdag 30 maart 2024 @ 00:19:
[...]
Wat is er mis met je huidige MQTT meter? Als die werkt gewoon die lekker houden.
Dat is nog goedkoper dan iets aanschaffen.
zit nu met een over shoot van +1000 en -1000 bij zeg 400 watt gebruik
terwijl dat toch wel een stuk lager zou moeten kunnen lijkt mij.
uhm tja ik draai intel :) cel 1200 .gforce 2Ti
MQTT kan met zekerheid veel sneller berichten sturen, dus dit is niet een beperking van MQTT.djazzy schreef op zaterdag 30 maart 2024 @ 10:23:
[...]
10 sec per telegram is schijnbaar te traag om een mooi stabiel pendelgedrag te krijgen rond de 0
zit nu met een over shoot van +1000 en -1000 bij zeg 400 watt gebruik
terwijl dat toch wel een stuk lager zou moeten kunnen lijkt mij.
2 seconden heb ik ergens gelezen. Nog steeds te traag om realtime bij te sturenM66B schreef op zaterdag 30 maart 2024 @ 10:55:
[...]
MQTT kan met zekerheid veel sneller berichten sturen, dus dit is niet een beperking van MQTT.
SmartESS dynamisch handelen voor Victron omvormers
en username root en root@ is dubbelopzonnepaneelxl schreef op zaterdag 30 maart 2024 @ 09:45:
Heb deze stappen ondernomen.
Heb putty geïnstalleerd.
Veranderd naar superuser en wachtwoord naar 123456 ( minimaal 6 karakters volgens handleiding Victron)
Echter krijg ik geen contact met ssh root@192.168.1.23 dit adres.
Ip adres ingevuld wat in de vrm staat krijg dan wel verbinding echter moet er een username ingevuld worden en deze heb ik blijkbaar niet.
Superuser / admin / root werkt allemaal niet.
Ik begreep iets over terminal gebruiken maar hier ben ik onbekend mee.
SmartESS dynamisch handelen voor Victron omvormers
uhm tja ik draai intel :) cel 1200 .gforce 2Ti
Neen hoor, eerder 10.000 berichten per seconden kan MQTT aanE63s schreef op zaterdag 30 maart 2024 @ 10:57:
[...]
2 seconden heb ik ergens gelezen. Nog steeds te traag om realtime bij te sturen
Ik las het ook anders, ik dacht dat je een losse MQTT meter gebruikte vandaar mijn opmerking.djazzy schreef op zaterdag 30 maart 2024 @ 12:04:
Zoals ik al zei. het ligt aan de slimme meter die uitgelezen word dsrm 4 en die is gewoon te traag om de 10 sec 1 telegram. De dsrm 5 zou rond de 1 sec liggen en al wat beter bruikbaar.
Je maakt gebruikt van de P1 poort van je slimme meter die helaas maar om de 10 seconden een bericht stuurt en dat stuur jij weer door via MQTT.
Oplossing is een homewizard als je wifi wilt of een gewone Eastron RS485 meter, eventueel daar aan een RS485 <> Ethernet converter.
Mijn meterkast is vol, en heb de sensorbox gebruikt van EV lader die met CT klemmen werkt
6200 Wp | eGolf 32kWh | ESS Victron 18kWh
Mijn groepenkast was ook vol, dus ik heb dit erbij geplaatst:Mijn meterkast is vol, en heb de sensorbox gebruikt van EV lader die met CT klemmen werkt.
https://www.elektramat.nl...odules-218x180-mm-gd110e/
De kosten zijn het niet in ieder geval.
En ja M66B dat goedkope ding van ali .
en Jazsie heb hier ook een meter hangen van homewizard voor wat paneeltjes krijg ik met geen mogelijkheid gekoppeld aan de cerbro. ( de oplossing en drivers voor de P1 van homewizard is wel te doen ) maar dan weer de slime meter uitlezen.
Gaan we gewoon weer een test opstellinkje maken om lekker bezig te zijn .
uhm tja ik draai intel :) cel 1200 .gforce 2Ti
Ik vermoed dat ik dat gevaarlijk goedkope ding volgende week krijg. Ik ga het bedraad doen met een USB/RS485 stick. Als het goed is, is het compatibel met een SDM120, en zo niet, dan pas in de driver aan.djazzy schreef op zaterdag 30 maart 2024 @ 14:19:
Heb daarnet energie metertje met rs485 besteld en ook de omvormer naar ethernet ,
En ja M66B dat goedkope ding van ali .
en Jazsie heb hier ook een meter hangen van homewizard voor wat paneeltjes krijg ik met geen mogelijkheid gekoppeld aan de cerbro. ( de oplossing en drivers voor de P1 van homewizard is wel te doen ) maar dan weer de slime meter uitlezen.
Gaan we gewoon weer een test opstellinkje maken om lekker bezig te zijn .
Ik kan helpen met de software als je wilt. Stuur maar een PM in dat geval.
Dat plan had ik ook. Ik neem even aan dat het die sensorbox van de smartEVSE is?Jazsie schreef op zaterdag 30 maart 2024 @ 12:44:
Mijn meterkast is vol, en heb de sensorbox gebruikt van EV lader die met CT klemmen werkt.
Ik had gedacht om die met een rs485->usb adapter aan te sluiten op de Cerbo. Maar ik ben er nog niet achter of dat zo kan en welke software je daarbij nodig hebt.
Kia e-niro, smartEVSE, SolarEdge O/W 3/4 kW, Ferroli wpb 90 lt., Daikin 4kW monoblock, Victron MP2-5000 + 15 kWh, gasloos 2023
Je hebt of een door Victron ondersteunde meter nodig, of een custom driver, zoals de mjine voor een SDM120 modbus meter:Pim57 schreef op zaterdag 30 maart 2024 @ 17:26:
[...]
Dat plan had ik ook. Ik neem even aan dat het die sensorbox van de smartEVSE is?
Ik had gedacht om die met een rs485->usb adapter aan te sluiten op de Cerbo. Maar ik ben er nog niet achter of dat zo kan en welke software je daarbij nodig hebt.
https://github.com/M66B/sdm120pv
Er zijn meer projecten zoals dit voor andere meters te vinden op diverse plaatsen.
Klopt ik gebruik de sensorbox van SmartEVSE voor zowel SmartEVSE en voor Victron (helaas geeft mijn slimme meter ook maar per 10 seconden telegram).Pim57 schreef op zaterdag 30 maart 2024 @ 17:26:
[...]
Dat plan had ik ook. Ik neem even aan dat het die sensorbox van de smartEVSE is?
Ik had gedacht om die met een rs485->usb adapter aan te sluiten op de Cerbo. Maar ik ben er nog niet achter of dat zo kan en welke software je daarbij nodig hebt.
Sensorbox heb ik aangesloten via RS485 op een RS485 <> Ethernet. Deze lees ik uit via NodeRed op de Cerbo die het weer doorstuurt naar Victron alszijnde "P1-MQTT Meter".
Voor SmartEVSE zelf stuur ik de data door naar MQTT via NodeRed die ik op HA heb draaien.
Ik heb dus 2 connecties naar de RS485 <> Ethernet converter, zou het met 1 NodeRed kunnen doen maar heb liever Victron en SmartEVSE apart. Als HA eruit ligt dan ligt SmartEVSE er sowieso uit aangezien die aangestuurd wordt door HA. Maar dan blijft Victron gewoon doorlopen want die heeft zijn eigen connectie.
:fill(white):strip_exif()/f/image/E6Y8G2sveBg7YIT2i6eDbB6i.png?f=user_large)
:fill(white):strip_exif()/f/image/vjKRzI6i2QbFrcCgr4pxCuvF.png?f=user_large) 
                    6200 Wp | eGolf 32kWh | ESS Victron 18kWh
Ik heb hier een rs485-usb adapter liggen. Hopelijk werkt dat ook.Jazsie schreef op zondag 31 maart 2024 @ 00:16:
[...]
Klopt ik gebruik de sensorbox van SmartEVSE voor zowel SmartEVSE en voor Victron (helaas geeft mijn slimme meter ook maar per 10 seconden telegram).
Sensorbox heb ik aangesloten via RS485 op een RS485 <> Ethernet. Deze lees ik uit via NodeRed op de Cerbo die het weer doorstuurt naar Victron alszijnde "P1-MQTT Meter".
Voor SmartEVSE zelf stuur ik de data door naar MQTT via NodeRed die ik op HA heb draaien.
Ik heb dus 2 connecties naar de RS485 <> Ethernet converter, zou het met 1 NodeRed kunnen doen maar heb liever Victron en SmartEVSE apart. Als HA eruit ligt dan ligt SmartEVSE er sowieso uit aangezien die aangestuurd wordt door HA. Maar dan blijft Victron gewoon doorlopen want die heeft zijn eigen connectie.
[Afbeelding]
[Afbeelding]
Helaas nog nooit met NodeRed gewerkt, dus dat wordt nog even een leercurve. Nog tips?
Kia e-niro, smartEVSE, SolarEdge O/W 3/4 kW, Ferroli wpb 90 lt., Daikin 4kW monoblock, Victron MP2-5000 + 15 kWh, gasloos 2023
Ik kan namelijk onder voor mij heel aantrekkelijke condities een multiplus kopen maar twijfel vanwege onwetendheid.
Ik kan me geen beter apparaat verzinnen..Willie Wortel schreef op zondag 31 maart 2024 @ 21:19:
Zo te lezen alhier niet echt makkelijk een multiplus 2. Vraag me af of dit wel haalbaar is voor een gemiddeld leek zonder programmeer ervaring. Ikzelf huiver ook wel, vooral data uit de slimme meter uitlezen en verwerken. Zeker bij een 3 fase aansluiting waarbij je maar van 2 fases de data wilt gebruiken en dan wilt anticiperen levering aan huis in combinatie met dynamische energie tarieven.
Ik kan namelijk onder voor mij heel aantrekkelijke condities een multiplus kopen maar twijfel vanwege onwetendheid.
Maar ja. Waar je veel kunt instellen, kun je ook veel rare instellingen maken. Als je de ess handleiding goed leest is het allemaal makkelijk...
Met wat jij allemaal op software gebied doet moet dit voor jou een koud kunstje zijn. Hier geldt: alles kan en "in de beperking toont zich de meester" onder het motto "less is more". Je moet wel een gx apparaat hebben maar dat kan ook een raspberry zijn met Venus OS.Willie Wortel schreef op zondag 31 maart 2024 @ 21:19:
Zo te lezen alhier niet echt makkelijk een multiplus 2. Vraag me af of dit wel haalbaar is voor een gemiddeld leek zonder programmeer ervaring. Ikzelf huiver ook wel, vooral data uit de slimme meter uitlezen en verwerken. Zeker bij een 3 fase aansluiting waarbij je maar van 2 fases de data wilt gebruiken en dan wilt anticiperen levering aan huis in combinatie met dynamische energie tarieven.
Ik kan namelijk onder voor mij heel aantrekkelijke condities een multiplus kopen maar twijfel vanwege onwetendheid.
WP: Alpha Innotec MSW2-6S | PV: 20 x 300 Wp AEG | ACCU: 2x16x280Ah LiFePO4 3 x Multiplus II 48/3000 | DYN: Tibber | Gasloos | Day Ahead Optimizer
Zou je over je eerste voorbeeld wellicht wat meer kunnen vertellen?DrDeJe schreef op vrijdag 1 maart 2024 @ 08:24:
[...]
Wanneer je je laadpaal op de AC-OUT kunt aansluiten kun je dit prima binnen de software op je Cerbo instellen. Kan dit niet....... dan zou je een automation kunnen maken in HA (dat heb ik zelf - omdat ik geen AC-OUT gebruik). Werkt ook prima.
Het stond nog op m’n lijstje, maar nadat ik de afgelopen dagen al een paar keer heb gezien dat de laadpaal vanuit de thuisaccu werd gevoed wordt het nu echt tijd om hier iets aan te gaan doen.
Laadpaal betreft de Alfen Eve pro-line die via ethernet ook aan het thuisnetwerk hangt.
Multiplussen met Cerbo.
Alle verbruikers op AC-OUT 1 (dus ook laadpaal)
Tot nu toe de volgende oplossingen voorbij zien komen, maar die zijn (net) niet waar ik naar op zoek ben:
Laadpaal tussen meterkast en AC-IN plaatsen. Ik loop dan het risico dat de netzekering eruit gaat als zowel laadpaal als Victron maximaal gaan laden bij lage energieprijzen.
Laadpaal in-/uitschakelen via relais (generator start/stop bijvoorbeeld) op de Cerbo. De laadpaal werkt door het aanbieden van een laadpas ivm verrekening. Hard in-/uitschakelen zorgt ervoor dat ik eerst handmatig weer de laadpas moet aanbieden.
Geheel extern aansturen. Uitlezen wat het vermogen van de laadpaal is en Cerbo opdracht geven dit in mindering te brengen. Idealiter draait alles op 1 device (Cerbo).
Als ik er zo over nadenk zou ik het afgenomen vermogen van de laadpaal uitlezen. Bij voorkeur rechtstreeks uit de laadpaal via Modbus TCP (zie bijvoorbeeld dit document van Alfen met de registers) of met een meter van Victron ertussen. Deze data vervolgens gebruiken om in de Cerbo het maximaal aan AC-OUT1 te leveren vermogen verlagen met het verbruik van de laadpaal. Hierdoor wordt de woning wel vanuit de thuisaccu gevoed bijvoorbeeld maar zal het door de laadpaal gevraagde vermogen altijd vanuit het net komen.
Kortom, ik ben er nog niet uit
Ik heb in dit topic berichten van onderstaande personen over laadpalen, wellicht dat jullie nog verder gekomen zijn?
@Jazsie @V_ger @vanWalsum
YouTube: Dynamische tarieven en andere nieuwe functies voor Victron thuisbatt...Niek_ schreef op maandag 1 april 2024 @ 09:17:
[...]
Zou je over je eerste voorbeeld wellicht wat meer kunnen vertellen?
Het stond nog op m’n lijstje, maar nadat ik de afgelopen dagen al een paar keer heb gezien dat de laadpaal vanuit de thuisaccu werd gevoed wordt het nu echt tijd om hier iets aan te gaan doen.
Laadpaal betreft de Alfen Eve pro-line die via ethernet ook aan het thuisnetwerk hangt.
Multiplussen met Cerbo.
Alle verbruikers op AC-OUT 1 (dus ook laadpaal)
Tot nu toe de volgende oplossingen voorbij zien komen, maar die zijn (net) niet waar ik naar op zoek ben:
Laadpaal tussen meterkast en AC-IN plaatsen. Ik loop dan het risico dat de netzekering eruit gaat als zowel laadpaal als Victron maximaal gaan laden bij lage energieprijzen.
Laadpaal in-/uitschakelen via relais (generator start/stop bijvoorbeeld) op de Cerbo. De laadpaal werkt door het aanbieden van een laadpas ivm verrekening. Hard in-/uitschakelen zorgt ervoor dat ik eerst handmatig weer de laadpas moet aanbieden.
Geheel extern aansturen. Uitlezen wat het vermogen van de laadpaal is en Cerbo opdracht geven dit in mindering te brengen. Idealiter draait alles op 1 device (Cerbo).
Als ik er zo over nadenk zou ik het afgenomen vermogen van de laadpaal uitlezen. Bij voorkeur rechtstreeks uit de laadpaal via Modbus TCP (zie bijvoorbeeld dit document van Alfen met de registers) of met een meter van Victron ertussen. Deze data vervolgens gebruiken om in de Cerbo het maximaal aan AC-OUT1 te leveren vermogen verlagen met het verbruik van de laadpaal. Hierdoor wordt de woning wel vanuit de thuisaccu gevoed bijvoorbeeld maar zal het door de laadpaal gevraagde vermogen altijd vanuit het net komen.
Kortom, ik ben er nog niet uitAlle tips zijn welkom!
Ik heb in dit topic berichten van onderstaande personen over laadpalen, wellicht dat jullie nog verder gekomen zijn?
@Jazsie @V_ger @vanWalsum
In de eerste 5 minuten geeft Harold uitleg..... 👍
Tesla model 3 2019 Long Range
Laden met dess gaat vanzelf goed met de nieuwste versie van de dess software
Maar dan neem ik aan als handmatige actie toch? (Het zetten van de waarde van je Grid Setpoint)?prein2 schreef op maandag 1 april 2024 @ 11:29:
@Niek_ ik lees m'n laadpaal uit en zet m'n grid setpoint op de waarde van de laadpaal. Dan komt het laden dus uit het grid en niet van de accu..
Laden met dess gaat vanzelf goed met de nieuwste versie van de dess software
Tesla model 3 2019 Long Range
Ik regel zelf het vermogen van de Victron en hierbij tel ik het verbruik van de EV laadpaal eraf zodoende wordt de laadpaal nooit door de Victron "gevoed".Niek_ schreef op maandag 1 april 2024 @ 09:17:
[...]
Zou je over je eerste voorbeeld wellicht wat meer kunnen vertellen?
Het stond nog op m’n lijstje, maar nadat ik de afgelopen dagen al een paar keer heb gezien dat de laadpaal vanuit de thuisaccu werd gevoed wordt het nu echt tijd om hier iets aan te gaan doen.
Laadpaal betreft de Alfen Eve pro-line die via ethernet ook aan het thuisnetwerk hangt.
Multiplussen met Cerbo.
Alle verbruikers op AC-OUT 1 (dus ook laadpaal)
Tot nu toe de volgende oplossingen voorbij zien komen, maar die zijn (net) niet waar ik naar op zoek ben:
Laadpaal tussen meterkast en AC-IN plaatsen. Ik loop dan het risico dat de netzekering eruit gaat als zowel laadpaal als Victron maximaal gaan laden bij lage energieprijzen.
Laadpaal in-/uitschakelen via relais (generator start/stop bijvoorbeeld) op de Cerbo. De laadpaal werkt door het aanbieden van een laadpas ivm verrekening. Hard in-/uitschakelen zorgt ervoor dat ik eerst handmatig weer de laadpas moet aanbieden.
Geheel extern aansturen. Uitlezen wat het vermogen van de laadpaal is en Cerbo opdracht geven dit in mindering te brengen. Idealiter draait alles op 1 device (Cerbo).
Als ik er zo over nadenk zou ik het afgenomen vermogen van de laadpaal uitlezen. Bij voorkeur rechtstreeks uit de laadpaal via Modbus TCP (zie bijvoorbeeld dit document van Alfen met de registers) of met een meter van Victron ertussen. Deze data vervolgens gebruiken om in de Cerbo het maximaal aan AC-OUT1 te leveren vermogen verlagen met het verbruik van de laadpaal. Hierdoor wordt de woning wel vanuit de thuisaccu gevoed bijvoorbeeld maar zal het door de laadpaal gevraagde vermogen altijd vanuit het net komen.
Kortom, ik ben er nog niet uitAlle tips zijn welkom!
Ik heb in dit topic berichten van onderstaande personen over laadpalen, wellicht dat jullie nog verder gekomen zijn?
@Jazsie @V_ger @vanWalsum
De ESS van Victron is te beperkt voor wat ik ermee doe
6200 Wp | eGolf 32kWh | ESS Victron 18kWh
Weet uit ervaring dat alle begin overweldigend is.KC27 schreef op maandag 1 april 2024 @ 09:00:
[...]
Met wat jij allemaal op software gebied doet moet dit voor jou een koud kunstje zijn. Hier geldt: alles kan en "in de beperking toont zich de meester" onder het motto "less is more". Je moet wel een gx apparaat hebben maar dat kan ook een raspberry zijn met Venus OS.
Maar het uitlezen van de slimme meter, gaat dat via de P1 poort naar de GX.? Kun je daar wat meer over vertellen, het is wat mistig op de victron site.
Dan nog wat, ik kan ook kiezen voor een multiplus met GX ingebouwd, is dat wat? Of zeg je, ga voor een aparte GX.
Bedankt alvast.
Nee hoor, gaat volautomatisch..DrDeJe schreef op maandag 1 april 2024 @ 11:56:
[...]
Maar dan neem ik aan als handmatige actie toch? (Het zetten van de waarde van je Grid Setpoint)?
Ik zou zeggen ga voor een apparte GX.Willie Wortel schreef op maandag 1 april 2024 @ 15:46:
[...]
Weet uit ervaring dat alle begin overweldigend is.
Maar het uitlezen van de slimme meter, gaat dat via de P1 poort naar de GX.? Kun je daar wat meer over vertellen, het is wat mistig op de victron site.
Dan nog wat, ik kan ook kiezen voor een multiplus met GX ingebouwd, is dat wat? Of zeg je, ga voor een aparte GX.
Bedankt alvast.
Tibber; 3-fase Victron ESS, 38,4 kWh opslag; gasloos sinds 2013; Nibe F1245-10PC; SAP; HomeSeer4; Proxmox 8
Voor diegenen die (nog) geen EV laadstation hebben, overweeg het laadstation van Victron.Niek_ schreef op maandag 1 april 2024 @ 09:17:
Tot nu toe de volgende oplossingen voorbij zien komen, maar die zijn (net) niet waar ik naar op zoek ben:
Laadpaal tussen meterkast en AC-IN plaatsen. Ik loop dan het risico dat de netzekering eruit gaat als zowel laadpaal als Victron maximaal gaan laden bij lage energieprijzen.
Deze integreert met het besturingssysteem en de Cerbo.
Dit maakt het uitlezen en instellen van parameters heel gemakkelijk.
Ik heb zelf een Node Red toepassing die het laadvermogen van het EV laadstation (per seconde indien nodig) dynamisch aanpast aan het gebruik van de rest van het huis.
In dit forum zijn al een heleboel voorbeelden van mensen (o.a. @Jazsie )die P1 data naar een gx-device brengen m.b.v. mqtt en/of dbus. Je kunt er in dit forum op zoeken. De meeste doen dat met NodeRed. Ik heb zelf alleen ervaring met Python. Dat draait ook op een gx-device. Misschien een idee om van VB naar Python over te stappen. Ik heb dat zelf drie jaar geleden ook gedaan (op m'n 71ste verjaardag). Daar heb ik inmiddels al mijn aansturingsoftware van mijn energieverbruik in geschreven.Willie Wortel schreef op maandag 1 april 2024 @ 15:46:
[...]
Weet uit ervaring dat alle begin overweldigend is.
Maar het uitlezen van de slimme meter, gaat dat via de P1 poort naar de GX.? Kun je daar wat meer over vertellen, het is wat mistig op de victron site.
Dan nog wat, ik kan ook kiezen voor een multiplus met GX ingebouwd, is dat wat? Of zeg je, ga voor een aparte GX.
Bedankt alvast.
Ik heb zelf een ingebouwde GX in een van mijn Multiplussen, maar een kant en klare Cerbo of RaspberryPi met Venus OS kan ook prima. Het hangt af van het prijsverschil en/of je graag tweakt met uitdagingen. De Cerbo en de ingebouwde GX zijn "kant en klaar", de Raspberry moet je flashen en instellen (usb)
WP: Alpha Innotec MSW2-6S | PV: 20 x 300 Wp AEG | ACCU: 2x16x280Ah LiFePO4 3 x Multiplus II 48/3000 | DYN: Tibber | Gasloos | Day Ahead Optimizer
Oké, en het uitlezen van de victron. Voor mij niet geheel onbelangrijk. ik lees nu de MPPTs en de victron Shunt uit naast de BMSen. Heb jij dat ook.
Wil de data via de Raspberry hosten zodat ik de prachtige web paginas die ik met de designer maak blijven gebruiken en zoveel mogelijk geanimeerd en grafisch doen, cijfers zeggen me weinig, is ook niet leuk om naar te kijken.
Victron heeft excel sheets beschikbaar met alle info hoe je de gegevens in de gx kunt benaderen met mbus, mqtt of dbus: https://www.victronenergy...ads/technical-information. Daar kun je mooie plaatjes van maken.Willie Wortel schreef op maandag 1 april 2024 @ 17:30:
[...]
Oké, en het uitlezen van de victron. Voor mij niet geheel onbelangrijk. ik lees nu de MPPTs en de victron Shunt uit naast de BMSen. Heb jij dat ook.
Wil de data via de Raspberry hosten zodat ik de prachtige web paginas die ik met de designer maak blijven gebruiken en zoveel mogelijk geanimeerd en grafisch doen, cijfers zeggen me weinig, is ook niet leuk om naar te kijken.
WP: Alpha Innotec MSW2-6S | PV: 20 x 300 Wp AEG | ACCU: 2x16x280Ah LiFePO4 3 x Multiplus II 48/3000 | DYN: Tibber | Gasloos | Day Ahead Optimizer
[...]
Weet uit ervaring dat alle begin overweldigend is.
Maar het uitlezen van de slimme meter, gaat dat via de P1 poort naar de GX.? Kun je daar wat meer over vertellen, het is wat mistig op de victron site.
Willie de hele victron lijn is eigelijk plug en play als je aan victron aanbevolen onderdelen houd ,
wat betrefd slime meter uitlezen:
https://github.com/freakent/dbus-mqtt-devices
https://github.com/NuKeMtje/ESPHomeDSMRVictron
makelijker is het niet duidelijk te maken .
met een Esp32 van euro of 6 lees je dus al je slime meter uit en kan je de communicatie tussen een venus os apparaat opstarten en ook weer de gegevens gebruiken in home assistant.
vandaar dat victron mischien wat wazig is over het gebruik van alternatieven
uhm tja ik draai intel :) cel 1200 .gforce 2Ti
Als je een Victron tussen het net en je huis zet, dan meet een Victron GX model al voor je. Je moet daarvoor uiteraard wel een geschikt model hebben qua vermogen.djazzy schreef op maandag 1 april 2024 @ 22:11:
[quote]Willie Wortel schreef op maandag 1 april 2024 @ 15:46:
[...]
Weet uit ervaring dat alle begin overweldigend is.
Maar het uitlezen van de slimme meter, gaat dat via de P1 poort naar de GX.? Kun je daar wat meer over vertellen, het is wat mistig op de victron site.
Willie de hele victron lijn is eigelijk plug en play als je aan victron aanbevolen onderdelen houd ,
wat betrefd slime meter uitlezen:
https://github.com/freakent/dbus-mqtt-devices
https://github.com/NuKeMtje/ESPHomeDSMRVictron
makelijker is het niet duidelijk te maken .
met een Esp32 van euro of 6 lees je dus al je slime meter uit en kan je de communicatie tussen een venus os apparaat opstarten en ook weer de gegevens gebruiken in home assistant.
vandaar dat victron mischien wat wazig is over het gebruik van alternatieven
Ik draai de laatste firmwareversie op de Cerbo (v3.30) maar als ik daar via de remote console naar ESS ga heb ik de optie die Harold laat zien niet: 'Self-consumption from battery' met de keuze uit all system loads of only critica loads.DrDeJe schreef op maandag 1 april 2024 @ 10:07:
[...]
YouTube: Dynamische tarieven en andere nieuwe functies voor Victron thuisbatt...
In de eerste 5 minuten geeft Harold uitleg..... 👍
Zou zeker een oplossing zijn, dan hang ik de laadpaal aan AC-OUT2 en functioneert het inderdaad zoals gedacht (voeding laadpaal ten alle tijden uit net halen).
Zie in de handleiding van Victron bij 4.3.4 het volgende:
Ik heb deze menuoptie 'Inverter AC output in use' niet in m'n ESS menu. Nog eens verder zoeken waar dit dan aan ligt.This is relevant for ESS systems with:
-A grid meter
-Quite significant non-essential loads
-Feed-in disabled
Setting options are:
-All system loads (default)
-Only critical loads
This menu item is only visible if 'Inverter AC output in use' is enabled.
Doe je dit dan met nodeRed in de Cerbo of middels een extern device?prein2 schreef op maandag 1 april 2024 @ 11:29:
@Niek_ ik lees m'n laadpaal uit en zet m'n grid setpoint op de waarde van de laadpaal. Dan komt het laden dus uit het grid en niet van de accu..
Laden met dess gaat vanzelf goed met de nieuwste versie van de dess software
Deze kan je voor zover ik kan zien niet starten/stoppen met een laadpas indien je de laadkosten wilt laten verrekenen.MJ de Bruijn schreef op maandag 1 april 2024 @ 15:48:
[...]
Voor diegenen die (nog) geen EV laadstation hebben, overweeg het laadstation van Victron.
Deze integreert met het besturingssysteem en de Cerbo.
Dit maakt het uitlezen en instellen van parameters heel gemakkelijk.
Ik heb zelf een Node Red toepassing die het laadvermogen van het EV laadstation (per seconde indien nodig) dynamisch aanpast aan het gebruik van de rest van het huis.
Punt 1:Niek_ schreef op dinsdag 2 april 2024 @ 13:43:
[...]
Ik draai de laatste firmwareversie op de Cerbo (v3.30) maar als ik daar via de remote console naar ESS ga heb ik de optie die Harold laat zien niet: 'Self-consumption from battery' met de keuze uit all system loads of only critica loads.
Zou zeker een oplossing zijn, dan hang ik de laadpaal aan AC-OUT2 en functioneert het inderdaad zoals gedacht (voeding laadpaal ten alle tijden uit net halen).
Zie in de handleiding van Victron bij 4.3.4 het volgende:
[...]
Ik heb deze menuoptie 'Inverter AC output in use' niet in m'n ESS menu. Nog eens verder zoeken waar dit dan aan ligt.
Heb je dat? Bij mijn systemen zie ik die optie ook niet maar ik hang altijd alles achter de MP dus ik heb geen grid meter nodig. Misschien zien we het daardoor niet?This is relevant for ESS systems with:
-A grid meter
-Quite significant non-essential loads
-Feed-in disabled
Ik zal zo eens een meter ertussen hangen voor de test. Dan laat ik het weten.
23 kWp, 80 kWh, 11 kW laden, 17 kW ontladen. Victron VRM
Goed punt. Heb inderdaad geen meter omdat alles op de AC-OUT1 zit. Tof dat je het kan/wil testen. Erg benieuwd naar de uitkomst.RikHa schreef op dinsdag 2 april 2024 @ 14:10:
[...]
Punt 1:
[...]
Heb je dat? Bij mijn systemen zie ik die optie ook niet maar ik hang altijd alles achter de MP dus ik heb geen grid meter nodig. Misschien zien we het daardoor niet?
Ik zal zo eens een meter ertussen hangen voor de test. Dan laat ik het weten.
Zou in mijn ogen wel bijzonder zijn, aangezien de meter in deze situatie niks toevoegt.
Dan feed-in disabled, dat zou het hele (D)ESS de das om doen toch?
Verder nu niks aan AC-OUT2 hangen, dus dat kan ook nog van invloed zijn.
[ Voor 10% gewijzigd door Niek_ op 02-04-2024 14:35 ]
Bij mij hangt alles achter de MP's dus in principe heb ik de meter niet nodig maar omdat ik 2 meters heb (PAP en SAP) moet het systeem toch het totaal weten dat er door de hoofdzekeringen loopt. Daar heb ik een VM-3P75CT voor klaarliggen die dan beide meters tegelijkertijd moet gaan meten. Voorbereidingen liggen er al. Straks alleen nog even aansluiten.Niek_ schreef op dinsdag 2 april 2024 @ 14:33:
[...]
Goed punt. Heb inderdaad geen meter omdat alles op de AC-OUT1 zit. Tof dat je het kan/wil testen. Erg benieuwd naar de uitkomst.
Zou in mijn ogen wel bijzonder zijn, aangezien de meter in deze situatie niks toevoegt.
Dan feed-in disabled, dat zou het hele (D)ESS de das om doen toch?
Verder nu niks aan AC-OUT2 hangen, dus dat kan ook nog van invloed zijn.
Nou nee want het systeem zal dan bij te weinig zon op de goedkope momenten bij gaan laden. Maar waarom zou je dat willen? Ik heb wel een systeem op D-ESS draaien bij een bedrijf dat niet terug mag leveren maar die heeft een grootverbruikers aansluiting. Bij kleinverbruikers aansluitingen kunnen ze dat niet verbieden.Dan feed-in disabled, dat zou het hele (D)ESS de das om doen toch?
[ Voor 19% gewijzigd door RikHa op 02-04-2024 14:56 ]
23 kWp, 80 kWh, 11 kW laden, 17 kW ontladen. Victron VRM
Mijn laadpaal heeft een status pagina waar in json het afgenomen vermogen wordt uit gespuugd. Ik doe het via home assistant, maar via node red is het ook eenvoudig te maken. Kwestie van die json pagina oproepen en het grid setpoint gelijk stellen aan de afname van de laadpaal..Niek_ schreef op dinsdag 2 april 2024 @ 13:44:
[...]
Doe je dit dan met nodeRed in de Cerbo of middels een extern device?
:strip_exif()/f/image/ubn3Fuy4mvZgSrCd2tcUxuUT.jpg?f=fotoalbum_large)
Meter zit erin. Die rode hoofdschakelaar is de noodstop voor het ESS systeem. Dat zit aan de andere kant van de muur. Schakelaar schakelt de remote on/off op de eerste Multi. De rest gaat dan automatisch mee.
:strip_exif()/f/image/tSmMMkooMIX1sdccckMREh3I.jpg?f=fotoalbum_large)
Apart kastje voor de meetspoelen.
En zie daar:
:fill(white):strip_exif()/f/image/9liVeM76Ej3ZFCrmriEZt4lM.png?f=user_large) 
                                                [ Voor 8% gewijzigd door RikHa op 02-04-2024 18:42 ]
23 kWp, 80 kWh, 11 kW laden, 17 kW ontladen. Victron VRM
RikHa schreef op dinsdag 2 april 2024 @ 18:39:
@Niek_ Kijk:
[Afbeelding]
Meter zit erin. Die rode hoofdschakelaar is de noodstop voor het ESS systeem. Dat zit aan de andere kant van de muur. Schakelaar schakelt de remote on/off op de eerste Multi. De rest gaat dan automatisch mee.
[Afbeelding]
En hoe ziet het eruit met de groepenkast dicht?
Apart kastje voor de meetspoelen.
En zie daar:
[Afbeelding]
Tibber; 3-fase Victron ESS, 38,4 kWh opslag; gasloos sinds 2013; Nibe F1245-10PC; SAP; HomeSeer4; Proxmox 8
Vertrekpunt:
3fase Multiplus 3000/35, waarvan 1 in GX versie. (Geen Cerbo)
EM24 voor grid en EM24 voor PV
Pylontech accu's 26,2 kWh totaal
ESS aan
Meer PV dan eigen gebruik.
Nog geen variabel contract, dus salderen geeft beter rendement dan thuisaccu (met 20% verliezen)
Doelen:
- In de ochtend naar ca. 30% SoC.
- Overdag pieken opvangen (maximaal laden) zodat bij veel PV hopelijk de stoppen heel blijven en de panelen niet gaan aftoppen.
- In avond en nacht weer ontladen tot ca. SoC 35%
- Vooral leren en alvast een beetje voorbereiden op uurprijzen en afschaffen salderen t.z.t.
De code lijkt me wel leesbaar, beetje rommelig nog hier en daar, maar tijd om op te schonen was wat beperkt.
Laat maar weten als er stukjes onbegrijpelijk tussen zitten.
Alleen de coderegels met SetValueVictron op regel 166 en 234 beïnvloeden de Multiplussen. Als je die weglaat wordt er uitsluitend gelezen.
Het KeepAlive (MQTTpublish) op regel 256 hoeft niet iedere cycle van het programma. Te vaak uitvoeren belast de MQTT onnodig maar als je dit te weinig doet verbreekt de verbinding.
| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
 | #include <M5Unified.h>
#include <ArduinoJson.h>
#include <WiFi.h>
#include <PubSubClient.h>
#include <ezTime.h>
#include <HTTPClient.h>
// Zelf aanpassen:
// ssid     op regel 51
// password op regel 52
// VRM_ID   op regel 16 en op regel 55 IP-adres van GX
// Etoken   op regel 58 (is optioneel, voor ophalen dagprijzen bij enever.nl)
// Regels 260 tm 320 kunnen er uit als dagprijzen niet opgehaald worden
// VRM Portal ID
#define VRM_ID "ZELFINVULLEN"  // 12 karakters
// MQTT Topics:
#define topicSOCActual "N/" VRM_ID "/battery/512/Soc"
#define topicDCPOW     "N/" VRM_ID "/battery/512/Dc/0/Power"
#define topicDCCUR     "N/" VRM_ID "/battery/512/Dc/0/Current"
#define topicSOCLimit  "N/" VRM_ID "/system/0/Control/ActiveSocLimit"
#define topicSETP      "N/" VRM_ID "/settings/0/Settings/CGwacs/AcPowerSetPoint"         
#define topicMAXAmp    "N/" VRM_ID "/vebus/275/Dc/0/MaxChargeCurrent"
#define topicACPOW     "N/" VRM_ID "/grid/40/Ac/Power"
#define topicPVpow     "N/" VRM_ID "/pvinverter/42/Ac/Power"                            // PV power  LET OP!!! 42 kan varieren afhankelijk van de meter.
#define topicMLOAD     "N/" VRM_ID "/settings/0/Settings/SystemSetup/MaxChargeCurrent"  // Maximum charger current (Amps) 
#define topicWMODE     "N/" VRM_ID "/vebus/275/Mode"                                    //(3: on) (1: Charger only) (2: Inverter only)
#define ESS_1          "N/" VRM_ID "/system/0/SystemState/LowSoc"
#define ESS_2          "N/" VRM_ID "/system/0/SystemState/BatteryLife"
#define ESS_3          "N/" VRM_ID "/system/0/SystemState/ChargeDisabled"
#define ESS_4          "N/" VRM_ID "/system/0/SystemState/DischargeDisabled"
#define ESS_5          "N/" VRM_ID "/system/0/SystemState/SlowCharge"
#define ESS_6          "N/" VRM_ID "/system/0/SystemState/UserChargeLimited"
#define ESS_7          "N/" VRM_ID "/system/0/SystemState/UserDischargeLimited"
#define Consume_L1     "N/" VRM_ID "/system/0/Ac/Consumption/L1/Power"
#define Consume_L2     "N/" VRM_ID "/system/0/Ac/Consumption/L2/Power"
#define Consume_L3     "N/" VRM_ID "/system/0/Ac/Consumption/L3/Power"
#define NetAC1         "N/" VRM_ID "/grid/40/Ac/L1/Current"
#define NetAC2         "N/" VRM_ID "/grid/40/Ac/L2/Current"
#define NetAC3         "N/" VRM_ID "/grid/40/Ac/L3/Current"
#define KeepALive      "R/" VRM_ID "/keepalive"
// Voor instellen van de Multiplussen:
#define SetACPwr       "W/" VRM_ID "/settings/0/Settings/CGwacs/AcPowerSetPoint"  // Grid setpoint
#define MaxCurrent     "W/" VRM_ID "/vebus/275/Dc/0/MaxChargeCurrent"             // Max laadstroom in Amps
   
// Nb. Bij dit voorbeeld zijn 3-fase Multiplus 3000 series aangesloten waarvan 1 in GX uitvoering, dus zonder Cerbo
//     Deze Multiplussen laden met maximaal 35A elk, dus 105A totaal.
// WiFi
const char* ssid =     "ZELFINVULLEN";
const char* password = "ZELFINVULLEN";
// Victron 
const char* mqtt_server = "192.168.2.91";  // IP adres van de MultiplusGX (of Cerbo)
//  Enever.nl  (optie voor ophalen energieprijzen, niet nodig voor MQTT)
const char* EToken = "ZELFINVULLEN"; 
const char* TodayUrl = "https://enever.nl/api/stroomprijs_vandaag.php?token=";
// Globale variabelen
const int mqtt_port = 1883;
const int httpsPort = 443;
int Teller = 0;
int multi = 1;
int soc_Actual = 30;
int soc_Low_Limit = 10;
int AC_Watt = 0; int DC_Watt = 0; int DC_Amps = 0;
int WorkMode = 3;
int Ess[8];
int AC1 = 0; int AC2 = 0; int AC3 = 0;
int ConsL1 = 0; int ConsL2 = 0; int ConsL3 = 0;
int ConsTot = 0;
int Payload = 0;
int PV_Watt = 0;
int Blijfleven;
int MaxAC = 0;
int PasOp = 0;
int PrijsHoog = 0;
String antwoord;
double Pricing[24];
double Sorted[24]; 
double prijsTotaal = 0.0;
double AvgPrice = 0.0;
char buffer[20];
double Temp = 0.0;
int MaxCharge = 100; // Maximum Charge Current Standaard op 105 voor Pylontech (feb 2024)
int TargetCharge = 50; // 100;
float TC = 90.0;
int Grid_Setpoint = -20;
int ACPowerSetpoint = 0;
int Now    = 0;
int Minute = 0;
int DatumMaand = 0;
char Buff[20];
String Today;
String LaatstOpgehaald;
Timezone Woonplaats;
WiFiClient espClient;
PubSubClient client(espClient);
// Nb. Bij dit voorbeeld worden 2 EM24 meters gebruikt: 1x voor meten Grid, en 1x voor PV productie van zonnepanelen.   
void setup() {  
  M5.begin();Woonplaats.setPosix("CET-2:00");  //Voor wintertijd: Woonplaats.setPosix("CET-1:00"); 
  M5.Lcd.setTextSize(2);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED && (Teller < 500)) { delay(Teller++); M5.Lcd.print("."); }// Teller zorgt ervoor dat we niet eindeloos blijven proberen.
  if(WiFi.status() != WL_CONNECTED) exit(0);                                                     // Als we geen WiFi hebben, dan maar opnieuw opstarten  
  void updateNTP();  waitForSync();
  IPAddress myIP = WiFi.localIP(); M5.Lcd.println(myIP);    delay(2000);  
  client.setServer(mqtt_server, mqtt_port);
if (!client.connected()) {
    while (!client.connected()) {
      if (client.connect("M5StackClient")) { delay(100);
        client.publish(KeepALive, "");                
        } else     M5.Lcd.println("Disconnected"); 
    }
  }  
  // List of topics to subscribe to:    Zie de lijst bovenaan, de #define statements
  client.subscribe(topicSOCActual); client.subscribe(topicSOCLimit); client.subscribe(topicDCPOW);
  client.subscribe(topicDCCUR);     client.subscribe(topicACPOW);    
  client.subscribe(topicMLOAD);     client.subscribe(topicWMODE);    client.subscribe(ESS_1);
  client.subscribe(ESS_2);          client.subscribe(ESS_3);         client.subscribe(ESS_4);   
  client.subscribe(ESS_5);          client.subscribe(ESS_6);         client.subscribe(ESS_7);
  client.subscribe(Consume_L1);     client.subscribe(Consume_L2);    client.subscribe(Consume_L3);  
  client.subscribe(NetAC1);         client.subscribe(NetAC2);        client.subscribe(NetAC3);    
  client.subscribe(topicPVpow);     client.subscribe(topicSETP);     client.setCallback(callback); 
  //Scherm leegmaken
  M5.Lcd.fillScreen(BLACK);  M5.Lcd.setCursor(0, 0);
}
void loop() {  
  Now    = Woonplaats.dateTime("H").toInt();
  Minute = Woonplaats.dateTime("i").toInt();
  Today    = Woonplaats.dateTime("y-m-d");
  DatumMaand = Woonplaats.dateTime("m").toInt();  
  // Programma stuurt op MaxCurrent bij laden om te verdelen tussen Accu en Grid.
  // Lage TC > weinig opladen en veel terugleveren
  // Hoge TC > veel terugleveren en minder laden.
  MaxAC = abs(AC1); if(abs(AC2) > MaxAC)MaxAC = abs(AC2); if(abs(AC3) > MaxAC)MaxAC = abs(AC3); 
  client.loop(); delay(50);      
                     
    if(PV_Watt < 12000  || MaxAC < 17)  TC = TC - 0.1; 
    if(PV_Watt < 11000  || MaxAC < 16)  TC = TC - 0.2;     
    if(PV_Watt < 10000  || MaxAC < 15)  TC = TC - 0.5; 
    if(PV_Watt < 9000  || MaxAC < 14)  TC = TC - 1.0; 
    if(PV_Watt < 8000  || MaxAC < 13)  TC = TC - 10;  
    if(PV_Watt < 100)     TC = 105.0;  // In avond en nacht terugzetten     
//    if(soc_Actual < 15) TC = 50;  // Bij lege accu aanvullen      
    if(soc_Actual < 30)TC = ((abs(DC_Watt) + abs(AC_Watt)) / 100);  // Bij lege accu aanvullen  
    if(PV_Watt > 8000  && MaxAC > 18)  TC = TC + 0.1;      
    if(PV_Watt > 9000  && MaxAC > 19)  TC = TC + 0.2; 
    if(PV_Watt > 10000 && MaxAC > 20)  TC = TC + 10;     
    if(PV_Watt > 10000 && MaxAC > 21)  TC = TC + 25;         
    if(PV_Watt > 10000 && MaxAC > 22)  TC = 105.0;  // Pas op je hoofdzekeringen.... , 22 Ampere, gevaarlijk dicht bij max.(25).--> Vol accu laden    
    if(TC > 105.0 )    TC = 105.0;  // Meer dan 105 heeft geen nut  
    if(TC < 4.0 )      TC = 4.0;    // Nooit minder dan 3A op 48V
  TargetCharge = int(TC); 
  if(MaxCharge != TargetCharge){setValueVictron(MaxCurrent, TargetCharge); client.loop();delay(10);}   //  Aanpassen in de GX module
  client.loop(); delay(50);
  
  // Visualisatie. Opmaak beetje 'quick and dirty' bij elkaar gesprokkeld, ruimte voor verbetering
  M5.Lcd.setTextSize(2);
  // Linksonder in het klein, tijd, datum en Grid setpoint
  M5.Lcd.setCursor(0, 186);if(Now < 10)   M5.Lcd.print("0"); M5.Lcd.print(Now); M5.Lcd.print(":");
                           if(Minute < 10)M5.Lcd.print("0"); M5.Lcd.println(Minute); 
                           M5.Lcd.print(Today);M5.Lcd.println(" ");
                           M5.Lcd.setCursor(0, 222);
                           M5.Lcd.print("GT:");M5.Lcd.print(Grid_Setpoint);M5.Lcd.print(" ");
  client.loop();delay(50); 
  // Lijst met bovenin de capaciteit in kWh 
  M5.Lcd.setCursor(0, 0); M5.Lcd.setTextSize(3); M5.Lcd.setTextColor(WHITE, BLACK);
  float cap = (soc_Actual - soc_Low_Limit) * 26.2 / 100;  // laadpercentagex  
  if(cap < 0) cap = 0.0; 
  M5.Lcd.print("Cap:");  M5.Lcd.print(cap);M5.Lcd.print("kWh "); if(cap < 10.0 )M5.Lcd.print(" ");
  // Rechtsboven het doel voor opladen (Amps laadstroom naar de Pylontechs) 
  M5.Lcd.print("T");M5.Lcd.print(TargetCharge);
  if (TargetCharge < 100) M5.Lcd.print(" "); if (TargetCharge < 10) M5.Lcd.print(" ");M5.Lcd.println("");
  // Regeltje voor SOC, min-huidig-max
  M5.Lcd.print("SoC:"); M5.Lcd.print(soc_Low_Limit);M5.Lcd.print("-");  
  if(soc_Actual >= soc_Low_Limit)M5.Lcd.setTextColor(GREEN, BLACK); else M5.Lcd.setTextColor(RED, BLACK);
  M5.Lcd.print(soc_Actual); 
  M5.Lcd.setTextColor(WHITE, BLACK);
  M5.Lcd.println("-100% ");   
  // Regeltje voor PV
  ConsTot = ConsL1 + ConsL2 + ConsL3;
  sprintf(Buff, "PV :%6dW ", PV_Watt);           M5.Lcd.println(Buff); 
  // Regeltje voor eigen gebruik
  sprintf(Buff, "Use:%6dW ", ConsTot);         M5.Lcd.println(Buff);
  // Regeltje voor ESS
  sprintf(Buff, "ESS:%6dW %3dA", DC_Watt, DC_Amps);M5.Lcd.println(Buff);
  M5.Lcd.setTextColor(GREEN, BLACK);
  if(MaxAC >= 17)M5.Lcd.setTextColor(YELLOW, BLACK);
  if(MaxAC >= 19)M5.Lcd.setTextColor(ORANGE, BLACK);
  if(MaxAC >= 20)M5.Lcd.setTextColor(RED, BLACK);
  // Regeltje voor Grid
  sprintf(Buff, "Net:%6dW %3dA", AC_Watt, MaxAC);M5.Lcd.println(Buff);
  M5.Lcd.setTextColor(WHITE, BLACK);
  // Regeltje voor afwijkende Workmode als die er is....
  switch(WorkMode){ 
    case 1: M5.Lcd.println("Charger only   "); break;
    case 2: M5.Lcd.println("Inverter only  "); break;
  //case 3: M5.Lcd.println("Mode is on     "); break;
    case 4: M5.Lcd.println("Mode is off    "); break;
  } 
  // Ontladen van accu voor de volgende dag.... 
  // Een (soms) flink negatief Grid_Setpoint wordt gebuikt om in de avond (vanaf 7 uur) en nacht terug te leveren
  // Issue voor mij dat ik teveel PV productie heb en accu gebruik om stroom terug naar grid wat te beperken.
  // Dat kan alleen als ik nog ruimte heb in de accu's. Dus in de ochtend niet te vol beginnen
  Grid_Setpoint = -20; 
  if(DatumMaand > 2 && DatumMaand < 10 && soc_Actual >= 40){   // In de zomermaanden (maart tm sept): niet te veel cap. in de accu houden
    switch(Now){           
    case 19: Grid_Setpoint = -1 * (soc_Actual - 40) * 26,2 / 1 * 10 * PrijsHoog; break; // Tijdens de avond ontladen tot ca. 40-35% 
    case 20: Grid_Setpoint = -1 * (soc_Actual - 40) * 26,2 / 1 * 10 * PrijsHoog; break;     
    case 21: Grid_Setpoint = -1 * (soc_Actual - 40) * 26,2 / 1 * 10 * PrijsHoog; break; 
    case 22: Grid_Setpoint = -1 * (soc_Actual - 40) * 26,2 / 7 * 10 * PrijsHoog; break;
    case 23: Grid_Setpoint = -1 * (soc_Actual - 40) * 26,2 / 6 * 10 * PrijsHoog; break;
    case 1:  Grid_Setpoint = -1 * (soc_Actual - 40) * 26,2 / 5 * 10 * PrijsHoog; break;
    case 2:  Grid_Setpoint = -1 * (soc_Actual - 40) * 26,2 / 4 * 10 * PrijsHoog; break;
    case 3:  Grid_Setpoint = -1 * (soc_Actual - 40) * 26,2 / 3 * 10 * PrijsHoog; break;
    case 4:  Grid_Setpoint = -1 * (soc_Actual - 40) * 26,2 / 2 * 10 ; break;
    case 5:  Grid_Setpoint = -1 * (soc_Actual - 35) * 26,2 / 1 * 10 ; break;    
    }    
   }          
  if(Grid_Setpoint != ACPowerSetpoint) setValueVictron(SetACPwr, Grid_Setpoint);
  // Regeltje voor ESS status (als die er is)
  if((Ess[1] + Ess[2] + Ess[3] + Ess[4] + Ess[5] + Ess[6] + Ess[7]) >0){
    M5.Lcd.setTextColor(BLUE, BLACK); PrijsHoog = 0;
    for (int i = 1; i < 8; i++) {  if(Ess[i] == 1)M5.Lcd.print("#");M5.Lcd.print(i); M5.Lcd.print(" "); }
    Grid_Setpoint = -20; // Als ESS status, dan setpoint weer op default waard 
    }
   
  // Regeltje voor huidig tarief HOOG/LAAG en % t.o.v. gemiddelde
  if(Pricing[Now] > Sorted[6]){M5.Lcd.print("Hoog: +"); PrijsHoog = 1 ;                          // Bij hoogste 5 prijzen
                                  M5.Lcd.print(int(100 * ((Pricing[Now] / AvgPrice) -1)));
                                  M5.Lcd.setTextColor(RED, BLACK);
                                  M5.Lcd.println("%   ");
                                  M5.Lcd.setTextColor(WHITE, BLACK);} else 
  if(Pricing[Now] < AvgPrice && AvgPrice != 0){M5.Lcd.print("Laag: -");  PrijsHoog = 0;
                                               M5.Lcd.print(int(100 * (1 - (Pricing[Now] / AvgPrice))));
                                               M5.Lcd.setTextColor(GREEN, BLACK);M5.Lcd.println("%   ");
                                               M5.Lcd.setTextColor(WHITE, BLACK);} 
                                        //else   M5.Lcd.print("    ");
  
  M5.Lcd.setTextSize(8); M5.Lcd.setCursor(130, 180); M5.Lcd.setTextColor(GREEN, BLACK); M5.Lcd.print(soc_Actual);M5.Lcd.print("% ");
  Blijfleven++;if(Blijfleven > 200){client.publish(KeepALive, ""); delay(70); Blijfleven=0;}
  client.loop();delay(10);  
  
// ****** Begin stukje energieprijzen ******** dit hele stuk kun je uit-commentarieren **********************************
  M5.Lcd.setTextSize(2);
  //if(LaatstOpgehaald != Today && Now == 1 && Minute ==3){  // Een keer per dag om 01:03uur
  if(LaatstOpgehaald != Today && (Now > 0 || Minute > 17)){  // Hebben we vandaag de prijzen nog niet?, dan even ophalen...   
  prijsTotaal = 0.0;   AvgPrice = 0.0;
  HTTPClient http;
    String serverPath = TodayUrl + String(EToken); // Construct API URL voor energieprijzen
    http.begin(serverPath);
    int httpResponseCode = http.GET();
    if (httpResponseCode == 200) { // Check for the return code     
      antwoord = http.getString();
      LaatstOpgehaald = Today;
    } else {  M5.Lcd.setCursor(0, 0);
              M5.Lcd.println("http call failed: ");    
              M5.Lcd.println(httpResponseCode); delay(200);
              M5.Lcd.fillScreen(BLACK); 
              M5.Lcd.setCursor(0, 0); }
  http.end();
  M5.Lcd.fillScreen(BLACK);  M5.Lcd.setCursor(0, 0);
  int TariefUur = 0;
  DynamicJsonDocument doc(16384);    // zie: https://arduinojson.org/v6/assistant/ voor code en sizing :-)
  DeserializationError error = deserializeJson(doc, antwoord);
  if (error) {    M5.Lcd.setCursor(0, 0);
                  M5.Lcd.println("deserializeJson() failed: ");    
                  M5.Lcd.println(error.c_str()); delay(200);
                  M5.Lcd.fillScreen(BLACK); 
                  M5.Lcd.setCursor(0, 0); }
   else {
   const char* status = doc["status"]; // "true"
   for (JsonObject data_item : doc["data"].as<JsonArray>()) {
      const char* data_item_datum = data_item["datum"]; 
      const char* data_item_prijs = data_item["prijs"];    
      prijsTotaal = prijsTotaal + atof(data_item_prijs);
      Sorted[TariefUur] = atof(data_item_prijs); Pricing[TariefUur++] = atof(data_item_prijs);     
      }  AvgPrice = prijsTotaal / 24;    
    for (int i = 0; i < 23; i++)    // Sorteren aflopend op prijs in array Sorted
        for (int j = 23; j > i; j--)
           if(Sorted[i] < Sorted[j])             {Temp = Sorted[j]; Sorted[j] = Sorted[i]; Sorted[i] = Temp;}  
    for (int i = 0; i <= 23; i++) {
      M5.Lcd.setCursor(0 , i * 18 ); if(i >= 12) M5.Lcd.setCursor(160 , i * 18 - 216 ); 
      M5.Lcd.setTextColor(WHITE, BLACK); 
      if(Pricing[i] <= Sorted[18]) M5.Lcd.setTextColor(YELLOW, BLACK);  // Goedkoopste 6
      //if(Pricing[i] <= AvgPrice) M5.Lcd.setTextColor(YELLOW, BLACK);     // Goedkoper dan gemiddelde
      if(Pricing[i] == Sorted[23])M5.Lcd.setTextColor(GREEN,  BLACK); // Goedkoopste uur
      if(Pricing[i] > Sorted[6])  M5.Lcd.setTextColor(ORANGE, BLACK);   // Duurste 5    
      //if(Pricing[i] > AvgPrice)  M5.Lcd.setTextColor(ORANGE, BLACK);      // Duurder dan gemiddelde     
      if(Pricing[i] == Sorted[0]) M5.Lcd.setTextColor(RED,    BLACK);   // Duurste uur
      if(i == Now)sprintf(buffer, "%2d=>%.5f ", i, Pricing[i]); 
             else sprintf(buffer, "%2d: %.5f ", i, Pricing[i]); M5.Lcd.print(buffer);        
       } 
    M5.Lcd.setTextColor(WHITE, BLACK); M5.Lcd.println(""); 
    sprintf(buffer, "Avg:%.5f  ", AvgPrice); M5.Lcd.print(buffer);
    if(Pricing[Now] > AvgPrice)M5.Lcd.print("HOOG");else M5.Lcd.print("LAAG"); 
    delay(2500); // Paar tellen in beeld
    M5.Lcd.fillScreen(BLACK); 
    M5.Lcd.setCursor(0, 0);
    }
  }
  
  // *** Einde stukje energieprijzen ******************************************************************
}
void callback(char* topic, byte* payload, unsigned int length) {
  StaticJsonDocument<248> doc; 
  int val = 0;
  DeserializationError error = deserializeJson(doc, payload, length);   
  if (error) { M5.Lcd.setTextSize(2); M5.Lcd.setCursor(0, 190);  M5.Lcd.println(error.c_str()); delay(2000); } 
  else 
  {   // Karakter voor karakter uitpluizen 
  multi = 1; // positief getal
  for (int i = 0; i < length; i++) {    
    switch((char)payload[i]){
      case 34:                     break; // "
      case 44:                     break; //comma
      case 45: multi = -1;         break; // - (negatief getal)
      case 46: i =length ;         break; // punt
      case 48: val = 10 * val + 0; break; // 0
      case 49: val = 10 * val + 1; break; // 1
      case 50: val = 10 * val + 2; break; // 2
      case 51: val = 10 * val + 3; break; // 3
      case 52: val = 10 * val + 4; break; // 4
      case 53: val = 10 * val + 5; break;
      case 54: val = 10 * val + 6; break;
      case 55: val = 10 * val + 7; break;
      case 56: val = 10 * val + 8; break; // 8
      case 57: val = 10 * val + 9; break; // 9
      case 58:                     break; // :
      case 123:                    break; // {
      case 125: i =length ;        break; // }
      }
    }  
  if((strcmp(topic, topicSOCActual) == 0)) soc_Actual   = val * multi; 
  if((strcmp(topic, topicSOCLimit) == 0))  soc_Low_Limit   = val * multi;   
  if((strcmp(topic, topicACPOW) == 0))     AC_Watt  = val * multi;      
  if((strcmp(topic, topicDCPOW) == 0))     DC_Watt  = val * multi; 
  if((strcmp(topic, topicDCCUR) == 0))     DC_Amps  = val * multi;
  if((strcmp(topic, topicWMODE) == 0))     WorkMode = val * multi;
  if((strcmp(topic, topicMAXAmp) == 0))    MaxCharge  = val * multi;
  if((strcmp(topic, topicPVpow) == 0))     PV_Watt  = val * multi;
  if((strcmp(topic, topicSETP) == 0))      ACPowerSetpoint = val * multi;
  if((strcmp(topic, ESS_1) == 0))  Ess[1]  = val ;   if((strcmp(topic, ESS_2) == 0))  Ess[2]  = val ;
  if((strcmp(topic, ESS_3) == 0))  Ess[3]  = val ;   if((strcmp(topic, ESS_4) == 0))  Ess[4]  = val ;
  if((strcmp(topic, ESS_5) == 0))  Ess[5]  = val ;   if((strcmp(topic, ESS_6) == 0))  Ess[6]  = val ;
  if((strcmp(topic, ESS_7) == 0))  Ess[7]  = val ;
  if((strcmp(topic, Consume_L1) == 0)) ConsL1  = val * multi;  
  if((strcmp(topic, Consume_L2) == 0)) ConsL2  = val * multi;
  if((strcmp(topic, Consume_L3) == 0)) ConsL3  = val * multi;
  if((strcmp(topic, NetAC1) == 0)) AC1  = val * multi;  
  if((strcmp(topic, NetAC2) == 0)) AC2  = val * multi;
  if((strcmp(topic, NetAC3) == 0)) AC3  = val * multi;
  }   
} 
void setValueVictron( char* Wtopic, int setpointValue) {
    String payload; 
    StaticJsonDocument<248> doc; 
    doc["value"] = setpointValue;
    serializeJson(doc, payload);      
    client.publish(Wtopic, payload.c_str()); 
}
void checkforerrors() {
int rc = client.state();   
  switch(rc){
   case -4 : M5.Lcd.println("MQTT_CONNECTION_TIMEOUT - the server didn't respond within the keepalive time");break;
   case -3 : M5.Lcd.println("MQTT_CONNECTION_LOST - the network connection was broken");break;
   case -2 : M5.Lcd.println("MQTT_CONNECT_FAILED - the network connection failed");break;
   case -1 : M5.Lcd.println("MQTT_DISCONNECTED - the client is disconnected cleanly");break;
   case 0 : M5.Lcd.println("                                                                                    ");break;
   case 1 : M5.Lcd.println("MQTT_CONNECT_BAD_PROTOCOL - the server doesn't support the requested version of MQTT");break;
   case 2 : M5.Lcd.println("MQTT_CONNECT_BAD_CLIENT_ID - the server rejected the client identifier");break;
   case 3 : M5.Lcd.println("MQTT_CONNECT_UNAVAILABLE - the server was unable to accept the connection");break;
   case 4 : M5.Lcd.println("MQTT_CONNECT_BAD_CREDENTIALS - the username/password were rejected");break;
   case 5 : M5.Lcd.println("MQTT_CONNECT_UNAUTHORIZED - the client was not authorized to connect");break;
   }   
} | 
:strip_exif()/f/image/TGsncqfmkRwoCl9Hj0yFUPge.jpg?f=fotoalbum_large)
En voor mijn gemoedsrust.... Je bent zelf verantwoordelijk als je van bovenstaande code gebruik maakt!
[ Voor 101% gewijzigd door HermanGast op 04-04-2024 06:02 ]
Gasloos, 14,99kWp, Ekrano, 70kWh Pylontech, 3xVictron MP8000, M5stack, MQTT
Ah, dus toch de meter.RikHa schreef op dinsdag 2 april 2024 @ 18:39:
@Niek_ Kijk:
[Afbeelding]
Meter zit erin. Die rode hoofdschakelaar is de noodstop voor het ESS systeem. Dat zit aan de andere kant van de muur. Schakelaar schakelt de remote on/off op de eerste Multi. De rest gaat dan automatisch mee.
[Afbeelding]
Apart kastje voor de meetspoelen.
En zie daar:
[Afbeelding]
En toch vind ik het stom
Maar goed, mooi dat je het uitgezocht hebt. Dan toch maar een meter bestellen, laadpaal op AC-OUT2 en dan nog even pielen hoe ik de laadpaal ook op het VRM te zien krijg (al zal dat nog wel even wat gedoe worden
En hoe ziet het eruit met de groepenkast dicht?
:strip_exif()/f/image/wKEC9kOuIVUSXrZG2uL1atCH.jpg?f=fotoalbum_large)
Zo dus.
Haha, melige bui, sorry hoor.
23 kWp, 80 kWh, 11 kW laden, 17 kW ontladen. Victron VRM
Ok. Mijn intersse gaat voornamelijk uit hoe je die ethernet kabel wegewerkt. Ik heb namelijk een VEGA verdeler en die heeft een deur. Ik had liever gezien dat de ethernet aansluiting net zoals bij de EM24 aan de onderkant zit.RikHa schreef op dinsdag 2 april 2024 @ 21:32:
@John245
[...]
[Afbeelding]
Zo dus.
Haha, melige bui, sorry hoor.Alles ligt nog open, morgen verder klussen. Een uitgebreid verslag volgt nog.
Tibber; 3-fase Victron ESS, 38,4 kWh opslag; gasloos sinds 2013; Nibe F1245-10PC; SAP; HomeSeer4; Proxmox 8
Ja daar moet ik nog wat op verzinnen. Inderdaad niet handig.John245 schreef op dinsdag 2 april 2024 @ 21:38:
[...]
Ok. Mijn intersse gaat voornamelijk uit hoe je die ethernet kabel wegewerkt. Ik heb namelijk een VEGA verdeler en die heeft een deur. Ik had liever gezien dat de ethernet aansluiting net zoals bij de EM24 aan de onderkant zit.
23 kWp, 80 kWh, 11 kW laden, 17 kW ontladen. Victron VRM
Dankjewel.HermanGast schreef op dinsdag 2 april 2024 @ 19:53:
De Victron volledig aansturen met alleen een M5stack middels MQTT (lezen en schrijven) en als optie ook bij enever.nl de uurprijzen ophalen. Heb HA al een poos geleden uitgezet, daar kan ik niets mee.
Vertrekpunt:
3fase Multiplus 3000/35, waarvan 1 in GX versie. (Geen Cerbo)
EM24 voor grid en EM24 voor PV
Pylontech accu's 26,2 kWh totaal
ESS aan
Meer PV dan eigen gebruik.
Nog geen variabel contract, dus salderen geeft beter rendement dan thuisaccu (met 20% verliezen)
Doelen:
- In de ochtend naar ca. 30% SoC.
- Overdag pieken opvangen (maximaal laden) zodat bij veel PV hopelijk de stoppen heel blijven en de panelen niet gaan aftoppen.
- In avond en nacht weer ontladen tot ca. SoC 35%
- Vooral leren en alvast een beetje voorbereiden op uurprijzen t.z.t.
De code lijkt me wel leesbaar, beetje rommelig nog hier en daar, maar tijd om op te schonen was wat beperkt.
Laat maar weten als er stukjes onbegrijpelijk tussen zitten.
code:
#include <M5Unified.h> #include <ArduinoJson.h> #include <WiFi.h> #include <PubSubClient.h> #include <ezTime.h> #include <HTTPClient.h> // Zelf aanpassen: // ssid op regel 51 // password op regel 52 // VRM_ID op regel 16 en op regel 55 IP-adres van GX // Etoken op regel 58 (is optioneel, voor ophalen dagprijzen bij enever.nl) // Regels 260 tm 320 kunnen er uit als dagprijzen niet opgehaald worden // VRM Portal ID #define VRM_ID "ZELFINVULLEN" // 12 karakters // MQTT Topics: #define topicSOCActual "N/" VRM_ID "/battery/512/Soc" #define topicDCPOW "N/" VRM_ID "/battery/512/Dc/0/Power" #define topicDCCUR "N/" VRM_ID "/battery/512/Dc/0/Current" #define topicSOCLimit "N/" VRM_ID "/system/0/Control/ActiveSocLimit" #define topicSETP "N/" VRM_ID "/settings/0/Settings/CGwacs/AcPowerSetPoint" #define topicMAXAmp "N/" VRM_ID "/vebus/275/Dc/0/MaxChargeCurrent" #define topicACPOW "N/" VRM_ID "/grid/40/Ac/Power" #define topicPVpow "N/" VRM_ID "/pvinverter/42/Ac/Power" // PV power LET OP!!! 42 kan varieren afhankelijk van de meter. #define topicMLOAD "N/" VRM_ID "/settings/0/Settings/SystemSetup/MaxChargeCurrent" // Maximum charger current (Amps) #define topicWMODE "N/" VRM_ID "/vebus/275/Mode" //(3: on) (1: Charger only) (2: Inverter only) #define ESS_1 "N/" VRM_ID "/system/0/SystemState/LowSoc" #define ESS_2 "N/" VRM_ID "/system/0/SystemState/BatteryLife" #define ESS_3 "N/" VRM_ID "/system/0/SystemState/ChargeDisabled" #define ESS_4 "N/" VRM_ID "/system/0/SystemState/DischargeDisabled" #define ESS_5 "N/" VRM_ID "/system/0/SystemState/SlowCharge" #define ESS_6 "N/" VRM_ID "/system/0/SystemState/UserChargeLimited" #define ESS_7 "N/" VRM_ID "/system/0/SystemState/UserDischargeLimited" #define Consume_L1 "N/" VRM_ID "/system/0/Ac/Consumption/L1/Power" #define Consume_L2 "N/" VRM_ID "/system/0/Ac/Consumption/L2/Power" #define Consume_L3 "N/" VRM_ID "/system/0/Ac/Consumption/L3/Power" #define NetAC1 "N/" VRM_ID "/grid/40/Ac/L1/Current" #define NetAC2 "N/" VRM_ID "/grid/40/Ac/L2/Current" #define NetAC3 "N/" VRM_ID "/grid/40/Ac/L3/Current" #define KeepALive "R/" VRM_ID "/keepalive" // Voor instellen van de Multiplussen: #define SetACPwr "W/" VRM_ID "/settings/0/Settings/CGwacs/AcPowerSetPoint" // Grid setpoint #define MaxCurrent "W/" VRM_ID "/vebus/275/Dc/0/MaxChargeCurrent" // Max laadstroom in Amps // Nb. Bij dit voorbeeld zijn 3-fase Multiplus 3000 series aangesloten waarvan 1 in GX uitvoering, dus zonder Cerbo // Deze Multiplussen laden met maximaal 35A elk, dus 105A totaal. // WiFi const char* ssid = "ZELFINVULLEN"; const char* password = "ZELFINVULLEN0"; // Victron const char* mqtt_server = "192.168.2.91"; // IP adres van de MultiplusGX (of Cerbo) // Enever.nl (optie voor ophalen energieprijzen, niet nodig voor MQTT) const char* EToken = "ZELFINVULLEN"; const char* TodayUrl = "https://enever.nl/api/stroomprijs_vandaag.php?token="; // Globale variabelen const int mqtt_port = 1883; const int httpsPort = 443; int Teller = 0; int multi = 1; int soc_Actual = 30; int soc_Low_Limit = 10; int AC_Watt = 0; int DC_Watt = 0; int DC_Amps = 0; int WorkMode = 3; int Ess[8]; int AC1 = 0; int AC2 = 0; int AC3 = 0; int ConsL1 = 0; int ConsL2 = 0; int ConsL3 = 0; int ConsTot = 0; int Payload = 0; int PV_Watt = 0; int Blijfleven; int MaxAC = 0; int PasOp = 0; int PrijsHoog = 0; String antwoord; double Pricing[24]; double Sorted[24]; double prijsTotaal = 0.0; double AvgPrice = 0.0; char buffer[20]; double Temp = 0.0; int MaxCharge = 100; // Maximum Charge Current Standaard op 105 voor Pylontech (feb 2024) int TargetCharge = 50; // 100; float TC = 90.0; int Grid_Setpoint = -20; int ACPowerSetpoint = 0; int Now = 0; int Minute = 0; int DatumMaand = 0; char Buff[20]; String Today; String LaatstOpgehaald; Timezone Woonplaats; WiFiClient espClient; PubSubClient client(espClient); // Nb. Bij dit voorbeeld worden 2 EM24 meters gebruikt: 1x voor meten Grid, en 1x voor PV productie van zonnepanelen. void setup() { M5.begin();Woonplaats.setPosix("CET-2:00"); //Voor wintertijd: Woonplaats.setPosix("CET-1:00"); M5.Lcd.setTextSize(2); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED && (Teller < 500)) { delay(Teller++); M5.Lcd.print("."); }// Teller zorgt ervoor dat we niet eindeloos blijven proberen. if(WiFi.status() != WL_CONNECTED) exit(0); // Als we geen WiFi hebben, dan maar opnieuw opstarten void updateNTP(); waitForSync(); IPAddress myIP = WiFi.localIP(); M5.Lcd.println(myIP); delay(2000); client.setServer(mqtt_server, mqtt_port); if (!client.connected()) { while (!client.connected()) { if (client.connect("M5StackClient")) { delay(100); client.publish(KeepALive, ""); } else M5.Lcd.println("Disconnected"); } } // List of topics to subscribe to: Zie de lijst bovenaan, de #define statements client.subscribe(topicSOCActual); client.subscribe(topicSOCLimit); client.subscribe(topicDCPOW); client.subscribe(topicDCCUR); client.subscribe(topicACPOW); client.subscribe(topicMLOAD); client.subscribe(topicWMODE); client.subscribe(ESS_1); client.subscribe(ESS_2); client.subscribe(ESS_3); client.subscribe(ESS_4); client.subscribe(ESS_5); client.subscribe(ESS_6); client.subscribe(ESS_7); client.subscribe(Consume_L1); client.subscribe(Consume_L2); client.subscribe(Consume_L3); client.subscribe(NetAC1); client.subscribe(NetAC2); client.subscribe(NetAC3); client.subscribe(topicPVpow); client.subscribe(topicSETP); client.setCallback(callback); //Scherm leegmaken M5.Lcd.fillScreen(BLACK); M5.Lcd.setCursor(0, 0); } void loop() { Now = Woonplaats.dateTime("H").toInt(); Minute = Woonplaats.dateTime("i").toInt(); Today = Woonplaats.dateTime("y-m-d"); DatumMaand = Woonplaats.dateTime("m").toInt(); // Programma stuurt op MaxCurrent bij laden om te verdelen tussen Accu en Grid. // Lage TC > weinig opladen en veel terugleveren // Hoge TC > veel terugleveren en minder laden. MaxAC = abs(AC1); if(abs(AC2) > MaxAC)MaxAC = abs(AC2); if(abs(AC3) > MaxAC)MaxAC = abs(AC3); client.loop(); delay(50); if(PV_Watt < 12000 || MaxAC < 17) TC = TC - 0.1; if(PV_Watt < 11000 || MaxAC < 16) TC = TC - 0.2; if(PV_Watt < 10000 || MaxAC < 15) TC = TC - 0.5; if(PV_Watt < 9000 || MaxAC < 14) TC = TC - 1.0; if(PV_Watt < 8000 || MaxAC < 13) TC = TC - 10; if(PV_Watt < 100) TC = 105.0; // In avond en nacht terugzetten if(soc_Actual < 15) TC = 50; // Bij lege accu aanvullen if(soc_Actual < 30)TC = ((abs(DC_Watt) + abs(AC_Watt)) / 100); // Bij lege accu aanvullen if(PV_Watt > 8000 && MaxAC > 18) TC = TC + 0.1; if(PV_Watt > 9000 && MaxAC > 19) TC = TC + 0.2; if(PV_Watt > 10000 && MaxAC > 20) TC = TC + 10; if(PV_Watt > 10000 && MaxAC > 21) TC = TC + 25; if(PV_Watt > 10000 && MaxAC > 22) TC = 105.0; // Pas op je hoofdzekeringen.... , 22 Ampere, gevaarlijk dicht bij max.(25).--> Vol accu laden if(TC > 105.0 ) TC = 105.0; // Meer dan 105 heeft geen nut if(TC < 4.0 ) TC = 4.0; // Nooit minder dan 3A op 48V TargetCharge = int(TC); if(MaxCharge != TargetCharge){setValueVictron(MaxCurrent, TargetCharge); client.loop();delay(10);} // Aanpassen in de GX module client.loop(); delay(50); // Visualisatie. Opmaak beetje 'quick and dirty' bij elkaar gesprokkeld, ruimte voor verbetering M5.Lcd.setTextSize(2); // Linksonder in het klein, tijd, datum en Grid setpoint M5.Lcd.setCursor(0, 186);if(Now < 10) M5.Lcd.print("0"); M5.Lcd.print(Now); M5.Lcd.print(":"); if(Minute < 10)M5.Lcd.print("0"); M5.Lcd.println(Minute); M5.Lcd.print(Today);M5.Lcd.println(" "); M5.Lcd.setCursor(0, 222); M5.Lcd.print("GT:");M5.Lcd.print(Grid_Setpoint);M5.Lcd.print(" "); client.loop();delay(50); // Lijst met bovenin de capaciteit in kWh M5.Lcd.setCursor(0, 0); M5.Lcd.setTextSize(3); M5.Lcd.setTextColor(WHITE, BLACK); float cap = (soc_Actual - soc_Low_Limit) * 26.2 / 100; // laadpercentagex if(cap < 0) cap = 0.0; M5.Lcd.print("Cap:"); M5.Lcd.print(cap);M5.Lcd.print("kWh "); if(cap < 10.0 )M5.Lcd.print(" "); // Rechtsboven het doel voor opladen (Amps laadstroom naar de Pylontechs) M5.Lcd.print("T");M5.Lcd.print(TargetCharge); if (TargetCharge < 100) M5.Lcd.print(" "); if (TargetCharge < 10) M5.Lcd.print(" ");M5.Lcd.println(""); // Regeltje voor SOC, min-huidig-max M5.Lcd.print("SoC:"); M5.Lcd.print(soc_Low_Limit);M5.Lcd.print("-"); if(soc_Actual >= soc_Low_Limit)M5.Lcd.setTextColor(GREEN, BLACK); else M5.Lcd.setTextColor(RED, BLACK); M5.Lcd.print(soc_Actual); M5.Lcd.setTextColor(WHITE, BLACK); M5.Lcd.println("-100% "); // Regeltje voor PV ConsTot = ConsL1 + ConsL2 + ConsL3; sprintf(Buff, "PV :%6dW ", PV_Watt); M5.Lcd.println(Buff); // Regeltje voor eigen gebruik sprintf(Buff, "Use:%6dW ", ConsTot); M5.Lcd.println(Buff); // Regeltje voor ESS sprintf(Buff, "ESS:%6dW %3dA", DC_Watt, DC_Amps);M5.Lcd.println(Buff); M5.Lcd.setTextColor(GREEN, BLACK); if(MaxAC >= 17)M5.Lcd.setTextColor(YELLOW, BLACK); if(MaxAC >= 19)M5.Lcd.setTextColor(ORANGE, BLACK); if(MaxAC >= 20)M5.Lcd.setTextColor(RED, BLACK); // Regeltje voor Grid sprintf(Buff, "Net:%6dW %3dA", AC_Watt, MaxAC);M5.Lcd.println(Buff); M5.Lcd.setTextColor(WHITE, BLACK); // Regeltje voor afwijkende Workmode als die er is.... switch(WorkMode){ case 1: M5.Lcd.println("Charger only "); break; case 2: M5.Lcd.println("Inverter only "); break; //case 3: M5.Lcd.println("Mode is on "); break; case 4: M5.Lcd.println("Mode is off "); break; } // Ontladen van accu voor de volgende dag.... // Een (soms) flink negatief Grid_Setpoint wordt gebuikt om in de avond en nacht terug te leveren // Issue voor mij dat ik teveel PV heb en accu gebruik om stroom terug naar rid wat te beperken. // Dat kan alleen als ik nog ruimte heb in de accu's. Dus in de ochtend niet te vol beginnen Grid_Setpoint = -20; if(DatumMaand > 2 && DatumMaand < 10 && soc_Actual >= 40){ // In de zomermaanden (maart tm sept): niet te veel cap. in de accu houden switch(Now){ case 19: Grid_Setpoint = -1 * (soc_Actual - 40) * 26,2 / 1 * 10 * PrijsHoog; break; // Tijdens de avond ontladen tot ca. 40-35% case 20: Grid_Setpoint = -1 * (soc_Actual - 40) * 26,2 / 1 * 10 * PrijsHoog; break; case 21: Grid_Setpoint = -1 * (soc_Actual - 40) * 26,2 / 1 * 10 * PrijsHoog; break; case 22: Grid_Setpoint = -1 * (soc_Actual - 40) * 26,2 / 7 * 10 * PrijsHoog; break; case 23: Grid_Setpoint = -1 * (soc_Actual - 40) * 26,2 / 6 * 10 * PrijsHoog; break; case 1: Grid_Setpoint = -1 * (soc_Actual - 40) * 26,2 / 5 * 10 * PrijsHoog; break; case 2: Grid_Setpoint = -1 * (soc_Actual - 40) * 26,2 / 4 * 10 * PrijsHoog; break; case 3: Grid_Setpoint = -1 * (soc_Actual - 40) * 26,2 / 3 * 10 * PrijsHoog; break; case 4: Grid_Setpoint = -1 * (soc_Actual - 40) * 26,2 / 2 * 10 ; break; case 5: Grid_Setpoint = -1 * (soc_Actual - 35) * 26,2 / 1 * 10 ; break; } } if(Grid_Setpoint != ACPowerSetpoint) setValueVictron(SetACPwr, Grid_Setpoint); // Regeltje voor ESS status (als die er is) if((Ess[1] + Ess[2] + Ess[3] + Ess[4] + Ess[5] + Ess[6] + Ess[7]) >0){ M5.Lcd.setTextColor(BLUE, BLACK); PrijsHoog = 0; for (int i = 1; i < 8; i++) { if(Ess[i] == 1)M5.Lcd.print("#");M5.Lcd.print(i); M5.Lcd.print(" "); } Grid_Setpoint = -20; // Als ESS status, dan setpoint weer op default waard } // Regeltje voor huidig tarief HOOG/LAAG en % t.o.v. gemiddelde if(Pricing[Now] > Sorted[6]){M5.Lcd.print("Hoog: +"); PrijsHoog = 1 ; // Bij hoogste 5 prijzen M5.Lcd.print(int(100 * ((Pricing[Now] / AvgPrice) -1))); M5.Lcd.setTextColor(RED, BLACK); M5.Lcd.println("% "); M5.Lcd.setTextColor(WHITE, BLACK);} else if(Pricing[Now] < AvgPrice && AvgPrice != 0){M5.Lcd.print("Laag: -"); PrijsHoog = 0; M5.Lcd.print(int(100 * (1 - (Pricing[Now] / AvgPrice)))); M5.Lcd.setTextColor(GREEN, BLACK);M5.Lcd.println("% "); M5.Lcd.setTextColor(WHITE, BLACK);} //else M5.Lcd.print(" "); M5.Lcd.setTextSize(8); M5.Lcd.setCursor(130, 180); M5.Lcd.setTextColor(GREEN, BLACK); M5.Lcd.print(soc_Actual);M5.Lcd.print("% "); Blijfleven++;if(Blijfleven > 200){client.publish(KeepALive, ""); delay(70); Blijfleven=0;} client.loop();delay(10); // ****** Begin stukje energieprijzen ******** dit hele stuk kun je uit-commentarieren ********************************** M5.Lcd.setTextSize(2); //if(LaatstOpgehaald != Today && Now == 1 && Minute ==3){ // Een keer per dag! if(LaatstOpgehaald != Today && (Now > 0 || Minute > 17)){ // Hebben we vandaag de prijzen nog niet?, dan even ophalen... prijsTotaal = 0.0; AvgPrice = 0.0; HTTPClient http; String serverPath = TodayUrl + String(EToken); // Construct API URL voor energieprijzen http.begin(serverPath); int httpResponseCode = http.GET(); if (httpResponseCode == 200) { // Check for the returning code antwoord = http.getString(); LaatstOpgehaald = Today; } else { M5.Lcd.setCursor(0, 0); M5.Lcd.println("http call failed: "); M5.Lcd.println(httpResponseCode); delay(200); M5.Lcd.fillScreen(BLACK); M5.Lcd.setCursor(0, 0); } http.end(); M5.Lcd.fillScreen(BLACK); M5.Lcd.setCursor(0, 0); int TariefUur = 0; DynamicJsonDocument doc(16384); // https://arduinojson.org/v6/assistant/ voor code en sizing :-) DeserializationError error = deserializeJson(doc, antwoord); if (error) { M5.Lcd.setCursor(0, 0); M5.Lcd.println("deserializeJson() failed: "); M5.Lcd.println(error.c_str()); delay(200); M5.Lcd.fillScreen(BLACK); M5.Lcd.setCursor(0, 0); } else { const char* status = doc["status"]; // "true" for (JsonObject data_item : doc["data"].as<JsonArray>()) { const char* data_item_datum = data_item["datum"]; const char* data_item_prijs = data_item["prijs"]; prijsTotaal = prijsTotaal + atof(data_item_prijs); Sorted[TariefUur] = atof(data_item_prijs); Pricing[TariefUur++] = atof(data_item_prijs); } AvgPrice = prijsTotaal / 24; for (int i = 0; i < 23; i++) // Sorteren aflopend op prijs in array Sorted for (int j = 23; j > i; j--) if(Sorted[i] < Sorted[j]) {Temp = Sorted[j]; Sorted[j] = Sorted[i]; Sorted[i] = Temp;} for (int i = 0; i <= 23; i++) { M5.Lcd.setCursor(0 , i * 18 ); if(i >= 12) M5.Lcd.setCursor(160 , i * 18 - 216 ); M5.Lcd.setTextColor(WHITE, BLACK); if(Pricing[i] <= Sorted[18]) M5.Lcd.setTextColor(YELLOW, BLACK); // Goedkoopste 6 //if(Pricing[i] <= AvgPrice) M5.Lcd.setTextColor(YELLOW, BLACK); // Goedkoper dan gemiddelde if(Pricing[i] == Sorted[23])M5.Lcd.setTextColor(GREEN, BLACK); // Goedkoopste uur if(Pricing[i] > Sorted[6]) M5.Lcd.setTextColor(ORANGE, BLACK); // Duurste 5 //if(Pricing[i] > AvgPrice) M5.Lcd.setTextColor(ORANGE, BLACK); // Duurder dan gemiddelde if(Pricing[i] == Sorted[0]) M5.Lcd.setTextColor(RED, BLACK); // Duurste uur if(i == Now)sprintf(buffer, "%2d=>%.5f ", i, Pricing[i]); else sprintf(buffer, "%2d: %.5f ", i, Pricing[i]); M5.Lcd.print(buffer); } M5.Lcd.setTextColor(WHITE, BLACK); M5.Lcd.println(""); sprintf(buffer, "Avg:%.5f ", AvgPrice); M5.Lcd.print(buffer); if(Pricing[Now] > AvgPrice)M5.Lcd.print("HOOG");else M5.Lcd.print("LAAG"); delay(2500); // Paar tellen in beeld M5.Lcd.fillScreen(BLACK); M5.Lcd.setCursor(0, 0); } } // *** Einde stukje energieprijzen ****************************************************************** } void callback(char* topic, byte* payload, unsigned int length) { StaticJsonDocument<248> doc; int val = 0; DeserializationError error = deserializeJson(doc, payload, length); if (error) { M5.Lcd.setTextSize(2); M5.Lcd.setCursor(0, 190); M5.Lcd.println(error.c_str()); delay(2000); } else { // Karakter voor karakter uitpluizen multi = 1; // positief getal for (int i = 0; i < length; i++) { switch((char)payload[i]){ case 34: break; // " case 44: break; //comma case 45: multi = -1; break; // - (negatief getal) case 46: i =length ; break; // punt case 48: val = 10 * val + 0; break; // 0 case 49: val = 10 * val + 1; break; // 1 case 50: val = 10 * val + 2; break; // 2 case 51: val = 10 * val + 3; break; // 3 case 52: val = 10 * val + 4; break; // 4 case 53: val = 10 * val + 5; break; case 54: val = 10 * val + 6; break; case 55: val = 10 * val + 7; break; case 56: val = 10 * val + 8; break; // 8 case 57: val = 10 * val + 9; break; // 9 case 58: break; // : case 123: break; // { case 125: i =length ; break; // } } } if((strcmp(topic, topicSOCActual) == 0)) soc_Actual = val * multi; if((strcmp(topic, topicSOCLimit) == 0)) soc_Low_Limit = val * multi; if((strcmp(topic, topicACPOW) == 0)) AC_Watt = val * multi; if((strcmp(topic, topicDCPOW) == 0)) DC_Watt = val * multi; if((strcmp(topic, topicDCCUR) == 0)) DC_Amps = val * multi; if((strcmp(topic, topicWMODE) == 0)) WorkMode = val * multi; if((strcmp(topic, topicMAXAmp) == 0)) MaxCharge = val * multi; if((strcmp(topic, topicPVpow) == 0)) PV_Watt = val * multi; if((strcmp(topic, topicSETP) == 0)) ACPowerSetpoint = val * multi; if((strcmp(topic, ESS_1) == 0)) Ess[1] = val ; if((strcmp(topic, ESS_2) == 0)) Ess[2] = val ; if((strcmp(topic, ESS_3) == 0)) Ess[3] = val ; if((strcmp(topic, ESS_4) == 0)) Ess[4] = val ; if((strcmp(topic, ESS_5) == 0)) Ess[5] = val ; if((strcmp(topic, ESS_6) == 0)) Ess[6] = val ; if((strcmp(topic, ESS_7) == 0)) Ess[7] = val ; if((strcmp(topic, Consume_L1) == 0)) ConsL1 = val * multi; if((strcmp(topic, Consume_L2) == 0)) ConsL2 = val * multi; if((strcmp(topic, Consume_L3) == 0)) ConsL3 = val * multi; if((strcmp(topic, NetAC1) == 0)) AC1 = val * multi; if((strcmp(topic, NetAC2) == 0)) AC2 = val * multi; if((strcmp(topic, NetAC3) == 0)) AC3 = val * multi; } } void setValueVictron( char* Wtopic, int setpointValue) { String payload; StaticJsonDocument<248> doc; doc["value"] = setpointValue; serializeJson(doc, payload); client.publish(Wtopic, payload.c_str()); } void checkforerrors() { int rc = client.state(); switch(rc){ case -4 : M5.Lcd.println("MQTT_CONNECTION_TIMEOUT - the server didn't respond within the keepalive time");break; case -3 : M5.Lcd.println("MQTT_CONNECTION_LOST - the network connection was broken");break; case -2 : M5.Lcd.println("MQTT_CONNECT_FAILED - the network connection failed");break; case -1 : M5.Lcd.println("MQTT_DISCONNECTED - the client is disconnected cleanly");break; case 0 : M5.Lcd.println(" ");break; case 1 : M5.Lcd.println("MQTT_CONNECT_BAD_PROTOCOL - the server doesn't support the requested version of MQTT");break; case 2 : M5.Lcd.println("MQTT_CONNECT_BAD_CLIENT_ID - the server rejected the client identifier");break; case 3 : M5.Lcd.println("MQTT_CONNECT_UNAVAILABLE - the server was unable to accept the connection");break; case 4 : M5.Lcd.println("MQTT_CONNECT_BAD_CREDENTIALS - the username/password were rejected");break; case 5 : M5.Lcd.println("MQTT_CONNECT_UNAUTHORIZED - the client was not authorized to connect");break; } }
[Afbeelding]
En voor mijn gemoedsrust.... Je bent zelf verantwoordelijk als je van bovenstaande code gebruik maakt!
Het is allemaal duidelijk, en ik ga er volgend week wat mee spelen/testen.
Ik ben morgen voor een paar dagen naar het buitenland.
Veiligheid voor alles. Niet experimenteren.Charm schreef op woensdag 3 april 2024 @ 09:22:
Beste mensen, even een basic vraag tussendoor 😀. Ik ben bezig met de bouw van een enkele fase ESS voor thuisgebruik.Ik moet nu accukabels gaan bestellen van 50mm2 en 70mm2. Ik zie regelmatig zgn laskabels voorbijkomen. Zijn deze geschikt voor deze toepassing? Ik las ergens een advies van Victron over de gewenste kwaliteit van deze kabels maar kan het niet meer vinden. De bottom line was dat een kabel met te grove aders te veel warmteontwikkeling geeft in de plug door het beperkte contactoppervlak. Graag jullie bijdrage.
Suggestie: originele kabels, zo dik mogelijk.
Dit is een keer genoemd in deze forum thread voor kabels op maat:Charm schreef op woensdag 3 april 2024 @ 09:22:
Beste mensen, even een basic vraag tussendoor 😀. Ik ben bezig met de bouw van een enkele fase ESS voor thuisgebruik.Ik moet nu accukabels gaan bestellen van 50mm2 en 70mm2. Ik zie regelmatig zgn laskabels voorbijkomen. Zijn deze geschikt voor deze toepassing? Ik las ergens een advies van Victron over de gewenste kwaliteit van deze kabels maar kan het niet meer vinden. De bottom line was dat een kabel met te grove aders te veel warmteontwikkeling geeft in de plug door het beperkte contactoppervlak. Graag jullie bijdrage.
https://accunoord.nl/
Ik heb er zelf geen ervaring mee, want ik gebruik standaard kabels.
Zoals al gezegd, wees voorzichtig, er gaat veel stroom door de kabels!
Edit: denk ook aan een zekering en een DC-schakelaar.
[ Voor 4% gewijzigd door M66B op 03-04-2024 09:45 ]
Hallo, kabeldikte via online kabel calculator.Charm schreef op woensdag 3 april 2024 @ 09:22:
Beste mensen, even een basic vraag tussendoor 😀. Ik ben bezig met de bouw van een enkele fase ESS voor thuisgebruik.Ik moet nu accukabels gaan bestellen van 50mm2 en 70mm2. Ik zie regelmatig zgn laskabels voorbijkomen. Zijn deze geschikt voor deze toepassing? Ik las ergens een advies van Victron over de gewenste kwaliteit van deze kabels maar kan het niet meer vinden. De bottom line was dat een kabel met te grove aders te veel warmteontwikkeling geeft in de plug door het beperkte contactoppervlak. Graag jullie bijdrage.
De kabels die ik heb gekocht, puur koper 99.9%:
https://www.dgrubberholland.nl/categorie/elektra/
Gekocht bij:
https://www.boatshopfrysl...bels-en-snoeren/accukabel
add: Alvorens ik besluit een MP2 + GX te kopen zal ik na de vakantie me eerst gaan verdiepen in de victron software. Als ik het zo in eerste instantie bekijk is het hier en daar ook maar houtje touwtje.
Kijk, dit is wat ik bedoel met fase kiezen, Ik wil met de MP2 kunnen kiezen welke fase gebruikt moet worden (dus de calculatie om 0 verbruik te houden) voor leveren aan huis vanuit de batterij. Nu staat in de gebruiksaanwijzing dat er per fase een MP2 nodig is, dat wil ik niet. Ik wil de slimme meter laten salderen voor de gekozen fases. Hier een foto van invoer mijn huidige systeem:
:strip_exif()/f/image/clDTZcXEq1UIEBZpK6VGzqKB.jpg?f=fotoalbum_medium) 
                                                [ Voor 35% gewijzigd door Willie Wortel op 03-04-2024 11:20 ]
[ Voor 3% gewijzigd door Charm op 03-04-2024 10:19 ]
Wat zijn dan 'originele kabels'? Deze kwalificatie is niet specifiek genoeg om als selectiecriterium te kunnen gebruiken.MJ de Bruijn schreef op woensdag 3 april 2024 @ 09:40:
[...]
Veiligheid voor alles. Niet experimenteren.
Suggestie: originele kabels, zo dik mogelijk.
Als je het zelf doet, beter geen blikken ali kabelogen, maar stevige die je bij dezelfde toko kan kopen als de kabels. En het juiste gereedschap gebruiken, niet gewoon dichtslaan met een hamer....
Zo dik mogelijk slaat nergens op, ze moeten de juiste doorsnede hebben voor de toepassing en de gekozen zekeringwaarde.
Tibber, Gasloos sinds 2017, Nibe F1155, 12.4kWp 30° O/W + 4.4kWp 0°, 3x Victron MP2-5000 + 60 kWh
Hangt er gewoon vanaf wat je zelf wil en wat je doelstelling is.Willie Wortel schreef op woensdag 3 april 2024 @ 09:56:
add: Alvorens ik besluit een MP2 + GX te kopen zal ik na de vakantie me eerst gaan verdiepen in de victron software. Als ik het zo in eerste instantie bekijk is het hier en daar ook maar houtje touwtje.
Mijn doelstelling is bv. op jaarbasis zo weinig mogelijk afname te hebben van het grid waarbij de productie van mijn PV installatie in eerste instantie rechtstreeks naar de AC verbruikers gaat en wat niet onmiddellijk kan verbruikt wordt opgeslagen wordt in de thuisaccu. Wanneer de thuisaccu vol is (en er geen aanwijzingen zijn dat ik de volgende dagen de opslagcapaciteit in de woning volledig zal nodig hebben) gaan de overschot in de accu van de EV en dan pas in het net (in de periode november tot maart dus geen gebruik van de thuislaadpaal en daarbuiten zoveel mogelijk).
Omgekeerd dient - wanneer PV niet genoeg kan leveren voor de verbruikers - de energie in eerste instantie uit de thuisaccu gehaald te worden en dan, volgens de ingestelde min. SoC waarde, pas uit het net.
Met uitzondering wanneer het net niet voorhanden is dan mag de energie uit de accu gehaald worden onde de min. ingestelde SoC waarde (noodstroomvoorziening, alle verbruikers in en rond de woning staan hier ingesteld als kritische verbruikers).
En dat werkt hier op basis van de Victron Software probleemloos (ik maak gebruik van ESS en niet van DESS want dat laatste loont hier (Vlaanderen) niet en het is dan ook niet mijn doelstelling om met een thuisaccu te gaan handelen in energie via een dynamisch contract).
Kabels van een gerenommeerde leverancier die zijn gemaakt voor de combinatie van jouw batterijen en jouw omvormer.Charm schreef op woensdag 3 april 2024 @ 10:23:
Wat zijn dan 'originele kabels'? Deze kwalificatie is niet specifiek genoeg om als selectiecriterium te kunnen gebruiken.
Ergo: Geen laskabel of ander "misschien kan dit ook" materiaal.
[ Voor 8% gewijzigd door MJ de Bruijn op 03-04-2024 11:28 ]
Dat kan. https://www.victronenergy...-further-information.html Zie 7.2Willie Wortel schreef op woensdag 3 april 2024 @ 09:56:
[...]
Kijk, dit is wat ik bedoel met fase kiezen, Ik wil met de MP2 kunnen kiezen welke fase gebruikt moet worden (dus de calculatie om 0 verbruik te houden) voor leveren aan huis vanuit de batterij. Nu staat in de gebruiksaanwijzing dat er per fase een MP2 nodig is, dat wil ik niet. Ik wil de slimme meter laten salderen voor de gekozen fases.
23 kWp, 80 kWh, 11 kW laden, 17 kW ontladen. Victron VRM
Dat kan als je de warmtepomp voor de MP (dus aan de ACin kant) houdt.Willie Wortel schreef op woensdag 3 april 2024 @ 11:23:
@IvoB2 Dat wil ik ook maar ik heb een fase waar de warmtepomp op staat, die trekt de batterij leeg in de zeg maar de goedkope uren. Ik wil die fase dan onzichtbaar maken voor de MP2 zodat ik overhoud voor de dure uren.
:fill(white):strip_exif()/f/image/9liVeM76Ej3ZFCrmriEZt4lM.png?f=user_large)
De critical loads zijn de loads die na de MP zijn aangesloten op ACout1. Hiervoor moet je dan wel een energiemeter bij de hoofdaansluiting hebben.
23 kWp, 80 kWh, 11 kW laden, 17 kW ontladen. Victron VRM
Ok, totaal ander uitgangspunt dus.Willie Wortel schreef op woensdag 3 april 2024 @ 11:23:
@IvoB2 Dat wil ik ook maar ik heb een fase waar de warmtepomp op staat, die trekt de batterij leeg in de zeg maar de goedkope uren. Ik wil die fase dan onzichtbaar maken voor de MP2 zodat ik overhoud voor de dure uren.
Hier zijn er geen dure en goedkope uren gezien het een variabel contract is met 24/7 dezelfde prijs (11,66 cent/kWh voor de energiecomponent en 20,73 cent/kWh all in).
Een dynamisch contract heeft hier ook 60€ vaste kosten (los van de kWh prijs) waarbij er bij een variabel contract geen vaste kosten zijn. Voor die 60€ kan je al 289 kWh aan de volle prijs aankopen wat bijna mijn volledige jaarafname van het net is (momenteel staat de jaarteller die hier begint te lopen van 1 oktober tot 31/9 op 282 kWh netafname).
Dankzij de combinatie van PV en thuisaccu (en uiteraard een goed geïsoleerde woning) moet op jaarbasis er nog maar een 300 kWh van het net gehaald worden en dat met 2 warmtepompen in gebruik (1 A2A MY 2013 en 1 A2W MY 2019).
We laten de WP, indien nodig, ook door de dag draaien en nooit 's nachts zodat alle eigen productie eerst rechtstreeks kan verbruikt worden.
Wat jij wil kan ook door een scheiding te maken tussen kritische verbruikers en andere verbruikers. Onze (uiteindelijke) doelstelling met het Victron systeem is dan ook een 100% off grid opstelling te kunnen realiseren (zitten nu op jaarbasis aan 90%) en niet ermee te handelen op de gridmarkt. Hier staat dan ook alles ingesteld als kritische verbruiker (ander uitgangspunt dus). Het is ook een monofase systeem.
[ Voor 6% gewijzigd door IvoB2 op 03-04-2024 11:51 ]
Een commentaar in de beoordelingen is dat de neutrale draad en de modbus aansluiting op de "tweede verdieping" wat dicht bij de fase schroeven zijn, maar ik heb daar geen problemen mee. Als het goed is, werk je toch spanningsloos en zorgvuldig.
modbus is compatibel met een SDM120 en heeft zelfs nog een aantal extra functies. Als het goed is, kun je, in tegenstelling tot de SDM120, de tellers resetten.
:strip_exif()/f/image/oAOYO5S2exOBEtM7Kv5ud0wa.jpg?f=fotoalbum_large) 
                                                Nooit geprobeerd, maar wat zou er gebeuren als je bij de SDM120 het volgende doet: "Reset historicalM66B schreef op woensdag 3 april 2024 @ 18:47:
De 15 euro TAIYEDQ TAC1100 100A mono fase 230V DIN rail meter kwam vandaag en ik vind het niet tegenvallen. Er zijn twee "dikke" aansluitingen met een schroef/klem voor de fasedraad, een wat kleinere aansluiting voor de neutrale draad en een kleine terminal voor een modbus aansluiting.
Een commentaar in de beoordelingen is dat de neutrale draad en de modbus aansluiting op de "tweede verdieping" wat dicht bij de fase schroeven zijn, maar ik heb daar geen problemen mee. Als het goed is, werk je toch spanningsloos en zorgvuldig.
modbus is compatibel met een SDM120 en heeft zelfs nog een aantal extra functies. Als het goed is, kun je, in tegenstelling tot de SDM120, de tellers resetten.
[Afbeelding]
data"
Tibber; 3-fase Victron ESS, 38,4 kWh opslag; gasloos sinds 2013; Nibe F1245-10PC; SAP; HomeSeer4; Proxmox 8
Ik zie dat in de protocolbeschrijving niet staan:John245 schreef op woensdag 3 april 2024 @ 19:26:
[...]
Nooit geprobeerd, maar wat zou er gebeuren als je bij de SDM120 het volgende doet: "Reset historical
data"
https://www.eastroneurope...DM120-MODBUS_Protocol.pdf
Waar zie jij dat?
Zie SDM120 user manual https://xn--stromzhler-v5...9/sdm120modbus_manual.pdfM66B schreef op woensdag 3 april 2024 @ 19:30:
[...]
Ik zie dat in de protocolbeschrijving niet staan:
https://www.eastroneurope...DM120-MODBUS_Protocol.pdf
Waar zie jij dat?
Tibber; 3-fase Victron ESS, 38,4 kWh opslag; gasloos sinds 2013; Nibe F1245-10PC; SAP; HomeSeer4; Proxmox 8
Interessant, het lijkt wel of dit commando later is toegevoegd.John245 schreef op woensdag 3 april 2024 @ 19:32:
[...]
Zie SDM120 user manual https://xn--stromzhler-v5...9/sdm120modbus_manual.pdf
De vraag is wat het doet (dat geldt ook voor de kloon): het lijkt erop dat de maxima worden gereset en niet de energietellers (kWh).
Ik moet er ooit nog 1 bijkopen. Dan ga ik het is testen.M66B schreef op woensdag 3 april 2024 @ 19:39:
[...]
Interessant, het lijkt wel of dit commando later is toegevoegd.
De vraag is wat het doet (dat geldt ook voor de kloon): het lijkt erop dat de maxima worden gereset en niet de energietellers (kWh).
Tibber; 3-fase Victron ESS, 38,4 kWh opslag; gasloos sinds 2013; Nibe F1245-10PC; SAP; HomeSeer4; Proxmox 8
Ik heb er een en het maakt mij niet zoveel uit als de teller wordt gereset, aangezien ik toch home assistant voor registratie gebruik. Ik zal kijken of ik morgen tijd heb om dit te proberen.John245 schreef op woensdag 3 april 2024 @ 19:40:
[...]
Ik moet er ooit nog 1 bijkopen. Dan ga ik het is testen.
Achtergrond: ik heb een SDM120 voor zonnepanelen productie, met een custom driver geïntegreerd in een Victron GX. De aangeschafte kloon meter is voor grid input/output, ook omdat ik slimme meters niet vertrouw, en die krijg ik volgende week eindelijk van Stedin.
Ik ben een beetje aan het ontdekken hoe ik Fase 2 onzichtbaar kan maken voor een MP2 (dus alleen fase 1 en 3 met 1 MP2), nu heb ik al wat tips. Zit te denken, de MP2 moet ergens zijn data van trekken, als ik nu in de bron de Fase2 verdonkeremaan? (op 0 zet) Zonder oplossing koop ik never nooit een MP2
Gaat deze RikHa in "Het grote Victron aansturing topic" oplossing niet werken voor jou dan?Willie Wortel schreef op donderdag 4 april 2024 @ 12:44:
Ik heb nog geen MP2 maar wel 2x MPPT2 en shunt van victron in mijn zelfbouw Batterij systeem. Ik ben bezig met de Raspberry te voorzien van Venus OS gelijk in dit filmpje van mijn vriend Andy. Misschien interessant voor MP2 gebruikers.
[YouTube: All your Victron Gear online | Venus OS + Raspberry Pi, how easy is the 3-step setup?]
Ik ben een beetje aan het ontdekken hoe ik Fase 2 onzichtbaar kan maken voor een MP2 (dus alleen fase 1 en 3 met 1 MP2), nu heb ik al wat tips. Zit te denken, de MP2 moet ergens zijn data van trekken, als ik nu in de bron de Fase2 verdonkeremaan? (op 0 zet) Zonder oplossing koop ik never nooit een MP2
23 kWp, 80 kWh, 11 kW laden, 17 kW ontladen. Victron VRM
Een MP2 kan maar één fase aan. Dus je hebt 3 van die apparaten nodig voor 3 fases. Of het ook kan met 2 weet ik niet.Willie Wortel schreef op donderdag 4 april 2024 @ 12:44:
Ik ben een beetje aan het ontdekken hoe ik Fase 2 onzichtbaar kan maken voor een MP2 (dus alleen fase 1 en 3 met 1 MP2), nu heb ik al wat tips.
TAIYEDQ TAC1100 via modbus in Home Assistant:
Nog even 2 weken wachten en dan kan ik hier kijken of ik hem via ethernet kan laten praten met de cebro GX
uhm tja ik draai intel :) cel 1200 .gforce 2Ti
Ik doe het met een RS485 USB-stick en een tweedraadsverbinding en wat software die op de Victron de energiemeter elke seconde uitleest, zodat er weinig schakels zijn.djazzy schreef op donderdag 4 april 2024 @ 19:55:
[quote]M66B schreef op donderdag 4 april 2024 @ 14:55:
TAIYEDQ TAC1100 via modbus in Home Assistant:
Nog even 2 weken wachten en dan kan ik hier kijken of ik hem via ethernet kan laten praten met de cebro GX
Ja dat kan. Je kunt 2 MP's parallel op één van de 3 fases zetten of 2 x 1 MP op elk een fase, dan blijt er 1 fase zonder MP. Maar volgens mij wil de heer W. Wortel maar 1 MP en die kan natuurlijk niet op 2 fases.antonrops schreef op donderdag 4 april 2024 @ 16:11:
[...]
Een MP2 kan maar één fase aan. Dus je hebt 3 van die apparaten nodig voor 3 fases. Of het ook kan met 2 weet ik niet.
23 kWp, 80 kWh, 11 kW laden, 17 kW ontladen. Victron VRM
Snap niet helemaal wat je wilt. Maar je kan out of the box prima een enkele MP2 gebruiken om te zorgen dat je bij een driefase aansluiting netto 0 op de meter hebt. Dus dat hij bij -5A over fase 1 en 2 hij +10A terug gaat leveren over fase 3.Willie Wortel schreef op donderdag 4 april 2024 @ 12:44:
Ik heb nog geen MP2 maar wel 2x MPPT2 en shunt van victron in mijn zelfbouw Batterij systeem. Ik ben bezig met de Raspberry te voorzien van Venus OS gelijk in dit filmpje van mijn vriend Andy. Misschien interessant voor MP2 gebruikers.
[YouTube: All your Victron Gear online | Venus OS + Raspberry Pi, how easy is the 3-step setup?]
Ik ben een beetje aan het ontdekken hoe ik Fase 2 onzichtbaar kan maken voor een MP2 (dus alleen fase 1 en 3 met 1 MP2), nu heb ik al wat tips. Zit te denken, de MP2 moet ergens zijn data van trekken, als ik nu in de bron de Fase2 verdonkeremaan? (op 0 zet) Zonder oplossing koop ik never nooit een MP2
Ik verwacht dat ik een soortgelijke wens heb; een enkele MP2 (48/5000) maar een huis met 3 fase aansluiting.Heronimo schreef op donderdag 4 april 2024 @ 20:45:
[...]
Snap niet helemaal wat je wilt. Maar je kan out of the box prima een enkele MP2 gebruiken om te zorgen dat je bij een driefase aansluiting netto 0 op de meter hebt. Dus dat hij bij -5A over fase 1 en 2 hij +10A terug gaat leveren over fase 3.
Tevens een laadpaal (1 fase) waarvan in het verbruik niet uit de accu wil trekken.
Ik wil mijn verbruik in huis met deze enkele MP2 compenseren (L1 + L2) terwijl de laadpaal 'onzichtbaar' mag/moet zijn (L3)
Mijn oplossing heb ik gezocht in node-red. Ik haal de waarden van mijn P1 poort op, ik haal de waarde van mijn laadpaal op. Vervolgens wordt het ESS setpoint dan de P1 poort (verbruik = plus, leveren = min) min de laadpaal.
Dus als huis (met PV en laadpaal) -1000w doet en de laadpaal doet 1500w dan wordt het setpoint -2500 (accu vol laden uit PV dus waarna de P1 poort op +1500w zal komen)
Lijkt me niet zo ingewikkeld. Een 3 fase meter vlak bij je netaansluiting waarbij je die ene groep voor laadpaal er buiten houdt door bedrading of plaats van de meter handig te kiezen. ESS kan dan standaard setting houden. Node-red vergeten. Zelf zou ik voor een EM24 gaan, maar er zijn vast wel goedkopere alternatieven.No13 schreef op donderdag 4 april 2024 @ 21:18:
[...]
Ik verwacht dat ik een soortgelijke wens heb; een enkele MP2 (48/5000) maar een huis met 3 fase aansluiting.
Tevens een laadpaal (1 fase) waarvan in het verbruik niet uit de accu wil trekken.
Ik wil mijn verbruik in huis met deze enkele MP2 compenseren (L1 + L2) terwijl de laadpaal 'onzichtbaar' mag/moet zijn (L3)
Mijn oplossing heb ik gezocht in node-red. Ik haal de waarden van mijn P1 poort op, ik haal de waarde van mijn laadpaal op. Vervolgens wordt het ESS setpoint dan de P1 poort (verbruik = plus, leveren = min) min de laadpaal.
Dus als huis (met PV en laadpaal) -1000w doet en de laadpaal doet 1500w dan wordt het setpoint -2500 (accu vol laden uit PV dus waarna de P1 poort op +1500w zal komen)
[ Voor 4% gewijzigd door HermanGast op 04-04-2024 22:28 ]
Gasloos, 14,99kWp, Ekrano, 70kWh Pylontech, 3xVictron MP8000, M5stack, MQTT
/u/1696004/crop65f22381e767f_cropped.png?f=community) 
            /u/1289592/crop65c28c5ca1012_cropped.png?f=community) 
            /u/1322314/crop66c0de5998ad5_cropped.png?f=community) 
            /u/234803/crop62f956e51bcab_cropped.png?f=community) 
            /u/1521034/crop6161b4ded22f7_cropped.png?f=community) 
            :strip_icc():strip_exif()/u/451782/WillieWortel.jpg?f=community) 
            :strip_exif()/u/47567/3.gif?f=community) 
            :strip_icc():strip_exif()/u/1002053/crop64c3bae94ecef_cropped.jpg?f=community) 
            :strip_icc():strip_exif()/u/320168/crop650816243d03b_cropped.jpg?f=community) 
            /u/1202750/crop62c5d57daeca1_cropped.png?f=community) 
            :fill(white):strip_exif()/f/image/pWYpfNHg2Bil59nsyw5uMbLV.png?f=user_large) 
                    :strip_icc():strip_exif()/u/169336/crop5ef792e0af252_cropped.jpeg?f=community)