📘 Home Assistant Helfer Kompendium 1/? 📲 Mehr Kontrolle, weniger Aufwand!

Du willst das Beste aus deinem Home Assistant herausholen und suchst nach Möglichkeiten, deine Automationen smarter und individueller zu gestalten? In diesem Beitrag stelle ich dir drei Home Assistant Helfer vor, die dir genau das ermöglichen: den Ableitungssensor, das Dropdown-Menü und den generischen Hygrostat. Mit diesen Tools kannst du präzise Automatisierungen erstellen, die deine Wünsche und Anforderungen perfekt erfüllen.

Inhalt

  1. Ableitungssensor – Dynamische Anpassungen leicht gemacht 🚀Der Ableitungssensor ist ein geniales Tool, wenn du auf dynamische Veränderungen reagieren möchtest. Er eignet sich zum Beispiel, um den Anstieg oder Abfall eines Werts (wie Temperatur oder Luftfeuchtigkeit) zu erfassen und daraus passende Aktionen abzuleiten. So lässt sich etwa erkennen, ob eine Temperatur schnell steigt oder sinkt, und dann eine entsprechende Automation aktivieren – perfekt für Klimasteuerungen oder Belüftungsmanagement!
  2. Dropdown – Auswahlmöglichkeiten im Smart Home schaffen 📋Mit Dropdown-Listen kannst du verschiedene Auswahloptionen für dein Smart Home anlegen. Ob es sich um Räume, Gerätemodi oder Szenen handelt – Dropdown-Menüs bieten dir eine bequeme und übersichtliche Möglichkeit, Optionen zu verwalten und per Klick auszuwählen. Damit sparst du dir manuelle Eingaben und kannst über vordefinierte Auswahlfelder spezifische Aktionen und Automationen schnell und unkompliziert steuern.
  3. Generischer Hygrostat – Die perfekte Feuchtigkeitskontrolle 🌫️Der generische Hygrostat ist dein Helfer, wenn es um die Steuerung der Luftfeuchtigkeit in deinem Zuhause geht. Gerade für Räume wie das Badezimmer oder den Keller ist eine konstante Feuchtigkeitskontrolle entscheidend, um Schimmelbildung zu vermeiden und das Raumklima zu verbessern. Mit diesem Helfer kannst du gezielt Lüftungen oder Entfeuchter steuern und die Feuchtigkeit so optimal anpassen.

Fazit

Diese drei Home Assistant Helfer sind echte Multitalente und erweitern deine Möglichkeiten enorm. Von dynamischen Steuerungen mit dem Ableitungssensor über bequeme Auswahlmöglichkeiten mit Dropdown-Listen bis hin zur genauen Feuchtigkeitsregulierung mit dem generischen Hygrostat – hier findest du die passenden Werkzeuge für jede Automationsidee.

Falls du noch mehr über diese und andere Home Assistant Helfer erfahren möchtest, schau gerne auch in das zugehörige Video rein! Ich zeige dir Schritt für Schritt, wie du diese Helfer einrichten und nutzen kannst, um dein Smart Home noch intelligenter zu machen.


Willst du mehr solcher Smart-Home-Tipps und Ideen? Dann bleib dran – auf meinem Blog und YouTube-Kanal gibt’s regelmäßig neue Inhalte, um dein Zuhause noch smarter zu gestalten!

Brauchst du wirklich Skripte in Home Assistant? 🤔 So holst du das Maximum raus! 🚀💡

In diesem Video dreht sich alles um Skripte in Home Assistant – von den Grundlagen bis hin zu fortgeschrittenen Funktionen! 💡 Skripte helfen dir, deine Automatisierungen noch flexibler und leistungsfähiger zu gestalten. Ich zeige dir Schritt für Schritt, wie du ein Skript für Benachrichtigungen 📲 erstellst, es in deine Automatisierungen integrierst ⚙️ und mit erweiterten Features noch effizienter machst. Egal, ob du Einsteiger bist oder bereits tiefer in Home Assistant steckst – hier findest du wertvolle Tipps für das nächste Level deines Smart Homes! 🚀

Ich möchte euch heute einen allgemeinen Amazon-Link teilen, über den ihr eine Vielzahl von Produkten entdecken könnt. Egal, ob ihr nach Smart Home-Geräten, Gadgets oder anderen nützlichen Artikeln sucht, Amazon hat für jeden etwas zu bieten.

Wenn ihr über diesen Link einkauft, unterstützt ihr meinen Kanal, ohne dass es für euch zusätzliche Kosten verursacht. Das hilft mir, weiterhin spannende Inhalte für euch zu erstellen!

Hier ist der Link zu Amazon: https://amzn.to/3KsGngK

Vielen Dank für eure Unterstützung!

Skript mit Übergabeparametern

alias: Notify_ALL_Video2
sequence:
  - action: notify.mobile_app_iphone_tobias
    metadata: {}
    data:
      message: "{{ message }}"
      title: "{{ title }}"
  - if:
      - condition: template
        value_template: "{{ alexa }}"
    then:
      - action: notify.alexa_media_keller
        metadata: {}
        data:
          message: "{{ message }}"
          title: "{{ title }}"
fields:
  message:
    selector:
      text: null
    name: message
  title:
    selector:
      text: null
    name: title
  alexa:
    selector:
      boolean: {}
    name: alexa
    default: false
description: ""

Automatisierung in dem das Skript mit Übergabeparametern verwendet wird

alias: Notify All Video 2
description: ""
triggers: []
conditions: []
actions:
  - action: script.notify_all_video2
    metadata: {}
    data:
      alexa: false
      message: Es sind {{ states('sensor.temperatur_aussen_temperature') }} Grad
      title: " Information"
mode: single

Skript mit Rückgabewerten

alias: Rückgabewerte
sequence:
  - variables:
      ergebnis:
        value: "{{ states(a) | int + states(b) | float }}"
  - stop: Beendet
    response_variable: ergebnis
fields:
  b:
    selector:
      entity: {}
    name: b
  a:
    selector:
      entity: {}
    name: a
description: ""

Automatisierung zur Verwendung des Skripts mit Rückgabewerten

alias: Rückgabewerte
description: ""
triggers: []
conditions: []
actions:
  - action: script.ruckgabewerte
    metadata: {}
    data:
      b: sensor.temperatur_aussen_temperature
      a: sensor.temperatur_aussen_temperature
    response_variable: ergebnis
  - action: notify.mobile_app_iphone_tobias
    metadata: {}
    data:
      message: "{{ ergebnis.value}}"
  - action: notify.alexa_media_keller
    metadata: {}
    data:
      message: "{{ ergebnis.value}}"
mode: single

Home Assistant meets Community | Deine Automatisierungen im Spotlight! 💡🏡

In meinem neuesten Video „Home Assistant meets Community“ zeigen drei Mitglieder unserer tollen Smart Home-Community ihre beeindruckenden und auch praktischen Automatisierungen.

Die Vielfalt der Möglichkeiten, die Home Assistant bietet, direkt aus der Community.


Mach mit und präsentiere deine eigenen Automatisierungen!

Aber das ist erst der Anfang! In diesem neuen Format geht es darum, dass du als Teil der Community deine eigenen Automatisierungen vorstellst.

Erstelle dein eigenes Video!

Du hast die Chance, dein eigenes Video zu erstellen, in dem du deine Home Assistant-Projekte /oder Automatisierungen präsentierst. Diese Videos werden in zukünftigen Episoden von „Home Assistant meets Community“ gezeigt!


Wie kannst du mitmachen?

Auf meiner Blog-Seite findest du ein Formular, das dir Schritt für Schritt erklärt, wie du mitmachen kannst. Es ist ganz einfach! Teile deine kreativen Lösungen und Automatisierungen mit der Community und werde Teil dieses neuen Formats!


Jetzt bist du dran!

Lass uns deine Home Assistant-Automatisierungen sehen und inspirieren wir uns gegenseitig mit neuen Ideen!

Schau dir das Video an und werde Teil unserer wachsenden Community!

Wie schon im Video erwähnt, möchte ich euch die Automatisierungen aus den Videos zur Verfügung stellen. Die Beiträge werden noch auf dem Discord Server ergänzt werden.

Vielen Dank an dieser Stelle für die tollen Beiträge von Jonathan, Maikel und René.

Community Beitrag 1 – Jonathan

alias: Licht aus um Mitternacht
description: ""
trigger:
  - platform: time
    at: "00:00:00"
condition: []
action:
  - target:
      label_id: power_off_at_midnight
    data: {}
    action: homeassistant.turn_off
mode: single

Community Beitrag 2 – Jonathan

alias: Erkenne unsauberen Neustart
description: ""
trigger:
  - platform: homeassistant
    event: start
    id: start
  - platform: homeassistant
    event: shutdown
    id: stop
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - stop
        sequence:
          - action: input_boolean.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: input_boolean.clean_shutdown
      - conditions:
          - condition: trigger
            id:
              - start
        sequence:
          - if:
              - condition: state
                entity_id: input_boolean.clean_shutdown
                state: "off"
            then:
              - action: notify.mobile_app_oneplus8
                metadata: {}
                data:
                  message: Unsauberer Neustart entdeckt
          - action: input_boolean.turn_off
            target:
              entity_id:
                - input_boolean.clean_shutdown
            data: {}
mode: single

Community Beitrag 3 – Jonathan

alias: Bewegungsmelder Keller
description: ""
trigger:
  - platform: state
    entity_id:
      - binary_sensor.bewegungsmelder_keller_occupancy
    to: "on"
condition: []
action:
  - repeat:
      count: 10
      sequence:
        - metadata: {}
          data: {}
          target:
            entity_id: switch.jonathans_3_echo_dot_do_not_disturb_switch
          action: switch.toggle
        - delay:
            hours: 0
            minutes: 0
            seconds: 1
            milliseconds: 0
mode: single

Community Beitrag 4 – Maikel

Für die Automatisierung von Maikel werden drei Helfer benötigt.

  1. Helfer Taster Sommerzeit
  2. Helfer Taster Winterzeit
  3. Helfer Schalter : Sommerzeit/Winterzeit

Ebenfalls müssen zur Verwendung in der configuration.yaml zwei history_stats Sensoren angelegt werden, die beim jeweiligen Zeitpunkt der Betätigung dazu dienen , dass eine Zeit hochgezählt wird.

History Statistik Sensor 1:

platform: history_stats
name: WG - Historysensor - Sommerzeit
entity_id: input_boolean.wg_helfer_schalter_sommerzeit_winterzeit
unique_id: 'wg_historysensor_sommerzeit'
state: "on"
type: time
start:  >
        {% set status= states('input_button.wg_helfer_taste_sommerzeit') %}
        {% if status in ['unknown', 'unavailable'] %}
        {{ now() }}
        {% else %}
        {{ status | as_datetime }}
        {% endif %}
end: "{{ now() }}"

History Statisik Sensor 2:

platform: history_stats
name: WG - Historysensor - Winterzeit
entity_id: input_boolean.wg_helfer_schalter_sommerzeit_winterzeit
unique_id: 'wg_historysensor_winterzeit'
state: "off"
type: time
start:  >
        {% set status= states('input_button.wg_helfer_taste_winterzeit') %}
        {% if status in ['unknown', 'unavailable'] %}
        {{ now() }}
        {% else %}
        {{ status | as_datetime }}
        {% endif %}
end: "{{ now() }}"

Automatisierung:

alias: "[WG] Sommer- Wintermodus"
description: ""
trigger:
  - platform: time_pattern
    hours: /1
    id: Jede Stunde
  - platform: numeric_state
    entity_id:
      - sensor.bk_thermometer_temperature
    below: 10
    id: 10 °C -
  - platform: numeric_state
    entity_id:
      - sensor.bk_thermometer_temperature
    above: 10
    id: 10 °C +
  - platform: numeric_state
    entity_id:
      - sensor.wg_historysensor_winterzeit
    above: 168
    id: History Sensor Wintermodus
  - platform: numeric_state
    entity_id:
      - sensor.wg_historysensor_sommerzeit
    above: 168
    id: History Sensor Sommerzeit
condition: []
action:
  - alias: Sommermodus
    if:
      - condition: trigger
        id:
          - History Sensor Sommerzeit
          - Jede Stunde
          - 10 °C +
    then:
      - alias: Sommermodus an
        if:
          - condition: numeric_state
            entity_id: sensor.bk_thermometer_temperature
            above: 10
          - condition: numeric_state
            entity_id: sensor.wg_historysensor_winterzeit
            above: 168
          - condition: state
            entity_id: input_boolean.wg_helfer_schalter_sommerzeit_winterzeit
            state: "off"
        then:
          - metadata: {}
            data: {}
            target:
              entity_id: input_boolean.wg_helfer_schalter_sommerzeit_winterzeit
            action: input_boolean.turn_on
          - metadata: {}
            data: {}
            target:
              entity_id:
                - input_button.wg_helfer_taste_sommerzeit
                - input_button.wg_helfer_taste_winterzeit
            action: input_button.press
          - metadata: {}
            data: {}
            action: script.wg_automationen_an
          - metadata: {}
            data: {}
            action: script.zs_wg_kalender_sonstiges_sommermodus
          - data:
              summary: Pfanzenzubehör wieder auf den Balkon räumen
              start_date_time: |
                {{ (now() + timedelta(days = 1)).strftime("%Y-%m-%d")}} 15:10:00
              end_date_time: |
                {{ (now() + timedelta(days = 1)).strftime("%Y-%m-%d")}} 15:11:00
            target:
              entity_id: calendar.garten
            action: calendar.create_event
      - alias: Sommermodus reset
        if:
          - condition: numeric_state
            entity_id: sensor.bk_thermometer_temperature
            above: 10
          - condition: state
            entity_id: input_boolean.wg_helfer_schalter_sommerzeit_winterzeit
            state: "on"
        then:
          - metadata: {}
            data: {}
            target:
              entity_id: input_button.wg_helfer_taste_sommerzeit
            action: input_button.press
  - alias: Wintermodus
    if:
      - condition: trigger
        id:
          - History Sensor Wintermodus
          - 10 °C -
          - Jede Stunde
    then:
      - alias: Wintermodus an
        if:
          - condition: numeric_state
            entity_id: sensor.bk_thermometer_temperature
            below: 10
          - condition: numeric_state
            entity_id: sensor.wg_historysensor_sommerzeit
            above: 168
          - condition: state
            entity_id: input_boolean.wg_helfer_schalter_sommerzeit_winterzeit
            state: "on"
        then:
          - target:
              entity_id:
                - input_boolean.wg_helfer_schalter_sommerzeit_winterzeit
            data: {}
            action: input_boolean.turn_off
          - metadata: {}
            data: {}
            target:
              entity_id:
                - input_button.wg_helfer_taste_winterzeit
                - input_button.wg_helfer_taste_sommerzeit
            action: input_button.press
          - metadata: {}
            data: {}
            action: script.wg_automationen_an
          - data: {}
            action: script.zs_wg_kalender_sonstiges_wintermodus
          - data:
              summary: Pfanzenzubehör wieder vom Balkon räumen
              start_date_time: |
                {{ (now() + timedelta(days = 1)).strftime("%Y-%m-%d")}} 15:10:00
              end_date_time: |
                {{ (now() + timedelta(days = 1)).strftime("%Y-%m-%d")}} 15:11:00
            target:
              entity_id: calendar.garten
            action: calendar.create_event
      - alias: Wintermodus reset
        if:
          - condition: numeric_state
            entity_id: sensor.bk_thermometer_temperature
            below: 10
          - condition: state
            entity_id: input_boolean.wg_helfer_schalter_sommerzeit_winterzeit
            state: "off"
        then:
          - metadata: {}
            data: {}
            target:
              entity_id:
                - input_button.wg_helfer_taste_winterzeit
            action: input_button.press
mode: parallel
max: 30

Was machen eigentliche diese Automatisierungs Modi ?

Ich möchte euch heute einen allgemeinen Amazon-Link teilen, über den ihr eine Vielzahl von Produkten entdecken könnt. Egal, ob ihr nach Smart Home-Geräten, Gadgets oder anderen nützlichen Artikeln sucht, Amazon hat für jeden etwas zu bieten.

Wenn ihr über diesen Link einkauft, unterstützt ihr meinen Kanal, ohne dass es für euch zusätzliche Kosten verursacht. Das hilft mir, weiterhin spannende Inhalte für euch zu erstellen!

Hier ist der Link zu Amazon: https://amzn.to/3KsGngK

Vielen Dank für eure Unterstützung!

Habt ihr euch auch schon die Frage gestellt, wozu diese Modi eigentlich gut sind ? Wie wende ich diese an ?

Auf diese Fragen bekommt ihr in diesem Video eine Antwort.

Modus – Einzeln

Eine Automatisierung wird von Anfang bis zum Ende ausgeführt. Kommt während des Durchlaufs ein weiterer Auslöser, so wird dieser ignoriert.

alias: Single Mode - Haustür
description: ""
trigger:
  - platform: state
    entity_id:
      - binary_sensor.haustur_klingeln
    to: "on"
condition: []
action:
  - action: light.turn_on
    metadata: {}
    data:
      rgb_color:
        - 255
        - 0
        - 0
      brightness_pct: 100
    target:
      entity_id: light.buro_klavinova_oben
  - delay:
      hours: 0
      minutes: 0
      seconds: 10
      milliseconds: 0
  - action: light.turn_off
    target:
      entity_id: light.buro_klavinova_oben
    data: {}
mode: single

Modus – Restart

Eine Automatisierung wird so lange ausgeführt, bis ein neuer Auslöser kommt. Ist das der Fall, so wird die Automatisierung neu gestartet und der Ablauf erfolgt erneut von Anfang bis zum Ende, oder so lange, bis wieder ein neuer Auslöser kommt.

alias: Restart - Mode Licht
description: ""
trigger:
  - platform: state
    entity_id:
      - binary_sensor.bewegungsmelder_haustur_aussen_occupancy
    to: "on"
condition: []
action:
  - action: light.turn_on
    metadata: {}
    data:
      rgb_color:
        - 236
        - 9
        - 9
      brightness_pct: 100
    target:
      entity_id:
        - light.buro_klavinova_oben
        - light.buro_klavinova_unten
  - delay:
      hours: 0
      minutes: 1
      seconds: 0
      milliseconds: 0
  - action: light.turn_off
    metadata: {}
    data: {}
    target:
      entity_id:
        - light.buro_klavinova_oben
        - light.buro_klavinova_unten
mode: restart

Modus – In Warteschlange

Dieser Modus behandelt jeden Trigger bei der Bearbeitung, wie man es von einen FIFO ( First in First Out ) kennt. D.h. jeder Auslöser wird verwendet und für jeden Auslöser wird die Automatisierung komplett durchlaufen.

alias: In Warteschlange
description: ""
trigger:
  - platform: state
    entity_id:
      - binary_sensor.bewegungsmelder_haustur_aussen_occupancy
    to: "on"
