Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Eure Config Parameter? #28

Open
reserve85 opened this issue Mar 30, 2023 · 170 comments
Open

Eure Config Parameter? #28

reserve85 opened this issue Mar 30, 2023 · 170 comments

Comments

@reserve85
Copy link
Owner

Wie sind eure Erfahrungen mit dem Script?
Ich stehe auf das Jump to Max Limit, damit ich möglichst sofort reagiere wenn ein Verbraucher dazukommt.
Mit Ahoy V0.6.0 konnte ich die Timings im Vergleich zu den Default-Values ganz schön redizieren und bekomme wirklich Top-Ergebnisse:

[COMMON]
INVERTER_COUNT = 1
SLOW_APPROX_LIMIT_IN_PERCENT = 25
SLOW_APPROX_FACTOR_IN_PERCENT = 20
LOOP_INTERVAL_IN_SECONDS = 10
SET_LIMIT_DELAY_IN_SECONDS = 3
SET_LIMIT_DELAY_IN_SECONDS_MULTIPLE_INVERTER = 2
POLL_INTERVAL_IN_SECONDS = 1
JUMP_TO_MAX_LIMIT_ON_GRID_USAGE = true
MAX_DIFFERENCE_BETWEEN_LIMIT_AND_OUTPUTPOWER = 15
ENABLE_LOG_TO_FILE = false
LOG_BACKUP_COUNT = 30
SET_LIMIT_RETRY = -1

[CONTROL]
POWERMETER_TARGET_POINT = -75
POWERMETER_TOLERANCE = 5
POWERMETER_MAX_POINT = 0
@reserve85 reserve85 pinned this issue Mar 30, 2023
@Leviathan09
Copy link

Also ich hab dein Skript derzeit mit folgenden Einstellungen laufen und muss sagen es funktionierte heute echt gut (Gestern war gabs hier kein Sonne)

Muss aber sagen so 100% verstanden was welche Option macht habe ich noch nicht, daher sind die Einstellungen so auf "Gut Glück" gewählt 😄

[COMMON]
INVERTER_COUNT = 1
SLOW_APPROX_LIMIT_IN_PERCENT = 10
SLOW_APPROX_FACTOR_IN_PERCENT = 20
LOOP_INTERVAL_IN_SECONDS = 20
SET_LIMIT_DELAY_IN_SECONDS = 5
SET_LIMIT_DELAY_IN_SECONDS_MULTIPLE_INVERTER = 2
POLL_INTERVAL_IN_SECONDS = 1
JUMP_TO_MAX_LIMIT_ON_GRID_USAGE = False
MAX_DIFFERENCE_BETWEEN_LIMIT_AND_OUTPUTPOWER = 100
ENABLE_LOG_TO_FILE = true
LOG_BACKUP_COUNT = 5
SET_LIMIT_RETRY = 3

[CONTROL]
POWERMETER_TARGET_POINT = 0
POWERMETER_TOLERANCE = 15
POWERMETER_MAX_POINT = 550

@reserve85
Copy link
Owner Author

Ja, einfach Fragen, ist ziemlich viel ich weiß.

SLOW_APPROX_LIMIT_IN_PERCENT = 10: das ist etwas wenig wenn du ein 1500W Inverter betreibst, dann wird ab > 150W (10%) Limitänderung das ganze dann langsamer nach unten geregelt. Wenn du z.B. 200W überproduzierst: Dann greift der SLOW_APPROX_FACTOR_IN_PERCENT: anstelle der 200W wird dann 160W geregelt. Und im nächsten Schritt (Loop Interval in Seconds) die restlichen 40W. Das flacht die Regelung etwas ab bei großen Änderungen am Limit.

Mit Ahoy kannst du locker LOOP_INTERVAL_IN_SECONDS = 10s und SET_LIMIT_DELAY_IN_SECONDS = 3 einstellen, das beschleunigt enorm.

Wenn du ohne Jump eingestellt hast, würde ich MAX_DIFFERENCE_BETWEEN_LIMIT_AND_OUTPUTPOWER aktivieren (so 10%-15%), das begrenzt das Erhöhen des Limits obwohl nicht mehr produziert werden kann (zu wenig Sonne). Sonst läuft das Limit dauerhaft in Richtung 1500W, aber der Inverter dümpelt bei 300W herum.

@Ollipop030
Copy link

Ollipop030 commented Mar 31, 2023

Das sind meine Werte:

[COMMON]
INVERTER_COUNT = 2
SLOW_APPROX_LIMIT_IN_PERCENT = 20
SLOW_APPROX_FACTOR_IN_PERCENT = 20
LOOP_INTERVAL_IN_SECONDS = 11
SET_LIMIT_DELAY_IN_SECONDS = 1
SET_LIMIT_DELAY_IN_SECONDS_MULTIPLE_INVERTER = 1
POLL_INTERVAL_IN_SECONDS = 1
JUMP_TO_MAX_LIMIT_ON_GRID_USAGE = false
MAX_DIFFERENCE_BETWEEN_LIMIT_AND_OUTPUTPOWER = 10
ENABLE_LOG_TO_FILE = true
LOG_BACKUP_COUNT = 7
SET_LIMIT_RETRY = 10

POWERMETER_TARGET_POINT = -60
POWERMETER_TOLERANCE = 35
POWERMETER_MAX_POINT = 0

Alles funktioniert wunderbar. Auch hält die DTU das aus. Bei mir das Problem: Der Zähler gibt mir immer nur alle 10 Sekunden einen Wert. Das stört aber grundsätzlich die Funktion nicht. Wo es ein wenig stört: Bei 3D Druck oder wenn die Waschmaschine läuft. In dem Moment, in dem ein Motor anläuft werden ganz kurz mal knapp 300 Watt gezogen. Wenn genau dann vom Zähler wieder ein Wert kommt wird für 11 Sekunden das Limit demensprechend erhöht.

So sah der Mittag gestern aus (es war aber auch sehr bewölkt):

grafik

Rot=Netzbezug
Grün=Einspeisung

Bis kurz nach 12 lief der Geschirrspüler, man kann gut sehen wann der Heizstab anspringt. Um ca. halb 1 wurde gekocht, da heizt das Ceranfeld. Hier sieht man dann auch kurz die zu hohe Einspeisung. Aber ansonsten dümpelt der Einspeisewert hier bei 60-80 Watt rum.

@reserve85 Hast du Lust meinen Zähler (emlog) offiziell mit aufzunehmen? Dann brauche ich nicht bei jedem Update die Domain und Prefixes ändern.

@Leviathan09
Copy link

Ja, einfach Fragen, ist ziemlich viel ich weiß.

SLOW_APPROX_LIMIT_IN_PERCENT = 10: das ist etwas wenig wenn du ein 1500W Inverter betreibst, dann wird ab > 150W (10%) Limitänderung das ganze dann langsamer nach unten geregelt. Wenn du z.B. 200W überproduzierst: Dann greift der SLOW_APPROX_FACTOR_IN_PERCENT: anstelle der 200W wird dann 160W geregelt. Und im nächsten Schritt (Loop Interval in Seconds) die restlichen 40W. Das flacht die Regelung etwas ab bei großen Änderungen am Limit.

Mit Ahoy kannst du locker LOOP_INTERVAL_IN_SECONDS = 10s und SET_LIMIT_DELAY_IN_SECONDS = 3 einstellen, das beschleunigt enorm.

Wenn du ohne Jump eingestellt hast, würde ich MAX_DIFFERENCE_BETWEEN_LIMIT_AND_OUTPUTPOWER aktivieren (so 10%-15%), das begrenzt das Erhöhen des Limits obwohl nicht mehr produziert werden kann (zu wenig Sonne). Sonst läuft das Limit dauerhaft in Richtung 1500W, aber der Inverter dümpelt bei 300W herum.

Also ich hab nen 600W WR.
Schau mir die Einstellungen nachher nochmal an.

@reserve85
Copy link
Owner Author

@reserve85 Hast du Lust meinen Zähler (emlog) offiziell mit aufzunehmen? Dann brauche ich nicht bei jedem Update die Domain und Prefixes ändern.

ja sehr gerne, mach einfach ein neues Issue auf und lass mir die Werte darin zukommen die ich da brauche, bzw. deine Implementierung.

@Leviathan09
Copy link

Leviathan09 commented Mar 31, 2023

Ich hab meine Werte jetzt nochmal etwas angepasst und da ist mir aufgefallen das da wohl iwas noch nicht so ganz passt.
Die Funktion die ich in dem issue #26 angesprochen hatte hast du ja schon drin gehabt, kam nur bei mir wohl nie zum tragen.
Aber wenn jetzt der Fall eintritt das mein Limit höher ist als die Produktion schreibt er folgendes raus:

2023-03-31 14:21:37,503 INFO     Cut limit to 302 Watt, limit was higher than 15 percent of live-production
2023-03-31 14:21:37,503 INFO     Not enough energy producing: increasing limit
2023-03-31 14:21:37,503 INFO     setting new limit to 353 Watt
2023-03-31 14:21:37,503 INFO     Inverter 0: setting new limit from 352 Watt to 353 Watt
2023-03-31 14:21:24,085 INFO     Inverter 0 power producing: 212  Watt
2023-03-31 14:21:24,085 INFO     Cut limit to 302 Watt, limit was higher than 15 percent of live-production
2023-03-31 14:21:24,088 INFO     Not enough energy producing: increasing limit
2023-03-31 14:21:24,088 INFO     setting new limit to 352 Watt
2023-03-31 14:21:24,089 INFO     Inverter 0: setting new limit from 356 Watt to 352 Watt
2023-03-31 14:21:10,571 INFO     Cut limit to 310 Watt, limit was higher than 15 percent of live-production
2023-03-31 14:21:10,572 INFO     Not enough energy producing: increasing limit
2023-03-31 14:21:10,572 INFO     setting new limit to 356 Watt
2023-03-31 14:21:10,572 INFO     Inverter 0: setting new limit from 367 Watt to 356 Watt

Laut output gibt er an das Limit zu reduzieren, zb auf 302 Watt. Im nächsten Schritt kommt dann aber wieder das increasing limit und mischt sich ein. Dadurch wird das Limit zwar reduziert oder bleibt annähernd gleich aber es wird nicht auf das reduziert was er bei "Cut limit to XXX Watt" angibt.

Eingestellt habe ich die Config wie folgt:


[COMMON]
INVERTER_COUNT = 1
SLOW_APPROX_LIMIT_IN_PERCENT = 10
SLOW_APPROX_FACTOR_IN_PERCENT = 20
LOOP_INTERVAL_IN_SECONDS = 10
SET_LIMIT_DELAY_IN_SECONDS = 3
SET_LIMIT_DELAY_IN_SECONDS_MULTIPLE_INVERTER = 2
POLL_INTERVAL_IN_SECONDS = 1
JUMP_TO_MAX_LIMIT_ON_GRID_USAGE = False
MAX_DIFFERENCE_BETWEEN_LIMIT_AND_OUTPUTPOWER = 15
ENABLE_LOG_TO_FILE = true
LOG_BACKUP_COUNT = 5
SET_LIMIT_RETRY = 3

[CONTROL]
POWERMETER_TARGET_POINT = 0
POWERMETER_TOLERANCE = 15
POWERMETER_MAX_POINT = 550

@reserve85
Copy link
Owner Author

Ist so gewollt. Das Limit wird vor der Regelschleife getrimmt und anschließend neu berechnet. Wenn dann die Sonne plötzlich zu 100% draufknallt hast du gleich annähernd den Sollwert. Ansonsten könntest du maximal 15% je Durchlauf erhöhen.

@Ollipop030
Copy link

@Leviathan09 Du sollest die Toleranz nicht so eng einstellen, ruhig 30 Watt. Und der Targetpoint sollte auch weiter im Negativen liegen, versuch mal -50 Watt. Bei 15 Watt Einspeisung muss das Limit ja schon wieder verringert werden, bei 15 Netzbezug wieder erhöht. So kleine Sprünge wirst du aber wahrschlich gar nicht hinbekommen.

@mark82436
Copy link

mark82436 commented Mar 31, 2023

Ich habe es bei mir so laufen, damit er nicht ständig hin und her regelt
somit ist die Toleranz größer

[COMMON]
INVERTER_COUNT = 1
SLOW_APPROX_LIMIT_IN_PERCENT = 20
LOOP_INTERVAL_IN_SECONDS = 20
SET_LIMIT_DELAY_IN_SECONDS = 5
SET_LIMIT_DELAY_IN_SECONDS_MULTIPLE_INVERTER = 2
POLL_INTERVAL_IN_SECONDS = 1
JUMP_TO_MAX_LIMIT_ON_GRID_USAGE = true
MAX_DIFFERENCE_BETWEEN_LIMIT_AND_OUTPUTPOWER = 100
ENABLE_LOG_TO_FILE = false
LOG_BACKUP_COUNT = 30

[CONTROL]
POWERMETER_TARGET_POINT = -100
POWERMETER_TOLERANCE = 50
JUMP_TO_MAX_LIMIT_ON_GRID_>
POWERMETER_MAX_POINT = 200

@Leviathan09
Copy link

@Leviathan09 Du sollest die Toleranz nicht so eng einstellen, ruhig 30 Watt. Und der Targetpoint sollte auch weiter im Negativen liegen, versuch mal -50 Watt. Bei 15 Watt Einspeisung muss das Limit ja schon wieder verringert werden, bei 15 Netzbezug wieder erhöht. So kleine Sprünge wirst du aber wahrschlich gar nicht hinbekommen.

Werde die Toleranz mal anpassen.
Aber die 0 Watt als Target-Point sind ja so gewollt, ich will bei um die 0 liegen.
Nicht bei -50 oder so

@Ollipop030
Copy link

Aber die 0 Watt als Target-Point sind ja so gewollt, ich will bei um die 0 liegen.

Dann wirst du aber mehr Netzbezug haben, denn die Toleranz lässt bei dir dann ja auch positive Werte zu, das Script wird in dem Fall gar nicht eingreifen.

Lieber ein bisschen einspeisen als Puffer für Schwankungen beim Verbrauch. Genau die 0 zu treffen und zu halten wird wohl nicht möglich sein. Es wird ja auch nur alle 10 Sekunden angepasst.

Soll nur ein Tipp sein.

@Leviathan09
Copy link

Aber die 0 Watt als Target-Point sind ja so gewollt, ich will bei um die 0 liegen.

Dann wirst du aber mehr Netzbezug haben, denn die Toleranz lässt bei dir dann ja auch positive Werte zu, das Script wird in dem Fall gar nicht eingreifen.

Lieber ein bisschen einspeisen als Puffer für Schwankungen beim Verbrauch. Genau die 0 zu treffen und zu halten wird wohl nicht möglich sein. Es wird ja auch nur alle 10 Sekunden angepasst.

Soll nur ein Tipp sein.

Ich werde die Tage mal beobachten und sehen wie sich das ganze verhält und mal testen was mit unterschiedlichen Parametern passiert 👍

Gestern zumindest lief es ganz gut um den 0 Punkt, mal so -15 bis +15 war die übliche Schwankung.
Heute wird aber nix mit testen, Maximum der Anlage heute waren 10W, hier ist es mega bewölkt, dunkel und nur am regnen.

Aber danke für die Tipps. Werde die Ergebnisse demnächst dann hier mal mitteilen

@Sposch123
Copy link

Sposch123 commented Apr 15, 2023

Hi!
Erst einmal herzlichen Danke für das tolle Skript - auch als echter Amateur bin ich gut zurecht gekommen und habe es ans laufen bekommen. Ich habe allerdings eine Weile gebraucht, um das Format meines Hichi herauszubekommen.
Für weitere Anfänger wie mich, die mit einem Tasmota-Leser arbeiten, schlage ich deshalb eine Ergänzung in der config.ini vor:

# the following three constants describes how to navigate through the Tasmota-JSON
# e.g. JSON_Result = {"StatusSNS":{"Time":"2023-02-28T12:49:49","SML":{"total_kwh":15011.575,"curr_w":-71}}}
Vorgeschlagene Ergänzung
# if you do not know the format of your Tasmota reader, open a browser and put in the following string replacing xxx with the IP address of your Tasmota device: https://xxx.xxx.xxx.xxx/cm?cmnd=status%2010

Herzlichen Dank noch einmal und viele Grüße

@feeti1
Copy link

feeti1 commented Apr 17, 2023

Hallo,

