MQTT2 Devices werden immer wieder angelegt

Begonnen von steffus, 17 November 2019, 18:37:39

Vorheriges Thema - Nächstes Thema

steffus

Hallo,
ich bin neu im Thema MQTT2 und habe deswegen eine Frage. Ich habe jetzt einen MQTT2 Server und einen MQTT2 Client angelegt.
MQTT2_Server:
CFGFN     
   CONNECTS   105
   DEF        1883 global
   FD         64
   FUUID      5dc9bee7-f33f-9627-5eac-b50647e4d442c042
   NAME       MQTT2_Server
   NR         2010
   PORT       1883
   STATE      Initialized
   TYPE       MQTT2_SERVER
   READINGS:
     2019-11-14 21:44:39   RETAIN          {"schalter":"aaus","topic":"test"}
     2019-11-17 18:33:27   nrclients       2
     2019-11-11 21:04:55   state           Initialized
   clients:
     MQTT2_Server_127.0.0.1_35448 1
     MQTT2_Server_192.168.178.49_50891 1
   retain:
     schalter:
       ts         1573764279.1392
       val        aaus
     topic:
       ts         1573764207.22552
       val        test
Attributes:
   DbLogExclude .*
   autocreate complex
   icon       mqtt_broker
   room       MQTT2_DEVICE


MQTT2_Client:
Internals:
   BUF       
   CFGFN     
   DEF        127.0.0.1:1883
   DeviceName 127.0.0.1:1883
   FD         77
   FUUID      5dcdaef8-f33f-9627-f7fa-440eaa04de12c245
   NAME       MQTT2_CLIENT
   NR         42372
   PARTIAL   
   STATE      opened
   TYPE       MQTT2_CLIENT
   WBCallback
   clientId   MQTT2_CLIENT
   lastMsgTime 1574012044.21645
   nextOpenDelay 5
   READINGS:
     2019-11-14 20:46:00   state           opened
Attributes:
   DbLogExclude .*
   autocreate simple
   room       MQTT2_DEVICE


Jetzt versuche ich gerade eine PlayBox zu bauen, welche auf dem Kanal haus-automatisierung vorgestellt wurde. Wenn ich jetzt eine Karte auf den RFID Lesegerät lege, dann legt FHEM mir ein neues Device an, mit dem Namen MQTT2_NodeMCUClient_bc08. Das ist ja auch OK, nur er legt mir immer und immer wieder ein neues Device an. Nur die Endung _XXXX verändert sich dabei. D.h. ich hätte dann im Laufe der Zeit ganz viele Devices, welche automatisch angelegt werden. Was muss ich denn machen, damit das nicht mehr passiert?

rudolfkoenig

MQTT2_SERVER _und_ MQTT2_CLIENT, was auf diesem Server konfiguriert ist, ist sehr wahrscheinlich Unsinn, nur Server reicht.
Wurde das auf dem besagten Kanal so empfohlen?

Wenn immer wieder ein neues MQTT2_DEVICE angelegt wird, dann ist das ein Zeichen dafuer, dass das RFID-Geraet sich jeweils neu mit dem FHEM-Server verbindet, und dabei ein neues ClientId erfindet. Fuer diesen Fall empfehle ich _ein_ MQTT2_DEVICE anlegen zu lassen, und in dessen readingsList <clientId>: ueberall entfernen.

Alternativ schaltet man autocreate ab, und man legt alles manuell an.

LuckyDay

Zitat von: rudolfkoenig am 17 November 2019, 19:02:06
MQTT2_SERVER _und_ MQTT2_CLIENT, was auf diesem Server konfiguriert ist, ist sehr wahrscheinlich Unsinn, nur Server reicht.
Wurde das auf dem besagten Kanal so empfohlen?

Bei dem PlayBox Video vor 11Mon, wurde es mit Mosquitto und Mqtt_Device gezeigt !

steffus

Ich habe jetzt den MQTT2 Client entfernt. Er legt jetzt immer noch immer wieder ein neues Device an, mit einer entsprechenden clientID. Wenn ich diese in den readingList entferne, dann legt er in den readingList wieder welche an.


Internals:
   CFGFN     
   CID        NodeMCUClient_72b7
   DEF        NodeMCUClient_72b7
   DEVICETOPIC MQTT2_NodeMCUClient_72b7
   FUUID      5dd1a078-f33f-9627-f08f-c8bbd3799d93f324
   IODev      MQTT2_Server
   LASTInputDev MQTT2_Server
   MQTT2_Server_MSGCNT 8
   MQTT2_Server_TIME 2019-11-17 20:33:44
   MSGCNT     8
   NAME       MQTT2_NodeMCUClient_72b7
   NR         82840
   STATE      ???
   TYPE       MQTT2_DEVICE
   READINGS:
     2019-11-17 20:33:44   Play            3958334224
     2019-11-17 20:33:44   Stop            1
Attributes:
   DbLogExclude .*
   IODev      MQTT2_Server
   readingList NodeMCUClient:/SmartHome/Interface/PlayBox/Play:.* Play
NodeMCUClient:/SmartHome/Interface/PlayBox/Stop:.* Stop
NodeMCUClient_72b7:/SmartHome/Interface/PlayBox/Play:.* Play
NodeMCUClient_72b7:/SmartHome/Interface/PlayBox/Stop:.* Stop
   room       MQTT2_DEVICE

steffus

Ich habe jetzt den Code auf der NodeMCU verändert, dort wurde immer wieder eine neue ClientID erzeugt. Diese habe ich jetzt fest vergeben. Das sollte das Problem erstmal lösen.