condition: []
action:
  - action: light.turn_on
    metadata: {}
    data:
      rgb_color:
        - 236
        - 9
        - 9
      brightness_pct: 100
    target:
      entity_id:
        - light.buro_klavinova_oben
        - light.buro_klavinova_unten
  - delay:
      hours: 0
      minutes: 0
      seconds: 10
      milliseconds: 0
  - action: light.turn_off
    metadata: {}
    data: {}
    target:
      entity_id:
        - light.buro_klavinova_oben
        - light.buro_klavinova_unten
mode: queued
max: 10

Modus – Parallel

Der parallele Modus unterscheidet sich komplett von den bisherigen Modi. Haben wir z.B. zwei verschiedene Auslöser , die durch eine Auslöse ID miteinander verknüpft sind, so werden damit verknüpfte Aktionen immer ausgeführt. Auch in diesem Modus kann man über den Max Parameter angeben, wie viele gleichzeitige Bearbeitungen erfolgen sollen. Default sind 10 parallele Vorgänge.

alias: Räume beleuchten nach Person - Parallel Mode
description: Demonstriert den Parallel Modus von Home Assistant
trigger:
  - platform: state
    entity_id:
      - input_boolean.helfer_person_sabrina
    to: "on"
    id: Sabrina home
  - platform: state
    entity_id:
      - input_boolean.helfer_person_tobias
    to: "on"
    id: Tobias home
condition: []
action:
  - if:
      - condition: trigger
        id:
          - Sabrina home
    then:
      - target:
          entity_id: light.buro_klavinova_oben
        data:
          rgb_color:
            - 110
            - 245
            - 0
          brightness_pct: 20
        action: light.turn_on
      - delay:
          hours: 0
          minutes: 0
          seconds: 10
          milliseconds: 0
      - action: light.turn_off
        target:
          entity_id:
            - light.buro_klavinova_oben
        data: {}
  - if:
      - condition: trigger
        id:
          - Tobias home
    then:
      - target:
          entity_id: light.buro_klavinova_unten
        data:
          rgb_color:
            - 0
            - 16
            - 245
          brightness_pct: 40
        action: light.turn_on
      - delay:
          hours: 0
          minutes: 0
          seconds: 10
          milliseconds: 0
      - action: light.turn_off
        target:
          entity_id:
            - light.buro_klavinova_unten
        data: {}
mode: parallel
max: 10

Home Assistant Dein Einstieg in ESPHome und DIY🛠️ – Auch für Anfänger! 🚀

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! 😊🛠️

Ich möchte euch heute einen allgemeinen Amazon-Link teilen, über den ihr eine Vielzahl von Produkten entdecken könnt. Egal, ob ihr nach Smart Home-Geräten, Gadgets oder anderen nützlichen Artikeln sucht, Amazon hat für jeden etwas zu bieten.

Wenn ihr über diesen Link einkauft, unterstützt ihr meinen Kanal, ohne dass es für euch zusätzliche Kosten verursacht. Das hilft mir, weiterhin spannende Inhalte für euch zu erstellen!

Hier ist der Link zu Amazon: https://amzn.to/3KsGngK

Vielen Dank für eure Unterstützung!

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ückzahlArtikelAmazon LinkBeschreibung
1M5 Stack Atom Litehttps://amzn.to/4cfTOg0ESP Controller
1Wemos D1 Minihttps://amzn.to/3VqmxI5ESP8266 Controller
1HC-SR04https://amzn.to/4ekOVUNUltraschall Sensor
15V Netzteil Micro USBhttps://amzn.to/4er9D5eMicro USB Netzteil 5V ( für Wemos D1 Mini )
15 V Netzteil USB Chttps://amzn.to/3VL2K7qUSB 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:

YouTube player

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:

ESPHome 2024.6.0 – 19th June 2024 — ESPHome