MQTT2 erkennt keine Devices

Begonnen von KnutWuchtig, 21 Dezember 2019, 23:33:24

Vorheriges Thema - Nächstes Thema

KnutWuchtig

Hallo zusammen,
ich habe jeweils auf einem bestehenden und einem neu aufgesetzten System einen MQTT2-Server eingerichtet.
Jetzt, nach ca. 10h versuchen, - gebe ich auf und hoffe hier Antworten zu bekommen.

define MQTT2_FHEM_Server MQTT2_SERVER 1883 global
attr MQTT2_FHEM_Server autocreate Simple
attr MQTT2_FHEM_Server verbose 5

Leider werden bei beiden Systemen meine beiden Tasmota-Devices (D1-MINI) nicht erkannt.
Im Hausnetz sind sie präsent, können angewählt und gesteuert werden.

Welche Fehler könnten mir passiert sein?
(ausser, das ich immer noch bei FHEM bleibe)

Achim

Wo kann

TomLee

Steht denn irgendwas im Log ?
Username/Passwort am MQTT2_Server vergeben aber bei den Tasmotas nicht hinterlegt ?

Gruß

Thomas

Romoker

Falls Dein MQTT-Server so definiert ist, wie Du ihn hier beschrieben hast, wird wahrscheinlich "autocreate simple" (simple klein geschrieben) Dein Problem lösen.

Weihnachtliche Grüße
BeagleBoneBlack & Raspberry Pi 4; FB7490; div. Homematic Komponenten; CUL433: CUL_TX, Conbee II, SOMFY, 1-Wire, Z-Wave, Zigbee, SmartPlugs von Sonoff und Shelly mit MQTT

KnutWuchtig

Moin,
- Ein Kennwort ist nicht vergeben.
- Den Eintrag bei "Autocreate habe ich von Simple auf simple geändert.

Leider keine Veränderung - Die Geräte werden nicht erkannt

Achim

OdfFhem

#4
@KnutWuchtig

Gib doch mal folgenden Befehl in die FHEM-Kommandozeile ein und poste das Ergebnis hier ...

list TYPE=MQTT.* TYPE

rudolfkoenig

Damit Geraete angelegt werden, muss
- ein autocreate device existieren (list TYPE=autocreate). Das gibt es bei der Erstinstallation, viele schalten es aber gerne ab.
- MQTT2_SERVER hat per Voreinstellung "autocreate=simple", d.h. man kann dieses Attribut auch entfernen.
- ich gehe davon aus, das FHEM aktuell ist d.h. update wurde nach der Installation in FHEM ausgefuehrt.

Wenn man den Verdacht hat, dass MQTT2_SERVER sein Dienst nicht richt verrichtet, dann setzt man "attr MQTT2_SERVER verbose 5", und man schaut ins FHEM-Log (evtl. per Event Monitor).

KnutWuchtig

Erst einmal vielen Dank für die schnellen Rückantworten!

Ich habe 2 FHEM-Systeme am Laufen eines davon ist "frisch" aufgesetzt, eines läuft seit 2014 und beide sind upgedatet

Ergebnis :
list "TYPE=MQTT.* TYPE" :  MQTT2_FHEM_Server        MQTT2_SERVER
-----------------------------------------------------------------------------------
Hier das Listing vom MQTT2-Server:

Internals MQTT2_FHEM_Server:
   DEF        1883 global
   FD         12
   NAME       MQTT2_FHEM_Server
   NR         541
   PORT       1883
   STATE      Initialized
   TYPE       MQTT2_SERVER
   READINGS:
     2019-12-22 13:39:04   nrclients       0
     2019-12-22 13:39:04   state           Initialized
   clients:
   retain:
Attributes:
   autocreate simple
   icon       mqtt_broker
   verbose    5
-----------------------------------------------------------------------------------
und hier vom "autocreate:
Internals "autocreate:"
   NAME       autocreate
   NOTIFYDEV  global
   NR         2
   NTFY_ORDER 50-autocreate
   STATE      active
   TYPE       autocreate
Attributes:
   room       40_System

Achim

OdfFhem

Ich vermute, dass Dir das sogenannte "Grund-Device" fehlt, in dem u.a. das Attribut bridgeRegexp sehr nützlich sein kann.

Minimal wird es bei mir so angelegt:

defmod MQTT2_myMqttServer MQTT2_DEVICE myMqttServer

myMqttServer ist entsprechend Deiner Benamung anzupassen.


Anschließend funktionierte bei mir das autocreate ...

Otto123

Hallo Achim,

ich behaupte der MQTT2_FHEM_Server hat noch nie einen Client gesehen.
Mach doch in deinem Tasmota mal die Konsole auf (Hauptmenü/Konsole) und schau was er da loggt und ob er sich überhaupt irgendwohin verbindet.
Thomas sein Einwand aus #1 überprüft?

BTW: Codetags bitte:  https://forum.fhem.de/index.php/topic,71806.0.html

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

rudolfkoenig

@OdfFhem: bei einem MQTT2_SERVER braucht man fuer Tasmota (und alle anderen "richtigen" MQTT Geraetet) kein bridge Device.
Bridge braucht man
- fuer MQTT2_CLIENT, falls man autocreate haben will
- fuer zigbee2mqtt

OdfFhem

@rudolfkoenig

Ich selbst nutze in der Produktion tatsächlich MQTT2_CLIENT; für einen Test mit dem alarm-Device (Thema noch gar nicht so lange her) habe ich aber auf einem bis dahin absolut MQTT2- freien FHEM-Testsystem nur einen MQTT2_SERVER angelegt und via mosquitto_pub "beschickt".

Die Nachricht kam an und wurde via verbose 5 auch "sichtbar" gemacht; ein autocreate wurde aber nachweislich nie erfolgreich abgeschlossen. Erst nachdem bereits irgendein beliebiges MQTT2_DEVICE definiert war, wurden auch neue MQTT2_DEVICEs autocreated.

Ich hatte das (eigentlich sinnfreie) "irgendein"-Device später dann um einen bridgeRegexp erweitert, um auf die ständig wechselnde ClientId zu reagieren. Ergebnis war, dass es auch für neue Subtopics klappte und die readingList im passenden Device automatisch erweitert wurde.

Ist meine Beobachtung/Interpretation falsch oder ist es anders gedacht?

Otto123

#11
Zitat von: OdfFhem am 22 Dezember 2019, 20:31:36
mosquitto_pub "beschickt".
hast Du da eine CID gesetzt (Parameter -i) oder nicht? Wenn nicht setzt mosquitto_pub eine zufällige CID und damit legt der MQTT2 Server keine neuen Device an. ;) (ich hoffe ich habe das richtig wiedergegeben)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

OdfFhem

@Otto123

In dem Beitrag zum alarm-Device ging es darum, dass Nachrichten bei jedem Senden mit einer anderen ClientId verschickt wurden.

Die beispielhaft verwendeten ClientIds wurden auch im Beitrag angeführt und folglich habe ich genau das geschilderte Szenario mit -i durchgespielt.

Link zum Beitrag: https://forum.fhem.de/index.php/topic,106095.0.html

moerte

Also bei mir geht das nur mit einen Client der mit dem Broker verbunden ist.. und hier auch nur mit basicAuth <username> <password>.
Vermute das das einfach fehlt. 
Ich brauch doch für eine MQTT Verbindung einen Benutzer und Passwort. Und der Verfasser schreibt er hat kein Passwort?

Otto123

Mein erster Versuch mit MQTT waren zwei Zeilen Code:
define mqtt2s MQTT2_SERVER 1883 global

mosquitto_pub -h raspib2 -i COMPUTER -t CPU/raspib/temperature -m 22
Danach hatte ich ein MQTT2 Device MQTT2_COMPUTER :)
Danach habe ich Tasmota Geräte verbunden - da wurden auch sofort Geräte angelegt. Ohne irgendein "Grunddevice".

Das war meine Beobachtung, bei dir muss also was anders gelaufen sein.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Otto123

Zitat von: moerte am 22 Dezember 2019, 21:39:29
Ich brauch doch für eine MQTT Verbindung einen Benutzer und Passwort.
Nein es geht auch ohne
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

OdfFhem

@Otto123

Da muss ich mir morgen noch mal meine Aufzeichnungen anschauen und versuchen, das bzw. mein Problem nachzuvollziehen ...

KnutWuchtig

#17
"defmod MQTT2_myMqttServer MQTT2_DEVICE myMqttServer"
hat auch keinen Effekt.

Zu der Antwort von Otto123: Heißt das, das trotz Mqtt2 noch der Mosquitto oder ein anderer Broker installiert werden muss?
(tschuldigung, falls ich zu blöd bin)

Zu der Passwortfrage:
Ich habe kein Passwort vergeben. Wie schon gesagt, die Tasmotas funktionieren über ihre Bedienoberfläche per Wlan einwandfrei ohne eine Passwortnachfrage.

Sollte, FALLS ein Device in FHEM angelegt wurde, nicht dann automatisch eine Nachfrage zum Passwort kommen?

KnutWuchtig

ODER---
liegt das evtl. an den Tasmotas?

Evtl. Konflikte mit der Firmware (7.1.2 (tasmota)).

Achim

Otto123

#19
Nein man braucht nur MQTT2 - ich habe lediglich von einer anderen Maschine mit mosquitto getestet.

Nochmal:
Tasmota -> Konsole -> Log ??? Ausgabe einfach mal posten :)
Bevor wir hier noch bis Neujahr rätseln.  ::)

BTW: es geht nicht um den Zugang zur Weboberfläche.
Dieser WEB Zugang, die Konfiguration von MQTT in Tasmota und die Vergabe eines Kontos dort sowie die Einrichtung eines gesicherten Zuganges zu einem FHEM MQTT2 sind drei völlig getrennte Dinge. ;)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

TomLee

Hast du denn mittlerweile mal in einem deiner beiden Wemos Devices auf der Tasmota-Oberfläche unter Konsole geschaut was da genau ausgegeben wird ?

Stimmt denn die IP-Adresse  MQTT HOST in deinem ersten Beitrag in dem Screenshot?

Gruß

Thomas

KnutWuchtig

In der Konsole wird bei beiden Devices folgendes ausgegeben:

1.
00:00:00 CFG: aus Flash geladen am F6, zählen 78
00:00:00 Projekt tasmota Tasmota02 Version 7.1.2(tasmota)-2_6_1
00:00:00 WIF: verbinden mit AP1 (meinROUTER) in Modus 11N als tasmota-0998...
(hier hatte ich es mit einem anderen DeviceNamen probiert)
00:00:05 WIF: verbunden
00:00:05 HTP: Web-Server aktiv bei tasmota-0998 mit IP-Adresse 192.168.178.70
23:35:39 MQT: Verbindungsversuch...
23:35:44 MQT: Verbindung fehlgeschlagen aufgrund von 192.168.178.70:1883, rc -2. Wiederversuch in 10 s
23:35:55 MQT: Verbindungsversuch...

2
00:00:00 CFG: aus Flash geladen am F8, zählen 116
00:00:00 Projekt tasmota Tasmota01 Version 7.1.2(tasmota)-2_6_1
00:00:00 WIF: verbinden mit AP1 (meinRouter) in Modus 11N als DVES_E84574-1396...
00:00:05 WIF: verbunden
00:00:05 HTP: Web-Server aktiv bei DVES_E84574-1396 mit IP-Adresse 192.168.178.66
23:34:25 MQT: Verbindungsversuch...
23:34:30 MQT: Verbindung fehlgeschlagen aufgrund von 192.168.178.66:1883, rc -2. Wiederversuch in 10 s

IP´s passen wie im Ausdruck

Achim

Otto123

Also bei mir steht:
00:00:07 HTP: Web-Server aktiv bei tasmota-4810 mit IP-Adresse 192.168.178.163
00:05:33 MQT: Verbindungsversuch...
00:05:33 MQT: verbunden

Wenn ich meinen MQTT2 Server beende steht dort:
00:09:03 MQT: Verbindungsversuch...
00:09:03 MQT: Verbindung fehlgeschlagen aufgrund von raspib:1883, rc -2. Wiederversuch in 10 s

Fällt Dir was auf?

Du hast bei MQTT Server offenbar die IP Adresse des Tasmota Gerätes und nicht die des Servers eingetragen?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

KnutWuchtig

Du bist GENIAL!

IP-Adresse im Tasmota auf die des Raspis geändert und - funzt.

VIELEN Dank.

Achim