IRsend sended nur das erste IR Signal und bricht dann ab

Guten Abend,

irgendwie bekomme ich es nicht zustande, zwei IR Signale (eins NEC das andere RC5) mit einem Delay hintereinander zu senden.

Einzeln senden funktioniert jedoch, nur wenn ich einen Delay dazwischen hinzufüge, wird nur der jeweils erste gesendet :o

Hier der gesamte Code:

    // Steuerung des Flamingo Switch Sets (SF-501) + Led-Strip mit RF-Empfänger via 433Mhz Modul & Led-Kette via IR-LED
    //Programmiert für Esp8266

    #include <Arduino.h>
    #include <IRremoteESP8266.h>
    #include <IRsend.h>
    #include <ESP8266WiFi.h>
    #include "fauxmoESP.h"
    #include <RCSwitch.h>
    #include <NewRemoteTransmitter.h>
    #define WIFI_SSID "xxxxxxxx"
    #define WIFI_PASS "xxxxxxxxxxxxx"
    #include <Adafruit_NeoPixel.h> 
    #include <SPI.h> 
    #define SERIAL_BAUDRATE                 115200

    fauxmoESP fauxmo;  
    NewRemoteTransmitter transmitter(5917696, 2, 267, 3);
    IRsend irsend(4); // IR-LED wird via GPIO-Pin 4 gesteuert (D2)
    RCSwitch mySwitch = RCSwitch();

    void rc_setup() {

 
 mySwitch.enableTransmit(2);

 // Optionale Puls-Länge
 mySwitch.setPulseLength(470);
 
 pinMode(13,OUTPUT);
    }
    
    // -----------------------------------------------------------------------------
    // Wifi
    // -----------------------------------------------------------------------------
    
    void wifiSetup() {
      WiFi.mode(WIFI_STA);
     
      // Connect
      Serial.printf("[WIFI] Connecting to %s ", WIFI_SSID);
      WiFi.begin(WIFI_SSID, WIFI_PASS);
     
      // Wait
      while (WiFi.status() != WL_CONNECTED) {
          Serial.print(".");
          delay(100);
      }
      Serial.println();
     
      // Connected!
      Serial.printf("[WIFI] STATION Mode, SSID: %s, IP address: %s\n", WiFi.SSID().c_str(), WiFi.localIP().toString().c_str());

     
    }
      
      
      }
    void callback(uint8_t device_id, const char * device_name, bool state) {
      Serial.printf("[MAIN] %s state: %s\n", device_name, state ? "ON" : "OFF");
      

      if ( (strcmp(device_name, "Fernseher") == 0) ) {
        if (state) {
          irsend.sendRC5(0xC,12);
          delay(5000);
          irsend.sendNEC(0x80BF3BC4, 32);
          
        } else {
          irsend.sendRC5(0x80C,12);
          delay(5000);
          irsend.sendNEC(0x80BF3BC4, 32);
        }
      }


      
// Ein und Ausschalten der Funksteckdose via 433Mhz Sender
     if ( (strcmp(device_name, "Schlafecke") == 0) ) {
        if (state) {
          transmitter.sendUnit(4, true);
        } else {
          transmitter.sendUnit(4, false);
        }
      }
// Ein und Ausschalten der Funksteckdose via 433Mhz Sender
      if ( (strcmp(device_name, "Stehlampe") == 0) ) {
        if (state) {
          transmitter.sendUnit(7, true);
        } else {
          transmitter.sendUnit(7, false);
        }
      }
//Ein und Ausschalten des LED-Strips (Tisch!) via IR-LED
      if ( (strcmp(device_name, "tischLampe") == 0) ) {
        if (state) {
          irsend.sendNEC(0xF7C03F, 32);
        } else {
          irsend.sendNEC(0xF740BF, 32);
        }
      }

      //Ein und Ausschalten des LED-Strips (Poster!) via 433Mhz Sender
      if ( (strcmp(device_name, "poster") == 0) ) {
        if (state) {
          mySwitch.send("001000111000111000000100"); //An
        } else {
          mySwitch.send("001000111000111000000100"); //Aus
        }
      }

      if ( (strcmp(device_name, "gameMode") == 0) ) {
        if (state) {
          irsend.sendNEC(0xF7C03F, 32); //Tischbeleuchtung An
          delay(40);
          irsend.sendNEC(0xF720DF, 32); // Tischbeleuchtung auf Rot
          delay(40);
          mySwitch.send("001000111000111000000100"); //Poster An
          delay(40);
        } else {
          irsend.sendNEC(0xF740BF, 32); //Tischbeleuchtung aus
        }
      }
    }
 
    void setup() {
      
        Serial.begin(SERIAL_BAUDRATE);
        Serial.println();
        Serial.println();
        Serial.println("FauxMo demo sketch");
        Serial.println("After connection, ask Alexa/Echo to 'turn pixels on' or 'off' or 'turn relay on' or 'off'");
        irsend.begin();
      // Wifi
      wifiSetup();
     
      // Fauxmo
      fauxmo.addDevice("Fernseher"); //Switch => Steckleiste
      fauxmo.addDevice("Schlafecke"); //Switch => Drucker
      fauxmo.addDevice("Stehlampe"); //Unbenutzt
      fauxmo.addDevice("tischLampe"); //LED-Strip an Tisch befestigt
      fauxmo.addDevice("poster"); //LED-Strip im Posterrahmen
      fauxmo.onMessage(callback);

      //Rc-Switch
      rc_setup();

    }

    void loop() {
        
        fauxmo.handle();
    }

Und um diese Stelle geht es:

void callback(uint8_t device_id, const char * device_name, bool state) {
      Serial.printf("[MAIN] %s state: %s\n", device_name, state ? "ON" : "OFF");
      

      if ( (strcmp(device_name, "Fernseher") == 0) ) {
        if (state) {
          irsend.sendRC5(0xC,12);
          delay(5000);
          irsend.sendNEC(0x80BF3BC4, 32);
          
        } else {
          irsend.sendRC5(0x80C,12);
          delay(5000);
          irsend.sendNEC(0x80BF3BC4, 32);
        }
      }

Wahrscheinlich ist es nur ein dummer Anfängerfehler, aber ich weiß echt nicht weiter :confused:

Danke :wink: