hm-soft / Hoymiles-DTU-Simulation

Simulates a Hoymiles DTU and communicates with Hoymiles micro inverters like HM-600
GNU General Public License v3.0
18 stars 4 forks source link

Sporadisch fehlerhafte Werte (>10000) für Leistung #4

Closed crbble closed 1 year ago

crbble commented 1 year ago

Moin,

danke für das veröffentlichen dieses Projekts, von den vorhandenen DTU Implementierungen ist es die Einfachste und Verständlichste.

Insgesamt funktioniert das Auslesen der Werte super, sehr sporadisch habe ich allerdings Ausreißer bei den Werten für die Gesamleistung oder auch die aktuelle Leistung. Diese passieren einige wenige Male am Tag. Ein Screenshot aus Grafana:

hoymiles_fehler

CHECKCRC ist 1, daher verstehe ich nicht ganz wie diese Fehlmessungen zustande kommen können.

Hat vielleicht jemand eine Idee?

hm-soft commented 1 year ago

Hallo crbble ähnliches konnte ich bei mir bisher nicht feststellen. Ich logge alle 5 Minuten die Daten vom WR, und kein Wert ist (bei meinem HM-600) höher als 612 W bei der aktuellen Leistung. Vllt Zufall, da ja nur alle 5 Minuten. Wie oft holst du die Werte ab? Vllt auch ein Fehler in der Schnittstelle zu Grafana?

crbble commented 1 year ago

Moin, Danke für die schnelle Rückmeldung, dann schaue ich mal auf die ganze Kette. Ich hole aktuell die Daten vom Hoymiles so schnell ab wie ich sie aus der loop() bekomme, das ist etwa alle 3-4 Minuten der Fall. Aufgrund des Channel Hoppings bin ich mir garnicht sicher, wie ich den Zeitraum des Daten-abholens verzögern könnte. Ich habe gesetzt:

define CHANNEL_HOP

define USE_POOR_MAN_CHANNEL_HOPPING_RCV 1

Meine loop() sieht zur Zeit so aus:

poorManChannelHopping(); checkRF24isWorking(); checkHoymilesIsOn(); checkMqtt(); client.loop(); if ((packetBuffer.available() {...} writeMqttInterface(); // Das macht das Gleiche wie das Arduino Interface nur sendet die Daten via MQTT isTime2Send();

crbble commented 1 year ago

Moin, leider habe ich diesen Fehler nicht in den Griff bekommen und habe auf eine andere Implementierung gewechselt.

crbble commented 1 year ago

Kleiner Nachtrag hier. So sieht das Arduino Interface aus (mit grep Pac), wenn der Fehler auftritt, es ist daher kein Problem beim Senden per MQTT:

Pac=69.9 W
Pac=6417.5 W
Pac=97.8 W
Pac=6127.8 W
Pac=86.7 W
Pac=88.3 W
Pac=90.2 W
Pac=6399.1 W
Pac=141.1 W
Pac=129.8 W
Pac=117.2 W
Pac=112.1 W

Ich hatte bislang eine RF24_PA_MAX eingestellt. Bei OpenDTU hatte ich jedoch ebenfalls Probleme im 5s Takt die Werte abzuholen. Hier habe ich das Problem nun gelöst, indem ich eine Sendeleistung von "LOW" eingestellt habe, damit scheint es besser zu sein.