Alexa Steuerung mit ESP8266 und Faumox

Hallo,

Ich versuche momentarn mit einem ESP8266 NodeMCU, ein paar MOSFET´s und nem RGB LED Streifen eine
Alexa RGB Steuerung zu Bauen. Das Problemm ist nicht der Aufbau sondern der Code.
mein Aktueller Code sieht so aus: Code
Nun zu meinem Problem.
Sobald ich versuche den Code aufzuspielen, kommt diese Fehler Meldung:

Fehlermeldung

Ich hoffe das ihr mir helfen könnt.

Füttere doch einfach mal die Forumssuche mit dem Stichwort Alexa.

Gruß Tommy

Habe ich schon getan… ist nichts brauchbares bei rausgekommen…

Hallo,

ich hatte fauxmo mal kurz laufen. Problem war, daß der ESP-Core 2.3.0 nicht ging, es wollte eine aktuellere version von github.
Mit dem aktuellen Arduino ESP-Core 2.4.0 habe ich nicht mehr getestet, nutze inzwischen stabil den Wemo-Emulator:

Gruß aus berlin
Michael

Kompilieren die Wifi Beispiele aus der IDE poblemlos?

Hallo,

mal kurz rumgespielt:
Mit fauxmoESP von seiner bitbucket-Seite (2.4.2):
https://bitbucket.org/xoseperez/fauxmoesp/downloads/
compiliert der Sketch des TO unter IDE 1.6.9 und ESP Core 2.3.0 ohne Fehlermeldungen.

Mit der fauxmoESP von github (2.0?) vermißt er eine Funktion seiner Lib, die er in 2.0 eigentlich eingebaut hat?

Mit der fauxmo 2.4.2 unter IDE 1.8.5 mit ESP-Core 2.4.0 meckert er über den AsyncTCP-Client...

Für mich ziemlich ungereimt, das fauxmoESP.

Gruß aus Berlin
Michael

Hallo,

Habe gerade mal die esp8266-alexa-wemo-emulator ausprobiert.
Funktioniert auch soweit Super.
Leider "Hängen" sich die Switche immer wieder auf...
Das heist das wenn ich einen schalter an mache über die Echo App oder über den Echo selber dieser ich immer wieder anschaltet...

Hier der neue Code: Neuer Code - Pastebin.com

Warum setzt Du den Code nicht hier direkt in Codetags (</> Button oben links im Forumseditor) rein?
Falls er zu lang wäre, kann man ihn auch sinnvoll auf 2 Postings aufteilen.

Gruß Tommy

Hi

Code aus #1

#include <Arduino.h>
#ifdef ESP32
    #include <WiFi.h>
#else
    #include <ESP8266WiFi.h>
#endif
#include "fauxmoESP.h"
#include "credentials.sample.h"

#define SERIAL_BAUDRATE                 115200
#define REDPIN                           14
#define GREENPIN                         13
#define BLUEPIN                          12
int r, g, b;

fauxmoESP fauxmo;

// -----------------------------------------------------------------------------
// Wifi
// -----------------------------------------------------------------------------

