IR Fernbedienung - Anfänger

Sorry! Mein Fehler...

#include <ESP8266WiFi.h>
#include <RCSwitch.h>
#include "fauxmoESP.h" 

#include <IRremoteESP8266.h> //by Ken Shirriff (C) NEU
#include <IRsend.h>

#define WIFI_SSID "Mr. NiceGuy (.Y.)"
#define WIFI_PASS "*********"

fauxmoESP alexawifi;
RCSwitch mySwitch = RCSwitch();

IRsend IRLED(4); // IRLED angeschlossen am D2 Pin (GPIO4) - NEU

unsigned long TimerA;

void wifiSetup() {

// -----------------------------------------------------------------------------
// WLAN SETUP
// -----------------------------------------------------------------------------
 
    WiFi.mode(WIFI_STA);
 
    Serial.printf("Verbindungs zu %s wird aufgebaut ", WIFI_SSID);
    
    WiFi.begin(WIFI_SSID, WIFI_PASS);
 
    while (WiFi.status() != WL_CONNECTED) 
    {
        Serial.print(">");
        delay(100);
    } 
    Serial.println("");
    Serial.printf("Verbunden! SSID: %s, IP Adresse: %s\n", WiFi.SSID().c_str(), WiFi.localIP().toString().c_str());
}

void anfrage(uint8_t device_id, const char * device_name, bool state) 
{
  Serial.print("Gerät: "); 
  Serial.println(device_name); 
  Serial.print("Status: ");
  
  if (state) //Geräte anschalten
  {  
    if(device_id == 0)            //AppleTV
    {
      Serial.println("AN");
      IRLED.sendNEC(0x77E12080, 32);   //AppleTV an
      delay(50);
    }

    else if (device_id == 1)      //Fernseher
    { 
      Serial.println("AN");
      IRLED.sendRC6(0x1000C, 20);   //Fernseher an
      delay(50);
    }

    else if (device_id == 2)      //Anlage
    { 
      Serial.println("AN");
      IRLED.sendNEC(0x10E03FC, 32);   //Anlage an
      delay(50);
    }

    else if (device_id == 3)      //YouTube
    { 
      Serial.println("AN");
      IRLED.sendRC6(0x1000C, 20);   //Fernseher an
      delay(500);
      IRLED.sendNEC(0x10E03FC, 32);   //Anlage an
      delay(500);
      IRLED.sendNEC(0x77E1FA80, 32);   //AppleTV an
      delay(10000);
      
      for(int i = 0; i < 2; i++)
      {
        IRLED.sendNEC(0x77E16080, 32); //Apple TV rechts 
        delay(1000);
      }

      IRLED.sendNEC(0x77E1A080, 32);   //Apple TV Bestätigen
      delay(500);
      IRLED.sendRC5(0x839, 12);   //Fernseher auf AppleTV Eingang
      delay(500);
      IRLED.sendNEC(0x10E0BF4, 32);   //Anlage auf DVD Eingang
      delay(500);
    }

    else if (device_id == 4)      //Netflix
    { 
      Serial.println("AN");
      IRLED.sendRC6(0x1000C, 20);   //TV an
      delay(500);
      IRLED.sendNEC(0x10E03FC, 32);   //Anlage an
      delay(500);
      IRLED.sendNEC(0x77E1A080, 32);   //Apple TV an
      delay(10000);
      IRLED.sendNEC(0x77E13A80, 32);   //Apple TV Bestätigen
      delay(1000);
      IRLED.sendRC5(0x84C, 12);   //TV auf AppleTV Eingang
      delay(500);
      IRLED.sendNEC(0x10E23DC, 32);   //Anlage auf DVD Eingang
      delay(500);
    }

    else if (device_id == 5)      //PlayStation Modus
    { 
      Serial.println("AN");
      IRLED.sendRC6(0x1000C, 20);   //TV an
      delay(500);
      IRLED.sendNEC(0x10E03FC, 32);   //Anlage an
      delay(10000);
      IRLED.sendRC5(0xC4, 12);   //TV auf PS4 Eingang
      delay(500);
      IRLED.sendNEC(0x10E0BF4, 32);   //Anlage auf DVD Eingang
      delay(500);
    }

    else if (device_id == 6)      //Musik
    { 
      Serial.println("AN");
      IRLED.sendNEC(0x10E03FC, 32);   //Anlage an
      delay(10000);
      IRLED.sendNEC(0x10E23DC, 32);   //Anlage auf CD/Bluetooht
      delay(500);
    }
  }
  
  else //Geräte Ausschalten
  {
    
    if(device_id == 0)            //Apple TV
    { 
      Serial.println("AUS");

      TimerA = millis();
      
      do
      {
        IRLED.sendNEC(0x77E1A080, 32);   //Apple TV aus
        delay(50);
      }while(millis()-TimerA >= 4000UL);
      
    }

    else if (device_id == 1)      //Fernseher
    { 
      Serial.println("AUS");
      IRLED.sendRC6(0x1000C, 20);   //Fernseher aus
      delay(50);
    }
    
    else if (device_id == 2)      //Anlage
    { 
      Serial.println("AUS");
      IRLED.sendNEC(0x10EF906, 32);   //Anlage aus
      delay(50);
    }

    else if (device_id == 3)      //Youtube
    { 
      Serial.println("AUS");
      IRLED.sendRC6(0x1000C, 20);   //TV aus
      delay(500);
      IRLED.sendNEC(0x10EF906, 32);   //Anlage aus
      delay(500);
      IRLED.sendNEC(0x77E1C080, 32);   //AppleTV Home
      delay(500);
      
      for(int i = 0; i < 3; i++)
      {
        IRLED.sendNEC(0x77E19080, 32); //Apple TV links 
        delay(500);
      }

      //IRLED.sendNEC(0x77E1A080, 32);   //Apple TV aus
      //delay(500);
    }

    else if (device_id == 4)      //Netflix
    { 
      Serial.println("AUS");
      IRLED.sendRC5(0x84C, 12);   //TV aus
      delay(500);
      IRLED.sendRC5(0x84C, 12);   //Anlage aus
      delay(500);
      IRLED.sendNEC(0x77E1C080, 32);   //AppleTV Home
      delay(500);
      //IRLED.sendNEC(0x77E1A080, 32);   //Apple TV aus
      //delay(50);
    }

    else if (device_id == 5)      //Zocker Modus
    { 
      Serial.println("AUS");
      IRLED.sendRC6(0x1000C, 20);   //TV aus
      delay(500);
      IRLED.sendNEC(0x10EF906, 32);   //Anlage aus
      delay(500);
    }

    else if (device_id == 6)      //Music
    { 
      Serial.println("AUS");
      IRLED.sendNEC(0x10EF906, 32);   //Anlage aus
      delay(50);
    }
  }
}

void geraete(){
  
    alexawifi.addDevice("Apple TV");      //ID 0    
    alexawifi.addDevice("Fernseher");     //ID 1
    alexawifi.addDevice("Anlage");        //ID 2
    alexawifi.addDevice("YouTube");       //ID 3
    alexawifi.addDevice("Netlix");        //ID 4
    alexawifi.addDevice("PlayStation Modus");  //ID 5
    alexawifi.addDevice("Musik");         //ID 6
    
    
    
    alexawifi.onMessage(anfrage);
    

}

void setup() {

    Serial.begin(115200);
    Serial.println("Nach dem Verbinden, sage 'Alexa, schalte <Gerät> an' oder 'aus'");
    
    mySwitch.enableTransmit(5);
   
    IRLED.begin(); // NEU

    wifiSetup();
    geraete();
  
}

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