ahoy icon indicating copy to clipboard operation
ahoy copied to clipboard

Retain Flag Homeassistant

Open slg60 opened this issue 10 months ago • 19 comments

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?

slg60 avatar Apr 10 '24 10:04 slg60

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 😉

knickohr avatar Apr 10 '24 11:04 knickohr

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 avatar Apr 10 '24 11:04 slg60

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

slg60 avatar Apr 10 '24 11:04 slg60

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

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

knickohr avatar Apr 10 '24 11:04 knickohr

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 avatar Apr 10 '24 11:04 slg60

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.

slg60 avatar Apr 10 '24 12:04 slg60

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.

knickohr avatar Apr 10 '24 19:04 knickohr

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.

slg60 avatar Apr 10 '24 19:04 slg60

Vielleicht hilft das ?

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

knickohr avatar Apr 10 '24 19:04 knickohr

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

slg60 avatar Apr 10 '24 20:04 slg60

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...

slg60 avatar Apr 11 '24 07:04 slg60

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

lumapu avatar Apr 11 '24 18:04 lumapu

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 🤪

knickohr avatar Apr 11 '24 18:04 knickohr

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.

slg60 avatar Apr 11 '24 19:04 slg60

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

lumapu avatar Apr 11 '24 19:04 lumapu

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.

slg60 avatar Apr 11 '24 19:04 slg60

ok, bleibt spannend

lumapu avatar Apr 11 '24 19:04 lumapu

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...

slg60 avatar Apr 12 '24 08:04 slg60

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)

cgatnet avatar Aug 30 '24 14:08 cgatnet