Mein Esp32 mit einem mqtt_server(auf ioBroker) zu verbinden


Hiii zusammen !!!
Ich habe vor ein paar Tagen mit ioBroker angefangen. Ich habe den ioBroker auf ein Virtuelles Linux-Rechner installiert und habe da den mqtt_Adapter als Broker konfiguriert. Daneben wollte ich mit einem Microcontroller auf dem mqtt_server zugreifen aber leider klappt es nocht nicht. Ich habe wie folgt mein Server konfiguriert. Hat jemand schon Erfahrung damit ?? Vielleicht liegt es bei der mqtt_server IP_Address ? Ich habe ja schon Vieles versucht ohne Erfolg.

Allerdings könnt ihr euch noch mein kleines Code anschauen

#include <Arduino.h>
# include <WiFi.h>
# include <PubSubClient.h>






/*#include <Adafruit_Sensor.h>
#include <DHT.h> 
#include <DHT_U.h>


#define LED_PIN 12
#define DHTPIN 32
#define DHTTYPE DHT11 */

const char* ssid = "WiFI_ID" ; 
const char* password = "Wifi_passwd" ; 
WiFiClient WifiClient ; 

// MQTT Broker_Daten
const char* mqttServer = "10.0.2.15" ;  // Broker_Ip add  
PubSubClient mqttClient( WifiClient) ; 
long ZeitAlt = -9999; 


//Callback Nachrichten-Empfang (Subscribe)
void callback( char* topic, byte* message, unsigned int length)
{
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);  
}

//Verbindung mit dem Broker herstellen
void mqttConnect()
{
  Serial.print("Verbindung zum MQTT_Server"); 
  Serial.print( mqttServer); 
  while(!mqttClient.connected())
  {
    Serial.print("."); 
    if (mqttClient.connect("ESP32Client"))
    {
      Serial.print("MQTT-VErbunden"); 
    }
    else
    {
      Serial.print("Fehlgeschlagen, rc="); 
      Serial.print(mqttClient.state()); 
      Serial.println("erneuter Versuch in 5 Sec"); 
    delay(5000); 
    }

  }
 mqttClient.subscribe("test/esp32"); 
} 

void setup() {
  // put your setup code here, to run once:

  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() {
  // put your main code here, to run repeatedly:
  if(!mqttClient.connected())
  {
    mqttConnect();
  }
  mqttClient.loop();

  if(millis()-ZeitAlt> 3000)
  {
    char txtString[20];
    ZeitAlt= millis(); 
    sprintf( txtString, "Zeitstempel %", millis()/1000); 
    Serial.println(String("Versand MQTT-NAchricht:") + txtString);
    mqttClient.publish("test/esp32", txtString); 
  }
  delay(200); 

}

What’s the output of the firmware?

Also english is preferred here.

Oupss Sorry. So i got this IP Add:192.168.0 from the Monitor, actually the IP Adress of my Windows Computer

Try setting the network mode of the VM’s network adapter to Bridged instead of NAT so that the VM directly pulls an IP from the router. Then recheck the VM’s IP and use it in the sketch.

:smiley: Thank you very much. i am working on that since yesterday and i tried everything

So it works? Good to close?

yes it works finally. Thanks