ESP8266-01 mit Relay über MQTT - Home Assistant schalten

Hallo liebe Com,

ich habe folgendes Problem.
Ich habe ein ESP8266-01 mit Relais, wenn ich einen Code schreibe wo ich das Relais über eine Webseite Schalte, funktioniert es ohne Probleme.
Wenn ich aber nun in meinem Home Assistant einen Schalter anlege und das ganze über MQTT schalte, wird das Relais nicht betätigt.
Der Schaltbefehl kommt zwar an (sieht man am kurzen aufleuchten der LED und im Seriellen Monitor) aber das Relais Schaltet nicht.

Was mir aufgefallen ist, wenn ich über die Webseite schalte, leuchtet die Blaue LED ca 1-2 sek., über MQTT nur paar milli sek., könnte das der Fehler sein? Was ich aber nicht ganz verstehe weil der Schaltbefehl der gleiche ist.

Hier mal der Sketch:

#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <Wire.h>

#define wifi_ssid "xxxxxxxxxxxxxxxxxxxxxxxx"
#define wifi_password "xxxxxxxxxxxxxxxxxxx"

#define mqtt_server "192.168.0.163"
#define mqtt_user "xxxxxxxxxxxx"         
#define mqtt_password "xxxxxxxxxxxxxx"     

#define relay_topic "esp01/relay"
#define status_topic "esp01/status" 
#define inTopic "esp01/output"
   
WiFiClient espClient;  
PubSubClient client(espClient);  

bool status;  

    
 void setup() {  
  Serial.begin(115200);   
  setup_wifi();  
  client.setServer(mqtt_server, 1883); 
  client.setCallback(callback);  

 }  
   
 void loop() {  
  if (!client.connected()) {  
    reconnect();  
  }
  client.loop();
 }  
   
 void setup_wifi() {  
  delay(10);  
  // We start by connecting to a WiFi network  
  Serial.println();  
  Serial.print("Connecting to ");  
  Serial.println(wifi_ssid);  
  WiFi.begin(wifi_ssid, wifi_password);  
  while (WiFi.status() != WL_CONNECTED) {  
   Serial.print("."); 
   delay(500);  
  }  
  Serial.println("");  
  Serial.println("WiFi connected");  
  Serial.println("IP address: ");  
  Serial.println(WiFi.localIP());  
 }  

  void callback(char* topic, byte* message, unsigned int length) {
  Serial.print("Message arrived on topic: ");
  Serial.print(topic);
  Serial.print(". Message: ");
  String messageTemp;
  
  for (int i = 0; i < length; i++) {
    Serial.print((char)message[i]);
    messageTemp += (char)message[i];
  }
  Serial.println();

  if (String(topic) == "esp01/output") {
    Serial.print("Changing output to ");
    if(messageTemp == "on"){          
      Serial.println("on");
      byte close[] = {0xA0, 0x01, 0x01, 0xA2};
      Serial.write(close, sizeof(close));
      client.publish(relay_topic, "ON");
      delay(200);
    }
    else if(messageTemp == "off"){   
      Serial.println("off");
      byte open[] = {0xA0, 0x01, 0x00, 0xA1};
      Serial.write(open, sizeof(open));  
      client.publish(relay_topic, "OFF");
      delay(200);
    }
  }
}

 void reconnect() {
  // Loop until we're reconnected
  while (!client.connected()) {
    Serial.print("Attempting MQTT connection...");
    // Create a random client ID
    String clientId = "ESP8266-";
    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(status_topic, "ESP01 alive");
      // ... and resubscribe
      client.subscribe(inTopic);
    } else {
        Serial.print("failed, rc=");
        Serial.print(client.state());
        Serial.println(" try again in 5 seconds");
        // Wait 5 seconds before retrying
        delay(5000);
      }
   }
}