NEWS
Benutzen von ESPHome an einem Beispiel **Update 05.01.22 **
-
Kleine Meinung und Aufklärung von Anfänger für Anfänger, da ich am Anfang nach der Installation des ESPHome Adapter nicht wusste, was man nun damit machen kann. Aber um so länger ich mich damit beschäftigt habe, um so genialer fand ich die Integrierung von @Dutchman in ioBroker. Na klar kenne ich auch nicht alle Funktionen des ESPHome, aber es vereinfacht den Umgang mit externen Sensoren, Schalter u.ä. gewaltig. Somit hatte ich mich entschlossen, mich von Tasmota zu verabschieden. Damit ich alles unter einer Oberfläche schnell und einfach verwalten kann.
Hier erkläre ich, die Grundeinstellung für den Textfile und die Einbindung von 2 DS18b20 und einem AM2302 Temperaturfühler.**** Meckern kann jeder über eine Anleitung, Profis werden darüber lachen, sobald es aber einem Anfänger geholfen hat. Hat sich die Arbeit für mich schon gelohnt ****
Mein NodecmuV3 noch mit Tasmota Software
Start ist, das wir ESPHome installiert haben und eingerichtet ist. Unten rechts drücken wir einmal auf den grünen Kreis mit dem weißen Plus, es öffnet sich der Wizard,
klick auf Begin
Punkt 2 wähle einen eindeutigen Namen für dein ESP8266 / 32 z.B. saunatemperatur NEXT
Punkt 3 wähle deinen Chipsatz aus z.B. Nodemcu NEXT
Punkt 4 hier trägst du dein WLan Kennung ein und bei OTA Access Passwort ein selbstgewähltes Passwort z.B. 12345
Punkt 5 das war es schon für die Grundkonfiguration SUBMITJetzt sieht es bei euch so aus:
Drückt auf Edit, damit öffnet ihr den Editor mit folgenden Inhalt:
esphome: name: saunatemperatur platform: ESP8266 board: nodemcuv2 wifi: ssid: "NameDeinesWlan" password: "DeinPasswortVomWlan" # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Saunatemperatur Fallback Hotspot" password: "jO4D1y80XA3u" captive_portal: # Enable logging logger: # Enable Home Assistant API api: password: "1234" ota: password: "1234"
Das Grundgerüst steht, der Fallback Hotspot wird in der Regel nicht gebraucht. Sollte euer ESP nicht mehr erreichbar sein, kann man sich nach einem Softwarereset unter diesen Daten einloggen (wie und was weiß ich noch nicht). Jetzt will ich ja einen DS18b20 und einem AM2302 Temperaturfühler einbinden, dazu gehen wir auf die Page von ESPHome www.esphome.io und suchen uns die Parameter der Chips raus. Schneller geht es über Google, in meinen Fall "esphome ds18b20"
Kopieren uns die Konfiguration raus und gehen wieder in den Editor von ESPHome --> saunatemperatur und fügen am Schluss dies dazu:
# Example configuration entry dallas: - pin: 23 # Individual sensors sensor: - platform: dallas address: 0x1c0000031edd2a28 name: "Livingroom Temperature"
Und passen es an unsere Platine z.B. wie in mein Beispiel.
Das DATA Kabel liegt bei mir auf GPIO5 und einen Namen des Sensors noch vergeben. Die adress lassen wir erst mal so, wie es ist. Das ändern wir erst später, da uns die adress noch nicht bekannt ist. Das Leer lassen der adress, kam bei mir immer eine Fehlermeldung:# Example configuration entry dallas: - pin: GPIO5 # Individual sensors sensor: - platform: dallas address: 0x1c0000031edd2a28 name: "Saunakabine Temperatur"
Der komplette File müsste jetzt so aussehen:
esphome: name: saunatemperatur platform: ESP8266 board: nodemcuv2 wifi: ssid: "NameDeinesWlan" password: "DeinPasswortVomWlan" # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Saunatemperatur Fallback Hotspot" password: "jO4D1y80XA3u" captive_portal: # Enable logging logger: # Enable Home Assistant API api: password: "1234" ota: password: "1234" # Example configuration entry dallas: - pin: GPIO5 # Individual sensors sensor: - platform: dallas address: 0x1c0000031edd2a28 name: "Saunakabine Temperatur"
Drückt jetzt auf Save und Close.
Jetzt drücken wir auf Compil und der Bin-File fürs Flashen wird compiliert. Es dauert ca. 1 Minute und in der letzten Zeile müsste stehen
-- INFO Successfully compiled program. -- Den fertigen File laden wir uns über den Button "DOWNLOAD BINARY" runter und flashen den File über ein USB-Kabel.Fertigmeldung
Nach erfolgreichen Flashen startet der ESP8266 neu, die vergebene IP suche wir uns im Router raus, danach gehen wir im ioBroker in Instanzen und esphome. Die automatische Geräteerkennung hat bei mir nicht einmal funktioniert. Klicke auf ADD DEVICE und füge die IP hinzu un das vergebene Passwort im OTA z.B. 1234. Wenn Alles klappt, taucht weiter unten den ESP auf und connect leuchtet grün.
Da wir noch nicht die richtige adress von unseren Temp-Fühler haben gehen wir zurück zu esphome --> saunatemperatur.yaml und drücken wir auf LOG, folgende Ausgabe ist für uns interessant (weiße Schrift):
Dort kommt dann die Information die wir brauchen, in meinen Fall 0xA201204E877DFD28. Jetzt können wir im Editor dem DS18b20 die richtige Adresse zuweisen. Also in den Editor wieder rein:
# Individual sensors sensor: - platform: dallas address: 0xA201204E877DFD28 # hier die richtige Adresse rein name: "Saunakabine Temperatur"
und jetzt kommt das Geniale, nach der Änderung drücken wir auf SAVE und danach auf Upload und schwupps werden die aktuellen Daten übertragen. Nach dem Flashvorgang lassen wir das Fenster offen und warten ein wenig, bis er neu gebootet ist. Durch die richtige adress werden uns jetzt auch Temperaturdaten alle 60sek angezeigt :-). Genau, wie ich den 1. Sensor eingerichtet habe richte ich den 2 Sensor ein und den AM2302 (die Daten bei der Page esphome.io rausuchen). Zusätzlich habe ich noch ein Webinterface mit Zugriffsschutz mit reingenommen (wer kein Schutz brauch nimmt die 3 Zeilen raus auth:, username: admin, password: test1234). Man kann dort auch eine feste IP vergeben (web_server: deineIP).
Zum Schluss sieht der File so aus:esphome: name: saunatemperatur platform: ESP8266 board: nodemcuv2 wifi: ssid: "NameDeinesWlan" password: "DeinPasswortVomWlan" # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Saunatemperatur Fallback Hotspot" password: "jO4D1y80XA3u" captive_portal: # Enable logging logger: # Enable Home Assistant API api: password: "1234" ota: password: "1234" # Example configuration entry web_server: port: 80 auth: username: admin password: test1234 # Example configuration entry dallas: - pin: GPIO5 sensor: - platform: dallas address: 0x2F01204E8D892828 name: "Saunakabine Temperatur" - platform: dallas address: 0xA201204E877DFD28 name: "Außentemperatur" - platform: dht pin: GPIO4 model: AM2302 temperature: name: "Saunaruheraum Temperatur" humidity: name: "Luftfeuchtigkeit" update_interval: 30s
Neustarten lassen und wir schauen in den Log und es werden die Temperaturen ausgegeben:
[13:33:44][D][dht:048]: Got Temperature=21.4°C Humidity=47.5% [13:33:44][D][sensor:092]: 'Saunaruheraum Temperatur': Sending state 21.40000 °C with 1 decimals of accuracy [13:33:44][D][sensor:092]: 'Luftfeuchtigkeit': Sending state 47.50000 % with 0 decimals of accuracy [13:33:53][D][api:067]: Disconnecting ioBroker (192.168.2.88) [13:33:59][D][dallas.sensor:153]: 'Saunakabine Temperatur': Got Temperature=22.9°C [13:33:59][D][sensor:092]: 'Saunakabine Temperatur': Sending state 22.87500 °C with 1 decimals of accuracy [13:33:59][D][dallas.sensor:153]: 'Außentemperatur': Got Temperature=21.4°C [13:33:59][D][sensor:092]: 'Außentemperatur': Sending state 21.43750 °C with 1 decimals of accuracy [13:34:14][D][dht:048]: Got Temperature=21.3°C Humidity=47.7% [13:34:14][D][sensor:092]: 'Saunaruheraum Temperatur': Sending state 21.30000 °C with 1 decimals of accuracy [13:34:14][D][sensor:092]: 'Luftfeuchtigkeit': Sending state 47.70000 % with 0 decimals of accuracy [13:34:23][D][api:067]: Disconnecting ioBroker (192.168.2.88) [13:34:44][D][dht:048]: Got Temperature=21.3°C Humidity=47.6% [13:34:44][D][sensor:092]: 'Saunaruheraum Temperatur': Sending state 21.30000 °C with 1 decimals of accuracy [13:34:44][D][sensor:092]: 'Luftfeuchtigkeit': Sending state 47.60000 % with 0 decimals of accuracy
Super, es läuft!
Jetzt gehen wir wieder unter Objekte --> esphome und dort müssten die Daten uns zur Verfügung stehen, um damit weiterzuarbeiten.
Wer es brauch kann sich, das Webinterface aktivieren und mit seiner IP:Port (Standard 80) aufrufen. Dies sieht dann so aus:
Ich hoffe, ich konnte meine Schritte einigermaßen gut erklären, so das es auch ein anderer versteht. Werde dies hier auch noch bei Unklarheiten oder Ungenauigkeiten erweitern.
##########Update 05.01.2022#################
Wer sich mit ESP Home näher auseinander setzen möchte, soll sich die 24-teilige Videoreihe auf YT von Daniel der Betreiber von smarthomeyourself.de anschauen. Einen besseren und aktuelleren Einstieg in ESP Home gibt es nicht.
Link zu YT: https://www.youtube.com/playlist?list=PLtEjuZQyAkqGAvHjsM6G295CsKXetm-_Z
Auch betreibt er einen guten Discord Kanal, wo aktuelle Probleme z.B. ESP Home schnell geklärt werden.
PS: @admin wenn die Links nicht gewünscht sind, bitte den Beitrag kommentarlos löschen, wollte nur Helfen und kein Abwerben oder ähnliches betreiben!!!
-
@slowman Danke für diese leicht verständliche Anleitung. Von Anfang bis Ende alles verstanden, so muss das sein
-
Ich habe ESPHome separat auf einer eigenen Raspberry installiert und möchte diese nur zum flashen der ESP Module nutzen.
Wenn ich auf dem anderen PC mit ioBroker den ESPHome Adapter installiere, kann ich dann meine Raspberry mit der ESPHome ausschalten oder wird diese zusätzlich benötigt?
Läuft dann der Datenaustausch zwischen ESP und ioBroker über den Adapter oder muss ich zusätzlich MQTT bemühen?
-
@claus1993
Hier https://drozmotix.github.io/languages/de/Adapter/ESPHome/ ist eine sehr gute Anleitung mit allen Infos. -
@claus1993 sagte in Benutzen von ESPHome an einem Beispiel:
Läuft dann der Datenaustausch zwischen ESP und ioBroker über den Adapter
Sollte er normalerweise tun. Aber warum nicht den ESP dann über ioBroker auch programmieren?
-
@slowman Noch eine Ergänzung zu Deiner guten Anleitung: Mann kann alle "privaten" Information wie WLAN-Daten in die "secrets.yaml" auslagern und braucht sie dann nicht für jeden ESP zu wiederholen bzw. ggf zu ändern:
--- wifi: ssid: yourSSID" password: "yourPassword" # Enable Home Assistant API api: password: "yourPassword" # OTA Update ota: password: "yourPassword"
In der YAML des ESP steht dann nur eine Zeile (ich packe die immer nach oben z.B.:
esphome: name: yourName platform: ESP8266 board: d1_mini <<: !include secrets.yaml # Ab hier geht's mit den Sensoren etc. los
Und diese secrets.yaml kannst Du dann auch direkt über das Menü rechts oben im Dashboard erreichen und editieren.
-
@claus1993 sagte in Benutzen von ESPHome an einem Beispiel:
Ich habe ESPHome separat auf einer eigenen Raspberry installiert und möchte diese nur zum flashen der ESP Module nutzen.
Wenn ich auf dem anderen PC mit ioBroker den ESPHome Adapter installiere, kann ich dann meine Raspberry mit der ESPHome ausschalten oder wird diese zusätzlich benötigt?
Ja kunst du den der Adapter hat ein eigenes ESPHome Dashboard integriert.
Also entweder du benutzt den adapter ohne intergriertes ESPHome und behaellst deinen jetzigen oder du ziehst es um (yaml übertragen von der anderen installation)Läuft dann der Datenaustausch zwischen ESP und ioBroker über den Adapter oder muss ich zusätzlich MQTT bemühen?
geht ueber den Adapter, du musst halt die API aktivieren damit der adapter mit dem ESP reden kan
-
@fredf said in Benutzen von ESPHome an einem Beispiel:
... warum nicht den ESP dann über ioBroker auch programmieren?
Mein ioBroker steht im keller und ich benötige ja den USB Anschluss. Von daher meine Überlegung ne Pi ins Büro fürs flashen. Wenn es da ne Alternative gibt immer her damit
-
@claus1993 Klar gibt es eine Alternative: Bei Install der yaml auf "Manual download" klicken und die yaml dann per ESPHome flasher auf den ESP bringen
-
@fredf said in Benutzen von ESPHome an einem Beispiel:
ESPHome flasher
Cool...wieder ne pi eingespart
-
@fredf sagte in Benutzen von ESPHome an einem Beispiel:
@claus1993 Klar gibt es eine Alternative: Bei Install der yaml auf "Manual download" klicken und die yaml dann per ESPHome flasher auf den ESP bringen
Genauso machen es wohl die meisten. Änderungen macht man dann später einfach über Wifi.
Super einfach das Ganze! -
@fredf said in Benutzen von ESPHome an einem Beispiel:
@claus1993 Klar gibt es eine Alternative: Bei Install der yaml auf "Manual download" klicken und die yaml dann per ESPHome flasher auf den ESP bringen
Habe mir den ESPHome flasher auf mein Linux geladen und dort kann ich die exec Datei nicht starten. Linux fragt immer nach der Anwendung mit dem ich den Flasher starten will...
Hat hier jemand eine Idee weswegen das bei mir nicht läuft?
-
@claus1993 sagte in Benutzen von ESPHome an einem Beispiel:
Linux
k.A. Ich nutze den flasher am Windows PC
-
@claus1993 sagte in Benutzen von ESPHome an einem Beispiel:
Habe mir den ESPHome flasher auf mein Linux geladen und dort kann ich die exec Datei nicht starten. Linux fragt immer nach der Anwendung mit dem ich den Flasher starten will...
Hat hier jemand eine Idee weswegen das bei mir nicht läuft?Was machst du genau in der Konsole? Komplette Ein- und Ausgaben, inkl. login prompt und Verzeichnissen.
-
@thomas-braun said in Benutzen von ESPHome an einem Beispiel:
Was machst du genau in der Konsole? Komplette Ein- und Ausgaben, inkl. login prompt und Verzeichnissen.
In der Konsole eigentlich nichts. Habe mir den Flasher als Exec Datei für Ubuntu heruntergeladen. Wenn ich diese Datei dann öffnen will fragt er immer nach dem Programm mit dem es geöffnet werden soll.
-
Ich verstehe immer noch nicht wie du das wo startest. Was uf einem Ubuntu Desktop?
-
@claus1993 Hast du eine Datei mit der Endung .exe?
Das ist dann Software für Windows. -
@claus1993
So ist mein vorgehen:
Das erste mal den ESP am Pi anstecken und laden und dann nur noch über W-Lan.
-
@pboeck said in Benutzen von ESPHome an einem Beispiel:
@claus1993 Hast du eine Datei mit der Endung .exe?
Das ist dann Software für Windows.Bei dem "c" ist der kleine aber feine Unterschied....habe eine exec Datei und die soll auch auf Linux laufen...nur bei mir nicht.
-
@pboeck said in Benutzen von ESPHome an einem Beispiel:
@claus1993
So ist mein vorgehen:Das erste mal den ESP am Pi anstecken und laden und dann nur noch über W-Lan.
Wollte den Umweg über eine PI vermeiden da ich diese erst zweckentfremdet habe. Möchte nur eine bin Datei flashen und das möglichst einfach