Autor Thema: [erledigt]Wie retain message löschen ?  (Gelesen 676 mal)

Offline TomLee

  • Hero Member
  • *****
  • Beiträge: 3296
[erledigt]Wie retain message löschen ?
« am: 25 April 2020, 14:03:56 »
Hallo,

eigentlich wollte ich am MQTT2_Server folgendes publish absetzen:

-r cmnd/solarmax44009/DeepSleepTime 0
wegen copy+paste und schnell, schnell kam aber das dabei raus:

-r Publish2 cmnd/solarmax44009/DeepSleepTime 0
danach hab ich mit

-r Publish2 cmnd/solarmax44009/DeepSleepTime
versucht die Message zu löschen, womit jetzt

{"Publish2":"cmnd/solarmax44009/DeepSleepTime","ebusd/global...}
im RETAIN-Reading steht.

Wid bekomme ich die Message gelöscht ?

Gruß

Thomas

edit:

Habs  ::)

-r Publish2
« Letzte Änderung: 25 April 2020, 14:46:18 von TomLee »
... wer sät, der erntet ...

Offline hoppel118

  • Hero Member
  • *****
  • Beiträge: 1080
Antw:[erledigt]Wie retain message löschen ?
« Antwort #1 am: 26 April 2020, 14:53:37 »
Hi Thomas,

wir machen hier mal weiter und nicht in meinem p4d Thread, damit der "sauber" bleibt. Ich übernehme mal unsere kommunikation:

Moin Thomas,

danke für den Hinweis. Einzelne Retain-Nachrichten kann ich über diesen Weg löschen. Durch die ganzen Spielereien und den homeassistant Kram habe ich jetzt aber hunderte solcher retain Nachrichten. Kann ich retain auch irgendwie vollständig zurücksetzen? Wenn nicht, lösche ich kurz das Device "MQTT2_SERVER".

EDIT: Ich habe nun kurz den MQTT2_SERVER gelöscht und neu definiert. Danach werden sofort die relevanten Nachrichten eingelesen und der ganze Müll ist weg. Wäre trotzdem noch interessant zu verstehen, ob es dafür eine elegantere Möglichkeit gibt.

Gruß Hoppel

Gute Frage würde mich auch interessieren, kann man vlt. regex verwenden, habs noch nicht probiert ?

Meine Nachrichten im RETAIN Feld sahen übrigens ungefähr wie folgt aus (Meine Heizung announced momentan ca. 40 Readings):

p4d_publisher:homeassistant/sensor/Aussentemperatur_0x4/config ...
p4d_publisher:p4d2mqtt/sensor/Au__entemperatur_0x4/state ...
p4d_publisher:p4d2mqtt/sensor//Aussentemperatur_0x4/state ...
p4d_publisher:p4d2mqtt/sensor/Aussentemperatur_0x4/state ...

Lediglich der letzte Eintrag war richtig und sollte bleiben.

Ich habe folgendes probiert:

set mqtt2server publish -r homeassistant.*
set mqtt2server publish -r p4d2mqtt
set mqtt2server publish -r p4d_publisher

Alle drei Befehle haben nichts bewirkt. Weitere Ideen? :D

Gruß Hoppel
« Letzte Änderung: 26 April 2020, 15:07:37 von hoppel118 »
Server: Openmediavault, XEON E3-1240L-v5, Supermicro X11SSH-CTF, 64GB ECC RAM, SSD, RAID-Z2
Homebridge | Alexa | Yowsup
Homematic: VCCU 2xHMUSB, 1xWLGW | HomeConnect | Philips Hue | Sonos: Beam, Sub, One, Symfonisk | Unifi: USG, USW, AC-AP-Pro | Xiaomi: S50, Smart Fan | vbus: Vitosolic 200SD4

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24162
Antw:[erledigt]Wie retain message löschen ?
« Antwort #2 am: 27 April 2020, 10:10:10 »
Zitat
p4d_publisher:homeassistant/sensor/Aussentemperatur_0x4/config ...
Schaut fuer mich merkwuerdig aus, weiss nicht, wie das ClientID da reingeschafft hat, ich kan es nicht nachstellen.

Ohne ClientId kann man es mit "set mqtt2server publish -r homeassistant/sensor/Aussentemperatur_0x4/config" entfernen, hier greifen keine Regexps, weil -r nicht fuer remove steht, sondern fuer retain (Senden einer Nachricht mit Retain Flag), was als Nebeneffekt das RETAIN Reading bzw. Internal pflegt.

Offline hoppel118

  • Hero Member
  • *****
  • Beiträge: 1080
Antw:[erledigt]Wie retain message löschen ?
« Antwort #3 am: 27 April 2020, 11:59:19 »
OK, zur Aufklärung: Die ClientID war natürlich nicht im RETAIN Feld enthalten. Ich hatte sie nur ergänzt, damit man versteht, warum ich die dort aufgeführten 3 Varianten "set mqtt2server publish -r ..." ausprobiert habe. Das war wohl Blödsin...

Das man einzelne Einträge löschen kann, hatte ich verstanden. Aber bei knapp 160 Einträgen, wovon nur noch 40 valide sind, war mir das zu blöd, alle Einträge einzeln zu löschen, so dass ich dann einfach den MQTT2_SERVER gelöscht und neu angelegt habe. Hatte die Hoffnung, dass das irgendwie eleganter geht. Aber ok, es gibt also keine Möglichkeit das RETAIN Feld grundsätzlich zu resetten.

Danke dir und Gruß Hoppel
Server: Openmediavault, XEON E3-1240L-v5, Supermicro X11SSH-CTF, 64GB ECC RAM, SSD, RAID-Z2
Homebridge | Alexa | Yowsup
Homematic: VCCU 2xHMUSB, 1xWLGW | HomeConnect | Philips Hue | Sonos: Beam, Sub, One, Symfonisk | Unifi: USG, USW, AC-AP-Pro | Xiaomi: S50, Smart Fan | vbus: Vitosolic 200SD4

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24162
Antw:[erledigt]Wie retain message löschen ?
« Antwort #4 am: 27 April 2020, 12:12:19 »
Zitat
Hatte die Hoffnung, dass das irgendwie eleganter geht.
Ja: "deletereading mqtt2_server RETAIN" und FHEM-Neustart.

Offline hoppel118

  • Hero Member
  • *****
  • Beiträge: 1080
Antw:[erledigt]Wie retain message löschen ?
« Antwort #5 am: 27 April 2020, 12:48:02 »
hm... Ich bin der Meinung, dass ich das probiert hatte. Auch die von Beta-User aufgezeigte Variante hatte ich probiert, um das RETAIN Feld zu löschen:

deletereading -q DEVICE (?!associatedWith).*
Das Reading ist dann zwar kurz weg, aber es kommt nach kurzer Zeit wieder und bringt alle (auch die veralteten) Inhalte mit. Meine deletereading Tests habe ich immer ohne FHEM Neustart ausgeführt. Dann war das wohl das Problem. Ich werde das testen.

Danke und Gruß Hoppel
Server: Openmediavault, XEON E3-1240L-v5, Supermicro X11SSH-CTF, 64GB ECC RAM, SSD, RAID-Z2
Homebridge | Alexa | Yowsup
Homematic: VCCU 2xHMUSB, 1xWLGW | HomeConnect | Philips Hue | Sonos: Beam, Sub, One, Symfonisk | Unifi: USG, USW, AC-AP-Pro | Xiaomi: S50, Smart Fan | vbus: Vitosolic 200SD4

Offline hoppel118

  • Hero Member
  • *****
  • Beiträge: 1080
[erledigt]Wie retain message löschen ?
« Antwort #6 am: 30 April 2020, 00:17:11 »
By the way... Rudi hatte in meinem anderen Thread übrigens noch folgendes gepostet:


Zitat
Kann ich den MQTT2_Server eigentlich irgendwie stoppen?

delete MQTT2_Server
oder
modify MQTT2_Server 1884

Das disable Attribut verhindert nur das Senden.

Gruß Hoppel
Server: Openmediavault, XEON E3-1240L-v5, Supermicro X11SSH-CTF, 64GB ECC RAM, SSD, RAID-Z2
Homebridge | Alexa | Yowsup
Homematic: VCCU 2xHMUSB, 1xWLGW | HomeConnect | Philips Hue | Sonos: Beam, Sub, One, Symfonisk | Unifi: USG, USW, AC-AP-Pro | Xiaomi: S50, Smart Fan | vbus: Vitosolic 200SD4

 

decade-submarginal