lumapu / ahoy

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

Retain Flag Homeassistant #1582

Open slg60 opened 7 months ago

slg60 commented 7 months ago

Bin gerade dabei AHOY v 0.8.106 via MQTT in Homeassistant einzubinden. Das klappt soweit, bis auf TotalYieldDay und TotalYieldTotal. Die Sensoren ändern ihre Werte nur beim Neustart und auch nur das eine mal. Nach meiner Recherche hat das mit dem Retain Flag zu tun was bei den Topics ja gesetzt ist. Da kommt HA wohl nicht mit klar. Das lässt sich aber auch nicht konfigurieren in der AHOY.

Ist das bekannt? Gibt es Lösungen dafür?

knickohr commented 7 months ago

Das mußte ja kommen ! Ihr mit eurem HA. Vielleicht sollte HA erst mal so programmiert werden das es den Sinn und Zweck von MQTT versteht. MQTT ist ein Push-Sevice bei dem neue Werte erst ausgegeben werden wenn sie sich auch ändern, nicht vorher und auch nicht regelmäßig.

Sorry, kein persönlich Angriff an Dich, slg60, aber in der Community kommen fast täglich Probleme mit HA und vor allem wie man MQTT dazu vergewaltigtes, alle x Sekunden alte Werte wieder neu aufzuwärmen.

Tschuldidung, mußte das mal los werden 😇

Was natürlich sein kann, das diese beiden Werte tatsächlich nur einmal kommen. Wir hatten schonmal einen ähnlichen Bug. Das hat aber nichts mit retained zu tun. Aber da hätten schon mehrere User aufgeschrien 😉

slg60 commented 7 months ago

Naja, die Werte für YieldDay und Total ändern sich andauernd, aber in HA werden sie nicht aktualisiert, vermutlich aufgrund des retain flags. Im Shelly 3em kann man das retain z.b deaktivieren, in Ahoy nicht. Werte wo das Retain nicht gesetzt ist kommen immer sauber bei Änderung rein im HA.

slg60 commented 7 months ago

In MQTT Explorer ist alles schick, da ändern sich die Werte brav...

knickohr commented 7 months ago

Dann würde ich das Problem mal im HA anpacken 😉

Du weißt was retained bedeutet ? https://blog.doubleslash.de/mqtt-fuer-dummies

slg60 commented 7 months ago

Ja, lesen und verstehen kann ich... As you already know, an MQTT retained message is a PUBLISH packet with the retain flag = 1 . This flag tells the broker to store the message for a topic and ensures any new client subscribing to that topic will receive the stored message.

slg60 commented 7 months ago

Ich frage mich nur, warum ich in allen mir bekannten MQTT fähigen Geräten das retain abschalten kann? Scheint ja schon seine Berechtigung zu haben.

Evtl liegt es auch am Broker, da nutze ich nämlich den CCU-Jack auf meiner Homematic. Ich versteh nur nicht warum sich die Power Werte stetig ändern aber die Total werte nicht. Der einzige Unterschied ist das retain flag.

knickohr commented 7 months ago

Die Total ändern sich natürlich nur wenn es eine Änderung im Wert gibt. Das kann je nach Inverter und Leistung schon eine ganze Weile dauern.

slg60 commented 7 months ago

Der Wert ändert sich bei 3,2kwp bei einem Tag wie heute quasi andauernd, dennoch kommen die Werte nicht im HA an! Man kann das ja im MQTT Explorer ganz einfach gegenchecken.

knickohr commented 7 months ago

Vielleicht hilft das ?

https://github.com/tbnobody/OpenDTU/discussions/1849

slg60 commented 7 months ago

Ne da war ich auch schon drauf gestoßen....

slg60 commented 7 months ago

Das liegt am Retain Flag.... Habe mir jetzt nochmal händisch einen MQTT Sensor in der Yaml erzeugt. Wenn ich händisch werte da hin schicke, dann kommen die sofort im HA an. Retain flag nicht gesetzt. Heute morgen hat die DTU wieder angefangen daten zu senden. Werte kommen im HA nicht an. Retain flag gesetzt. Ob das nun ein Bug im HA ist weiß ich nicht, es würde sich aber umgehen lassen wenn man retain in der DTU deaktivieren könnte...

lumapu commented 7 months ago

wenn würde aber das Retain-Flag global abgeschaltet werden, kann ich einbauen, ist nur ein boolean

knickohr commented 7 months ago

Das soll aber bitte jetzt nicht heißen das dann ALLE Topics entweder retained oder nicht sind 😵

Denn die andere Hälfte der HA-Fraktion möchte genau dieses Flag um nicht Nachts „entity is not available“ zu bekommen 🤪

slg60 commented 7 months ago

Leute, ihr kennt euch sicherlich besser aus als ich und ich möchte nicht, dass jetzt etwas eingebaut wird was keinen Sinn ergibt. Ich sehe es nur konfiguriebar im shelly 3em. Des Weiteren bin ich mir nicht sicher ob das wirklich das Problem ist. Das Problem kann auch an CCU-Jack liegen.

lumapu commented 7 months ago

der neue enable / disable schaltet das retain flag nur komplett aus, wenn es gesetzt ist, aber schaltet es nie zusätzlich ein.

slg60 commented 7 months ago

Ich habe jetzt mal die Ahoy direkt an den internen Mosquitto Broker angebunden. Mal sehen ob sich das auch fehlerhaft verhält. Morgen früh weiß ich mehr.

lumapu commented 7 months ago

ok, bleibt spannend

slg60 commented 7 months ago

Das Problem scheint im CCU Jack angesiedelt zu sein. Mit Mosquitto als Broker läuft alles wie gewünscht. Ich denke es ist dennoch gut das man das retained jetzt konfigurieren kann. Issue im Projekt CCU-Jack ist platziert. Scheine mit dem Problem auch nicht alleine zu sein...

cgatnet commented 2 months ago

Ergänzend: Info: Heads Up: Man sollte beachten, dass, wenn man damit rumspielt (is ja ein Häkchen, was macht man damit? :o) und es "abhakt" (disabled), dann bleibt der letzte Wert der "Retained Topics" in Mosquitto (oder anderen Brokern) erhalten. Dies kann zu rätselhaften Phänomenen führen... Daher: immer schön gesetzt lassen, wenn man sich damit nicht so gut auskennt! ;o)

stefan123t commented 2 weeks ago

@cgatnet sollen wir einen modalen Dialog dazwischen / danach schalten ? Wenn man es deaktivieren will, kommt dann eine Warnung: "Willst Du das wirklich deaktivieren, das ist potentiell gefährlich. Ja / Nein".

cgatnet commented 2 weeks ago

@cgatnet sollen wir einen modalen Dialog dazwischen / danach schalten ? Wenn man es deaktivieren will, kommt dann eine Warnung: "Willst Du das wirklich deaktivieren, das ist potentiell gefährlich. Ja / Nein".

Entweder das, oder: evtl. reicht es schon die Warnung in die Hilfe aufzunehmen oder „neben das Häkchen“ zu schreiben? 🤔