Ich habe das Script jetzt seit gestern mit mit ahoydtu und einem HM-1500 auf 48V Batterie am laufen.
Die Funktion ist wirklich sehr ordentlich.
Alles andere, das Ich vorher probiert habe war nicht so gut, oder hat überhaupt nicht funktioniert.
Als absoluter Neuling auf diesem Gebiet, eine Frage an die Profis, wäre es möglich den vom Inverter für die Strings gemessen Spannungswert für ein Änderung des Limit bzw. die Abschaltung des Inverters zu verwenden?
Zum Beispiel möchte Ich ab 48V am String das Powerlimit auf 300W setzen und dann vielleicht ab 47V den Inverter ausschalten.
Könnte man so etwas integrieren?
Und wenn ja, wie in etwa müsste Ich da vorgehen?

mfg Dirk

This was referenced Apr 18, 2023
@keinprofi
Copy link

Was ist in Sachen Einspeisung reralistisch möglich? Ich finde meine Einspeisewerte ein wenig hoch:

Einspeisung_crop

So sind mir gestern etwa 7kW übrig geblieben und 1,85kW eingespeist.
AM 28.04. habe ich rund 3kW und am 25.04. knapp 3,2kW erzeugt

Meine Config:
img_398

Lässt sich das noch optimieren?

@reserve85
Copy link
Owner Author

Kannst du das visualisiert Darstellen? Das würde eine Menge bringen.

Prinzipiell kommt das auch immer auf deine Verbraucher drauf an. Wenn du z.B. einen Ofen anhast der alle 5 sekunden für 2 sekunden 2000W zieht, dann wird die Regelung nicht gut funktionieren.

Du hast -50W als Target eingestellt, sobald du halt eine 60W Birne einschaltest oder du im Energieverbrauch schwankungen von >50W hast, dann wird dein Powermeter positiv unds somit dein Inverter direkt auf 100% ausgeregelt weil du "jump_to_max_limit_on_grid_usage" auf TRUE hast.
Diese Option verursacht zwar eine höhere Einspeisung, dafür reagiert dein Inverter sofort wenn du Strom kaufen müsstest. Das musst du halt abwägen was für dich wichtiger ist.

Mit der Option probiere mal 75 Watt oder sogar 100 Watt, dann wird der Inverter seltener auf 100% gepusht.

SlowApproxLimitInPercent könntest du auch etwas erhöhen, bei mir ist 25 eigentlich ziemlich gut.

Hoffe das Hilft dir, eine Grafik wäre super.

@keinprofi
Copy link

keinprofi commented May 1, 2023

Visualisiert... würde ich gerne, wenn ich wüsste wie.

Kann ich irgendwie eine Datenbank einsetzen um alles aufzuzeichnen und dann auszugeben? Ich habe ein anderes Projekt gesehen da wird das u.a. mit Grafana gemacht. Aber wie mein Username schon sagt: Ich bin alles andere als ein Profi. Dieses Projekt sind meine allerersten Erfahrungen mit Linux. Ich bin wissbegierig und lernfähig, aber ich brauche echt Hilfe dabei! Wenn Du das machen kannst, bzw. möchtest(?).

Zur Config:
Ich werde die Option mal auf 100 Watt anpassen und das SlowApproxLimitInPercent auf 25% (was 575 Watt wären - den Faktor auf 16 lassen?) einstellen und beobachten.

Danke bis hierher!

@reserve85
Copy link
Owner Author

Naja, am einfachsten wäre es IoBroker oder HomeAssistant zu installieren. Damit kannst du deine Zähler ohne großen Aufwand hinzufügen und Ahoy/OpenDTU sowieso. Du musst dich dennoch reinarbeiten, da gibt es aber tausende Tutorials und Beispiele. Welchen Zähler hast du?

@keinprofi
Copy link

Reinarbeiten ist kein Ding. Hast Du ein gutes Tut?
Ich habe einen Logarex lk13be803039.

@keinprofi
Copy link

Ist es möglich den "POWERMETER_TARGET_POINT" automatisiert zu bestimmten Tageszeiten anzupassen?
Mir geht es dabei um eine Nachteinspeisung, da würde ich den Wert gerne automatisch deutlich reduzieren, da Nachts keine Spitzen zu erwarten sind, ich aber möglichst noch weniger als tagsüber einspeisen möchte.

Was den Wert tagsüber angeht, da habe ich mit -100 erste Erfolge erzielt. Soll heißen das ich nun schon weniger einspeise und mich nun an einen "idealen" Wert herantaste. Ich nehme an, dass dieser tatsächlich bei 75 Watt sein wird.

@reserve85
Copy link
Owner Author

@keinprofi: bei Batteriebetrieb würde ich dir generell empfehlen: TargetPoint = 0 und JumpToMaxLimitOnGridUsage = false

Die Lösung für unterschiedliches Tages- und Nachtlimit müsstest du selbst realisieren, ggf. mit einem automatisierten CronJob der dir den Wert in der *.ini anpasst und das Script dann neustartet. In meinem Script würde ich das ungern implementieren.

@keinprofi
Copy link

Ja, bei Batteriebetrieb ist 0 definitiv das Ziel, aber tagsüber ist das keine brauchbare Option.

Na gut, dann muss ich mal sehen ob ich da was hinbekomme.........

@reserve85
Copy link
Owner Author

Ja dann würde ich wirklich die Linie fahren für Tag- und Nachtmodus jeweils eine eigene ini zu hinterlegen (z.B. HoymilesZeroExport_Day.ini und HoymilesZeroExport_Night.ini) und über ein Script zu bestimmter Zeit die Datei in den neuen Dateinamen HoymilesZeroExport.ini zu kopieren (mit automatischen Überschreiben). Dann muss nur noch ./restart.sh ausgeführt werden.

@keinprofi
Copy link

Gute Idee. Ich werde mich da mal dran machen.

Danke!

@keinprofi
Copy link

keinprofi commented May 25, 2023

Kann ich das so umsetzen?
img_1040

Oder ist diese Konfig besser:
rule1 = WHEN (time >= "07:00:00" AND time < "19:00:00") DO POWERMETER_TARGET_POINT = -75, JUMP_TO_MAX_LIMIT_ON_GRID_USAGE = true END
rule2 = WHEN (time >= "19:00:00" OR time < "07:00:00") DO POWERMETER_TARGET_POINT = 0, JUMP_TO_MAX_LIMIT_ON_GRID_USAGE = false END

Würde es mit beiden funktionieren? Ist eine Variante besser als die andere?

Edit: Ich denke mal das die Zweite Variante die bessere wäre. Sollte der Raspi um 7 und/oder 19 Uhr mal ausgefallen sein ändert sich nichts bei der oberen Variante. Bei der Zweiten würden die Werte auch um 10.37 Uhr angepasst, falls der Raspi zuvor ausgefallen war.

@reserve85
Copy link
Owner Author

Hi, ich würde noch einfacher vorgehen:

Erstelle Day_Config.ini + Night_Config.ini in deinem HoymilesZeroExport Verzeichnis.

Erstelle einen CronJob:

  1. um 05:55 Uhr die Datei /etc/HoymilesZeroExport/Day_Config.ini nach /etc/HoymilesZeroExport/HoymilesZeroExport_Config.ini kopieren und überschreiben
  2. um 06:00 Uhr führe Script "sudo /etc/HoymilesZeroExport/restart.sh" aus
  3. um 19:55 Uhr die Datei /etc/HoymilesZeroExport/Night_Config.ini nach /etc/HoymilesZeroExport/HoymilesZeroExport_Config.ini kopieren und überschreiben
  4. um 20:00 Uhr führe Script "sudo /etc/HoymilesZeroExport/restart.sh" aus

Dazu hab ich mal ChatGPT gefragt (Danke dafür 🥇):

Öffne ein Terminal und gib den folgenden Befehl ein, um die Crontab-Datei zu bearbeiten:

crontab -e
Füge die folgenden Zeilen am Ende der Datei hinzu, um die gewünschten CronJobs einzurichten:

55 5 * * * cp -f /etc/HoymilesZeroExport/Day_Config.ini /etc/HoymilesZeroExport/HoymilesZeroExport_Config.ini
0 6 * * * sudo /etc/HoymilesZeroExport/restart.sh
55 19 * * * cp -f /etc/HoymilesZeroExport/Night_Config.ini /etc/HoymilesZeroExport/HoymilesZeroExport_Config.ini
0 20 * * * sudo /etc/HoymilesZeroExport/restart.sh

Damit sollte das so laufen wie du es vorhast. Die Zeiten und den Ordner musst du noch anpassen, so würde ich das jedenfalls lösen.

Gruß Tobias

@keinprofi
Copy link

keinprofi commented Aug 23, 2024

Die Fehlermeldung von @kthemall habe ich auch

sudo pip install packaging --break-system-packages

Hab ich jetzt probiert (packaging ist nicht installiert).
Kann ich auch nicht installieren, weiß halt nur nicht warum nicht...
img_872
Mit sudo das selbe.

@kthemall
Copy link

pip3 klein schreiben vielleicht ;-)

@reserve85
Copy link
Owner Author

also bei mir am raspi funzt die installation so:

in den ZeroExportOrdner wechseln:

cd HoymilesZeroExport/
pip install -r requirements.txt --break-system-packages

das hat bei mir alles installiert.

@keinprofi
Copy link

Ja, damit hat die Installation schonmal geklappt

@kthemall
Copy link

das update auf 1.98 bei mir noch nicht, selbe fehlermeldung wie zuerst

@kthemall
Copy link

strange, im changelog.md file bei mir am raspy steht schon ver 1.98 drinnen, im Hoymileszeroexport_config.ini file steht 1.97

hast du vergessen das nachzuziehen?

LG

@keinprofi
Copy link

die Installation von packaging funktioniert immer noch nicht

@kthemall
Copy link

die Installation von packaging funktioniert immer noch nicht

pip install packaging --break-system-packages

was bringt der befehl für ne meldung? bzw. mal mit sudo versucht?

@keinprofi
Copy link

Kommt das:
grafik

@kthemall
Copy link

m

Kommt das: grafik

versuch mal "sudo pip install packaging --break-system-packages"

@keinprofi
Copy link

grafik

@kthemall
Copy link

passt doch

@keinprofi
Copy link

Nicht wirklich:
Fehler.txt

@kthemall
Copy link

raspy reboot schon versucht?

@keinprofi
Copy link

Die ganze Maschine noch nicht... Mach ich mal eben.

@reserve85
Copy link
Owner Author

klar gehts @keinprofi
bei dir passt nur die config jetzt nicht (no DTU fehler...)

@kthemall
Copy link

btw. mach dir gleich eine HoymilesZeroExport_Config_Override.ini und trag dort deine individuellen settings ein sonst ist beim nächsten update wieder alles neu in der standard config einzutragen. ......

lg

@keinprofi
Copy link

klar gehts @keinprofi bei dir passt nur die config jetzt nicht (no DTU fehler...)

ja, hatte alles wieder zurückgesetzt. Jetzt kann ich die config nicht mehr kopieren, ging vorhin noch.
grafik

@kthemall
Copy link

klar gehts @keinprofi bei dir passt nur die config jetzt nicht (no DTU fehler...)

ja, hatte alles wieder zurückgesetzt. Jetzt kann ich die config nicht mehr kopieren, ging vorhin noch. grafik

hast doch rebootet oder, da musst dich neu anmelden denke ich um zu kopieren.

@keinprofi
Copy link

