Mein Ostergeschenk an Euch :-)

Begonnen von rr725, 14 April 2017, 12:42:45

Vorheriges Thema - Nächstes Thema

rr725

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