MQTT2 Server löschen von "alten" RETAIN Einträgen

Begonnen von cortmen, 30 Juni 2019, 16:08:38

Vorheriges Thema - Nächstes Thema

cortmen

 :)Tach zusammen,

Wie kann ich "alte" Einträge im Reading RETAIN des MQTT2 Server löschen.
Einträge mit (null)

milight/states/0xCCC1/rgbw/0 {"state":"ON","status":"ON","brightness":102,"device_id":52417,"group_id":0,"device_type":"rgbw"}
milight/states/0xCCC2/rgbw/1 {"state":"OFF","status":"OFF","hue":21,"color":{"r":255,"g":89,"b":0},"device_id":52418,"group_id":1,"device_type":"rgbw"}
milight/LWT {"status":"connected","firmware":"milight-hub","version":"1.9.2","ip_address":"192.168.0.85","reset_reason":"Software/System restart"}
milight/states/0xCCC1/rgb_cct/1 {"state":"OFF","status":"OFF","device_id":52417,"group_id":1,"device_type":"rgb_cct"}
milight/states/0xCCC1/rgbw/1 {"state":"OFF","status":"OFF","brightness":163,"level":64,"device_id":52417,"group_id":1,"device_type":"rgbw"}
milight/states/0xFFF1/rgbw/1 (null)
milight/states/0xFFF1/rgb_cct/1 (null)


ein deletereading <devspec> <readingname>  RETAIN lässt die Einträge nach einiger Zeit wieder auftauchen.

Das betr. MQTT2 Device sind seit einigen Tagen nicht mehr vorhanden.




hexenmeister

Die 'retained' Nachrichten speichert der MQTT-Server, ob Mosquitto oder MQTT2_SERVER. Zum Löschen muss laut Spezifikation eine Nachicht ohne Inhalt (leer) auf diesen Topic gesendet werden. Am einfachsten geht das mit dem Tool MQTTExplorer (http://mqtt-explorer.com/) Das programm erlaubt recht bequemm solche Nachrichten zu löschen.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

cortmen


rudolfkoenig

ZitatZum Löschen muss laut Spezifikation eine Nachicht ohne Inhalt (leer) auf diesen Topic gesendet werden.
Das habe ich jetzt im MQTT2_SERVER implementiert :)
Loeschen kann man ein LWT auch mit "set mqtt2_server publish -r LWT_TOPIC"
update ist morgen ab acht Uhr verfuegbar.

cortmen


cortmen

 ;)
Bei mir klappt das löschen noch nicht.

das sind die Retain die gelöscht werden sollen.

,"milight/states/0xFFF1/rgb_cct/1":"","milight/states/0xFFF1/rgbw":"","milight/states/0xFFF2":"","milight/states/0xFFF2/rgb_cct":"","milight/states/0xFFF2/rgb_cct/1":"","milight/states/0xFFF2/rgbw/1":""}

set MQTT2_FHEM_Server publish -r milight/states/0xFFF1/rgb_cct/1":""
oder auch ein
set MQTT2_FHEM_Server publish -r milight/states/0xFFF1/rgb_cct/1



rudolfkoenig

Bei mir funktioniert es:

fhem> l -r m2s
define m2s MQTT2_SERVER 1883 global
setstate m2s 2019-07-01 08:37:17 RETAIN { "milight/states/0xFFF1/rgb_cct/1":"", "milight/states/0xFFF1/rgbw":"", "milight/states/0xFFF2":"", "milight/states/0xFFF2/rgb_cct":"", "milight/states/0xFFF2/rgb_cct/1":"", "milight/states/0xFFF2/rgbw/1":""}
setstate m2s 2019-07-03 08:19:02 nrclients 0
setstate m2s 2019-07-03 08:19:02 state Initialized

fhem> set m2s publish -r milight/states/0xFFF1/rgb_cct/1
fhem> l -r m2s
define m2s MQTT2_SERVER 1883 global
setstate m2s 2019-07-03 08:20:47 RETAIN {"milight/states/0xFFF1/rgbw":"","milight/states/0xFFF2":"","milight/states/0xFFF2/rgb_cct":"","milight/states/0xFFF2/rgb_cct/1":"","milight/states/0xFFF2/rgbw/1":""}
setstate m2s 2019-07-03 08:19:02 nrclients 0
setstate m2s 2019-07-03 08:19:02 state Initialized

fhem> version MQTT2_SERVER
File               Rev   Last Change
00_MQTT2_SERVER.pm 19753 2019-07-01 06:42:12Z rudolfkoenig
fhem>

cortmen

hat geklappt, Danke für die Top Unterstützung

grappa24

muss das löschen mal aufgreifen:

Kann man bei den topics auch mit wildcards arbeiten oder muss man immer alles komplett angeben?

Gruß
grappa24
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

rudolfkoenig

Zum Loeschen per set muss ein topic exakt angegeben werden.

Dr. Boris Neubert

#10
version MQTT2_SERVER
File               Rev   Last Change

00_MQTT2_SERVER.pm 24984 2021-09-16 17:21:43Z rudolfkoenig


Bei mir funktioniert ein

set MQTTBroker publish -r LWT

nicht. Die alten Einträge im RETAIN-Reading bleiben bestehen.


list MQTTBroker
Internals:
   CONNECTS   491
   Clients    :MQTT2_DEVICE:MQTT_GENERIC_BRIDGE:
   ClientsKeepOrder 1
   DEF        1883 global
   FD         9
   FUUID      608ee93f-f33f-1bf0-4de4-83466164715f7df0
   NAME       MQTTBroker
   NR         52
   PORT       1883
   STATE      Initialized
   TYPE       MQTT2_SERVER
   .attraggr:
   .attrminint:
   .clientArray:
     MQTT2_DEVICE
   MatchList:
     1:MQTT2_DEVICE ^.
     2:MQTT_GENERIC_BRIDGE ^.
   READINGS:
     2021-11-07 14:54:20   RETAIN          {"tele/DVES_3E744C/LWT":"Online","tele/DVES_B4EA79/LWT":"Offline","tele/DVES_B4EB31/LWT":"Online","tele/DVES_B9B00E/LWT":"Online","tele/DVES_C5BF63/LWT":"Online","tele/tasmota_3E744C/LWT":"Offline","tele/tasmota_B4EA79/LWT":"Offline","tele/tasmota_B4EB31/LWT":"Offline","tele/tasmota_B9B00E/LWT":"Offline","tele/tasmota_C5BF63/LWT":"Offline"}
     2021-11-07 14:54:20   lastPublish     LWT_TOPIC:
     2021-11-07 15:01:45   nrclients       7
     2021-09-21 19:24:57   state           Initialized
   clients:
     MQTTBroker_192.168.11.137_55714 1
     MQTTBroker_192.168.11.176_53214 1
     MQTTBroker_192.168.11.177_56950 1
     MQTTBroker_192.168.11.178_56618 1
     MQTTBroker_192.168.11.179_53077 1
     MQTTBroker_192.168.11.55_54486 1
     MQTTBroker_192.168.11.56_55403 1
   retain:
     tele/DVES_3E744C/LWT:
       ts         1634587473.32756
       val        Online
     tele/DVES_B4EA79/LWT:
       ts         1632245101.09679
       val        Offline
     tele/DVES_B4EB31/LWT:
       ts         1634733921.54705
       val        Online
     tele/DVES_B9B00E/LWT:
       ts         1634733921.90732
       val        Online
     tele/DVES_C5BF63/LWT:
       ts         1636119256.43117
       val        Online
     tele/tasmota_3E744C/LWT:
       ts         1632245101.09679
       val        Offline
     tele/tasmota_B4EA79/LWT:
       ts         1632245101.09679
       val        Offline
     tele/tasmota_B4EB31/LWT:
       ts         1632245101.09679
       val        Offline
     tele/tasmota_B9B00E/LWT:
       ts         1632245101.09679
       val        Offline
     tele/tasmota_C5BF63/LWT:
       ts         1632245101.09679
       val        Offline
Attributes:
   autocreate complex
   room       Interfaces


Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Dr. Boris Neubert

Ich habe mein Problem selbst gelöst: ich muss (natürlich :-) das ganze Topic angeben.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!