@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.