Home Assistant mit ESPHome und Ultraschallsensor: Automatisierung leicht gemacht! In diesem Projekt nutzt du ESPHome und einen Ultraschallsensor, um eine spannende Automatisierung zu erstellen. Wenn du mehr über ESPHome erfahren möchtest, findest du in diesem Video spannende Informationen.
Viel Erfolg bei deinem Projekt! 😊🛠️
Wenn du weitere Anpassungen oder Ideen hast, lass es mich wissen! 😊👍
Links in diesem Video:
Web-Flash ESPhome : https://web.esphome.io
Doku ESPhome : https://esphome.io
Stückliste* :
Stückzahl | Artikel | Amazon Link | Beschreibung |
---|---|---|---|
1 | M5 Stack Atom Lite | https://amzn.to/4cfTOg0 | ESP Controller |
1 | Wemos D1 Mini | https://amzn.to/3VqmxI5 | ESP8266 Controller |
1 | HC-SR04 | https://amzn.to/4ekOVUN | Ultraschall Sensor |
1 | 5V Netzteil Micro USB | https://amzn.to/4er9D5e | Micro USB Netzteil 5V ( für Wemos D1 Mini ) |
1 | 5 V Netzteil USB C | https://amzn.to/3VL2K7q | USB C Netzteil 5 V ( für Atom Lite) |
1 | Jumper Kabel Set | https://amzn.to/3VLHYos | Jumper Kabel für die Verbindung zwischen ESP und HC-SR04 |
1 |
Hinweis: Den M5 Stack Atom Lite kann man bei anderen Quellen günstiger bekommen. Sucht danach im Internet , falls ihr meinen Kanal unterstützen wollt, freue ich mich natürlich aber auch über einen Einkauf über den Amazon Link.
Verkabelung Wemos D1 Mini mit HC-SR04
Verkabelung M5Stack ATom Lite mit HC-SR04
ESPHome Code ( hier sind für Euch die Stellen ab sensor: -> Enable logger interessant):
substitutions: name: esphome-web-684d66 friendly_name: Wemos_D1Mini_Ultraschall_V1 esphome: name: ${name} friendly_name: ${friendly_name} name_add_mac_suffix: false project: name: esphome.web version: '1.0' esp8266: board: esp01_1m # Example configuration entry sensor: - platform: ultrasonic trigger_pin: GPIO2 echo_pin: GPIO0 name: "Ultraschall für Video" id: ultraschall_video update_interval: 1s # Example filters: filters: - filter_out: nan - median: window_size: 5 send_every: 5 send_first_at: 1 - platform: wifi_signal # Reports the WiFi signal strength/RSSI in dB name: "WiFi Signal dB" id: wifi_signal_db update_interval: 60s entity_category: "diagnostic" - platform: copy # Reports the WiFi signal strength in % 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: "Signal %" entity_category: "diagnostic" device_class: "" binary_sensor: - platform: template name: "PKW unter Carport" lambda: |- if ((id(ultraschall_video).state >= 0.5) ) { // Pkw ist nicht unter Carport return false; } else { // PKW ist unter Carport return true; } # Enable logging logger: # Enable Home Assistant API api: # Allow Over-The-Air updates ota: platform: esphome password: xxxxxxxxxxxxxxxxxxxxx # Allow provisioning Wi-Fi via serial improv_serial: wifi: # Set up a wifi access point ap: {} # In combination with the `ap` this allows the user # to provision wifi credentials to the device via WiFi AP. captive_portal: dashboard_import: package_import_url: github://esphome/example-configs/esphome-web/esp8266.yaml@main import_full_config: true # To have a "next url" for improv serial web_server:
Visualisierung auf dem Dashboard
Falls ihr nicht den binären Sensor aus dem ESP nutzen wollt, könnt ihr euch auch einen binären Template Helfer anlegen und die Schwellen für “PKW vorhanden” und “PKW nicht vorhanden” darüber definieren.
Template Helfer binärer Sensor:
{% if float(states.sensor.esphome_web_684d66_ultraschall_f_r_video.state) >= 0.5 %} false {% else %} true {% endif %}
YAML Code Bildelement Karte:
show_state: true show_name: false type: picture-entity entity: binary_sensor.esphome_web_684d66_pkw_unter_carport state_image: 'on': /local/image/on_Carport.png 'off': /local/image/off_Carport.png
Flussdiagramm der Automatisierung
In dieser Playlist findet ihr noch weitere Informationen zu EVCC , PV – Überschussladen und auch MQTT Sensoren wie z.B. den Charge Mode:
PV-Modus Prognose Template Helfer:
{% set value_prognose = (float(states.sensor.solcast_pv_forecast_prognose_nachste_stunde.state) / 1000.0) %} {% if value_prognose > 1.5 %} pv {% elif value_prognose > 0 %} minpv {% else %} now {%endif%}
Update 20.06.2024: Um beim Neustart von Home Assistant keine fehlerhaften Ergebnisse zu erhalten, ist es besser den Status mit state(‘sensor.entity’) abzufragen. In diesem Beispiel wäre es:
{% set value_prognose = (float(states('sensor.solcast_pv_forecast_prognose_nachste_stunde')) / 1000.0) %} {% if value_prognose > 1.5 %} pv {% elif value_prognose > 0 %} minpv {% else %} now {%endif%}
Ultraschall Sensor Automatisierung YAML :
alias: Carport_Ultraschallsensor description: "" trigger: - platform: state entity_id: - binary_sensor.esphome_web_684d66_pkw_unter_carport to: "on" id: PKW Trigger On - platform: state entity_id: - binary_sensor.esphome_web_684d66_pkw_unter_carport to: "off" - platform: time_pattern minutes: /30 - platform: sun event: sunrise offset: 0 - platform: sun event: sunset offset: 0 condition: [] action: - if: - condition: and conditions: - condition: state entity_id: binary_sensor.esphome_web_684d66_pkw_unter_carport state: "on" - condition: or conditions: - condition: state entity_id: device_tracker.tlerch state: home - condition: state entity_id: device_tracker.slerch state: home alias: Eine Person ist zu Hause & Auto steht unter Carport then: - service: select.select_option metadata: {} data: option: "{{ states.sensor.helfer_pv_prognose_lademodus.state }}" target: entity_id: select.charge_mode - condition: trigger id: - PKW Trigger On - service: media_player.volume_set metadata: {} data: volume_level: 0.33 target: entity_id: media_player.kuche - service: notify.alexa_media_kuche metadata: {} data: message: >- PKW unter Carport angekommen. Lademodus {{ states.sensor.helfer_pv_prognose_lademodus.state }} selektiert - service: media_player.volume_set metadata: {} data: volume_level: 0.1 target: entity_id: media_player.kuche - service: notify.mobile_app_tlerch metadata: {} data: message: >- Fahrzeug unter Carport angekommen. Lademodus {{ states.sensor.helfer_pv_prognose_lademodus.state }} eingeschaltet - if: - condition: and conditions: - condition: sun before: sunrise after: sunrise enabled: false - condition: trigger id: - PKW Trigger On then: - service: light.turn_on metadata: {} data: brightness_pct: 100 target: entity_id: light.aussenbeleuchtung - delay: hours: 0 minutes: 3 seconds: 0 milliseconds: 0 - service: light.turn_off metadata: {} data: {} target: entity_id: light.aussenbeleuchtung else: - condition: trigger id: - PKW Trigger On - service: select.select_option metadata: {} data: option: "off" target: entity_id: select.charge_mode - service: notify.mobile_app_tlerch metadata: {} data: message: Unbekanntes Fahrzeug unter Carport erkannt! title: 🚨🚨 CARPORT 🚨🚨 data: notification_icon: mdi:alert channel: Notfall priority: high ttl: 0 color: red push: sound: name: default critical: 1 volume: 1 mode: single
Update der ESPHome funktioniert nicht (mehr) 20.06.2024:
Solltet ihr das Problem haben, dass ihr beim Update der ESPHome Revision bei eurem Device eine Fehlermeldung bekommt, dass das Update nicht durchgeführt werden kann, dann muss eine Zeile im YAML Code ergänzt werden ( ich habe das im veröffentlichten Code korrigiert ! )
# Allow Over-The-Air updates ota: platform: esphome password: xxxxxxxxxxxxxxxxx
Infos zu dem Thema findet ihr in den Release Notes der ESPHome Version: