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();
}