NEWS
MQTT - gelöschte Datenpunkte
-
Wenn ich Datenpunkte oder Zweige in der Objektübersicht lösche, tauchen diese nach erneutem Senden nicht mehr wieder auf. Was kann ich tun damit diese wieder erscheinen?
-
Bin gerade über das selbe Problem "gestolpert" (bzw hab stundenlang nach dem Fehler gesucht).
Eine Möglichkeit die ich gefunden habe ist das manuelle anlegen des gelöschten Datenpunkts, dann ist dieser auch gleich automatisch mit dem zuletzt gepublishten Wert befüllt.
Wäre aber echt toll wenn man eine automatische neuanlage von gelöschten Datenpunkt sobald diese das erste mal wieder von irgendwo her gepublished werden einstellen könnte.
-
nachdem ich gerade wieder mal auf dieses seltsame Verhalten gestoßen bin, wollte ich mal wieder versuchen zu Fragen:
Wo wird diese scheinbar nur "logische Löschung" (die die "automatische" neu-Anlage verhindert) gespeichert?
Kann man einen MQTT Datenpunkt irgendwie echt / physisch löschen, damit es so wäre als ob der Datenpunkt noch nie angelegt und befüllt worden wäre?
-
das ist ein Problem, das mich leider immer noch quält...
Ich würde gerne "alte" topics aus der IO-Broker Objekte-Struktur löschen können, ohne dass dabei das Feature der automatischen Neu-Anlage, falls ein MQTT-Client dieses topic wieder posten sollte verloren geht.
-
Ich habe auch versehentlich einen Datenpunkt in der Ordnerstruktur gelöscht und dieser wird nicht wieder autom. erstellt, sobald Daten ankommen. Gibt es hierfür keine Lösung bzw. hat sonst niemand dieses Problem?
-
@johannes-bauerstatter Es ist generell so, dass mqtt nur die Datenpunkte anlegt, wo auch was gepublished wird. Das ist ganz normal kein Bug oder sonst was.
Wenn das Gerät, den Datenpunkt published - dann sorgt dafür, dass das das Gerät nochmals macht - ansonsten ist es auch nicht tragisch, da halt dann da sowieso nichts Neues drinsteht.
Wenn das Gerat auf diesen Datenpunkt hört, also subscribed, weil man es darüber steuert, dann muss man den Datenpunkt einfach wieder manuell anlegen bzw. unter diesem Topic selbst was publishen.Das sind keine Fehler - das ist die Arbeitsweise von mqtt. Retain Messages würde ich immer vermeiden, ansonsten existiert für mqtt streng genommen, wenn alle subscriber den DP gelesen haben dieser nicht mehr.
-
@mickym Vielen Dank. Hab jetzt mit MQTT.fx einfach einen Wert auf den Datenpunkt geschickt und er war wieder da. Dieser Datenpunkt wird nicht oft geändert, ist aber in einem Javascript hinterlegt und daher soll alles sauber sein.
-
Sorry, dass ich das hier nochmal aufwärme. Ich hatte jetzt gerade das gleiche Problem, weil ich ein Bluetooth Gateway einen Tag lang ohne Filter laufen hatte und es einfacher fand, den ganzen Baum zu löschen. Ich bin davon ausgegangen, dass alles wieder kommt, sobald das Gateway wieder etwas schreibt. Aber es kam nichts wieder. Komischer Weise, konnten die Objekte aber weiter mit Javascript abgefragt werden. Meine ganzen Scripte liefen weiter, aber der Objektbaum war komplett leer. Als wären die Datenpunkte nicht weg, aber unsichtbar. Ist das so echt beabsichtigtes Verhalten?
Ich habe jetzt mit einem MQTT Client unter Windows nochmal die Datenpunkte erstellt und das ging ohne Probleme. Wo ist der Unterschied darin, ob ich das mit dem Client mache oder ob das Gateway Daten schickt? Ich finde das Verhalten schon etwas merkwürdig. -
@janga Einfach den Adapter einmal neu starten, dann tauchen die neuen Punkte auf sobald ein Wert reinkommt.
Wenn du den dort löscht registriert der Adapter das nicht, legt ihn aber auch nicht an weil der ja schon da sein sollte.
Neustart des Adapters hilft