ESP32 oder ESP8266 mit Alexa und Google Home steuern

Diese Anleitung zeigt, wie du einen ESP32 oder ESP8266 (NodeMCU, Wemos D1 mini) mit Amazon Alexa und Google Home verbindest, damit du ein Relais, eine Lampe oder einen anderen Ausgang per Sprache ein- und ausschalten kannst.

Du musst keinen eigenen Alexa Skill und keine Google Home Action schreiben, und du musst keine Ports an deinem Router freigeben.

So funktioniert es

Sinric Pro esp8266 esp32 picow

  1. Auf deinem ESP32 oder ESP8266 läuft die Sinric Pro Bibliothek. Sie hält eine sichere Verbindung zum Sinric Pro Server offen.
  2. Du verknüpfst den Sinric Pro Alexa Skill oder die Google Home Action einmalig mit deinem Sinric Pro Konto.
  3. Wenn du „Alexa, schalte den Schalter ein“ sagst, sendet Alexa den Befehl an Sinric Pro, und Sinric Pro leitet ihn an dein Board weiter.

Da das Board die Verbindung zum Server selbst aufbaut, funktioniert das von überall und in jedem Heimnetz.

Sinric Pro ist ein offizieller Alexa Smart Home Skill und eine offizielle Google Home Action. Es wird kein Gerät emuliert. Wenn du von Espalexa oder fauxmoESP kommst, lies Espalexa oder fauxmoESP „Device Not Found“?.

Was du brauchst

  1. Ein ESP32 oder ESP8266 Entwicklungsboard.
  2. Ein Relaismodul oder eine LED zum Schalten.
  3. Arduino IDE oder PlatformIO.
  4. Ein kostenloses Sinric Pro Konto. Die Grenzen des kostenlosen Tarifs stehen unter Preise.

Schritt 1: Gerät in Sinric Pro anlegen

Sinric Pro create device alexa

Sinric Pro copy device id

Der Gerätename ist das, was du zu Alexa oder Google Home sagst. Wähle also einen Namen, der sich leicht aussprechen lässt.

Schritt 2: Sinric Pro Bibliothek installieren

Öffne in der Arduino IDE Werkzeuge > Bibliotheken verwalten, suche nach SinricPro und klicke auf Installieren.

Sinric Pro install SinricPro library

PlatformIO, Abhängigkeiten und häufige Fehler: How to install the Sinric Pro library.

Schritt 3: Code hochladen

Derselbe Sketch läuft auf ESP32 und ESP8266. Trage deine WLAN-Daten und die drei Werte aus Schritt 1 ein.

#include <Arduino.h>
#if defined(ESP8266)
  #include <ESP8266WiFi.h>
#elif defined(ESP32)
  #include <WiFi.h>
#endif

#include <SinricPro.h>
#include <SinricProSwitch.h>

#define WIFI_SSID   "YOUR-WIFI-SSID"
#define WIFI_PASS   "YOUR-WIFI-PASSWORD"
#define APP_KEY     "YOUR-APP-KEY"
#define APP_SECRET  "YOUR-APP-SECRET"
#define SWITCH_ID   "YOUR-DEVICE-ID"

#if defined(ESP8266)
  #define RELAY_PIN 12   // D6
#elif defined(ESP32)
  #define RELAY_PIN 16
#endif

// called when Alexa, Google Home or the Sinric Pro app turns the switch on or off
bool onPowerState(const String &deviceId, bool &state) {
  Serial.printf("Device %s turned %s\r\n", deviceId.c_str(), state ? "on" : "off");
  digitalWrite(RELAY_PIN, state ? HIGH : LOW);
  return true; // request handled
}

void setup() {
  Serial.begin(115200);
  pinMode(RELAY_PIN, OUTPUT);

  WiFi.begin(WIFI_SSID, WIFI_PASS);
  while (WiFi.status() != WL_CONNECTED) {
    delay(250);
    Serial.print(".");
  }

  SinricProSwitch &mySwitch = SinricPro[SWITCH_ID];
  mySwitch.onPowerState(onPowerState);

  SinricPro.begin(APP_KEY, APP_SECRET);
}

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

Wenn du keinen Code schreiben möchtest, kann die Funktion Zero Code im Portal den Sketch für dich erzeugen.

Sobald das Board verbunden ist, erscheint das Gerät im Portal als online und lässt sich dort ein- und ausschalten. Die Verdrahtung eines Relais zeigt Switch Tutorial Part 1.

Schritt 4: Mit Amazon Alexa verbinden

Mehr zu Gerätesuche, Routinen und Fehlerbehebung: Amazon Alexa.

Schritt 5: Mit Google Home verbinden

Die Bezeichnungen in der App können je nach Sprache leicht abweichen.

Mehr: Google Home.

Samsung SmartThings

Mehr: Samsung SmartThings.

Was kannst du noch bauen?

Ein Schalter ist nur der Anfang. Dieselben Schritte gelten für andere Gerätetypen:

Häufige Fragen

Muss ich einen eigenen Alexa Skill erstellen?

Nein. Du aktivierst den vorhandenen Sinric Pro Skill und verknüpfst dein Konto.

Funktioniert es auch mit anderen Boards als ESP32 und ESP8266?

Ja. Es gibt SDKs für Raspberry Pi Pico W, Arduino UNO R4 WiFi, Nano 33 IoT, MKR WiFi 1010, MicroPython, Python und NodeJS. Siehe die SDK-Liste.

Kann ich mehr als ein Gerät mit einem Board steuern?

Ja. Ein ESP32 oder ESP8266 kann mehrere Sinric Pro Geräte bereitstellen, zum Beispiel eine 4-Kanal-Relaisplatine. Siehe Modules und Teil 3 des Switch-Tutorials.

Kann ich es mit Apple HomeKit oder Home Assistant verwenden?

Ja. Siehe Homebridge (HomeKit) und Home Assistant.

Fehlerbehebung

Mögliche Lösungen findest du auf der Seite Troubleshooting.

This document is open source. See a typo? Please create an issue