In diesem Tutorial will ich euch zeigen wie einfach ihr mit ESPEasy einen Sensor einbinden könnt und Daten übers WLAN mit MQTT verschicken könnt. ESPEasy ist ein umfangreiches Arduino Programm, das ihr nur auf einen ESP8266 kopieren könnt und über eine Web Oberfläche auf einfache Weise Sensoren einbinden könnt. Von ESPeasy werden die gängigsten Sensoren unterstützt und somit ist kein Programmieren notwendig. Es wird auch Deep Sleep wird unterstützt. Somit kann ESPEasy auch für Batteriebetriebene Projekte eingesetzt werden. In meinem Beispiel werde ich euch zeigen wie ihr mit ESPEasy Daten von einem BME280 über MQTT an Home Assistant schicken könnt. Home Assistant ist eine Opensource Hausautomation Plattform mit dem ihr euer Zuhause automatisieren könnt. Home Assistant unterstüzt viele verschiedene Plattformen und es sind dazu auch zahlreiche Integrationen vorhanden.
Grafana Web Dashboard mit Home Assistant das auf dem Raspberry Pi läuft:
ESPeasy Unterstütze Sensoren von Bastelgarage.ch
Hier ein Zusammenfassung von den unterstützen Sensoren und Modulen die wir im Sortiment haben:
Display und Anzeigen:
- 7-Segment 4 Bits Digital LED Display TM1637
- 7-Segment 8 Bits MAX7219 Digital LED Display
- OLED Display Blau I2c 128x64 0.96’’
- OLED Display Weiss I2c 128x64 0.96’’
- 20x4 Character LCD Display Blau 5V 2004
- Character LCD Display 16x2 Blau 5V 1602
Sensoren Temperatur / Feuchtigkeit / Luftdruck
- BME280 I2C Wetterstation Sensor Feuchtigkeit / Druck / Temperatur
- BMP280 Temperatur Luftdruck Sensor
- DHT11 Temperatur und Luftfeuchtigkeitssensor
- DHT22 Temperatur und Luftfeuchtigkeitssensor
- SHT10 Temperatur und Luftfeuchtigkeitssensor / SHT1x
- Si7021 hochgenauer Temperatur und Luftfeuchtigkeitssensor mit I2C
- Temperatursensor DS18B20 für Arduino und Raspberry
- Temperatursensor wasserdicht (DS18B20) 1m
- WeMos D1 Mini DHT11 Shield
Sensoren Distanz / Näherungsschalter / Counter / Bewegung
- Infrarot Sensor TCRT5000 / Auslesen von Stromzählern
- Sharp Infrarot Distanzsensor 20-150cm GP2Y0A02
- Sharp Infrarot Distanzsensor 2Y0A21
- Ultraschall Distanzmesser HC-SR05
- LJ12A3-4-Z NPN Induktiver Näherungsschalter 6-36 V DC
- MPU-6050 3-Achsen Beschleunigungssensor mit Gyroskop
- Micro PIR Bewegungsmelder Modul
- HC-SR501 PIR Bewegungsmelder Modul
- HC-SR505 Mini PIR Bewegungsmelder Modul
Licht und Stromsensoren
- Strom-/Leistungssensor INA219 I2C
- Lichtfühler Photowiderstand GM5516
- BH1750 GY-302 Digitaler Lichtsensor / Lichtstärke Sensor mit I2C
Sonstige Module und Breakoutboards
- PN532 NFC RFID Modul V3 Set mit RFID Karte und Key
- 16 Bit 4-Kanal ADC Analog Digital Wandler I2C ADS1115
- DFPlayer mini MP3 Player Modul für Arduino
- Touch Tastatur 16 Tasten 4x4 Matrix TTP229
- 16-Kanal PWM / Servo Treiber I2C (PCA9685)
- PCF8574 I2C Portexpander I/O Erweiterung 8 Pin
- I2C Schnittstelle PCF8574 für LCD Display
- IR Fernbedienung mit Infrarot Modul HX1838
Schalter / Switch / Kontakte
- Magnetischer Tür / Fenster Kontakt
- Einbau Drucktaster rot 7mm 2P
- Einbau Drucktaster IP67 Edelstahl 16mm 2P
- Arcade Taster Button beleuchtet 33mm - Rot
Servo / Relais / Mosfet
- IRF520 MOSFET Treiber Modul
- SSR-40DD 40A Solid State Relais DC zu DC
- Tower Pro Micro Servo 9G / SG90
- High Torque Servo MG996R 10kg/cm
- TowerPro Micro Servo MG90S mit Metallgetriebe
- 4-Kanal Relais Modul
ESPEasy unterstützte ESP8266 Mikrocontroller
Hier eine Zusammenfassung der unterstützten ESP8266 Mikrocontroller die wir im Sortiment haben:
Unterstützte ESP8266 von bastelgarage.ch
- WeMos D1 mini ESP8266 NodeMcu Lua Board
- WeMos D1 mini PRO 32MB ESP8266
- WeMos D1 Wireless UNO ESP8266
- ESP8266 NodeMCU V3 kompatibles Development Board
- ESP8266 NodeMCU V1 kompatibles Development Board
- ESP8266 WiFi Module - ESP-01
- Sonoff TH16 WiFi Switch 16A
ESPEasy herunterladen und installieren
Damit ihr auch die aktuellste Firmware habt, müsst ihr zuerst ESPEasy auf GitHub herunterladen. Dazu verwendest du folgenden Link:
https://github.com/letscontrolit/ESPEasy/tree/v2.0
Auf der Website findest du etwas unten, eine Übersicht über die Releases und ein Link zum Download:
Ich habe mir gleich das letzte heruntergeladen. Natürlich ist es immer etwas gefährlich, da es noch Softwarebugs enthalten kann. Falls Ihr Probleme habt, lädt euch einfach eine ältere stabile Version herunter. In diesem Beispiel habe ich das Zip-File "ESPEasy_v2.0-20180221.zip" heruntergeladen und entpackt.
Nachdem du das Zip-File entpackt hast, starte das Programm "FlashESP8266", damit du mit dem Flashen des ESP beginnen kannst:
Zuerst musst du nun den COM-Port zum Flashen wählen. Vergewissere dich vorher, dass du an deinem PC nicht noch andere Mikrocontroller angesteckt hast und versehentlich das Programm auf den falschen lädst. Ich habe für meinen Wemos D1 mini den normal Build mit einer Speichergrösse von 4096MB gewählt. Bist du dir nicht sicher über die Flashgrösse, schau besser noch schnell auf dem Wiki von ESPEasy nach: https://www.letscontrolit.com/wiki/index.php/ESP_Hardware$
Jetzt kannst du über den Button "Flash" das Flashen starten:
War der Flashvorgang erfolgreich erscheint folgende Meldung:
Gratuliere du hast deinen ersten ESP8266 mit ESPEasy geflasht!
ESPeasy mit dem WLAN verbinden
Nun müssen wir an unserem ESPEasy die WLAN Einstellungen vornehmen damit er sich mit dem lokalen WLAN verbinden kann. Zuerst musst du den ESP nochmals reseten indem du die Reset Taste auf dem Board betätigst. Anschliessend sollte der ESP im AP-Mode aufstarten und du solltest ein WLAN mit dem Namen "ESP_Easy_0" sehen mit dem du dich z.B. mit dem Handy oder PC verbinden kannst. Falls nach einem Passwort gefragt wird lautet es: configesp
Hier musst du dein WLAN anwählen, das Passwort eingeben und durch klicken auf den Button "Connect", verbindet sich der ESP auf das gewählte WLAN. Falls du nicht auf diese Seite kommst, gib bei deinem Browser die IP Adresse 192.168.4.1 ein. Falls dies nichts nützt, stecke den ESP8266 aus und wieder ein und versuche dich nochmals mit dem AP zu verbinden.
Nun versucht ESPEasy sich mit dem WLAN zu verbinden:
Hat sich der ESP8266 mit deinem WLAN Netzwerk verbunden, erscheint die IP-Adresse die er erhalten hat und über die ihr euch nun mit dem PC verbinden könnt:
Falls ihr Probleme habt oder die IP nicht mehr wisst, könnt ihr über den seriellen Monitor von Arduino mehr erfahren:
ESPEasy Settings für BME280 und MQTT Home Asisstant
Nachdem wir uns über die IP-Adresse und einem Webbrowser mit dem ESP8266 verbunden haben, können wir die Einstellungen für unseren BME280 und MQTT vornehmen. Du solltest dann folgende Startseite sehen:
Nun können wir ESPEasy Mega konfigurieren:
1. Unit Name ist wichtig und wird im Topic von MQTT verwendet. In meinem Beispiel wird der Sensor den MQTT Topic / Wohnung haben.
2. Hier könnt ihr noch ein Passwort für den ESP vergeben, damit das Webinterface geschützt ist.
3. Falls du noch ein zweites WLAN hast, kannst du es hier eintragen. Wenn der ESP sich mit dem ersten nicht verbinden kann versucht er es mit dem zweiten WLAN.
4. Ich empfehle euch den Sleep Modus erst zu aktivieren, wenn ihr mit allen Einstellungen fertig seid und alles getestet habt und keine Änderungen mehr vornehmen wollt. Ansonsten kann es sein, dass ihr euch nicht mehr auf den ESP verbinden könnt und im schlimmsten Fall den ESP neu flashen müsst. Wollt ihr den Sleep Modus nutzen, ist es wichtig das der D0 (GPIO-16) mit dem RST Pin verbunden ist. Das Sleep Delay ist die Zeit die gewartet wird bis der ESP in den Sleep Modus geht. Hier habt ihr 60s und somit genug Zeit um euch z.B. mit der Weboberfläche zu verbinden und Einstellungen vorzunehmen. Nutzt du ein Delay von 0 geht er sofort in den Sleep Modus. Damit du den ESP hier noch aufwecken kannst musst du RST mit GND verbinden.
5. Speichere die Einstellungen mit Submit
ESPEasy Mega MQTT für Home Assistant einstellen
Damit wir die Messdaten vom BME280 an Home Assistant schicken können, verwenden wir MQTT. Zum Editieren der MQTT Settings klicke auf Edit:
Nun kannst du folgende Einstellungen vornehmen:
1. Wählt "OpenHAB MQTT" an.
2. Hier trägst du die IP-Adresse von deinem Home Assistant oder die von deinem MQTT Broker ein. Der Port des MQTT Broker von Home Assistant ist 1883.
3. Damit die Daten Verschickt werden musst du noch das Häcklein bei "Enabled" setzen.
3. Damit die Daten verschickt werden, musst du noch das Häcklein bei "Enabled" setzen.
BME280 anschliessen und I2C Adresse kontrollieren
Zum anschliessen des BME280 solltet ihr euer Board stromlos machen. Anschliessend könnt ihr den BME280 wie folgt anschliessen:
BME280 | Wemos D1 mini |
VCC | 3V3 |
GND | GND |
SCL | D1 |
SDA | D2 |

Unser BME280 hat die Adresse 0x76:

ESPEasy Mega BME280 Device Settings
1. Wechsle ins Menü Device. Hier werden die gewünschten Sensoren hinzugefügt.
2. Du kannst bis zu vier Sensoren hinzufügen. Damit wir unseren BME280 hinzufügen können klicke auf Edit.
BME280 anwählen:
Folgende Einstellungen vornehmen:
1. Der Name vom Sensor wird für den MQTT Topic verwendet.
2. Hier kannst du die Device Adresse eintragen. Wir haben ja mit dem Scan gesehen das wir die Adresse 0x76 haben.
3. Hier geben wir die Zeit an, in welchem Abstand die Daten verschickt werden.
4. Der Name hier wird ebenfalls für das MQTT Topic verwendet. Wenn du alle Einstellungen vorgenommen hast, kannst du sie mit "Submit" übernehmen.
Nun solltest du bereits Messwerte vom BME280 auf der Device Übersicht sehen:
Gesendete Daten mit MQTT.fx anzeigen
Damit wir prüfen können ob ESPEasy die Daten auch sauber verschickt, empfehle ich euch die Software MQTT.fx zu verwenden die du unter folgendem Link herunterladen kannst:
http://mqttfx.jensd.de/
Nachdem du MQTT.fx insalliert hast, musst du dir nur noch eine neue Verbindung einrichten. Hier im Beispiel zu Home Assistant (Brokeradresse müsst ihr auf eure IP-Adresse anpassen):
Subscribe dein ESPEasy:
1. Klicke auf den Subscribe Button.
2. Wenn du # eingibst abonnierst du alles was der Broker empfängt. Falls du nur den Sensor willst, kannst du auch eingeben: /wohnung/wohnzimmer/#
3. Nun kannst du den Kanal mit Subscribe abonnieren.
4. Im Datenfeld solltest du dann die gesendeten Werte sehen.

Habe es auch so gemacht. Die Werte im ESPEASY Temperatur wird korrekt angezeigt. z.b. 20.5 Grad.
Allerdings in Thingspeak wird dann z.b. 60.2 angezeigt.
Wie kann ich das verhindern ?

Der Tipp mit MQTT.fx war Gold wert.
Vielen Dank

Frage:
Ich habe einige Zeit mit Sonof gearbeitet, um Klima in meinen Humidoren zu steuern und überwachen.
Bin dann vor etwa 4 Jahren auf Shelly umgestiegen.
Nun meine Frage an die Sonoff Spezialisten: Bei Shelly hat man die Möglichkeit, eine Temperatur- und Feuchteschwelle und das jeweilige Offset einzustellen. Ist das bei Sonoff auch möglich?
Für Eure Ideen bedanke ich mich im Voraus, und ich verbleibe mit freundlichen Grüssen
U. Gerlach

Hab jetzt alles bis zum Schluss hinbekommen, aber was muss ich jetzt in Homeassistant einstellen das ich die daten aus dem Mqtt angezeigt bekomme? Wird ja warscheinlich in der configuration.yaml eingestellt

ESPeasy ist richtig cool und einfach zu konfigurieren. Danke für das Tutorial.
Nur: Home Assistant ist ja richtig kacke. Ich hocke da schon Stunden dran mit der MQTT Integration und habe noch keinen Messwert gesehen. Traurig, dass diese Software von Haus aus kein MQTT kann und man da in irgendwelchen Config Files rumpfuschen muss.
Unbrauchbar!

Hallo, ich habe das ganze an einem ESP8266 NodeMCU V3 kompatibles Development Board probiert und es funktioniert perfekt.
Nun wollte ich das ganze noch an einem ESP8266 WiFi Module - ESP-01 testen - aber irgendwie funktioniert es hier nicht. Ich habe einen ESP-01S mit dem PUYA Chip drauf - macht das hier Probleme?
Über eine Hilfestellung hierzu wäre ich sehr dankbar!
Vielen Dank bereis im Voraus

Hallo Michael
Habe das gleiche Problem wie du. Ich kriege ESPeasy nicht ans WLAN mit dem ESP8266-01 (Puya).
Hast du eine Lösung gefunden?