reserve85 / HoymilesZeroExport

Zero Export Script for Hoymiles Inverters using AhoyDTU / OpenDTU and Tasmota Smart Meter inferface / Shelly 3EM / SHRDZM / Emlog / ioBroker
GNU General Public License v3.0
135 stars 31 forks source link

Eure Config Parameter? #28

Open reserve85 opened 1 year ago

reserve85 commented 1 year ago

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
Leviathan09 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

@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 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

@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 commented 1 year ago

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 commented 1 year ago

@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 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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: http://xxx.xxx.xxx.xxx/cm?cmnd=status%2010

Herzlichen Dank noch einmal und viele Grüße

feeti1 commented 1 year ago

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

keinprofi commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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

keinprofi commented 1 year ago

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 commented 1 year ago

@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 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

Gute Idee. Ich werde mich da mal dran machen.

Danke!

keinprofi commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

Meine Ergebnisse stammen auch von ChatGPT... :-D img_1041

reserve85 commented 1 year ago

Also ob das so funktioniert kann ich dir nicht sagen, ich kenn das so nicht. Bin leider auch nicht zu Hause sonst würde ich es mal schnell eintippen. Jedenfalls: du musst das Script trotzdem neu starten, die Config wird nur ein mal geladen (beim Starten des Scripts).

keinprofi commented 1 year ago

Bin selbst erst spät zu Hause heute...

Zynus commented 1 year ago

Hallo zusammen, hat von euch er Erfahrung mit einem HM an einem 24V Akku, der nur Nachts an ist. Nachts schwankt der Strombedarf nicht so stark, maximal schaltet der Kühlschrank oder die Gefriertruhe ein, die dann für 10/15 min laufen. Da mein Grundbedarf nachts zwischen 130 und 220W schwankt, habe ich das Skript auf 250W begrenzt.

Wie geht ihr mit diesen 2 Parameter um?

reserve85 commented 1 year ago

Das kannst du bei Batteriebetrieb denke ich ausschalten. SLOW_APPROX_LIMIT_IN_PERCENT = 100

Zynus commented 1 year ago

Startet das Skript automatisch nach einem Neustart meines Raspberry?

reserve85 commented 1 year ago

Wenn du es als Service installiert hast (wie hier beschrieben: https://github.com/reserve85/HoymilesZeroExport#linux-installation) dann ja.

keinprofi commented 1 year ago

So, ich denke ich habe das derzeit beste für mich eingestellt. Ich habe 3 WR: 400, 800 und 1500er. Meine Konfig habe ich folgendermaßen angepasst: [COMMON] JUMP_TO_MAX_LIMIT_ON_GRID_USAGE = false

[CONTROL] POWERMETER_TARGET_POINT = -50 POWERMETER_TOLERANCE = 25 POWERMETER_MAX_POINT = 0

Damit speise ich zwischen 400 und 700 Wh pro Tag ein. Ich beziehe (wenn nicht gerade der Herd läuft oder alles gleichzeitig) tagsüber ca. 1 kWh aus dem Netz (wenn ich nicht da bin weniger). Gutes Wetter mal vorausgesetzt.

Beispiel gestern (Klima lief ab Mittag): img_464

Ich rechne damit, dass im August mein Speicher kommt. Dann wird es nochmal spannend.

Aber: seit Montag steigt das Script bis zu zweimal am Tag aus, bleibt einfach stehen. zu unregelmäßigen Zeiten morgens und abends. Ich muss dann neustarten. Hat das von euch auch schon jemand gehabt, bzw. jemand eine Idee warum das passiert? Ich habe an meiner Konfig nichts geändert und der Rest (Influx, ioroker, Grafana etc.) läuft ja stabil weiter. Wenn ich das nicht mitbekomme, dann speise ich natürlich deutlich mehr ein...

reserve85 commented 1 year ago

Hi, ist bei mir noch nie stehen geblieben. Kannst du mir ein Log bereitstellen? Falls du das Logging nicht aktiviert hast kannst du nachträglich kannst du mit dem Terminalbefehl sudo journalctl -u HoymilesZeroExport.service -n 20000 -e das Log ansehen. die Anzahl der Zeilen kannst du auch anpassen (20000)

keinprofi commented 1 year ago

Da ich den Raspi heute früh neu gestartet habe bekomme ich nur das Log ab 8.48 Uhr. Ich werde es mal in der Konfig aktivieren und es Dir schicken wenn es wieder passiert. Heute morgen blieb es gegen halb 7 stehen meine ich. Aber wie gesagt, bisher gibt es kein genaues Muster, nur morgens und abends.

edit: log läuft img_465

delacor commented 1 year ago

Ist bei mir auch noch nie stehen geblieben.. Häuft sich aber irgendwie in letzter Zeit, die Meldungen.. mal sehen..

keinprofi commented 1 year ago

Hier das Log. Ausstieg erfolgte um 17.30 Uhr.

Die Ausfälle des Tasmota (10.10.10.139) vor 17 Uhr habe ich provoziert, da ich mir eine Überwachung des Sensors gebastelt habe. log.txt

reserve85 commented 1 year ago

Poah, ohne Fehlermeldung… das konnte ich noch nie beobachten. Reagiert da der RasPi noch? Oder machst du power reset?

Ich vermute ich muss evtl ein timeout bei den Abfragen mit reinnehmen. Kannst du mal den Tasmota von dem raspi aus über eine längere Zeit anpingen?

keinprofi commented 1 year ago

der Raspi läuft 1a, auch wird alles weitere in der InfluxDB (WR Leistung etc.) weiterhin aufgezeichnet. Wenn der hängt gehe ich mit Control C ganz normal raus und mache ein ./restart.sh im Ordner.

Ja, werde den mal anpingen. Allerdings lief der ja geraume Zeit ohne Probleme. Das ganze hab ich erst seit ein paar Tagen.

Edit: Ich habe derzeit massive Verbindungsabbrüche zum Tasmota. Keine Ahnung warum. Die treten ab Nachmittags auf. Deswegen habe ich mir die Überwachung gebastelt. Lass mich das morgen mal genauer beobachten ob das wirklich nur Nachmittags ist oder ofter und ob ich ein Muster erkennen kann. Vorher macht ein Dauerping wenig Sinn.

reserve85 commented 1 year ago

Version 1.24 stimmt?

keinprofi commented 1 year ago

ja

keinprofi commented 1 year ago

Das Script ist wieder ausgestiegen, diesmal 18.24 Uhr img_478

Der Sensor ist (u.a.) auch um 18.24 Uhr ausgestiegen (wird alle 30 Sekunden gepingt und bei nichterreichen gibts ne Mail): img_477

Wird damit zusammen hängen, oder was meinst du? 17.30 war der auch off: img_479

reserve85 commented 1 year ago

update mal (wenn du irgenddwann zeit hast) auf die neue dev version (1.41) - da habe ich ein timeout für die HTTP Abfragen hinzugefügt. Ich vermute dass die IP zwar erreichbar ist aber einfach keine Antwort zurück kommt und er "unendlich" in der Tasmota-Abfrage hängen bleibt. https://github.com/reserve85/HoymilesZeroExport/tree/dev

edit: kann ich die Unterhaltung irgendwie auslagern?

keinprofi commented 1 year ago

@https://github.com/reserve85/HoymilesZeroExport/issues/28#issuecomment-1562665352

Es wird in Kürze ernst mit meinem Speicher, denn der Versand wurde vorbereitet, sollte in ca. 2 Wochen ankommen.

Ich werde Deine Lösung nehmen, denn das was ich bisher probiert habe funktioniert nicht. Zur Konfig: POWERMETER_TARGET_POINT = 0 nachts ist klar. Aber was mache am Besten mit POWERMETER_MAX_POINT? Ich möchte ja sowohl möglichst viel Batteriestrom selbst nutzen, aber auch möglichst wenig Strom vom Netzbetreiber kaufen. Hat da jemand Erfahrungswerte oder Vorschläge?

reserve85 commented 1 year ago

POWERMETER_MAX_POINT ist ja der Punkt an dem die normale Regelungsschleife unterbrochen wird und "sofort" nachgeregelt wird. Prinzipiell sollte der Punkt nur überschritten werden wenn du einen Verbraucher anschaltest damit halt sofort reagiert wird. Sollte immer nur die Ausnahme darstellen. Ich würde aus dem Bauch raus POWERMETER_TARGET_POINT auf -20, Toleranz auf +20 und POWERMETER_MAX_POINT auf 75 oder 100 setzen.

keinprofi commented 1 year ago

Ich bin etwas "geschockt" von Deiner Antwort. Im Batteriebetrieb will ich möglichst nichts von dem "kostbar gespeicherten Gut" verschenken. Und der Meinung warst Du auch schon: img_906

Es macht ja halt nur keinen Sinn TargetPoint und Toleranz beides auf 0 zu stellen.

Und bei -75 oder -100 verschenke ich dann die ganze Nacht kostbaren Batteriestrom. Bei 10 Stunden verschenke ich immerhin 1kW, dann macht der Speicher wenig Sinn.

reserve85 commented 1 year ago

ja probiere es einfach aus, muss jeder selbst wissen. Ich finde targetpoint = -20 ist ja nicht viel oder? Wenn du ihn auf 0 setzt und die Toleranz auf 20 lässt, dann kann es auch sein dass du eben "einkaufst" weil es halt um die 0 herumpendelt (+-20).

Wie auch immer, du musst "Jump to max limit" ausschalten und ich würde einfach 75 bis 100W dazu addieren und da dann den POWERMETER_MAX_POINT setzen.

keinprofi commented 1 year ago

Ja -20 und 20 klingt nicht so unvernünftig. Ich werde mich da wohl vorsichtig rantasten müssen. Danke!

feeti1 commented 1 year ago

Hallo,

also bei mir läuft das jetzt schon 2 Monate im 🔋 Betrieb. Meine Config steht jetzt seit längerem 0 mit Toleranz 20. Damit wird die Null ganz gut gehalten, solange niemand Zuhause ist. Sobald meine Familie anwesend ist, fangen die Werte deutlich an zu schwanken. In der Regel kommen häufige Wechsel um +-100Watt zustande. Dafür ist die Regelung wahrscheinlich nicht schnell genug. Ich sehe das als Systemgrenze und nicht als Fehler. Allerdings ist bei mir gestern das Script einmal ausgestiegen. Das ist mir nur aufgefallen, das ich immer wieder Mal in die Werte schaue. Da waren meine Batterien (AGM) schon unter meiner Abschaltschwelle. Da ich nicht Zuhause war, könnte ich das Log nicht sichern. Habe aus der Ferne nur den Server neu gestartet. Dann lief wieder alles.

mfg Dirk

19.06.2023 13:02:04 keinprofi @.***>:

Ja -20 und 20 klingt nicht so unvernünftig. Ich werde mich da wohl vorsichtig rantasten müssen. Danke!

— Reply to this email directly, view it on GitHub[https://github.com/reserve85/HoymilesZeroExport/issues/28#issuecomment-1596975735], or unsubscribe[https://github.com/notifications/unsubscribe-auth/A67YNLM3ERQDAYV7ED53ALDXMAWSVANCNFSM6AAAAAAWNTX2CE]. You are receiving this because you commented.[Verfolgungsbild][https://github.com/notifications/beacon/A67YNLM6SZMO44B5GRUXBIDXMAWSVA5CNFSM6AAAAAAWNTX2CGWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTS7F7VHO.gif]