lumapu / ahoy

Various tools, examples, and documentation for communicating with Hoymiles microinverters
https://ahoydtu.de
Other
948 stars 222 forks source link

[Bug] Reset YieldDay at Midnight is broken for Battery Inverters (v0.8.81) #1429

Closed MetaChuh closed 7 months ago

MetaChuh commented 7 months ago

Platform

ESP32

Assembly

I did the assebly by myself

nRF24L01+ Module

nRF24L01+ plus

Antenna

external antenna

Power Stabilization

Elko (~100uF)

Version

0.8.81

Github Hash

bd53280

Build & Flash Method

AhoyDTU Webinstaller

Setup

solar and battery inverters

aktiviert: Werte und Gesamtertrag um Mitternacht zurücksetzen ('Kommunikation während der Nacht pausieren' muss gesetzt sein)

aktiviert: Maximalwerte mitternachts zurücksetzen

Debug Serial Log output

No response

Error description

Reset YieldDay at Midnight funktioniert nicht mehr für batterie Inverter.

die option Werte und Gesamtertrag um Mitternacht zurücksetzen funktioniert nicht mehr im nachtbetrieb. ursache: ('Kommunikation während der Nacht pausieren' muss gesetzt sein) was bei batterie invertern nicht möglich ist.


workflow bisher: 1) inverter wird zu mitternacht via api befehl rebootet, um den inverter eigenen YieldDay wert zurückzusetzen 2) alte ahoydtu version hatte die einstellung `Reset YieldDay at midnight', um ihren eigenen offset zu löschen.

ergebnis (gut): inverter YieldDay und dtu YieldDay sind beide auf 0


problem jetzt mit 0.8.x: 1) inverter wird zu mitternacht via api befehl rebootet, um den inverter eigenen YieldDay wert zurückzusetzen. 2) die option Werte und Gesamtertrag um Mitternacht zurücksetzen ('Kommunikation während der Nacht pausieren' muss gesetzt sein) ist aktiviert. 3) die option Maximalwerte mitternachts zurücksetzen ist aktiviert.

ergebnis (schlecht): dtu YieldDay zählt mit nicht gelöschtem, dtu internen offset, weiter. inverter ist jedoch intern auf YieldDay 0 und kann von allen anderen dtus korrekt dargestellt werden, nur nicht via ahoy 0.8.x.


wunsch: option um YieldDay offset in der dtu komplett zu deaktivieren, und nur die YieldDay raw daten des inverters zurückliefern. (ältere ahoy versionen lieferten auch immer den unbehandelten richtigen wert aus dem inverter)


einziger workaround: ahoydtu mitternachts neu starten. (nur hat man dann maximal 24h uptime und keine langzeitstabilitätskontrolle)

fsck-block commented 7 months ago

In https://github.com/lumapu/ahoy/issues/1350#issuecomment-1888008182 hatte @lumapu mit dem Batterieberieb argumentiert warum Reset YieldDay at Midnight nur bei ausgeschalter Kommunikation möglich sein sollte.

Kniffelliges Thema

MetaChuh commented 7 months ago

In https://github.com/lumapu/ahoy/issues/1350#issuecomment-1888008182 hatte @lumapu mit dem Batterieberieb argumentiert warum Reset YieldDay at Midnight nur bei ausgeschalter Kommunikation möglich sein sollte.

Kniffelliges Thema

einfaches thema, nur man braucht ein batterie setup um dies zu verstehen.

mir reicht es wenn ahoy dtu wieder wie früher die raw yield day werte der inverte zurückliefert, und nicht versucht selbst ein offset zu addieren oder substrahieren.

die raw inverter daten sind steuerungstechnisch wichtig. jede zusätzliche eigenberechneten werte, sollten imho ausschließlich in extra variablen verfügbar sein, aber nicht so wie jetzt die inverterdaten ändern, und nur die geänderten daten an die query übermitteln. sprich: YieldDay lassen wie sie vom inverter kommt, und max. zusätzlich eine YieldDayCalc zur verfügung stellen.

funktioniert mit allen mir bekannten dtu projekten, nur nicht mit ahoy neu. imho wird's seit dem versuch sachen hineinzubauen, die man selbst nicht versteht, nur um es allen recht zu machen, à la "add one - break many" schlimmer.

my 2 cents

lumapu commented 7 months ago

das muss ich einwenden, dass die Yield Korrektur schon echt nervig ist, vor allem wenn in der Dämmerung wechselndes Wetter ist. Der Inverter zeigt hier schlicht das falsche an, das korrigiert Ahoy. In welcher Situation stört dich diese Korrektur, hast du ein Szenario damit wir hier mitdenken können?

Noch ein zusätzliches Feld per MqTT zu übertragen wiederstrebt mir etwas, da ich gerade dabei bin dort bisschen aufzuräumen

lumapu commented 7 months ago

oh sorry, jetzt sehe ich erst, dass oben eingangs die Beschreibung sehr gut ist - hatte nur den letzten Beitrag in meiner vorherigen Antwort betrachtet.

MetaChuh commented 7 months ago

oh sorry, jetzt sehe ich erst, dass oben eingangs die Beschreibung sehr gut ist - hatte nur den letzten Beitrag in meiner vorherigen Antwort betrachtet.

danke dir.

deine änderung in v0.8.82 app.cpp sollte für dieses issue zu 99.9% ausreichen. um mitternacht wissen wir's zu 100%. dann schließe ich dieses issue mit feedback.

removal of commEnabled check:

-   if (iv->commEnabled)
-       continue;  // skip to next inverter

wenn es klappt, fehlt nur noch folgende änderung in lang.json:

{
    "token": "INV_RESET_MIDNIGHT",
-   "en": "Reset values and YieldDay at midnight. ('Pause communication during night' need to be set)",
+   "en": "Reset values and YieldDay at midnight.",
-   "de": "Werte und Gesamtertrag um Mitternacht zurücksetzen ('Kommunikation während der Nacht pausieren' muss gesetzt sein)"
+   "de": "Werte und Gesamtertrag um Mitternacht zurücksetzen"
},

das muss ich einwenden, dass die Yield Korrektur schon echt nervig ist, vor allem wenn in der Dämmerung wechselndes Wetter ist. Der Inverter zeigt hier schlicht das falsche an, das korrigiert Ahoy.

ich verstehe dich.

genau darum der wunsch oben in der issue description: eine option um YieldDay offset berechnung in der dtu komplett zu deaktivieren, und nur die YieldDay raw daten des inverters zurückliefern, und jeder stellt es sich ein wie er es in seinem setup benötigt.

ps: wunsch option ist für mich nicht von priorität, wenn's mit der entfernung vom commEnabled check funktioniert.

mir reicht es, wenn ich mit ahoy kompatibel bleiben kann, die werte stimmen, und dass man nicht dauernd den eigenen code ändern muss, bzw wie andere steuerungen tabellen führen muss, mit welcher dtu art und version man sich in der steuerung wie verhalten muss ... sind code moloche teilweise, wenn man die kompatibilität nicht dropt.

thx & greetings

lumapu commented 7 months ago

100% ?

MetaChuh commented 7 months ago

😄 ja, danke dir 👍🙏

ps: thx auch für's aufräumen der alten issues 👍