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
    15
    1
    647

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.9k

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.
  • G Offline
    G Offline
    gillian45
    schrieb am zuletzt editiert von gillian45
    #1

    Hallo zusammen,
    ich versuche seit ein paar Zeiten mit einem Esp32 Board auf Daten von meinem Broker zuzugreifen und auf dem Serial Monitor anzuzeigen aber irgendwie geht es bisher nicht. Hat jemand eine Idee was sich verbessern muss beziehungsweise komplett falsh ist ???

    #include <Arduino.h>
    #include <LiquidCrystal.h>
    #include <Adafruit_Sensor.h>
    
    #include <Wifi.h>
    # include  <PubSubClient.h> 
    // Lcd initialisierung
    LiquidCrystal lcd(22,21,5,18,23,19);
    
    // Encoder
    int Clk= 33; 
    int Data= 25; 
    int SwBut = 25; 
    int menu =1 ; 
    static int LastState ;
    
    
    // wifi Daten
    const char* ssid = "bbbbbb" ; 
    const char* password = "bur" ; 
    WiFiClient WifiClient ; 
    
    // MQTT Broker_Daten
    const char* mqttServer = "192.168.0.220" ;  
    PubSubClient mqttClient( WifiClient) ; 
    
    // Topic für mqtt
    //Topic 
    char FlameSate[] ="flameState"; 
    char Bewegung[]= "Bewegung" ;  
    byte* payload;  
    
     
    //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, rc="); 
          Serial.print(mqttClient.state()); 
          Serial.println("erneuter Versuch in 5 Sec"); 
        delay(5000); 
        }
         mqttClient.subscribe(Bewegung);
      }
      
       
    }    
    
       
    
    
    //Callback Nachrichten-Empfang (Subscribe)
      void callback( char* topic, byte* message, unsigned int length)
    {
      Serial.print("topic: ") ; 
      Serial.print(topic) ; 
       
    String str ; 
    for (int i =0 ; i< length ; i++)
      {
        str += (char)message[i]; 
      }
    Serial.print( "Nachrichtenempfang für topic: ");
    Serial.print(topic);
    Serial.print("Nachricht :"); 
    Serial.println(str);  
    } 
    /*void callback(char* topic, byte* payload, unsigned int length) {
      Serial.print("Message arrived on topic: ");
      Serial.println(topic);
      Serial.print("Payload: ");
      for (int i = 0; i < length; i++) {
        Serial.print((char)payload[i]);
      }
      Serial.println();
      if (strcmp(topic, FlameSate) == 0) {
        if (strcmp((char*)payload, "OK") == 0) {
          lcd.clear();
          lcd.setCursor(0, 0);
          lcd.println("OK Feuer");
          lcd.display();
        }
      } else if (strcmp(topic, Bewegung) == 0) {
        if (strcmp((char*)payload, "OK") == 0) {
          lcd.clear();
          lcd.setCursor(0, 0);
          lcd.println("OK Bewegung");
          lcd.display();
        }
      }
    }
    */
    
    
    
    void setup()
    {   
      lcd.begin(16, 2); 
       
        
    
     // Wifi Verbindung
      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()
    {  
      if (!mqttClient.connected()) {
        mqttConnect();
       
      }
        
         ///mqttClient.subscribe(FlameSate) ;
         lcd.display();  
         mqttClient.loop(); 
         
         
          
      }
    
    T 1 Antwort Letzte Antwort
    0
    • G gillian45

      Hallo zusammen,
      ich versuche seit ein paar Zeiten mit einem Esp32 Board auf Daten von meinem Broker zuzugreifen und auf dem Serial Monitor anzuzeigen aber irgendwie geht es bisher nicht. Hat jemand eine Idee was sich verbessern muss beziehungsweise komplett falsh ist ???

      #include <Arduino.h>
      #include <LiquidCrystal.h>
      #include <Adafruit_Sensor.h>
      
      #include <Wifi.h>
      # include  <PubSubClient.h> 
      // Lcd initialisierung
      LiquidCrystal lcd(22,21,5,18,23,19);
      
      // Encoder
      int Clk= 33; 
      int Data= 25; 
      int SwBut = 25; 
      int menu =1 ; 
      static int LastState ;
      
      
      // wifi Daten
      const char* ssid = "bbbbbb" ; 
      const char* password = "bur" ; 
      WiFiClient WifiClient ; 
      
      // MQTT Broker_Daten
      const char* mqttServer = "192.168.0.220" ;  
      PubSubClient mqttClient( WifiClient) ; 
      
      // Topic für mqtt
      //Topic 
      char FlameSate[] ="flameState"; 
      char Bewegung[]= "Bewegung" ;  
      byte* payload;  
      
       
      //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, rc="); 
            Serial.print(mqttClient.state()); 
            Serial.println("erneuter Versuch in 5 Sec"); 
          delay(5000); 
          }
           mqttClient.subscribe(Bewegung);
        }
        
         
      }    
      
         
      
      
      //Callback Nachrichten-Empfang (Subscribe)
        void callback( char* topic, byte* message, unsigned int length)
      {
        Serial.print("topic: ") ; 
        Serial.print(topic) ; 
         
      String str ; 
      for (int i =0 ; i< length ; i++)
        {
          str += (char)message[i]; 
        }
      Serial.print( "Nachrichtenempfang für topic: ");
      Serial.print(topic);
      Serial.print("Nachricht :"); 
      Serial.println(str);  
      } 
      /*void callback(char* topic, byte* payload, unsigned int length) {
        Serial.print("Message arrived on topic: ");
        Serial.println(topic);
        Serial.print("Payload: ");
        for (int i = 0; i < length; i++) {
          Serial.print((char)payload[i]);
        }
        Serial.println();
        if (strcmp(topic, FlameSate) == 0) {
          if (strcmp((char*)payload, "OK") == 0) {
            lcd.clear();
            lcd.setCursor(0, 0);
            lcd.println("OK Feuer");
            lcd.display();
          }
        } else if (strcmp(topic, Bewegung) == 0) {
          if (strcmp((char*)payload, "OK") == 0) {
            lcd.clear();
            lcd.setCursor(0, 0);
            lcd.println("OK Bewegung");
            lcd.display();
          }
        }
      }
      */
      
      
      
      void setup()
      {   
        lcd.begin(16, 2); 
         
          
      
       // Wifi Verbindung
        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()
      {  
        if (!mqttClient.connected()) {
          mqttConnect();
         
        }
          
           ///mqttClient.subscribe(FlameSate) ;
           lcd.display();  
           mqttClient.loop(); 
           
           
            
        }
      
      T Offline
      T Offline
      TT-Tom
      schrieb am zuletzt editiert von
      #2

      @gillian45

      Nimm mal deine wifi Daten aus dem Script. Sonst hast du Besucher

      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

      G 1 Antwort Letzte Antwort
      0
      • T TT-Tom

        @gillian45

        Nimm mal deine wifi Daten aus dem Script. Sonst hast du Besucher

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

        @tt-tom haha danke habe es total vergessen

        1 Antwort Letzte Antwort
        0
        • 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

                            918

                            Online

                            32.6k

                            Benutzer

                            81.9k

                            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