void wifiSetup() {

    // Set WIFI module to STA mode
    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 setup() {

    // Init serial port and clean garbage
    Serial.begin(SERIAL_BAUDRATE);
    Serial.println();
    Serial.println();

    //LED
    pinMode(REDPIN, OUTPUT);
    pinMode(GREENPIN, OUTPUT);
    pinMode(BLUEPIN, OUTPUT);
    analogWriteFreq(500);
    analogWriteRange(100);
    // Wifi
    wifiSetup();

    // LED


    // You can enable or disable the library at any moment
    // Disabling it will prevent the devices from being discovered and switched
    fauxmo.enable(true);

    // Add virtual devices
    fauxmo.addDevice("rot");
  fauxmo.addDevice("blau"); 
  fauxmo.addDevice("grün");

    // fauxmoESP 2.0.0 has changed the callback signature to add the device_id,
    // this way it's easier to match devices to action without having to compare strings.
    fauxmo.onSetState([](unsigned char device_id, const char * device_name, bool state) {
        Serial.printf("[MAIN] Device #%d (%s) state: %s\n", device_id, device_name, state ? "ON" : "OFF");
          if (state) {
    if(device_id == 0){
      digitalWrite(REDPIN, 100);
      }
    if(device_id == 1){
      digitalWrite(GREENPIN, 100);
      }
    if(device_id == 2){
      digitalWrite(BLUEPIN, 100);
      }
    if(device_id == 3){
    digitalWrite(REDPIN, 100);
    digitalWrite(GREENPIN, 100);
    digitalWrite(BLUEPIN, 100);
    }
  } else {
     digitalWrite(REDPIN, 0);
    digitalWrite(GREENPIN, 0);
    digitalWrite(BLUEPIN, 0);
    if(device_id == 3){
    digitalWrite(REDPIN, 0);
    digitalWrite(GREENPIN, 0);
    digitalWrite(BLUEPIN, 0);
    }
      }
    });

    // Callback to retrieve current state (for GetBinaryState queries)
  /*  fauxmo.onGetState([](unsigned char device_id, const char * device_name) {
        
    }); */

}

void loop() {

    // Since fauxmoESP 2.0 the library uses the "compatibility" mode by
    // default, this means that it uses WiFiUdp class instead of AsyncUDP.
    // The later requires the Arduino Core for ESP8266 staging version
    // whilst the former works fine with current stable 2.3.0 version.
    // But, since it's not "async" anymore we have to manually poll for UDP
    // packets
    fauxmo.handle();

    static unsigned long last = millis();
    if (millis() - last > 5000) {
        last = millis();
        Serial.printf("[MAIN] Free heap: %d bytes\n", ESP.getFreeHeap());
    }

}

Code aus #6

#include <ESP8266WiFi.h>

#include "WemoSwitch.h"
#include "WemoManager.h"
#include "CallbackFunction.h"

// prototypes
boolean connectWifi();

//on/off callbacks
void RotOn();
void RotOff();
void GruenOn();
void GruenOff();
void BlauOn();
void BlauOff();

//------- Replace the following! ------
char ssid[] = "";       // your network SSID (name)
char password[] = "";  // your network key

WemoManager wemoManager;
WemoSwitch *Rot = NULL;
WemoSwitch *Gruen = NULL;
WemoSwitch *Blau = NULL;

const int ledPin = BUILTIN_LED;

void setup()
{
  Serial.begin(115200);

  // Set WiFi to station mode and disconnect from an AP if it was Previously
  // connected
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);

  // Attempt to connect to Wifi network:
  Serial.print("Connecting Wifi: ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  IPAddress ip = WiFi.localIP();
  Serial.println(ip);

  wemoManager.begin();
  // Format: Alexa invocation name, local port no, on callback, off callback
  Rot = new WemoSwitch("LED Rot", 80, RotOn, RotOff);
  Gruen = new WemoSwitch("LED Gruen", 81, GruenOn, GruenOff);
  Blau = new WemoSwitch("LED Blau", 82, BlauOn, BlauOff);
  wemoManager.addDevice(*Rot);
  wemoManager.addDevice(*Gruen);
  wemoManager.addDevice(*Blau);

  pinMode(ledPin, OUTPUT); // initialize digital ledPin as an output.
  delay(10);
  digitalWrite(ledPin, HIGH); // Wemos BUILTIN_LED is active Low, so high is off
}

void loop()
{
  wemoManager.serverLoop();
}

void RotOn() {
    Serial.print("Switch 1 turn on ...");
    digitalWrite(ledPin, LOW);
    delay(100);
    digitalWrite(ledPin, HIGH);
}

void RotOff() {
    Serial.print("Switch 1 turn off ...");
    digitalWrite(ledPin, HIGH);
}

void GruenOn() {
    Serial.print("Switch 2 turn on ...");
    digitalWrite(ledPin, LOW);
    delay(100);
    digitalWrite(ledPin, HIGH);
    delay(100);
    digitalWrite(ledPin, LOW);
    delay(100);
    digitalWrite(ledPin, HIGH);
}

void GruenOff() {
    Serial.print("Switch 2 turn off ...");
    digitalWrite(ledPin, HIGH);
}

void BlauOn() {
    Serial.print("Switch 3 turn on ...");
    digitalWrite(ledPin, LOW);
    delay(100);
    digitalWrite(ledPin, HIGH);
    delay(100);
    digitalWrite(ledPin, LOW);
    delay(100);
    digitalWrite(ledPin, HIGH);
    delay(100);
    digitalWrite(ledPin, LOW);
    delay(100);
    digitalWrite(ledPin, HIGH);
}

void BlauOff() {
    Serial.print("Switch 3 turn off ...");
    digitalWrite(ledPin, HIGH);
}

… done :wink: (passen sogar Beide in Einen Post)
Hintergrund: In 6 Monaten sind die Codes auf PasteBin gelöscht und hier kann man nicht mehr verfolgen, was sich wie entwickelt hat oder wo der Fehler war.

Ach, hat der TO einen HiWi gefunden? :wink:

Gruß Tommy

Hallo,

ist euch auch schon aufgefallen das ALEXA manchmal nachts einfach keine Befehle entgegen nimmt und wie eine Hexe lacht ... ?

Gruss Temucin

Nö, ich nutze den Kram nicht.
Spracherkennung erst, wenn diese lokal in meinem Netz erfolgt. Ein Mozilla-Projekt arbeitet daran.

Früher mussten Geheimdienste und Artverwandte sich etwas einfallen lassen, um eine Wanze in Deine Wohnung zu bekommen. Heute kaufst und installierst Du sie selbst.

Gruß Tommy

Hi

Tommy56:
Früher mussten Geheimdienste und Artverwandte sich etwas einfallen lassen, um eine Wanze in Deine Wohnung zu bekommen. Heute kaufst und installierst Du sie selbst.

+1

Man muß aber zugeben: Es ist ein angefressener Apfel dran - da kann man kaum widerstehen ... :confused:

MfG

Was will ich mit Fallobst?

Gruß Tommy

Nix Fallobst - dann wäre ein Wurm drin (verkauft Sich aber wohl nicht so gut, wenn's auch lustiger anzusehen wäre)
Wenn Jemand Fallobst frisst, ist meist der ganze Apfel weg (zugegeben, bisher nur Kühe dabei beobachtet und Das ist nun auch schon etliche Jahre her)

Wie Dem auch sei: Jedem, Der mag, Seinen eigenen angefressenen Apfel, die Streifen-Schuhe, oder das Krokodil auf dem Ärmel.
Die Liste dürfte ziemlich unvollständig sein :wink:

MfG

Tommy56:
Nö, ich nutze den Kram nicht.
Spracherkennung erst, wenn diese lokal in meinem Netz erfolgt. Ein Mozilla-Projekt arbeitet daran.

Früher mussten Geheimdienste und Artverwandte sich etwas einfallen lassen, um eine Wanze in Deine Wohnung zu bekommen. Heute kaufst und installierst Du sie selbst.

Gruß Tommy

100% deiner Meinung. Ich nutze nicht mal Siri, ausser im Auto zur Sprachwahl. Aber das konnte vor gefühlten (oder echten?) 20 Jahre schon mein Nokia.