ESP8266 mit ESPEasy in wenigen Minuten an Fhem anbinden

Begonnen von Reinhart, 26 Dezember 2015, 10:33:51

Vorheriges Thema - Nächstes Thema

Reinhart

esp8266 mit ESPEasy in wenigen Minuten an Fhem anbinden!

Auf der Suche nach einem Sketch für den esp8266 bin ich schließlich auf ESPEasy gestoßen. Ich wollte eine Software mit der möglichst viele Sensoren eingesetzt werden können und anderseits das einfach zu konfigurieren ist und alles über Wlan übertragen wird. Jedesmal einen anderen Sketch hochladen wollte ich nicht.
In diesem Beispiel habe ich den Temperaturfühler DS18b20 angehängt. Ich habe fast alle Themen hier im Board durchstöbert und da ist mir aufgefallen, dass alle ihre Sketche für den 8266 entweder selber schreiben oder durch kleine Änderungen auf ihrem 8266 lauffähig machen. Ich habe dann schließlich die Software (Sketch) ESPEasy gefunden, welche eine Programmierung überflüssig macht und eigentlich alles vorhanden ist was das Herz begehrt.
Bei der Hardware habe ich mich für den Adafruit HUZZAH ESP8266-12 als Breakboard entschieden, der kostet in De knapp 11.- €.


