NEWS
Growatt Noah 2000 - Nulleinspeisung
-
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!
-
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