FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: Thargor am 24 November 2016, 22:46:13

Titel: [MQTT] - Sesam öffne dich oder: nach reconnect published received
Beitrag von: Thargor am 24 November 2016, 22:46:13
Hallo zusammen,

ich habe hier folgendes Problem in dieser Umgebung:
Raspberry mit FHEM angebunden via MQTT an eine andere FHEM Instanz auf meinem NAS. Mosquitto läuft auch auf dem NAS.
Auf dem Raspberry nutze ich unter anderem GPIOs zum Schalten um ein Garagentor zu steuern und den Status abzufragen. Das klappt auch wunderbar.
Allerdings gibt es einen Effekt, den ich nicht verstehe:

Trenne ich auf dem Raspberry-FHEM den MQTT_Broker mit disconnect und connecte ich mich danach wieder, wird das Garagentor geöffnet :-)
Im Logfile sehe ich:

publish received for raspi/pin16/state/set, on
Pin16, in fileaccess: value 1

Ich interpretiere das so, dass tatsächlich der Befehl über Mosquitto reinkommt, verstehe aber nicht wieso und wie ich das abstellen kann. Wer kann mir helfen?

Momentan führt das unter anderem dazu, dass bei einem Stromausfall sich das Garagentor öffnet, was natürlich nicht Sinn der Sache ist. Ich bin also für jeden Hinweis dankbar.


Titel: Antw:[MQTT] - Sesam öffne dich oder: nach reconnect published received
Beitrag von: Kuzl am 25 November 2016, 07:14:06
Die Meldung wurde mit retain an Mosquitto gesendet. D.h. beim Verbinden bzw. Subscribe wird dem neuen Client der letzte Wert des Topics gesendet.

Lösung: Meldung  raspi/pin16/state/set, on nicht mehr mit retain absetzen.

Viele Grüße,
Kuzl
Titel: Antw:[MQTT] - Sesam öffne dich oder: nach reconnect published received
Beitrag von: Thargor am 25 November 2016, 12:17:13
Zitat von: Kuzl am 25 November 2016, 07:14:06
Die Meldung wurde mit retain an Mosquitto gesendet. D.h. beim Verbinden bzw. Subscribe wird dem neuen Client der letzte Wert des Topics gesendet.
Lösung: Meldung  raspi/pin16/state/set, on nicht mehr mit retain absetzen.

Vielen Dank für die schnelle Antwort!

Ich habe sowohl im Raspi-FHEM also auch im NAS-FHEM das attribut retain auf 0 gesetzt. Und danach auch noch den Wert per MQTT geschickt. Leider wird trotzdem bei einem Reconnect der Wert erneut gesetzt.
Muss man das Attribut retain löschen? Kann man in Mosquitto irgendwie sehen ob das Telegramm mit Retain geschickt wird/wurde?
Titel: Antw:[MQTT] - Sesam öffne dich oder: nach reconnect published received
Beitrag von: Thargor am 25 November 2016, 21:52:38
Nach einem Neustart des Mosquitto Server scheint es jetzt zu funktionieren. Vielen Dank für den Hinweis auf die richtige Spur!
Titel: Antw:[MQTT] - Sesam öffne dich oder: nach reconnect published received
Beitrag von: Kuzl am 28 November 2016, 07:15:41
Ansonsten muss einmalig auf den Topic mit retain ein leerer String gepublisht werden - das löscht den retain (und den Topic) aus dem Server raus.