#include #include // Update these with values suitable for your network. const char* ssid = "Andreas-Grabner.NET"; const char* password = "born2win"; const char* mqtt_server = "192.168.11.35"; #define mqtt_port 1883 #define MQTT_USER "loxberry" #define MQTT_PASSWORD "OSVL0AMqISFXgr5g" #define MQTT_SERIAL_PUBLISH_CH "ESP32/Heizung/status" #define MQTT_SERIAL_RECEIVER_CH "ESP32/Heizung/stufe" WiFiClient wifiClient; PubSubClient client(wifiClient); void setup_wifi() { delay(10); // We start by connecting to a WiFi network Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } randomSeed(micros()); Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); } void reconnect() { // Loop until we're reconnected while (!client.connected()) { Serial.print("Attempting MQTT connection..."); // Create a random client ID String clientId = "ESP32Client-"; clientId += String(random(0xffff), HEX); // Attempt to connect if (client.connect(clientId.c_str(),MQTT_USER,MQTT_PASSWORD)) { Serial.println("connected"); //Once connected, publish an announcement... client.publish("icircuit/presence/ESP32/", "hello world"); // ... and resubscribe client.subscribe(MQTT_SERIAL_RECEIVER_CH); } else { Serial.print("failed, rc="); Serial.print(client.state()); Serial.println(" try again in 5 seconds"); // Wait 5 seconds before retrying delay(5000); } } } void callback(char* topic, byte *payload, unsigned int length) { Serial.println("-------new message from broker-----"); Serial.print("channel:"); Serial.println(topic); Serial.print("data:"); Serial.write(payload, length); Serial.println(); } void setup() { Serial.begin(115200); Serial.setTimeout(500);// Set time out for setup_wifi(); client.setServer(mqtt_server, mqtt_port); client.setCallback(callback); reconnect(); } void publishSerialData(char *serialData){ if (!client.connected()) { reconnect(); } client.publish(MQTT_SERIAL_PUBLISH_CH, serialData); } void loop() { client.loop(); if (Serial.available() > 0) { char mun[501]; memset(mun,0, 501); Serial.readBytesUntil( '\n',mun,500); publishSerialData(mun); } }