Teil 3 von 4
Vom leeren Board zum ersten Sensorwert
Sechs Schritte nach der offiziellen Anleitung, dazu die Fallen, die fast jeden beim ersten Mal treffen.
Die Schritte
1. Board per USB anschließen. Der allererste Flash geht nur über Kabel,
jedes weitere Update dann über WLAN. Man braucht ein USB-Datenkabel (viele
Kabel können nur laden), und je nach Board einen Treiber für den
USB-Seriell-Chip (CH340, CP2102). Unter Linux ist der Port meist
/dev/ttyUSB0 oder /dev/ttyACM0.
2. Neue Konfiguration anlegen. Im Device Builder auf „Create device“,
dann „New Device Setup“. Der Assistent fragt nach Name, Chip, Board und
WLAN und schreibt die Grunddatei aus Teil 2. Auf der Kommandozeile macht
esphome wizard wohnzimmer.yaml dasselbe.
3. Installieren. Knopf „Install“, dann „Plug into this computer“. ESPHome prüft die Datei, kompiliert (beim ersten Mal dauert das einige Minuten, weil die Werkzeugkette geladen wird) und flasht. Bei manchen Boards muss man dabei die BOOT-Taste gedrückt halten, während man ansteckt.
4. Ins Log schauen. Knopf „Logs“. Das Gerät meldet sich, verbindet sich mit dem WLAN und zeigt seine IP-Adresse. Ab jetzt geht alles ohne Kabel.
5. Den ersten Sensor eintragen. Zum Beispiel einen Taster:
binary_sensor:
- platform: gpio
name: "Taster"
pin:
number: GPIO4
inverted: true
mode:
input: true
pullup: true
Oder einen Klimasensor DHT22 am GPIO4:
sensor:
- platform: dht
pin: GPIO4
model: DHT22
temperature:
name: "Temperatur"
humidity:
name: "Luftfeuchte"
update_interval: 60s
Speichern, wieder „Install“, diesmal „Wirelessly“. Im Log erscheint nach ein paar Sekunden der erste Messwert.
6. Mit Home Assistant verbinden. Home Assistant entdeckt das Gerät von
selbst und zeigt es unter „Entdeckt“. Ein Klick auf „Konfigurieren“, den
API-Schlüssel eintragen, fertig. Die Werte stehen im Dashboard. Ohne Home
Assistant: web_server: in die Datei, und die IP-Adresse aus dem Log im
Browser öffnen.
Die üblichen Fallen
Alle aus der offiziellen FAQ, alle schon selbst erlebt worden:
- Das Kabel. „You are not using a USB data cable“ ist der häufigste Grund, warum nichts passiert. Ladekabel haben keine Datenleitungen.
- Boot-Modus. Manche Boards wollen beim Flashen GPIO0 auf GND, meist über die BOOT-Taste. Bei anderen hilft ein Doppelklick auf Reset.
- Stromversorgung. Beim Senden zieht ein ESP32 kurz 300 bis 500 mA. Ein
schwaches Netzteil oder dünnes Kabel löst den „Brownout detector“ aus,
und das Gerät startet ständig neu. Abhilfe: besseres Netzteil, ein
Kondensator an 3,3 V, oder
output_power: 13dBimwifi:-Block. - Strapping-Pins. Einige Pins (beim ESP32 zum Beispiel GPIO0, 2, 12, 15) legen beim Start den Bootmodus fest. Ein Sensor daran kann das Booten stören. ESPHome warnt, wenn man sie belegt.
- Der Name. Keine Unterstriche im Gerätenamen, Bindestrich nehmen.
- Nur 2,4 GHz. Ein 5-GHz-Netz ist für den Chip unsichtbar.
- Ohne Home Assistant mit
api:in der Datei startet das Gerät alle 15 Minuten neu. Block raus oderreboot_timeout: 0s.
Die erste Automation, direkt auf dem Chip
Taster gedrückt, LED an. Dafür braucht es kein Home Assistant, das läuft in der Firmware:
switch:
- platform: gpio
id: led
name: "LED"
pin: GPIO5
binary_sensor:
- platform: gpio
name: "Taster"
pin:
number: GPIO4
inverted: true
mode:
input: true
pullup: true
on_press:
then:
- switch.toggle: led
on_press ist ein Auslöser, switch.toggle eine Aktion. Nach diesem Muster
funktionieren alle Automationen in ESPHome: Auslöser, dann eine Liste von
Aktionen. Weitere Auslöser sind on_release, on_click mit Zeitfenster und
on_multi_click für Doppelklick.