[gelöst]: FHEM legt für jeden MQTT Client auch einen neuen MQTT Server an

Begonnen von Dynalon, 19 Februar 2021, 17:58:49

Vorheriges Thema - Nächstes Thema

Dynalon

Hallo zusammen,

ich gebe es zu: MQTT ist etwas, bei dem ich wirklich große Verständnisprobleme habe. Das Prinzip mit internem und Externen Broker ist mir noch klar. Und irgendwie hat bisher auch immer die Einrichtung eines (FHEM internen) Brokers funktioniert. Doch wenn es um die Unterschiede MQTT und MQTT2 geht, hört es schon auf...

Kurzum: Problem lokalisiert, es befindet sich vor dem Bildschirm. Nun muss ich nur verstehen, was ich vergeigt habe.

Derzeit legt mein FHEM für jede Tasmota-Steckdose (z.B. Gosund SP111 mit Tasmota 8.1.0.2) die sich bei FHEM anmeldet einen neuen MQTT Server mit der jeweiligen IP des Tasmota-Devices im Namen (z.B. xxx.xxx.xxx.238) an. (siehe angehängte png)
Bisher kannte ich das nicht so, sondern hatte eben nur einen MQTT Server und mehrere Clienten. Habe ich etwas falsch eingestellt? Oder hätte das bevor ich mein FHEM diese Woche neu aufgesetzt habe auch so sein müssen?

Dazu kommt immer mal wieder eine Fehlermeldung in meinem Logfile:
2021.02.19 16:41:44 3: MQTT2_FHEM_Server: MQTT2_FHEM_Server_192.168.178.238_55402/DVES_53A57A left us (keepalive check)
2021.02.19 16:41:44 3: MQTT2_FHEM_Server: MQTT2_FHEM_Server_192.168.178.239_56382/DVES_419CC7 left us (keepalive check)


Schalten lassen sich die Dosen vor als auch nach dem Keepalive check. Doch wüsste ich gerne, was hier im argen liegt und würde gerne eine halbwegs fehlerfreie Instanz mein eigen nennen. Daher bin ich auf Eure Hilfe angewiesen.

Hier die Readings meines (eigentlichen) MQTT Servers
Internals:
   CONNECTS   9
   Clients    :MQTT2_DEVICE:MQTT_GENERIC_BRIDGE:
   ClientsKeepOrder 1
   DEF        1883 global
   FD         7
   FUUID      6027cdf8-f33f-dc36-7a2d-6da3296d0e9aa6e7
   NAME       MQTT2_FHEM_Server
   NR         15
   PORT       1883
   STATE      Initialized
   TYPE       MQTT2_SERVER
   MatchList:
     1:MQTT2_DEVICE ^.
     2:MQTT_GENERIC_BRIDGE ^.
   READINGS:
     2021-02-19 16:57:13   RETAIN          {"Keller/Werkstatt/tele/AnetE10/LWT":"Online","tele/DVES_01C291/LWT":"Online","tele/DVES_53A57A/LWT":"Online"}
     2021-02-18 14:32:18   lastPublish     Keller/Werkstatt/cmnd/AnetE10/Backlog:StateText1 off; StateText2 on; StateText3 toggle; StateText4 hold; SetOption26 1; SaveData 1
     2021-02-19 16:57:13   nrclients       3
     2021-02-19 13:51:57   state           Initialized
   clients:
     MQTT2_FHEM_Server_192.168.178.236_55866 1
     MQTT2_FHEM_Server_192.168.178.238_64303 1
     MQTT2_FHEM_Server_192.168.178.239_50469 1
   retain:
     Keller/Werkstatt/tele/AnetE10/LWT:
       ts         1613749305.23151
       val        Online
     tele/DVES_01C291/LWT:
       ts         1613739154.4597
       val        Online
     tele/DVES_53A57A/LWT:
       ts         1613750233.01857
       val        Online
Attributes:
   autocreate simple


und die Readings eines der neu automatisch angelegten Server:
Internals:
   BUF       
   FD         27
   NAME       MQTT2_FHEM_Server_192.168.178.236_55866
   NR         109
   PEER       192.168.178.236
   PORT       55866
   SNAME      MQTT2_FHEM_Server
   SSL       
   STATE      Connected
   TEMPORARY  1
   TYPE       MQTT2_SERVER
   WBCallback
   cflags     238
   cid        DVES_01C291
   keepalive  30
   lastMsgTime 1613751467.03152
   lwt        tele/DVES_01C291/LWT:Offline
   protoNum   4
   protoTxt   MQTT
   usr        Dynalon
   READINGS:
     2021-02-19 13:52:34   state           Connected
   subscriptions:
     cmnd/DVES_01C291/# 1613739154.47515
     cmnd/DVES_01C291_fb/# 1613739154.47905
     cmnd/tasmotas/# 1613739154.47867
Attributes:
   room       hidden


und die eines Clients (bekomme die Worte "hue_filled_outlet" vor dem alias auch nicht weg):
Internals:
   CID        DVES_01C291
   DEF        DVES_01C291
   DEVICETOPIC MQTT2_DVES_01C291
   FUUID      602d97dd-f33f-dc36-45e7-c5eea27f3a3a774c
   IODev      MQTT2_FHEM_Server
   LASTInputDev MQTT2_FHEM_Server
   MQTT2_FHEM_Server_MSGCNT 36
   MQTT2_FHEM_Server_TIME 2021-02-19 17:51:52
   MSGCNT     36
   NAME       MQTT2_DVES_01C291
   NR         65
   STATE      off
   TYPE       MQTT2_DEVICE
   JSONMAP:
     Channel_0  0
     Channel_1  0
     Channel_2  0
     Channel_3  0
     Channel_4  0
     Color      0
     Dimmer     0
     HSBColor   0
     POWER1     0
     POWER2     0
     POWER3     0
     POWER4     0
   OLDREADINGS:
   READINGS:
     2021-02-19 17:51:52   SaveData        on
     2021-02-19 17:51:52   SetOption26     on
     2021-02-19 17:51:51   StateText1      off
     2021-02-19 17:51:51   StateText2      on
     2021-02-19 17:51:51   StateText3      toggle
     2021-02-19 17:51:51   StateText4      hold
     2021-02-19 17:51:50   attrTemplateVersion 20200522 or prior
Attributes:
   IODev      MQTT2_FHEM_Server
   alias      Schalter_Stehlampe_Essz.
   autocreate 0
   comment    NOTE: For on-for-timer SetExtensions are used. You may add on-for-timer option running on the device. The following is limited to 1h max duration, but will not affect future simple "on" commands:<br>on-for-timer {my $duration = $EVTPART1*10; 'cmnd/cmnd/DVES_01C291/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}<br>See the "Praxisbeispiele" in the wiki for "pulseTime1" alternative option and it's restrictions.
   icon       hue_filled_outlet
   jsonMap    POWER1:0 POWER2:0 POWER3:0 POWER4:0 Dimmer:0 Channel_0:0 Channel_1:0 Channel_2:0 Channel_3:0 Channel_4:0 HSBColor:0 Color:0
   model      tasmota_basic_state_power1
   readingList tele/DVES_01C291/LWT:.* LWT
  tele/DVES_01C291/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/DVES_01C291/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/DVES_01C291/INFO.:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/DVES_01C291/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }
  stat/DVES_01C291/POWER1:.* state
  stat/DVES_01C291/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
   room       Esszimmer
   setList    off:noArg    cmnd/DVES_01C291/POWER1 0
  on:noArg     cmnd/DVES_01C291/POWER1 1
  toggle:noArg cmnd/DVES_01C291/POWER1 2
  setOtaUrl:textField cmnd/DVES_01C291/OtaUrl $EVTPART1
  upgrade:noArg   cmnd/DVES_01C291/upgrade 1
   setStateList on off toggle


Könnt Ihr mir bitte einen Tip geben?

Vielen Dank!

Beta-User

Du hast nichts vergeigt. Es wird für jede Verbindung eine temporäre Instanz angelegt (sollte auch irgendwo im Wiki stehen und war hier auch schon ein paar Mal gefragt).
hue_filled_outlet ist das Icon, das scheint es bei dir nicht zu geben? (Dann einfach mal das icon-Attribut löschen).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Dynalon

ok, vielen Dank!

Kannst Du mir auch sagen, was der Keepalive-check zu bedeuten hat? Das taucht bei mir auch immer mal wieder auf...

Hier nochmal kopiert:
2021.02.19 16:41:44 3: MQTT2_FHEM_Server: MQTT2_FHEM_Server_192.168.178.238_55402/DVES_53A57A left us (keepalive check)
2021.02.19 16:41:44 3: MQTT2_FHEM_Server: MQTT2_FHEM_Server_192.168.178.239_56382/DVES_419CC7 left us (keepalive check)

Beta-User

Das bedeutet "nur", dass FHEM keine rechtzeitige Rückmeldung von dem Teil erhalten hat. Kann viele Ursachen haben, z.B.
- FHEM ist mit irgendwas zu beschäftigt (blockierende Prozesse)? (Suchwort: Freezmon)
- WLAN-Probleme (Suchworte: FritzBox+ESP8266)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Dynalon

OK, vielen Dank!

Das hilft mir schonmal weiter - ich habe für die Einrichtung meiner Sticks noch nicht die automatische USB Schnittstellenerkennung (https://wiki.fhem.de/wiki/Raspberry_Pi#N.C3.BCtzliche_Zusatzpakete) deaktiviert.
Sobald alles fertig ist, werde ich das nachholen und falls nötig anschließend mit Freezmon auf die Suche gehen.

Vielen Dank!