Ich habe mir es fast gedacht, dass ich um ESPHome nicht herum komme.
Habe mich lange dagegen gewehrt mit WLAN Sensoren zu arbeiten.
Aber um auch meckern zu können, muss ich mit damit wohl mal auseinander setzen.
Zu Beginn habe ich mir was relativ einfaches ausgeguckt, was ich auch tatsächlich einsetzen kann.
Und zwar einen Autowächter, der die Präsenz des Autos in der Garage ermitteln soll.
Das ganze mittels Ultraschall Sensor (HC SR04 Ultrasonic-Sensor)
Zusätzlich habe ich noch einen Temperatur und Luftfeuchtigkeit Sensor (DHT22) verbaut,
es waren ja noch so viele PIN's frei.
Das Herzstück ist der ESP8266 nodemcu V3
Anbei der Aufbau anschaulich dargestellt.
Und der ESPHome yaml code.
Habe zusätzlich noch ein paar Diagnose Sensoren mit eingebaut. Zum einem weil ich selbst noch damit spiele aber auch zur Veranschaulichung was so alles möglich ist.
Code: Alles auswählen
esphome:
name: esp-autowaechter-garage
friendly_name: Autowächter Garage
esp8266:
board: esp01_1m
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "topsecret"
ota:
password: "topsecret"
wifi:
fast_connect: true
networks:
- ssid: !secret wifi_ssid
password: !secret wifi_password
# Optional manual IP
manual_ip:
static_ip: 192.168.22.101
gateway: 192.168.22.1
subnet: 255.255.255.0
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Klima Garage Fallback Hotspot"
password: "htceJZS9k40m"
captive_portal:
# Sensor definition
# DHT 22
sensor:
- platform: dht
pin: GPIO14
model: DHT22
temperature:
name: "Garage Temperatur"
humidity:
name: "Garage Luftfeuchtigkeit"
update_interval: 60s
#Ultrasonic Sensor
- platform: ultrasonic
trigger_pin: GPIO5
echo_pin: GPIO4
name: "Ultrasonic Sensor"
update_interval: 10s
accuracy_decimals: 2
unit_of_measurement: m
id: ultrasonic_sensor
# Uptime Sensor - Zeit seit letztem rebbot
- platform: uptime
name: Uptime Sensor
# Ermittlung der WLAN-Signalstärke alle 60s
- platform: wifi_signal
name: "WiFi Signal"
id: wifi_signal_db
update_interval: 60s
# WiFi signal Signalstärke in %
- platform: copy
source_id: wifi_signal_db
name: "WiFi Signal Percent"
filters:
- lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
unit_of_measurement: "%"
# Binary Sensor definition
# Präsenzsensor
binary_sensor:
- platform: template
name: "Garage"
device_class: presence
lambda: |-
if (id(ultrasonic_sensor).state < 1) {
// car is in the garage
return true;
} else {
// no car
return false;
}
# Button definition
button:
# Neustart ESP
- platform: restart
name: "Restart"
# Herunterfahren ESP
- platform: shutdown
name: "Shutdown"
# Text Sensor definition
# WIFI Info Bereich
text_sensor:
- platform: wifi_info
ip_address:
name: "IP Address"
ssid:
name: "Connected SSID"
bssid:
name: "Connected BSSID"
mac_address:
name: "Mac Wifi Address"
Die Zeile:
Code: Alles auswählen
fast_connect: true
im Bereich wifi
musste ich hinzufügen, damit sich der ESP auch mit dem WIFE verbindet wenn die SSID versteckt ist, was bei mir der Fall ist.
Ich habe dem ESP auch einen feste IP Adresse zugewiesen, damit ich später nicht nach dieser suchen muss, falls ich das Gerät in Home Assistant neu hinzufügen muss.
Wenn ihr nachträglich Sensoren im Code anpassen oder löschen tut, bleiben diese als Leichen in Home Assistant bestehen.
Dann muss das Gerät in Home Assistant gelöscht werden und neu hinzugefügt werden, dies erfolgt über die IP Adresse.
So sieht dann die Geräteübersicht aus.
Sensoren:
Der Präsenzmelder ist an, wenn eine Entfernung von >1m gemessen wird. Je nach Installationsort, müsst Ihr mit dem Wert spielen.#
Der Sensor misst bei mir Entfernungen bis ca. 2m. Größerer Entfernung werden mit unbekannt ausgegeben.
Dafür wird die Entfernung Zentimeter genau ermittelt.
Konfiguration:
Und Diagnose:
Ich muss sagen ESPHome macht richtig Spaß und es wird mit Sicherheit nicht das letze Projekt gewesen sein.
Jetzt muss ich mir nur noch ein passendes Gehäuse drucken, dann kann der Autowächter in der Garage installiert werden.
Gruß
Osorkon