NEWS
Growatt Noah 2000 - Nulleinspeisung
-
Mhm, Interesse scheint ja nicht so groß
Jemand eine Idee, für ein Blockly mittels dem man aus einer generierten Liste mit einer bestimmten Anzahl Zahlen (sowohl im negativen als auch im positiven Bereich) genau den Wert herausnimmt, der am nähesten am Wert 0 ist und in einen Datenpunkt schreibt?
-
@ravermichl
die variable minval enthält nach der schleife den wert der 0 am nächsten ist. in Datenpunkt schreiben sollte dann klar sein.A.
-
@ravermichl sagte in Growatt Noah 2000 - Nulleinspeisung:
Mhm, Interesse scheint ja nicht so groß
Was an einer evtl. nicht so weit verbreiteten Konstellation liegen könnte. Du hast da echt einen Haufen Aufwand reingesteckt, aber wenn man sich den Preis des Speichers anschaut und das mal ins Verhältnis zur Gesamtleistung setzt, machen das vielleicht nicht so viele.
Wenn da nicht eine Null fehlt, dann ist die Leistung von 1540W z.B. mit 4x385W an 1-2 BKW erreicht. Eine Verhinderung einer übermäßigen, bzw. dem ENV schwer erklärbaren Einspeisung kann ich nachvollziehen. Ich habe (in der Anfangsphase) zur Leistungsregelung bzw. Drosselung auch ein "externes" Phyton Skript genutzt, wäre aber zugegeben nie auf die Idee gekommen so einen Akku daneben zu stellen. Zumal der in der dunklen Jahreszeit vermutlich kaum genutzt werden dürfte.
-
Danke für deine Hilfe, allerdings steig ich da nicht durch bzw würde das gerne verstehen.
Ist "minval" eine vordefinierte Variable oder kann diese beliebig benannt werden?
Ist "i" eine feststehende Variable?
Das Script setzt minval auf 99999 und danach minval auf einen Wert (Betrag?) i aus der Liste, falls dieser kleiner als minval (99999) ist. Aber auf welchen Wert aus der Liste, wenn da bspw 4 Stück drin stehen? Wieso gerade auf den am nächsten an 0? Das kann ich aus dem Script nicht rauslesen.
-
Ja, da magst du Recht haben. Allerdings ist das Thema Nulleinspeisung und Noah gerade in den PV Foren oft ein Thema. Daher dachte ich, es stößt auf größeres Interesse.
Die Regelung übernehmen sonst aber auch oft anpassbare Wechselrichter, sodass am Output vom Noah nichts eingestellt werden muss weiter außer ihn auf volle Leistung zu setzen. Der WR regelt dann, was er haben will. Allerdings muss auch da ein Script dahinter liegen, nur eben um die WR Leistung anzupassen und das müsste ähnlich wie meins aussehen, nur das eben der WR und nicht der Noah am Ende geregelt wird. Dachte daher das Interesse ware größer. Aber ist ja nicht schlimmIch glaube du hast meine Ausgangslage missverstanden. Es geht nicht darum nichts mehr an den ENV zu liefern, um hier mehr Leistung als erlaubt zu verstecken. Der Wechselrichter hinter dem Noah ist ja ohnehin auf 800 Watt begrenzt.
Es geht darum immer so viel zu ins Hausnetz einzuspeisen, wie gerade gebraucht wird, um den Akku und den Solarertrag optimal zu nutzen.
Bspw.: Es kommen 1000 Watt vom Dach. Am Noah sind fix 200 eingestellt. Es gehen also 800 in den Noah. Dann ist der nach ca. zwei Stunden voll und alles was danach über 200 liegt geht an den ENV.
Mit meiner Regelung werden die 200 je nach Hausverbrauch angepasst. Ist bspw gerade der Herd an, wir der Noah auf maximalen Output geregelt und es gehen 800 ins Hausnetz und nur noch 200 in den Noah. Heißt er braucht länger um voll zu werden und es wird so mehr PV Energie insgesamt eigenverbraucht.
-
@ravermichl sagte in Growatt Noah 2000 - Nulleinspeisung:
Danke für deine Hilfe, allerdings steig ich da nicht durch bzw würde das gerne verstehen.
Ist "minval" eine vordefinierte Variable oder kann diese beliebig benannt werden?
minval ist eine selbst definierte variable. Den Namen wählst du selber.
Ist "i" eine feststehende Variable?
"I" ist Bestandteil des Schleifenbausteins.
Das Script setzt minval auf 99999 und danach minval auf einen Wert (Betrag?) i aus der Liste, falls dieser kleiner als minval (99999) ist. Aber auf welchen Wert aus der Liste, wenn da bspw 4 Stück drin stehen? Wieso gerade auf den am nächsten an 0? Das kann ich aus dem Script nicht rauslesen.
Der Trick ist das die Schleife nacheinander jeden einzelnen Wert aus der Liste nimmt, diesen in "i" kopiert, und dann den Vergleich macht. Nehmen wir an deine Liste beinhaltet 5 Werte, und zwar -9, 8,3,-2 5
dann werden nacheinander abgearbeitet:
- ist 9 < Betrag von minval (99999). Ja, also wird "minval" auf -9 gesetzt.
- ist 8 < Betrag von minval (jetzt -9). Ja, also "minval" auf 8 setzen
- ist 3 < Betrag von minval (jetzt 8). Ja. also "minval" auf 3 setzen
- ist 2 < Betrag von minval (jetzt 3). Ja. also "minval" auf -2 setzen
- ist 5 < Betrag von minval (jetzt -2). Nein, also nix machen
Am Ende ist minval also -2
Prinzipiell ist es auch möglich die Variable "i" umzubenennen, macht aber keinen Sinn da es sich um eine reine "Schleifenvariable" handelt, die nur innerhalb der Schleife eine saubere Bedeutung hat.
A.
-
Vielen Dank für die ausführliche Erläuterung. Ich hatte die Schleife übersehen. Wieder was gelernt.
-
sorry - habe mich nicht gemeldet, aber finde es super, dass du das alles gepostet hast . ich selbst war depremiert wegen meiner leistungseinbrüche des neo und der nicht hilfe des händlers und von growatt
mittlerweile habe ich einen apsystems ez1-m wechselrichter - dieser hat eine lokale api - d.h ich kann das ding auslesen und setzen, so oft ich will ohne cloud und ohne user blocken vom hersteller (growatt macht das ! ) - so sieht ein produkt für smarthome user aus
um aktuellere daten zu bekommen (nicht 5 minuten alte) habe ich den growatt support gebeten, den datenlogger des noah auf 2min einzustellen - ich habe 2 weitere user in der growatt api angelegt und diese rufen die daten ab. einmal über den adapter und einmal über die python-scripts - leider weiß ich nicht, wie man ein python script schreibt, welches die verbindung zur growatt-cloud offen hält und sich nicht dauernd einloggt - zu oft eingeloggt-> user wird blockiert! evtl versuche ich mal, eine 2te instanz des adapters zu installieren und diesen zeitversetzt zu starten
die nulleinspeisung ist mit dem ez1-m kein thema mehr
ich bin eher daran interessiert, den akku nicht dauernd zu entladen, wenn es tagsüber zu bewölkung kommt und ich weiterhin meinen durchschnittsverbrauch in mein netz einleite - es geht also nicht direkt um eine nulleinspeisung bei mir - daher benötige ich ein anderes script, welches aus zeitmangel noch nicht perfekt ist.
hast du schon erfahrung mit dem Solar-Wetter adapter - wie gut sind die schätzungen ?
ich versuche immer noch einen weg zu finden, um die aktuelle sonneneinstrahlung (also ppv des noah) zu bekommen - damit könnte man schnell reagieren (teste gerade lichtsensor) - genial wäre eine messung der leistungsabgabe direkt am modul
@samson71 sagte in Growatt Noah 2000 - Nulleinspeisung:
Du hast da echt einen Haufen Aufwand reingesteckt,
du weißt doch - der aufwand ist eher eine hobby bei iobroker - daher positiv
-
Ja das mit den aktuellen Daten von Growatt ist so ne Sache.
Daher nehme ich lieber meine aktuellen Daten vom Stromzähler, passe daraufhin den Output vom Growatt an und kenne den Output dann (ohne Growatt "fragen" zu müssen), um damit weiterarbeiten zu können.
Ausgesperrt wurde ich übrigens noch nie, obwohl die Änderungen Teilweise in 30 Sekunden Takt erfolgen.
Aber wenn du rausfindest, wie man den Login offen hält und darauf basierend dann seine Änderungen schicken kann, wäre das super.
Wie genau lässt du denn den EZ1-M anpassen? Da muss doch auch ein ähnliches Script dahinter liegen, dass mit deinem akutellen Stromverbrauch arbeitet, nur das da halt dann der EZ1 geregelt wird und nicht wie bei mir der Noah
-
info: in der neuen shine app kann man auch einen shelly einbinden und damit hat man mehr möglichkeiten
ja - man kann den ez1-m auf lokal umstellen und dann mit curl oder html-get befehlen einfach direkt ansprechen - das geht dann über ein blockly script - wie du es machst
der noah hat als standard 800 w ausgabe eingestellt - die max power des ez1-m regelt dann, was der noah wirklich liefertz.b. mit exec-block
curl "http://192.168.178.115:8050/getMaxPower curl "http://192.168.178.115:8050/getOutputData oder setzen: curl "http://192.168.178.115:8050/setMaxPower?p=150"
das ergebnis wird dann in dp geschrieben
ach ja - wie verlässlich sind die solar-wetter daten ?
-
Also bei den solar-wetter Daten bilde ich den Mittlewert zw. prognostiziertem Max und Min für meine Anlagengröße und nehme den dann mit dem Faktor mal für meine Ausrichtung im Vergleich zu der von der auf solar-wetter angenommenen Anlage.
Das kommt mal sehr gut hin, mal aber auch gar nicht gut. Liegt aber einfach daran, dass schon die Min und Maxrange meist ca. 1kw auseinanderliegen.
Für meine Zwecke reicht es aber, da ich nur bestimmen will, ob ich mein Script überhaupt anwerfen muss oder nicht. Zudem lasse ich die Werte 3x täglich aktualisieren (solar-wetter aktualisiert 3x täglich) und kann dann ggfs noch reagieren.
Ich verstehe wie du den EZ1 regelst, aber die Ermittlung deines Hausverbrauchs müsste ja ähnlich ablaufen wie bei mir. Weil immer den aktuellen Wert von Shelly zu nehmen führt meist zu wildem hin- und hergeregle... Daher auch meine Toleranzen im Script.
-
@ravermichl ja klar - ich lasse mir immer einen abstand zu 0W und regle nur unter bestimmten umständen (die ich gerade noch näher definiere) und natürlich lasse ich das umschalten nicht immer zu, sondern sperre das ganze für eine gewisse zeit, bis wieder geregelt wird
ich regle auch nicht, wenn der verbrauch über 350w geht - da das kocher oder spülmaschine .... sind - ich brauche noch eine schaltung dafür, wenn gekocht oder gespült wird, der akku voll ist und ich die ganze ppv nutzen will
die ganze sache ist noch etwas kompliziert, da es soviele variablen gibt, wann was eingestellt werden soll - ich arbeite noch daran - evtl werd ich mal chatgpt testen
-
Folglich müsste dein Blockly ähnlich wie meines aussehen in dieser Hinsicht (Stromsaldoermittlung). Vllt teilst du es mal mit mir (uns), auch wenn es nicht nicht perfekt ist. Ich suche immer Verbesserungspotential.
Bspw ist die Idee über 350Watt auszuklammern nicht verkehrt. Aber wie du selbst sagst, könnte man das auch mal gebrauchen. Ich denke hier bspw ans Kuchenbacken oder Braten machen. So ein Ofen zieht dann über lange Zeit viel Leistung, die gerne die PV Leistung nutzen kann. Idealerweise aber nur, wenn auch genug Sonne scheint (nur diese Daten kommen vom Noah viel zu zeitversetzt) oder der Speicher voll genug ist. Andererseits wird es dann vllt auch einfach zu komplex. Mein Script reicht mir eig schon an Komplexität
-
@ravermichl
Genau so sind meine ÜberlegungenIch muss nochmals alle Punkte definieren, die ich eigentlich will und aufschreiben und das dann zu einen Script machen
melde mich wieder, muss jetzt arbeiten
-
- hast du das im anderen forum gelesen ?
RE: GROWATT NOAH 2000 Erfahrungen?
@liv-in-sky Moin ,moin, ja, dieses Tool geht auch über die Cloud, hat aber einen entscheidenden Vorteil. Es arbeitet mit MQTT, was bedeutet, dass du nicht eine Anfrage an die Cloud stellen musst, sondern dass der Noah per MQTT immer daten sendet, wenn sich im Noah etwas ändert. Und wenn Du diese MQTT- Daten an deinen Broker mit diesem Tool sendest, dann aktualisieren sich diese Daten automatisch, sobald der Noah etwas sendet. Dass wiederum bedeutet, dass du an die Cloud keine Anfrage mehr stellen musst. Ich bekomme mit diesem Tool also immer neue Daten, wenn sich beim Noah etwas ändert. Das gilt auch für die Eingangsleistung am Noah.
Das Datenpaket des Noahs sieht folgendermaßen aus:
{ "output_w": 0, -> Ausgangsleistung "solar_w": 32, -> Eingangsleistung Solar "soc": 5, -> Prozent Batteriekapazität "charge_w": 0, -> L...
- hört sich auch nicht schlecht an - ich glaube aber, das ist eine docker installation, was mich etwas nervt - muss mnal , wenn zeit, das tool noch mal ansehen
-
Ja, das ist mir bekannt. Aber auf Docker werde ich nicht umstellen bzw erweitern.
Gibt auch eine Lösung über Homeassistant afaik, aber damit will ich mich auch nicht beschäftigen bzw umstellen.Jemand der Plan hat, könnte sicher das fix für den ioBroker MTTQ Adapter umschreiben. Da gehör ich aber nicht dazu.
Außerdem brauche ich die Daten aus dem Noah nicht in Echtzeit und ob man mit der Methode Daten senden kann, weiß ich nicht
Growatt soll einfach ne Api einbauen oder das Teil über http-get ansteuern lassen. Selbst meine Pontos-Base kann das
Allerdings antwortet Growatt nicht auf entsprechende Supportanfragen ... -
bevor ich für heute feierabend mache
habe das ganze mal installiert - und siehe da:
die installation war garnicht so aufwendig (10minuten-mqtt adapter in iob hatte ich schon) - kein docker nötig
einmal muss das gemacht werden https://go.dev/doc/install - die datei bekommst du:
wget https://go.dev/dl/go1.23.2.linux-amd64.tar.gz
gesamte anleitung von hier: https://github.com/mtrossbach/noah-mqtt (option 3 suchen!)
habe aber noch keine tests gemacht - nur mal eimal aufgerufen
den output könnte man noch in einzelne dp umwandel - aber soweit sieht es gut aus - muss morgen mal sehen, wie oft das aktualisiert wird
setzen von werten soll wohl auch funktionieren
-
Interessant. Quasi selbst erstellt dann oder wie?
Aber erspart das den Weg über die Cloud? Wohl nicht, wenn man Username und PW eingeben muss oder? Dann kann ich gleich den Growatt-Adapter benutzen
-
ich habe es noch nicht ganz durchschaut
ich vermute, die software scant das netz und fängt daten vom noah an die cloud ab - anders kann ich es mir im moment nicht vorstellen, da ja änderungen, die in der cloud landen nicht über mqtt zu mir von der cloud in mein netz kommen können- ist ja kein port offen
die "hören" den netzverkehr ab und bauen das in mqtt um - die api daten brauchen sie evtl um die ip des noah und die serienummer zu bekommen
der adapter bringt mir alle 3 minuten neue daten, obwohl de rdatenlogger auf 2 minuten steht - ich weiß nicht warum -es sind ja 30 sekunden eingestellt
mal sehen, was morgen so passiert - im moment schläft der kleine, da leer
-
jetzt bin ich aber erstaunt:
sieh dir mal die log zeiten an - das ist schnell
javascript.0 09:05:40.564 info script.js.MYSTUFF.STROM-PHOLTAIK.noah2mqtt: {"output_w":0,"solar_w":30,"soc":10,"charge_w":0,"discharge_w":0,"battery_num":1,"generation_total_kwh":240.4,"generation_today_kwh":0,"work_mode":"battery_first","status":"online"} javascript.0 09:06:10.628 info script.js.MYSTUFF.STROM-PHOLTAIK.noah2mqtt: {"output_w":0,"solar_w":31,"soc":10,"charge_w":0,"discharge_w":0,"battery_num":1,"generation_total_kwh":240.4,"generation_today_kwh":0,"work_mode":"battery_first","status":"online"} javascript.0 09:06:40.695 info script.js.MYSTUFF.STROM-PHOLTAIK.noah2mqtt: {"output_w":0,"solar_w":32,"soc":10,"charge_w":0,"discharge_w":0,"battery_num":1,"generation_total_kwh":240.4,"generation_today_kwh":0,"work_mode":"battery_first","status":"online"} javascript.0 09:06:50.716 info script.js.MYSTUFF.STROM-PHOLTAIK.noah2mqtt: {"output_w":26,"solar_w":32,"soc":10,"charge_w":0,"discharge_w":0,"battery_num":1,"generation_total_kwh":240.4,"generation_today_kwh":0,"work_mode":"battery_first","status":"online"} javascript.0 09:07:00.740 info script.js.MYSTUFF.STROM-PHOLTAIK.noah2mqtt: {"output_w":0,"solar_w":32,"soc":10,"charge_w":0,"discharge_w":0,"battery_num":1,"generation_total_kwh":240.4,"generation_today_kwh":0,"work_mode":"battery_first","status":"online"} javascript.0 09:07:10.761 info script.js.MYSTUFF.STROM-PHOLTAIK.noah2mqtt: {"output_w":0,"solar_w":33,"soc":10,"charge_w":0,"discharge_w":0,"battery_num":1,"generation_total_kwh":240.4,"generation_today_kwh":0,"work_mode":"battery_first","status":"online"}