Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Daten abonnieren über den mqtt_adapter

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    983

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    694

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

Daten abonnieren über den mqtt_adapter

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
arduinoesp32mqtt connect problemmqtt-adapterplatformio
13 Beiträge 3 Kommentatoren 552 Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • Marc BergM Offline
    Marc BergM Offline
    Marc Berg
    Most Active
    schrieb am zuletzt editiert von
    #4

    @gillian45 sagte in Daten abonnieren über den mqtt_adapter:

    aber irgendwie geht es bisher nicht.

    Was geht denn konkret nicht? Wird keine Wifi Verbindung aufgebaut? Keine MQTT Verbindung? Funktioniert die Subscription nicht?

    NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+EMQX+Grafana

    Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

    Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

    G 1 Antwort Letzte Antwort
    0
    • Marc BergM Marc Berg

      @gillian45 sagte in Daten abonnieren über den mqtt_adapter:

      aber irgendwie geht es bisher nicht.

      Was geht denn konkret nicht? Wird keine Wifi Verbindung aufgebaut? Keine MQTT Verbindung? Funktioniert die Subscription nicht?

      G Offline
      G Offline
      gillian45
      schrieb am zuletzt editiert von
      #5

      @marc-berg
      Die Wifi_Verbindung und MQTT_Verbindung functionieren einwandfrei aber subscribe eher nicht. Ich empfänge leider keine Daten auf mein Serial.monitor. Und ich weiß nicht, ob ich falsh abonniert habe.

      Marc BergM 1 Antwort Letzte Antwort
      0
      • G gillian45

        @marc-berg
        Die Wifi_Verbindung und MQTT_Verbindung functionieren einwandfrei aber subscribe eher nicht. Ich empfänge leider keine Daten auf mein Serial.monitor. Und ich weiß nicht, ob ich falsh abonniert habe.

        Marc BergM Offline
        Marc BergM Offline
        Marc Berg
        Most Active
        schrieb am zuletzt editiert von Marc Berg
        #6

        @gillian45
        Hm, ich überblicke gerade nicht das ganzen Code, aber bist du sicher, dass das Topic, dass du suscribst korrekt ist? Funktioniert der Gegentest mit einem MQTT Client?

        Ob das Topic richtig ist, kann man ja nicht aus diesem Code ablesen.

        NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+EMQX+Grafana

        Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

        Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

        G 1 Antwort Letzte Antwort
        0
        • Marc BergM Marc Berg

          @gillian45
          Hm, ich überblicke gerade nicht das ganzen Code, aber bist du sicher, dass das Topic, dass du suscribst korrekt ist? Funktioniert der Gegentest mit einem MQTT Client?

          Ob das Topic richtig ist, kann man ja nicht aus diesem Code ablesen.

          G Offline
          G Offline
          gillian45
          schrieb am zuletzt editiert von
          #7

          @marc-berg Also publish funktionniert irgendwie sehr gut und zwar mit den gleichen Topic Namen.
          Hier kannst du es nochmal sehen

          # include <Arduino.h>
          #include <Adafruit_Sensor.h>
          # include <WiFi.h>
          # include <PubSubClient.h>
          
          // wifi Daten
          const char* ssid = "bubub" ; 
          const char* password = "bueer" ; 
          WiFiClient WifiClient ; 
          
          // MQTT Broker_Daten
          const char* mqttServer = "192.168.0.220" ;  // Broker-passwort  
          PubSubClient mqttClient( WifiClient) ; 
          
          
          //Topic 
          char FlameSate[] ="flameState"; 
          char Bewegung[]= "Bewegung" ; 
          int pirSensor= 27 ; 
          int ledPin = 32 ; // für meinen Bewegungsmelder
          int flamePin = 34; 
          
          
          //Verbindung mit dem Broker herstellen
          void mqttConnect()
          {
            Serial.print("Verbindung zum MQTT_Server"); 
            Serial.print( mqttServer); 
            while(!mqttClient.connected())
            {
              Serial.print("."); 
              if (mqttClient.connect("ES"))
              {
                Serial.print("MQTT-VErbunden"); 
              }
              else
              {
                Serial.print("Fehlgeschlagen "); 
                Serial.print(mqttClient.state()); 
                Serial.println("erneuter Versuch in 5 Sec"); 
              delay(5000); 
              }
          
            }
           mqttClient.subscribe("test/esp32"); 
          } 
          
          
          
          
          
          
          
          
          
          
          void setup() {
          
            pinMode(flamePin, INPUT); // Setze Flammensensor als Eingang
            pinMode(ledPin, OUTPUT);  // Setze LED als Ausgang
          
            Serial.begin(115200); 
            Serial.println(); 
            Serial.print("Verbingsaufbaun zu") ; 
            Serial.print(ssid); 
            WiFi.begin(ssid,password); 
            while(WiFi.status() != WL_CONNECTED)
            {
              delay(500);
              Serial.print("."); 
            }
            Serial.print(""); 
            Serial.println("Wifi connected"); 
            Serial.print("IP Add:");
            Serial.print(WiFi.localIP());
          
            // Verbindung mit MQTT-Server
            mqttClient.setServer(mqttServer, 1883); 
            //mqttClient.setCallback(callback); 
            mqttConnect(); 
          }
          
          void loop() {
           
            // Wenn der Flammensensor eine Flamme erkennt, schalte die LED ein
            /* if (flameValue > 100) { // Der Schwellenwert von 100 muss möglicherweise angepasst werden
              digitalWrite(ledPin, HIGH); // Schalte LED ein
            } else {
              digitalWrite(ledPin, LOW); // Schalte LED aus
            }  */
          
          if(!mqttClient.connected())
            {
              mqttConnect();
            }
            mqttClient.loop();
          
             int flameValue = analogRead(flamePin); // Lese analoge Spannung vom Flammensensor
            
             if(flameValue > 100)
             {
              Serial.print("Achtung Fire, Feuerwehr Anrufen !!!"); 
               mqttClient.publish(FlameSate, "OK"); 
             }
             else 
             {
               Serial.print("Sicher, Kein Feuer !"); 
               mqttClient.publish(FlameSate, "Nein");
             }
             
            
             int pirSensorValue = digitalRead(pirSensor);
             if(pirSensorValue== HIGH)
             {
               digitalWrite(ledPin, HIGH) ; 
              Serial.print("Bewegung erkannt"); 
              mqttClient.publish(Bewegung, "OK"); 
              delay(1000) ; 
             }
             else 
             {
              digitalWrite(ledPin, LOW); 
              Serial.print("Keine Bewegung");
              mqttClient.publish(Bewegung, "Nein"); 
              delay(1000) ; 
          
             }
             
             
             delay(200); 
          }
             
            
          
          
            
          
          
          Marc BergM 1 Antwort Letzte Antwort
          0
          • G gillian45

            @marc-berg Also publish funktionniert irgendwie sehr gut und zwar mit den gleichen Topic Namen.
            Hier kannst du es nochmal sehen

            # include <Arduino.h>
            #include <Adafruit_Sensor.h>
            # include <WiFi.h>
            # include <PubSubClient.h>
            
            // wifi Daten
            const char* ssid = "bubub" ; 
            const char* password = "bueer" ; 
            WiFiClient WifiClient ; 
            
            // MQTT Broker_Daten
            const char* mqttServer = "192.168.0.220" ;  // Broker-passwort  
            PubSubClient mqttClient( WifiClient) ; 
            
            
            //Topic 
            char FlameSate[] ="flameState"; 
            char Bewegung[]= "Bewegung" ; 
            int pirSensor= 27 ; 
            int ledPin = 32 ; // für meinen Bewegungsmelder
            int flamePin = 34; 
            
            
            //Verbindung mit dem Broker herstellen
            void mqttConnect()
            {
              Serial.print("Verbindung zum MQTT_Server"); 
              Serial.print( mqttServer); 
              while(!mqttClient.connected())
              {
                Serial.print("."); 
                if (mqttClient.connect("ES"))
                {
                  Serial.print("MQTT-VErbunden"); 
                }
                else
                {
                  Serial.print("Fehlgeschlagen "); 
                  Serial.print(mqttClient.state()); 
                  Serial.println("erneuter Versuch in 5 Sec"); 
                delay(5000); 
                }
            
              }
             mqttClient.subscribe("test/esp32"); 
            } 
            
            
            
            
            
            
            
            
            
            
            void setup() {
            
              pinMode(flamePin, INPUT); // Setze Flammensensor als Eingang
              pinMode(ledPin, OUTPUT);  // Setze LED als Ausgang
            
              Serial.begin(115200); 
              Serial.println(); 
              Serial.print("Verbingsaufbaun zu") ; 
              Serial.print(ssid); 
              WiFi.begin(ssid,password); 
              while(WiFi.status() != WL_CONNECTED)
              {
                delay(500);
                Serial.print("."); 
              }
              Serial.print(""); 
              Serial.println("Wifi connected"); 
              Serial.print("IP Add:");
              Serial.print(WiFi.localIP());
            
              // Verbindung mit MQTT-Server
              mqttClient.setServer(mqttServer, 1883); 
              //mqttClient.setCallback(callback); 
              mqttConnect(); 
            }
            
            void loop() {
             
              // Wenn der Flammensensor eine Flamme erkennt, schalte die LED ein
              /* if (flameValue > 100) { // Der Schwellenwert von 100 muss möglicherweise angepasst werden
                digitalWrite(ledPin, HIGH); // Schalte LED ein
              } else {
                digitalWrite(ledPin, LOW); // Schalte LED aus
              }  */
            
            if(!mqttClient.connected())
              {
                mqttConnect();
              }
              mqttClient.loop();
            
               int flameValue = analogRead(flamePin); // Lese analoge Spannung vom Flammensensor
              
               if(flameValue > 100)
               {
                Serial.print("Achtung Fire, Feuerwehr Anrufen !!!"); 
                 mqttClient.publish(FlameSate, "OK"); 
               }
               else 
               {
                 Serial.print("Sicher, Kein Feuer !"); 
                 mqttClient.publish(FlameSate, "Nein");
               }
               
              
               int pirSensorValue = digitalRead(pirSensor);
               if(pirSensorValue== HIGH)
               {
                 digitalWrite(ledPin, HIGH) ; 
                Serial.print("Bewegung erkannt"); 
                mqttClient.publish(Bewegung, "OK"); 
                delay(1000) ; 
               }
               else 
               {
                digitalWrite(ledPin, LOW); 
                Serial.print("Keine Bewegung");
                mqttClient.publish(Bewegung, "Nein"); 
                delay(1000) ; 
            
               }
               
               
               delay(200); 
            }
               
              
            
            
              
            
            
            Marc BergM Offline
            Marc BergM Offline
            Marc Berg
            Most Active
            schrieb am zuletzt editiert von Marc Berg
            #8

            @gillian45

            Das sieht in meinem Code recht ähnlich aus, nur dass ich nach dem Subscribe noch folgende beide Zeilen eingefügt habe.

            client.subscribe(waitfor_topic);
            delay(200);
            client.loop();
            

            Kann sein, dass ich das deshalb gemacht habe, weil es sonst Timing-Probleme gab. Ist schon ein paar Jahre her.

            NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+EMQX+Grafana

            Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

            Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

            G 1 Antwort Letzte Antwort
            0
            • Marc BergM Marc Berg

              @gillian45

              Das sieht in meinem Code recht ähnlich aus, nur dass ich nach dem Subscribe noch folgende beide Zeilen eingefügt habe.

              client.subscribe(waitfor_topic);
              delay(200);
              client.loop();
              

              Kann sein, dass ich das deshalb gemacht habe, weil es sonst Timing-Probleme gab. Ist schon ein paar Jahre her.

              G Offline
              G Offline
              gillian45
              schrieb am zuletzt editiert von
              #9

              @marc-berg Ich versuche es mal, meinst du ich sollte in function

              void mqttConnect() 
              

              direct nach dem Subscribe direkt die Beide Zeilen einfügen ?

              Marc BergM 1 Antwort Letzte Antwort
              0
              • G gillian45

                @marc-berg Ich versuche es mal, meinst du ich sollte in function

                void mqttConnect() 
                

                direct nach dem Subscribe direkt die Beide Zeilen einfügen ?

                Marc BergM Offline
                Marc BergM Offline
                Marc Berg
                Most Active
                schrieb am zuletzt editiert von
                #10

                @gillian45 sagte in Daten abonnieren über den mqtt_adapter:

                @marc-berg Ich versuche es mal, meinst du ich sollte in function

                void mqttConnect() 
                

                direct nach dem Subscribe direkt die Beide Zeilen einfügen ?

                ja, das "client.loop()" wird ja sowieso empfohlen, um die Nachrichten zu verarbeiten. Es kann nichts schaden.

                NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+EMQX+Grafana

                Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

                Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

                G 1 Antwort Letzte Antwort
                0
                • Marc BergM Marc Berg

                  @gillian45 sagte in Daten abonnieren über den mqtt_adapter:

                  @marc-berg Ich versuche es mal, meinst du ich sollte in function

                  void mqttConnect() 
                  

                  direct nach dem Subscribe direkt die Beide Zeilen einfügen ?

                  ja, das "client.loop()" wird ja sowieso empfohlen, um die Nachrichten zu verarbeiten. Es kann nichts schaden.

                  G Offline
                  G Offline
                  gillian45
                  schrieb am zuletzt editiert von
                  #11

                  @marc-berg es hat leider nichts getan , hast du damals dein MQTT_Broker in IoBroker installiert ?? Ich habe vielleicht etwas nicht richtig konfiguriert oder soll ich mir einfach ein anderes Software suchen:disappointed:

                  Marc BergM T 2 Antworten Letzte Antwort
                  0
                  • G gillian45

                    @marc-berg es hat leider nichts getan , hast du damals dein MQTT_Broker in IoBroker installiert ?? Ich habe vielleicht etwas nicht richtig konfiguriert oder soll ich mir einfach ein anderes Software suchen:disappointed:

                    Marc BergM Offline
                    Marc BergM Offline
                    Marc Berg
                    Most Active
                    schrieb am zuletzt editiert von
                    #12

                    @gillian45 sagte in Daten abonnieren über den mqtt_adapter:

                    @marc-berg es hat leider nichts getan , hast du damals dein MQTT_Broker in IoBroker installiert ?? Ich habe vielleicht etwas nicht richtig konfiguriert oder soll ich mir einfach ein anderes Software suchen:disappointed:

                    Darum würde ich das Ganze mit "MQTT Explorer" oder einem anderen Client nachstellen und prüfen, ob die Subscription grundsätzlich funktioniert.
                    Nur um sicherzugehen: die Callback-Funktion wird nur ausgeführt, wenn sich am Broker ein Wert ändert bzw. neu published wird. Das ist hoffentlich klar?

                    NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+EMQX+Grafana

                    Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

                    Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

                    1 Antwort Letzte Antwort
                    0
                    • G gillian45

                      @marc-berg es hat leider nichts getan , hast du damals dein MQTT_Broker in IoBroker installiert ?? Ich habe vielleicht etwas nicht richtig konfiguriert oder soll ich mir einfach ein anderes Software suchen:disappointed:

                      T Offline
                      T Offline
                      TT-Tom
                      schrieb am zuletzt editiert von TT-Tom
                      #13

                      @gillian45

                      hi Ich habe mal den alten Code raus gesucht. Das ganze stammt aus diesem Thread.

                      Vielleicht hilft dir das weiter. Den kompletten Code findest du im Thread.

                      // MQTT Funktion
                      // *************
                      void reconnectToMQTT() {
                      
                        if (mqttClient.connect(mqtt_client_id , mqtt_user, mqtt_password)) {
                          Serial.println("Per MQTT mit ioBroker verbunden");
                      
                          mqttClient.publish("Huehnertuer/Innen/Tuer_oeffnet", "0");
                          mqttClient.publish("Huehnertuer/Innen/Tuer_auf", "0");
                          mqttClient.publish("Huehnertuer/Innen/Tuer_schliesst", "0");
                          mqttClient.publish("Huehnertuer/Innen/Tuer_zu", "0");
                      
                          mqttClient.subscribe("Huehnertuer/Innen/Tuer");
                        } else {
                          Serial.print("failed with state ");
                          Serial.print(mqttClient.state());
                          Serial.println(" try again in 5 seconds");
                          // Wait 5 seconds before retrying
                          delay(5000);
                        }
                      }
                      
                      
                      // MQTT Callback
                      void callback(char* topic, byte* payload, unsigned int length)
                      {
                      
                        payload[length] = '\0';
                        String strTopic = String(topic);
                        String strPayload = String((char * ) payload);
                      
                        Serial.print("Message arrived [");
                        Serial.print(strTopic);
                        Serial.print("----");
                        Serial.print(strPayload);
                        Serial.print("] ");
                        Serial.println();
                      
                      
                        if (strTopic == "Huehnertuer/Innen/Tuer")
                        {
                          // Tuer schliessen
                          if (strPayload == "false") {
                            Serial.println("Tuer schliesst über IoBroker");
                            TuerSteuerung(SCHLIESSEN);
                          }
                      
                          // Tuer öffnen
                          if (strPayload == "true") {
                            Serial.println("Tuer oeffnet über IoBroker");
                            TuerSteuerung(OEFFNEN);
                          }
                        }
                      }
                      

                      der teil aus dem loop

                       // MQTT Broker
                        mqttClient.loop();
                        if (!mqttClient.connected()) {
                          reconnectToMQTT();
                        }
                      

                      der aus dem setup

                       // MQTT Brocker
                        // Mit ioBroker Mqtt verbinden
                        mqttClient.setServer(mqtt_server, mqtt_port);//MQTT Server, - Port
                        mqttClient.setCallback(callback);
                      
                      

                      zusätzlich empfehle ich dir eine eigne Instanz auf zu machen vom MQTT-Brocker.

                      Gruß Tom
                      https://github.com/tt-tom17
                      Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                      NSPanel Script Wiki
                      https://github.com/joBr99/nspanel-lovelace-ui/wiki

                      NSPanel Adapter Wiki
                      https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                      1 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate
                      FAQ Cloud / IOT
                      HowTo: Node.js-Update
                      HowTo: Backup/Restore
                      Downloads
                      BLOG

                      486

                      Online

                      32.6k

                      Benutzer

                      82.0k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe