Acties:
  • +9 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
Mede-auteur:
  • Jazsie
  • Registratie: Juni 2006
  • Laatst online: 06:21

Jazsie

De geboorte van een kind is zwaar, maar daarna begint pas het moeilijkste werk, de opvoeding. Met een thuis-batterij systeem is het net zo. Wanneer het systeem er eindelijk is moet het nog worden ingesteld om zo optimaal mogelijk te werken en te doen wat we willen.

Dit topic gaat over het inregelen en aansturen van een Victron thuis-batterij systeem. Het gebruik van het ESS (Energy Storage System), het daarvoor gebruikte apparaat (bijvoorbeeld Cerbo GX), het instellen van parameters, het gebruik van programmeer-hulpmiddelen (bijvoorbeeld Node-Red), interactie met de buitenwereld, het samenwerken met andere energie-systemen etc.

Wat je nodig hebt is een werkend Victron systeem met een besturingsmethode (bijvoorbeeld Cerbo GX met Venus OS). Aan te bevelen is Venus OS Large.

Dit topic gaat dus niet over de hardware of de montage van hardware, het nut of niet-nut van een batterij-systeem, en ook niet over politieke of emotionele aspecten rondom energie. Daarvoor zijn diverse andere topics beschikbaar. Dit topic gaat wel over het (op technische wijze) inspelen op veranderingen in de buitenwereld op een door de gebruiker te kiezen wijze door het instellen van parameters of het programmeren van het systeem.

Omdat een topic ergens moet beginnen zijn enkele bijdragen uit het topic 'zelf een Powerwall bouwen' naar dit topic verplaatst.

* Werk in uitvoering *
Door suggesties en bijdragen van lezers kunnen we dit topic uitbreiden en meer waardevol maken.

Hoe dit forum-topic gebruiken?

1) Om een Victron systeem onder de knie te krijgen moet je heel veel stappen doorlopen.
Mijn eerste advies is om dit samen met een vakbekwaam leverancier te doen. Voor een beginner is een forum geen vervanging voor een deskundige die toegang heeft tot je systeem.
Ook als je het systeem technisch zelf in elkaar zet kan de leverancier je helpen met de inrichting.

2) Studeer. In deze topic-start staan veel documenten genoemd. Mijn tip is deze op papier af te drukken. Lees de documenten allemaal door, bladzijde voor bladzijde. Als je een begrip niet snapt, stel dan een vraag over dat ene begrip (in dit forum) en ga door tot je het wel snapt. Ga pas door met een volgend hoofdstuk als je een hoofdstuk begrijpt. Alle vervolg hangt samen met het voorgaande.

3) Als je een vraag hebt over je operationele systeem, geef dan achtergrond-informatie over de actuele instellingen. Gebruik de remote-console en maak scherm-afdrukken van de relevante scherm-pagina's, op z'n minst over de pagina's waar je een vraag over stelt.

4) Als iets anders reageert dan je wilt, geef dan aan wat je verwacht en waarom (op basis waarvan). Geef dan aan wat er wel gebeurt en waarom dit anders is dan je wilde. Dan hebben we houvast om een alternatief te suggereren, stapje voor stapje.

5) Zeg niet 'het systeem doet niet wat ik wil'. Geef aan wat je wilt.
Schrijf: Ik wil dat het systeem dit en dat doet. Welke instellingen moet ik daarvoor gebruiken?
Als je een suggestie hebt gehad maak je een nieuwe bijdrage: Mijn huidige instellingen zijn: xxxx. Wat moet ik aanpassen? Lever documentatie mee.
Enzovoort.

6) Als het echt te ingewikkeld wordt is een optie is om iemand uit dit forum te vragen bij je thuis te komen. Geef je globale locatie, kijk of er iemand reageert en spreek af via privé berichten.


Externe bronnen

Het grote Victron ontwerp topic
Het grote Victron Off-Grid topic

Victron
ESS introductie & functies
ESS ontwerp- en installatiehandleiding
Dynamic ESS (Beta)
Cerbo GX Handleiding
Venus OS Large image: Installeer Node-RED
Remote VE Configure Manual
Integrating with SolarEdge
GX Modbus-TCP Manual
Downloads - Technische Informatie
AC Coupling, the Factor 1 Rule
Victron Community

Node-Red
Node-Red op Tweakers
NodeRed.org
Node-Red op Wikipedia
Node-Red op github.com
Victron Dynamic ESS (Node)
Victron and Node-Red - Webinar 1/3 Getting Started
Victron and Node-Red - Webinar 2/3 Basic building blocks and the Dashboard
Victron and Node-Red - Webinar 3/3 Complex flows and dashboard example

Integratie met Home Assistant
Day Ahead - Python programma voor optimalisering van gebruik
Emhass - Energy Management for Home Assistant
ViveroEopti - Home Assistant addon for optimizing home battery use

Het samenwerken van Victron met PV-omvormers
(Solaredge, Enphase, SMA / Sunny Boy) is uitgewerkt in
Het grote Victron Off-Grid topic.

Victron Auto Laadstation
Victron EV Charging

Andere Topics op Tweakers.net
Victron Monitoring, Waarschuwingen en Alarmen
Zelf een powerwall bouwen
Thuisbatterij en dynamisch contract financieel interessant
Thuisaccu: al interessant (voor mij)?
Veiligheid Energy Storage System (ESS)

En verder op internet
Harold Halewijn - Victron Dynamic ESS (2) - Met Video
Banu Womo - Victron Energy Venus Dashboard

[ Voor 130% gewijzigd door MJ de Bruijn op 25-05-2025 09:57 ]


Acties:
  • 0 Henk 'm!

  • Niltag
  • Registratie: November 2011
  • Laatst online: 28-05 23:12
MJ de Bruijn schreef op maandag 14 augustus 2023 @ 22:16:
[...]

Dank voor het compliment. Ik ben ook erg happy.

Ik wil gaan aansturen om een optimale mix van zonnepanelen (ook terugleveren), dynamisch contract (bij laag inkopen, bij hoog gebruiken) en batterij-reserve bij stroomuitval (in de winter meer dan in de zomer) te realiseren. Ik heb maar één meter.

Programma's en strategieën ontwikkelen was ooit mijn beroep, dus dat moet lukken.

Mijn volgende onderzoek is om vast te stellen wat de beste externe aansturing is. Ik ben nog behoorlijk blanco.

Voor huis-automatisering gebruik ik Domoticz, maar ik heb niet kunnen vinden of er een interface of Api bestaat naar de Cerbo GX (of het OS daarop dat, zo begrijp ik, Venus heet).

Iemand suggesties voor de beste fora over dit onderwerp?
Aansturingsmogelijkheden zijn er legio. Wordt veel op GRID setpoint gestuurd. De cerbo heeft ingangen via modbusTCP en MQTT. Daarnaast kun je tegenwoordig NodeRed op de cerbo installeren waar je dan je eigen flows kunt bouwen. Met domoticz ben ik wat minder bekend.

Voor wat betreft de 'slimme logica' om dan daadwerkelijk te bepalen wat de omvormers moeten doen is ook best wat beschikbaar. Je hebt de EMHASS addon voor Home-Assistant, Victron zelf heeft een module die je dus via NodeRed kan laten werken en @KC27 heeft ook wat moois gebouwd dat werkt i.c.m. Home Assistant.

Ben zelf ooit afgestudeerd als econometrist dus kon het ook niet laten om het algoritme toch zelf te bouwen. Omdat ik wat zaken van de diverse modellen wilde combineren (vooral de forecast van eigen verbruik slim doen en rekening houden met NL en dynamische tarieven). Onlangs het grootste gedeelte afgerond. Ben nu bezig om er een API en Home assistant addon van te maken. Ik zoek binnenkort nog wat bèta-testers om wat meer info te verzamelen maar het begint er al aardig uit te zien (grafieken gestolen van KC27, code zelf geschreven ;) ):

Afbeeldingslocatie: https://tweakers.net/i/Jw8AZeQ0wWToRr7W86M-1kQC-xY=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/t0XODHtoZcYFhu51tAjdcArU.png?f=user_large

Afbeeldingslocatie: https://tweakers.net/i/7Zzz0bAHPjXbxvJyo1FH8CwfxBU=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/Kv7A4EYpqQ4uBQLIw10SAKOU.png?f=user_large

Acties:
  • 0 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
Nog even over het inregelen van de batterijen.

Omdat de batterijen nog helemaal nieuw zijn moet ik ze eerst een paar keer ontladen tot 10% en dan weer opladen tot 100%. Althans dat heb ik zo begrepen.

Om alleen batterij-stroom te gebruiken heb ik de hoofdschakelaar uitgezet en ook de zonnepanelen uitgezet. Met name dat laatste is dezer dagen best zonde.

Is er een (standaard) methode om de batterijen te laten ontladen (met x Watt) terwijl ook de zonnepanelen blijven produceren? Het betreft Victron ESS / Cerbo / Multiplus.

Acties:
  • 0 Henk 'm!

  • e_hagenaar
  • Registratie: Februari 2008
  • Laatst online: 28-05 10:37
MJ de Bruijn schreef op woensdag 16 augustus 2023 @ 13:43:
Nog even over het inregelen van de batterijen.

Omdat de batterijen nog helemaal nieuw zijn moet ik ze eerst een paar keer ontladen tot 10% en dan weer opladen tot 100%. Althans dat heb ik zo begrepen.

Om alleen batterij-stroom te gebruiken heb ik de hoofdschakelaar uitgezet en ook de zonnepanelen uitgezet. Met name dat laatste is dezer dagen best zonde.

Is er een (standaard) methode om de batterijen te laten ontladen (met x Watt) terwijl ook de zonnepanelen blijven produceren? Het betreft Victron ESS / Cerbo / Multiplus.
Het "beste" is in mijn ogen een top balance. Dit houd in de batterijen langere tijd op 100% laden en houden om de balancer tijd te geven de cellen te balanceren. Het ontladen naar 10% is niet nodig

onder ESS kan je het grid setpoint instellen. zet je deze op -1000 dan gaat het systeem proberen om continu 1000w terug te leveren aan het net. Stel je deze in op een waarde groter dan de opbrengst van je zonnepanelen dan haal je dus energie uit je batterijen.
Afbeeldingslocatie: https://tweakers.net/i/UFQNAbD7uuGOwQ8e1Ww02SYa3l8=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/ZNtBXRACAIXnavAvCYCw9fJr.png?f=user_large

Acties:
  • 0 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
e_hagenaar schreef op woensdag 16 augustus 2023 @ 14:05:
onder ESS kan je het grid setpoint instellen. zet je deze op -1000 dan gaat het systeem proberen om continu 1000w terug te leveren aan het net.
Top! Dank je wel. Het werkt.

Acties:
  • 0 Henk 'm!

  • vanWalsum
  • Registratie: September 2004
  • Laatst online: 30-05 21:20
e_hagenaar schreef op woensdag 16 augustus 2023 @ 08:40:
[...]


Dit zijn RS485 poorten die doorgelinkt zijn.
[Afbeelding]
Ah! In theorie zou ik dus een netwerkkabel goed kunnen patchen en in een van de can poorten van de multiplus kunnen doen in plaats van de usb kabel?

Acties:
  • 0 Henk 'm!

  • Niltag
  • Registratie: November 2011
  • Laatst online: 28-05 23:12
Het een aantal keer ontladen en laden van je batterij zorgt er bij een BMS met balancer inderdaad voor dat de cellen beter gebalanceerd worden en dat hij dus minder snel zal uitslaan als 1 van de cellen een te hoog voltage bereikt tijdens het laden.

Je gaf echter aan dat de batterij was afgeslagen met een 'overvoltage error' dat kan ook een error zijn dat de totale accu een te hoog voltage heeft gehad (en dus niet de individuele cel). Er is dan iets anders mis en dat gaat ontladen en opladen niet voor je oplossen. Is dus wel belangrijk om te checken om welke error het echt gaat.

  • KC27
  • Registratie: December 2009
  • Niet online
Niltag schreef op woensdag 16 augustus 2023 @ 22:15:
[...]


Het een aantal keer ontladen en laden van je batterij zorgt er bij een BMS met balancer inderdaad voor dat de cellen beter gebalanceerd worden en dat hij dus minder snel zal uitslaan als 1 van de cellen een te hoog voltage bereikt tijdens het laden.

Je gaf echter aan dat de batterij was afgeslagen met een 'overvoltage error' dat kan ook een error zijn dat de totale accu een te hoog voltage heeft gehad (en dus niet de individuele cel). Er is dan iets anders mis en dat gaat ontladen en opladen niet voor je oplossen. Is dus wel belangrijk om te checken om welke error het echt gaat.
Als 1 of twee cellen uit balans zijn loopt daarvan de spanning sneller op en dat kan de spanning van de batterij als geheel ook te veel verhogen (ze staan in serie).

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


Acties:
  • 0 Henk 'm!

  • vanWalsum
  • Registratie: September 2004
  • Laatst online: 30-05 21:20
e_hagenaar schreef op woensdag 16 augustus 2023 @ 08:40:
[...]


Dit zijn RS485 poorten die doorgelinkt zijn.
[Afbeelding]
Gelukt. De ET112 communiceert nu met de Victron Multiplus 2 GX.

Echter; is de GX niet te configureren als ESS zonder de MK3 interface? Die had ik even over het hoofd gezien helaas. Dat wordt geen feest van het weekend ;).

Acties:
  • 0 Henk 'm!

  • Jazsie
  • Registratie: Juni 2006
  • Laatst online: 06:21
GX heeft toch netwerk verbinding?

Gewoon via de VRM portal de configuratie downloaden, aanpassen en weer uploaden.

Zo heb ik het gedaan.

3600 Wp op 0° (vrijwel plat) | 3900Wp op 10°


Acties:
  • 0 Henk 'm!

  • KC27
  • Registratie: December 2009
  • Niet online
Jazsie schreef op vrijdag 18 augustus 2023 @ 21:25:
GX heeft toch netwerk verbinding?

Gewoon via de VRM portal de configuratie downloaden, aanpassen en weer uploaden.

Zo heb ik het gedaan.
Misschien begrijp ik het verkeerd, maar om de Multiplus(sen) te configureren heb je toch een mk3 nodig waarmee je op de VEbus komt?
Idem om de firmware op de MP's te updaten.
Kan dat inmiddels allemaal via VRM?

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


Acties:
  • 0 Henk 'm!

  • vanWalsum
  • Registratie: September 2004
  • Laatst online: 30-05 21:20
KC27 schreef op vrijdag 18 augustus 2023 @ 22:11:
[...]

Misschien begrijp ik het verkeerd, maar om de Multiplus(sen) te configureren heb je toch een mk3 nodig waarmee je op de VEbus komt?
Idem om de firmware op de MP's te updaten.
Kan dat inmiddels allemaal via VRM?
Goeie tip, het werkt nog niet, maar wellicht doe ik iets verkeerd. Ik heb de ESS assistant uitgevoerd, de boel opgeslagen en via vrm portal weer ge-upload. Echter krijg ik nog steeds op de remote console onder de optie ESS "ESS-Wizard niet gevonden". Ik vrees toch dat ik die interface nodig heb voor m'n multiplus GX.

Acties:
  • +1 Henk 'm!

  • Jazsie
  • Registratie: Juni 2006
  • Laatst online: 06:21
KC27 schreef op vrijdag 18 augustus 2023 @ 22:11:
[...]

Misschien begrijp ik het verkeerd, maar om de Multiplus(sen) te configureren heb je toch een mk3 nodig waarmee je op de VEbus komt?
Idem om de firmware op de MP's te updaten.
Kan dat inmiddels allemaal via VRM?
Ik heb geen MK3 kabel, gewoon via VRM de configuratie gedownload, aangepast met de VEConfigure 3 tool en vervolgens via VRM weer geupload. Uiteraard moet je wel verbonden zijn met het internet en online in de VRM hebben staan.

Afbeeldingslocatie: https://tweakers.net/i/S9eM3Z2XO5STRxsd_PinfIb2di0=/800x/filters:strip_exif()/f/image/KdFFPxPn4ej93Z8OM8etmSKZ.png?f=fotoalbum_large

3600 Wp op 0° (vrijwel plat) | 3900Wp op 10°


Acties:
  • 0 Henk 'm!

  • Jazsie
  • Registratie: Juni 2006
  • Laatst online: 06:21
vanWalsum schreef op vrijdag 18 augustus 2023 @ 22:52:
[...]


Goeie tip, het werkt nog niet, maar wellicht doe ik iets verkeerd. Ik heb de ESS assistant uitgevoerd, de boel opgeslagen en via vrm portal weer ge-upload. Echter krijg ik nog steeds op de remote console onder de optie ESS "ESS-Wizard niet gevonden". Ik vrees toch dat ik die interface nodig heb voor m'n multiplus GX.
Goed toegevoegd?:
Afbeeldingslocatie: https://tweakers.net/i/Un1lVIqxjXx4svtofWkY3qzGOnM=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/EDaDK0mcpchmkWDAn0jDMtlG.png?f=user_large

Beste is, downloaden, aanpassen en dan sluiten (doet automatisch opslaan) en dan direct uploaden.

3600 Wp op 0° (vrijwel plat) | 3900Wp op 10°


Acties:
  • 0 Henk 'm!

  • vanWalsum
  • Registratie: September 2004
  • Laatst online: 30-05 21:20
Jazsie schreef op zaterdag 19 augustus 2023 @ 00:14:
[...]


Ik heb geen MK3 kabel, gewoon via VRM de configuratie gedownload, aangepast met de VEConfigure 3 tool en vervolgens via VRM weer geupload. Uiteraard moet je wel verbonden zijn met het internet en online in de VRM hebben staan.

[Afbeelding]
Gelukt! Bedankt!

Echter loop ik toch tegen een "muur" aan. De setup is als volgt. Ik heb 2x Pylontech US5000, aangesloten op de can poort. Een Multiplus 2 GX 5000 en een ET112 energiemeter. Alles communiceert met elkaar. Echter wil hij geen stroom terugvoeren het net op, of naar de verbruikers in huis. Ik heb enkel de AC-IN aangesloten op een aparte groep. Verder niks op de out. Verder heb ik een AC enphase zonnesysteem. Mijn doel, de meter zeker in de avond en nacht op 0 houden. Ik krijg wel een low battery alarm. Ik de screenshots heb ik hem even staat op "omvormer". Ik hoop dat iemand ziet wat ik verkeerd doe als beginner ;).

Afbeeldingslocatie: https://tweakers.net/i/kGU3X3cypSC3u4Ruv-CZ5FmOM88=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/xjVU2WCngWOps4x9rNs3uiHr.png?f=user_large

Afbeeldingslocatie: https://tweakers.net/i/bnK2A7_TuvC2OtEVzZRG-xFgGkA=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/7J8i1L9fLUjYQYvZk37LxiRs.png?f=user_large

Afbeeldingslocatie: https://tweakers.net/i/iQzTCYxCHGbqjnHGHjTv56NyViM=/800x/filters:strip_exif()/f/image/8VPb65Q2JH2JPaMQumEUuMNZ.png?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/CEIhBV7Zeivax7Upp_wQ8q3X0_8=/800x/filters:strip_exif()/f/image/7R6UEA2yXAsDubBR69GUj2CO.png?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/6cKC5jxDQ9QVChSo-dg_4LRZYDM=/800x/filters:strip_exif()/f/image/fxjvXEYdnY5YL3N2Yg7orogY.png?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/uIHnSJXBH07pD4awMuWFBy40JeY=/800x/filters:strip_exif()/f/image/4KLLgFFcBEWNMHri6qUTHnjj.png?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/b2Vm2ueqirZQjpw3mkjw7U5rvyM=/800x/filters:strip_exif()/f/image/Oq6KhQYSAis26vkJ0ie9VXQM.png?f=fotoalbum_large

Acties:
  • 0 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
vanWalsum schreef op zaterdag 19 augustus 2023 @ 10:48:
Ik heb enkel de AC-IN aangesloten op een aparte groep. Verder niks op de out. Verder heb ik een AC enphase zonnesysteem.
Ik ben ook een beginner, maar mijn eerste suggestie is om alle huisverbruikers aan te sluiten op de AC-OUT.
Dus van hoofdschakelaar naar Multiplussen IN en van Multiplussen OUT naar verbruikers.

Acties:
  • 0 Henk 'm!

  • vanWalsum
  • Registratie: September 2004
  • Laatst online: 30-05 21:20
MJ de Bruijn schreef op zaterdag 19 augustus 2023 @ 11:33:
[...]

Ik ben ook een beginner, maar mijn eerste suggestie is om alle huisverbruikers aan te sluiten op de AC-OUT.
Dus van hoofdschakelaar naar Multiplussen IN en van Multiplussen OUT naar verbruikers.
Ik dacht en hoopte dat de IN bi-directioneel zou zijn.

Acties:
  • 0 Henk 'm!

  • Jazsie
  • Registratie: Juni 2006
  • Laatst online: 06:21
vanWalsum schreef op zaterdag 19 augustus 2023 @ 10:48:
[...]


Gelukt! Bedankt!

Echter loop ik toch tegen een "muur" aan. De setup is als volgt. Ik heb 2x Pylontech US5000, aangesloten op de can poort. Een Multiplus 2 GX 5000 en een ET112 energiemeter. Alles communiceert met elkaar. Echter wil hij geen stroom terugvoeren het net op, of naar de verbruikers in huis. Ik heb enkel de AC-IN aangesloten op een aparte groep. Verder niks op de out. Verder heb ik een AC enphase zonnesysteem. Mijn doel, de meter zeker in de avond en nacht op 0 houden. Ik krijg wel een low battery alarm. Ik de screenshots heb ik hem even staat op "omvormer". Ik hoop dat iemand ziet wat ik verkeerd doe als beginner ;).

[Afbeelding]

[Afbeelding]

[Afbeelding]

[Afbeelding]

[Afbeelding]

[Afbeelding]

[Afbeelding]
Krijg je die low voltage melding gelijk en blijft ie ook?

De Pylontech moeten wel voorkomen in de lijst, wat zie je daar staan bij informatie mbt voltage/cellen/meldingen?

Afbeeldingslocatie: https://tweakers.net/i/C-Z5Zk4ZSI8D6z2jVNKhFiammtc=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/E6Y8G2sveBg7YIT2i6eDbB6i.png?f=user_large
(foto ter referentie)

Zal vanavond eens naar mijn instellingen kijken en posten. Momenteel niet thuis.
MJ de Bruijn schreef op zaterdag 19 augustus 2023 @ 11:33:
[...]

Ik ben ook een beginner, maar mijn eerste suggestie is om alle huisverbruikers aan te sluiten op de AC-OUT.
Dus van hoofdschakelaar naar Multiplussen IN en van Multiplussen OUT naar verbruikers.
Ik heb enkel de AC-IN in gebruik. Werkt prima.
vanWalsum schreef op zaterdag 19 augustus 2023 @ 11:38:
[...]
Ik dacht en hoopte dat de IN bi-directioneel zou zijn.
Is het ook, ik gebruik ook enkel de AC-IN.

3600 Wp op 0° (vrijwel plat) | 3900Wp op 10°


Acties:
  • 0 Henk 'm!

  • vanWalsum
  • Registratie: September 2004
  • Laatst online: 30-05 21:20
Jazsie schreef op zaterdag 19 augustus 2023 @ 12:57:
[...]


Krijg je die low voltage melding gelijk en blijft ie ook?

De Pylontech moeten wel voorkomen in de lijst, wat zie je daar staan bij informatie mbt voltage/cellen/meldingen?

[Afbeelding]
(foto ter referentie)

Zal vanavond eens naar mijn instellingen kijken en posten. Momenteel niet thuis.


[...]


Ik heb enkel de AC-IN in gebruik. Werkt prima.


[...]


Is het ook, ik gebruik ook enkel de AC-IN.
Oké, dan zou de setup zoals ik in m'n hoofd heb moeten werken in principe. Echter heeft hij nog geen enkele keer als omvormer gewerkt. Ook als ik het van "aan" naar "omvormer" zet, blijft de status op uit.

Het alarm blijft inderdaad. Ik heb hem net maar een paar uur volledig laten opladen, misschien hebben de Pylontechs dit even nodig, de kwamen ook net uit de doos.

Afbeeldingslocatie: https://tweakers.net/i/PG2ymHs-qcl9hPPz1VgFMvD6fhI=/800x/filters:strip_exif()/f/image/khuLvggSK3rHoe8VAtyCHgx7.png?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/au2a_8ENC1sMN-fJfEE4gy5RCfQ=/800x/filters:strip_exif()/f/image/VKwx18Gzl3X5vPYA30mxP2e8.png?f=fotoalbum_large

Update 13:47

Zou het hiermee te maken hebben? De relay test hangend

Afbeeldingslocatie: https://tweakers.net/i/tlJKZtejz4f1nuJsJal2PEaGNek=/800x/filters:strip_exif()/f/image/uV0NVnbJrCueimWOUx2VR0k0.png?f=fotoalbum_large

[ Voor 10% gewijzigd door vanWalsum op 19-08-2023 13:47 ]


Acties:
  • 0 Henk 'm!

  • HermanGast
  • Registratie: November 2021
  • Laatst online: 30-05 19:37

HermanGast

Exige GT3

vanWalsum schreef op zaterdag 19 augustus 2023 @ 11:38:
[...]


Ik dacht en hoopte dat de IN bi-directioneel zou zijn.
Die is bidirectioneel. Met alleen de in moet het lukken.

Gasloos, 15kWp, Ekrano, 51kWh Pylontech, 3xVictron MP8000, M5stack, MQTT


Acties:
  • 0 Henk 'm!

  • vanWalsum
  • Registratie: September 2004
  • Laatst online: 30-05 21:20
HermanGast schreef op zaterdag 19 augustus 2023 @ 15:19:
[...]

Die is bidirectioneel. Met alleen de in moet het lukken.
Ik denk dat dat de ESS relay test het probleem is. Echter kan ik nu niet bij de aan/uit knop om hem te herstarten helaas. Vanavond proberen of die slaagt nu de accu vol is.Afbeeldingslocatie: https://tweakers.net/i/tlJKZtejz4f1nuJsJal2PEaGNek=/800x/filters:strip_exif()/f/image/uV0NVnbJrCueimWOUx2VR0k0.png?f=fotoalbum_large

Acties:
  • 0 Henk 'm!

  • HermanGast
  • Registratie: November 2021
  • Laatst online: 30-05 19:37

HermanGast

Exige GT3

Afbeeldingslocatie: https://tweakers.net/i/Dt92C_3vMVBfCvarBOGhetwW-UE=/800x/filters:strip_icc():strip_exif()/f/image/asDcd28na3c81N5MtBLKFZlG.jpg?f=fotoalbum_large
Zie je wel de Pylontech op de CANbus? Anders je kabeltje tussen GX en Pylontech nazien.
Verder kunnen de accu’s even uit de lucht zijn als ze onderling gaan balanceren.
Afbeeldingslocatie: https://tweakers.net/i/CNAXRow7dNdCa4RfyrMD8h4YPA0=/800x/filters:strip_icc():strip_exif()/f/image/8lurBPWX2lQAeesK688piyR9.jpg?f=fotoalbum_large

[ Voor 26% gewijzigd door HermanGast op 19-08-2023 15:36 ]

Gasloos, 15kWp, Ekrano, 51kWh Pylontech, 3xVictron MP8000, M5stack, MQTT


Acties:
  • 0 Henk 'm!

  • vanWalsum
  • Registratie: September 2004
  • Laatst online: 30-05 21:20
HermanGast schreef op zaterdag 19 augustus 2023 @ 15:32:
[Afbeelding]
Zie je wel de Pylontech op de CANbus? Anders je kabeltje tussen GX en Pylontech nazien.
Verder kunnen de accu’s even uit de lucht zijn als ze onderling gaan balanceren.
[Afbeelding]
Yes, die zijn in de lucht volgens mij.

Afbeeldingslocatie: https://tweakers.net/i/9WmzFYgnh-Dy5Ogo6iFMRDeku1s=/800x/filters:strip_exif()/f/image/F7XY3X517oGiL6W6IrTIuxRO.png?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/TiDp_yYSng8avX8q8lW9RSHnlB8=/800x/filters:strip_exif()/f/image/jqzw6UiJgDeJSrVtYOdyTJ1K.png?f=fotoalbum_large

Acties:
  • 0 Henk 'm!

  • HermanGast
  • Registratie: November 2021
  • Laatst online: 30-05 19:37

HermanGast

Exige GT3

vanWalsum schreef op zaterdag 19 augustus 2023 @ 15:20:
[...]


Ik denk dat dat de ESS relay test het probleem is. Echter kan ik nu niet bij de aan/uit knop om hem te herstarten helaas. Vanavond proberen of die slaagt nu de accu vol is.[Afbeelding]
Ik zie in mijn menus nergens die ESS relais test.

[ Voor 9% gewijzigd door HermanGast op 19-08-2023 15:42 ]

Gasloos, 15kWp, Ekrano, 51kWh Pylontech, 3xVictron MP8000, M5stack, MQTT


Acties:
  • 0 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
Ik heb m'n Victron systeem operationeel en wil nu gaan sturen op laden en ontladen. Ik heb (denk ik) begrepen hoe ik de Cerbo kan dwingen te laden (keep batteries charged) of te ontladen ondanks dat er overvloed aan zonne-energie beschikbaar is (ESS --> instelwaarde voeding --> -10.000).

Daarmee kan ik gaan sturen. De vraag is nu waarmee?

Ik heb Venus Large geïnstalleerd en kan Node Red op mijn PC starten. Ik kan de waardes uit de Victron Nodes in de debug tonen (bijvoorbeeld de PV productie). Ik verwacht dat ik (uiteindelijk) daarin de logica kan programmeren om mijn ideeën te realiseren.

Is dit de juiste/beste weg?

Stel dat ik een 'programma' heb gemaakt dat doet wat ik wil, kan ik dat dan in de Cerbo zó instellen dat dit stabiel op de achtergrond draait, een her-start overleeft en ook een firmware update doorstaat?

Wat is de beste support-plaats voor zoiets? Ik heb diverse fora gezien maar sommige daarvan zijn slapend of veel te breed.

Heel benieuwd. Alvast dank.

Acties:
  • 0 Henk 'm!

  • John245
  • Registratie: Januari 2020
  • Nu online
MJ de Bruijn schreef op zondag 20 augustus 2023 @ 17:25:
Ik heb m'n Victron systeem operationeel en wil nu gaan sturen op laden en ontladen. Ik heb (denk ik) begrepen hoe ik de Cerbo kan dwingen te laden (keep batteries charged) of te ontladen ondanks dat er overvloed aan zonne-energie beschikbaar is (ESS --> instelwaarde voeding --> -10.000).

Daarmee kan ik gaan sturen. De vraag is nu waarmee?

Ik heb Venus Large geïnstalleerd en kan Node Red op mijn PC starten. Ik kan de waardes uit de Victron Nodes in de debug tonen (bijvoorbeeld de PV productie). Ik verwacht dat ik (uiteindelijk) daarin de logica kan programmeren om mijn ideeën te realiseren.

Is dit de juiste/beste weg?

Stel dat ik een 'programma' heb gemaakt dat doet wat ik wil, kan ik dat dan in de Cerbo zó instellen dat dit stabiel op de achtergrond draait, een her-start overleeft en ook een firmware update doorstaat?

Wat is de beste support-plaats voor zoiets? Ik heb diverse fora gezien maar sommige daarvan zijn slapend of veel te breed.

Heel benieuwd. Alvast dank.
Heb je een dynamisch contract of een normaal contract?

Tibber; 3-fase Victron ESS, 38,4 kWh opslag; gasloos sinds 2013; Nibe F1245-10PC; SAP; HomeSeer4; Proxmox 8


Acties:
  • 0 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
John245 schreef op zondag 20 augustus 2023 @ 17:36:
Heb je een dynamisch contract of een normaal contract?
Ik heb nu nog een standaard contract. Ik lever meer terug dan ik verbruik.

Vanaf oktober wordt dat anders. Dan ga ik over naar een dynamisch contract. Daar ben ik me nu op aan het voorbereiden.

Op dit moment wil ik 'oefenen' met het minimale verschil tussen dag- en nacht-tarief.
Doordeweek 's nachts laden en overdag ontladen. Niet dat dit enig echt rendement oplevert maar het is studie.

Ter overdenking, het standaard ESS mechanisme om overdag PV te laden (dagtarief) en in de nacht uit de batterij te gebruiken is niet alleen ongunstig vanwege conversie-verliezen, maar ook vanwege verschil in dag- en nacht-tarief.

Maar, daar ging ging mijn vraag niet over.

Acties:
  • 0 Henk 'm!

  • bbbrumbrum
  • Registratie: November 2003
  • Niet online
Beetje omgekeerde wereld, niet?

En trekt je hoofdaansluiting dat, zowel PV- als batterijvoeding?

Acties:
  • 0 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
Jazeker. Dat viel mij ook op. Vandaar mijn overdenking hierboven.

Maar, zoals gezegd, het is studie. Vanaf oktober moet het zinvol zijn met een dynamisch contract.
En trekt je hoofdaansluiting dat, zowel PV- als batterijvoeding?
Jawel. Max 10.000 Watt terugleveren over drie fasen, is 3333 Watt per fase, is (3333÷230=) 14 Ampère per fase op 3x25 Ampère installatie.

Overigens wil ik dus gaan oefenen om dit op (bijvoorbeeld) slechts 500 Watt boven de PV productie minus huis-verbruik in te stellen.

Maar, terug naar mijn vraag, is Node Red op Cerbo daarvoor geschikt en aangewezen?

Acties:
  • 0 Henk 'm!

  • John245
  • Registratie: Januari 2020
  • Nu online
MJ de Bruijn schreef op zondag 20 augustus 2023 @ 18:16:
[...]

Jazeker. Dat viel mij ook op. Vandaar mijn overdenking hierboven.

Maar, zoals gezegd, het is studie. Vanaf oktober moet het zinvol zijn met een dynamisch contract.


[...]


Jawel. Max 10.000 Watt terugleveren over drie fasen, is 3333 Watt per fase, is (3333÷230=) 14 Ampère per fase op 3x25 Ampère installatie.

Overigens wil ik dus gaan oefenen om dit op (bijvoorbeeld) slechts 500 Watt boven de PV productie minus huis-verbruik in te stellen.

Maar, terug naar mijn vraag, is Node Red op Cerbo daarvoor geschikt en aangewezen?
Ik heb het nog niet operationeel, maar wat ik gelezen heb is dit wel de weg op dit moment. Ik weet echter niet de implicaties.

Voor dynamisch ESS zie: https://github.com/victronenergy/dynamic-ess

Die Victron GitHub pagina vermeld wel:

"This is a proof of concept project. In the future this implementation in Node-RED will become obsolete as the functionality will move into VRM/Venus OS native."

Tibber; 3-fase Victron ESS, 38,4 kWh opslag; gasloos sinds 2013; Nibe F1245-10PC; SAP; HomeSeer4; Proxmox 8


Acties:
  • 0 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
Dank je. Dit geeft wel aan dat Node Red een goede weg is en dat er zelfs al - voorlopig - een uitwerking beschikbaar is.

Acties:
  • 0 Henk 'm!

  • John245
  • Registratie: Januari 2020
  • Nu online
MJ de Bruijn schreef op zondag 20 augustus 2023 @ 18:50:
[...]

Dank je. Dit geeft wel aan dat Node Red een goede weg is en dat er zelfs al - voorlopig - een uitwerking beschikbaar is.
Ja. Misschien tegen de tijd dat jij dynamisch kan is Node-RED niet meer nodig. Misschien ook wel tegen de tijd dat mijn systeem klaar is :)

Tibber; 3-fase Victron ESS, 38,4 kWh opslag; gasloos sinds 2013; Nibe F1245-10PC; SAP; HomeSeer4; Proxmox 8


Acties:
  • 0 Henk 'm!

  • Jazsie
  • Registratie: Juni 2006
  • Laatst online: 06:21
vanWalsum schreef op zaterdag 19 augustus 2023 @ 21:46:
[...]
Nog een vraagje. Het schuifje van "met wisselstroom gekoppelde zonnepanelen". Moet deze aan of uit. Of heeft deze alleen effect als je deze heb aangesloten op de AC Out. Of is dit juist de optie die je aan moet hebben als ik enkel wil laden als er teruggeleverd wordt.

[Afbeelding]
Is enkel van toepassing wanneer je PV omvormer op de AC OUT hebt aangesloten.
HermanGast schreef op zondag 20 augustus 2023 @ 10:53:
Iemand van ons al met andere meters geexperimenteerd?
[Afbeelding]
Ik zou de ABB en/of de SDM (= HomeWizard?) wel toe willen voegen.
Ligt eraan wat je ermee precies mee wilt doen?

Je kan ieder willekeurige meter aansluiten via omwegen, zo heb ik mijn Slimme P1 meter toegevoegd als grid meter.
MJ de Bruijn schreef op zondag 20 augustus 2023 @ 17:25:
Ik heb m'n Victron systeem operationeel en wil nu gaan sturen op laden en ontladen. Ik heb (denk ik) begrepen hoe ik de Cerbo kan dwingen te laden (keep batteries charged) of te ontladen ondanks dat er overvloed aan zonne-energie beschikbaar is (ESS --> instelwaarde voeding --> -10.000).

Daarmee kan ik gaan sturen. De vraag is nu waarmee?

Ik heb Venus Large geïnstalleerd en kan Node Red op mijn PC starten. Ik kan de waardes uit de Victron Nodes in de debug tonen (bijvoorbeeld de PV productie). Ik verwacht dat ik (uiteindelijk) daarin de logica kan programmeren om mijn ideeën te realiseren.

Is dit de juiste/beste weg?

Stel dat ik een 'programma' heb gemaakt dat doet wat ik wil, kan ik dat dan in de Cerbo zó instellen dat dit stabiel op de achtergrond draait, een her-start overleeft en ook een firmware update doorstaat?

Wat is de beste support-plaats voor zoiets? Ik heb diverse fora gezien maar sommige daarvan zijn slapend of veel te breed.

Heel benieuwd. Alvast dank.
De Cerbo icm Node-RED is naar mijn mening de perfecte manier.

Ik doe het zelf ook zo, wil de aansturing enkel op de Cerbo hebben ipv een ander apparaat met bv Home Assistant erop. Wil het zo standalone mogelijk draaien.

Momenteel doe ik het volgende via Node-RED (draait op de Cerbo):
- PV omvormer uitlezen.
- P1 meter uitlezen (ter vervanging van de Victron meter), is nodig wanneer je enkel AC IN gebruikt.
- EV meter uitlezen, EV mag enkel geladen worden vanuit het net en niet uit de accu.
- ENTSO prijzen binnen halen voor berekeningen van diverse zaken zoals goedkoopste/duurste uren of X achtereen goedkoopste/duurste uren.
- Aansturen MP mbt laden/ontladen/alleen op PV laden/enkel ontladen.
- Load balancing bij slim laden. EV en andere groot verbruikers hebben voorrang, MP gaat als eerst terugschalen in laadvermogen daarna mag pas de EV gaan load balancen.
John245 schreef op zondag 20 augustus 2023 @ 18:29:
[...]

Ik heb het nog niet operationeel, maar wat ik gelezen heb is dit wel de weg op dit moment. Ik weet echter niet de implicaties.

Voor dynamisch ESS zie: https://github.com/victronenergy/dynamic-ess

Die Victron GitHub pagina vermeld wel:

"This is a proof of concept project. In the future this implementation in Node-RED will become obsolete as the functionality will move into VRM/Venus OS native."
Helaas heb ik deze tot heden niet goed werkend gekregen, ik wacht wel op de "echte" versie :).
Er valt weinig in te stellen, je kan weinig fout doen maar toch stuurt ie niet aan zoals het hoort.

Bekend issue, ik probeer het wel nog eens wanneer het in de VRM/Venus OS zit.

3600 Wp op 0° (vrijwel plat) | 3900Wp op 10°


Acties:
  • 0 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
Jazsie schreef op maandag 21 augustus 2023 @ 00:52:
De Cerbo icm Node-RED is naar mijn mening de perfecte manier.
Dank voor deze terugkoppeling. Dat geeft vertrouwen om in deze methodiek te investeren.

Acties:
  • 0 Henk 'm!

  • vanWalsum
  • Registratie: September 2004
  • Laatst online: 30-05 21:20
Zijn er hier mensen aan het "experimenteren" met home assistant? Ik de volgende integratie geinstalleerd omdat ik op zoek ben op de grid setting makkelijk dynamisch aan te passen. Node-red zag er nogal lastig uit, maar ga dat ook nog proberen.

Al met al kan je op deze manier best makkelijk wat instellingen wijzigen en sensoren uitlezen.
https://github.com/sfstar/hass-victron

Echter, weet iemand waarom er 2 grid settings in zitten? Je hebt acpowersetpoint en acpowersetpoint2. Als je de eerste wijzigt, loopt deze netjes mee met het grid setpoint. Als je de 2e wijzigt, dan komt er 66000 w te staan.

Afbeeldingslocatie: https://tweakers.net/i/-k0CWduCBCa3exj56Nd_zIRFzZE=/x800/filters:strip_icc():strip_exif()/f/image/MzGPGPyWUO5vUJH6TmHL7hES.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/gLzP70u_1ua_FHN6WOR9mfAkG3s=/x800/filters:strip_icc():strip_exif()/f/image/yjpr0A74XxRILD0NHw7mtvJQ.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/rpKLpnXrI5KCndFXOkgHQRyHehY=/800x/filters:strip_icc():strip_exif()/f/image/fdefpw7aH3ihB8cHH6C7k00e.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/HXveFviYZj50O1QZvJkiSy8nqZI=/800x/filters:strip_icc():strip_exif()/f/image/p2zLR3FJwVHcVQeKSnw1W71t.jpg?f=fotoalbum_large

Acties:
  • +1 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
vanWalsum schreef op dinsdag 22 augustus 2023 @ 11:28:
Zijn er hier mensen aan het "experimenteren" met home assistant? Ik de volgende integratie geinstalleerd omdat ik op zoek ben op de grid setting makkelijk dynamisch aan te passen. Node-red zag er nogal lastig uit, maar ga dat ook nog proberen.
Even verifiëren of ik je goed begrijp. Bedoel je met "Grid Settings" de instelling die in Remote Console is vertaald naar "Instelwaarde Voeding" in onderdeel ESS?
Zo ja, dan kan ik je een voorbeeld geven hoe ik dit heb opgelost met Node Red (ik gebruik geen Home Assistant).

Acties:
  • 0 Henk 'm!

  • vanWalsum
  • Registratie: September 2004
  • Laatst online: 30-05 21:20
MJ de Bruijn schreef op dinsdag 22 augustus 2023 @ 14:20:
[...]

Even verifiëren of ik je goed begrijp. Bedoel je met "Grid Settings" de instelling die in Remote Console is vertaald naar "Instelwaarde Voeding" in onderdeel ESS?
Zo ja, dan kan ik je een voorbeeld geven hoe ik dit heb opgelost met Node Red (ik gebruik geen Home Assistant).
Klopt! Want eigenlijk wil ik pas dat hij na 13.00u de accu’s vol gaat stoppen omdat dan de stroom terugleveren weinig meer opbrengt in verhouding tot de ochtend.

Acties:
  • +2 Henk 'm!

  • Niltag
  • Registratie: November 2011
  • Laatst online: 28-05 23:12
vanWalsum schreef op dinsdag 22 augustus 2023 @ 11:28:
Zijn er hier mensen aan het "experimenteren" met home assistant? Ik de volgende integratie geinstalleerd omdat ik op zoek ben op de grid setting makkelijk dynamisch aan te passen. Node-red zag er nogal lastig uit, maar ga dat ook nog proberen.

Al met al kan je op deze manier best makkelijk wat instellingen wijzigen en sensoren uitlezen.
https://github.com/sfstar/hass-victron

Echter, weet iemand waarom er 2 grid settings in zitten? Je hebt acpowersetpoint en acpowersetpoint2. Als je de eerste wijzigt, loopt deze netjes mee met het grid setpoint. Als je de 2e wijzigt, dan komt er 66000 w te staan.

[Afbeelding]

[Afbeelding]

[Afbeelding]

[Afbeelding]
deze HA integratie mapt alle beschikbare Modbus-TCP registers die de cerbo aanbiedt. Voor power setpoint zijn er inderdaad twee. Zoals je al had uitgevonden heeft de 1 een veel grotere hefboom dan de andere. zie ook de omschrijving van Victron:

Afbeeldingslocatie: https://tweakers.net/i/piKQgQD63tJEIDg5a0UuIAEk-BA=/800x/filters:strip_exif()/f/image/TbWUaVSuZIJOIWJUTVGYVC3E.png?f=fotoalbum_large

Ik ben inmiddels vrij ver met mijn HA addon die op basis van prijzen, verbruik en een boel andere parameters de ideale GRID setpoint uitrekent per uur. Dan zie je inderdaad dat op veel dagen nu je accu eerst wordt leeggegooid in de ochtend op de dure uren (7-9) en dan geladen wordt tussen 12-16 waarna hij pas weer terug gaa leveren.

Ik loop nog een beetje te klooien om de code in een addon te installeren die je zo in HA kan inladen. Is weinig documentatie van helaas maar ga er wel uitkomen. Zal hem hier binnenkort delen als hij klaar is.

Acties:
  • +2 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
vanWalsum schreef op dinsdag 22 augustus 2023 @ 18:05:
Klopt! Want eigenlijk wil ik pas dat hij na 13.00u de accu’s vol gaat stoppen omdat dan de stroom terugleveren weinig meer opbrengt in verhouding tot de ochtend.
Allereerst een disclaimer, ik ben pas sinds enkele dagen bezig met Node Red dus ook ik heb nog veel te leren. Niettemin heb ik een eerste Flow ontwikkeld die doet wat ik wil. Mogelijk kun je hier inspiratie aan ontlenen.

- Ik probeer zoveel mogelijk Stand-alone te werken. Dus - indien mogelijk - geen externe applicaties of hardware zoals Home Assistant of Domoticz.
- Ik ben ervaren in traditionele programmeertalen. De Nodes in Node Red kunnen vast heel veel, maar ik ben daar (nog) niet mee bekend.
- Maar... Node Red heeft een function-Node waarin je met JavaScript kunt programmeren. Ideaal!
- Ik gebruik de Node Red Nodes - vooralsnog - dus als input voor de gewenste parameters,

Mijn doel is in eerste instantie om ervaring op te doen om het gedrag van mijn batterij-installatie te sturen. Op dit moment heb ik nog een vast (model) contract en ruim overschot aan zonne-energie tegen gunstige tarieven. Vanaf 1 oktober wordt dat anders. Dan wil ik naar dynamische tarieven en per uur gaan sturen.

Mijn enige 'winst' op dit moment is 's nachts laden tegen nacht-tarief en overdag ontladen tegen dag-tarief. Het is peanuts, maar goed om te oefenen.

's nachts laden is een standaard functie van ESS. Ik heb dit ingesteld van 23.00 tot 07.00 uur.

Overdag ontladen kan met de parameter van Remote Console --> ESS --> Instelwaarde Voeding.
Afbeeldingslocatie: https://tweakers.net/i/tDvusbeueQoUyJ1hQ-WoMnLlLXk=/full-fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():fill(white):strip_exif()/f/image/BWyyt2IoA1zEdkvDQNt2inuh.jpg?f=user_large
Als deze waarde negatief is probeert ESS de ingestelde hoeveelheid energie terug te sturen aan het Grid. Dit is de geproduceerde zonne-energie minus het huisverbruik plus de batterij-ontlading. Dit varieert dus heel sterk op basis van de wisseling van PV-productie en huisverbruik. Vandaar dat ik de waarde iedere 10 seconden opnieuw instel.
Afbeeldingslocatie: https://tweakers.net/i/4Ua61Vs9_BzBkEwIZvSlE01Igwc=/800x/filters:strip_icc():strip_exif()/f/image/NmSaVtLBG0FyJUEz7VmYReff.jpg?f=fotoalbum_large
Zoals gezegd, de berekening doe ik in JavaScript. Ik hoop dat deze duidelijk genoeg is.
code:
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
context.data = context.data || {};

switch (msg.topic) {
    case "PV":
       // Huidige productie zonnepanelen    
       context.data.PV = msg.payload ;
       msg = null;
       break;
    case "ACLoads":
       // Huidig verbruik huis-installaties
       context.data.ACLoads = msg.payload ;
       msg = null;
       break;
    case "Batterijen SOC":
       // Huidige State Of Charge
       context.data.CurSOC = msg.payload ;
       msg = null;
       break;
    default:
       msg = null;
       break;
}

if (context.data.PV != null 
&&  context.data.ACLoads != null
&&  context.data.CurSOC != null )
{
    // Batterij-capaciteit in kWh
    var BatCap = 15000;
    // het minimaal resterende percentage State of Charge
    var RestSOC = 20;
    // GridSetPoint indien niet wordt ontaden
    var DefaultGridSetPoint = 30;
    // Huidige minuut sinds middernacht
    var CurDate = new Date();
    var CurMinute = CurDate.getHours() * 60 + CurDate.getMinutes();
    // Stoptijd ontladen (23:00) in minuten na middernacht
    var StopMinute = 23 * 60;
    
    // het aantal minuten dat nog mag worden ontladen (tot 23.00)
    var MinutesToGo = (StopMinute - CurMinute);
    
    // State Of Charge dat mag worden teruggeleverd
    var SOCToGo = (context.data.CurSOC - RestSOC);
    if (SOCToGo < 0) {
      SOCToGo = 0
    }
    
    // Capaciteit die mag worden teruggeleverd
    var CapToGo = SOCToGo * BatCap / 100;
    
    // Capaciteit die per uur mag worden teruggeleverd
    var CapPerHour = CapToGo * 60 / MinutesToGo;
    CapPerHour = Math.floor(CapPerHour); // afronden op nul decimalen
    
    // rekening houden met PV opbrengst en huisverbruik
    // hoeveel mag er naar het Grid toe
    var GridSetPoint = -(context.data.PV - context.data.ACLoads + CapPerHour);
    GridSetPoint = 10 * Math.floor(GridSetPoint / 10); // afronden op tienvoud
    
    if (GridSetPoint > DefaultGridSetPoint) {
        // niet meer van het Grid halen dan Default-waarde
       GridSetPoint = DefaultGridSetPoint;
    }
    else if (CurMinute > StopMinute) {
        // in de nacht niet ontladen
       GridSetPoint = DefaultGridSetPoint;
    }
    else if (CurMinute < 7 * 60) {
        // in de nacht niet ontladen
       GridSetPoint = DefaultGridSetPoint;
    }
    
    
    context.data = null;
    return {payload:GridSetPoint};
}
else
{
   return msg;
}

Deze Flow draait hier nu al twee dagen (ja, ja), maar het lijkt te doen wat ik wil.

Succes!

Acties:
  • 0 Henk 'm!

  • John245
  • Registratie: Januari 2020
  • Nu online
MJ de Bruijn schreef op woensdag 23 augustus 2023 @ 13:51:
[...]

Allereerst een disclaimer, ik ben pas sinds enkele dagen bezig met Node Red dus ook ik heb nog veel te leren. Niettemin heb ik een eerste Flow ontwikkeld die doet wat ik wil. Mogelijk kun je hier inspiratie aan ontlenen.

- Ik probeer zoveel mogelijk Stand-alone te werken. Dus - indien mogelijk - geen externe applicaties of hardware zoals Home Assistant of Domoticz.
- Ik ben ervaren in traditionele programmeertalen. De Nodes in Node Red kunnen vast heel veel, maar ik ben daar (nog) niet mee bekend.
- Maar... Node Red heeft een function-Node waarin je met JavaScript kunt programmeren. Ideaal!
- Ik gebruik de Node Red Nodes - vooralsnog - dus als input voor de gewenste parameters,

Mijn doel is in eerste instantie om ervaring op te doen om het gedrag van mijn batterij-installatie te sturen. Op dit moment heb ik nog een vast (model) contract en ruim overschot aan zonne-energie tegen gunstige tarieven. Vanaf 1 oktober wordt dat anders. Dan wil ik naar dynamische tarieven en per uur gaan sturen.

Mijn enige 'winst' op dit moment is 's nachts laden tegen nacht-tarief en overdag ontladen tegen dag-tarief. Het is peanuts, maar goed om te oefenen.

's nachts laden is een standaard functie van ESS. Ik heb dit ingesteld van 23.00 tot 07.00 uur.

Overdag ontladen kan met de parameter van Remote Console --> ESS --> Instelwaarde Voeding.
[Afbeelding]
Als deze waarde negatief is probeert ESS de ingestelde hoeveelheid energie terug te sturen aan het Grid. Dit is de geproduceerde zonne-energie minus het huisverbruik plus de batterij-ontlading. Dit varieert dus heel sterk op basis van de wisseling van PV-productie en huisverbruik. Vandaar dat ik de waarde iedere 10 seconden opnieuw instel.
[Afbeelding]
Zoals gezegd, de berekening doe ik in JavaScript. Ik hoop dat deze duidelijk genoeg is.
code:
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
context.data = context.data || {};

switch (msg.topic) {
    case "PV":
       // Huidige productie zonnepanelen    
       context.data.PV = msg.payload ;
       msg = null;
       break;
    case "ACLoads":
       // Huidig verbruik huis-installaties
       context.data.ACLoads = msg.payload ;
       msg = null;
       break;
    case "Batterijen SOC":
       // Huidige State Of Charge
       context.data.CurSOC = msg.payload ;
       msg = null;
       break;
    default:
       msg = null;
       break;
}

if (context.data.PV != null 
&&  context.data.ACLoads != null
&&  context.data.CurSOC != null )
{
    // Batterij-capaciteit in kWh
    var BatCap = 15000;
    // het minimaal resterende percentage State of Charge
    var RestSOC = 20;
    // GridSetPoint indien niet wordt ontaden
    var DefaultGridSetPoint = 30;
    // Huidige minuut sinds middernacht
    var CurDate = new Date();
    var CurMinute = CurDate.getHours() * 60 + CurDate.getMinutes();
    // Stoptijd ontladen (23:00) in minuten na middernacht
    var StopMinute = 23 * 60;
    
    // het aantal minuten dat nog mag worden ontladen (tot 23.00)
    var MinutesToGo = (StopMinute - CurMinute);
    
    // State Of Charge dat mag worden teruggeleverd
    var SOCToGo = (context.data.CurSOC - RestSOC);
    if (SOCToGo < 0) {
      SOCToGo = 0
    }
    
    // Capaciteit die mag worden teruggeleverd
    var CapToGo = SOCToGo * BatCap / 100;
    
    // Capaciteit die per uur mag worden teruggeleverd
    var CapPerHour = CapToGo * 60 / MinutesToGo;
    CapPerHour = Math.floor(CapPerHour); // afronden op nul decimalen
    
    // rekening houden met PV opbrengst en huisverbruik
    // hoeveel mag er naar het Grid toe
    var GridSetPoint = -(context.data.PV - context.data.ACLoads + CapPerHour);
    GridSetPoint = 10 * Math.floor(GridSetPoint / 10); // afronden op tienvoud
    
    if (GridSetPoint > DefaultGridSetPoint) {
        // niet meer van het Grid halen dan Default-waarde
       GridSetPoint = DefaultGridSetPoint;
    }
    else if (CurMinute > StopMinute) {
        // in de nacht niet ontladen
       GridSetPoint = DefaultGridSetPoint;
    }
    else if (CurMinute < 7 * 60) {
        // in de nacht niet ontladen
       GridSetPoint = DefaultGridSetPoint;
    }
    
    
    context.data = null;
    return {payload:GridSetPoint};
}
else
{
   return msg;
}

Deze Flow draait hier nu al twee dagen (ja, ja), maar het lijkt te doen wat ik wil.

Succes!
Dat is een hele goede keuze om dit standalone te doen. Huisautomatisering is leuk, maar je moet er wel voor zorgen dat je systemen onafhankelijk van je huisautomatisering kunnen blijven draaien.

Het andere voordeel hiervan is dat jet dit bijvoorbeeld heel makkelijk kan integreren met Home Assisstant, HomeSeer, etc...

Met Node-RED kun je alles bouwen en als je wat minder goed ben in prograeren kun je ook Nodes gebruiken voor je berekeningen. Als je wil kun je ook een dashboard maken.

Tibber; 3-fase Victron ESS, 38,4 kWh opslag; gasloos sinds 2013; Nibe F1245-10PC; SAP; HomeSeer4; Proxmox 8


Acties:
  • +1 Henk 'm!

  • Jazsie
  • Registratie: Juni 2006
  • Laatst online: 06:21
vanWalsum schreef op woensdag 23 augustus 2023 @ 11:57:
[...]


Ben er wel achter dat je in feite het meest met je ac setpoint moet sturen. Echter, zou ik in de ochtend soms ook willen dat hij niet bijlaad, maar stel de zonne energie toevoer stokt door bewolking plots, dat hij nog wel aan het huis levert. In theorie zou je dit kunnen instellen door de multiplus hem op "inverter only" te zetten, maar dit werkt niet. Dan zet hij op de een of andere manier de hele functionaliteit stil.

Echter kom ik wel deze schuifjes tegen in de home assistant integratie! Zou dit werken?

[Afbeelding]
Om te kunnen terugvoeden (feedin) moet charge ook aan staan.

Je kan wel feedin uitzetten zodat ie enkel doet laden en niet ontladen maar andersom gaat dus niet "out of the box".

Ik heb hiervoor een functie gemaakt in Node-RED.

Ik reken in Node-RED de NOM uit en wanneer setpoint >0 is dan setpoint =0 zodat MP niet doet laden maar wel ontladen.

De standaard ESS werkt goed maar is naar mijn mening niet geschikt voor dynamisch contract.

3600 Wp op 0° (vrijwel plat) | 3900Wp op 10°


  • N0EL
  • Registratie: November 2019
  • Laatst online: 26-05 23:49
MJ de Bruijn schreef op woensdag 23 augustus 2023 @ 13:51:
[...]

Allereerst een disclaimer, ik ben pas sinds enkele dagen bezig met Node Red dus ook ik heb nog veel te leren. Niettemin heb ik een eerste Flow ontwikkeld die doet wat ik wil. Mogelijk kun je hier inspiratie aan ontlenen.

- Ik probeer zoveel mogelijk Stand-alone te werken. Dus - indien mogelijk - geen externe applicaties of hardware zoals Home Assistant of Domoticz.
- Ik ben ervaren in traditionele programmeertalen. De Nodes in Node Red kunnen vast heel veel, maar ik ben daar (nog) niet mee bekend.
- Maar... Node Red heeft een function-Node waarin je met JavaScript kunt programmeren. Ideaal!
- Ik gebruik de Node Red Nodes - vooralsnog - dus als input voor de gewenste parameters,

Mijn doel is in eerste instantie om ervaring op te doen om het gedrag van mijn batterij-installatie te sturen. Op dit moment heb ik nog een vast (model) contract en ruim overschot aan zonne-energie tegen gunstige tarieven. Vanaf 1 oktober wordt dat anders. Dan wil ik naar dynamische tarieven en per uur gaan sturen.

Mijn enige 'winst' op dit moment is 's nachts laden tegen nacht-tarief en overdag ontladen tegen dag-tarief. Het is peanuts, maar goed om te oefenen.

's nachts laden is een standaard functie van ESS. Ik heb dit ingesteld van 23.00 tot 07.00 uur.

Overdag ontladen kan met de parameter van Remote Console --> ESS --> Instelwaarde Voeding.
[Afbeelding]
Als deze waarde negatief is probeert ESS de ingestelde hoeveelheid energie terug te sturen aan het Grid. Dit is de geproduceerde zonne-energie minus het huisverbruik plus de batterij-ontlading. Dit varieert dus heel sterk op basis van de wisseling van PV-productie en huisverbruik. Vandaar dat ik de waarde iedere 10 seconden opnieuw instel.
[Afbeelding]
Zoals gezegd, de berekening doe ik in JavaScript. Ik hoop dat deze duidelijk genoeg is.
code:
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
context.data = context.data || {};

switch (msg.topic) {
    case "PV":
       // Huidige productie zonnepanelen    
       context.data.PV = msg.payload ;
       msg = null;
       break;
    case "ACLoads":
       // Huidig verbruik huis-installaties
       context.data.ACLoads = msg.payload ;
       msg = null;
       break;
    case "Batterijen SOC":
       // Huidige State Of Charge
       context.data.CurSOC = msg.payload ;
       msg = null;
       break;
    default:
       msg = null;
       break;
}

if (context.data.PV != null 
&&  context.data.ACLoads != null
&&  context.data.CurSOC != null )
{
    // Batterij-capaciteit in kWh
    var BatCap = 15000;
    // het minimaal resterende percentage State of Charge
    var RestSOC = 20;
    // GridSetPoint indien niet wordt ontaden
    var DefaultGridSetPoint = 30;
    // Huidige minuut sinds middernacht
    var CurDate = new Date();
    var CurMinute = CurDate.getHours() * 60 + CurDate.getMinutes();
    // Stoptijd ontladen (23:00) in minuten na middernacht
    var StopMinute = 23 * 60;
    
    // het aantal minuten dat nog mag worden ontladen (tot 23.00)
    var MinutesToGo = (StopMinute - CurMinute);
    
    // State Of Charge dat mag worden teruggeleverd
    var SOCToGo = (context.data.CurSOC - RestSOC);
    if (SOCToGo < 0) {
      SOCToGo = 0
    }
    
    // Capaciteit die mag worden teruggeleverd
    var CapToGo = SOCToGo * BatCap / 100;
    
    // Capaciteit die per uur mag worden teruggeleverd
    var CapPerHour = CapToGo * 60 / MinutesToGo;
    CapPerHour = Math.floor(CapPerHour); // afronden op nul decimalen
    
    // rekening houden met PV opbrengst en huisverbruik
    // hoeveel mag er naar het Grid toe
    var GridSetPoint = -(context.data.PV - context.data.ACLoads + CapPerHour);
    GridSetPoint = 10 * Math.floor(GridSetPoint / 10); // afronden op tienvoud
    
    if (GridSetPoint > DefaultGridSetPoint) {
        // niet meer van het Grid halen dan Default-waarde
       GridSetPoint = DefaultGridSetPoint;
    }
    else if (CurMinute > StopMinute) {
        // in de nacht niet ontladen
       GridSetPoint = DefaultGridSetPoint;
    }
    else if (CurMinute < 7 * 60) {
        // in de nacht niet ontladen
       GridSetPoint = DefaultGridSetPoint;
    }
    
    
    context.data = null;
    return {payload:GridSetPoint};
}
else
{
   return msg;
}

