mittels ESP8266 alle Devices, welche sich mittels HHTP Request bedienen lassen, Homematic, FHEM;Broadlink, etc. für Alexa verfügbar machen:
Viel Spass und frohe Ostern :- ) Das Teil ist erweiterbar um zus. Geräte zu steuern, einfach an dem Beispiel Kino orientieren und entspr. hinzufügen.
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <WiFiUdp.h>
#include <functional>
#include "switch.h"
#include "UpnpBroadcastResponder.h"
#include "CallbackFunction.h"
#include "CallbackFunction.h"
#include "ESP8266HTTPClient.h"
boolean
const char* ssid = "xxxxxx";
const char* password = "xxxxxx";
boolean wifiConnected = false;
UpnpBroadcastResponder upnpBroadcastResponder;
Switch *Kino = NULL;
void setup()
{
Serial.begin(9600);
// Initialise wifi connection
wifiConnected = connectWifi();
op()
{
if(wifiConnected){
upnpBroadcastResponder.serverLoop();
kitchen->serverLoop();
Kino->serverLoop();
}
}
void KinoOn() {
Serial.print("Switch 1 turn on ...");
HTTPClient http; //Declare an object of class HTTPClient
http.begin("http://xxx.xxx.xxx.xxx/config/xmlapi/statechange.cgi?ise_id=9519&new_value=1");
int httpCode = http.GET();
if (httpCode > 0) {
String payload = http.getString();
Serial.println(payload);
http.end();
}}
void KinoOff() {
Serial.print("Switch 1 turn off ...");
HTTPClient http;
http.begin("http://xxx.xxx.xxx.xxx/config/xmlapi/statechange.cgi?ise_id=9519&new_value=0");
int httpCode = http.GET();
if (httpCode > 0) {
String payload = http.getString();
Serial.println(payload);
http.end();
}}
boolean connectWifi(){
boolean state = true;
int i = 0;
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
Serial.println("");
Serial.println("Connecting to WiFi");
Serial.print("Connecting ...");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
if (i > 10){
state = false;
break;
}
i++;
}
if (state){
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
}
else {
Serial.println("");
Serial.println("Connection failed.");
}
return state;
}