keinprofi commented Aug 23, 2024

Ja, hatte ich getan. Das Kopieren hat jetzt geklappt, reboote erneut.

Edit:
Es läuft!
Mal wieder ein super großes DANKE an euch!

@reserve85
Copy link
Owner Author

strange, im changelog.md file bei mir am raspy steht schon ver 1.98 drinnen, im Hoymileszeroexport_config.ini file steht 1.97

hast du vergessen das nachzuziehen?

LG

ne, da gab es keine Änderung zu 1.98, dann steht da noch die vorherige Version drin.

@NewSmokie
Copy link

Guten Morgen zusammen,
Ich bin neu komplett in diesem Thema habe aber ein Problem mit dem Script.
Meine Hardware ist

OpenDTU on battery
PI 3 und das Script drauf
Hoymiles 2000W
2x 550w Panels

Habe auch einen PC mit HOAS aber da habe ich es nicht hinbekommen den Script draufzuspielen.

Mein Problem ist ich sehe im Script das er regeln will aber 5 sec später wieder die 1500w abfragt.

@reserve85
Copy link
Owner Author

Ich glaube mit OpenDTU on battery wird das nicht funktionieren, das hat seine eigene Regelung. Vermutlich läuft da was schief. Ansonsten könntest du mal einen Auszug aus dem log hier posten.

@NewSmokie
Copy link

NewSmokie commented Sep 8, 2024

Hi danke für die rasche beantwortung , habe es leider jetzt erst geschafft OpenDTU neu aufzuspielen OpenDTU mit der v 24.4.24 habe ich nun drauf aber leider immer noch den gleichen fehler. Hier meinen parameter:

 Number of Inverters
INVERTER_COUNT = 1
# max difference in percent between SetpointLimit change to approximate the power to new setpoint
SLOW_APPROX_LIMIT_IN_PERCENT = 25
# if slow approximation: additional limit based on the limit-difference to "smoot the curve": newLimitSe>
SLOW_APPROX_FACTOR_IN_PERCENT = 20
# interval time for setting limit to Hoymiles
LOOP_INTERVAL_IN_SECONDS = 10
# Timeout time to wait for Acknowledge after sending limit to Hoymiles Inverter
SET_LIMIT_TIMEOUT_SECONDS = 3
# polling interval for powermeter (must be <= LOOP_INTERVAL_IN_SECONDS)
POLL_INTERVAL_IN_SECONDS = 1
# if your powermeter exceeds POWERMETER_MAX_POINT: immediatelly set the limit to predefined percent of H>
# value = 0 disables the feature. Values are possible from [0 to 100]
ON_GRID_USAGE_JUMP_TO_LIMIT_PERCENT = 0
# if your powermeter falls below POWERMETER_MIN_POINT: immediatelly decrease the limit
ON_GRID_FEED_FAST_LIMIT_DECREASE = true
# max difference between Limit and real output power in % of HOY_MAX_WATT (100 = disabled)
MAX_DIFFERENCE_BETWEEN_LIMIT_AND_OUTPUTPOWER = 15
# enable logging to file
ENABLE_LOG_TO_FILE = false
# how many logfiles you wish to keep
LOG_BACKUP_COUNT = 30
# defines how often the Inverter Power Status will be set, set it to "-1" for disabled (infinite repeat)
SET_POWERSTATUS_CNT = -1
# log the inverter temperature
LOG_TEMPERATURE = false
# delay time after turning the inverter off or on
SET_POWER_STATUS_DELAY_IN_SECONDS = 10
# define if you want to set your inverter to min-limit when your powermeter can't be read out
SET_INVERTER_TO_MIN_ON_POWERMETER_ERROR = false
# Total number of retries to allow.
MAX_RETRIES = 3
# A set of integer HTTP status codes that we should force a retry on. Don´t change unless you know what >
RETRY_STATUS_CODES = 500,502,503,504
# It allows you to change how long the process will sleep between failed requests. The algorithm is as f>
RETRY_BACKOFF_FACTOR = 0.1

[CONTROL]
# --- global defines for control behaviour ---
# POWERMETER_TARGET_POINT is the target power for powermeter in watts
POWERMETER_TARGET_POINT = -20
# POWERMETER_TOLERANCE is the tolerance (pos and neg) around the target point. in this range no adjustme>
POWERMETER_TOLERANCE = 5
# POWERMETER_MAX_POINT is the maximum power of your powermeter for the normal "regulation loop".
# if your powermeter jumps over this point, the limit will be increased instantly. it is like a "super h>
# if you defined ON_GRID_USAGE_JUMP_TO_LIMIT_PERCENT > 0, then the limit will jump to the defined percen>
POWERMETER_MAX_POINT = 0
# POWERMETER_MIN_POINT is the minimum power of your powermeter for the normal "regulation loop".
# if your powermeter jumps under this point, the limit will be reduced instantly. it is like a "super hi>
POWERMETER_MIN_POINT = -600

 List of INVERTERS, based on COMMON/COUNT
[INVERTER_1]
# serial number of your inverter, if empty it is automatically read out of the API. If you have more than one inverter you should define the serial number here (prevents mix-up).
SERIAL_NUMBER = xxx
# enable (true) / disable (false) this inverter
ENABLED = true
# manufacturer power rating of your inverter.
HOY_INVERTER_WATT = 2000
# max. power output of your inverter (e.g. if you have a 1500W Inverter and you only want to output max. 1000W)
HOY_MAX_WATT = 2000
# minimum limit in percent, e.g. 5% of your inverter power rating
HOY_MIN_WATT_IN_PERCENT = 5
# factor to multiply before set Limit. Some Inverters have some offsets, with that factor you can compensate it. Default = 1
HOY_COMPENSATE_WATT_FACTOR = 1
# battery powered?
HOY_BATTERY_MODE = false

hier der status log:
Sep 08 20:13:57 pi python3[1698]: 2024-09-08 20:13:57 INFO OpenDTU: Inverter "Waldsiedlung " reachable: True
Sep 08 20:13:57 pi python3[1698]: 2024-09-08 20:13:57 INFO powermeter Shelly3EMPro: 184 Watt
Sep 08 20:13:57 pi python3[1698]: 2024-09-08 20:13:57 INFO Inverterlimit was already accepted at 1500 Watt
Sep 08 20:14:17 pi python3[1698]: 2024-09-08 20:14:17 INFO OpenDTU: Inverter "Waldsiedlung " reachable: True
Sep 08 20:14:17 pi python3[1698]: 2024-09-08 20:14:17 INFO powermeter Shelly3EMPro: 289 Watt
Sep 08 20:14:17 pi python3[1698]: 2024-09-08 20:14:17 INFO Inverterlimit was already accepted at 1500 Watt
Sep 08 20:14:37 pi python3[1698]: 2024-09-08 20:14:37 INFO OpenDTU: Inverter "Waldsiedlung " reachable: True
Sep 08 20:14:38 pi python3[1698]: 2024-09-08 20:14:38 INFO powermeter Shelly3EMPro: 174 Watt
Sep 08 20:14:38 pi python3[1698]: 2024-09-08 20:14:38 INFO Inverterlimit was already accepted at 1500 Watt
Sep 08 20:14:58 pi python3[1698]: 2024-09-08 20:14:58 INFO OpenDTU: Inverter "Waldsiedlung " reachable: True
Sep 08 20:14:58 pi python3[1698]: 2024-09-08 20:14:58 INFO powermeter Shelly3EMPro: 176 Watt
Sep 08 20:14:58 pi python3[1698]: 2024-09-08 20:14:58 INFO Inverterlimit was already accepted at 1500 Watt
Sep 08 20:15:18 pi python3[1698]: 2024-09-08 20:15:18 INFO OpenDTU: Inverter "Waldsiedlung " reachable: True
Sep 08 20:15:18 pi python3[1698]: 2024-09-08 20:15:18 INFO powermeter Shelly3EMPro: 176 Watt
Sep 08 20:15:18 pi python3[1698]: 2024-09-08 20:15:18 INFO Inverterlimit was already accepted at 1500 Watt
Sep 08 20:15:38 pi python3[1698]: 2024-09-08 20:15:38 INFO OpenDTU: Inverter "Waldsiedlung " reachable: True
Sep 08 20:15:38 pi python3[1698]: 2024-09-08 20:15:38 INFO powermeter Shelly3EMPro: 176 Watt
Sep 08 20:15:38 pi python3[1698]: 2024-09-08 20:15:38 INFO Inverterlimit was already accepted at 1500 Watt
Sep 08 20:15:58 pi python3[1698]: 2024-09-08 20:15:58 INFO OpenDTU: Inverter "Waldsiedlung " reachable: True
Sep 08 20:15:58 pi python3[1698]: 2024-09-08 20:15:58 INFO powermeter Shelly3EMPro: 199 Watt
Sep 08 20:15:58 pi python3[1698]: 2024-09-08 20:15:58 INFO Inverterlimit was already accepted at 1500 Watt
Sep 08 20:16:18 pi python3[1698]: 2024-09-08 20:16:18 INFO OpenDTU: Inverter "Waldsiedlung " reachable: True
Sep 08 20:16:18 pi python3[1698]: 2024-09-08 20:16:18 INFO powermeter Shelly3EMPro: 175 Watt
Sep 08 20:16:18 pi python3[1698]: 2024-09-08 20:16:18 INFO Inverterlimit was already accepted at 1500 Watt
Sep 08 20:16:39 pi python3[1698]: 2024-09-08 20:16:39 INFO OpenDTU: Inverter "Waldsiedlung " reachable: True
Sep 08 20:16:39 pi python3[1698]: 2024-09-08 20:16:39 INFO powermeter Shelly3EMPro: 174 Watt
Sep 08 20:16:39 pi python3[1698]: 2024-09-08 20:16:39 INFO Inverterlimit was already accepted at 1500 Watt
Sep 08 20:16:59 pi python3[1698]: 2024-09-08 20:16:59 INFO OpenDTU: Inverter "Waldsiedlung " reachable: True
Sep 08 20:16:59 pi python3[1698]: 2024-09-08 20:16:59 INFO powermeter Shelly3EMPro: 175 Watt
Sep 08 20:16:59 pi python3[1698]: 2024-09-08 20:16:59 INFO Inverterlimit was already accepted at 1500 Watt
Sep 08 20:17:19 pi python3[1698]: 2024-09-08 20:17:19 INFO OpenDTU: Inverter "Waldsiedlung " reachable: True
Sep 08 20:17:19 pi python3[1698]: 2024-09-08 20:17:19 INFO powermeter Shelly3EMPro: 185 Watt
Sep 08 20:17:19 pi python3[1698]: 2024-09-08 20:17:19 INFO Inverterlimit was already accepted at 1500 Watt
Sep 08 20:17:39 pi python3[1698]: 2024-09-08 20:17:39 INFO OpenDTU: Inverter "Waldsiedlung " reachable: True
Sep 08 20:17:39 pi python3[1698]: 2024-09-08 20:17:39 INFO powermeter Shelly3EMPro: 259 Watt
Sep 08 20:17:39 pi python3[1698]: 2024-09-08 20:17:39 INFO Inverterlimit was already accepted at 1500 Watt
Sep 08 20:17:59 pi python3[1698]: 2024-09-08 20:17:59 INFO OpenDTU: Inverter "Waldsiedlung " reachable: True
Sep 08 20:17:59 pi python3[1698]: 2024-09-08 20:17:59 INFO powermeter Shelly3EMPro: 247 Watt
Sep 08 20:17:59 pi python3[1698]: 2024-09-08 20:17:59 INFO Inverterlimit was already accepted at 1500 Watt
Sep 08 20:18:19 pi python3[1698]: 2024-09-08 20:18:19 INFO OpenDTU: Inverter "Waldsiedlung " reachable: True
Sep 08 20:18:20 pi python3[1698]: 2024-09-08 20:18:20 INFO powermeter Shelly3EMPro: 248 Watt
Sep 08 20:18:20 pi python3[1698]: 2024-09-08 20:18:20 INFO Inverterlimit was already accepted at 1500 Watt
Sep 08 20:18:40 pi python3[1698]: 2024-09-08 20:18:40 INFO OpenDTU: Inverter "Waldsiedlung " reachable: True
Sep 08 20:18:40 pi python3[1698]: 2024-09-08 20:18:40 INFO powermeter Shelly3EMPro: 240 Watt
Sep 08 20:18:40 pi python3[1698]: 2024-09-08 20:18:40 INFO Inverterlimit was already accepted at 1500 Watt
Sep 08 20:19:00 pi python3[1698]: 2024-09-08 20:19:00 INFO OpenDTU: Inverter "Waldsiedlung " reachable: False
Sep 08 20:19:20 pi python3[1698]: 2024-09-08 20:19:20 INFO OpenDTU: Inverter "Waldsiedlung " reachable: True

@reserve85
Copy link
Owner Author

Hi, wo kommen die 1500W her obwohl du 2000 definierst hast? Kannst du mal das Script neustarten und die ersten log Ausgaben hier anhängen? Vermute da ist was an der config falsch. Nutzt du die override config? Evtl wird die nicht gezogen? Am besten beide configs mal in eine zip packen und hier anhängen. Du kannst natürlich die Seriennummer entfernen.

@NewSmokie
Copy link

08 21:51:43 pi systemd[1]: Started HoymilesZeroExport.service - HoymilesZeroExport Service.
Sep 08 21:51:47 pi python3[871]: 2024-09-08 21:51:47 INFO Log write to file: False
Sep 08 21:51:47 pi python3[871]: 2024-09-08 21:51:47 INFO Python Version: 3.11.2 (main, Aug 26 2024, 07:20:54) [GCC 12.2.0]
Sep 08 21:51:47 pi python3[871]: 2024-09-08 21:51:47 INFO Author: Tobias Kraft / Script Version: 1.101
Sep 08 21:51:47 pi python3[871]: 2024-09-08 21:51:47 INFO read config file: /home/test/HoymilesZeroExport/HoymilesZeroExport/HoymilesZeroExport_Config.ini
Sep 08 21:51:47 pi python3[871]: 2024-09-08 21:51:47 INFO read additional config file: /home/test/HoymilesZeroExport/HoymilesZeroExport/HoymilesZeroExport_Config_Override.ini
Sep 08 21:51:47 pi python3[871]: 2024-09-08 21:51:47 INFO Config file V 1.97
Sep 08 21:51:47 pi python3[871]: 2024-09-08 21:51:47 INFO ---Init---
Sep 08 21:51:48 pi python3[871]: 2024-09-08 21:51:48 INFO OpenDTU: Current Version: v24.4.24
Sep 08 21:51:48 pi python3[871]: 2024-09-08 21:51:48 INFO OpenDTU: Inverter "yet unknown" reachable: False
Sep 08 21:51:48 pi python3[871]: 2024-09-08 21:51:48 INFO powermeter Shelly3EMPro: 648 Watt
Sep 08 21:51:48 pi python3[871]: 2024-09-08 21:51:48 INFO ---Start Zero Export---
Sep 08 21:51:48 pi python3[871]: 2024-09-08 21:51:48 INFO OpenDTU: Inverter "yet unknown" reachable: False
Sep 08 21:53:08 pi python3[871]: 2024-09-08 21:53:08 INFO OpenDTU: Inverter "yet unknown" reachable: False
Sep 08 21:53:28 pi python3[871]: 2024-09-08 21:53:28 INFO OpenDTU: Inverter "yet unknown" reachable: False

@reserve85
Copy link
Owner Author

Sieht alles ok aus, deine Parameter stehen auch in der override config? Am besten beide Dateien mir zukommen lassen, dann kann ich es anschauen

@reserve85
Copy link
Owner Author

Moin, ich habe es mit deiner config gerade mal gestartet und der regelt bei mir problemlos auf 2000W.
Ich habe dennoch deine Einstellungen aus der HoymilesZeroExport_Config.ini mal in die Override.ini verschoben, das ist übersichtlicher. Also am besten die beiden Dateien mit denen aus meinem Anhang ersetzen und das Script dann neu starten.

HoymilesZeroExport_Config_NewSmokie.zip

Nach dem Neustart des Scripts bitte nach ein paar Minuten das komplette Log nochmal als Datei anhängen. Das kannst du so exportieren:

sudo journalctl -u HoymilesZeroExport.service -n 20000 -e > logfile.txt

@NewSmokie
Copy link

Hi ich bin in dieser Woche leider in Oldenburg auf Schulung werde es Freitag umsetzen wenn ich wieder in Aachen bin

@NewSmokie
Copy link

Guten Morgen, sorry für die Verspätung. Habe den Script rüber kopiert und es funktioniert jetzt einwandfrei.

Vielen Dank dafür.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests