Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Homeassistant Entitäten werden nicht aktualisiert #174

Closed
slg60 opened this issue Apr 11, 2024 · 15 comments
Closed

Homeassistant Entitäten werden nicht aktualisiert #174

slg60 opened this issue Apr 11, 2024 · 15 comments
Labels
bug Something isn't working
Milestone

Comments

@slg60
Copy link

slg60 commented Apr 11, 2024

Versuche den CCU Jack auf meiner Raspimatic auch für Homeassistant zu nutzen.
Mit der in HA bereitgestellten MQTT Integration funktioniert das auch soweit.
Die Daten werden von einer AHOY DTU zur Verfügung gestellt.
Es gibt Daten die werden in HA aktualisiert, es gibt aber welche, wie z.B Yield/Total werte, die werden nur nach einem Neustart ein mal in HA aktualisiert oder wenn man das Topic manuell über die Integration abonniert. Auch hier werden die Daten nur ein einziges mal zur Verfügung gestellt.
Andere Broker scheinen in HA da keine Probleme zu haben.

Kann sich das jemand erklären?
Das Problem scheint es wohl öfter schon gegeben haben. Die Betroffenen sind dann meist auf einen anderen Broker gewechselt und die Probleme waren weg. Ich würde den Jack aber gerne als einzigen Broker behalten.

Jemand eine Idee?

@slg60
Copy link
Author

slg60 commented Apr 11, 2024

https://community.home-assistant.io/t/mqtt-problem-after-core-update-to-2023-6/595076
Hier ist ganz gut beschrieben was das Problem sein wird. Hat offenbar etwas mit dem Retain Handling zu tun.

Wenn ich in HA versuche den Mosquitto als Bridge für den Jack zu nutzen, dann bekomme ich das hier

mosquitto version 2.0.18 running
2024-04-11 15:54:33: Connection Refused: unacceptable protocol version
2024-04-11 15:54:33: Client local.core-mosquitto.bridge-01 closed its connection.
2024-04-11 15:54:33: New connection from 127.0.0.1:48084 on port 1883.
2024-04-11 15:54:33: Client disconnected due to protocol error.

Irgendwas passt HA mit dem MQTT Protocol in CCU Jack nicht

Hier das Log vom Jack
image
Kann hier jemand unterstützen?

@mdzio mdzio added the question Further information is requested label Apr 11, 2024
@slg60
Copy link
Author

slg60 commented Apr 12, 2024

Ich nutze jetzt den internen Mosquitto Broker und den Jack als Bridge, das Läuft! Der Mosquitto funktioniert einwandfrei und die Werte kommen zyklisch rein. Hier liegt irgend eine Inkompatibilität vom Jack zum HA vor. Evtl. schaut sich das mal jemand an, denn ich könnte mir vorstellen, dass auf dieses Problem mehrere Leute stoßen werden.

@slg60 slg60 changed the title Homeassistant Topics werden nicht aktualisiert Homeassistant Entitäten werden nicht aktualisiert Apr 12, 2024
@wolwin
Copy link

wolwin commented Apr 12, 2024

Arbeite ebenfalls gerade an einer Home Assistant Integration - bei der MQTT Umsetzung kann ich bestätigen, dass der CCU-Jack bei gesetztem Retained Flag mit HA nicht korrekt zusammenarbeitet.

Folgende Test-Stellung:

  • HA 2024.3.3
  • CCU-Jack 2.9.0
  • MQTT-Geräte: EMS-ESP (3.5.1), AI on the edge (15.6.0), eigenes MQTT-Gerät
  • MQTT-Explorer
  1. alle Geräte sind mit dem CCU-Jack verbunden - das Retained Flag ist gesetzt
  • der 'homeassistant' Ordner wird mit allen Topics automatisch von EMS-ESP / AI auf dem CCU-Jack Broker angelegt
  • lediglich wenn HA neu startet, werden einmalig alle MQTT-Werte der Geräte übertragen (retained eben ...)
  • danach findet keine Aktualisierung auf der HA Seite mehr statt, obwohl im MQTT-Explorer, der mit dem CCU-Jack verbunden ist, die Änderungen MQTT-Topics sichtbar sind
  1. alle Geräte sind mit dem CCU-Jack verbunden - das Retained Flag ist nicht gesetzt
  • der 'homeassistant' Ordner wird mit den Topics von EMS-ESP / AI angelegt, die übertragen (aktualisiert) werden (?)
  • wenn HA neu startet, werden die jeweils aktualisierten MQTT-Werte der Geräte übertragen - immer - alle ...
  • alle MQTT Aktualisierungen funktionieren
  1. alle Geräte sind mit einem externen Mosquitto Broker (Debian 12) verbunden - das Retained Flag ist gesetzt
  • der 'homeassistant' Ordner wird mit allen Topics automatisch von EMS-ESP / AI angelegt
  • wenn HA neu startet, werden die jeweils aktualisierten MQTT-Werte der Geräte übertragen - immer - alle ...
  • alle MQTT Aktualisierungen funktionieren

Zusammenfassung
Der vergleichende Test mit dem Mosquitto Broker zeigt, dass sich der CCU-Jack im Zusammenspiel mit HA nicht 'korrekt' verhält - ich würde auf einen Protokollfehler im Zusammenhang mit dem Retained Flag tippen - aber wo genau der Fehler liegt (CCU-Jack oder HA), kann ich nicht sagen.

Trotzdem würde ich die Meldung gerne als 'issue' sehen (... und nicht als 'question') - Danke!

@mdzio mdzio added bug Something isn't working and removed question Further information is requested labels Apr 12, 2024
@mdzio
Copy link
Owner

mdzio commented Apr 12, 2024

Ist denn in HA die MQTT-Version einstellbar? Der CCU-Jack unterstützt maximal V3.1.1.

@wolwin
Copy link

wolwin commented Apr 12, 2024

Ja, steht aber standardmäßig auf 3.1.1 - eine Änderung auf 3.1 hatte keine (positive) Auswirkung ...

@slg60
Copy link
Author

slg60 commented Apr 12, 2024

Ja da hatte ich auch mit rumgespielt, ohne Erfolg.

@mdzio
Copy link
Owner

mdzio commented Apr 13, 2024

Dann muss ich mal HA bei mir installieren und testen.

Die Fehlermeldungen "Cannot publish to $ topics" kommen dann, wenn ein MQTT-Client (hier die Bridge von Mosquitto) Topics beschreibt, die mit $ anfangen. Dies ist nicht erlaubt. Diese am besten bei der Bridge-Konfiguration (in Mosquitto) ausschließen.

Die Fehlermeldung "Decoding of connect message failed .... unacceptable protocol version" kommt in der Regel, wenn ein Client als erstes MQTT Version 5 ausprobiert. In der Regel wird dann ein zweiter Verbindungsversuch mit MQTT V3.1.1 versucht.

@slg60
Copy link
Author

slg60 commented Apr 13, 2024

Ich muss hier ein bisschen differenzieren. Hier ist etwas Mischung zwischen dem eigentlichen Problem und den ersten Gehversuchen der Einrichtung einer Bridge des Mosquitto am Jack vorhanden. Zu dem Zeitpunkt war mir auch nicht nicht klar das ich offenbar bestimmte Themen zum Abo definieren muss. Ich dachte wenn ich das leer lasse werden einfach alle Themen automatisch abonniert.

@mdzio
Copy link
Owner

mdzio commented Apr 15, 2024

Ich habe zum ersten mal HA installiert und konnte auch die MQTT-Anbindung in Betrieb nehmen. Das Problem kann ich bei mir reproduzieren: Nachrichten mit gesetztem RETAIN werden nicht von HA verarbeitet (getestet mit "Auf ein Topic hören" in HA), in anderen MQTT-Clients werden sie hingegen gezeigt.

Ich habe mal die "Debug-Protokollierung" in HA bei MQTT eingeschaltet. Dort ist aber ersichtlich, dass die Nachrichten mit RETAIN empfangen werden:

[homeassistant.components.mqtt.client] Subscribing to test/#, mid: 33, qos: 0
[homeassistant.components.mqtt.client] Received retained message on test/command (qos=0): b'1'
[homeassistant.components.mqtt.client] Received message on test/command (qos=0): b'0.2'
[homeassistant.components.mqtt.client] Received message on test/command (qos=0): b'0.2'
[homeassistant.components.mqtt.client] Received message on test/command (qos=0): b'0.77'
[homeassistant.components.mqtt.client] Received message on test/command (qos=0): b'0.76'
[homeassistant.components.mqtt.client] Received message on test/command (qos=0): b'0.76'
[homeassistant.components.mqtt.client] Received message on test/command (qos=0): b'0.45'
[homeassistant.components.mqtt.client] Received message on test/command (qos=0): b'0.45'
[homeassistant.components.mqtt.client] Received message on test/command (qos=0): b'0.73'
[homeassistant.components.mqtt.client] Received message on test/command (qos=0): b'0.73'
[homeassistant.components.mqtt.client] Received message on test/command (qos=0): b'0'
[homeassistant.components.mqtt.client] Received retained message on test/command (qos=0): b'0.26'
[homeassistant.components.mqtt.client] Received retained message on test/command (qos=0): b'0.25'
[homeassistant.components.mqtt.client] Received retained message on test/command (qos=0): b'0.49'
[homeassistant.components.mqtt.client] Received retained message on test/command (qos=0): b'0.48'
[homeassistant.components.mqtt.client] Received retained message on test/command (qos=0): b'0.73'
[homeassistant.components.mqtt.client] Received retained message on test/command (qos=0): b'1'
[homeassistant.components.mqtt.client] Unsubscribing from test/#, mid: 34

Das Problem müsste also innerhalb von HA liegen.

Wieso das über Mosquitto mit Bridge dann funktionieren soll, ist für mich derzeit nicht erklärbar. Ich habe da aber auch noch nicht nachgeforscht.

@slg60
Copy link
Author

slg60 commented Apr 15, 2024

Wenn man den Mosquitto auf HA anstatt des Jacks als Broker nutzt dann werden genau diese retained topics vom selben client halt einwandfrei übermittelt. Angeblich soll es mit anderen externen brokern auch gehen. Das habe ich selber aber nicht getestet. Irgendwas muss anders sein beim jack...

@mdzio
Copy link
Owner

mdzio commented Apr 19, 2024

Ich denke, dass ich einen Unterschied gefunden habe: Der CCU-Jack setzt Retain bei jeder gesendeten Nachricht. Andere MQTT-Server senden nur die erste Nachricht nach dem Verbinden eines MQTT-Clients mit gesetztem Retain. Die zweite Nachricht auf das selbe Topic hat Retain nicht mehr gesetzt.
HA ist in der letzten Version wohl etwas intoleranter geworden.
Ich schaue mal nach, ob ich das im eingebetteten MQTT-Server des CCU-Jacks entsprechend anpassen kann.
Langfristig will ich einen MQTT-Server mit V5 Unterstützung einbetteten. Das ist aber aufwändiger.

Ergänzung: Das gewünschte Verhalten bei der Behandlung des Retain-Flags ist in der MQTT-Spezifikation in des Sätzen MQTT-3.3.1-8 und MQTT-3.3.1-9 beschrieben.

@mdzio mdzio closed this as completed in 90c1089 Apr 20, 2024
@mdzio
Copy link
Owner

mdzio commented Apr 20, 2024

Der Fehler wurde im eingebetteten MQTT-Server behoben (siehe mdzio/go-mqtt#1).

@mdzio
Copy link
Owner

mdzio commented Apr 20, 2024

Eine Vorabversion kann hier heruntergelande werden. Bitte mal testen!

@slg60
Copy link
Author

slg60 commented Apr 20, 2024

Klasse, danke fürs fixen. Mir bringt es zwar nichts mehr, aber ich glaube einigen anderen in Zukunft. Werde das in meinem HA Thread zu dem Thema auch noch kommunizieren.

@wolwin
Copy link

wolwin commented May 3, 2024

Danke für den Fix - Habe Vorabversion 2.9.1 mit HA 2024.4.4 und AI on the edge (15.6.0) getestet ... läuft mit gesetztem retained Flag incl. Aktualisierung wie es soll.

@mdzio mdzio added this to the next milestone May 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants