Probleme bei MQTT und Sonoff Tasmota

Die alternative Firmware für ESP8266 based devices

Moderatoren: seppy, udo1toni

BlueMonk
Beiträge: 2
Registriert: 25. Nov 2019 12:28

Re: Probleme bei MQTT und Sonoff Tasmota

Beitrag von BlueMonk »

Danke erstmal!

Leider bekomme ich es trotzdem nicht hin. :(

Code: Alles auswählen

Bridge mqtt:broker:mymqtt "Mosquitto" @ "mqtt" [
    host="192.168.1.10",             // ip oder fqdn des brokers, oft der Rechner selbst, also localhost oder 127.0.0.1
    port=1883,
    clientID="openHAB2",             // eindeutige ID des Clients (jeder Client muss zwingend eine eigene ID verwenden)
    lwtTopic="openHAB2/system/LWT",  // last will topic
    lwtMessage="offline"             // last will message
 ] {
     Thing topic sonoffT1_1 "sonoff T1 1" @ "mqtt" {                        // ein Device
        Channels: // verschiedene Channel
            Type number : pos "Position" [ stateTopic= "sonoff_t1/stat/SHUTTER1", commandTopic="sonoff_t1/cmnd/shutterposition1" ]
            Type string : tele "Tele" [ stateTopic= "sonoff_t1/tele/STATE" ]
            Type string : lwt "LWT" [ stateTopic="sonoff_t1/tele/LWT" ]
      }
}
Ist es nicht so, das ich die Broker IP, die ich in der Paper UI unter "things/MATT Broker" eingetragen habe, dort eintragen muss?
Bsp: host="192.168.0.199"
port=1883

Woher bekomme ich die "ClientID", "lwtTopic", "lwtMesssage", evtl. "User" und "Passwort"? Sind das ebenfalls die Einträge die ich unter den Broker Einstellungen vornehmen kann, oder muss das wo anders konfiguriert werden und unter den Broker einstellungen werden die korrekten werte eingetragen? :?

Auch hiermit "Bridge mqtt:broker:mymqtt "Mosquitto" @ "mqtt"" komme ich nicht klar. Ich habe meinen Broker "MQTT Broker XA" genannt, muss ich das nun so übernehmen? "mqtt:broker:MQTTBrokerXA", was bedeutet dann "Mosquitto" @ "mqtt"?

Zur items muss ich dann nochmal kommen.

Ich würde gerne nur einmal hinbekommen, einen schalter "on/off" zu schalten. Mehr will ich garnicht. Ich merke auch, das die Sache einfach nicht meine Welt ist und ich mich leider komplett nicht zurechtfinde. Ich denke nach den paar Steckdosen gebe ich wieder auf, die laufen dann und das wars.

Sorry schonmal.
und Danke

Benutzeravatar
peter-pan
Beiträge: 766
Registriert: 28. Nov 2018 12:03
Answers: 5
Wohnort: Schwäbisch Gmünd

Re: Probleme bei MQTT und Sonoff Tasmota

Beitrag von peter-pan »

Hier habe ich dir mal einen Auszug aus meiner mqtt2.things:

Code: Alles auswählen

//https://openhabforum.de/viewtopic.php?f=15&t=970&start=20   // from Udo

//Bridge mqtt:broker:MosquittoMqttBroker "Mosquitto MQTT Broker" @ "MQTT2" 
//       ^    ^      ^                    ^                      ^ Zeige diese Bridge auf der Unterseite "MQTT" in Paper UI Control
//       ^    ^      ^                    ^ Label der Bridge
//       ^    ^      ^ Name der Bridge
//       ^    ^ Art der Bridge
//       ^ Binding

Bridge mqtt:broker:fritz "Mosquitto" [ host="localhost", port=1883, secure=false, clientID="OH2_fritz" ]  
{
    //Gruppe TH10/16 Monitoring WiFi Smart Switch
    Thing topic TH1601 "Sonoff TH16 01" @ "MQTT2" {
    Channels:
        Type switch : power       "Power "               [ stateTopic="stat/th16_01/POWER", commandTopic="cmnd/th16_01/POWER" ]
        Type number : rssi        "WiFi Signal Strength" [ stateTopic="tele/th16_01/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI"]
        Type string : version     "Firmware Version"     [ stateTopic="stat/th16_01/STATUS2", transformationPattern="JSONPATH:$.StatusFWR.Version"]
        Type switch : reachable   "Reachable"            [ stateTopic="tele/th16_01/LWT", transformationPattern="MAP:reachable.map" ]
        Type number : temperature "Temperature"          [ stateTopic="tele/th16_01/SENSOR", transformationPattern="JSONPATH:$.AM2301.Temperature"]
        Type number : humidity    "Humidity"             [ stateTopic="tele/th16_01/SENSOR", transformationPattern="JSONPATH:$.AM2301.Humidity"]
        Type string : ssid        "WiFi"                 [ stateTopic="tele/th16_01/STATE", transformationPattern="JSONPATH:$.Wifi.SSId"]
        Type datetime : time      "Time"                 [ stateTopic="tele/th16_01/STATE", transformationPattern="JSONPATH:$.Time"]
    }
}
mit einer Erläuterung von Udo, was die einzelnen Parameter bedeuten und unter der URL findest du auch noch weitere Erläuterungen hierzu.

Diese Einstellungen sollten auch für die Grundkonfiguration reichen.

Frage: Wo hast du deinen Broker "MQTT Broker XA" genannt? Im .things-File ?

Benutzeravatar
udo1toni
Beiträge: 3610
Registriert: 11. Apr 2018 18:05
Answers: 35
Wohnort: Darmstadt

Re: Probleme bei MQTT und Sonoff Tasmota

Beitrag von udo1toni »

Nochmal zur Erläuterung:

Der MQTT Broker ist auf einer IP unter einem Port erreichbar. Beides wird in der Konfiguration des Brokers festgelegt. Das trifft auch auf User/Passwort zu. Es gibt ein Rechtesystem, das heißt, man kann über User/Passwort bestimmen, ob der Zugriff erlaubt ist.
Grundsätzlich ist MQTT dafür geeignet, sichere M2M Kommunikation zu ermöglichen.
Wenn Du nichts konfigurierst, wird der Broker auf dem Standard Port laufen (1883), und zwar üblicherweise auf allen IPs, die der Rechner bietet. Weder User noch Passwort sind zu setzen. Dies ist auch das Verhalten von Moquette, wobei man auch bei Moquette zumindest den Port anders konfigurieren kann.

Als Einstieg ist es das Einfachste, "nichts" zu konfigurieren und in openHAB (sowie den beteiligten Devices) nur die passende IP einzutragen.
Als ClientID kann man sich irgendeine ID ausdenken. Wenn ich es richtig im Kopf habe, ist das englische Alphabet erlaubt, sowie die Zahlen 0 bis 9 und das -. Also z.B. "openHAB2-1" oder "0-8-15". Wichtig ist, dass die ID einmalig ist, damit die Zuordnung eindeutig ist (welcher Client hat was publiziert/abonniert). Wenn man keine ID einträgt, wird das Gerät eine ID auswürfeln, wobei die Chance groß ist, dass die ID einmalig ist. Ich habe aber keine Ahnung, ob es noch weitere Mechanismen gibt, die dann prüfen, ob die ID tatsächlich einmalig ist. Wenn keine ID eingetragen wird, wird openHAB eventuell bei jedem Systemstart aufs neue eine ID erzeugen, das ist dann eher doof, wenn man anhand von logs Fehler finden will...

In MQTT gibt es den Mechanismus eines Testaments. Sobald der Broker feststellt, dass ein Client nicht mehr erreichbar ist, veröffentlicht er den letzten Willen des Devcies. Damit kann man dann z.B. gezielt ein "offline" schicken. Umgekehrt muss das Device, nachdem es den LastWill mitgeteilt hat, selbst einen anderen Wert im LastWill veröffentlichen, als Zeichen, dass es online ist. Auch diese Parameter sind optional (LastWillTopic und LastWill).

Antworten