Deze Flow draait hier nu al twee dagen (ja, ja), maar het lijkt te doen wat ik wil.

Succes!
Mooi gemakt. Ik ben zelf echt een beginner hier.

Wil jij misschien de flow zelf delen zodat ik deze hier kan importeren (ik snap dat deze niet gelijk gaat werken met mijn Victron / PV (SolarEdge) en batterijen setup.

Acties:
  • +12 Henk 'm!

  • Niltag
  • Registratie: November 2011
  • Laatst online: 28-05 23:12
Het was even ploeteren met de addon maar het is gelukt om hem operationeel te krijgen. E.e.a. stond al een tijdje op deze manier te draaien maar is nu ook wat gebruiksvriendelijker (voor zover dat kan). De addon is via Github beschikbaar voor eventuele tweakers die hem willen testen: https://github.com/GeneralCP/ViveroEopti

Er staat een beknopte uitleg in de readme maar in het kort doet de addon/optimalisatie het volgende:

De addon is op de achtergrond een API. Deze kan worden aangeroepen vanuit alles dat met een REST API kan omgaan. De API wordt o.a. gebruikt om het algoritme te laten herberekenen maar ook om diverse grafieken op te leveren. Ik gebruik hem nu in de volgende stappen:
  1. dagelijks om 16:00 uur draai ik de optimalisatie. De prijzen zijn dan bekend en hij rekent het meest goedkope pad uit tot de volgende dag 24 uur
  2. vanuit de simpele NodeRed flow in de Cerbo haalt hij ieder heel uur het optimale GRID setpoint op uit de API (zie ook de nodeRed flow op de Github)
  3. mocht de API onverhoopt onbeschikbaar zijn dan gaat het setpoint naar 0 en draait het systeem gewoon als ESS
Het optimalisatie-algoritme doet op de achtergrond best veel:
  • Op basis van instellingen m.b.t. PV wordt via forecast.solar een forecast van de opbrengst uitgerekend
  • Via entso-e worden de dynamische prijzen opgehaald
  • op basis van historische data uit je HA sensor en op basis van temperatuur, weekdag, vakanties etc. wordt via machine learning een voorspelling gedaan over je verbruik. Heb hier best veel onderzoek naar gedaan en het huidige model lijkt echt hele goede voorspellingen op te leveren (voor mij in ieder geval)
  • via https://energie.theoxygent.nl wordt bekeken of de prijs de komende tijd gaat dalen of stijgen
  • dit alles wordt in een Lineair probleem gegoten en opgelost tegen de laagste kosten. Hierbij is via de config behoorlijk wat in te stellen. Ik kies er zelf nu voor om niet ook te gaan handelen en vooral mijn eigen verbruik zo goedkoop te voorzien en mijn PV overschot zo duur mogelijk te verkopen maar als je het algoritme was losser zet gaat hij ook volop in en verkopen
  • het LP probleem houdt o.a. dus rekening met de prijs van de komende dagen (stijgend = voller eindigen, dalend = vandaag zoveel mogelijk verbruiken/verkopen) maar ook met verliezen bij het laden en ontladen en met diverse maxima die je instelt.
Als laatste heb ik in de API mogelijkheden ingebouwd om e.e.a. in een dashboards in HA weer te geven.
Het draait nog niet heel lang dus de komende tijd ga ik het verder optimaliseren. Mocht een van jullie het ook willen testen. Be my guest. Op zich is uit de documentatie te halen hoe het werkt maar schiet me gerust even aan als je hulp nodig hebt.

Ik ga in principe uit van aansturing van een Victron systeem maar de API is natuurlijk vrij generiek. Waarschijnlijk ook makkelijk op andere systemen werkend te krijgen. Een HA installatie is wel een beetje een must vanwege de historische data-opslag en ook de mogelijkheden om te visualiseren.

Afbeeldingslocatie: https://tweakers.net/i/CcXs4JrdRRr2y37ANC72ZaIG5Ro=/800x/filters:strip_exif()/f/image/ITV3mz2cn7bzYqoFNnZJRRHE.png?f=fotoalbum_large

[ Voor 4% gewijzigd door Niltag op 25-08-2023 08:14 ]


Acties:
  • +2 Henk 'm!

  • KC27
  • Registratie: December 2009
  • Niet online
Misschien kunnen de scripts waarmee de laad/ontlaad strategie kan worden berekend worden worden opgenomen in startpost.
Bijvoorbeeld:

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


Acties:
  • +1 Henk 'm!

  • John245
  • Registratie: Januari 2020
  • Nu online
@MJ de Bruijn @Jazsie

Misschien ook de Grafana initiatieven linken in de TS. ER zijn aardig wat initiatieven, bijvoorbeeld: https://grafana.com/grafana/dashboards/14400-banu-womo/

Tibber; 3-fase Victron ESS, 38,4 kWh opslag; gasloos sinds 2013; Nibe F1245-10PC; SAP; HomeSeer4; Proxmox 8


Acties:
  • 0 Henk 'm!

  • N0EL
  • Registratie: November 2019
  • Laatst online: 26-05 23:49
Iemand hier ervaring me de Victron EV Charging Station?

Ik gebruik momenteel een Wallbox voor het laden van mijn EV, en mijn "home assistant" systeem maakt hierop beslissingen voor o.a. het laden van mijn thuisbatterij.

Probleem is dat de Wallbox altijd via het "my.wallbox.com" portaal gaat, en hierdoor soms niet werkt, of veel vertraging heeft. Denk dat enkel de WiFi verbinding van de Wallbox naar mijn router ook niet echt helpt.

Nu heeft Victron een nieuw model. De EV Charging Station NS, en overweeg om deze misschien te kopen.

Iemand hier de een van de 2 Charging Station heeft?

[ Voor 9% gewijzigd door N0EL op 25-08-2023 21:26 ]


Acties:
  • +1 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
KC27 schreef op vrijdag 25 augustus 2023 @ 19:17:
Misschien kunnen de scripts waarmee de laad/ontlaad strategie kan worden berekend worden worden opgenomen in startpost.
Ik heb de voorgestelde items overgenomen.

Acties:
  • 0 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
John245 schreef op vrijdag 25 augustus 2023 @ 19:52:
Misschien ook de Grafana initiatieven linken in de TS.
Ik heb de voorgestelde koppeling overgenomen.

Acties:
  • 0 Henk 'm!

  • Jazsie
  • Registratie: Juni 2006
  • Laatst online: 06:21
N0EL schreef op vrijdag 25 augustus 2023 @ 21:24:
Iemand hier ervaring me de Victron EV Charging Station?

Ik gebruik momenteel een Wallbox voor het laden van mijn EV, en mijn "home assistant" systeem maakt hierop beslissingen voor o.a. het laden van mijn thuisbatterij.

Probleem is dat de Wallbox altijd via het "my.wallbox.com" portaal gaat, en hierdoor soms niet werkt, of veel vertraging heeft. Denk dat enkel de WiFi verbinding van de Wallbox naar mijn router ook niet echt helpt.

Nu heeft Victron een nieuw model. De EV Charging Station NS, en overweeg om deze misschien te kopen.

Iemand hier de een van de 2 Charging Station heeft?
Deze vraag kan je beter stellen in het Thuisladen van je EV deel 2 topic.

Verder zou ik persoonlijk niet voor deze gaan, genoeg andere alternatieven die beter zijn.

3600 Wp op 0° (vrijwel plat) | 3900Wp op 10°


Acties:
  • 0 Henk 'm!

  • N0EL
  • Registratie: November 2019
  • Laatst online: 26-05 23:49
Dankjewel. Ik ga zeker even in dat topic zoeken.

Had gehoopt dat er hier ook ervaring was met een van deze laders omdat het van Victron is en ook direct aan te sturen met een Victron Cerbo GX

Acties:
  • +1 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
N0EL schreef op donderdag 24 augustus 2023 @ 20:12:
Wil jij misschien de flow zelf delen zodat ik deze hier kan importeren (ik snap dat deze niet gelijk gaat werken met mijn Victron / PV (SolarEdge) en batterijen setup.
Sorry, je vraag is al twee dagen oud. Ik was bezig te helpen met het opzetten van dit Topic.
Dit is een export van de Flow waarmee ik op dit moment werk.
Laden van 23.00 tot 07.00 moet je separaat instellen.
Met deze Flow wordt de accu in de loop van de dag ontladen tot het ingestelde minimum niveau.
[
{
"id": "972c14d502141bb6",
"type": "tab",
"label": "Flow Set Grid Point",
"disabled": false,
"info": "",
"env": []
},
{
"id": "da6fe55730a0ba74",
"type": "victron-input-pvinverter",
"z": "972c14d502141bb6",
"service": "com.victronenergy.pvinverter/31",
"path": "/Ac/Power",
"serviceObj": {
"service": "com.victronenergy.pvinverter/31",
"name": "SolarEdge via meter"
},
"pathObj": {
"path": "/Ac/Power",
"type": "float",
"name": "Total Power (W)"
},
"name": "SolarEdge",
"onlyChanges": false,
"roundValues": "0",
"x": 100,
"y": 160,
"wires": [
[
"40f221331bb54dbe"
]
]
},
{
"id": "a5e1c3ec218b5ee5",
"type": "victron-input-solarcharger",
"z": "972c14d502141bb6",
"service": "com.victronenergy.solarcharger/279",
"path": "/Yield/Power",
"serviceObj": {
"service": "com.victronenergy.solarcharger/279",
"name": "SmartSolar Charger MPPT 100/20 48V"
},
"pathObj": {
"path": "/Yield/Power",
"type": "float",
"name": "PV Power (W)"
},
"name": "MPPT",
"onlyChanges": false,
"roundValues": "0",
"x": 90,
"y": 220,
"wires": [
[
"40f221331bb54dbe"
]
]
},
{
"id": "40f221331bb54dbe",
"type": "sum",
"z": "972c14d502141bb6",
"name": "Zonne-energie",
"topic": "PV",
"x": 280,
"y": 220,
"wires": [
[
"c1a63b2b38c20efa"
]
]
},
{
"id": "a629b64d480ace5a",
"type": "victron-input-system",
"z": "972c14d502141bb6",
"service": "com.victronenergy.system/0",
"path": "/Ac/Consumption/L1/Power",
"serviceObj": {
"service": "com.victronenergy.system/0",
"name": "Venus system"
},
"pathObj": {
"path": "/Ac/Consumption/L1/Power",
"type": "float",
"name": "AC Consumption L1 (W)"
},
"initial": "",
"name": "AC L1",
"onlyChanges": false,
"roundValues": "0",
"x": 90,
"y": 280,
"wires": [
[
"b2da5d6ba5ecd098"
]
]
},
{
"id": "85a68ef3de651b57",
"type": "victron-input-system",
"z": "972c14d502141bb6",
"service": "com.victronenergy.system/0",
"path": "/Ac/Consumption/L2/Power",
"serviceObj": {
"service": "com.victronenergy.system/0",
"name": "Venus system"
},
"pathObj": {
"path": "/Ac/Consumption/L2/Power",
"type": "float",
"name": "AC Consumption L2 (W)"
},
"name": "AC L2",
"onlyChanges": false,
"roundValues": "0",
"x": 90,
"y": 340,
"wires": [
[
"b2da5d6ba5ecd098"
]
]
},
{
"id": "06c4a48ded9d020f",
"type": "victron-input-system",
"z": "972c14d502141bb6",
"service": "com.victronenergy.system/0",
"path": "/Ac/Consumption/L3/Power",
"serviceObj": {
"service": "com.victronenergy.system/0",
"name": "Venus system"
},
"pathObj": {
"path": "/Ac/Consumption/L3/Power",
"type": "float",
"name": "AC Consumption L3 (W)"
},
"name": "AC L3",
"onlyChanges": false,
"roundValues": "0",
"x": 90,
"y": 400,
"wires": [
[
"b2da5d6ba5ecd098"
]
]
},
{
"id": "b2da5d6ba5ecd098",
"type": "sum",
"z": "972c14d502141bb6",
"name": "AC Loads",
"topic": "ACLoads",
"x": 300,
"y": 280,
"wires": [
[
"c1a63b2b38c20efa"
]
]
},
{
"id": "c1a63b2b38c20efa",
"type": "function",
"z": "972c14d502141bb6",
"name": "Calc Grid Setpoint",
"func": "context.data = context.data || {};\n\nswitch (msg.topic) {\n case \"PV\":\n // Huidige productie zonnepanelen \n context.data.PV = msg.payload ;\n msg = null;\n break;\n case \"ACLoads\":\n // Huidig verbruik huis-installaties\n context.data.ACLoads = msg.payload ;\n msg = null;\n break;\n case \"Batterijen SOC\":\n // Huidige State Of Charge\n context.data.CurSOC = msg.payload ;\n msg = null;\n break;\n case \"Minimum SOC\":\n // het minimaal resterende percentage State of Charge\n context.data.RestSOC = msg.payload ;\n msg = null;\n break;\n default:\n msg = null;\n}\n\nif (context.data.PV != null \n&& context.data.ACLoads != null\n&& context.data.CurSOC != null \n&& context.data.RestSOC != null )\n{\n // Batterij-capaciteit in kWh\n var BatCap = 15000;\n // GridSetPoint indien niet wordt ontaden\n var DefaultGridSetPoint = 30;\n // Huidige minuut sinds middernacht\n var CurDate = new Date();\n var CurMinute = CurDate.getHours() * 60 + CurDate.getMinutes();\n // Stoptijd ontladen (23:00) in minuten na middernacht\n var StopMinute = 23 * 60;\n var CurDayOfWeek = CurDate.getDay();\n \n // het aantal minuten dat nog mag worden ontladen (tot 23.00)\n var MinutesToGo = (StopMinute - CurMinute);\n \n // State Of Charge dat mag worden teruggeleverd\n var SOCToGo = (context.data.CurSOC - context.data.RestSOC);\n if (SOCToGo < 0) {\n SOCToGo = 0\n }\n \n // Capaciteit die mag worden teruggeleverd\n var CapToGo = SOCToGo * BatCap / 100;\n \n // Capaciteit die per uur mag worden teruggeleverd\n var CapPerHour = CapToGo * 60 / MinutesToGo;\n CapPerHour = Math.floor(CapPerHour); // afronden op nul decimalen\n \n // rekening houden met PV opbrengst en huisverbruik\n // hoeveel mag er naar het Grid toe\n var GridSetPoint = -(context.data.PV - context.data.ACLoads + CapPerHour);\n GridSetPoint = 10 * Math.floor(GridSetPoint / 10); // afronden op tienvoud\n \n if (CurDayOfWeek == 0) {\n // op zondag (day = 0) niet ontladen\n GridSetPoint = DefaultGridSetPoint;\n }\n else if (CurDayOfWeek == 6) {\n // op zaterdag (day = 6) niet ontladen\n GridSetPoint = DefaultGridSetPoint;\n }\n else if (CurMinute > StopMinute) {\n // in de nacht niet ontladen\n GridSetPoint = DefaultGridSetPoint;\n }\n else if (CurMinute < (7 * 60)) {\n // in de nacht niet ontladen\n GridSetPoint = DefaultGridSetPoint;\n }\n else if (GridSetPoint > DefaultGridSetPoint) {\n // niet meer van het Grid halen dan Default-waarde\n GridSetPoint = DefaultGridSetPoint;\n }\n \n \n context.data = null;\n return {payload:GridSetPoint};\n}\nelse\n{\n return msg;\n}",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 530,
"y": 220,
"wires": [
[
"66c39bb94bec2807"
]
]
},
{
"id": "c002cdfcaf9fc8f9",
"type": "debug",
"z": "972c14d502141bb6",
"name": "debug 4",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 520,
"y": 440,
"wires": []
},
{
"id": "66c39bb94bec2807",
"type": "delay",
"z": "972c14d502141bb6",
"name": "",
"pauseType": "rate",
"timeout": "5",
"timeoutUnits": "seconds",
"rate": "1",
"nbRateUnits": "10",
"rateUnits": "second",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": true,
"allowrate": false,
"outputs": 1,
"x": 300,
"y": 520,
"wires": [
[
"c002cdfcaf9fc8f9",
"9adddd33e417ff8a"
]
]
},
{
"id": "9adddd33e417ff8a",
"type": "victron-output-ess",
"z": "972c14d502141bb6",
"service": "com.victronenergy.settings",
"path": "/Settings/CGwacs/AcPowerSetPoint",
"serviceObj": {
"service": "com.victronenergy.settings",
"name": "Venus settings"
},
"pathObj": {
"path": "/Settings/CGwacs/AcPowerSetPoint",
"type": "integer",
"name": "Grid set-point (W)",
"writable": true
},
"name": "",
"onlyChanges": false,
"x": 580,
"y": 520,
"wires": []
},
{
"id": "ad31dc16b39c704f",
"type": "victron-input-battery",
"z": "972c14d502141bb6",
"service": "com.victronenergy.battery/512",
"path": "/Soc",
"serviceObj": {
"service": "com.victronenergy.battery/512",
"name": "Totle Power"
},
"pathObj": {
"path": "/Soc",
"type": "float",
"name": "State of charge (%)"
},
"name": "Batterijen SOC",
"onlyChanges": false,
"roundValues": "0",
"x": 120,
"y": 40,
"wires": [
[
"c1a63b2b38c20efa"
]
]
},
{
"id": "b9efc6f102bb0881",
"type": "victron-input-system",
"z": "972c14d502141bb6",
"service": "com.victronenergy.system/0",
"path": "/Control/ActiveSocLimit",
"serviceObj": {
"service": "com.victronenergy.system/0",
"name": "Venus system"
},
"pathObj": {
"path": "/Control/ActiveSocLimit",
"type": "integer",
"name": "ESS active SOC limit (%)"
},
"name": "Minimum SOC",
"onlyChanges": false,
"x": 120,
"y": 100,
"wires": [
[
"c1a63b2b38c20efa"
]
]
}
]

Acties:
  • 0 Henk 'm!

  • N0EL
  • Registratie: November 2019
  • Laatst online: 26-05 23:49
@MJ de Bruijn Dankjewel. Het werkt (nu even enkel in debug)

Ik moest wel de MPPT verwijderen omdat ik enkel een SolarEdge (9K) heb.
Ik ga alles even goed monitoren/bestuderen en dan de Venus Settings in de flow weer aanzetten.

Dankjewel.

[ Voor 10% gewijzigd door N0EL op 26-08-2023 12:37 ]


Acties:
  • 0 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
Ik wil de waarde van het laden/ontladen van mijn batterijen naar mijn huis-domotica (=Domoticz) sturen.
Dat kan via een HTTP commando met JSON instucties.

Voorbeeld:
http://10.0.1.103:8080/js...4748&nvalue=0&svalue=3333

Hierbij is 3333 de waarde van de BatteryPower. 4748 is het indexnummer van het bijbehorende device in Domoticz.

Het lukt me niet om in Node Red de waarde (zoals 3333) als parameter in de URL op te nemen.

Dit is de Flow:
Afbeeldingslocatie: https://tweakers.net/i/f7QgOCIzm54ABaUzkz0L-P_aPzE=/800x/filters:strip_icc():strip_exif()/f/image/XWXIAG5oo4kSOt10yqHBbSt4.jpg?f=fotoalbum_large

Dit is de HTTP request:
Afbeeldingslocatie: https://tweakers.net/i/7dzZnY3IhRiMk0sZ6y-vAZRSRoc=/x800/filters:strip_icc():strip_exif()/f/image/1jSLtg3DTqXNAVXy5o1Ptb06.jpg?f=fotoalbum_large

Hierin is de URL: http://10.0.1.103:8080/js...idx=4748&nvalue=0&svalue={{{msg.payload}}}

Ik heb begrepen dat de payload tussen drie sets accolades moet.

De aanroep wordt verwerkt maar de payload wordt niet ingevoegd (blijft leeg).

Hoe kan ik de payload van BatteryPower aan de URL toevoegen?

Acties:
  • 0 Henk 'm!

  • John245
  • Registratie: Januari 2020
  • Nu online
MJ de Bruijn schreef op zaterdag 26 augustus 2023 @ 19:15:
Ik wil de waarde van het laden/ontladen van mijn batterijen naar mijn huis-domotica (=Domoticz) sturen.
Dat kan via een HTTP commando met JSON instucties.

Voorbeeld:
http://10.0.1.103:8080/js...4748&nvalue=0&svalue=3333

Hierbij is 3333 de waarde van de BatteryPower. 4748 is het indexnummer van het bijbehorende device in Domoticz.

Het lukt me niet om in Node Red de waarde (zoals 3333) als parameter in de URL op te nemen.

Dit is de Flow:
[Afbeelding]

Dit is de HTTP request:
[Afbeelding]

Hierin is de URL: http://10.0.1.103:8080/js...idx=4748&nvalue=0&svalue={{{msg.payload}}}

Ik heb begrepen dat de payload tussen drie sets accolades moet.

De aanroep wordt verwerkt maar de payload wordt niet ingevoegd (blijft leeg).

Hoe kan ik de payload van BatteryPower aan de URL toevoegen?
Heb geen domoticz.

Ik stel voor een Debug Node toe te voegen aan "Battery Power" en dan de output van beide debug Nodes te posten.

Tibber; 3-fase Victron ESS, 38,4 kWh opslag; gasloos sinds 2013; Nibe F1245-10PC; SAP; HomeSeer4; Proxmox 8


Acties:
  • 0 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
John245 schreef op zaterdag 26 augustus 2023 @ 19:51:
Ik stel voor een Debug Node toe te voegen aan "Battery Power" en dan de output van beide debug Nodes te posten.
De Debug Node van BatteryPower toont netjes de waarde als een getal. Niet meer en niet minder.

Acties:
  • 0 Henk 'm!

  • John245
  • Registratie: Januari 2020
  • Nu online
MJ de Bruijn schreef op zaterdag 26 augustus 2023 @ 20:11:
[...]

De Debug Node van BatteryPower toont netjes de waarde als een getal. Niet meer en niet minder.
Ok, meestal is er ook nog wel object informtie. Kun je dat getal wel in een andere niet Domoticz Node krijgen?

Tibber; 3-fase Victron ESS, 38,4 kWh opslag; gasloos sinds 2013; Nibe F1245-10PC; SAP; HomeSeer4; Proxmox 8


Acties:
  • 0 Henk 'm!

  • N0EL
  • Registratie: November 2019
  • Laatst online: 26-05 23:49
Heeft de "msg.payload" misschien een spatie of comma in de waarde?

Acties:
  • 0 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
N0EL schreef op zaterdag 26 augustus 2023 @ 20:48:
Heeft de "msg.payload" misschien een spatie of comma in de waarde?
Alleen een waarde
Afbeeldingslocatie: https://tweakers.net/i/QgbKJBjUuwTGDkcBqYidNQAMGXM=/full-fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():fill(white):strip_exif()/f/image/2thJGtfWjKdyW7wo1NTZEEOa.jpg?f=user_large

Acties:
  • +1 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
MJ de Bruijn schreef op zaterdag 26 augustus 2023 @ 19:15:
Hierin is de URL: http://10.0.1.103:8080/js...idx=4748&nvalue=0&svalue={{{msg.payload}}}

Hoe kan ik de payload van BatteryPower aan de URL toevoegen?
Een antwoord op mijn eigen vraag:

De URL moet luiden:
http://10.0.1.103:8080/js...idx=4748&nvalue=0&svalue={{{payload}}}

dus zonder .msg bij de payload

Acties:
  • +1 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
Dit is mogelijk interessant voor Victron gebruikers die (ook) met Domoticz werken.

Ik heb een Node Red Flow ontwikkeld die de gegevens van het Victron systeem overbrengt naar Domoticz.
Afbeeldingslocatie: https://tweakers.net/i/v8jjuXZ3H4aIpxp8DhxBepwu4fA=/x800/filters:strip_icc():strip_exif()/f/image/ERRN1WBIUZRrH2pIbdi3fiY1.jpg?f=fotoalbum_large

In Domoticz ziet dit er zo uit:
Afbeeldingslocatie: https://tweakers.net/i/yoB0jgzEPikJEVZ1Gn3btYF4y3U=/800x/filters:strip_icc():strip_exif()/f/image/kNlIfcvANxhVvkkeUEHSliRA.jpg?f=fotoalbum_large

Het Device Victron Batterij Power is van type Electric.
Het Device Victron Batterij State-of-Charge is van het type Percentage.
De andere Devices zijn van type General, kWh.
Deze Devices moet je tevoren via "Dummy" hardware aanmaken.

Hieronder staat de Flow. Deze kan worden geïmporteerd in Node Red.

Afhankelijkheden:
Ik gebruik de "Sum" Node uit "node-red-contrib-sum".

De functies zorgen ervoor dat slechts iedere vijf seconden een update aan Domoticz wordt gezonden. Om geen gegevens verloren te laten gaan wordt het gemiddelde van de berichten van die vijf seconden berekend.

Indien je dit gebruikt moet je in de communicatie-nodes de URL aanpassen: IP-adres en idx-nummers van de verschillende Devices.
[
{
"id": "a48d5349e74f6995",
"type": "tab",
"label": "VictronToDomoticz",
"disabled": false,
"info": "",
"env": []
},
{
"id": "850abed67693c399",
"type": "victron-input-battery",
"z": "a48d5349e74f6995",
"service": "com.victronenergy.battery/512",
"path": "/Dc/0/Power",
"serviceObj": {
"service": "com.victronenergy.battery/512",
"name": "Totle Power"
},
"pathObj": {
"path": "/Dc/0/Power",
"type": "float",
"name": "Battery power (W)"
},
"name": "BatteryPower",
"onlyChanges": false,
"roundValues": "0",
"x": 110,
"y": 40,
"wires": [
[
"25067ae506021afe"
]
]
},
{
"id": "5b74c96e42f3e078",
"type": "http request",
"z": "a48d5349e74f6995",
"name": "BatteryPowerToDomoticz",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://10.0.1.103:8080/json.htm?type=command&param=udevice&idx=4748&nvalue=0&svalue={{{Average}}}",
"tls": "",
"persist": false,
"proxy": "",
"insecureHTTPParser": false,
"authType": "",
"senderr": false,
"headers": [],
"x": 570,
"y": 40,
"wires": [
[]
]
},
{
"id": "5348041fec5c3ca8",
"type": "victron-input-battery",
"z": "a48d5349e74f6995",
"service": "com.victronenergy.battery/512",
"path": "/Soc",
"serviceObj": {
"service": "com.victronenergy.battery/512",
"name": "Totle Power"
},
"pathObj": {
"path": "/Soc",
"type": "float",
"name": "State of charge (%)"
},
"name": "BatterySOC",
"onlyChanges": false,
"x": 110,
"y": 100,
"wires": [
[
"ec4241539f3b4ae1"
]
]
},
{
"id": "064505dc9b8a0566",
"type": "http request",
"z": "a48d5349e74f6995",
"name": "BatterySOCToDomoticz",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://10.0.1.103:8080/json.htm?type=command&param=udevice&idx=4765&nvalue=0&svalue={{{payload}}}",
"tls": "",
"persist": false,
"proxy": "",
"insecureHTTPParser": false,
"authType": "",
"senderr": false,
"headers": [],
"x": 570,
"y": 100,
"wires": [
[]
]
},
{
"id": "ec4241539f3b4ae1",
"type": "delay",
"z": "a48d5349e74f6995",
"name": "",
"pauseType": "rate",
"timeout": "5",
"timeoutUnits": "seconds",
"rate": "1",
"nbRateUnits": "15",
"rateUnits": "second",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": true,
"allowrate": false,
"outputs": 1,
"x": 300,
"y": 100,
"wires": [
[
"064505dc9b8a0566"
]
]
},
{
"id": "c40370c418f1ca19",
"type": "http request",
"z": "a48d5349e74f6995",
"name": "PVChargerToDomoticz",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://10.0.1.103:8080/json.htm?type=command&param=udevice&idx=4768&nvalue=0&svalue={{{Average}}};0",
"tls": "",
"persist": false,
"proxy": "",
"insecureHTTPParser": false,
"authType": "",
"senderr": false,
"headers": [],
"x": 560,
"y": 160,
"wires": [
[]
]
},
{
"id": "3b52ce4e5dc0e948",
"type": "victron-input-solarcharger",
"z": "a48d5349e74f6995",
"service": "com.victronenergy.solarcharger/279",
"path": "/Yield/Power",
"serviceObj": {
"service": "com.victronenergy.solarcharger/279",
"name": "SmartSolar Charger MPPT 100/20 48V"
},
"pathObj": {
"path": "/Yield/Power",
"type": "float",
"name": "PV Power (W)"
},
"name": "PV Charger",
"onlyChanges": false,
"roundValues": "0",
"x": 110,
"y": 160,
"wires": [
[
"c20dfff5ed59f33e"
]
]
},
{
"id": "7b1c86265e3510b9",
"type": "http request",
"z": "a48d5349e74f6995",
"name": "PVInverterToDomoticz",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://10.0.1.103:8080/json.htm?type=command&param=udevice&idx=4769&nvalue=0&svalue={{{Average}}};0",
"tls": "",
"persist": false,
"proxy": "",
"insecureHTTPParser": false,
"authType": "",
"senderr": false,
"headers": [],
"x": 560,
"y": 220,
"wires": [
[]
]
},
{
"id": "270a7a85fa83b14a",
"type": "victron-input-pvinverter",
"z": "a48d5349e74f6995",
"service": "com.victronenergy.pvinverter/31",
"path": "/Ac/Power",
"serviceObj": {
"service": "com.victronenergy.pvinverter/31",
"name": "SolarEdge via meter"
},
"pathObj": {
"path": "/Ac/Power",
"type": "float",
"name": "Total Power (W)"
},
"name": "PV Inverter",
"onlyChanges": false,
"roundValues": "0",
"x": 100,
"y": 220,
"wires": [
[
"e79577c555d7d2db"
]
]
},
{
"id": "a17baba266a4354d",
"type": "http request",
"z": "a48d5349e74f6995",
"name": "ACLoadL1ToDomoticz",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://10.0.1.103:8080/json.htm?type=command&param=udevice&idx=4770&nvalue=0&svalue={{{Average}}};0",
"tls": "",
"persist": false,
"proxy": "",
"insecureHTTPParser": false,
"authType": "",
"senderr": false,
"headers": [],
"x": 560,
"y": 280,
"wires": [
[]
]
},
{
"id": "f5976fd8e5e74e93",
"type": "victron-input-system",
"z": "a48d5349e74f6995",
"service": "com.victronenergy.system/0",
"path": "/Ac/Consumption/L1/Power",
"serviceObj": {
"service": "com.victronenergy.system/0",
"name": "Venus system"
},
"pathObj": {
"path": "/Ac/Consumption/L1/Power",
"type": "float",
"name": "AC Consumption L1 (W)"
},
"name": "AC Load L1",
"onlyChanges": false,
"roundValues": "0",
"x": 110,
"y": 280,
"wires": [
[
"88d36d949bb09548",
"09ae4d609ebc4a6b"
]
]
},
{
"id": "5c8424d5287bc02f",
"type": "http request",
"z": "a48d5349e74f6995",
"name": "ACLoadL2ToDomoticz",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://10.0.1.103:8080/json.htm?type=command&param=udevice&idx=4771&nvalue=0&svalue={{{Average}}};0",
"tls": "",
"persist": false,
"proxy": "",
"insecureHTTPParser": false,
"authType": "",
"senderr": false,
"headers": [],
"x": 560,
"y": 340,
"wires": [
[]
]
},
{
"id": "d6f04e05484d6d90",
"type": "victron-input-system",
"z": "a48d5349e74f6995",
"service": "com.victronenergy.system/0",
"path": "/Ac/Consumption/L2/Power",
"serviceObj": {
"service": "com.victronenergy.system/0",
"name": "Venus system"
},
"pathObj": {
"path": "/Ac/Consumption/L2/Power",
"type": "float",
"name": "AC Consumption L2 (W)"
},
"name": "AC Load L2",
"onlyChanges": false,
"roundValues": "0",
"x": 110,
"y": 340,
"wires": [
[
"1cb0ae7a52e1dbc7",
"09ae4d609ebc4a6b"
]
]
},
{
"id": "2862e650bd4d53cc",
"type": "http request",
"z": "a48d5349e74f6995",
"name": "ACLoadL3ToDomoticz",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://10.0.1.103:8080/json.htm?type=command&param=udevice&idx=4772&nvalue=0&svalue={{{Average}}};0",
"tls": "",
"persist": false,
"proxy": "",
"insecureHTTPParser": false,
"authType": "",
"senderr": false,
"headers": [],
"x": 560,
"y": 400,
"wires": [
[]
]
},
{
"id": "ac79efc22aadba83",
"type": "victron-input-system",
"z": "a48d5349e74f6995",
"service": "com.victronenergy.system/0",
"path": "/Ac/Consumption/L3/Power",
"serviceObj": {
"service": "com.victronenergy.system/0",
"name": "Venus system"
},
"pathObj": {
"path": "/Ac/Consumption/L3/Power",
"type": "float",
"name": "AC Consumption L3 (W)"
},
"name": "AC Load L3",
"onlyChanges": false,
"roundValues": "0",
"x": 110,
"y": 400,
"wires": [
[
"8160432388086e7c",
"09ae4d609ebc4a6b"
]
]
},
{
"id": "7ca38f611f697541",
"type": "http request",
"z": "a48d5349e74f6995",
"name": "GridL1ToDomoticz",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://10.0.1.103:8080/json.htm?type=command&param=udevice&idx=4773&nvalue=0&svalue={{{Average}}};0",
"tls": "",
"persist": false,
"proxy": "",
"insecureHTTPParser": false,
"authType": "",
"senderr": false,
"headers": [],
"x": 550,
"y": 520,
"wires": [
[]
]
},
{
"id": "98263cd51f9dda16",
"type": "victron-input-system",
"z": "a48d5349e74f6995",
"service": "com.victronenergy.system/0",
"path": "/Ac/Grid/L1/Power",
"serviceObj": {
"service": "com.victronenergy.system/0",
"name": "Venus system"
},
"pathObj": {
"path": "/Ac/Grid/L1/Power",
"type": "float",
"name": "Grid L1 (W)"
},
"name": "Grid L1",
"onlyChanges": false,
"roundValues": "0",
"x": 90,
"y": 520,
"wires": [
[
"7ad346ce6c89ce96",
"076da5c9869cf470"
]
]
},
{
"id": "7c4009730dad0a6a",
"type": "http request",
"z": "a48d5349e74f6995",
"name": "GridL2ToDomoticz",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://10.0.1.103:8080/json.htm?type=command&param=udevice&idx=4774&nvalue=0&svalue={{{Average}}};0",
"tls": "",
"persist": false,
"proxy": "",
"insecureHTTPParser": false,
"authType": "",
"senderr": false,
"headers": [],
"x": 550,
"y": 580,
"wires": [
[]
]
},
{
"id": "b9ccddc0aba80cfa",
"type": "victron-input-system",
"z": "a48d5349e74f6995",
"service": "com.victronenergy.system/0",
"path": "/Ac/Grid/L2/Power",
"serviceObj": {
"service": "com.victronenergy.system/0",
"name": "Venus system"
},
"pathObj": {
"path": "/Ac/Grid/L2/Power",
"type": "float",
"name": "Grid L2 (W)"
},
"name": "Grid L2",
"onlyChanges": false,
"roundValues": "0",
"x": 90,
"y": 580,
"wires": [
[
"7ad346ce6c89ce96",
"1d60ed2819e422da"
]
]
},
{
"id": "e45f22c4da4e95fe",
"type": "http request",
"z": "a48d5349e74f6995",
"name": "GridL3ToDomoticz",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://10.0.1.103:8080/json.htm?type=command&param=udevice&idx=4775&nvalue=0&svalue={{{Average}}};0",
"tls": "",
"persist": false,
"proxy": "",
"insecureHTTPParser": false,
"authType": "",
"senderr": false,
"headers": [],
"x": 550,
"y": 640,
"wires": [
[]
]
},
{
"id": "9931c72716658e5d",
"type": "victron-input-system",
"z": "a48d5349e74f6995",
"service": "com.victronenergy.system/0",
"path": "/Ac/Grid/L3/Power",
"serviceObj": {
"service": "com.victronenergy.system/0",
"name": "Venus system"
},
"pathObj": {
"path": "/Ac/Grid/L3/Power",
"type": "float",
"name": "Grid L3 (W)"
},
"name": "Grid L3",
"onlyChanges": false,
"roundValues": "0",
"x": 90,
"y": 640,
"wires": [
[
"7ad346ce6c89ce96",
"94e3805b25ea2d4e"
]
]
},
{
"id": "7ad346ce6c89ce96",
"type": "sum",
"z": "a48d5349e74f6995",
"name": "Grid Sum",
"topic": "GridSum",
"x": 140,
"y": 700,
"wires": [
[
"8e8c3ca76c201c5f"
]
]
},
{
"id": "6b4bdf6fe3bae239",
"type": "http request",
"z": "a48d5349e74f6995",
"name": "GridSumToDomoticz",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://10.0.1.103:8080/json.htm?type=command&param=udevice&idx=4776&nvalue=0&svalue={{{Average}}};0",
"tls": "",
"persist": false,
"proxy": "",
"insecureHTTPParser": false,
"authType": "",
"senderr": false,
"headers": [],
"x": 560,
"y": 700,
"wires": [
[]
]
},
{
"id": "09ae4d609ebc4a6b",
"type": "sum",
"z": "a48d5349e74f6995",
"name": "ACLoadSum",
"topic": "",
"x": 150,
"y": 460,
"wires": [
[
"c8970fd420f3dfbe"
]
]
},
{
"id": "4dc41d658865fe7c",
"type": "http request",
"z": "a48d5349e74f6995",
"name": "ACLoadSumToDomoticz",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://10.0.1.103:8080/json.htm?type=command&param=udevice&idx=4777&nvalue=0&svalue={{{Average}}};0",
"tls": "",
"persist": false,
"proxy": "",
"insecureHTTPParser": false,
"authType": "",
"senderr": false,
"headers": [],
"x": 570,
"y": 460,
"wires": [
[]
]
},
{
"id": "88d36d949bb09548",
"type": "function",
"z": "a48d5349e74f6995",
"name": "ACLoadL1Average",
"func": "var curTime = new Date().getTime();\nvar curCount = context.get('count') || 0;\nvar curSum = context.get('sum') || 0;\nvar lastTime = context.get('lastTime') || 0;\nvar Average = 0;\n\ncurSum = curSum + msg.payload\ncurCount = curCount + 1;\nAverage = Math.floor(curSum / curCount);\ncontext.set('sum', curSum);\ncontext.set('count', curCount);\n\nif (curTime-lastTime > 5000) {\n var newMsg = { Average, topic:'Average' };\n context.set('sum', 0);\n context.set('count', 0);\n context.set('lastTime', curTime);\n return newMsg;\n}\nelse {\n msg=null;\n}\nreturn msg;\n",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 310,
"y": 280,
"wires": [
[
"a17baba266a4354d"
]
]
},
{
"id": "1cb0ae7a52e1dbc7",
"type": "function",
"z": "a48d5349e74f6995",
"name": "ACLoadL2Average",
"func": "var curTime = new Date().getTime();\nvar curCount = context.get('count') || 0;\nvar curSum = context.get('sum') || 0;\nvar lastTime = context.get('lastTime') || 0;\nvar Average = 0;\n\ncurSum = curSum + msg.payload\ncurCount = curCount + 1;\nAverage = Math.floor(curSum / curCount);\ncontext.set('sum', curSum);\ncontext.set('count', curCount);\n\nif (curTime-lastTime > 5000) {\n var newMsg = { Average, topic:'Average' };\n context.set('sum', 0);\n context.set('count', 0);\n context.set('lastTime', curTime);\n return newMsg;\n}\nelse {\n msg=null;\n}\nreturn msg;\n",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 310,
"y": 340,
"wires": [
[
"5c8424d5287bc02f"
]
]
},
{
"id": "8160432388086e7c",
"type": "function",
"z": "a48d5349e74f6995",
"name": "ACLoadL3Average",
"func": "var curTime = new Date().getTime();\nvar curCount = context.get('count') || 0;\nvar curSum = context.get('sum') || 0;\nvar lastTime = context.get('lastTime') || 0;\nvar Average = 0;\n\ncurSum = curSum + msg.payload\ncurCount = curCount + 1;\nAverage = Math.floor(curSum / curCount);\ncontext.set('sum', curSum);\ncontext.set('count', curCount);\n\nif (curTime-lastTime > 5000) {\n var newMsg = { Average, topic:'Average' };\n context.set('sum', 0);\n context.set('count', 0);\n context.set('lastTime', curTime);\n return newMsg;\n}\nelse {\n msg=null;\n}\nreturn msg;\n",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 310,
"y": 400,
"wires": [
[
"2862e650bd4d53cc"
]
]
},
{
"id": "c8970fd420f3dfbe",
"type": "function",
"z": "a48d5349e74f6995",
"name": "ACLoadSumAverage",
"func": "var curTime = new Date().getTime();\nvar curCount = context.get('count') || 0;\nvar curSum = context.get('sum') || 0;\nvar lastTime = context.get('lastTime') || 0;\nvar Average = 0;\n\ncurSum = curSum + msg.payload\ncurCount = curCount + 1;\nAverage = Math.floor(curSum / curCount);\ncontext.set('sum', curSum);\ncontext.set('count', curCount);\n\nif (curTime-lastTime > 5000) {\n var newMsg = { Average, topic:'Average' };\n context.set('sum', 0);\n context.set('count', 0);\n context.set('lastTime', curTime);\n return newMsg;\n}\nelse {\n msg=null;\n}\nreturn msg;\n",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 340,
"y": 460,
"wires": [
[
"4dc41d658865fe7c"
]
]
},
{
"id": "c20dfff5ed59f33e",
"type": "function",
"z": "a48d5349e74f6995",
"name": "PVChargerAverage",
"func": "var curTime = new Date().getTime();\nvar curCount = context.get('count') || 0;\nvar curSum = context.get('sum') || 0;\nvar lastTime = context.get('lastTime') || 0;\nvar Average = 0;\n\ncurSum = curSum + msg.payload\ncurCount = curCount + 1;\nAverage = Math.floor(curSum / curCount);\ncontext.set('sum', curSum);\ncontext.set('count', curCount);\n\nif (curTime-lastTime > 5000) {\n var newMsg = { Average, topic:'Average' };\n context.set('sum', 0);\n context.set('count', 0);\n context.set('lastTime', curTime);\n return newMsg;\n}\nelse {\n msg=null;\n}\nreturn msg;\n",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 310,
"y": 160,
"wires": [
[
"c40370c418f1ca19"
]
]
},
{
"id": "e79577c555d7d2db",
"type": "function",
"z": "a48d5349e74f6995",
"name": "PVInverterAverage",
"func": "var curTime = new Date().getTime();\nvar curCount = context.get('count') || 0;\nvar curSum = context.get('sum') || 0;\nvar lastTime = context.get('lastTime') || 0;\nvar Average = 0;\n\ncurSum = curSum + msg.payload\ncurCount = curCount + 1;\nAverage = Math.floor(curSum / curCount);\ncontext.set('sum', curSum);\ncontext.set('count', curCount);\n\nif (curTime-lastTime > 5000) {\n var newMsg = { Average, topic:'Average' };\n context.set('sum', 0);\n context.set('count', 0);\n context.set('lastTime', curTime);\n return newMsg;\n}\nelse {\n msg=null;\n}\nreturn msg;\n",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 310,
"y": 220,
"wires": [
[
"7b1c86265e3510b9"
]
]
},
{
"id": "076da5c9869cf470",
"type": "function",
"z": "a48d5349e74f6995",
"name": "GridL1Average",
"func": "var curTime = new Date().getTime();\nvar curCount = context.get('count') || 0;\nvar curSum = context.get('sum') || 0;\nvar lastTime = context.get('lastTime') || 0;\nvar Average = 0;\n\ncurSum = curSum + msg.payload\ncurCount = curCount + 1;\nAverage = Math.floor(curSum / curCount);\ncontext.set('sum', curSum);\ncontext.set('count', curCount);\n\nif (curTime-lastTime > 5000) {\n var newMsg = { Average, topic:'Average' };\n context.set('sum', 0);\n context.set('count', 0);\n context.set('lastTime', curTime);\n return newMsg;\n}\nelse {\n msg=null;\n}\nreturn msg;\n",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 300,
"y": 520,
"wires": [
[
"7ca38f611f697541"
]
]
},
{
"id": "1d60ed2819e422da",
"type": "function",
"z": "a48d5349e74f6995",
"name": "GridL2Average",
"func": "var curTime = new Date().getTime();\nvar curCount = context.get('count') || 0;\nvar curSum = context.get('sum') || 0;\nvar lastTime = context.get('lastTime') || 0;\nvar Average = 0;\n\ncurSum = curSum + msg.payload\ncurCount = curCount + 1;\nAverage = Math.floor(curSum / curCount);\ncontext.set('sum', curSum);\ncontext.set('count', curCount);\n\nif (curTime-lastTime > 5000) {\n var newMsg = { Average, topic:'Average' };\n context.set('sum', 0);\n context.set('count', 0);\n context.set('lastTime', curTime);\n return newMsg;\n}\nelse {\n msg=null;\n}\nreturn msg;\n",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 300,
"y": 580,
"wires": [
[
"7c4009730dad0a6a"
]
]
},
{
"id": "94e3805b25ea2d4e",
"type": "function",
"z": "a48d5349e74f6995",
"name": "GridL3Average",
"func": "var curTime = new Date().getTime();\nvar curCount = context.get('count') || 0;\nvar curSum = context.get('sum') || 0;\nvar lastTime = context.get('lastTime') || 0;\nvar Average = 0;\n\ncurSum = curSum + msg.payload\ncurCount = curCount + 1;\nAverage = Math.floor(curSum / curCount);\ncontext.set('sum', curSum);\ncontext.set('count', curCount);\n\nif (curTime-lastTime > 5000) {\n var newMsg = { Average, topic:'Average' };\n context.set('sum', 0);\n context.set('count', 0);\n context.set('lastTime', curTime);\n return newMsg;\n}\nelse {\n msg=null;\n}\nreturn msg;\n",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 300,
"y": 640,
"wires": [
[
"e45f22c4da4e95fe"
]
]
},
{
"id": "8e8c3ca76c201c5f",
"type": "function",
"z": "a48d5349e74f6995",
"name": "GridSumAverage",
"func": "var curTime = new Date().getTime();\nvar curCount = context.get('count') || 0;\nvar curSum = context.get('sum') || 0;\nvar lastTime = context.get('lastTime') || 0;\nvar Average = 0;\n\ncurSum = curSum + msg.payload\ncurCount = curCount + 1;\nAverage = Math.floor(curSum / curCount);\ncontext.set('sum', curSum);\ncontext.set('count', curCount);\n\nif (curTime-lastTime > 5000) {\n var newMsg = { Average, topic:'Average' };\n context.set('sum', 0);\n context.set('count', 0);\n context.set('lastTime', curTime);\n return newMsg;\n}\nelse {\n msg=null;\n}\nreturn msg;\n",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 330,
"y": 700,
"wires": [
[
"6b4bdf6fe3bae239"
]
]
},
{
"id": "25067ae506021afe",
"type": "function",
"z": "a48d5349e74f6995",
"name": "BatteryPowerAverage",
"func": "var curTime = new Date().getTime();\nvar curCount = context.get('count') || 0;\nvar curSum = context.get('sum') || 0;\nvar lastTime = context.get('lastTime') || 0;\nvar Average = 0;\n\ncurSum = curSum + msg.payload\ncurCount = curCount + 1;\nAverage = Math.floor(curSum / curCount);\ncontext.set('sum', curSum);\ncontext.set('count', curCount);\n\nif (curTime-lastTime > 5000) {\n var newMsg = { Average, topic:'Average' };\n context.set('sum', 0);\n context.set('count', 0);\n context.set('lastTime', curTime);\n return newMsg;\n}\nelse {\n msg=null;\n}\nreturn msg;\n",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 320,
"y": 40,
"wires": [
[
"5b74c96e42f3e078"
]
]
}
]

[ Voor 255% gewijzigd door MJ de Bruijn op 28-08-2023 12:41 ]


Acties:
  • 0 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
Ik heb mezelf buitengesloten bij de Victron Nodes in Node Red.

Bij het ontwikkelen van Flows heb ik geëxperimenteerd met API Tokens. Nu krijg ik een fout.
"TypeError: Cannot read property 'client' of null" voor alle Victron Nodes.

Ik heb Node Red helemaal verwijderd en opnieuw geïnstalleerd op de Cerbo en de Flow teruggezet. Geen verschil.

Bij het experimenteren met api tokens heb ik de pagina https://vrm.victronenergy.com/access-tokens bezocht. Daar stonden twee "Active API access tokens". Die heb ik (blijkbaar) verwijderd.

Geen idee of dit de oorzaak is. Bij een locale flow verwacht ik geen toegang tot een extern Token bij Victron.

Is er een Node Red expert die (echt) een oplossing weet?

Acties:
  • 0 Henk 'm!

  • John245
  • Registratie: Januari 2020
  • Nu online
MJ de Bruijn schreef op maandag 28 augustus 2023 @ 21:11:
Ik heb mezelf buitengesloten bij de Victron Nodes in Node Red.

Bij het ontwikkelen van Flows heb ik geëxperimenteerd met API Tokens. Nu krijg ik een fout.
"TypeError: Cannot read property 'client' of null" voor alle Victron Nodes.

Ik heb Node Red helemaal verwijderd en opnieuw geïnstalleerd op de Cerbo en de Flow teruggezet. Geen verschil.

Bij het experimenteren met api tokens heb ik de pagina https://vrm.victronenergy.com/access-tokens bezocht. Daar stonden twee "Active API access tokens". Die heb ik (blijkbaar) verwijderd.

Geen idee of dit de oorzaak is. Bij een locale flow verwacht ik geen toegang tot een extern Token bij Victron.

Is er een Node Red expert die (echt) een oplossing weet?
Heb je ook weer de tokens terug gezet.

Hoe werken deze tokens? Verlopen ze als ze niet binnen een bepaalde tijd ververst worden.

Ik denk niet dat je een Node-RED expert nodig heb. Je moet eerst de oorzaak achterhalen.

Tibber; 3-fase Victron ESS, 38,4 kWh opslag; gasloos sinds 2013; Nibe F1245-10PC; SAP; HomeSeer4; Proxmox 8


Acties:
  • 0 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
John245 schreef op maandag 28 augustus 2023 @ 21:26:
Heb je ook weer de tokens terug gezet.
Nee, ik heb de tokens niet. Die waren bij Victron actief.
Hoe werken deze tokens? Verlopen ze als ze niet binnen een bepaalde tijd ververst worden.
Ze zijn onbeperkt geldig. Hoe het (niet) werkt weet ik juist niet. Dat is mijn probleem.
Ik denk niet dat je een Node-RED expert nodig heb. Je moet eerst de oorzaak achterhalen.
Kip-en-ei. Ik heb een Node-Red expert nodig om de oorzaak te achterhalen.

Acties:
  • 0 Henk 'm!

  • Jazsie
  • Registratie: Juni 2006
  • Laatst online: 06:21
MJ de Bruijn schreef op maandag 28 augustus 2023 @ 21:11:
Ik heb mezelf buitengesloten bij de Victron Nodes in Node Red.

Bij het ontwikkelen van Flows heb ik geëxperimenteerd met API Tokens. Nu krijg ik een fout.
"TypeError: Cannot read property 'client' of null" voor alle Victron Nodes.

Ik heb Node Red helemaal verwijderd en opnieuw geïnstalleerd op de Cerbo en de Flow teruggezet. Geen verschil.

Bij het experimenteren met api tokens heb ik de pagina https://vrm.victronenergy.com/access-tokens bezocht. Daar stonden twee "Active API access tokens". Die heb ik (blijkbaar) verwijderd.

Geen idee of dit de oorzaak is. Bij een locale flow verwacht ik geen toegang tot een extern Token bij Victron.

Is er een Node Red expert die (echt) een oplossing weet?
Victron nodes maken gebruikt van de DBUS, API token is niet van toepassing bij 99% van de Victron nodes.

API token is nodig als je toegang wilt hebben tot de VRM (API) of MQTT backend (in de cloud, niet je lokale MQTT).

Beste doe je Cerbo helemaal opnieuw "imagen" ofwel, Venus OS Large compleet opnieuw flashen zodat je een verse start hebt.

Alles wordt gewist behalve /data partitie, dus add-ons etc dien je wel effe opnieuw te installeren.

3600 Wp op 0° (vrijwel plat) | 3900Wp op 10°


Acties:
  • 0 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
Jazsie schreef op maandag 28 augustus 2023 @ 23:10:
API token is nodig als je toegang wilt hebben tot de VRM (API) of MQTT backend (in de cloud, niet je lokale MQTT).
Tsja, maar ik heb ook geen toegang meer tot het VRM portal. Nog steeds bang dat ik teveel tokens heb weggehaald. Er stonden twee tokens die ik niet kende. Ik dacht dat het restanten waren van experimenten. Nu vrees ik dat ze nodig waren voor mijn toegang en/of van mijn leverancier. Ik wacht op zijn antwoord.
Beste doe je Cerbo helemaal opnieuw "imagen" ofwel, Venus OS Large compleet opnieuw flashen zodat je een verse start hebt.
Die optie hou ik nog even achter de hand. Ik heb wel al Node Red verwijderd (Ik heb superuser rechten). Dat had als voordeel dat meer restanten van experimenten werden opgeruimd.

Ik ga voorzichtiger worden. Binnenkort ben ik enkele dagen weg dan wil ik geen instabiel systeem.

Acties:
  • 0 Henk 'm!

  • Batilan
  • Registratie: December 2009
  • Laatst online: 30-05 18:01
Intussen weer een stapje verder met mijn ESS Proof of concept: heb nu een Victron Multiplus 12/800/35, de benodigde bekabeling en een Victron MK3-USB. Laatste stapje is een geschikte '12V' batterij. Ik zie dat de Renogy 100Ah op dit moment redelijk voordelig verkrijgbaar is (100Ah, 12V voor €400,-). Hij is niet direct supported door Victron, maar er is wel een driver voor Victron te vinden op Github (waardoor je neem ik aan BMS controlled kunt laden met de Victron Multiplus, maar dat moet ik nog even uitzoeken). Heb intussen ook een RPi met VenusOS opgezet t.b.v. monitoring en beheer via VRM.

Nu schijnt Renogy een behoorlijk groot merk te zijn in de VS (met name op RV vlak i.c.m. zonnepanelen), maar ik zie erg weinig verwijzingen hier op Tweakers naar dit merk. Zijn er hier wellicht mensen die iets meer van dit merk weten (of een vergelijkbaar type LiFePo4 batterij kennen met BMS support voor Victron en een goede prijs).

Verplaatst vanuit het Powerwall topic.

[ Voor 6% gewijzigd door Batilan op 29-08-2023 12:04 ]


Acties:
  • +1 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
MJ de Bruijn schreef op maandag 28 augustus 2023 @ 21:11:
Bij het ontwikkelen van Flows heb ik geëxperimenteerd met API Tokens. Nu krijg ik een fout.
"TypeError: Cannot read property 'client' of null" voor alle Victron Nodes.

Bij het experimenteren met api tokens heb ik de pagina https://vrm.victronenergy.com/access-tokens bezocht. Daar stonden twee "Active API access tokens". Die heb ik (blijkbaar) verwijderd.
Dit is gelukkig weer opgelost.

Mijn leverancier heeft mij opnieuw uitgenodigd als deelnemer bij Victron.
Daarna uitloggen en opnieuw inloggen bij Victron. Daarna had ik weer toegang tot VRM.

Wat betreft Node Red, ik heb een nieuwe Victron-Node aangemaakt en die verbonden. Daarna werkten ook de andere Nodes weer.

Hè hè, pfff !

Acties:
  • 0 Henk 'm!

  • Meyo084
  • Registratie: Augustus 2023
  • Laatst online: 27-05 17:25
Jazsie schreef op maandag 21 augustus 2023 @ 00:52:
[...]

- P1 meter uitlezen (ter vervanging van de Victron meter), is nodig wanneer je enkel AC IN gebruikt.

[...]
Mag ik vragen hoe dit bevalt? is het stabiel en worden alle waardes doorgegeven?
En welke oplossing heb je hiervoor toegepast? ESPHOME en de MQTT driver?

https://github.com/NuKeMtje/ESPHomeDSMRVictron

Acties:
  • 0 Henk 'm!

  • Jazsie
  • Registratie: Juni 2006
  • Laatst online: 06:21
MJ de Bruijn schreef op dinsdag 29 augustus 2023 @ 13:27:
[...]

Dit is gelukkig weer opgelost.

Mijn leverancier heeft mij opnieuw uitgenodigd als deelnemer bij Victron.
Daarna uitloggen en opnieuw inloggen bij Victron. Daarna had ik weer toegang tot VRM.

Wat betreft Node Red, ik heb een nieuwe Victron-Node aangemaakt en die verbonden. Daarna werkten ook de andere Nodes weer.

Hè hè, pfff !
Ahh je Cerbo "valt onder" je leverancier, belangrijk informatie die wij niet wisten. In dat geval moet je leverancier inderdaad je weer toegang verlenen tot de VRM.

Dit staat overigens nog steeds los van de VRM API Tokens.

Top dat het weer werkt.

3600 Wp op 0° (vrijwel plat) | 3900Wp op 10°


Acties:
  • 0 Henk 'm!

  • Jazsie
  • Registratie: Juni 2006
  • Laatst online: 06:21
Meyo084 schreef op dinsdag 29 augustus 2023 @ 20:39:
[...]


Mag ik vragen hoe dit bevalt? is het stabiel en worden alle waardes doorgegeven?
En welke oplossing heb je hiervoor toegepast? ESPHOME en de MQTT driver?

https://github.com/NuKeMtje/ESPHomeDSMRVictron
Alle waarders worden doorgegeven mits je P1 meter hebt die ook alle informatie geeft.

Maak gebruik van >> https://github.com/freakent/dbus-mqtt-devices
Dit omdat ik een P1 naar Ethernet al had aangsloten.

Bij mij is het stabiel, gaat via bedraad netwerk en waardes worden iedere seconde geupdate.

[ Voor 8% gewijzigd door Jazsie op 30-08-2023 11:18 ]

3600 Wp op 0° (vrijwel plat) | 3900Wp op 10°


Acties:
  • 0 Henk 'm!

  • Meyo084
  • Registratie: Augustus 2023
  • Laatst online: 27-05 17:25
Jazsie schreef op woensdag 30 augustus 2023 @ 11:17:
[...]


Alle waarders worden doorgegeven mits je P1 meter hebt die ook alle informatie geeft.

Maak gebruik van >> https://github.com/freakent/dbus-mqtt-devices
Dit omdat ik een P1 naar Ethernet al had aangsloten.

Bij mij is het stabiel, gaat via bedraad netwerk en waardes worden iedere seconde geupdate.
Wat voor p1 meter gebruik jij hiervoor? zelf heb ik al een youless en homewizard in gebruik maar koppel liever iets rechtstreeks aan de cerbo gezien eventuele stabiliteit problemen..

Acties:
  • +2 Henk 'm!

  • Jazsie
  • Registratie: Juni 2006
  • Laatst online: 06:21
Die van mij komt van @iMars vandaan (https://www.zuidwijk.com/product/p1-reader-ethernet/).
Deze lees ik direct uit via Node-RED op de Cerbo.

3600 Wp op 0° (vrijwel plat) | 3900Wp op 10°


Acties:
  • +1 Henk 'm!

  • Samoerai
  • Registratie: Maart 2000
  • Laatst online: 06-05 15:09
Meyo084 schreef op dinsdag 29 augustus 2023 @ 20:39:
[...]


Mag ik vragen hoe dit bevalt? is het stabiel en worden alle waardes doorgegeven?
En welke oplossing heb je hiervoor toegepast? ESPHOME en de MQTT driver?

https://github.com/NuKeMtje/ESPHomeDSMRVictron
Ik gebruik naar tevredenheid een ESP32 met ESPHome en MQTT (wat snippets op https://sf.own-it.nl/proj...ki/Ess#ESPhome-grid-meter )

  • vanWalsum
  • Registratie: September 2004
  • Laatst online: 30-05 21:20
Zijn er hier mensen die een tip hebben zodat ik mijn enphase systeem zichtbaar krijg op het VRM dashboard?

Acties:
  • +1 Henk 'm!

  • Niltag
  • Registratie: November 2011
  • Laatst online: 28-05 23:12
vanWalsum schreef op donderdag 31 augustus 2023 @ 20:58:
Zijn er hier mensen die een tip hebben zodat ik mijn enphase systeem zichtbaar krijg op het VRM dashboard?
Volgens mij is er geen koppeling beschikbaar voor Victron. Wellicht kun je iets met forwarden van de data via NodeRed naar de Venus OS MQTT koppeling?

Wat makkelijker is is om home assistant te gebruiken en daar zowel de victron als de enphase aan te koppelen. Voor beiden zijn kant en klare oplossingen die je zo kan installeren. Je kunt alle data dan vrij makkelijk naar wens aan elkaar knopen op een dashboard. Vergelijkbaar aan de VRM portal maar in de toekomst nog veel verder uit te breiden. Voorbeeld van een simpel dashboard:

Afbeeldingslocatie: https://tweakers.net/i/yCsM-DhhnRvAcxfppSpb_TdGGzo=/800x/filters:strip_exif()/f/image/ZilyOfRplusN45ujg08WQYb2.png?f=fotoalbum_large

Acties:
  • +1 Henk 'm!

  • Jazsie
  • Registratie: Juni 2006
  • Laatst online: 06:21
vanWalsum schreef op donderdag 31 augustus 2023 @ 20:58:
Zijn er hier mensen die een tip hebben zodat ik mijn enphase systeem zichtbaar krijg op het VRM dashboard?
Zoiets?
Afbeeldingslocatie: https://tweakers.net/i/C-Z5Zk4ZSI8D6z2jVNKhFiammtc=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/E6Y8G2sveBg7YIT2i6eDbB6i.png?f=user_large

Afbeeldingslocatie: https://tweakers.net/i/_pYuJpcxUKrPA50RzYto5Ht1djA=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/vjKRzI6i2QbFrcCgr4pxCuvF.png?f=user_large

Via Node-RED lees ik de PV inverter direct uit en stuur het dan door naar MQTT.
>> https://github.com/freakent/dbus-mqtt-devices

3600 Wp op 0° (vrijwel plat) | 3900Wp op 10°


Acties:
  • +1 Henk 'm!

  • Batilan
  • Registratie: December 2009
  • Laatst online: 30-05 18:01
vanWalsum schreef op donderdag 31 augustus 2023 @ 20:58:
Zijn er hier mensen die een tip hebben zodat ik mijn enphase systeem zichtbaar krijg op het VRM dashboard?
Ik kwam onlangs deze zaken tegen:
https://github.com/mr-manuel/venus-os_dbus-enphase-envoy
https://github.com/jaedog/EnvoyVenusDriver
maar nog niet zelf geprobeerd, je krijgt dan dus al je IQ's als één inverter te zien.

Acties:
  • 0 Henk 'm!

  • vanWalsum
  • Registratie: September 2004
  • Laatst online: 30-05 21:20
Niltag schreef op donderdag 31 augustus 2023 @ 22:34:
[...]


Volgens mij is er geen koppeling beschikbaar voor Victron. Wellicht kun je iets met forwarden van de data via NodeRed naar de Venus OS MQTT koppeling?

Wat makkelijker is is om home assistant te gebruiken en daar zowel de victron als de enphase aan te koppelen. Voor beiden zijn kant en klare oplossingen die je zo kan installeren. Je kunt alle data dan vrij makkelijk naar wens aan elkaar knopen op een dashboard. Vergelijkbaar aan de VRM portal maar in de toekomst nog veel verder uit te breiden. Voorbeeld van een simpel dashboard:

[Afbeelding]
Ah top. Die heb ik nu deels ingericht, maar dan houd ik dit zo. Hoe of met welke plugin heb je het blokje links bovenin gemaakt? Die ziet er ook erg leuk uit.

Acties:
  • 0 Henk 'm!

  • Niltag
  • Registratie: November 2011
  • Laatst online: 28-05 23:12
vanWalsum schreef op zaterdag 2 september 2023 @ 16:41:
[...]


Ah top. Die heb ik nu deels ingericht, maar dan houd ik dit zo. Hoe of met welke plugin heb je het blokje links bovenin gemaakt? Die ziet er ook erg leuk uit.
Is te installeren via HACS. Ik vind de lay-out van HA mooier maar deze is flexibeler zelf in de richten.

https://github.com/flyrmyr/system-flow-card

Acties:
  • +1 Henk 'm!

  • e_hagenaar
  • Registratie: Februari 2008
  • Laatst online: 28-05 10:37
vanWalsum schreef op donderdag 31 augustus 2023 @ 20:58:
Zijn er hier mensen die een tip hebben zodat ik mijn enphase systeem zichtbaar krijg op het VRM dashboard?
https://github.com/freakent/dbus-mqtt-devices

Met venus os large en een node red flow deze via mqtt sturen naar de DBUS

edit: onderstaande flow aangepast
code:
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
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
[
    {
        "id": "eea4b7ce2e042d04",
        "type": "tab",
        "label": "HM400",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "f8c550de9d5ed080",
        "type": "mqtt in",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "topic": "device/PV/DBus",
        "qos": "2",
        "datatype": "auto-detect",
        "broker": "d5eae5c9c1bc2f14",
        "nl": false,
        "rap": true,
        "rh": 0,
        "inputs": 0,
        "x": 140,
        "y": 140,
        "wires": [
            [
                "60ad55e4f9e8f1f6"
            ]
        ]
    },
    {
        "id": "60ad55e4f9e8f1f6",
        "type": "change",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "VictronDBus",
                "pt": "global",
                "to": "payload",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 440,
        "y": 140,
        "wires": [
            []
        ]
    },
    {
        "id": "21ba698ef179f621",
        "type": "mqtt out",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "topic": "",
        "qos": "2",
        "retain": "false",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "d5eae5c9c1bc2f14",
        "x": 930,
        "y": 380,
        "wires": []
    },
    {
        "id": "861350fb7d615a6d",
        "type": "mqtt out",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "topic": "",
        "qos": "2",
        "retain": "false",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "d5eae5c9c1bc2f14",
        "x": 930,
        "y": 340,
        "wires": []
    },
    {
        "id": "9aee21ff3271482b",
        "type": "mqtt out",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "topic": "",
        "qos": "2",
        "retain": "false",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "d5eae5c9c1bc2f14",
        "x": 930,
        "y": 460,
        "wires": []
    },
    {
        "id": "87aab2c88b266efa",
        "type": "mqtt out",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "topic": "",
        "qos": "2",
        "retain": "false",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "d5eae5c9c1bc2f14",
        "x": 930,
        "y": 500,
        "wires": []
    },
    {
        "id": "f4b0037b3c96795a",
        "type": "mqtt out",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "topic": "",
        "qos": "2",
        "retain": "false",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "d5eae5c9c1bc2f14",
        "x": 930,
        "y": 540,
        "wires": []
    },
    {
        "id": "e29762257a4d9b26",
        "type": "function",
        "z": "eea4b7ce2e042d04",
        "name": "HoymilesHM400",
        "func": "msg.topic = \"W/\" + msg.payload.portalId + \"/pvinverter/\" + msg.payload.deviceInstance.HoymilesHM400 + \"TopicX\";\ndelete msg.payload;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 480,
        "y": 480,
        "wires": [
            [
                "1cfef38560d38f9e",
                "54aa8c917b0061d6",
                "fee13d45c11d41ac",
                "ccf635d78da931b8",
                "d53a358d469c26be",
                "174e69821ff5bd7e",
                "36c2a8c9aa8ee36f",
                "2f84e61fe60a4a6e",
                "08cc20bfd1f3f5d9",
                "0c7c6e97cefdd202"
            ]
        ]
    },
    {
        "id": "1cfef38560d38f9e",
        "type": "change",
        "z": "eea4b7ce2e042d04",
        "name": "/Ac/Energy/Forward",
        "rules": [
            {
                "t": "change",
                "p": "topic",
                "pt": "msg",
                "from": "TopicX",
                "fromt": "str",
                "to": "/Ac/Energy/Forward",
                "tot": "str"
            },
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "HM400AcEnergyForward",
                "tot": "global"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 760,
        "y": 340,
        "wires": [
            [
                "861350fb7d615a6d"
            ]
        ]
    },
    {
        "id": "54aa8c917b0061d6",
        "type": "change",
        "z": "eea4b7ce2e042d04",
        "name": "/Ac/L1/Voltage",
        "rules": [
            {
                "t": "change",
                "p": "topic",
                "pt": "msg",
                "from": "TopicX",
                "fromt": "str",
                "to": "/Ac/L1/Voltage",
                "tot": "str"
            },
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "HM400AcL1Voltage",
                "tot": "global"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 740,
        "y": 580,
        "wires": [
            [
                "246948688917f77c"
            ]
        ]
    },
    {
        "id": "246948688917f77c",
        "type": "mqtt out",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "topic": "",
        "qos": "2",
        "retain": "false",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "d5eae5c9c1bc2f14",
        "x": 930,
        "y": 580,
        "wires": []
    },
    {
        "id": "fee13d45c11d41ac",
        "type": "change",
        "z": "eea4b7ce2e042d04",
        "name": "/Ac/Power",
        "rules": [
            {
                "t": "change",
                "p": "topic",
                "pt": "msg",
                "from": "TopicX",
                "fromt": "str",
                "to": "/Ac/Power",
                "tot": "str"
            },
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "HM400AcPower",
                "tot": "global"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 730,
        "y": 380,
        "wires": [
            [
                "21ba698ef179f621"
            ]
        ]
    },
    {
        "id": "ccf635d78da931b8",
        "type": "change",
        "z": "eea4b7ce2e042d04",
        "name": "/Ac/L1/Current",
        "rules": [
            {
                "t": "change",
                "p": "topic",
                "pt": "msg",
                "from": "TopicX",
                "fromt": "str",
                "to": "/Ac/L1/Current",
                "tot": "str"
            },
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "HM400AcL1Current",
                "tot": "global"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 740,
        "y": 460,
        "wires": [
            [
                "9aee21ff3271482b"
            ]
        ]
    },
    {
        "id": "d53a358d469c26be",
        "type": "change",
        "z": "eea4b7ce2e042d04",
        "name": "/Ac/L1/Energy/Forward",
        "rules": [
            {
                "t": "change",
                "p": "topic",
                "pt": "msg",
                "from": "TopicX",
                "fromt": "str",
                "to": "/Ac/L1/Energy/Forward",
                "tot": "str"
            },
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "HM400AcL1EnergyForward",
                "tot": "global"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 760,
        "y": 500,
        "wires": [
            [
                "87aab2c88b266efa"
            ]
        ]
    },
    {
        "id": "174e69821ff5bd7e",
        "type": "change",
        "z": "eea4b7ce2e042d04",
        "name": "/Ac/L1/Power",
        "rules": [
            {
                "t": "change",
                "p": "topic",
                "pt": "msg",
                "from": "TopicX",
                "fromt": "str",
                "to": "/Ac/L1/Power",
                "tot": "str"
            },
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "HM400AcL1Power",
                "tot": "global"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 730,
        "y": 540,
        "wires": [
            [
                "f4b0037b3c96795a"
            ]
        ]
    },
    {
        "id": "2f84e61fe60a4a6e",
        "type": "change",
        "z": "eea4b7ce2e042d04",
        "name": "/Ac/MaxPower",
        "rules": [
            {
                "t": "change",
                "p": "topic",
                "pt": "msg",
                "from": "TopicX",
                "fromt": "str",
                "to": "/Ac/MaxPower",
                "tot": "str"
            },
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "HM400AcMaxPower",
                "tot": "global"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 740,
        "y": 620,
        "wires": [
            [
                "f92e127c6ec2afac"
            ]
        ]
    },
    {
        "id": "f92e127c6ec2afac",
        "type": "mqtt out",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "topic": "",
        "qos": "2",
        "retain": "false",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "d5eae5c9c1bc2f14",
        "x": 930,
        "y": 620,
        "wires": []
    },
    {
        "id": "36c2a8c9aa8ee36f",
        "type": "change",
        "z": "eea4b7ce2e042d04",
        "name": "/Position",
        "rules": [
            {
                "t": "change",
                "p": "topic",
                "pt": "msg",
                "from": "TopicX",
                "fromt": "str",
                "to": "/Position",
                "tot": "str"
            },
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "HM400Position",
                "tot": "global"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 720,
        "y": 660,
        "wires": [
            [
                "659237ed7713a048"
            ]
        ]
    },
    {
        "id": "659237ed7713a048",
        "type": "mqtt out",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "topic": "",
        "qos": "2",
        "retain": "false",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "d5eae5c9c1bc2f14",
        "x": 930,
        "y": 660,
        "wires": []
    },
    {
        "id": "08cc20bfd1f3f5d9",
        "type": "change",
        "z": "eea4b7ce2e042d04",
        "name": "/StatusCode",
        "rules": [
            {
                "t": "change",
                "p": "topic",
                "pt": "msg",
                "from": "TopicX",
                "fromt": "str",
                "to": "/StatusCode",
                "tot": "str"
            },
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "HM400StatusCode",
                "tot": "global"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 730,
        "y": 700,
        "wires": [
            [
                "3d3e580df9fec7c7"
            ]
        ]
    },
    {
        "id": "3d3e580df9fec7c7",
        "type": "mqtt out",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "topic": "",
        "qos": "2",
        "retain": "false",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "d5eae5c9c1bc2f14",
        "x": 930,
        "y": 700,
        "wires": []
    },
    {
        "id": "0c7c6e97cefdd202",
        "type": "change",
        "z": "eea4b7ce2e042d04",
        "name": "/Ac/Current",
        "rules": [
            {
                "t": "change",
                "p": "topic",
                "pt": "msg",
                "from": "TopicX",
                "fromt": "str",
                "to": "/Ac/Current",
                "tot": "str"
            },
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "HM400AcCurrent",
                "tot": "global"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 730,
        "y": 420,
        "wires": [
            [
                "d8bd3561fe1e029c"
            ]
        ]
    },
    {
        "id": "d8bd3561fe1e029c",
        "type": "mqtt out",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "topic": "",
        "qos": "2",
        "retain": "false",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "d5eae5c9c1bc2f14",
        "x": 930,
        "y": 420,
        "wires": []
    },
    {
        "id": "b04018225dae2991",
        "type": "inject",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "5",
        "crontab": "",
        "once": true,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "1",
        "payloadType": "num",
        "x": 130,
        "y": 480,
        "wires": [
            [
                "def0557cf60ebfcc"
            ]
        ]
    },
    {
        "id": "def0557cf60ebfcc",
        "type": "change",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "VictronDBus",
                "tot": "global"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 300,
        "y": 480,
        "wires": [
            [
                "e29762257a4d9b26"
            ]
        ]
    },
    {
        "id": "33c04523b3ce953c",
        "type": "mqtt in",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "topic": "inverter/Schuur/ch0/YieldTotal",
        "qos": "2",
        "datatype": "auto-detect",
        "broker": "f9f10828ece23813",
        "nl": false,
        "rap": true,
        "rh": 0,
        "inputs": 0,
        "x": 240,
        "y": 800,
        "wires": [
            [
                "7a5fa8cc77d9b956"
            ]
        ]
    },
    {
        "id": "70e235a6cbf15c21",
        "type": "change",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "HM400AcEnergyForward",
                "pt": "global",
                "to": "payload",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 660,
        "y": 800,
        "wires": [
            []
        ]
    },
    {
        "id": "5225b1b9dbed64e6",
        "type": "mqtt in",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "topic": "inverter/Schuur/ch0/P_AC",
        "qos": "2",
        "datatype": "auto-detect",
        "broker": "f9f10828ece23813",
        "nl": false,
        "rap": true,
        "rh": 0,
        "inputs": 0,
        "x": 230,
        "y": 840,
        "wires": [
            [
                "cd4cd83ba1bb6e03"
            ]
        ]
    },
    {
        "id": "63545d98d3226904",
        "type": "change",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "HM400AcPower",
                "pt": "global",
                "to": "payload",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 640,
        "y": 840,
        "wires": [
            []
        ]
    },
    {
        "id": "c6c726035284bd43",
        "type": "mqtt in",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "topic": "inverter/Schuur/ch0/I_AC",
        "qos": "2",
        "datatype": "auto-detect",
        "broker": "f9f10828ece23813",
        "nl": false,
        "rap": true,
        "rh": 0,
        "inputs": 0,
        "x": 230,
        "y": 880,
        "wires": [
            [
                "5e4304efa21c02b0"
            ]
        ]
    },
    {
        "id": "70b4af0f600ff566",
        "type": "change",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "HM400AcCurrent",
                "pt": "global",
                "to": "payload",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 640,
        "y": 880,
        "wires": [
            []
        ]
    },
    {
        "id": "ed3c16634a5d6122",
        "type": "change",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "HM400AcL1Current",
                "pt": "global",
                "to": "payload",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 650,
        "y": 920,
        "wires": [
            []
        ]
    },
    {
        "id": "b9d170e2b5f6950d",
        "type": "mqtt in",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "topic": "inverter/Schuur/ch0/I_AC",
        "qos": "2",
        "datatype": "auto-detect",
        "broker": "f9f10828ece23813",
        "nl": false,
        "rap": true,
        "rh": 0,
        "inputs": 0,
        "x": 230,
        "y": 920,
        "wires": [
            [
                "c996b2d832034283"
            ]
        ]
    },
    {
        "id": "e5e0f9614de61a43",
        "type": "mqtt in",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "topic": "inverter/Schuur/ch0/YieldTotal",
        "qos": "2",
        "datatype": "auto-detect",
        "broker": "f9f10828ece23813",
        "nl": false,
        "rap": true,
        "rh": 0,
        "inputs": 0,
        "x": 240,
        "y": 960,
        "wires": [
            [
                "5b91424eb0622628"
            ]
        ]
    },
    {
        "id": "797c2691a7209bc9",
        "type": "change",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "HM400AcL1EnergyForward",
                "pt": "global",
                "to": "payload",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 670,
        "y": 960,
        "wires": [
            []
        ]
    },
    {
        "id": "90acc0fdda9fbe27",
        "type": "mqtt in",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "topic": "inverter/Schuur/ch0/U_AC",
        "qos": "2",
        "datatype": "auto-detect",
        "broker": "f9f10828ece23813",
        "nl": false,
        "rap": true,
        "rh": 0,
        "inputs": 0,
        "x": 230,
        "y": 1040,
        "wires": [
            [
                "34e689f2ce0ccc46"
            ]
        ]
    },
    {
        "id": "fc6ccd0d0aecd6fd",
        "type": "change",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "HM400AcL1Voltage",
                "pt": "global",
                "to": "payload",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 650,
        "y": 1040,
        "wires": [
            []
        ]
    },
    {
        "id": "e9ec556f3a4c1812",
        "type": "mqtt in",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "topic": "inverter/Schuur/ch0/P_AC",
        "qos": "2",
        "datatype": "auto-detect",
        "broker": "f9f10828ece23813",
        "nl": false,
        "rap": true,
        "rh": 0,
        "inputs": 0,
        "x": 230,
        "y": 1000,
        "wires": [
            [
                "3af081f38e261da2"
            ]
        ]
    },
    {
        "id": "58a7e561f9193288",
        "type": "change",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "HM400AcL1Power",
                "pt": "global",
                "to": "payload",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 640,
        "y": 1000,
        "wires": [
            []
        ]
    },
    {
        "id": "20a82eea481de608",
        "type": "inject",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "3600",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "6",
        "payloadType": "num",
        "x": 130,
        "y": 220,
        "wires": [
            [
                "c40ddfeb5f8c1259"
            ]
        ]
    },
    {
        "id": "c40ddfeb5f8c1259",
        "type": "function",
        "z": "eea4b7ce2e042d04",
        "name": "Round and add text",
        "func": "msg.payload = parseInt(msg.payload*10)\nmsg.payload = parseFloat(msg.payload / 10)\nmsg.payload = { \"value\": msg.payload };\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 750,
        "y": 220,
        "wires": [
            [
                "f7a511437f08426f"
            ]
        ]
    },
    {
        "id": "f7a511437f08426f",
        "type": "json",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "property": "payload",
        "action": "",
        "pretty": false,
        "x": 930,
        "y": 220,
        "wires": [
            [
                "f2ef179e77284354"
            ]
        ]
    },
    {
        "id": "e8b41e6cfad3c9fc",
        "type": "inject",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "3600",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "0",
        "payloadType": "num",
        "x": 130,
        "y": 260,
        "wires": [
            [
                "4b8a324abd13f08e"
            ]
        ]
    },
    {
        "id": "4b8a324abd13f08e",
        "type": "function",
        "z": "eea4b7ce2e042d04",
        "name": "Round and add text",
        "func": "msg.payload = parseInt(msg.payload)\nmsg.payload = { \"value\": msg.payload };\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 750,
        "y": 260,
        "wires": [
            [
                "bdc4b8276ad3c7b8"
            ]
        ]
    },
    {
        "id": "bdc4b8276ad3c7b8",
        "type": "json",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "property": "payload",
        "action": "",
        "pretty": false,
        "x": 930,
        "y": 260,
        "wires": [
            [
                "5bef7df9bfb90c1a"
            ]
        ]
    },
    {
        "id": "1e464a76268a71b6",
        "type": "inject",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "1",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "7",
        "payloadType": "num",
        "x": 130,
        "y": 300,
        "wires": [
            [
                "0e04271d6613b599"
            ]
        ]
    },
    {
        "id": "0e04271d6613b599",
        "type": "function",
        "z": "eea4b7ce2e042d04",
        "name": "Round and add text",
        "func": "msg.payload = parseInt(msg.payload)\nmsg.payload = { \"value\": msg.payload };\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 750,
        "y": 300,
        "wires": [
            [
                "215d11d7fd6ae786"
            ]
        ]
    },
    {
        "id": "215d11d7fd6ae786",
        "type": "json",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "property": "payload",
        "action": "",
        "pretty": false,
        "x": 930,
        "y": 300,
        "wires": [
            [
                "1d7efb94f7a54f33"
            ]
        ]
    },
    {
        "id": "f2ef179e77284354",
        "type": "change",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "HM400AcMaxPower",
                "pt": "global",
                "to": "payload",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 1170,
        "y": 220,
        "wires": [
            []
        ]
    },
    {
        "id": "5bef7df9bfb90c1a",
        "type": "change",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "HM400Position",
                "pt": "global",
                "to": "payload",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 1150,
        "y": 260,
        "wires": [
            []
        ]
    },
    {
        "id": "1d7efb94f7a54f33",
        "type": "change",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "HM400StatusCode",
                "pt": "global",
                "to": "payload",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 1160,
        "y": 300,
        "wires": [
            []
        ]
    },
    {
        "id": "7a5fa8cc77d9b956",
        "type": "function",
        "z": "eea4b7ce2e042d04",
        "name": "Add text",
        "func": "msg.payload = { \"value\": msg.payload };\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 440,
        "y": 800,
        "wires": [
            [
                "70e235a6cbf15c21"
            ]
        ]
    },
    {
        "id": "cd4cd83ba1bb6e03",
        "type": "function",
        "z": "eea4b7ce2e042d04",
        "name": "Add text",
        "func": "msg.payload = { \"value\": msg.payload };\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 440,
        "y": 840,
        "wires": [
            [
                "63545d98d3226904"
            ]
        ]
    },
    {
        "id": "5e4304efa21c02b0",
        "type": "function",
        "z": "eea4b7ce2e042d04",
        "name": "Add text",
        "func": "msg.payload = { \"value\": msg.payload };\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 440,
        "y": 880,
        "wires": [
            [
                "70b4af0f600ff566"
            ]
        ]
    },
    {
        "id": "c996b2d832034283",
        "type": "function",
        "z": "eea4b7ce2e042d04",
        "name": "Add text",
        "func": "msg.payload = { \"value\": msg.payload };\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 440,
        "y": 920,
        "wires": [
            [
                "ed3c16634a5d6122"
            ]
        ]
    },
    {
        "id": "5b91424eb0622628",
        "type": "function",
        "z": "eea4b7ce2e042d04",
        "name": "Add text",
        "func": "msg.payload = { \"value\": msg.payload };\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 440,
        "y": 960,
        "wires": [
            [
                "797c2691a7209bc9"
            ]
        ]
    },
    {
        "id": "3af081f38e261da2",
        "type": "function",
        "z": "eea4b7ce2e042d04",
        "name": "Add text",
        "func": "msg.payload = { \"value\": msg.payload };\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 440,
        "y": 1000,
        "wires": [
            [
                "58a7e561f9193288"
            ]
        ]
    },
    {
        "id": "34e689f2ce0ccc46",
        "type": "function",
        "z": "eea4b7ce2e042d04",
        "name": "Add text",
        "func": "msg.payload = { \"value\": msg.payload };\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 440,
        "y": 1040,
        "wires": [
            [
                "fc6ccd0d0aecd6fd"
            ]
        ]
    },
    {
        "id": "e1d642c6dbb8dc4b",
        "type": "inject",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "10",
        "crontab": "",
        "once": true,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "{ \"clientId\": \"PV\", \"connected\": 1, \"version\": \"v2.3\", \"services\": {\"SolaxX1\": \"pvinverter\",\"HoymilesHM400\": \"pvinverter\"} }",
        "payloadType": "json",
        "x": 130,
        "y": 100,
        "wires": [
            [
                "c67b05ae39206d89"
            ]
        ]
    },
    {
        "id": "c67b05ae39206d89",
        "type": "mqtt out",
        "z": "eea4b7ce2e042d04",
        "name": "",
        "topic": "device/PV/Status",
        "qos": "2",
        "retain": "false",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "d5eae5c9c1bc2f14",
        "x": 430,
        "y": 100,
        "wires": []
    },
    {
        "id": "d5eae5c9c1bc2f14",
        "type": "mqtt-broker",
        "name": "VenusOS",
        "broker": "192.168.178.253",
        "port": "1883",
        "clientid": "",
        "autoConnect": true,
        "usetls": false,
        "protocolVersion": "5",
        "keepalive": "60",
        "cleansession": true,
        "birthTopic": "",
        "birthQos": "0",
        "birthPayload": "",
        "birthMsg": {},
        "closeTopic": "",
        "closeQos": "0",
        "closePayload": "",
        "closeMsg": {},
        "willTopic": "",
        "willQos": "0",
        "willPayload": "",
        "willMsg": {},
        "userProps": "",
        "sessionExpiry": ""
    },
    {
        "id": "f9f10828ece23813",
        "type": "mqtt-broker",
        "name": "MQTT",
        "broker": "192.168.178.100",
        "port": "1883",
        "clientid": "",
        "autoConnect": true,
        "usetls": false,
        "protocolVersion": "4",
        "keepalive": "60",
        "cleansession": true,
        "birthTopic": "",
        "birthQos": "0",
        "birthPayload": "",
        "birthMsg": {},
        "closeTopic": "",
        "closeQos": "0",
        "closePayload": "",
        "closeMsg": {},
        "willTopic": "",
        "willQos": "0",
        "willPayload": "",
        "willMsg": {},
        "userProps": "",
        "sessionExpiry": ""
    }
]

[ Voor 4% gewijzigd door e_hagenaar op 05-09-2023 17:08 ]


Acties:
  • +1 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
Tip: in je bericht, verander de "code" tags in "quote" tags. Dat verhoogt de leesbaarheid van het topic aanzienlijk.

Acties:
  • +1 Henk 'm!

  • Proton_
  • Registratie: November 2011
  • Laatst online: 09:30

Proton_

Moderator Wonen & Mobiliteit 

Team Welles

Bonustip: doe beide :)
En [ code=json] voor syntax highlighting.
In een quote
JSON:
1
2
3
4
5
6
7
{"Wordt een codeblok":"inklapbaar"},
{...},
{...},
{...},
{...},
{...},
{"Getal":12.4},

Het ik-wil-een-warmtepomp FAQ topic- '23 MG5, douchen met wtw en Auer Edel Eau, verwarming met Vaillant Arotherm Plus.


Acties:
  • 0 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
Waarom altijd deze onbalans?

In de afbeelding hieronder zie je een klein verschil in de productie per fase van de zonnepanelen (rechtsboven). Dat is meer dan toen de zonnepanelen nog 'stand alone' waren.

Bij de teruglevering aan het net (links) zie je een veel groter verschil tussen de fasen.
Deze situatie is al een tijdje zo.

Iemand een idee waarom dit zo is?


Afbeeldingslocatie: https://tweakers.net/i/nZeCpiZAHzlS3POn83vluwkjHUY=/x800/filters:strip_icc():strip_exif()/f/image/I6f8XSaJMNuIwcS7DQ0YJa2H.jpg?f=fotoalbum_large

En deze, later op de dag...

Afbeeldingslocatie: https://tweakers.net/i/w2MPKnBN2KnDmgpgcy2mQ2IMrTw=/x800/filters:strip_icc():strip_exif()/f/image/eo6OVQbpPDv4YCcOtZT66K5s.jpg?f=fotoalbum_large

Acties:
  • 0 Henk 'm!

  • e_hagenaar
  • Registratie: Februari 2008
  • Laatst online: 28-05 10:37
Proton_ schreef op dinsdag 5 september 2023 @ 16:28:
Bonustip: doe beide :)
En [ code=json] voor syntax highlighting.

[...]
als ik dat doe dan komt hij met een error dat er te veel characters in mijn bericht zitten.... (code=json)

Acties:
  • +1 Henk 'm!

  • Proton_
  • Registratie: November 2011
  • Laatst online: 09:30

Proton_

Moderator Wonen & Mobiliteit 

Team Welles

@e_hagenaar
Hmmok, met 1500 regels code is een forum misschien sowieso niet het juiste medium.
Probeer dan een github linkje ;)
Een gist bijvoorbeeld: https://gist.github.com/

[ Voor 4% gewijzigd door Proton_ op 05-09-2023 17:57 ]

Het ik-wil-een-warmtepomp FAQ topic- '23 MG5, douchen met wtw en Auer Edel Eau, verwarming met Vaillant Arotherm Plus.


Acties:
  • 0 Henk 'm!

  • Niltag
  • Registratie: November 2011
  • Laatst online: 28-05 23:12
MJ de Bruijn schreef op dinsdag 5 september 2023 @ 16:30:
Waarom altijd deze onbalans?

In de afbeelding hieronder zie je een klein verschil in de productie per fase van de zonnepanelen (rechtsboven). Dat is meer dan toen de zonnepanelen nog 'stand alone' waren.

Bij de teruglevering aan het net (links) zie je een veel groter verschil tussen de fasen.
Deze situatie is al een tijdje zo.

Iemand een idee waarom dit zo is?


[Afbeelding]

En deze, later op de dag...

[Afbeelding]
En welke multiphase regulation setting heb je aan staan in je ESS settings? "Total of all phases" of "individual phase"?

En welke GRID meter? ET240 of EM24?

Acties:
  • 0 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
Niltag schreef op dinsdag 5 september 2023 @ 19:03:
En welke multiphase regulation setting heb je aan staan in je ESS settings? "Total of all phases" of "individual phase"?

En welke GRID meter? ET240 of EM24?
Total of all phases.
En geen aparte grid meter. De Victrons bepalen dit zelf.

Acties:
  • 0 Henk 'm!

  • Niltag
  • Registratie: November 2011
  • Laatst online: 28-05 23:12
MJ de Bruijn schreef op dinsdag 5 september 2023 @ 19:20:
[...]

Total of all phases.
En geen aparte grid meter. De Victrons bepalen dit zelf.
Hmm. ik vermoed dat bij dat laatste dan ergens het euvel zit. Heb namelijk een zelfde setup draaien met ET340 en die doet wel gewoon netjes verdelen. Alhoewel Victron zelf ook zegt dat GRID meter onnodig is bij PV op AC-out. Heb je nog een ander punt waar je de AC-in kant kan meten? Als de plaatjes namelijk kloppen dan zou dit betekenen dat (op basis van het 2e plaatje) er 500 Watt van zowel L2 als L3 wordt omgezet naar DC en dan in de Multiplus op L1 weer 1000 Watt naar AC. Er is namelijk geen andere weg van L2/L3 naar L1. Dat lijkt me dan weer sterk en bovendien zou ik dan meer verlies verwachten.

Het meest logische lijkt mij dus dat de weergave van de GRID meter niet juist is en dat dit in werkelijkheid wel goed is verdeeld. Dit is niet alleen het geval als je PV aan de AC-in zijde hebt maar ook bij eventuele andere loads aan de AC-in zijde tussen GRID en AC-in.

Afbeeldingslocatie: https://tweakers.net/i/FhxGeC2cqQfnnRd4R9sNO_5jJ1Q=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/MjaZobOqf8pMEKQDvxOFB4PK.png?f=user_large

[ Voor 16% gewijzigd door Niltag op 05-09-2023 20:49 ]


Acties:
  • 0 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
Niltag schreef op dinsdag 5 september 2023 @ 20:44:
Het meest logische lijkt mij dus dat de weergave van de GRID meter niet juist is en dat dit in werkelijkheid wel goed is verdeeld.
Dank voor je analyse.
Ik kan de P1 meter uitlezen in Domoticz. Echter ben ik nu enkele dagen van huis en heb alleen toegang tot het VRM. Uit m'n hoofd weet ik even niet meer of in de P1 gegevens de drie fasen worden onderscheiden.
Als ik weer thuis ben ga ik de gegevens bekijken.

Acties:
  • +5 Henk 'm!

  • Niltag
  • Registratie: November 2011
  • Laatst online: 28-05 23:12
Optimalisatie draait nu een tijdje stabiel. Hou nu ook bij wat het verschil is met 'unoptimized'. Heb een dynamisch contract lopen en reken continu uit wat het verschil is met een systeem zonder accu. Eerste voorzichtige schatting in deze periode is dat het ongeveer een euro per dag scheelt. Daar zijn de verliezen dan al af. Valt mij niet tegen. Uiteindelijk gaat het echte terugverdienen pas komen als er echt concreet wat gebeurd met de salderingsregeling maar tot die tijd ben ik niet ontevreden.

Afbeeldingslocatie: https://tweakers.net/i/VxvcgYX5xuWaI93HFCL1E2uXNmg=/800x/filters:strip_exif()/f/image/PVfpVpXARsVFadFslXsDQYAp.png?f=fotoalbum_large

Vanochtend was de accu rond de 30%. Vanmiddag vooral geladen en op het duurste uur vandaag mijn 5 kW 'overschot' teruggeleverd. Morgen wil hij de batterij vol houden omdat de prijs donderdag hoger wordt geschat dan woensdag. Dat laatste stukje wil ik de komende tijd nog een beetje tweaken en kijken of dat zin heeft. Daarnaast gaan we straks natuurlijk de periode in dat de PV opbrengst lager is dan het verbruik Dan wordt het even kijken of de strategie aanpassen naar wat meer GRID gebruik toestaan. Er mag dan wat meer gehandeld worden. Hij draait nu echt alleen op eigen opwek en mag dus alleen tekort aan PV inkopen.

  • Magnat
  • Registratie: Mei 2000
  • Laatst online: 29-05 13:01
MJ de Bruijn schreef op dinsdag 5 september 2023 @ 19:20:
[...]

Total of all phases.
En geen aparte grid meter. De Victrons bepalen dit zelf.
De ET340 lijkt te werken als je alleen de RS485 verbindt, dus zonder nul. Als je de nul niet aansluit dan kloppen de waardes niet. Dit had ik namelijk.

Heb je nog AC loads zitten voor je Victrons?

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
Magnat schreef op donderdag 7 september 2023 @ 12:23:
[...]


De ET340 lijkt te werken als je alleen de RS485 verbindt, dus zonder nul. Als je de nul niet aansluit dan kloppen de waardes niet. Dit had ik namelijk.

Heb je nog AC loads zitten voor je Victrons?
Ik heb voor de grid aansluiting (Victron IN) geen kWh meter. De Victrons moeten dat in theorie zelf meten. Volgens de Setup is dat ook wat wordt getoond.
Ik heb ook geen AC loads aan de IN kant.

Acties:
  • 0 Henk 'm!

  • Jazsie
  • Registratie: Juni 2006
  • Laatst online: 06:21
MJ de Bruijn schreef op dinsdag 5 september 2023 @ 16:30:
Waarom altijd deze onbalans?

In de afbeelding hieronder zie je een klein verschil in de productie per fase van de zonnepanelen (rechtsboven). Dat is meer dan toen de zonnepanelen nog 'stand alone' waren.

Bij de teruglevering aan het net (links) zie je een veel groter verschil tussen de fasen.
Deze situatie is al een tijdje zo.

Iemand een idee waarom dit zo is?


[Afbeelding]

En deze, later op de dag...

[Afbeelding]
Heb je de setpoint van iedere fase gelogd? Wat komt daar uit?

Verder zie ik "External Control" staan, je stuurt dus zelf de setpoints aan? Welk ESS mode draai je?

3600 Wp op 0° (vrijwel plat) | 3900Wp op 10°


Acties:
  • 0 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
Jazsie schreef op vrijdag 8 september 2023 @ 10:10:
Heb je de setpoint van iedere fase gelogd? Wat komt daar uit?
Sorry, ik weet niet wat je hiermee bedoelt.
Verder zie ik "External Control" staan, je stuurt dus zelf de setpoints aan? Welk ESS mode draai je?
Geoptimaliseerd met Battery Life. Ik heb geen andere/externe regelingen actief.

Inmiddels heb ik wat meer metingen gedaan. In de volgende post zal ik die toevoegen.

Acties:
  • 0 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
In vervolg op enkele bijdragen over het verschil van "power" in verschillende fases heb ik de gegevens in Domoticz naast elkaar gezet. De cijfers kloppen in real time met de originele bronnen.
Afbeeldingslocatie: https://tweakers.net/i/8vDjZGEn8SK2fI1y6dGJLV0SrTo=/800x/filters:strip_icc():strip_exif()/f/image/sRaJ9XyVhHIaOdP22gt26S5o.jpg?f=fotoalbum_large
Ik begin onderaan.
De "SEapi" zijn de directe cijfers van de SolarEdge met enige vertraging van hun website.
De "Victron PV" zijn de metingen door een ET340. Wat hier opvalt is dat fase L1 altijd 30 tot 50 Watt hoger aangeeft dan de andere fasen.

Bovenaan staan de "Grid" cijfers van de NET-meter (P1 interface) en de metingen door Victron. De cijfers zijn zo goed als identiek, dus ik ga ervan uit dat dit de werkelijke getransporteerde stroom is.

Ik zou verwachten dat de berekening: PV-productie minus AC-loads de levering aan het Grid zou opleveren. Maar daar zijn verschillen. Zie de blauwe sommetjes.

In dit voorbeeld leveren fasen L1 en L2 beide zo'n 220 Watt meer aan het Grid dan beschikbaar en fase L3 consumeert zelfs 566 Watt. Per saldo raakt ongeveer 120 Watt zoek. Wellicht is dit de conversie tussen de fasen over het 48 volt sub-systeem????

De twee extra panelen die ik heb op een MPPT systeem had ik uitgeschakeld, dus er is geen externe bron of belasting. De accu's waren helemaal vol en stonden op idle.

Ik heb de vraag overigens ook uitgezet bij mijn leverancier. Die is ook aan het puzzelen.

Acties:
  • 0 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
Nog een volgende test:
In de bovenstaande gegevens stond het ESS ingesteld op "Meerfasen regeling --> Totaal van alle fasen". Dat wordt aanbevolen.

Ik heb de test ook uitgevoerd meit "Meerfasen regeling --> Inidividuele fase". Deze wordt afgeraden als minder efficiënt.

Wat opviel is dat de sommetjes per fase inderdaad richting nul gingen maar dat de accu ging ontladen of laden afhankelijk van de belasting. Daar zit natuurlijk ook een conversie-verlies in, dus dat zal inderdaad minder efficiënt zijn.

Acties:
  • 0 Henk 'm!

  • Jazsie
  • Registratie: Juni 2006
  • Laatst online: 06:21
MJ de Bruijn schreef op vrijdag 8 september 2023 @ 15:00:
[...]

Sorry, ik weet niet wat je hiermee bedoelt.

[...]

Geoptimaliseerd met Battery Life. Ik heb geen andere/externe regelingen actief.

Inmiddels heb ik wat meer metingen gedaan. In de volgende post zal ik die toevoegen.
Bij ESS Mode 2/3 kan je setpoint (= X watt omvormer moet laden/ontladen) zelf instellen.
Maar deze kan je dus ook uitlezen.

Weet niet of je bij ESS mode 1 setpoint kan uitlezen welk jij gebruikt maar zo ja, dan kan je zien wat de omvormer exact doet mbt vermogen laden/ontladen.
MJ de Bruijn schreef op vrijdag 8 september 2023 @ 15:09:
In vervolg op enkele bijdragen over het verschil van "power" in verschillende fases heb ik de gegevens in Domoticz naast elkaar gezet. De cijfers kloppen in real time met de originele bronnen.
[Afbeelding]
Ik begin onderaan.
De "SEapi" zijn de directe cijfers van de SolarEdge met enige vertraging van hun website.
De "Victron PV" zijn de metingen door een ET340. Wat hier opvalt is dat fase L1 altijd 30 tot 50 Watt hoger aangeeft dan de andere fasen.

Bovenaan staan de "Grid" cijfers van de NET-meter (P1 interface) en de metingen door Victron. De cijfers zijn zo goed als identiek, dus ik ga ervan uit dat dit de werkelijke getransporteerde stroom is.

Ik zou verwachten dat de berekening: PV-productie minus AC-loads de levering aan het Grid zou opleveren. Maar daar zijn verschillen. Zie de blauwe sommetjes.

In dit voorbeeld leveren fasen L1 en L2 beide zo'n 220 Watt meer aan het Grid dan beschikbaar en fase L3 consumeert zelfs 566 Watt. Per saldo raakt ongeveer 120 Watt zoek. Wellicht is dit de conversie tussen de fasen over het 48 volt sub-systeem????

De twee extra panelen die ik heb op een MPPT systeem had ik uitgeschakeld, dus er is geen externe bron of belasting. De accu's waren helemaal vol en stonden op idle.

Ik heb de vraag overigens ook uitgezet bij mijn leverancier. Die is ook aan het puzzelen.
Is die 120watt niet het verbruik van de 3 omvormers samen + conversie verlies?

Zo te zien wel...
MJ de Bruijn schreef op vrijdag 8 september 2023 @ 15:16:
Nog een volgende test:
In de bovenstaande gegevens stond het ESS ingesteld op "Meerfasen regeling --> Totaal van alle fasen". Dat wordt aanbevolen.

Ik heb de test ook uitgevoerd meit "Meerfasen regeling --> Inidividuele fase". Deze wordt afgeraden als minder efficiënt.

Wat opviel is dat de sommetjes per fase inderdaad richting nul gingen maar dat de accu ging ontladen of laden afhankelijk van de belasting. Daar zit natuurlijk ook een conversie-verlies in, dus dat zal inderdaad minder efficiënt zijn.
Totaal van alle fasen is inderdaad efficiënter maar hier wordt gestreefd naar alle fasen samen en dus heb je onderling onbalans maar onder aan de streep zit je zo dicht mogelijk bij je ingestelde setpoint (50W default).

Aangezien in NL de fases intern worden opgeteld door je slimme meter kan je het beste "Totaal van alle fasen" gebruiken.

3600 Wp op 0° (vrijwel plat) | 3900Wp op 10°


Acties:
  • 0 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
Het bovenstaande heb ik bij mijn leverancier aangekaart. Eerst maar eens afwachten.

Acties:
  • 0 Henk 'm!

  • MJ de Bruijn
  • Registratie: November 2016
  • Laatst online: 06:25
Nieuwe vraag.
Als ik wil wachten met het opladen van de batterijen tot bijvoorbeeld 14.00 uur, hoe stel ik in dat ze niet toch eerder gaan laden van de beschikbare PV energie?

Acties:
  • 0 Henk 'm!

  • N0EL
  • Registratie: November 2019
  • Laatst online: 26-05 23:49
Remote Console > menu > Settings > ESS > Scheduled charge levels
Pagina: 1 2 ... 48 Laatste