(http://up.picr.de/24074850cs.png)


(http://up.picr.de/24079656di.png)

Anschaltung des Adafruit mit wenigen externen Bauteilen.

ESPEasy ist in meinen Augen die ideale Umgebung für Einsteiger bei diesem Thema oder Personen die das erste Mal mit einem esp8266 Kontakt haben.


Folgende Software ist dazu am PC oder Laptop erforderlich:
Aktuelle Version 1.6.7   
Stabile gut funktionierende Version 1.6.5   

ESPEasy R048   
ESPEasy R039 
Link für den additional Boardmanager: http://arduino.esp8266.com/versions/1.6.5-1084-ga39ce29/package_esp8266com_index.json
Weitere nützliche Projekte für den Adafruit esp8266 findet ihr inklusive aller Schaltpläne hier


Installation MQTT Broker Mosquitto am Raspberry
Die Installation beschränkt sich auf wenige Zeilen und kann zB. hier nachgelesen werden.


Installation ESPEasy
Wiki

Interessanterweise funktionieren nicht alle Versionen der Arduino IDE gleich gut (Compilerfehler).
Ich habe mit der Version 1.6.5 gute Erfahrungen gemacht. Nach der Installation auf einem Client (Windows, Mac oder Linux, ich benutze Windows10) sind zunächst folgende Einstellungen durchzuführen.

(http://up.picr.de/24074851fx.png)
(http://up.picr.de/24043831cf.jpg)

(http://up.picr.de/24043831cf.jpg)
Unter Voreinstellungen sollte der Link für den erweiterten Boardmanager hinzugefügt werden: http://arduino.esp8266.com/versions/1.6.5-1084-ga39ce29/package_esp8266com_index.json


(http://up.picr.de/24074852fz.jpg)
dann wechseln in den Boardmanager


(http://up.picr.de/24074853vy.png)
und das esp8266 Paket installieren.

Spätestens jetzt sollte der esp8266 mit dem seriellen Adapter (dieser wird nur zum Upload der ESPEasy benötigt und kann später wieder entfernt werden) verbunden werden. Eventuell Treiber für den PC installieren. Die  Com Schnittstelle des seriellen Adapters ist noch einzustellen und den Typ des esp8266.
Nun kann es losgehen. Der 8266 versorgt sich über das USB Kabel mit Spannung und man braucht jetzt noch kein Netzteil. Man drückt nun den Taster ,,GPIO0" am 8266 und dann gleichzeitig den ,,Reset", läßt diesen wieder los und dann kann auch der ,,GPIO0" wieder losgelassen werden. Es sollte jetzt die rote Led leuchten.
Nun in der IDE die ESPEasy Software laden und ,,Upload" drücken. Der Sketch wird zunächst compiliert und dann in den ESP8266 geladen. Der Vorgang dauert ein paar Minuten und sollte fehlerfrei durchlaufen.  Sollten beim Compilieren noch Fehler auftreten weil Bibliotheken fehlen, müssen diese nachinstalliert werden. Die Libraries liegen im Userverzeichnis ,,C:\Users\"Username"\Documents\Arduino\libraries". Damit dies auch bei anderen sicher funktioniert habe ich im Anhang alle meine Libraries aus diesem Verzeichnis angehängt.


Konfiguration ESPEasy


Nach dem Upload des Sketches und dem Restart ist der 8266 ein eigener Access Point und ist unter der Adresse 192.168.4.1 erreichbar. Der Anwender verbindet sich nun mit dem Webbrowser und dem Konfigurationsformular. Bitte am Laptop die bestehende Wlan Verbindung trennen und den neuen Access Point suchen und damit das Netzwerk verbinden, sonst erreicht ihr diese Adresse nicht!

(http://up.picr.de/24074459od.png)
In der Config sind die Zugangsdaten zum Wlan einzugeben (Name, SSID, WPA-Key) und das Protocol auf PiDome MQTT zusetzen. Die Controller IP ist das Device wo der Broker läuft, in diesem Fall der Raspberry Pi mit der Fhem Instanz.  Das Controller Port ist das MQTT Port des Raspi (siehe fhem.cfg).


(http://up.picr.de/24074461mb.png)
Unter Hardware habe ich die GPIOs (SDA + SCL) auf 2 und 5 gesetzt. 4 wird ja für den DS18b20 genutzt.



(http://up.picr.de/24074460aq.png)
Unter Devices kann dann bequem das Device aus einer vordefinierten Liste ausgewählt werden, in meinem Fall der DS18b20.


(http://up.picr.de/24074462gt.png)

In der Sektion Tools Advanced kann noch der MQTT String kopiert werden. Das ist der String wie er unter Fhem dann als subscribeReading gesetzt wird.

(http://up.picr.de/24074591kx.png)

Auf einem Consolenfenster kann nun sofort der DS18b20 getestet werden. Wenn ihr einen anderen Namen als ,,temperature" vergeben habt, dann muss dieser hier angepasst werden, ebenso die ID.
mosquitto_sub -d -t /hooks/devices/1/SensorData/temperature

Das Schöne an ESPEasy, man kann hier ganz bequem gleich mehrere Devices anlegen ohne irgendwelche weiteren Programmierungen am Sketch durchführen zu müssen.

Konfiguration in der fhem.cfg


# Broker anlegen
define MyBroker MQTT 127.0.0.0:1883
attr MyBroker room MQTT

# Device DS18b20 definieren
define ESP8266 MQTT_DEVICE DS18B20
attr ESP8266 IODev MyBroker
attr ESP8266 room MQTT
attr ESP8266 stateFormat Temperatur: Temperature°C
attr ESP8266 subscribeReading_Temperature /hooks/devices/1/SensorData/temperature


(http://up.picr.de/24079998pk.png)

Ich wünsche allen Testern gutes Gelingen und viel Spaß beim Test.
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

ckbln

Hallo Reinhart

danke für die Anleitung, nun habe ich den 18b20 in FHEM integrieren können.

Ich versuche leider erfolglos einen DHT22 Sensor ans laufen zu bekommen.

Die Temperatur und Humidity Werte sind völlig daneben.
Anstatt 24 Grad werden -11,60 angezeigt. Das - Vorzeichen ist nicht immer da.
Der Humidity Wert stimmt auch nicht. Die Luftfeuchte liegt bei ca 58%, angezeigt werden 30,50

Hast du schon einen DHT22 erfolgreich in Betrieb genommen?

Gruß
Christof

Franz Tenbrock

das ist doch mal eine super super super Anleitung mit allem was das Herz begehrt ( Bilder Text Links).
Ein Weihnachtsgeschenk für alle FHEM ESP Anfänger.

Leider hab ich gerade keine Zeit um das nachzubauen, wird leider erst was im Januar..

Aber schon mal 1000 Dank.
Hab schon die Teile hier und bin ganz gespannt.
;D
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

Reinhart

#3
Zitat von: ckbln am 26 Dezember 2015, 14:57:27
Ich versuche leider erfolglos einen DHT22 Sensor ans laufen zu bekommen.
Die Temperatur und Humidity Werte sind völlig daneben.
Anstatt 24 Grad werden -11,60 angezeigt. Das - Vorzeichen ist nicht immer da.
Der Humidity Wert stimmt auch nicht. Die Luftfeuchte liegt bei ca 58%, angezeigt werden 30,50

Hallo,

leider, meine Bestellung von 5 x DHT22 ist noch unterwegs und ich kann leider noch keine Angaben dazu machen. Werde ich aber sicher nachholen, sobald meine Sensoren eintreffen. Auch ich habe vor in mehrere Räumen mit dem DHT22 und dem 8266 zu messen.

Bist du mit dem Sensor eventuell sehr nahe dem Chip? Lies dir bitte hier den Bericht durch, auch dieser Autor hatte Probleme mit falschen Temperaturen beim DHT22. Hier siehst du auch einen genauen Schaltplan wie der sie anschaltet.

Das einzige was mir dazu noch einfällt, Adafruit verwendet in seinem Beispiel GPIO5, das könntest noch versuchen. Deine angezeigten Werte sind ja komplett daneben und nicht ein bisschen.


LG
Reinhart
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

schka17

Hallo Reinhart,

Danke für den Link und die Anleitung, ich habe gleich einmal in I2C LCD Display ausprobiert, hat sofort funktioniert, genau das wollte ich schon lange mal bauen. Habe das mit einem ESP8266-01 und einem 1602 Display mit I2C Controller zusammengesteckt, geflasht und tut schon.


Sent from my iPad using Tapatalk
M: Thinclient x64 Debian | CUL FS20, HMS100WD, HMS100TF, HMS100T, HMS100CO, S300, S555TH | OWServer DS1420, DS18B20, DS2408 | RFXCOM UVN128, THWR800, THGR228N,RTGR328, PCR800 |Jeelink PCA301 EC3000|CUNO+IR|HMLAN|HMUSB|CUL433 Somfy|mySensors|espEasy
S1:Raspberry mit BPM810, Jeelink EC3000

Rince

Cool.
http://www.esp8266.nu/index.php/RFID

RFID mit Wiegand ist auch schon dabei. Muss mir mal etwas Zeit dafür nehmen  :)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Pf@nne

Moin Reinhart,

sehr schöner Beitrag, optimal für den Ersteinstig, klasse!

Wir sitzen auch gerade an einem universellen Sensor/Aktor Modul.
http://forum.fhem.de/index.php/topic,46022.0.html
Ich denke nach diesem Beitrag macht es Sinn sich auf die Hardware zu konzentrieren.

Wie hast du die deine Hardware vorgestellt?

Gruß
Pf@nne

FHEM auf: DS415+ (Master), Raspberry Pi 2

le66ck

Hallo Reinhart

Danke für die Anleitung. Ich hatte die Arduino-IDE immer mit Atmega's in Verbindung gebracht und war demzufolge sehr überrascht!

Also meinen ESP8266-03 zum Testen geholt... und...und...geht nicht!
Hardwareseitig kann ich einen Fehler fast ausschließen.
Das Programmieren von nodemcu-Firmware mittels esptool.py klappt.
Das Compilieren und Hochladen von ESPEasy in der Arduino-IDE läuft ohne Fehler durch.

Muß ich in Verbindung ESP8266-03 noch etwas beachten, z.B. im Boardmanager, oder, oder...?

Danke für Hinweise

Gruß CK
1 BPi mit SSD und CSM-Funkmodul für Fhem + Baïkal für CalDAV
6 HM-LC-Dim1TPBU-FM, 8 HM-CC-RT-DN, 4 HM-LC-Sw1PBU-FM,
6 HM-SEC-SCo, 1 HM-Sen-MDIR-WM55, 1HM-SCI-3, 1 HM-ES-PMSw1-Pl

yamfhem

@Reinhart: DANKE sehr für diesen Beitrag, das ist genau das was ich gesucht habe, einfach Temperatursensoren an den ESP8266 und in FHEM reinbeamen.

Gruß
yam

Reinhart

#9
Zitat von: Pf@nne am 27 Dezember 2015, 12:52:52
Wie hast du die deine Hardware vorgestellt?

Hallo Pf@nne!

Ich bin mir nicht sicher was du da genau für Voreinstellungen meinst?

Ich habe eigentlich gar nichts vorher gemacht, ausgepackt und ESPEasy drauf gespielt, das wars!
Ich habe jetzt 2 esp8266-12 von Adafruit getestet, andere kenne ich leider noch nicht da ich auf diesen Devices auch noch ziemlich neu bin. Da kam mir ESPEasy genau richtig, weil um die Sketche selbst brauch ich mich da nicht kümmern.

Ich möchte auf jeden Fall in diese Richtung (http://www.kriwanek.de/homeautomation/roomsensor-2-0/322-hardware.html) weiter machen und habe auch schon Kontakt mit dem Autor aufgenommen betreffend Platinenbestellung. Die Platinen und die Schaltungen sehen sehr professionell aus und sind genau das was ich brauchen kann. Die Software dort ist noch nicht fertig entwickelt und veröffentlicht, aber das sollte auch alles mit ESPEasy und MQTT laufen.

LG
Reinhart
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Pf@nne

ZitatIch bin mir nicht sicher was du da genau für Voreinstellungen meinst?

Nicht voreingestellt.......  :) vorgestellt...

ZitatWie hast du die deine Hardware vorgestellt?

Mir ging es um die Hardware für deine Sensoren.
Da wir ja auch gerade am schauen sind wie wir soetwas möglichst universell umgesetzt bekommen.

Gruß
Pf@nne
FHEM auf: DS415+ (Master), Raspberry Pi 2

Reinhart

Zitat von: le66ck am 27 Dezember 2015, 14:22:12
Also meinen ESP8266-03 zum Testen geholt... und...und...geht nicht!
Hardwareseitig kann ich einen Fehler fast ausschließen.

wenn der Sketch ohne weiteren Fehler zum aufspielen geht, dann sollte auch alles normal starten. Aktiviere bitte einmal unter "Werkzeuge" den "serieller Monitor", der ist sehr hilfreich weil du sofort siehst was da nun läuft. Nach öffnen der Konsole "Reset" am 8266 drücken und mit verfolgen was der Sketch so ausgibt.

(http://up.picr.de/24094961ci.png)

Nach dem ersten Aufspielen, sollte sich ein neuer Access Point (192.168.4.1) zeigen. Wer keinen Laptop hat, tut sich in diesem Punkt leider sehr schwer, dürfte aber unter den meisten Technikern und Bastlern kein Problem sein. Was ich auch noch nicht gefunden habe, ist ein Sketch der alle alten Daten im EEProm löscht.

Eventuell noch schauen, ob sich der 8266 eine IP Adresse vom DHCP-Server (normalerweise dein Router) geholt hat, dann läuft er unter einer anderen IP und hat aus irgend einem Grund die Erstinitialisierung übersprungen.

LG
Reinhart
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Reinhart

@Pf@anne

oh, sorry, war mein Fehler, habe zu flüchtig darüber gelesen.

Ich habe mir deinen sehr informativen Beitrag gelesen, eigentlich gehst du in die selbe Richtung wie ESPEasy.
Was sehr interessant ist, du entwickelst ja schon ganz speziell für die Schalterdose, das ist sehr praxisbezogen, denn wo soll sonst der esp8266 hin. Die Stromversorgung ist auch noch ein (Größen) Problem diese zusätzlich in der Schalterdose zu platzieren. Herr Kriwanek arbeitet da mit kleinen LED-Treibern, was sicherheitstechnisch sicher die Beste Lösung ist aber wieder was kostet.

Ich werde mich einmal in das Thema Sleepmodus einlesen und testen, das wäre dann für einen Batteriebetrieb ein Muss.

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

le66ck

Hallo Reinhart

Danke für Deine Antwort. Hat mir leider nicht geholfen (http://forum.fhem.de/Smileys/default/sad.gif)
Aber es geht jetzt doch (http://forum.fhem.de/Smileys/default/smiley.gif)
Also ein fehlerfreies Hochladen ist keine Garantie für fehlerfreies booten!!!
Spätestens nach dem ersten Booten erschienen bei mir nur noch sinnlose Zeichen.

Kurz gesagt
Ich habe unter Werkzeuge --> Platine --> Generic ESP8266 Module ausgewählt und die Grundeinstellungen belassen!
Damit hat es dann bei meinem ESP8266-03 geklappt und ich kann weitermachen.

Gruß CK
1 BPi mit SSD und CSM-Funkmodul für Fhem + Baïkal für CalDAV
6 HM-LC-Dim1TPBU-FM, 8 HM-CC-RT-DN, 4 HM-LC-Sw1PBU-FM,
6 HM-SEC-SCo, 1 HM-Sen-MDIR-WM55, 1HM-SCI-3, 1 HM-ES-PMSw1-Pl

Pf@nne

Wenn nichts dagegen spricht, würde ich vorschlagen, dass wir hier

http://forum.fhem.de/index.php/topic,46022.0.html

weitermachen. Sonst sind wir irgendwie doppelt unterwegs.
FHEM auf: DS415+ (Master), Raspberry Pi 2