NEWS
Growatt Noah 2000 - Nulleinspeisung
-
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
-
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 😂
- 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
-
- 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 ... -
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.gzgesamte 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
-
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.gzgesamte 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 🤷
-
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 :-(
-
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 🤷
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"} -
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"}Ja, durchaus. Man kann ja auch in der App selbst laufend aktualisieren. Also werden die Daten wohl auch dauernd in die Cloud geschickt und nicht nur alle fünf Minuten. Warum dann aber der Growattadapter nur alle fünf Minuten gefüttert wird, verstehe ich nicht.
-
Konntest du testen, ob man auch Datenpunkte setzen kann und nicht nur lesen?
-
Konntest du testen, ob man auch Datenpunkte setzen kann und nicht nur lesen?
@ravermichl
Ich muss eigentlich nix mehr setzen am Noah
Aber ich kann das Mal testenBei mir war heute Null Sonne - der schläft schon wieder
-
Konntest du testen, ob man auch Datenpunkte setzen kann und nicht nur lesen?
@ravermichl du meinst die Default Power
-
Konntest du testen, ob man auch Datenpunkte setzen kann und nicht nur lesen?
habe den akku noch ein wenig entladen und getestet
konnte die default power des noah setzen :-)
-
habe den akku noch ein wenig entladen und getestet
konnte die default power des noah setzen :-)
Oha.! Danke fürs Testen. Klingt gut. Jetzt würde ich nur noch gern verstehen, wie genau dieser Adapter seine Daten bekommt und wozu dieses "Go" dient. Möchte ungern was auf meinem iobroker installieren, was ich nicht kapiere 😭
Und bringen würde es mir ohnehin nur was, wenn man sich damit den Growattserver Login spart. Ist das denn so?
-
Oha.! Danke fürs Testen. Klingt gut. Jetzt würde ich nur noch gern verstehen, wie genau dieser Adapter seine Daten bekommt und wozu dieses "Go" dient. Möchte ungern was auf meinem iobroker installieren, was ich nicht kapiere 😭
Und bringen würde es mir ohnehin nur was, wenn man sich damit den Growattserver Login spart. Ist das denn so?
ehrlich - ich weiß es nicht - beim setzen denke ich, er wird es brauchen - ich frag nochmal in dem anderen forum nach
-
ehrlich - ich weiß es nicht - beim setzen denke ich, er wird es brauchen - ich frag nochmal in dem anderen forum nach
Akkudoktor? 😉 Eines der wenigen Foren, wo ich mich jetzt nicht auch noch extra registrieren wollte 😂
-
Akkudoktor? 😉 Eines der wenigen Foren, wo ich mich jetzt nicht auch noch extra registrieren wollte 😂
noah-mqtt simuliert wohl die shine app - so wie der alexa adapter die alexa app
-
noah-mqtt simuliert wohl die shine app - so wie der alexa adapter die alexa app
Mhm also ist das schon sone Art lokaler Zugriff. Denn die Daten in der App selbst kommen auch nicht aus der Cloud, sondern schon lokal, weil dort ist die Aktualisierung auch schneller als 5 Minuten. Nur die Daten aus der Cloud selbst kann man anscheinend nur alle 5 Minuten abrufen. Die Frage ist nur, ob es sich dieses Tool dann auch jedes mal bei einer Änderung am Noah einloggt oder ob es den Login offen hält (ähnlich wie der Alexa Adapter). Dann wäre es schon eine bessere Lösung, weil die Daten schneller kommen und die Logins reduziert würden 🤷 Noch besser wäre es, wenn man auf den Login bei Umstellung komplett verzichten könnte. Wer kann einem das sagen?
-
Mhm also ist das schon sone Art lokaler Zugriff. Denn die Daten in der App selbst kommen auch nicht aus der Cloud, sondern schon lokal, weil dort ist die Aktualisierung auch schneller als 5 Minuten. Nur die Daten aus der Cloud selbst kann man anscheinend nur alle 5 Minuten abrufen. Die Frage ist nur, ob es sich dieses Tool dann auch jedes mal bei einer Änderung am Noah einloggt oder ob es den Login offen hält (ähnlich wie der Alexa Adapter). Dann wäre es schon eine bessere Lösung, weil die Daten schneller kommen und die Logins reduziert würden 🤷 Noch besser wäre es, wenn man auf den Login bei Umstellung komplett verzichten könnte. Wer kann einem das sagen?
ich glaube der trick ist, das es sich nur einmal einloggt - ähnlich, wie der adapter - bei den häufigen aktualisierungen würde man sofort geblockt - anders wie bei unserem python-tool
auf das login wirst du nie verzichten können - du kannst die app ja auch nicht ohne logging nutzen
-
ich glaube der trick ist, das es sich nur einmal einloggt - ähnlich, wie der adapter - bei den häufigen aktualisierungen würde man sofort geblockt - anders wie bei unserem python-tool
auf das login wirst du nie verzichten können - du kannst die app ja auch nicht ohne logging nutzen
@liv-in-sky said in Growatt Noah 2000 - Nulleinspeisung:
ich glaube der trick ist, das es sich nur einmal einloggt - ähnlich, wie der adapter - bei den häufigen aktualisierungen würde man sofort geblockt - anders wie bei unserem python-tool
auf das login wirst du nie verzichten können - du kannst die app ja auch nicht ohne logging nutzen
Ja, könnte sein. Werd ich mal im Hinterkopf behalten, falls ich mit aktuelleren Daten von Noah arbeiten will oder ausgesperrt werde wg zu häufigem Login bei der Python-Methode. Bis jetzt lief es problemlos.
Trotzdem wäre eine vollständig lokale Steuerung schon sinnvoll. Vllt findet noch jemand raus, wie das geht oder growatt baut was ein.. Oder sagt uns, wie es geht 😁
-
Nachfolgend "kurze" Projektvorstellung der Möglichkeit mit einem NOAH 2000 Speicher von Growatt und iobroker sowie python3 eine annähernde Nulleinspeisung zu generieren, auch wenn man keinen steuerbaren Wechselrichter hat. Es funktioniert bei mir seit ein paar Tagen sehr gut.
Lediglich wenn der Speicher voll ist und im Haus weniger verbraucht wird, als gerade vom Dach kommt, geht noch etwas ins Netz.Ausgangslage:
Hardware:
Modulgesamtleistung: 1540wp
Speicher: Growatt Noah 2000
Wechselrichter: APSystems DS3-S, der von APSystems auf einen DS3-L (maximale Ausgangsleistung ca. 730Watt - Eingangsleistung: ca. 770Watt) gepimpt wurde.
Digitaler Stromzähler, der die einzelnen Leitungen saldiert.
IR-Lesekopf für Stromzähler
Am Noah dürfen keine Zeitpläne eingestellt seinAdapter:
- "Smartmeter" für das auslesen des Stromzählers (alle 5 Sekunden) und abgreifen des saldierten Stromverbrauchs (im Blockly als Datenpunkt 1-0:16 [...] dargestellt).
- "Growatt" für die Einbindung von Datenpunkten des NOAH (ist einfacher als auch diese mittels python3 auszulesen)
- "javascript" für Blockly
- "Solar - Wetter" für Ertragsprognose
Vorgehen:
- Es ist ein Skript außerhalb iobroker notwendig.
a. Hierfür muss python3 mit package "growattServer" (Github: "PyPi_Growattserver") und aktuellster init.py dieses Pakets, da das Paket (Stand Version 1.5.1) die Variablen für den NOAH nocht nicht enthält.
Es muss zur Anpassung im entsprechenden Verzeichnis im iobroker ( überSSH) "[...]site-packages/growattServer" die enthaltene init.py durch die auf github enthaltene ersetzt werden.
b. Der Benutzer iobroker muss berechtigt sein das entsprechend zu erstellende python3 script auszuführen. Ich musste python3 hierfür nochmals explizit für den Nutzer "iobroker" installieren. Das "site-package" Verzeichnis befand sich dann bei mir unter /home/iobroker/.local/lib/python3.x/site-packages/growattServer
Das mit "nano" problemlos zu erstellende Skript für die Steuerung des Outputs des NOAH sieht bei mir aktuell wie folgt aus und ist auf dem iobroker unter dem Namen noahxw.py gespeichert:
import growattServer import datetime import getpass import sys """ Skript passt default_output noah auf bestimmten Wert an. Bspw.: Befehl: "python3 noahxw.py 150" passt Wert auf 150 Watt an """ api = growattServer.GrowattApi(False, "Chrome") login_response = api.login('Benutzername Growattlogin', 'Passwort Growattlogin') response = api.update_noah_settings('SeriennummerNOAH', 'default_power', [int(sys.argv[1])]) print(response)Mehr dazu u. a. in der Diskussion hier: github.com/indykoning/PyPi_GrowattServer/issues/88
- Soviel zu den Vorbereitungen. Nun zum eigentlichen Blockly bzw. den Blocklys zur Steuerung des Output.
a. Mit folgendem Blockly wird die Aktivierung des Skripts zur Nulleinspeisung gesteuert. Hintergrund ist, dass ich die Server von Growatt möglichst wenig belasten will (bei jeder Änderung wird sich ja neu eingeloggt).
Somit ist ein Login an solchen Tagen nicht nötig, wo entweder die PV Leistung ohnehin so niedrig ist, dass gerade mal der Speicher voll wird, also schon meine Grundlast (ca. 190 W pro Stunde) diese verbraucht.
Daher lasse ich das Nulleinspeisungskript nur laufen, wenn die erwartete PV Leistung am Tag größer als 2.4 kwh ist. Diesen Wert habe ich für mich als sicher zu verbrauchenden Wert, auch wenn der Speicher sehr schnell voll werden sollte, errechnet.
Ist bewusst niedrig gewählt und absolut optional. Die Daten werden über den Adapter Solar-Wetter bereit gestellt.
Außerdem wird das Skript nur gestartet, wenn wir uns zwischen Sonnenaufgang und Sonnenuntergang befinden sowie erst dann, wenn der SoC bei mindestens 20% liegt.Unter 15% wird es wieder beendet; ebenfalls nach Sonnenuntergang oder wenn die prognostizierte PV Leistung am Tag wieder unter 2.4 kwh fällt (optional).
Zw. 15 und 20 Prozent deshalb, weil der Growattadapter nur alle 5 Minuten aktualisiert und wenn ich 10% (untere Entladungsgrenze meines Noah genommen habe, wurde es tagsüber nur zufällig beendet und lief dann auch teilweise bei 11, weil die 10% nicht registriert wurden.
Die eingebauten Meldungen an Telegram sind optional; ebenso die Debug Ausgaben. Haben mir aber beim Testen sehr geholfen.
Außerdem stellt das Skript bei Start und Stop Werte sowohl für die Output-Variable (NOAH_Output - siehe dazu unten) und auch direkt am Noah den Outputwert (default power) ein (190 Watt entspricht ca. meiner Grundlast).
Noch ein paar Erläuterungen zum Skript:
- Variable Prognose Ertrag errechnet sich bei mir in dem ich den Mittelwert der beiden Werte, die der Adapter Solar-Watt liefert für meine Region bilde ((Max + Min) / 2) und diesen mit meinem Ertragswert (86%) der Anlagenausrichtung (Ost/West ca. 20% Neigung) multipliziere.
- Rest sollte selbsterklärend sein.
Skript ist m. E. optional, aber dient eben der Verringerung der Serverbelastung in Zeiten, wo es eh nicht gebraucht wird.
Screenshot vom Script auf Anfrage per PN erhältlich aufgrund schlechter Erfahrungen mit freier Verfügbarkeit...
b. Nachfolgendes Blockly steuert nach Aktivierung durch vorhergehendes die Nulleinspeisung:
Ausgangslage ist auch hier wieder eine möglichst geringe Serverbelastung und zudem eine möglichst geringe Einspeisung ins Netz. Daher orientiere ich mich bei der Wahl, welcher Wert eingestellt werden soll immer am geringsten übermittelten Stromsaldowert meines Zählers und nicht am größten. Mir ist es lieber ich beziehe kurz ein bisschen Strom, als das ich einen verschenke.
Zudem wurde es so konzipiert, dass eine Anpassung nur dann erfolgt, wenn die Abweichung zur 0 (Stromsaldo) kleiner als -10 oder größer als 20 Watt ist. Diese Werte sind beliebig anpassbar.
Weiterhin werden zwei Durchläufe (siehe dazu unten in den Erläuterungen) der Stromsaldomessungen miteinander verglichen und nur wenn die Werte innerhalb einer gewissen Toleranz (bei mir zw. - 20 und + 20) liegen, wird eine Änderung gesendet.
Das verhindert wirksam, dass bspw. wenn ein großer Verbraucher an ist und gerade Volleinspeisung erfolgt, aber dieser sich zwischendurch nur kurz abschaltet (passiert bspw. bei der Mikrowelle), sofort eine Anpassung nach unten (da ich ja immer auf den kleinsten Wert nahe 0 abstelle) erfolgt, nur um dann gleich wieder auf Volleinspeisung anzupassen.Nachfolgend das Skript (m. E. sehr verschachtelt; mglw. kann es noch vereinfacht werden; mir fehlen dazu aber die Blockly Kenntnisse. Bspw. habe ich es nicht hingebracht, dass aus der Liste der Wert genommen wird der am nähesten an der 0 ist (weil das ja der kleinste Verbraucher ist). Somit konnte ich nur zwei Werte nutzen (was aber m. E. ausreicht) und musste mir mit dem "aus der Liste nimm Minimalwert und Maximalwert Abfragen behelfen, damit als kleinster Wert bspw. bei einer Liste mit [-49 und 5] nicht -49, sondern eben 5 (da näher an 0) genommen wird.
Screenshot vom Script auf Anfrage per PN erhältlich aufgrund schlechter Erfahrungen mit freier Verfügbarkeit...
Erläuterungen in Worten:
Skript macht Folgendes:
Im ersten Abschnitt wird eine leere Liste erzeugt, in die bei jeder Aktualisierung der Stromsaldos meines Zählers der entsprechende Wert geschrieben wird (dieser Wert besteht also aus den Verbräuchen über meine drei Phasen und beinhaltet auch bereits eine eventuelle Einspeisungsleistung).
Die Pause vorab greift dann, wenn gerade die Leistung erst angepasst wurde, damit diese sich einpendeln kann, bevor wieder ein Stromsaldowert abgefragt wird (aktuell ist diese bei mir bei 13 Sekunden eingestellt - Variable ist also falsch benannt ;) )
Ist die Liste mit zwei Werten "voll", dann wird eine vorab eigens erstellter Datenpunkt "Kleinster_Verbrauch") mit dem Minimalwert der Liste beschrieben; das nachfolgende "falls" prüft, ob der Minimalwert kleiner als -10 ist und es eventuell einen "Maximalwert" zw. -10 und 20 gibt und passt in diesem Fall den "Kleinster_Verbrauch" auf den Maximalwert an, da dies derjenige am nächsten an der Null und innerhalb des von mir vorgegebenen Toleranzbereichs ist.
Elegantere Lösung wäre "Kleinster_Verbrauch" gleich auf den Wert in der Liste, der am nähesten an der 0 ist, zu setzen; wie oben geschrieben weiß ich allerdings nicht, wie das geht.
In den weiteren Variablen wird ein Vergleichswert "Kleinster_Verbraucher_Vergleich" zwischen zwei aufeinanderfolgenden Durchläufen des Listenabschnittes generiert. Wozu dies dient, steht oben.
Damit ist der Listenabschnitt abgeschlossen.Im nächsten "Falls Trigger" wird nun bei Änderung des "Kleinster_Verbraucher" zunächst geprüft, ob die Toleranzen passen (Wertevergleich zweier aufeinanderfolgender Listenzyklen über "Kleinster_Verbraucher_Vergleich" und Prüfung, ob "Kleinster_Verbraucher" außerhalb Toleranzbereich liegt.
Falls zutreffend wird die Variable "Noah_Output" der spätestens nach zwei Durchläufem dem tatsächlichem default_output-Wert des Noahs entsprechen sollte, wie folgt aktualisiert:
Der eingestellte Output Wert des Datenpunkte "Noah Output" wird addiert um den Wert des kleinsten Verbrauchers multipliziert mit 1.1 (Formle: Noah_Output + (Kleinster_Verbraucher x 1.1); 1.1 deshalb, weil der Wert des "Kleinster_Verbraucher" ein realer Stromverbrauchswert ist und wenn ich diesen ausgleichen will, muss der Output des Noah in etwa 10% höher sein (bei mir funktioniert das tadellos).
Außerdem wird der Wert gerundet und zw. 0 und 800 begrenzt, da der Noah eh nicht mehr ausgeben kann.
Die anschließende Vairable 800over dient nur einer Kontrolle und gibt den tatsächlichen Wert aus, der eigentlich gesetzt werden müsste, also über 800.
Der nächste "falls" Abschnitt überprüft, ob der Wert bereits auf 800 gesetzt wurde und auf 800 bleiben soll, dann wird kein Befehl an den Noah gesendet; sonst schon.
Die Befehle sind ersichtlich; es wird das python-script ausgeführt und geprüft, ob ein Fehler kommt, dann erfolgt eine Nachricht an Telegramm (optional).
Anschließend werden 13 Sekunden Pause getriggert, um den Noah sich anpassen zu lassen.
Der falls Abschnitt darunter gehört noch zur Prüfung, ob schon über 800 Watt eingestellt wurden oder nicht.Alle Debug und Telegramm Einschübe dienen der Kontrolle und waren bei Erstellung des Skriptes (hat mich über eine Woche gekostet) sehr hilfreich.
Ich hoffe diese zugegebenermaßen viel zu ausführliche Anleitung ist hilfreich für euch.
Für jede Skriptverbesserung bzw. Verkürzung bin ich dankbar!
Hallo @ravermichl,
kein Interesse?!?! das gegenteil, der Interesse ist groß, zumindest von mir ;-), geile Sache was du da gebaut hast. Ich habe bei mir endlich alle Adapters installiert die man braucht und sogar die Noah-MQTT läuft jetzt auch bei mir. Es war eine größe Hürde die Ausführung von Python Skrypts, weil ich die Rückmeldungen nicht gesehen haben und dachte es klappt ja nicht, aber es hat die ganze Zeit funktioniert.
Naja Hacken dran. Jetzt kann ich mit den Einbau von den Skrypt für die Null-Einspeinsung beginnen. Könntest du es mir per "Export" im Blocky den Zukommen lassen, wenn es geht, wenn auf "Sicherheits-Gründen" nicht geht, werde ich mich mit Screenshots zurecht kommen,;-)
Mit der Implementierung von Schelly und Noah hat sich die Sache ein bisschen entschärft, klappt das mehr oder weniger gut, aber...., der ist zu langsam beim aktualisieren und geht viel Energie verloren. Das wird bestimmt viel besser mit den Skript, weil die Daten viel schneller auslesen kann und die Werte anpassen kann.
Wenn ich den Skript am Laufen habe, möchte ist es noch optimieren mit Dynamischen Tarife, in drei Monate bekomme ich Strom von Tibber :-).
Mein Equipment: 2xNoah, 2400 kwp (6xSolarmodulen), NEO 800, Shelly 3 Pro und Raspi 5.
Vielen Dank für die muhe und das Teilen
VGP.S. Sorry für mein Deutsch, komme aus der Land der Sonne (Spanien) und arbeite ich noch dran.