NEWS
Kann im MQTT Objekte nicht löschen
-
Mich hat es jetzt auch erwischt:
Gibt es wirklich nur die Möglichkeit ALLE Objekte unter dem MQTT-Adapter zu löschen?
Ich habe für Tasmota einige Datenpunkte per Hand anlegen müssen und das wäre Arbeit die ich mir ersparen möchte.Asus Tinkerboard S
Node.js v12.16.2
JS-Controller: 3.0.18
NPM 6.14.4
MQTT-Adapter 2.1.1VG
LeifNoch eine Frage
Könnte ich gefahrlos den Eintrag per Hand unter/otp/iobroker/iobroker-data/states.json
ändern und dann im ioBroker löschen, oder ist das nicht zu empfehlen?
-
Habe jetzt den ioBroker gestoppt und die objects.json und die states.json angepasst und der Name lautet jetzt Tasmota_.
Leider kommt die Fehlermeldung noch immer, was muss ich noch editieren, um den Eintrag gelöscht zu bekommen?Danke für jede Hilfe!!
-
Hallo Zusammen!
Möchte das Thema noch mal Pushen... Habe auch das Problem mit einem Ordner mit diesen "?" im Namen.
Gibt es für das löschen schon eine Lösung?LG
Philipp -
@arteck Wo könnte denn das Problem genau liegen, weshalb die Objekte nicht gelöscht werden können, damit man gezielt ein Ticket aufmachen kann?
Einfach den Adapter löschen kommt nicht in Frage, da viele Datenpunkte per Hand angelegt wurden (angelegt werden mussten) -
@capitaenz es liegt an den Sonderzeichen
schau dir mal die object.json (ist unter iobroker-data) an .. da stehen alle Datenpunkte drin.. die kannst du auch manuell löschensicherung anlegen nicht vergessen..
-
Danke für den Hinweis.
Die einzelnen Objekte werden offensichtlich immer mit einem}},
geschlossen, sehe ich das richtig?
Also lösche ich folgendes?"mqtt.0.Tasmota\u0001\u0000_.Tasmota_RGBW_Controller_Wohnzim":{"common":{"name":"/Tasmota/Tasmota_RGBW_Controller_Wohnzim","write":true,"read":true,"role":"variable","desc":"mqtt server variable","type":"string"},"native":{"topic":"/Tasmota\u0001\u0000*/Tasmota_RGBW_Controller_Wohnzim"},"type":"state","from":"system.adapter.mqtt.0","user":"system.user.admin","ts":1586980682159,"_id":"mqtt.0.Tasmota\u0001\u0000_.Tasmota_RGBW_Controller_Wohnzim","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}},
Hier die Einträge davor und dahinter:
_per_Telegram"},"type":"state","from":"system.adapter.javascript.0","user":"system.user.admin","ts":1586863470377,"acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}},"mqtt.0.Tasmota\u0001\u0000_.Tasmota_RGBW_Controller_Wohnzim":{"common":{"name":"/Tasmota/Tasmota_RGBW_Controller_Wohnzim","write":true,"read":true,"role":"variable","desc":"mqtt server variable","type":"string"},"native":{"topic":"/Tasmota\u0001\u0000*/Tasmota_RGBW_Controller_Wohnzim"},"type":"state","from":"system.adapter.mqtt.0","user":"system.user.admin","ts":1586980682159,"_id":"mqtt.0.Tasmota\u0001\u0000_.Tasmota_RGBW_Controller_Wohnzim","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}},"hm-rpc.0.LEQ062
Ist es geplant diesen Fehler in Zukunft zu beseitigen und ist dieser bekannt?
Danke und VG
Leif -
@arteck
Hallo,
ich habe den entsprechenden Datenpunkt gelöscht, aber im ioBroker ist er immer noch vorhanden -
@hanss hast du auch in die states.json reingeschaut
-
@arteck
Vielen Dank für die Antwort.
Nein, das wusste ich nicht.
Aber jetzt traue ich mich nicht mehr, denn nachdem ich die Einträge in der object.json
gelöscht hatte, startete mir der ioBroker nicht mehr.
Gut, dass es mit einer Sicherungsdatei doch noch funktioniert hat.
Wieso wird den das nicht gefixt, es gibt schon jede Menge Anwender, die mit dem
selben Problem geplagt sind. -
-
@capitaenz
Da bist Du zu beneiden.
Hier ist mqtt Vers. 2.1.3 und JS Vers. 4.6.4 installiert,
aber die defekten Einträge sind immer noch da und können nicht gelöscht werden. -
@hanss Es ist nur eine Frage der Zeit, bis mich dieses Problem wieder erwischt! Ich würde auch gerne ein Ticket dazu aufmachen, weiß allerdings nicht wo... MQTT-Adapter, JS-Controller, …
Update:
Der Eintrag ist wieder da -
Hallo. Bin neu im Forum bzw. mit ioBroker aktiv.
Habe jetzt schon einiges laufen und wolle bevor ich weitermache diversen Müll aus meiner Testphase löschen. Ich habe mehrere Wemos D1 Mini eingebunden welche ich mit ESPEasy geflasht habe. Später habe ich dann SYSNAME, TSKNAME und NAME umbenannt oder die ge-publishted Topics geändert. Im MQTT habe ich nun den Datenmüll der alten Bezeichnungen. Da ich automatisch die Datenobjekte anlege konnte ich den kompletten MQTT Ordner löschen. Beim Neustart des Adpters ist aber wieder alles da. Finde die Einträge in "states.json" und "objects.json" aber wenn ich das hier lese ist mir das zu heiss das von Hand zu löschen. Habt ihr ne idee was ich noch machen könnte?
-
Bislang fehlte mir der Antrieb um gewissenhaft folgendes auszuprobieren:
@capitaenz said in Kann im MQTT Objekte nicht löschen:
Danke für den Hinweis.
Die einzelnen Objekte werden offensichtlich immer mit einem}},
geschlossen, sehe ich das richtig?
Also lösche ich folgendes?"mqtt.0.Tasmota\u0001\u0000_.Tasmota_RGBW_Controller_Wohnzim":{"common":{"name":"/Tasmota/Tasmota_RGBW_Controller_Wohnzim","write":true,"read":true,"role":"variable","desc":"mqtt server variable","type":"string"},"native":{"topic":"/Tasmota\u0001\u0000*/Tasmota_RGBW_Controller_Wohnzim"},"type":"state","from":"system.adapter.mqtt.0","user":"system.user.admin","ts":1586980682159,"_id":"mqtt.0.Tasmota\u0001\u0000_.Tasmota_RGBW_Controller_Wohnzim","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}},
Hier die Einträge davor und dahinter:
_per_Telegram"},"type":"state","from":"system.adapter.javascript.0","user":"system.user.admin","ts":1586863470377,"acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}},"mqtt.0.Tasmota\u0001\u0000_.Tasmota_RGBW_Controller_Wohnzim":{"common":{"name":"/Tasmota/Tasmota_RGBW_Controller_Wohnzim","write":true,"read":true,"role":"variable","desc":"mqtt server variable","type":"string"},"native":{"topic":"/Tasmota\u0001\u0000*/Tasmota_RGBW_Controller_Wohnzim"},"type":"state","from":"system.adapter.mqtt.0","user":"system.user.admin","ts":1586980682159,"_id":"mqtt.0.Tasmota\u0001\u0000_.Tasmota_RGBW_Controller_Wohnzim","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}},"hm-rpc.0.LEQ062
Ist es geplant diesen Fehler in Zukunft zu beseitigen und ist dieser bekannt?
Danke und VG
LeifBei dir wird es eine ähnliche Struktur haben.
Ich müsste dann, wenn ich es richtig verstanden habe, folgendes entfernen:
Ich würde ein Backup anlegen, den ioBroker stoppen und die Einträge aus "states.json" und "objects.json" entfernen.
Nur lohnt die Arbeit? Vor dem Problem wird man ja öfter stehen und dann immer so umständlich vorgehen?
Ich bin mir halt nicht sicher wo man jetzt ein Ticket eröffnen muss, beim Entwickler des MQTT-Adapters, des JS-Controllers, …VG
Leif -
Danke erst mal für die schnelle erste Antwort. Habe ich nicht mit gerechnet. Habe mir nun eine Sicherung erstellt und zusätzlich auch ein Image der SD Karte gemacht.
Bevor ich jetzt anfange zwei Verständisfragen.
Es gibt je eine "states.json.bak" bzw. "objects.jason.bak" in "iobroker-data" was meine Erachtens Sicherungsdateien sein sollten UND noch einen Unterordner "backup-objects" unter "iobroker-data" in dem noch weitere Kopien liegen. Kannst du mir erklären wie das ioBroker verwendet? Weist du aus welcher Datei er beim Start von mqtt seine objekte zieht? Habe Sorge das er ggf. die bak verwendet und von dort automatisch zurückspielt und die Arbeit umsonst wäre
Und die Zweite Frage
Ich habe kein zwei }} Klammer die einen Datensatz beenden. Würdest du zustimmen das der markierte Bereich einen Datensatz darstellt. Ich würde dann
- mqtt im iobroker anhalten
- Alle objekte im mqtt adapter löschen
- iobroker in der shell stoppen
- Datensatz in "objects.json" und parallel in "states.json" löschen
- iobroker rebooten
- schauen ob die datensätzen nun endlich weg sind.
Gruß Ralf
-
@Moppedman
Ich bin (auch nur) interessierter Anwender und kann leider keine weiteren technischen Infos liefern.
Aber ich würde auch annehmen, dass der von dir markierte Bereich gelöscht werden muss.
Schalte dich doch mit z.B. WinSCP drauf und lade dir die editierte Datei herunter, dann war die Arbeit nicht umsonst, wenn diese wiederhergestellt werden sollte.
Und denk dran, Backup, Backup, Backup! -
Darf ich dich mal bitten einen Blick auf meinen Fall zu werfen. Wie oben geschrieben habe ich durch mein Ausprobieren mit ESPEasy / Wemos D1 mini 8266 diverse Objekte als Restmüll in den MQTT Objekten stehen. Ich habe die beim Testen umbenannt und/oder die Daten die vom 8266 gepublished werden, geändert. Bei jeder Namesänderung z.B. wurde unter dem neuen Namen ein neues Objekt angelegt und nicht das alte Objekt überschrieben. Löschen hilft nicht, sie kommen wieder. Schaue ich in "states.json" und "objects.json" finde ich darin die alten und neuen Bezeichnungen. Gemeinsam haben die verschiedenen Namen die fest zugewiesene IP-Adresse vom Router.
Ich habe heute nun mal einen Sensor in beiden Dateien gelöscht der aber nach Starten des MQTT adapters wieder da war. Daher die Frage wie ioBroker mit den angelegten Datensicherungen "states.json.bak" und "objects.json.bak" umgeht. Bzw was ist mit den anderen Sicherungen in dem Ordner "/opt/iobroker/backup-objects". Welche Datei benutzt das System beim Start?
Ich habe folgendes gemacht.
- mqtt im iobroker angehalten
- Alle objekte im mqtt adapter gelöscht
- iobroker in der shell gestoppt
- Datensatz in "objects.json" und parallel in "states.json" gelöscht
- iobroker reboot
Wie wäre die richtige Reihenfolge bzw. was fehlt das ich die Einträge endgültig gelöscht kriege.
Gruß und Dank
-
DIe die diese Namensprobleme haben ... welche js.controller version ist im Einsatz?
-
@apollon77
Nutze Version 3.1.6VG
Leif -
Ahhh ok, habs verstanden