Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. Microcontroller
    5. MQTT ESP8266 Verbindung aufbauen

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    MQTT ESP8266 Verbindung aufbauen

    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      danny_v1 last edited by

      Hallo,

      ich habe mir gestern iobroker auf dem Raspberry Pi installiert. Ich möchte Nachrichten von einem ESP8266 empfangen und auch nachrichten an diesen senden. Mit Node Red funktioniert das ganze schon mal.

      Ich habe aber absolut keine Verbindung hin bekommen. Ich hoffe mir kann jemand eine Beschreibung geben oder einen Link zu einer Anleitung wie ich das ganze von Grund auf aufbauen muss.

      Dem MQTT Adapter habe ich schon installiert aber das wars dann auch schon.

      Zu Anfang würde mir ein Button den ich drücke und dann ein Nachricht mit "power:0" oder "power:1" an das Topic /Licht reichen, den Rest könnte ich dann hoffentlich davon ableiten.

      Dank schon mal,

      danny_v1

      Bulli Bultmann 1 Reply Last reply Reply Quote 0
      • T
        ticaki Developer last edited by ticaki

        Das da hört sich für mich nach Arbeit an. 🙂 Also du kennst dich mit iobroker n nicht aus?
        Hast du den MQTT Adapter als Server konfiguriert?
        Zeig mal deinen Verbindungscode vom ESP, sowie pub und sub Zeilen.

        1 Reply Last reply Reply Quote 0
        • D
          danny_v1 last edited by

          Nein kenn mich absolut noch nicht damit aus.

          Ich habe im iobroker einen MQTT Broker und einen MQTT Client angelegt. Ich poste heute Abend die Screenshots dazu.

          Meinst Du mit Verbindungscode den Programmteil vom ESP (Arduino IDE)?

          T oberfragger 2 Replies Last reply Reply Quote 0
          • Bulli Bultmann
            Bulli Bultmann @danny_v1 last edited by

            @danny_v1 Hallo, ich bin vor 2 Jahren mit ESP8266 angefangen, und habe mir hier im Forum viele Anregungen geholt. Wenn du die ESPs mit Arduino oder etwas ähnlichem flasht muss du dir die Wifi, MQTT usw. selber zusammenstellen. Wenn dir EspEasy oder Tasmota gefällt, wird es etwas einfacher. Die haben vorkonfigurierte Web - Oberflächen parat. Ich habe beides in Einsatz, EspEasy und Tasmota.
            Als Anlage hier mein MQTT Adapter. a1t.JPG
            a2t.JPG
            Hier noch ein Beispiel mit EspEasy. Kofig des MQTT.
            a3t.JPG
            a4t.JPG
            Ich hab auch noch ein altes Script mit meinen Web Versuchen.
            a6t.JPG
            Wenn du noch Fragen hast, melde dich.

            1 Reply Last reply Reply Quote 0
            • T
              ticaki Developer @danny_v1 last edited by ticaki

              @danny_v1
              Ja, die Programmteile vom ESP.
              Der MQTT Adapter funktioniert und da kann man nicht soviel falsch einstellen. Die Einstellungen vom Vorposter sind zum Testen z.B. ok, wenn es dann geht kann man es so einstellen, wie man es braucht.

              Den MQTT Client brauchst du imho nicht.

              1 Reply Last reply Reply Quote 0
              • oberfragger
                oberfragger @danny_v1 last edited by

                @danny_v1 Hi,
                ich habe das ganze mit MQTT und einem Gaszähler als Anwendungsfall mal gaanz langsam hier erklärt.
                https://forum.iobroker.net/topic/27923/anleitung-gaszähler-mit-nodemcu-espeasy/2

                Ich hoffe das hilft auch. Auf jeden Fall ziemlich einfach im nachhinein betrachtet.

                1 Reply Last reply Reply Quote 1
                • D
                  danny_v1 last edited by

                  Hi,

                  danke erst einmal für die Antworten. Die Anleitung mit dem espeasy sieht ganz gut aus, für den nächsten ESP ist das auf jeden Fall eine gute Alternative. Für den den ich gerade einbinden möchte würde ich lieber bei Arduino IDE bleiben da das Programm schon ganz schön gewachsen ist (eine stark angepasste Version von FastLed mit MQTT Verbindung).

                  Ich habe gestern die ersten Erfolge gehabt. Da die ganze Sache über Node Red schon funktioniert hat habe ich einfach das Node Red in iobroker eingebunden und somit über diesen Umweg die ganze Sache erstmal zum laufen gebracht. An/Aus Befehl funktioniert jetzt sogar schon über die Vis.

                  Jetzt stellt sich mir aber die nächste Frage: ich erstelle im iobroker unter Objekte in mqtt ein Gerät und in diesem Gerät mehrere Datenpunkte, danach wechsele ich zu Node Red und möchte per iobroker get darauf zugreifen dann sind diese Datenpunkt nicht auswählbar. Ich sehe da nur ein "altes" Objekt welches ich mal zum Testen angelegt hatte.

                  Da habe ich doch bestimmt irgendwo was vergessen (in dem Konfigurationsfenster der Datenpuntke habe ich auch die Hacken bei aktiv, publish und abonieren gesetzt).

                  Also erstmal vielen Danke für die Hilfe bis jetzt.

                  1 Reply Last reply Reply Quote 0
                  • D
                    danny_v1 last edited by

                    Achso das Programm auf dem ESP ist wie oben erwähnt eine angepasste Version davon:

                    https://github.com/awilhelmer/esp8266-fastled-mqtt

                    Bulli Bultmann 1 Reply Last reply Reply Quote 0
                    • Bulli Bultmann
                      Bulli Bultmann @danny_v1 last edited by

                      @danny_v1 Hallo,
                      die Objekte im MQTT Ordner sollten vom IObroker automatisch erstellt werden. Bei mir ist das jedenfalls so.

                      D 1 Reply Last reply Reply Quote 0
                      • D
                        danny_v1 @Bulli Bultmann last edited by

                        @Bulli-Bultmann said in MQTT ESP8266 Verbindung aufbauen:

                        @danny_v1 Hallo,
                        die Objekte im MQTT Ordner sollten vom IObroker automatisch erstellt werden. Bei mir ist das jedenfalls so.

                        Also einfach über Node Red anlegen und dann erscheinen die im iobroker Objekte Ordner?

                        Bulli Bultmann 1 Reply Last reply Reply Quote 0
                        • Bulli Bultmann
                          Bulli Bultmann @danny_v1 last edited by

                          @danny_v1 Bei mir läuft ja Tasmota und EspEasy, und die melden sich dann mit ihren Daten am MQTT an. Port, User und Passwort und übermitteln ihre Werte. Beim ersten Publish werden dann automatisch die Geräte und Datenpunkte im MQTT-Ordner angelegt.
                          Hast Du denn da eine Weboberffläche oder ist das bei deinem Flash ohne ? Denn irgendwo im ESP8266 müssen ja die Daten für den MQTT abgelegt werden. Schau dir mal meinen Post weiter oben an oder die Anleitung von oberfragger kurz nach meinem Post. Als Anfang empfehle ich dir Tasmota oder EspEasy, weil die Schnittstellen dort definiert sind und man über die Web Oberfläche Fehler, oder allgemeine Änderungen, ohne jedesmal neu zu flashen, vornehmen kann.

                          1 Reply Last reply Reply Quote 0
                          • D
                            danny_v1 last edited by

                            Nein in dem ESP Programm gibt es keine Web Oberfläsche.

                            Das Program ist ähnlich dem oben verlinkten esp8266-fast-led Programm.

                            So sehen da die Settings aus

                            // MQTT Broker settings
                            const char* mqtt_server = "192.160.xxx.xxx";
                            const int mqtt_port = 1883; // Change this if u don't use a SSL connection
                            const char* mqtt_user = "";
                            const char* mqtt_password = "";
                            const char* mqtt_topic = "/Licht/LedRinge";
                            const char* mqtt_clientid = "";

                            und der so der Verbindungsaufbau:

                            //Mqtt Init
                            client.setServer(mqtt_server, mqtt_port);
                            client.setCallback(callback);
                            autoPlayTimeout = millis() + (autoPlayDurationSeconds * 1000);
                            }

                            // Format is: command:value
                            // value has to be a number, except rgb commands
                            void callback(char* topic, byte* payload, unsigned int length) {
                            // handle message arrived
                            char tmp[length + 1];
                            strncpy(tmp, (char*)payload, length);
                            tmp[length] = '\0';
                            String data(tmp);

                            void reconnectMqtt() {
                            while (!client.connected()) {
                            Serial.println("Attempting MQTT connection...");
                            if (client.connect(mqtt_clientid, mqtt_user, mqtt_password)) {
                            Serial.println("connected");
                            client.subscribe(mqtt_topic);
                            } else {
                            Serial.print("failed, rc=");
                            Serial.print(client.state());
                            Serial.println(" try again in 5 seconds");
                            // Wait 5 seconds before retrying
                            delay(5000);
                            }
                            }
                            }

                            Also über den Umweg über Node Red funktioniert das schon ganz gut. Bis auf das Erstellen der Objekte.
                            Kann das sein das ich nach dem Erstellen die jeweilige Instanz noch aktualisieren muss?

                            Bulli Bultmann 1 Reply Last reply Reply Quote 0
                            • Bulli Bultmann
                              Bulli Bultmann @danny_v1 last edited by

                              @danny_v1 said in MQTT ESP8266 Verbindung aufbauen:

                              Nein in dem ESP Programm gibt es keine Web Oberfläsche.

                              Das Program ist ähnlich dem oben verlinkten esp8266-fast-led Programm.

                              So sehen da die Settings aus

                              // MQTT Broker settings
                              const char* mqtt_server = "192.160.xxx.xxx";
                              const int mqtt_port = 1883; // Change this if u don't use a SSL connection
                              const char* mqtt_user = "";
                              const char* mqtt_password = "";
                              const char* mqtt_topic = "/Licht/LedRinge";
                              const char* mqtt_clientid = "";

                              und der so der Verbindungsaufbau:

                              //Mqtt Init
                              client.setServer(mqtt_server, mqtt_port);
                              client.setCallback(callback);
                              autoPlayTimeout = millis() + (autoPlayDurationSeconds * 1000);
                              }

                              // Format is: command:value
                              // value has to be a number, except rgb commands
                              void callback(char* topic, byte* payload, unsigned int length) {
                              // handle message arrived
                              char tmp[length + 1];
                              strncpy(tmp, (char*)payload, length);
                              tmp[length] = '\0';
                              String data(tmp);

                              void reconnectMqtt() {
                              while (!client.connected()) {
                              Serial.println("Attempting MQTT connection...");
                              if (client.connect(mqtt_clientid, mqtt_user, mqtt_password)) {
                              Serial.println("connected");
                              client.subscribe(mqtt_topic);
                              } else {
                              Serial.print("failed, rc=");
                              Serial.print(client.state());
                              Serial.println(" try again in 5 seconds");
                              // Wait 5 seconds before retrying
                              delay(5000);
                              }
                              }
                              }

                              Also über den Umweg über Node Red funktioniert das schon ganz gut. Bis auf das Erstellen der Objekte.
                              Kann das sein das ich nach dem Erstellen die jeweilige Instanz noch aktualisieren muss?

                              Ja das kann sein.

                              Prüfe doch noch dein MQTT Server/Adapter. In deinen Listing sind keine Datem bei MQTT User und MQTT Passwort eingetragen. Das geht so, aber nur wenn im Adapter auch alles ohne User und Paasswort steht. Für Tests ok, sonst sehr unsicher.

                              1 Reply Last reply Reply Quote 0
                              • D
                                danny_v1 last edited by

                                Ja das werde ich auf jeden Fall machen, wenn es dann richtig in Betrieb genommen wird so zum rumspielen und testen ist es denk ich ohne User Login ok.

                                Aber danke für den Tipp!

                                1 Reply Last reply Reply Quote 0
                                • T
                                  ticaki Developer last edited by

                                  Wenn du den MQTT Adapter startest wird der gelb?

                                  D 1 Reply Last reply Reply Quote 0
                                  • D
                                    danny_v1 @ticaki last edited by

                                    @ticaki Ja der wird gelb und wenn ich mit der Maus drüber bleibe zeigt das Fenster auch bei verbunden wahr an.

                                    Bulli Bultmann 1 Reply Last reply Reply Quote 0
                                    • Bulli Bultmann
                                      Bulli Bultmann @danny_v1 last edited by

                                      @danny_v1 said in MQTT ESP8266 Verbindung aufbauen:

                                      @ticaki Ja der wird gelb und wenn ich mit der Maus drüber bleibe zeigt das Fenster auch bei verbunden wahr an.

                                      mqtt.jpg

                                      So sollte es aussehen.

                                      1 Reply Last reply Reply Quote 0
                                      • D
                                        danny_v1 last edited by

                                        ok verbunden und Lebenszeichen hab ich auf jeden Fall, bin mir nur nicht sicher ob der Client eingetragen ist. Da muss ich heute Abend mal schauen.

                                        Danke schon mal!!!

                                        T 1 Reply Last reply Reply Quote 0
                                        • T
                                          ticaki Developer @danny_v1 last edited by ticaki

                                          @danny_v1
                                          Setzte diese Variable bitte auf einen Wert. ClientID muss eindeutig sein.

                                          const char* mqtt_user = "";
                                          const char* mqtt_password = "";
                                          const char* mqtt_clientid = "";
                                          

                                          Anschließen password und user auch im MQTT Adapter eintragen. Und SSL aus, falls es aktiviert ist.

                                          EDIT: ist möglich das es an der ClientID alleine liegt.

                                          1 Reply Last reply Reply Quote 0
                                          • T
                                            ticaki Developer last edited by

                                            Ah noch was vergessen:

                                            laufen NodeRed und MQTT Server auf selben Rechner mit selbem Port?

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            934
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            21
                                            6700
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo